Skip to content

Changelog


Journey Client is now available as an optional companion mod that enhances the player experience with HUDs and rendering features.

Party HUD:

  • Real-time party member display with health, armor, and hunger
  • Player face rendering from skins
  • Dimension indicators showing where party members are
  • Distance to party members
  • Pokémon display for party members
  • Offline members shown in grey
  • Configurable health display (hearts/bars/both)
  • Heart rendering with all status types (poisoned, withered, frozen, absorbing)
  • Absorption hearts shown as yellow hearts
  • Compact display for health over 20 (shows as 10 hearts + bonus)
  • Customizable HUD position, scale, and visibility

Global Task HUD:

  • Server-wide task progress tracking
  • Real-time updates when players contribute
  • Contributor count display
  • Compact mode option
  • Configurable position and scale

Zone Rendering:

  • Visual zone boundaries in-world
  • Configurable opacity and fade distances
  • Different colors based on zone type
  • Toggle zones on/off
  • Distance-based fading

Path Rendering:

  • Visualize NPC patrol paths
  • Preview paths before assigning to NPCs
  • Real-time path editor (press Z to toggle)
  • See waypoints and wait points

Levelable XP HUD:

  • XP progress ribbon replacing boss bars
  • Level-up animations
  • XP gain popups with fade effects
  • Configurable position

Buff Display:

  • Buff icons with duration timers
  • Scrollable buff list
  • Tooltip with buff details
  • Shows in-game and inventory

Notification System:

  • Toast notifications in corner
  • Large announcement banners
  • Action buttons in notifications
  • Multiple notifications simultaneously

Objective Rendering:

  • Quest markers as beacons in world
  • HUD markers for objectives
  • Toggle beacons and markers separately

Client Commands: Configure Journey Client features with /journeyclient commands:

# Global Task HUD
/journeyclient globaltask toggle # Enable/disable
/journeyclient globaltask compact # Compact mode
/journeyclient globaltask position <x> <y> # Set position
/journeyclient globaltask scale <scale> # Adjust scale
# Party HUD
/journeyclient party toggle # Enable/disable party HUD
/journeyclient party healthstyle <mode> # Switch between hearts/bar/both
/journeyclient party anchor <position> # Position HUD (top-left, top-right, bottom-left, bottom-right)
/journeyclient party scale <value> # Adjust HUD scale (0.1-3.0)
/journeyclient party offset <x> <y> # Set position offset
/journeyclient party armor # Toggle armor display
/journeyclient party hunger # Toggle hunger display
/journeyclient party distance # Toggle distance display
/journeyclient party dimension # Toggle dimension indicator
/journeyclient party info # Show current settings
# Zone Rendering
/journeyclient zone opacity <value> # Base opacity
/journeyclient zone fadestart <distance> # Fade start distance
/journeyclient zone fadeend <distance> # Fade end distance
/journeyclient zone toggle # Enable/disable
# Objective Rendering
/journeyclient objective beacons # Toggle beacons
/journeyclient objective markers # Toggle HUD markers
# Edit Modes
/journeyclient editmode path # Toggle path edit
/journeyclient editmode zone # Toggle zone edit

Performance:

  • Distance culling for far objects
  • Frustum culling for off-screen objects
  • Configurable render distances
  • Minimal FPS impact
  • Optimized party updates with efficient change detection
  • Reduced network traffic
  • Fast 0.25 second update interval for responsive syncing

Global Task System: Create server-wide tasks that all players contribute to together. Perfect for community events, server milestones, and collaborative goals.

  • All players contribute to the same task simultaneously
  • Track individual contribution amounts per player
  • Active participant count displayed
  • Subtask system for multi-stage goals
  • Optional boss bars for progress display
  • Cross-server support via NATS messaging
  • Progress persists through server restarts
  • Event-driven updates (not tick-based)
  • Automatic notifications when tasks start, progress, and complete
  • Real-time HUD with Journey Client
  • Configure in config/journey/global_tasks/

