Donor Ranks
Paid store ranks and their permission-driven perks
The subscription ranks sold at shop.lootvote.com. Their names are kept distinct from the in-game hunter progression (E..SS/National/Monarch) on purpose. Perks are driven entirely by LuckPerms permission nodes, so granting or removing a rank never touches player data — a player always receives the single highest tier they hold.
Ranks
| Rank | Price | Permission node |
|---|---|---|
| Awakened | $7.99 one-time | ascension.perk.awakened |
| Ascendant | $9.99 / month | ascension.perk.ascendant |
| Eternal | $19.99 / month | ascension.perk.eternal |
Plugin perks
Values come from AscensionCore/donor-perks.yml and apply the moment the node is
granted.
| Perk | Awakened | Ascendant | Eternal |
|---|---|---|---|
| XP boost (gates, dungeons, quests) | +10% | +20% | +35% |
| Mana regeneration | — | +10% | +20% |
| Gate party size | +0 | +1 | +2 |
| Claim-block accrual boost (GriefPrevention) | +25% | +50% | +100% |
| Claim-chunk accrual multiplier (Lands) | 1.2× | 1.4× | 1.6× |
Donor cosmetic (/cosmetics) | Rift Walker trail | Ascendant Rift Aura | Eternal's Portal aura |
Donor cosmetics are permission-unlocked: granted on join to anyone holding the node and never purchasable with gold.
Claim accrual boosts
GriefPrevention: GriefPrevention has one global Claim Blocks Accrued Per Hour
rate with no per-rank support of its own, so AscensionCore listens for its
AccrueClaimBlocksEvent and raises the number for donors by
claim-blocks-boost-percent in donor-perks.yml. At the default base of 100/hr
that means Awakened 125/hr, Ascendant 150/hr, Eternal 200/hr. The boost
scales the rate GriefPrevention was about to grant, so idle reduction still
applies, and it does nothing on servers without GriefPrevention.
Lands: When Lands is installed, AscensionCore can register a LimitModifier
that multiplies playtime chunk accrual by claim-chunk-multiplier in
donor-perks.yml on top of the base rate in config.yml →
land-claims.claim-accrual.chunks-per-hour. Starting caps and separate-claim
limits are configured in Lands itself — Ascension only adjusts the hourly growth
rate per donor tier.
This boosts the hourly earn rate, not a lump sum. For a one-off grant on
GriefPrevention instead (e.g. a launch bonus), use /acb [permission] <amount>
against a rank's permission node — for example
/acb [ascension.perk.eternal] 5000.
Standalone store cosmetics
Sold individually, not tied to a rank. Same mechanism — a permission node, defined in
donor-perks.yml alongside its particle spec:
| Cosmetic | Price | Permission node |
|---|---|---|
| Purple Rift Aura | $6.99 | ascension.perk.cosmetic.rift-aura |
| Monarch Wings | $9.99 | ascension.perk.cosmetic.monarch-wings |
They show up in /cosmetics as soon as the node is granted — that menu re-checks permissions
each time it opens.
Store checkout (Tebex)
shop.lootvote.com creates a Tebex Headless basket for the player's Minecraft
username and redirects to pay.tebex.io. The Tebex plugin on the game server
runs the package commands (LuckPerms grant, crate key, gold stipend, boost grants).
Operators: create packages and wire Vercel env package IDs using TEBEX-STORE-PACKAGES.md — all 11 packages, with descriptions and the exact command list for each.
Shadow, bundle and boost packages deliver through the boost system.
Setup & granting
Run the donor_rank_setup.txt script (ships in the server root and
deploy/server-setup/) to create the groups, prefixes and nodes. See
Donor Ranks server setup
for EssentialsX kits, ExcellentCrates keys, TAB animations, and Discord VIP sync.
# permanent (Awakened)
lp user <player> parent add awakened
# monthly ranks — auto-expire after 30 days; re-run on renewal
lp user <player> parent addtemp ascendant 30d
lp user <player> parent addtemp eternal 30d