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

  1. Open the /quests/ folder and copy _example.yml to a new file, e.g. traveller.yml. The file name is the quest ID.

  2. Set the name, description, and reset-time for your quest.

  3. Add one or more entries under tasks, each referencing a task ID and its xp requirement.

  4. Configure the rewards to run when the quest completes.

  5. Run /ecoquests reload, then open /quests and 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

PartWhat it controls
Quest infoThe name, description, and reset timer
CategoryThe optional category this quest belongs to
TasksThe goals players complete and their XP requirements
RewardsWhat the player gets when the quest completes
Quest startWhen and how the quest begins
GUIHow 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

Where to go next

  • Build the goals: How to make a task covers the tasks a quest references.

  • Group quests: How to make a category covers grouping quests and rewarding category completion.

  • Default examples: the shipped quest configs are here.

  • Community configs: browse and import more on lrcdb.