Skip to content

Add progress conditions

Conditions stop an otherwise matching action from adding progress.

Choose the level

  • A quest condition applies to every task in the quest.
  • A task condition applies only to that task.

Place a condition as close as possible to the task that needs it. Every configured condition must pass before progress increases.

Player context conditions

Use game_modes to stop progress in modes such as Creative or Spectator:

conditions:
  game_modes:
    required:
      - SURVIVAL
      - ADVENTURE
    error-message: "&cUse Survival or Adventure mode."

Use biomes to restrict progress to biomes supported by the running server:

conditions:
  biomes:
    required:
      - PLAINS
      - FOREST
    error-message: "&cGo to a plains or forest biome."

Game mode and biome names ignore case. The lists cannot be empty. A biome from a newer Minecraft version can be invalid on an older server.

Use height to set an inclusive block Y range:

conditions:
  height:
    minimum: -64
    maximum: 32
    error-message: "&cMine at Y 32 or below."

You can omit either boundary, but you must set at least one. The minimum cannot be greater than the maximum.

For a complete Survival mining quest, see Underground miner.

Permission condition

conditions:
  permissions:
    required:
      - server.quests.stonebreaker
      - server.world.resource
    mode: ALL
    error-message: "&cYou cannot progress this quest."

ALL requires every listed permission. ANY requires at least one. The mode defaults to ALL.

BDQ uses Bukkit permission checks, including permissions granted by your permission plugin. The required list cannot be empty.

World condition

conditions:
  worlds:
    - world
    - resource_world

World names must match the server names exactly.

Enchantment condition

conditions:
  required_enchants:
    required_level: 3
    required_types:
      - FORTUNE
    error-message: "&cUse an item with Fortune III."

This condition checks enchantments available in the task event. Use it with item-related tasks.

Sheep condition

conditions:
  sheep_color: WHITE

Use a Bukkit dye-color name. The condition only restricts an event when its entity is a sheep.

Villager condition

conditions:
  required_villager:
    required_professions:
      - FARMER
    required_types:
      - PLAINS
    required_level: 2
    error-message: "&cUse a level 2 plains farmer."

Empty profession or type lists mean that field has no restriction.

Placeholder condition

conditions:
  placeholders:
    ready-state:
      placeholder: "%some_plugin_state%"
      match: "ready"
    minimum-balance:
      placeholder: "%vault_eco_balance_fixed%"
      match: "100"
      comparator: MORE_EQUAL

PlaceholderAPI must be installed for external placeholders to resolve.

Text values use exact, case-sensitive equality. Numeric values support MORE, MORE_EQUAL, EQUAL, LESS_EQUAL, and LESS. A numeric comparator fails when the resolved value is not a number.

Invalid conditions

BDQ does not load a quest when one of its conditions is malformed. The first load warning identifies the Quest ID and configuration error. Fix the YAML, then run bdq reload again.

Test both results

For every condition, perform one action that should pass and one that should fail. A condition that does not apply to an event can allow the event, so do not place entity-specific conditions on unrelated tasks.

See Progress condition reference for every accepted shape.

Next step

Add rewards and progress messages.