Interactive Marker Builder
Interactive Marker Builder
Section titled “Interactive Marker Builder”Create Journey marker configurations without writing JSON manually. This interactive builder helps you create 3D floating displays (text, item, or block) for quest guidance through an easy-to-use form.
Marker Information
Display Settings
Animation Settings
Visibility
JSON Preview
How to Use
Section titled “How to Use”- Fill in marker details - ID, position, dimension
- Choose display type - text, item, or block display
- Configure display settings - scale, rotation, bobbing
- Set visibility conditions - MoLang expressions
- Add task integration - marker phases for quest progression
- Copy the generated JSON to your clipboard
- Save to
config/journey/markers/your-marker-name.json
Marker Configuration Tips
Section titled “Marker Configuration Tips”Marker IDs
Section titled “Marker IDs”- Use namespaced format:
journey:your_marker - Keep it descriptive and unique
- Use lowercase with underscores
Position & Placement
Section titled “Position & Placement”Set the exact world coordinates for the marker:
{ "position": { "x": 100.5, "y": 65.0, "z": 200.5 }, "dimension": "minecraft:overworld"}Tips:
- Use
.5coordinates to center on blocks - Set Y slightly above ground for visibility
- For exclamation marks, place 2-3 blocks above NPC heads
Display Types
Section titled “Display Types”Markers support three display types using Minecraft 1.19.4+ display entities.
Text Display
Section titled “Text Display”Floating text with formatting support:
{ "display_data": { "name": "§e§l! §rNew Quest Available", "description": "Talk to the Quest Giver", "display_config": { "text": "§6§l!", "line_spacing": 1.0, "background_color": 0, "text_opacity": -1, "shadow": true, "see_through": true, "alignment": "CENTER", "scale": {"x": 3.0, "y": 3.0, "z": 3.0} } }}Text Formatting:
- Use § color codes or MiniMessage
\nfor multiple lines- Supports all Minecraft text formatting
Alignment Options:
LEFTCENTERRIGHT
Item Display
Section titled “Item Display”Floating items (great for quest objectives):
{ "display_data": { "name": "Collect Quest Item", "description": "Find and collect this item", "display_config": { "item": "minecraft:diamond", "count": 1, "custom_model_data": 0, "glowing": true, "scale": {"x": 2.0, "y": 2.0, "z": 2.0} } }}Item Options:
- Any Minecraft or modded item
- Custom model data support
- Glow effect available
- NBT data support
Block Display
Section titled “Block Display”Floating blocks (good for landmarks):
{ "display_data": { "name": "Important Location", "description": "Key story location", "display_config": { "block": "minecraft:beacon", "block_state": "", "glowing": true, "scale": {"x": 1.5, "y": 1.5, "z": 1.5} } }}Block Options:
- Any Minecraft or modded block
- Block state properties
- Glow effect available
Animation Settings
Section titled “Animation Settings”Bobbing
Section titled “Bobbing”Make markers float up and down:
{ "bobbing": true, "bobbing_speed": 1.0, "bobbing_height": 0.3}Speed Guidelines:
- Slow: 0.5
- Normal: 1.0
- Fast: 2.0
Height Guidelines:
- Subtle: 0.1-0.2
- Normal: 0.3-0.5
- Dramatic: 0.6-1.0
Rotation
Section titled “Rotation”Rotate markers over time:
{ "rotation": { "x": 0.0, "y": 45.0 }, "rotate_speed": 0.5}Rotation Axes:
x: Pitch (up/down tilt)y: Yaw (spinning)
Visibility Control
Section titled “Visibility Control”Basic Visibility
Section titled “Basic Visibility”Always visible:
{ "visibility_condition": "1.0"}Always hidden:
{ "visibility_condition": "0.0"}Quest-Based Visibility
Section titled “Quest-Based Visibility”Show only if player has quest:
{ "visibility_condition": "q.player.has_task('journey:main_quest');"}Hide after quest completion:
{ "visibility_condition": "q.player.has_completed_task('journey:main_quest') == 0.0;"}Zone-Based Visibility
Section titled “Zone-Based Visibility”Show only in specific zone:
{ "visibility_condition": "q.player.is_in_zone('journey:town_zone');"}Time-Based Visibility
Section titled “Time-Based Visibility”Show only during daytime:
{ "visibility_condition": "q.world.is_day;"}Combined Conditions
Section titled “Combined Conditions”Multiple requirements:
{ "visibility_condition": "q.player.has_task('journey:quest_1') && q.player.level >= 10.0;"}Task Integration
Section titled “Task Integration”Marker Phases
Section titled “Marker Phases”Update markers during quest progression:
{ "marker_phase": "phase_1"}In task configuration:
{ "task_id": "journey:my_quest", "phases": [ { "id": "phase_1", "markers": ["journey:quest_start_marker"] }, { "id": "phase_2", "markers": ["journey:quest_middle_marker"] } ]}Phase Benefits:
- Update marker positions as quest progresses
- Show/hide different markers per phase
- Guide players through multi-step quests
Render Distance
Section titled “Render Distance”Control how far away markers are visible:
{ "range": 64.0}Distance Guidelines:
- Close range (16-32): Detail markers, NPC indicators
- Medium range (32-64): Quest objectives, POIs
- Long range (64-128): Landmarks, major locations
Performance Note: Lower range = better performance
Complete Examples
Section titled “Complete Examples”Quest Giver Exclamation
Section titled “Quest Giver Exclamation”{ "id": "journey:quest_giver_mark", "position": {"x": 100.5, "y": 67.0, "z": 200.5}, "dimension": "minecraft:overworld", "display_data": { "name": "§e§l! §rNew Quest Available", "description": "Talk to the Quest Giver", "display_config": { "text": "§6§l!", "background_color": 0, "text_opacity": -1, "shadow": true, "see_through": true, "alignment": "CENTER", "scale": {"x": 3.0, "y": 3.0, "z": 3.0} }, "bobbing": true, "bobbing_speed": 1.0, "bobbing_height": 0.3 }, "visibility_condition": "q.player.has_completed_task('journey:intro_quest') == 0.0;", "range": 48.0}Item Collection Objective
Section titled “Item Collection Objective”{ "id": "journey:diamond_objective", "position": {"x": 250.5, "y": 65.0, "z": -100.5}, "dimension": "minecraft:overworld", "display_data": { "name": "Collect Diamonds", "description": "Mine 10 diamonds for the quest", "display_config": { "item": "minecraft:diamond", "count": 1, "glowing": true, "scale": {"x": 2.0, "y": 2.0, "z": 2.0} }, "rotation": {"x": 0.0, "y": 0.0}, "bobbing": true, "bobbing_speed": 0.8, "bobbing_height": 0.4 }, "visibility_condition": "q.player.has_task('journey:mining_quest');", "range": 64.0}Battle Arena Landmark
Section titled “Battle Arena Landmark”{ "id": "journey:battle_arena_beacon", "position": {"x": 0.5, "y": 70.0, "z": 0.5}, "dimension": "minecraft:overworld", "display_data": { "name": "§c§lBattle Arena", "description": "Elite battles await", "display_config": { "block": "minecraft:beacon", "glowing": true, "scale": {"x": 1.5, "y": 1.5, "z": 1.5} }, "bobbing": false }, "visibility_condition": "q.player.level >= 30.0;", "range": 128.0}Integration with Other Systems
Section titled “Integration with Other Systems”With Tasks
Section titled “With Tasks”Show markers during active quests:
{ "visibility_condition": "q.player.has_task('journey:your_quest');"}With Zones
Section titled “With Zones”Markers inside quest zones:
{ "visibility_condition": "q.player.is_in_zone('journey:dungeon_zone');"}With Quest Packages
Section titled “With Quest Packages”Lock markers behind package unlocks:
{ "visibility_condition": "q.player.has_package_unlocked('journey:chapter_1');"}Client Rendering
Section titled “Client Rendering”Journey Client Integration
Section titled “Journey Client Integration”Markers automatically render via Journey Client when installed.
HUD Features:
- Distance display
- Minimap integration
- Objective tracking
- Phase updates
Configuration:
config/journey/objective-markers.json (client-side)
Commands
Section titled “Commands”Marker Management
Section titled “Marker Management”# Reload markers/journey reload markers
# List all markers/journey marker list
# Teleport to marker/journey marker tp <marker_id>
# Toggle marker visibility/journey marker toggle <marker_id>Tips & Best Practices
Section titled “Tips & Best Practices”✅ Use appropriate heights: Place markers 2-3 blocks above targets
✅ Choose right display type:
- Text: Quest indicators, warnings
- Item: Collectibles, objectives
- Block: Landmarks, locations
✅ Reasonable render distance: Don’t set range too high (64-96 is usually enough)
✅ Meaningful visibility conditions: Hide markers when not relevant
✅ Consistent styling: Use similar colors/styles for marker categories
✅ Test visibility: Ensure markers are visible from expected angles
✅ Performance awareness: Too many markers = lag
Troubleshooting
Section titled “Troubleshooting”Marker Not Appearing
Section titled “Marker Not Appearing”- Check position coordinates
- Verify dimension is correct
- Check visibility_condition evaluates to 1.0
- Ensure player is within range
- Verify Journey Client is installed (if using client features)
Marker Too Small/Large
Section titled “Marker Too Small/Large”- Adjust scale values (1.0 = normal size)
- Text: Try 2.0-4.0
- Items: Try 1.5-2.5
- Blocks: Try 1.0-2.0
Marker Performance Issues
Section titled “Marker Performance Issues”- Reduce range
- Limit total marker count
- Disable bobbing on distant markers
- Use visibility conditions to hide when not needed
Storage Location
Section titled “Storage Location”Marker Definitions:
config/journey/markers/<name>.jsonClient Configuration:
config/journey/objective-markers.json