A Minecraft Java Edition data pack that displays multiple custom waypoint markers on your HUD ( actionbar) using slash commands. Track up to 5 waypoints per dimension with colored icons and real-time distance tracking!
- π― Multiple HUD Markers - Track up to 5 waypoints per dimension (15 total across all dimensions)
- π Per-Dimension Markers - Separate marker sets for Overworld, Nether, and End
- π Coordinate-Based - Enter 2D (X, Z) or 3D (X, Y, Z) coordinates via commands
- π¨ 5 Color Options - π΄ Red, π΅ Blue, π’ Green, π‘ Yellow, π£ Purple
- π Distance Tracking - See real-time distanceΒ² to all active waypoints in current dimension
- πΎ Full Persistence - Markers saved and restored between gameplay sessions with UUID-based per-player per-dimension storage
- π Auto-Color Cycling - Automatically assigns next available color
- β‘ Instant Updates - All markers update every tick (20 times per second)
- π₯ Per-Player Markers - Each player has their own set of markers (5 per dimension) with UUID-based persistence for multiplayer servers
- πͺ Dimension-Aware - Automatically saves/loads correct markers when changing dimensions
- π‘ Built-in Help - In-game help command with clickable examples and tab-completion
/function headingmarker:help
Shows all commands with clickable examples that you can edit and use!
/function headingmarker:set_2d {x:1000, z:-500}
Result: π΄ Red marker set at 1000 64 -500
/function headingmarker:set {x:1000, y:64, z:-500}
Result: π΅ Blue marker set at 1000 64 -500 (auto-cycled to next color)
/function headingmarker:set_3d_color {x:1000, y:64, z:-500, color:2}
Result: π’ Green marker set at 1000 64 -500
Colors: 0=red, 1=blue, 2=green, 3=yellow, 4=purple
/function headingmarker:remove {color:1}
Result: π΅ Blue marker removed
When markers are active, you'll see:
π΄245820 π΅180500 π’0
(Shows emoji icon and distanceΒ² for each active marker)
Markers are dimension-specific:
- Overworld: 5 markers (one per color)
- Nether: 5 markers (one per color)
- End: 5 markers (one per color)
When you change dimensions:
- Your current dimension's markers are automatically saved
- The new dimension's markers are automatically loaded
- You'll see a message: "Switched to [Dimension] markers"
This means you can have up to 15 total markers (5 per dimension Γ 3 dimensions)!
Example:
- In Overworld: Set red marker at spawn (0, 64, 0)
- Go to Nether: Set red marker at your portal (-100, 70, 50)
- Return to Overworld: You'll see your spawn marker again
- Go back to Nether: You'll see your portal marker again
Each dimension maintains its own independent set of markers.
- Download or clone this repository
- Copy the
headingmarkerfolder to your Minecraft world'sdatapacksdirectory:- Windows:
%appdata%\.minecraft\saves\[YourWorldName]\datapacks\ - Mac/Linux:
~/.minecraft/saves/[YourWorldName]/datapacks/
- Windows:
- The final path should be:
saves/[YourWorldName]/datapacks/headingmarker/pack.mcmeta - Load or reload your world
- Run
/reloadin-game to activate the data pack - You should see a welcome message: "Heading Marker loaded! Use /function headingmarker:help for commands"
The resource pack includes a pre-configured font file for custom marker sprites.
Current Status: The HUD uses emoji icons (π΄π΅π’π‘π£) which work without a resource pack.
To Add Custom Sprites:
- Create 16x16 pixel PNG images for each marker color
- Place them in
resourcepack/assets/headingmarker/textures/hud/:marker_red.pngmarker_blue.pngmarker_green.pngmarker_yellow.pngmarker_purple.png
- Install the resource pack in your world
- The font file (
resourcepack/assets/headingmarker/font/default.json) is already configured to map these sprites to unicode characters \uE000-\uE004
Note: You can use the data pack without the resource pack. Sprites are optional!
/function headingmarker:set {x:1000, z:-500}
In 2D mode, Y defaults to 64.
/function headingmarker:set {x:1000, y:64, z:-500}
/function headingmarker:set {x:1000, y:64, z:-500, color:2}
Colors: 0=red, 1=blue, 2=green, 3=yellow, 4=purple
If color is not specified, the system automatically cycles to the next available color.
/function headingmarker:remove {color:1}
Color is required for removal.
When markers are active, you'll see on your actionbar:
π΄245820 π΅180500 π’0 π‘5420 π£980000
- π΄π΅π’π‘π£ - Colored emoji icons for each active marker
- Numbers - DistanceΒ² to each waypoint (lower = closer)
- Inactive markers - Don't appear in the display
The display updates automatically 20 times per second as you move!
You can have up to 5 markers active at once (one per color):
- π΄ Red (0) - Home/Base
- π΅ Blue (1) - Mines/Resources
- π’ Green (2) - Farms
- π‘ Yellow (3) - Villages/Trading
- π£ Purple (4) - Nether Portals/End Portals
All markers are shown together on your HUD, allowing you to track multiple important locations at once!
If you don't specify a color when setting a marker, the system:
- Finds the next unused color
- If all colors are used, cycles through in order (red β blue β green β yellow β purple β red)
- Automatically assigns that color to your new marker
Your markers are automatically saved and will be restored when you:
- Rejoin the world
- Restart the server
- Reload the data pack
Persistence System:
- UUID-Based Storage: Each player's markers are saved separately using their unique player UUID
- Multiplayer-Safe: Works correctly for any number of players on multiplayer servers
- Automatic Loading: Markers are automatically loaded when players join the server or world
- Per-Player: Each player's markers persist independently without interfering with others
No need to manually save - it happens automatically!
Get interactive help at any time:
/function headingmarker:help
This shows:
- β All available commands with clickable examples
- β Color reference guide
- β Commands you can click to copy and edit
- β Quick example functions for common use cases
Tab-completion support: When typing /function headingmarker:, press Tab to see all available
commands including:
set- Set a markerremove- Remove a markerhelp- Show helpexamples/home- Example for home baseexamples/mine- Example for minesexamples/farm- Example for farmsexamples/village- Example for villagesexamples/portal- Example for portals
The distance shown is squared (distanceΒ²) for performance:
- 0-100: Very close (0-10 blocks)
- 100-10,000: Close range (10-100 blocks)
- 10,000-1,000,000: Medium range (100-1000 blocks)
- 1,000,000+: Far away (1000+ blocks)
To get actual distance, take the square root of the displayed value.
Use different colors for different waypoint types:
- π΄ Red - Home/Base
- π΅ Blue - Mines/Resources
- π’ Green - Farms
- π‘ Yellow - Villages/Trading
- π£ Purple - Nether Portals/End Portals
On multiplayer servers:
- Each player's marker is personal (others can't see it)
- Share coordinates in chat to help teammates
- Use consistent color codes as a team
- Great for treasure hunts and group exploration!
This data pack uses Minecraft's built-in scoreboard and title/actionbar systems:
- Scoreboards store waypoint coordinates per player
- A tick function (runs 20x/second) calculates your distance
- The actionbar displays the marker with real-time updates
- No mods or external tools required!
The system is 100% vanilla Minecraft - it works on any server running the data pack.
- Minecraft Version: 26.1+ (Data Pack Format 48)
- Game Mode: Survival, Creative, Adventure
- Multiplayer: β Fully supported
- Server: β Works on vanilla servers
headingmarker/ # Main data pack folder (goes in datapacks/)
βββ pack.mcmeta # Data pack metadata (format 48)
βββ data/
βββ headingmarker/
β βββ functions/
β βββ load.mcfunction # Initialization & scoreboards
β βββ tick.mcfunction # Updates HUD every tick
β βββ display_all_markers.mcfunction # Renders actionbar display
β βββ set.mcfunction # Set marker (3D mode)
β βββ set_2d.mcfunction # Set marker (2D mode, Y=64)
β βββ set_2d_color.mcfunction # Set marker (2D with color)
β βββ set_3d_color.mcfunction # Set marker (3D with color)
β βββ remove.mcfunction # Remove marker command
β βββ help.mcfunction # In-game help system
β βββ save_markers.mcfunction # Persistence (save)
β βββ load_markers.mcfunction # Persistence (load)
β βββ examples/ # Example marker templates
β β βββ home.mcfunction
β β βββ mine.mcfunction
β β βββ farm.mcfunction
β β βββ village.mcfunction
β β βββ portal.mcfunction
β βββ internal/ # Helper functions
β βββ set_red/blue/green/yellow/purple.mcfunction
β βββ remove_red/blue/green/yellow/purple.mcfunction
β βββ calc_red/blue/green/yellow/purple.mcfunction
β βββ auto_select_color.mcfunction
β βββ set_marker_2d.mcfunction
β βββ set_marker_3d.mcfunction
β βββ show_actionbar.mcfunction
β βββ show_multi.mcfunction
β βββ save_player_uuid.mcfunction
β βββ load_player_uuid.mcfunction
β βββ ... (dimension-aware helpers)
βββ minecraft/
βββ tags/
βββ functions/
βββ load.json # Auto-load on world start
βββ tick.json # Run every tick (20x/sec)
hm.red.x/y/z,hm.red.active,hm.red.dist- Red markerhm.blue.x/y/z,hm.blue.active,hm.blue.dist- Blue markerhm.green.x/y/z,hm.green.active,hm.green.dist- Green markerhm.yellow.x/y/z,hm.yellow.active,hm.yellow.dist- Yellow markerhm.purple.x/y/z,hm.purple.active,hm.purple.dist- Purple markerhm.input.x/y/z/color- Command input variableshm.nextcolor- Auto-cycling trackerhm.dx,hm.dz,hm.dist,hm.temp- Calculation variables
resourcepack/
βββ pack.mcmeta # Resource pack metadata (format 34)
βββ assets/
βββ headingmarker/
βββ textures/
βββ gui/
βββ sprites/
βββ hud/ # Custom HUD icons (future)
Note: The resource pack is currently a placeholder. The HUD uses emoji icons (π΄π΅π’π‘π£) which work without a resource pack.
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve documentation
This project is open source and available under the CC0 1.0 Universal License.
Created for Minecraft Java Edition players who want better waypoint navigation!