9. Membership tiers
What the sidebar calls the player, and what that is worth in characters.
| Source | How |
|---|---|
| Tebex | A package runs mcperks tier <player> <tier> [days], written to multicharacter_entitlements |
| Discord | The player holds a role in your guild. Read live, nothing stored — section 11 |
| ACE | The server.cfg route |
Whichever lands the player on the highest rank wins. Label, colour and slot bonus
are described once in Config.Membership.tiers, so the store screen, the sidebar
badge and the slot maths can never disagree.
| Option | Notes |
|---|---|
default |
Tier for an account with no membership. Must exist in tiers |
stackPurchasedSlots |
Do slot packs add on top of the tier’s own bonus, or does the larger simply win? |
staffOverride |
What /setslots means. "base": it replaces Config.Slots and membership adds on top. "absolute": it is the final answer and membership is ignored |
cacheSeconds |
How long a resolved membership is trusted. Only Discord costs anything to check; database grants drop the cache themselves |
ace |
ACE bridge: add_ace group.premium nuggs.premium allow puts that group on the mapped tier. Empty this if you only use Tebex or Discord |
Tier fields
Section titled “Tier fields”| Field | Notes |
|---|---|
id |
Internal key, referenced by default, ace and store packages |
rank |
Higher wins when two sources disagree. 0 means “not a member” |
label / short |
Long and short display names |
colour |
The sidebar badge, the store card and the diamond on every character card |
icon |
crown or gem |
slots |
Extra characters the tier is worth |
store |
Id of the Config.Store package that sells it, so the sidebar can point an upgrade button at the right card |
blurb / perks |
Store and sidebar copy |
discord |
Role ids or names that grant this tier (needs section 11) |
discord = { "Bronze Member" },discord = { "000000000000000000" },A name is resolved against your guild at startup and reported if it does not
exist. A guild role already named after a tier is matched automatically — see
autoMapByName in section 11.