Party System: Team up with other players to track each other’s status and location.

  • Create and manage parties with /party commands
  • Party invite notifications with Accept/Decline buttons (30 second expiration)
  • Join/leave notifications to all party members
  • Real-time health, position, and armor synchronization
  • Pokémon team sharing within party
  • Offline member tracking - see when party members disconnect
  • Immediate status updates when members join or leave
  • Configurable party GUI in assets/journey/guis/party.json

Buff System: Apply temporary or permanent buffs/debuffs to players with full customization.

Four buff types available:

  • Attribute Buffs: Modify player stats (health, speed, attack, etc.)
  • Potion Effects: Apply vanilla status effects
  • Script Buffs: Use MoLang scripts on apply/tick/remove events
  • Shiny Chance Buffs: Increase shiny Pokémon encounter rates

Features:

  • Tick-based duration countdown (-1 for permanent)
  • Stackable with configurable max stacks
  • Hidden buffs for secret effects
  • Supports debuffs (negative effects)
  • Visual icons with duration timers (Journey Client)
  • Buff rewards from tasks
  • Configure in config/journey/buffs/

Commands:

/journey buff give <player> <buff_id> [duration] [stacks] # Give buff
/journey buff remove <player> <buff_id> # Remove buff
/journey buff clear <player> # Clear all buffs
/journey buff list [player] # List active buffs

Quest Item System - Backpack: Separate inventory for quest items so they don’t clutter player inventories.

  • Dedicated quest item storage (default 54 slots, configurable)
  • Separate from player inventory
  • Full NBT support (stores custom items with lore, names, custom model data)
  • Items persist through death (configurable)
  • Prevent dropping/trading (configurable)
  • Stacking support for matching items
  • Auto-collection option
  • Open with /journey backpack or configurable keybind
  • Configurable GUI in assets/journey/guis/backpack.json

Quest Item System - Task Items: Tasks can require collecting specific items to complete.

  • Item-based task requirements with counts
  • Auto-detects items in inventory AND backpack
  • Consumption options: consume on complete or return on failure
  • NBT matching support for custom items
  • Visual progress tracking
  • Configure in task requiredItems field

Contract System: Player-to-player agreement system allowing players to create custom quests for each other.

  • In-game contract builder GUI for creating custom contracts
  • Contract items that can be traded between players
  • Custom terms: task completion, item delivery, zone visits, battles
  • Fulfillments: define rewards for completion
  • Penalties: consequences for failure
  • Multiple participant types
  • Escrow support for safe item trading
  • Event-driven progress tracking
  • Expiration system with time limits
  • Repeatable contracts option

Use cases:

  • Player bounties: “Pay 1000 coins to defeat 20 Rattata”
  • Resource commissions: “Need 64 diamonds - will trade shiny Charmander”
  • Event contracts: “First to complete parkour gets rare items”

Commands:

/journey contract create # Open contract builder
/journey contract list [player] # List active contracts
/journey contract accept <id> # Accept a contract
/journey contract complete <id> # Complete a contract
/journey contract abandon <id> # Abandon a contract

Bounty Boards: Physical boards displaying rotating pools of pre-configured server tasks.

  • Rotating task pools from server-configured tasks (NOT player-created)
  • Schedule-based rotation (daily/weekly/custom intervals)
  • Display limited number of tasks at once
  • Task unlock conditions via MoLang
  • Deterministic rotation with optional seeds
  • Permission-based board access
  • Physical board locations in world
  • Configure boards in config/journey/bounty_boards/
  • Configure task pools with weighted selection

Example board config:

{
"id": "town_board",
"name": "Town Bulletin Board",
"taskPool": [
"journey:rattata_hunt",
"journey:ore_gathering",
{
"taskId": "journey:advanced_quest",
"unlockCondition": "q.player.level >= 10"
}
],
"displayedTasks": 5,
"rotationInterval": 24000,
"requiredPermission": "journey.bountyboard.town"
}

