Conditions

Last updated Oct 28, 2026

Conditions

Conditions control when a player can accept or start a quest. They are defined under conditions: on each quest in quests.yml.

When a condition fails, the player sees a message and cannot receive the quest from the browser (or cannot progress, for some checks at pickup time).


Flat condition keys (quests.yml)

These keys are read by ConditionRegistry.parseConditions / checkConditions when the section has no type: field:

Key Requires Description
min-level Nothing Player XP level must be at least this value
max-level Nothing Player XP level must be at most this value
cost Vault Money deducted on accept when resources are consumed
min-sigils Nothing Minimum Sigil balance (not consumed)
sigil-cost Nothing Sigils deducted on accept
permission Nothing Player must have this permission node
world Nothing List of allowed world names
active-limit Nothing Max number of active quest types in the player's queue (checked separately)
item Nothing Format MATERIAL:amount (comma-separated for multiple)
consume-item Nothing true removes required items when the quest is accepted
time Nothing DAY or NIGHT
gamemode Nothing List of allowed gamemodes, e.g. ["SURVIVAL"]
placeholder PlaceholderAPI Expression such as %player_level% >= 30

Example

sigil_master_contract:
  display: "<#55FFFF>Sigil Contract"
  conditions:
    min-sigils: 15
    sigil-cost: 10
  objectives:
    - type: kill
      target: ZOMBIE
      amount: 20
  reward:
    sigils: 50
    money: 120

active-limit behavior

Counts active quest types in the player's queue, not total papers. Multiple copies of the same quest ID share one type slot. Queued copies of the same ID do not count toward the limit.

conditions:
  active-limit: 2

Placeholder conditions

Requires PlaceholderAPI. The value is resolved for the player, then compared:

conditions:
  placeholder: "%vault_eco_balance% >= 1000"

Supported operators: >=, <=, ==, !=, >, <.


Editor / typed condition forms

The in-game condition editor and typed YAML use a type: field. Registered types:

Type Purpose Main value keys
level Minimum level min-level
max-level Maximum level max-level
money Minimum balance (not consumed) min-money
money-cost Deduct money on start cost
sigils Minimum Sigils amount / min-sigils
sigil-cost Deduct Sigils on start sigil-cost
permission Permission node permission
world Allowed worlds world
active-limit Active quest type cap active-limit
item Required items (not consumed) item
item-cost Required items (consumed) item + consume
time DAY or NIGHT time
gamemode Allowed gamemodes gamemode
placeholder PlaceholderAPI expression expression / value
require-completed-quests Minimum total claimed quests count
require-quest-completed Specific quest IDs claimed quests: list

Specific prior quests (typed):

conditions:
  type: require-quest-completed
  quests:
    - lumberjack
    - zombie_slayer

Total completions (typed):

conditions:
  type: require-completed-quests
  count: 5

When type: is present, the loader deserializes that one typed condition (not the multi-flat-key path). Prefer flat keys for simple stacks (min-level + sigil-cost), or the editor for typed entries.


Random generator conditions (Premium)

random-generator.yml can randomly attach conditions to generated quests with per-tier values and chance percentages. See Random Quest Generator.


Root permission field

Separate from conditions.permission, a quest-level permission: field gates progress on the paper after pickup. Use conditions.permission to lock the browser entry.


Version 1.0.5

Still stuck? Ask about this page