Skip to main content

Creating a Category

Creating a quest category is relatively simple once you understand the configuration.

This is a full example quest category configuration file:

name: Weekly
refreshTime: 604800
questsAmount: 1

quests:
  '1':
    weight: 1.0
    stages:
      '1':
        type: BLOCK_BREAK
        condition: "'%block%' == 'COBBLESTONE'"
        goal: 10
        rewards:
          - '[Message] text=<green>Completed the first quest stage!'
        item:
          material: COBBLESTONE
          name: '<red><bold>Block Break Quest'
          lore:
            - '<gray>Break 10 Cobblestone!'
            - '<gray>Progress: <yellow>%current%/%goal%'
            - '<gray>Stage: <yellow>1/2'
      '2':
        type: BLOCK_BREAK
        condition: "'%block%' == 'DIAMOND_BLOCK'"
        goal: 1
        rewards:
          - '[Message] text=<green>Completed the final quest stage!'
        item:
          material: COBBLESTONE
          name: '<red><bold>Block Break Quest'
          lore:
            - '<gray>Break 1 Diamond Block!'
            - '<gray>Progress: <yellow>%current%/%goal%'
            - '<gray>Stage: <yellow>2/2'
    completeItem:
      material: COBBLESTONE
      name: '<green><bold>Block Break Quest'
      lore:
        - '<gray>Progress: <yellow>Complete!'

inventorySettings:
  rows: 3
  title: '<green>Weekly Quests'
  questSlots:
    - 13
  • name: This parameter defines the internal name of your category. This must be unique across all categories.
  • refreshTime: The amount of time in seconds between refreshes. This is preserved across server restarts.
  • questsAmount: The amount of quests to load for this category. Make sure you have at least the amount of quests you're specifying here, otherwise the plugin will not load properly.
  • quests:
    • weight: The weight of this quest when it is being picked for the rotation.
    • stages: This section defines the stages of the quest. You can add as many as you'd like.
      • type: The quest type. There's built-in ones and you can add more through expansions.
      • condition: The condition to evaluate when the action is performed. This can be removed, and all events will count. You can compare strings and numbers. For comparing strings, make sure you encapsulate them around quotes.
      • goal: The amount of times the action has to be performed to complete the quest.
      • rewards: The rewards of completing this quest stage. Check the Actions page for more information.
      • item: This is the item used for this quest stage.
        • This supports custom model data and skull textures. Example:
        • item:
            material: PLAYER_HEAD
            headTexture: 'example'
            name: '<green><bold>Example Quest'
            lore:
              - '<gray>Break 100 cobblestone blocks!'
        • Model data example:
        • item:
            material: PAPER
            modelData: 10000
            name: '<green><bold>Example Quest'
            lore:
              - '<gray>Break 100 cobblestone blocks!'
    • completeItem: Item used to represent a completed quest. Also supports the same format as above.
  • inventorySettings:
    • rows: The amount of rows this category inventory has.
    • title: The title of this inventory.
    • questSlots: Defines where the quest items will be located.
    • customItems:
      • You can define custom items here. You need to define material, name, lore, slot(s), and actions to execute.

If you need more help creating your quest categories, feel free to reach out on Discord!