Marker System: Add quest markers to the world with particles, beacons, and HUD indicators.

Features:

  • Quest markers for specific locations
  • Quest areas with 3D boundaries (box, sphere, cylinder)
  • Multi-phase support (markers change during quest progression)
  • Particle effects with configurable types and counts
  • Beacon rendering with Journey Client
  • HUD markers showing direction and distance
  • Per-player visibility via MoLang conditions
  • Activation radius for triggering events

Configuration: Markers in config/journey/markers/:

Simple marker:

{
"id": "merchant_location",
"name": "Friendly Merchant",
"position": {"x": 100, "y": 64, "z": 200},
"icon": "minecraft:emerald",
"activationRadius": 5.0,
"particle": {"type": "END_ROD", "count": 10},
"visibilityCondition": "q.has_completed_task('intro_quest')"
}

Commands:

/journey marker create <id> # Create marker
/journey marker remove <id> # Remove marker
/journey marker list # List all markers

NPC Visibility System: Control which players can see specific NPCs for phased quest content.

  • Per-player NPC visibility control
  • MoLang conditions for show/hide rules
  • Global conditions (apply to all players)
  • Per-player overrides (specific player rules)
  • Periodic checks with configurable intervals
  • Perfect for quest progression and phasing
  • Configure in NPC configs

Configurable GUI System: Fully customize all Journey GUIs with JSON configuration.

18 widget types available:

  • Button, Display, ProgressBar, Slider, Toggle, TextInput
  • BackpackSlots, BountyTaskList, PartyMemberList, PartySettings
  • PokemonTeam, SkillList, SubtaskList, TaskList, ObjectiveList
  • Navigation, InviteList, Tracking

