Skip to content

Task Items

Task Items are items with embedded quest tracking. Give a player a piece of paper that tracks “Catch 5 Pokemon” and it updates automatically as they play. When the task completes, the item can be removed, kept as a trophy, or transformed into a reward.


  1. You create a normal task in config/journey/tasks/
  2. You give it to a player as a task item using a command
  3. The item tracks progress using Journey’s event system — same events, same filters
  4. The item’s name and lore update automatically to show progress
  5. When complete, the item behaves according to its completion behavior

/journey taskitem give <player> <task_id> <item> [completion_behavior]

Examples:

/journey taskitem give @p journey:catch_5_pokemon minecraft:paper
/journey taskitem give @p journey:gym_challenge minecraft:diamond KEEP_ITEM
/journey taskitem give @p journey:exploration cobblemon:poke_ball REMOVE_ITEM
ParameterDescription
playerTarget player
task_idID of an existing task (must be in config/journey/tasks/)
itemBase item to use (e.g., minecraft:paper)
completion_behaviorWhat happens when the task finishes (default: REMOVE_ITEM)

The item is removed from the player’s inventory when the task completes.

Best for: Daily quests, consumable challenges, one-time objectives.

The item stays in the player’s inventory, marked as completed. The name shows [COMPLETED] and lore shows 100% Complete.

Best for: Achievement trackers, collectibles, trophies.

The item is replaced with the task’s first reward item (configured via command rewards in the task).

Best for: Progressive items that “evolve” on completion.


Task items use the same task format as regular tasks. Create the task file first, then give it as an item.

File: config/journey/tasks/catch_5_pokemon.json

{
"name": "<gold>Catch 5 Pokemon",
"description": ["<gray>Capture any 5 Pokemon"],
"sequential": "linear",
"rewards": [],
"tasks": [
{
"id": "capture_5",
"name": "Capture Pokemon",
"event": "POKEMON_CAPTURE",
"filter": "1.0",
"target": 5,
"rewards": []
}
]
}

Then give it:

/journey taskitem give @p journey:catch_5_pokemon minecraft:paper REMOVE_ITEM

Task items automatically update their name and lore as progress changes:

In-Progress:

§6[Quest] Catch 5 Pokemon
§7Progress: §e2/5 §7(§e40%§7)

Completed (KEEP_ITEM):

§a[COMPLETED] Catch 5 Pokemon
§7Progress: §a5/5 §7(§a100%§7)

Updates happen whenever progress changes, subtasks complete, or the task finishes.


Track 100 battle victories, kept as a diamond trophy:

Task: config/journey/tasks/battle_achievement.json

{
"name": "<red>Battle Master",
"description": ["<gray>Win 100 battles"],
"sequential": "linear",
"rewards": [
{
"type": "currency",
"data": {
"currency_id": "impactor:pokedollars",
"amount": 5000
}
}
],
"tasks": [
{
"id": "win_battles",
"name": "Win Battles",
"event": "BATTLE_VICTORY",
"filter": "1.0",
"target": 100,
"rewards": []
}
]
}

Command:

/journey taskitem give @p journey:battle_achievement minecraft:diamond KEEP_ITEM

Sequential gym challenge that transforms into a badge:

Task: config/journey/tasks/gym_quest.json

{
"name": "<blue>Gym Challenge",
"description": ["<gray>Complete the gym challenge"],
"sequential": "sequential",
"rewards": [
{
"type": "command",
"data": {
"command": "give {player} cobblemon:gym_badge 1"
}
}
],
"tasks": [
{
"id": "defeat_trainers",
"name": "Defeat 3 Trainers",
"event": "BATTLE_VICTORY",
"filter": "q.battle.is_pvw == 0.0",
"target": 3,
"rewards": []
},
{
"id": "defeat_leader",
"name": "Defeat Gym Leader",
"event": "BATTLE_VICTORY",
"filter": "q.entity.uuid == 'gym-leader-uuid'",
"target": 1,
"rewards": []
}
]
}

Command:

/journey taskitem give @p journey:gym_quest cobblemon:poke_ball TRANSFORM_ITEM

Track visits to multiple regions in any order:

Task: config/journey/tasks/explore_regions.json

{
"name": "<green>Explorer",
"description": ["<gray>Visit all major regions"],
"sequential": "linear",
"rewards": [],
"tasks": [
{
"id": "visit_kanto",
"name": "Visit Kanto",
"event": "ENTER_ZONE",
"filter": "q.zone.uuid == 'kanto-zone-uuid'",
"target": 1,
"rewards": []
},
{
"id": "visit_johto",
"name": "Visit Johto",
"event": "ENTER_ZONE",
"filter": "q.zone.uuid == 'johto-zone-uuid'",
"target": 1,
"rewards": []
}
]
}

Command:

/journey taskitem give @p journey:explore_regions minecraft:compass KEEP_ITEM

CommandPermissionDescription
/journey taskitem give <player> <task_id> [item] [behavior]journey.command.taskitemCreate a task item
/journey taskitem listjourney.command.taskitemList available task items
/givetaskitem <player> <item> <task> [behavior]journey.command.givetaskitemSimplified task item command

  • Task items must be in the player’s inventory to track progress (not in chests or storage)
  • All progression types work: linear, sequential, and randomized
  • All event types and filters work the same as regular tasks
  • Keep subtask counts reasonable (3-5) for a good item lore display
  • Choose meaningful base items: paper for quests, diamonds for achievements, compasses for exploration
  • The task must exist in config/journey/tasks/ before you can give it as an item