JWaypoints
Next-generation Minecraft waypoint navigation with 3D arrow guidance, smart switching, and full customization. Built for Minecraft 1.21+.
Advanced Waypoint Navigation
Beautiful floating 3D arrows, intelligent action-bar guidance, arrival effects, and a polished in-game GUI — all in one lightweight plugin.
Core Features
Floating block-art arrows with spiral, zigzag, and static patterns pointing to your destination.
Auto-switches to action bar compass when arrows are blocked by terrain.
Arrow designs, arrival sounds, particles, hex color support, and custom icons.
Real-time distance display using the experience bar as a progress indicator.
Share locations with teammates. Configurable by admins.
Full graphical interface — manage, edit, and navigate without typing commands.
Highlights
- Multi-World Support — works across dimensions and custom worlds seamlessly
- Permission-Based — granular nodes for different player ranks and roles
- Performance Optimized — minimal server impact with configurable update ticks
- Persistent Storage — waypoints saved to disk with automatic data protection
- Tab Completion — all commands support tab-complete for fast usage
- Bukkit / Spigot / Paper — compatible with all major server platforms
Installation & Setup
Get JWaypoints running on your server in under two minutes.
Requirements
- Minecraft Server 1.21 or higher
- Bukkit / Spigot / Paper server software
- Java 17 or higher
- ~50 MB free RAM
- Write permissions to the
plugins/directory
Download
Installation Steps
Download the JAR
Grab the latest JWaypoints.jar from GitHub or Modrinth above.
Place in plugins folder
Move the JAR into your server's plugins/ directory.
Start / restart the server
The plugin will generate its config on first run.
Configure (optional)
Edit plugins/JWaypoints/config.yml to customize the plugin.
Verify installation
Join the server and run /waypoint help — if the help menu appears, you're good to go!
Quick Start
Create your first waypoint and start navigating:
# Create a waypoint at your current location
/waypoint set home
# Activate 3D arrow guidance toward it
/waypoint activate home
# Open the full GUI manager
/waypoint gui
/wp as a shorthand alias for /waypoint. All commands support tab completion.Commands Reference
Full reference for all JWaypoints commands. Use /wp as an alias for /waypoint.
Waypoint Management
/waypoint set <name> [x y z]
Create a waypoint at your location or at specified coordinates.
/waypoint remove <name>
Delete a waypoint. Requires confirmation via /waypoint confirm.
/waypoint activate <name>
Start 3D arrow guidance toward the named waypoint.
/waypoint deactivate
Stop guidance and hide the arrow.
/waypoint confirm
Confirm a pending deletion.
/waypoint cancel
Cancel a pending operation.
Interface
/waypoint gui
Open the graphical waypoint manager.
/waypoint list
Display all your waypoints in chat (or opens GUI).
/waypoint current
Show details about the currently active waypoint.
/waypoint help
Display the in-game help menu.
Customization
/waypoint design <name>
Change arrow design: standard, diamond, gold, emerald, redstone
/waypoint sound <name>
Change arrival sound: levelup, bell, firework, portal
/waypoint particle <name>
Change arrival particle: FIREWORK, FLAME, HEART, SOUL
/waypoint seticon
Set a custom icon for a waypoint. Requires jwaypoints.icon.
/waypoint icons
Browse icon suggestions by category.
/waypoint distance
Toggle distance display in the XP bar.
Toggles & Sharing
/waypoint share <waypoint> <player>
Share a waypoint with another online player.
/waypoint guidance
Toggle guidance-switch notification messages.
/waypoint silent
Toggle complete silent mode (no sounds or particles).
/waypoint nosound
Toggle arrival sounds only.
/waypoint noparticles
Toggle arrival particles only.
/waypoint updatecheck
Check for plugin updates. (Admin)
/wp as a shorter alias for /waypoint.Feature Showcase
Deep dive into everything JWaypoints can do.
3D Arrow Navigation
JWaypoints renders floating block-art arrows above you, pointing toward your destination in real time. Four motion patterns are available:
Classic arrow with pointed head and stabilizing fins. Lime concrete body with yellow/red accents.
Rotating spiral pattern — eye-catching for important landmarks.
Dynamic back-and-forth motion for an energetic feel.
Non-animated arrow for distraction-free navigation.
Intelligent Guidance Switching
When the 3D arrow is blocked by terrain, JWaypoints automatically switches to an action-bar compass:
➡ Right | ⬆ Up | 🎯 45.2m- Directional arrows ⬆ ⬇ ⬅ ➡ show horizontal direction
- Vertical guidance shows "Up" or "Down" for elevation changes
- Live distance in meters updated in real time
- Automatic return to 3D arrows once the path clears
Arrow Designs
| Design | Materials | Pattern | Extra |
|---|---|---|---|
| Standard | Lime, Yellow, Red concrete | Pointed | — |
| Diamond | Diamond blocks, blue accents | Static | Glowing effect |
| Gold | Gold blocks | Spiral | Flame particles |
| Emerald | Emerald blocks | Static | Villager particles |
| Redstone | Redstone blocks | Zigzag | Redstone particles |
Arrival Effects
Level up, bell, firework, portal, and more configurable sounds.
Fireworks, flames, hearts, souls, enchant effects, and dozens more.
Assign any Minecraft item as an icon displayed in the waypoint GUI.
Full RRGGBB support for names, prefixes, and GUI titles.
allow_sharing: false in config.GUI User Guide
Master the in-game graphical interface for effortless waypoint management.
Main Waypoint Menu
Open with /waypoint gui or /waypoint list.
Left-click
Activate navigation toward that waypoint
Right-click
Delete the waypoint (requires confirmation)
Shift-click
Open the waypoint editor
Comparator icon — opens the settings menu to customize your navigation.
Barrier block closes the interface from any screen.
Waypoint Editor
Open by Shift-clicking any waypoint in the main GUI.
- 🏷️ Name Tag — Rename the waypoint with a custom title
- 🧭 Compass — Manually edit coordinates with precision input
- 🔮 Ender Pearl — Teleport the waypoint to your current location instantly
- 💣 TNT — Delete waypoint with safety confirmation dialog
- ⬅️ Arrow — Return to the main waypoint list
Permission System
Granular permission control for server administrators and different player ranks.
Permission Nodes
| Permission Node | Description | Default |
|---|---|---|
jwaypoints.use | Access all basic waypoint features | true |
jwaypoints.set | Create new waypoints | true |
jwaypoints.activate | Activate waypoint navigation | true |
jwaypoints.gui | Access the waypoint GUI | true |
jwaypoints.share | Share waypoints with other players | true |
jwaypoints.design | Change arrow designs and effects | true |
jwaypoints.icon | Set custom waypoint icons | true |
jwaypoints.bypass.limit | Bypass waypoint count limits | op |
Suggested Group Setup
jwaypoints.usejwaypoints.setjwaypoints.activatejwaypoints.gui
- All basic permissions
jwaypoints.sharejwaypoints.designjwaypoints.icon
- All member permissions
jwaypoints.bypass.limit- Unlimited waypoints
jwaypoints.bypass.limit carefully — unlimited waypoints can cause database bloat over time.LuckPerms Example
/lp user <player> permission set jwaypoints.use true
/lp group member permission set jwaypoints.share true
/lp group vip permission set jwaypoints.bypass.limit true
Server Configuration
All config options live in plugins/JWaypoints/config.yml.
Arrow Appearance
arrow:
height: 3.0 # Height above player (blocks)
spacing: 0.4 # Space between arrow parts
forward_offset: 2.0 # Distance in front of player
default_material: "LIME_CONCRETE"
head_material: "YELLOW_CONCRETE"
tail_material: "RED_CONCRETE"
arrow_update_ticks: 2 # Performance: update frequency
Plugin Settings
settings:
allow_sharing: true # Enable waypoint sharing between players
waypoint_limit: 10 # Max waypoints per player (-1 for unlimited)
distance_display_default: true # Show distance in XP bar by default
distance_update_ticks: 10 # Distance display update frequency
Custom Arrow Designs
Add your own designs in the designs: block:
designs:
custom_design:
main_material: "NETHERITE_BLOCK"
head_material: "DIAMOND_BLOCK"
tail_material: "GOLD_BLOCK"
glowing: true
particle_effect: "ENCHANT"
pattern_type: 1 # 0=standard, 1=spiral, 2=zigzag, 3=static
Hex Color Support
Use RRGGBB format anywhere color codes are accepted:
messages:
prefix: "FF5733[Waypoints]: "
gui_title: "FF00⭐ FFFFFFWaypoints FF00⭐"
/waypoint reload or restart the server after editing config to apply changes.Changelog
All notable changes to JWaypoints, newest first.
- Custom Waypoint Icons — use
/waypoint seticonto assign any icon. Icons appear in the GUI. - /waypoint icons — browse icon suggestions by category (Home, Mining, Farming, Combat, and more).
- Hex Color Support —
RRGGBBformat works in names, prefixes, and GUI titles. Mix with legacy codes freely.
/waypoint reloadnow correctly reloads all configuration values- Message prefix now reads properly from
config.yml - Performance settings (
arrow_update_ticks,distance_update_ticks) are now configurable - GUI title customization applies correctly on reload
- Arrow appearance settings update properly after
/waypoint reload
API Documentation
Developer resources for integrating JWaypoints into your plugins.
Coming Soon
We're working hard on comprehensive API documentation — JavaDoc reference, integration guides, code examples, and an event system for listening to waypoint actions.
⏳ In DevelopmentStay Updated
Get release notifications automatically when new versions drop.
Receive development updates and API announcements.
Join for real-time developer discussions and early access.
Instant notifications when API docs are published.
Support & Troubleshooting
Solutions for common issues and guidance for getting help.
Common Issues
Players see "You don't have permission" when using commands.
Solution: Ensure the player has jwaypoints.use and the relevant sub-permission. Use LuckPerms:
/lp user <player> permission set jwaypoints.use true
Solution: Arrows may be blocked by nearby terrain or structures. Move to an open area and reactivate, or increase arrow.height in config.yml. The plugin will auto-switch to action-bar guidance when blocked.
Solution: Check that the server process has write permissions to the plugins/JWaypoints/ directory. Review the server console for IOException or disk-space errors.
Quick Checklist
- Verify player permissions are correctly configured
- Confirm the plugin is enabled and running the latest version
- Review the server console for error messages or exceptions
- Test with a minimal plugin setup to isolate conflicts
- Validate
config.ymlsyntax (YAML is whitespace-sensitive) - Ensure the server is running Minecraft 1.21+ with Paper/Spigot
Getting More Help
Check this wiki first — most questions are answered here.
Open an issue on GitHub with steps to reproduce.
Suggest improvements via GitHub discussions or Discord.