Naming
- Use descriptive IDs (
vote_reward, notvr1) - Match filename to ID
- Use underscores, not spaces
Preset packages allow admins to quickly send pre-configured item and Pokemon bundles to players.
Presets are JSON files stored in config/courier/presets/. Each preset defines:
config/courier/presets/├── starter_kit.json├── welcome_gift.json├── event_reward.json└── your_custom_preset.json{ "id": "example_preset", "displayItem": { "stack": { "id": "minecraft:chest" }, "name": "<gold>Example Package" }, "displayName": "<gold>Example Package</gold>", "description": [ "<gray>This is an example preset", "<yellow>Contains cool stuff!" ], "items": [ { "stack": { "id": "minecraft:diamond", "count": 5 } }, { "stack": { "id": "minecraft:golden_apple" } } ], "pokemonSpecs": [ "pikachu level=10", "eevee level=5 shiny=yes" ]}| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the preset |
displayName | string | Name shown in mail (MiniMessage) |
| Field | Type | Default | Description |
|---|---|---|---|
displayItem | ConfigurableItem | Paper | Icon shown in GUI |
description | string[] | [] | Description lines (MiniMessage) |
items | ConfigurableItem[] | [] | Items to include |
pokemonSpecs | string[] | [] | Pokemon specs to include |
The displayItem field uses Ceremony’s ConfigurableItem format:
"displayItem": { "stack": { "id": "minecraft:nether_star", "count": 1, "components": { "minecraft:enchantment_glint_override": true } }, "name": "<gold><bold>Special Reward", "lore": [ "<gray>A very special package", "<yellow>Open with care!" ]}Use Minecraft’s component format for special items:
"stack": { "id": "minecraft:diamond_sword", "components": { "minecraft:enchantments": { "levels": { "minecraft:sharpness": 5, "minecraft:unbreaking": 3 } }, "minecraft:custom_name": "\"Epic Sword\"", "minecraft:lore": ["\"A legendary blade\""] }}Items use the same ConfigurableItem format:
"items": [ // Simple item { "stack": { "id": "minecraft:diamond", "count": 10 } },
// Item with custom name { "stack": { "id": "minecraft:golden_apple" }, "name": "<light_purple>Mystical Apple" },
// Item with enchantments { "stack": { "id": "minecraft:diamond_pickaxe", "components": { "minecraft:enchantments": { "levels": { "minecraft:efficiency": 5, "minecraft:fortune": 3 } } } }, "name": "<aqua>Miner's Dream", "lore": ["<gray>Digs through anything"] }]Pokemon are specified using Cobblemon’s property string format:
"pokemonSpecs": [ "pikachu", "charizard level=50", "eevee level=10 shiny=yes", "bulbasaur level=5 nature=adamant", "mewtwo level=100 shiny=yes ability=pressure"]| Property | Example | Description |
|---|---|---|
level | level=50 | Pokemon level |
shiny | shiny=yes | Shiny variant |
nature | nature=adamant | Pokemon nature |
ability | ability=static | Specific ability |
gender | gender=female | Gender |
form | form=alolan | Regional form |
{ "id": "starter_kit", "displayItem": { "stack": { "id": "minecraft:chest" }, "name": "<gold>Starter Kit" }, "displayName": "<gold>Starter Kit", "description": [ "<gray>Welcome to the server!", "<yellow>Here's some gear to get started." ], "items": [ { "stack": { "id": "minecraft:iron_sword" } }, { "stack": { "id": "minecraft:iron_pickaxe" } }, { "stack": { "id": "minecraft:iron_axe" } }, { "stack": { "id": "minecraft:bread", "count": 16 } }, { "stack": { "id": "minecraft:torch", "count": 32 } } ], "pokemonSpecs": [ "bulbasaur level=5", "charmander level=5", "squirtle level=5" ]}{ "id": "event_reward", "displayItem": { "stack": { "id": "minecraft:dragon_egg", "components": { "minecraft:enchantment_glint_override": true } }, "name": "<gold><bold>Event Reward" }, "displayName": "<gold><bold>Event Reward", "description": [ "<rainbow>Congratulations!", "<gray>Thank you for participating!" ], "items": [ { "stack": { "id": "minecraft:diamond_block", "count": 3 } }, { "stack": { "id": "minecraft:netherite_ingot" }, "name": "<gold>Reward Ingot", "lore": ["<gray>A token of appreciation"] } ], "pokemonSpecs": [ "mew level=50 shiny=yes" ]}{ "id": "vote_reward", "displayItem": { "stack": { "id": "minecraft:emerald" }, "name": "<green>Vote Reward" }, "displayName": "<green>Thanks for Voting!", "description": [ "<gray>Your vote helps us grow!", "<aqua>Here's a small thank you." ], "items": [ { "stack": { "id": "minecraft:emerald", "count": 5 } }, { "stack": { "id": "minecraft:experience_bottle", "count": 10 } } ], "pokemonSpecs": []}Create the preset file
Create a JSON file in config/courier/presets/
Reload presets
/mailadmin reloadVerify it loaded
/mailadmin listpresetsSend to players
/mailadmin sendpreset <player> <preset_id>Naming
vote_reward, not vr1)Display
Balance
Organization
Use the interactive builder to create preset configurations: