Skip to content

Configuration

Journey stores all configuration in config/journey/. The main settings file is config.json, and each system has its own subdirectory for content files.


On first start, Journey creates:

config/journey/
├── config.json # Main server configuration
├── messages.json # Customizable messages
├── npc_paths.json # NPC path assignments
├── tasks/ # Quest definitions
├── zones/ # Zone configurations
├── levelables/ # Skill/progression systems
├── timelines/ # Scripted sequences
├── buffs/ # Buff definitions
├── bounty_boards/ # Bounty board configs
├── global_tasks/ # Server-wide tasks
├── markers/ # Quest markers
├── interactables/ # Interactive entities
└── paths/ # NPC patrol paths

File: config/journey/config.json

{
"debug": false,
"subtask_separator_character": "<gold>┃</gold>",
"task_description_separator_character": "<gold>┇</gold>",
"subtask_description_separator": "<gold>╏</gold>",
"quest_sidebar_title": "<gold>Quests",
"task_description_max_length": 48,
"subtask_description_max_length": 48,
"max_tasks_shown": 2,
"show_description_in_sidebar": false,
"daily_reset_time": "00:00",
"weekly_reset_day": "Monday",
"monthly_reset_day": 1,
"reset_time_zone": "UTC",
"yearly_reset_date": "01-01",
"completed_task_model": "minecraft:paper",
"uncompleted_task_model": "minecraft:book",
"back_button_model": "minecraft:arrow",
"forward_button_model": "minecraft:arrow",
"close_button_model": "minecraft:barrier",
"journal_menu_title": "<blue>Journal",
"journal_task_menu_title": "<blue>{task_name}",
"server_name": "Server",
"default_currency": "impactor:dollars",
"levelable_mode": "multi_active",
"levelable_max_count": -1,
"levelable_switch_cooldown_seconds": 0,
"levelable_respec_cost": 0.0,
"levelable_respec_confirmation_required": true,
"levelable_respec_currency": "impactor:dollars",
"party_enabled": true,
"party_max_size": 10,
"party_task_sync_enabled": true,
"global_tasks_enabled": true,
"global_tasks_central_server": "",
"is_global_tasks_central_server": false
}

SettingTypeDefaultDescription
debugBooleanfalseEnable verbose logging for troubleshooting
SettingTypeDefaultDescription
subtask_separator_characterString<gold>┃</gold>Separator between subtasks in the UI
task_description_separator_characterString<gold>┇</gold>Separator for task descriptions
subtask_description_separatorString<gold>╏</gold>Separator for subtask descriptions
SettingTypeDefaultDescription
quest_sidebar_titleString<gold>QuestsTitle at the top of the sidebar
task_description_max_lengthInteger48Max characters for task descriptions
subtask_description_max_lengthInteger48Max characters for subtask descriptions
max_tasks_shownInteger2Number of tasks shown in sidebar
show_description_in_sidebarBooleanfalseShow task descriptions in sidebar
SettingTypeDefaultDescription
journal_menu_titleString<blue>JournalTitle for the journal menu
journal_task_menu_titleString<blue>{task_name}Title for task detail view
completed_task_modelStringminecraft:paperItem icon for completed tasks
uncompleted_task_modelStringminecraft:bookItem icon for incomplete tasks
back_button_modelStringminecraft:arrowItem icon for back button
forward_button_modelStringminecraft:arrowItem icon for forward button
close_button_modelStringminecraft:barrierItem icon for close button

These control when repeatable tasks reset.

SettingTypeDefaultDescription
daily_reset_timeString00:00Time of day for daily resets (24-hour format)
weekly_reset_dayStringMondayDay of the week for weekly resets
monthly_reset_dayInteger1Day of the month for monthly resets (1-31)
yearly_reset_dateString01-01Date for yearly resets (MM-DD)
reset_time_zoneStringUTCTimezone for all resets
SettingTypeDefaultDescription
server_nameStringServerDisplay name for this server
default_currencyStringimpactor:dollarsDefault Impactor currency ID
SettingTypeDefaultDescription
levelable_modeStringmulti_activeHow levelables behave (see below)
levelable_max_countInteger-1Max active levelables (-1 = unlimited)
levelable_switch_cooldown_secondsInteger0Cooldown between switching active levelables
levelable_respec_costDouble0.0Currency cost to reset a levelable
levelable_respec_confirmation_requiredBooleantrueRequire confirmation before respec
levelable_respec_currencyStringimpactor:dollarsCurrency used for respec

Levelable Modes:

ModeDescription
single_activeOnly one levelable can be active at a time
multi_activeMultiple levelables active, limited by levelable_max_count
all_activeAll levelables always active
SettingTypeDefaultDescription
party_enabledBooleantrueEnable the party system
party_max_sizeInteger10Maximum players per party
party_task_sync_enabledBooleantrueShare task progress between party members
SettingTypeDefaultDescription
global_tasks_enabledBooleantrueEnable the global task system
global_tasks_central_serverString""Name of the authoritative server
is_global_tasks_central_serverBooleanfalseWhether this server is the central server

For multi-server setups, designate one server as central. See Ceremony Integration for details.


All text fields support MiniMessage formatting:

{
"name": "<gold><bold>Epic Quest",
"description": [
"<yellow>Complete this <blue>challenging</blue> quest",
"<gray>Rewards: <green>500 PokeDollars"
]
}

Common tags: <red>, <green>, <blue>, <yellow>, <gold>, <gray>, <bold>, <italic>, <gradient:red:blue>.


Reload configurations without restarting the server:

/journey reload

This reloads tasks, zones, levelables, timelines, buffs, markers, interactables, paths, bounty boards, and messages.


  1. Create your first task — build a real quest
  2. Set up zones — define areas in your world
  3. Explore MoLang scripting — add dynamic logic to everything