Reward Catalog
Define reusable reward bundles for seasons, events, quests, compensation, ranks, and purchases.
Treasury is the reward authority for Matcha! servers. It owns reward catalogs, grant receipts, claim state, idempotency, entitlement history, compensation packages, and payout policy. When another mod says “this player earned this reward,” Treasury decides whether that reward is valid, claimable, already claimed, expired, revoked, or ready to deliver.
Treasury is deliberately different from Courier. Courier is the delivery channel: it sends mail, item attachments, Pokemon attachments, and messages. Treasury is the accounting and entitlement layer: it defines what is owed, why it is owed, whether it has been claimed, and which delivery mechanism should fulfill it.
Reward Catalog
Define reusable reward bundles for seasons, events, quests, compensation, ranks, and purchases.
Grant Ledger
Store immutable receipts so rewards are idempotent and auditable across restarts and network nodes.
Claim Center
Give players one place to view claimable, claimed, expired, and revoked rewards.
Delivery Adapters
Fulfill claims through Courier, commands, economy APIs, Pokemon grants, cosmetics, or web-only entitlements.
| Question | Treasury | Courier |
|---|---|---|
| What is it? | Reward entitlement and claim authority. | Mail and package delivery system. |
| Owns reward definitions? | Yes. Catalogs, bundles, conditions, expiries. | No. It can deliver a package it is given. |
| Prevents duplicate claims? | Yes. Grant ledger and claim receipts. | Not by itself; it delivers queued mail. |
| Knows why a player earned something? | Yes. Source receipts from Jubilee, Festival, staff, etc. | Usually only knows mail metadata/content. |
| Handles offline delivery? | Can decide a reward is claimable while offline. | Delivers mail/items when appropriate. |
| Example | ”Amo is entitled to verdant_tier_50_bundle once." | "Send Amo an inbox message containing these items.” |
Rule of thumb: Treasury says what is owed. Courier says how it is delivered.
Catalogs define reward bundles and policies. They are versioned so old grants remain understandable after configs change.
Grants are source-backed entitlements: a player earned or was assigned a reward for a specific reason.
Claims are the act of consuming a grant and fulfilling it. Claims must be idempotent.
Receipts record who granted what, why, when, under which catalog version, and how delivery resolved.
Adapters hand fulfilled rewards to Courier, economy systems, command runners, Pokemon grant APIs, cosmetic registries, or external web services.
Step 1: Jubilee Unlocks
Jubilee sees a player reach level 50 and requests a Treasury grant for jubilee:verdant_tier_50.
Step 2: Treasury Records
Treasury validates the catalog entry, records an idempotent grant receipt, and marks it claimable.
Step 3: Player Claims
Player opens /treasury claim and chooses the unlocked bundle.
Step 4: Courier Delivers
Treasury resolves the bundle and asks Courier to deliver the item/Pokemon mail, while storing the claim receipt.
Treasury fits the Matcha! naming style because it is a strong single noun with institutional weight. It implies value, custody, ledgers, and authorized release without sounding like a generic “Rewards” plugin.
| Candidate | Read |
|---|---|
| Treasury | Recommended. Premium, authoritative, and distinct from Courier’s delivery metaphor. |
| Vault | Strong, but more storage/security than reward authority. |
| Bounty | Fun, but sounds quest-specific. |
| Ledger | Accurate for records, but too internal and Ceremony-like. |
/treasury UIEstimated Development Time: 8-12 weeks