Skip to main content

Creating a Pouch

Creating a pouch is relatively simple once you understand the configuration.

This is a full example pouch configuration file:

name: Example
weight: 0.1

lockedItem:
  material: DIAMOND_BLOCK
  name: '<red><bold>Example Pouch'
  lore:
    - '<gray>Break 100 cobblestone blocks and'
    - '<gray>10 diamond ores to unlock this pouch!'
    - ''
    - '<yellow>Cobblestone: %progress_breakCobblestone%/%goal_breakCobblestone%'
    - '<yellow>Diamond Ores: %progress_breakDiamonds%/%goal_breakDiamonds%'
unlockedItem:
  material: DIAMOND_BLOCK
  name: '<green><bold>Example Pouch'
  lore:
    - '<gray>Break 100 cobblestone blocks and'
    - '<gray>10 diamond ores to unlock this pouch!'
    - ''
    - '<yellow>Click to open!'

singleMission: false
missions:
  breakCobblestone:
    type: BLOCK_BREAK
    goal: 100
    parameters:
      blocks:
        - COBBLESTONE
  breakDiamonds:
    type: BLOCK_BREAK
    goal: 10
    parameters:
      blocks:
        - DIAMOND_ORE

expireTime: -1

pouchUpgrade: Example2

recipe:
  shape:
    - AAA
    - ABA
    - AAA
  ingredients:
    A: GLASS
    B: NETHER_STAR

actions:
  guaranteed:
    - '[Message] text=<gray>Congratulations, you redeemed the Example Pouch!'
  randomAmount: 1
  random:
    '0':
      actions:
        - '[Message] text=<green>This green message can appear 50% of the time.'
      weight: 0.5
      requirePermission: false
      invertPermissionCheck: false
      permission: actions.check
    '1':
      actions:
        - '[Message] text=<red>This red message can appear 50% of the time.'
      weight: 0.5
      requirePermission: true
      invertPermissionCheck: false
      permission: actions.check
  • name: This parameter defines the internal name of your pouch. This must be unique across all pouches.
  • weight: The weight of your pouch when giverandom is used.
  • lockedItem & unlockedItem: These are the items used when the pouch is locked and unlocked, respectively
    • Both of these support custom model data and skull textures. Example:
    • unlockedItem:
        material: PLAYER_HEAD
        name: '<green><bold>Example Pouch'
        headTexture: 'example'
        lore:
          - '<gray>Break 100 cobblestone blocks and'
          - '<gray>10 diamond ores to unlock this pouch!'
          - ''
          - '<yellow>Click to open!'
    • Model data example:
    • unlockedItem:
        material: PAPER
        modelData: 10000
        name: '<green><bold>Example Pouch'
        lore:
          - '<gray>Break 100 cobblestone blocks and'
          - '<gray>10 diamond ores to unlock this pouch!'
          - ''
          - '<yellow>Click to open!'
  • singleMission: This defines whether a single mission is required to unlock the pouch, or all missions are required.
  • missions:
    • type: Mission type.
    • goal: The goal needed to complete the mission.
    • parameters: Additional parameters. These vary per mission type - check the expansion information.
  • expireTime: The amount of time before the pouch expires. This time starts to run once the pouch is given. Set to -1 to disable.
  • pouchUpgrade: This defines the pouch that can be obtained by combining multiple of the same pouch in a crafting table. Optional feature.
  • recipe:
    • shape: Shape of the recipe. All letters need to be specified in the ingredients, and needs to be in a 3x3 grid.
    • ingredients: Ingredients to use in the shape.
  • actions:
    • guaranteed: These actions will always fire. Check the Actions page for a full list of actions.
    • randomAmount: Amount of random actions to fire.
    • random:
      • actions: Actions to fire for this random object.
      • weight: Weight of this random object.
      • requirePermission: Whether this random object requires a permission to fire.
      • invertPermissionCheck: Whether the permission check should be inverted (so it only fires if you do not have the permission). Needs "requirePermission" to be set to true.
      • permission: Permission required. Needs "requirePermission" to be set to true.

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