How to Make a Quest
A quest is a goal made up of one or more tasks; when a player finishes every selected task, the quest completes and runs its rewards. Each quest is its own config file, and this page walks you through building one from scratch.
Quick start
Open the
/quests/folder and copy_example.ymlto a new file, e.g.traveller.yml. The file name is the quest ID.Set the
name,description, andreset-timefor your quest.Add one or more entries under
tasks, each referencing a task ID and itsxprequirement.Configure the
rewardsto run when the quest completes.Run
/ecoquests reload, then open/questsand confirm your quest shows up in the book.
Naming and IDs
The file name without .yml is the quest ID; it's what you use in commands and placeholders. Items referenced anywhere in the file (e.g. the GUI icon) use the Item Lookup System.
The structure of a quest
| Part | What it controls |
|---|---|
| Quest info | The name, description, and reset timer |
| Category | The optional category this quest belongs to |
| Tasks | The goals players complete and their XP requirements |
| Rewards | What the player gets when the quest completes |
| Quest start | When and how the quest begins |
| GUI | How the quest appears in the /quests menu |
# === Quest info: name, description, reset ===
name: "Traveller" # Shown in the GUI and the %quest% placeholder
description: "&7Stretch your legs! Walk around The Nether and find new places to explore."
reset-time: -1 # Minutes between resets; -1 disables. 1 day: 1440, 1 week: 10080, 1 month: 43200
# === Category: optional grouping ===
category: easy # The ID of a category file in /categories/; omit if not using categories
# === Tasks: the goals and their XP requirements ===
tasks:
- task: move # A task ID from the /tasks/ folder
xp: 1000 # XP needed on this task; use 1 for a single-action task
task-amount: -1 # How many of the above tasks to pick (resettable quests); -1 uses all
# === Rewards: what the player gets on completion ===
reward-messages: # Lines shown by the %rewards% placeholder in icons and messages
- " &8» &r&f+2 %ecoskills_defense_name%"
rewards: # Effects run when the quest completes
- id: give_item
args:
items:
- emerald 5
# === Quest start: when and how the quest begins ===
announce-start: false # Tell the player when the quest auto-starts
start-effects: [] # Effects run when the quest starts
start-conditions: # Conditions that auto-start the quest when met
- id: in_world
args:
world: world_nether
auto-start: true # Start automatically when conditions are met; if false, only /ecoquests start works
# === GUI: how the quest appears in /quests ===
gui:
enabled: true # Show this quest in the GUI
always: false # Show even when not started
item: paper # GUI icon, read via the Item Lookup System
Quest info
The basic identity of the quest and how often it resets.
name: "Traveller" # Shown in the GUI and the %quest% placeholder
description: "&7Stretch your legs! Walk around The Nether and find new places to explore."
reset-time: -1 # Minutes between resets; -1 disables. 1 day: 1440, 1 week: 10080, 1 month: 43200
Category
Assign the quest to a category so it counts toward category completion. The value must match a file name (without .yml) in the /categories/ folder.
category: easy # Omit this line if the quest does not belong to a category
See How to make a category for the full category setup.
Tasks
The list of tasks the player must complete, each with the XP needed to finish it.
# XP requirements accept placeholder math, e.g. %ecoskills_combat% * 100, or random(min,max)
tasks:
- task: move # A task ID from the /tasks/ folder
xp: 1000 # Use 1 when the task is a single action
# For resettable quests, how many of the above tasks to select; -1 uses all
task-amount: -1
Rewards
What the player receives when every task is done.
reward-messages: # Lines shown by the %rewards% placeholder in icons and messages
- " &8» &r&f+2 %ecoskills_defense_name%"
rewards: # Effects run when the quest completes
- id: give_item
args:
items:
- emerald 5
Quest start
Controls when the quest begins and what happens at that moment.
announce-start: false # Tell the player when the quest auto-starts
start-effects: [] # Effects run the moment the quest starts
start-conditions: # When all are met, the quest auto-starts (if auto-start is true)
- id: in_world
args:
world: world_nether
# If gui.always is true, unmet start-conditions show as not-met lines on the GUI icon
auto-start: true # If false, the quest can only be started with /ecoquests start
GUI
How the quest is displayed in the /quests book.
gui:
enabled: true # Show this quest in the GUI
always: false # Show even when the player hasn't started it
item: paper # GUI icon, read via the Item Lookup System