Features:

  • Conditional visibility using MoLang
  • Placeholder text support
  • Color customization
  • Click actions
  • Hover tooltips
  • Dynamic content updates
  • Multi-page support
  • Configure in assets/journey/guis/*.json

Available GUIs:

  • journal.json - Quest journal
  • task_detail.json - Task details
  • party.json - Party management
  • party_create.json - Party creation
  • party_invites.json - Party invites
  • levelable.json - Levelable skills
  • backpack.json - Quest item backpack
  • bounty_board.json - Bounty board
  • team_select.json - Team selection

Renewable Resources: Weighted loot pools for interactable resource nodes.

  • Defines resources with weights for random selection
  • Full ItemStack support with NBT
  • Integrates with renewable interactables
  • Perfect for gathering quests and resource nodes
  • Configure in config/journey/renewables/

Quest Packages: Organize quests into folders and categories with hierarchical structure.

  • Group quests into packages (folders) with metadata
  • Nested sub-packages for better organization
  • Enable/disable entire packages at once
  • Requirements to unlock packages (level, tasks, permissions, MoLang)
  • Package metadata: author, version, icon, category, tags
  • Seasonal/event packages with date ranges
  • Priority ordering for display
  • Filter quests by category or tags
  • Auto-generated packages from folder structure
  • Configure with _package.json in quest directories

NPC Pathing: Create custom patrol routes for NPCs with visual path editor.

  • Create custom NPC patrol routes
  • NPCs follow paths automatically
  • Resumes after server restarts
  • Visual path editor with /journey pathmanager GUI
  • Preview paths before assigning
  • Edit and duplicate existing paths
  • Assign paths to NPCs in-game
  • Live path visualization with Journey Client (toggle on/off)
  • Configure paths in config/journey/paths/

Interactables: Create custom interactable entities with scripting.

  • Custom interactable entities
  • Configure hitbox sizes, display models, and behavior
  • MoLang scripting for click interactions and visibility
  • Per-player cooldowns and visibility conditions
  • Custom display models (blocks or items)
  • Use for: healing shrines, fast travel points, puzzle elements, quest triggers

Commands:

/journey interactable summon <type> <x> <y> <z> # Summon an interactable
/journey interactable remove <id> # Remove an interactable
/journey interactable list # List all interactables
/journey interactable reload # Reload configs

Task System:

  • Item-based task requirements with auto-completion
  • Better progress tracking with timestamps
  • Per-subtask progress display
  • Contribution tracking for each player
  • Completion timestamps and attempt counters
  • New event types: battle actions, item collection, NPC interactions
  • Improved repeat system: daily, weekly, or custom intervals
  • Daily reset at configured time
  • Weekly reset on specific day
  • Custom interval resets
  • Track completion count

Zone System:

  • New zone events: enter, exit, inside, area-based
  • New zone functions: disable_pvp, disable_mob_spawning, regenerate_health
  • Hot-reload zone configs without restarting server
  • Better handling of zone tags and functions
  • Zone rendering with Journey Client
  • Configure in config/journey/zones/

Example zone config:

{
"id": "safe_zone",
"name": "Safe Zone",
"shape": {
"type": "sphere",
"center": {"x": 0, "y": 64, "z": 0},
"radius": 100
},
"functions": [
"disable_pvp",
"disable_mob_spawning",
"regenerate_health"
],
"tags": ["safe", "town"]
}

Path System:

  • NPC path data persists through server restarts
  • Hot-reload support
  • Path validation on load
  • Visual preview with Journey Client

Example path config:

{
"id": "town_patrol",
"nodes": [
{
"position": {"x": 0, "y": 64, "z": 0},
"waitTime": 100,
"actions": ["animation:wave"]
}
],
"loop": true,
"reverse": false
}

Commands:

/journey pathmanager # Open path manager GUI
/journey path create <id> # Create new path
/journey path assign <npc> <path_id> # Assign path to NPC
/journey path preview <id> # Preview path

Levelable System:

  • Journey Client: XP ribbon HUD (replaces boss bars)
  • Level-up animations
  • XP gain popups with fade effects

Commands:

/journey levelable give <player> <levelable> # Give levelable
/journey levelable progress <player> <levelable> <xp> # Add XP
/journey levelable respec <player> <levelable> # Reset levelable
/journey levelable switch <player> <levelable> # Switch active
/journey levelable gui [player] # Open GUI

Zone System (70% Faster):

  • Massive optimization to zone tick processing
  • Reduced server lag from zone checks
  • Better handling of players across different dimensions
  • Faster detection for players entering/exiting zones
  • Batched player checks per dimension
  • Optimized shape calculations
  • Early exit for distant players

Memory Management:

  • Automatic cache cleanup every 5 minutes
  • Player data properly cleared on disconnect
  • Prevents memory from growing indefinitely on long-running servers
  • Improved handling of offline player data
  • Fixed unbounded memory growth in task caches

Sidebar & UI:

  • Sidebars only update when something changes (no more constant rebuilds)
  • Smoother HUD updates
  • Reduced CPU usage for quest tracking display

Task System:

  • Removed constant background script checking
  • Task events now trigger only when needed
  • Better performance on servers with many active tasks
  • Now event-driven instead of per-tick execution

Zone System:

  • Fixed memory leak that accumulated zone listeners
  • Fixed duplicate damage/hunger/attack prevention events
  • Fixed zone tracking causing crashes when players logout
  • Fixed zones not properly cleaning up when removed
  • Fixed duplicate events when reloading zone configs
  • Zone removal now properly deletes config files
  • Fixed zone player tracking with stale UUIDs

Task System:

  • Fixed task UI crashes when icons are missing (now shows barrier icon as fallback)
  • Fixed sequential tasks skipping optional steps incorrectly
  • Fixed tracked tasks not removing from sidebar properly
  • Fixed login rewards not granting correctly
  • Fixed crash loops when task scripts are missing
  • Fixed MoLang error spam in console

Levelable System:

  • Fixed XP calculation errors with multiple levelables
  • Fixed active levelable not persisting through logout

Path System:

  • Fixed path data not persisting through server restart
  • Fixed NPC path assignments being lost
  • Fixed NPC positions drifting over time

Configuration:

  • Cleaner error messages for malformed configs
  • Reduced redundant warning messages in console

Party Commands:

/party create # Create a new party
/party invite <player> # Invite a player
/party kick <player> # Kick a party member
/party leave # Leave current party
/party promote <player> # Promote member to leader
/party disband # Disband the party

Buff Commands:

/journey buff give <player> <buff_id> [duration] [stacks] # Give buff
/journey buff remove <player> <buff_id> # Remove buff
/journey buff clear <player> # Clear all buffs
/journey buff list [player] # List active buffs

Backpack Commands:

/journey backpack [player] # Open backpack GUI

Path Management:

/journey pathmanager # Open path management GUI
/journey path create <id> # Create new path
/journey path assign <npc> <id> # Assign path to NPC
/journey path preview <id> # Preview path

Interactables:

/journey interactable summon <type> <x> <y> <z> # Summon an interactable
/journey interactable remove <id> # Remove an interactable
/journey interactable list # List all interactables
/journey interactable reload # Reload configs

Levelables:

/journey levelable give <player> <levelable> # Give levelable
/journey levelable progress <player> <levelable> <xp> # Add XP
/journey levelable respec <player> <levelable> # Reset levelable
/journey levelable switch <player> <levelable> # Switch active
/journey levelable gui [player] # Open GUI

Global Tasks:

query.global_task_active(task_id)
query.global_task_progress(task_id, subtask_id)
query.global_task_contributors(task_id)

Party:

query.party_size()
query.in_party()
query.party_leader_name()

Buffs:

query.has_buff(buff_id)
query.buff_duration(buff_id)
query.buff_stacks(buff_id)

Task Items:

query.task_item_count(task_id, item)
query.task_item_required(task_id, item)
query.task_item_progress(task_id, item)

Backpack:

query.backpack_count(item)
query.backpack_has(item)

Zones:

query.in_zone(zone_id)
query.zone_time_inside(zone_id)

Levelables:

query.levelable_level(levelable_id)
query.levelable_xp(levelable_id)
query.active_levelable()

Messages Configuration: New assets/journey/messages.json for all notification text with placeholder support.

Example:

{
"globalTasks": {
"started": "&6[Global Task] &aStarted: {task_name}",
"completed": "&6[Global Task] &eCompleted: {task_name}!",
"progress": "&6[Global Task] &b{task_name}: {progress}%"
},
"party": {
"invite": "&aYou've been invited to {leader}'s party!",
"joined": "&a{player} joined the party!",
"left": "&c{player} left the party."
}
}

Configuration Locations:

  • Global Tasks: config/journey/global_tasks/
  • Zones: config/journey/zones/
  • Paths: config/journey/paths/
  • Buffs: config/journey/buffs/
  • Bounty Boards: config/journey/bounty_boards/
  • Renewables: config/journey/renewables/
  • Packages: config/journey/packages/
  • GUIs: assets/journey/guis/*.json
  • Messages: assets/journey/messages.json

Hot-Reload Support:

  • Interactables and paths load automatically on startup
  • Journal settings save per-player
  • Visualization toggles persist through logout
  • Most configs can be reloaded without restart

Task Configuration:

  • Task items now use requiredItems array instead of items
  • Repeat types simplified - check RepeatType enum values
  • New reward type: "type": "buff" for buff rewards

Zone Configuration:

  • Zone functions and tags now merged in single functions array
  • Shape configuration slightly changed for consistency

Messages:

  • Global task messages moved to messages.json
  • Party messages moved to messages.json
  • Use placeholders like {player_name} instead of %player%

  • Removed per-task MoLang execution from server tick (now event-driven)
  • Removed fake entity system (replaced with better alternatives)
  • Removed “per-player structures” feature. To be replaced with a more robust system in future.
  • Removed deprecated path manager commands (use /journey pathmanager GUI instead)

Journey is a closed-source mod.