Categories Configuration
Overview
Categories are the core of PlumDelivery. Each category defines a set of objectives (items to collect or mobs to kill) and goals with rewards.
Full Category Example
categories:
farm:
name: "&eFarming"
title: "&aFarming Category"
size: 27
index: 11
icon:
title: "&aFarming Category"
material: WHEAT
lore:
- ""
- "&aAre you good at farming?"
- "&aProve you are the best with deliveries!"
- ""
- "&aTotal deliveries: &e<current>"
- ""
- "&aYou can earn points by;"
- "&7Harvesting Wheat"
- "&7Killing Mooshrooms"
- ""
- "&eClick to access!"
required-objects:
o-1:
type: WHEAT
action: COLLECT
o-2:
type: MUSHROOM_COW
action: KILL
goals:
daily:
'25':
index: 11
icon:
title: "&aDaily First Goal"
material: IRON_INGOT
lore:
- ""
- "&e<current>&7/&a<required>"
- "{0}"
- ""
- "&7Rewards for completing the daily goal;"
- "&bx2 &7diamonds"
commands:
- "give %player% diamond 2"
weekly:
'100':
index: 11
icon:
title: "&aWeekly First Goal"
material: IRON_INGOT
lore:
- ""
- "&e<current>&7/&a<required>"
- "{0}"
- ""
- "&7Rewards for completing the weekly goal;"
- "&bx10 &7diamonds"
commands:
- "give %player% diamond 10"
monthly:
'500':
index: 11
icon:
title: "&aMonthly First Goal"
material: IRON_INGOT
lore:
- ""
- "&e<current>&7/&a<required>"
- "{0}"
- ""
- "&7Rewards for completing the monthly goal;"
- "&bx50 &7diamonds"
commands:
- "give %player% diamond 50"
Category Options
Basic Settings
| Option | Type | Description |
|---|---|---|
name | string | Display name with color codes |
title | string | Category menu title |
size | integer | Category menu size (9/18/27/36/45/54) |
index | integer | Slot position in the category selection menu |
Icon Settings
| Option | Type | Description |
|---|---|---|
icon.title | string | Item display name |
icon.material | string | Minecraft material name (e.g., WHEAT, DIAMOND_SWORD) |
icon.lore | list | Item description lines |
icon.custom-model-data | integer | Custom model data for resource packs (optional) |
Icon Lore Placeholders
| Placeholder | Description |
|---|---|
<current> | Player's current point total in this category |
Required Objects
Required objects define what players need to do to earn points.
required-objects:
o-1:
type: WHEAT
action: COLLECT
o-2:
type: MUSHROOM_COW
action: KILL
Action Types
COLLECT
- Players gather items in their inventory
- Points are awarded when items are submitted via the GUI Submit button
- Items are removed from the player's inventory on submission
- Points = total number of items submitted
o-1:
type: WHEAT # Minecraft material name
action: COLLECT
KILL
- Players kill specific entities in the world
- Points are awarded automatically (1 point per kill)
- No submission needed
- Works across ALL active delivery types simultaneously
o-2:
type: MUSHROOM_COW # Minecraft entity type name
action: KILL
Tips
You can have multiple required objects of the same action type. All COLLECT items and KILL entities contribute to the same category point total.
Goals
Goals are point milestones that unlock rewards.
goals:
daily: # Delivery type
'25': # Point threshold (must be quoted)
index: 11
icon:
title: "&aDaily First Goal"
material: IRON_INGOT
lore:
- "&e<current>&7/&a<required>"
- "{0}"
custom-model-data: 0
commands:
- "give %player% diamond 2"
Goal Options
| Option | Type | Description |
|---|---|---|
Key (e.g., '25') | string | Point threshold (must be quoted!) |
index | integer | Slot position in the category menu |
icon | object | Same as category icon settings |
commands | list | Console commands to execute as rewards |
Goal Lore Placeholders
| Placeholder | Description |
|---|---|
<current> | Player's current points |
<required> | Points required for this goal |
{0} | Replaced with finish-lore-text when goal is completed |
Multiple Goals
You can define multiple goals per delivery type:
goals:
daily:
'25':
index: 11
icon: { ... }
commands:
- "give %player% diamond 2"
'50':
index: 12
icon: { ... }
commands:
- "give %player% diamond 5"
'100':
index: 13
icon: { ... }
commands:
- "give %player% diamond 10"
Warning
Goal keys (point thresholds) must be quoted as strings (e.g., '25' not 25). This is required by the configuration system.
Adding a New Category
To add a new category, simply add a new entry under categories with a unique key:
categories:
farm:
# ... (existing category)
combat:
name: "&cCombat"
title: "&cCombat Category"
size: 27
index: 13
icon:
title: "&cCombat Category"
material: DIAMOND_SWORD
lore:
- "&7Kill mobs to earn points!"
required-objects:
o-1:
type: ZOMBIE
action: KILL
o-2:
type: SKELETON
action: KILL
goals:
daily:
'50':
index: 11
icon:
title: "&cDaily Combat Goal"
material: IRON_INGOT
lore:
- "&e<current>&7/&a<required>"
- "{0}"
commands:
- "give %player% diamond 5"
Don't forget to add corresponding rewards in the rewards section!
