Monetize your Minecraft server
A plugin for Paper, Spigot, and Velocity that sells ranks and perks from an in-game store, keeps LuckPerms groups in step with each subscription, and recovers failed renewals before a rank is taken away. Money lands in your own Stripe account.
Minecraft support is planned. Leave an address and you get one email when it is live, nothing else.
Supporter Store
Click a rank to get your link
How it works on Minecraft
- 01
Drop in the plugin, paste a token
Connect a server from the dashboard, copy the token it shows once into the plugin config, restart. Paper, Spigot, Purpur, and Folia, with Velocity and BungeeCord proxies. No open port and nothing inbound.
- 02
Map plans to LuckPerms groups
Each plan names the group it grants and, if you want, console commands to run on grant and on revoke. Kits, crate keys, claim blocks, in-game currency: anything with a command.
- 03
Players buy from /store
A chest menu in game, a short link in chat, a secure checkout page in the browser. The rank appears the moment the payment clears, even if the player has already logged off.
What you get
Ranks that follow the subscription
Groups are granted and removed from the subscription state, by UUID, so an offline player still gets the rank and a lapsed one loses it. No expiry commands to write and no timers to keep.
Commands that run exactly once
Grant and revoke commands run once per change and every result is logged. A command that needs the player online waits for the next join instead of failing on an empty server.
Payment recovery in game
A failed renewal gets a notice on join and a link to update the card. The rank stays through the grace period instead of vanishing overnight, and a linked Discord account gets the reminder there too.
Upgrades and cancel saves
/store manage shows the current plan, the upgrades above it, and a cancel flow with an offer, all inside the game. Switches go through checkout only when a new card is needed.
One subscription, Discord too
/arcalotl link ties the Minecraft account to a Discord member. One payment grants the rank on the server and the role in the Discord, and either one can be where the player first subscribed.
Your Stripe, your payouts
Payments settle in your own Stripe account on Stripe's schedule. No store wallet, no hold on new accounts, no withdrawal fee. Refunds and disputes are yours to handle in Stripe.
Pricing
The same on every platform: no monthly fee, 2% of each successful payment, plus Stripe's card fees. Nothing extra for Minecraft.
See pricingHow the plugin works
The plugin only dials out, every 30 seconds and every 5 while a checkout is open, which is what flips the rank live without an open port. Grants are state: this UUID belongs in the diamond group, applied even when the player is offline. Commands are effects: give this player a crate key, run exactly once and deferred until the player is online when they need to be. After a restart the plugin reconciles from a snapshot of state, never of commands, so a kit can never be handed out twice.
# plugins/Arcalotl/config.yml token: "msk_live_8f1c..." # shown once in the dashboard api_base: "https://api.arcalotl.com" store_command: "store" # also answers /buy and /subscribe permissions: luckperms # or: vault, commands
- ServersPaper, Spigot, Purpur, and Folia on 1.20 and newer, with Velocity and BungeeCord proxies. Bedrock players through Geyser see the same menu.
- PermissionsLuckPerms first, any Vault-compatible plugin next, console commands for everything else.
- Offline playersGrants apply by UUID before the next login. Commands that need the player online run on join.
- Next to TebexThe plugin only touches what it granted itself, so an existing store keeps working while you try it.
Setting up a plan
A plan is a price plus what it unlocks: a permissions group, optional commands on grant and revoke, a Discord role if you want one, and whether it renews or is bought once.
- Minecraft group
diamondon Survival network- On grant
crate give {player} diamond 1eco give {player} 5000(needs player online)- On revoke
- Nothing. The group removal is enough.
- Discord role
- @Diamond on Example SMP
- Renews
- Monthly, with a 7-day grace period on a failed payment
Compared with a web store
Minecraft stores have been built the same way for a decade: a hosted web page, a plugin that polls a command queue, and a wallet the store operator pays out from. It works, and it is where the 5% fee, the payout hold, and the "did my rank arrive" ticket come from. Arcalotl keeps the plugin idea and changes the money and the state.
| Arcalotl | Tebex | |
|---|---|---|
| Platform fee | 2% per payment | 5% per payment, VAT added at checkout |
| Where money lands | Your Stripe account, on Stripe's schedule | Tebex wallet, then a payout; newer accounts wait 14 to 30 days |
| Where the store lives | In game (/store) with a short link to checkout; hosted page too | Hosted web store; /buy opens a menu that links out |
| Rank delivery | Group state synced by UUID, offline players included | Console commands on purchase, expiry commands on end |
| Failed renewal | Grace period, in-game and Discord reminders, then revoke | Three retries, then the subscription ends |
| Cancel flow | In game, with a save offer | Customer portal on the web |
| Discord role | Same subscription, same plan | Separate Discord integration |
Tebex figures from its Minecraft pricing page and documentation, September 2026.
A web store too, if you want one
The plugin does not need a web store. Players pick a plan in game and pay in the browser, and fewer steps between wanting a rank and holding it means more of them finish. If you want a store page as well, for a link in your Discord or on your server list entry, Arcalotl storefronts come with Minecraft themes and sell the same plans through the same checkout.
Subscriptions, not just ranks
Most Minecraft stores sell a permanent rank once and never hear from that player again. Arcalotl sells that too, but it is built for the other model: a supporter rank that renews monthly, with perks that refresh, an annual option for the regulars, and a recovery sequence for the card that expires in month four. For a store that sells renewals, the recovered ones are the difference between paying for hosting and not.
Because the subscription is the source of truth, the rank never drifts. A payment that fails removes the rank only after the grace period and the reminders. A refund removes it the same hour. A player who upgrades from Gold to Diamond keeps one subscription and one renewal date. None of that needs an expiry command, a cron job, or a rank-reminder plugin.
Common questions
Get one email when the plugin ships
No newsletter, no drip. One message the day Minecraft support is live.