Quest Codex Waypoint
The quest_codex_waypoint entry renders a modular GPS for each player. Its
display entities are packet-only and scheduled per player, so they do not
create persistent entities in the world and remain attached to the player's
camera when the player moves quickly.
Targets
| Target case | Usage |
|---|---|
fixed_waypoint_target | A configurable fixed Position. |
objective_waypoint_target | A specific active LocatableObjective. |
tracked_objective_waypoint_target | The highest-priority, first, or closest locatable objective from the tracked quest. |
entity_waypoint_target | The current position of an EntityInstanceEntry. |
The target is hidden when it cannot be resolved. hideWithinDistance is an
optional hard-hide distance; with its default 0, the text remains visible
above the target when the player is close.
Layers
Layers are ordered and composable. Each layer has an enabled variable, a
placement (HUD or TARGET) where applicable, and an offset relative to its
anchor.
| Layer case | Usage |
|---|---|
waypoint_text_layer | The text display layer. Supports {icon}, {distance}, {distance_m}, {distance_km}, {elevation}, {direction}, {vertical_direction}, {target}, {world_name}, {height_diff}, and {eta}. |
waypoint_block_layer | A centered block display anchored to the HUD or target. |
waypoint_beacon_layer | A centered, rotating vertical beacon-style block display with configurable mode, material, height, thickness, lighting, and view distance. |
The public implementation intentionally has no item-display or directional-arrow
layer. Configure an icon as text or as a resource-pack glyph through the
waypoint's icon field and insert it with {icon} in the text layer.
Navigation and visibility
When the player is within nearTargetDistance (default 10 blocks), text
layers move above the target using nearTargetVerticalOffset instead of staying
in front of the player's camera. Outside that range, HUD text is placed at
hudForwardDistance (default 5.5 blocks) with hudVerticalOffset.
hudVisibilityAngle controls the horizontal visibility cone. The default 180
degrees shows the waypoint only in the front hemisphere; near-target text ignores
this filter so the objective remains readable when the player reaches it.
Example: tracked objective with text and beacon
{
"type": "quest_codex_waypoint",
"id": "quest_waypoint",
"target": {
"case": "tracked_objective_waypoint_target",
"value": { "selection": "HIGHEST_PRIORITY" }
},
"layers": [
{
"case": "waypoint_text_layer",
"value": {
"enabled": true,
"text": "{icon} <gold>{target}</gold>\n<white>{distance_m} m</white> <aqua>{direction}</aqua>",
"offset": { "x": 0.0, "y": 0.0, "z": 0.0 },
"placement": "HUD",
"scale": 1.0,
"lineWidth": 200,
"shadow": true,
"seeThrough": true,
"breathing": true,
"breathingAmplitude": 0.3,
"breathingPeriod": 2.0
}
},
{
"case": "waypoint_beacon_layer",
"value": {
"enabled": true,
"mode": "TARGET",
"material": "LIME_STAINED_GLASS",
"height": 64,
"thickness": 0.5,
"rotationSpeed": 3.0,
"offsetY": 1.0,
"viewDistance": 250.0,
"blockLight": 15,
"skyLight": 15
}
}
],
"icon": "<yellow>✦</yellow>",
"refreshTicks": 1,
"targetViewDistance": 250.0,
"nearTargetDistance": 10.0,
"nearTargetVerticalOffset": 2.25,
"hudVisibilityAngle": 180.0,
"hudForwardDistance": 5.5,
"hudVerticalOffset": 1.0
}
For a location objective, set priorityOverride as an object with
enabled and value fields. The waypoint can then use
HIGHEST_PRIORITY to select it from the tracked quest.