Tebex is best known for selling ranks on Minecraft servers, but it's also a good way to sell a plugin directly. The fees are low (a 5% platform fee for Minecraft, plus payment processing), Tebex acts as merchant of record so it deals with sales tax and VAT, and the store is yours: no marketplace sitting between you and your buyers.
There's one thing Tebex doesn't do that BuiltByBit and Voxel Shop do: it can't change the file a buyer downloads. It has no placeholders, so it can't put a license key in the jar for you. You need another way to get each buyer their key.
How automatic Tebex licensing works
The answer is a webhook. Tebex can tell another service the moment a payment completes. With MC License, the flow looks like this:
- A buyer checks out on your Tebex store.
- Tebex sends a Payment Completed webhook to MC License.
- MC License creates a license key for that buyer using your plugin's default settings (server limit, expiry).
- The key is emailed to the address they used at checkout, along with instructions for activating it.
- The buyer puts the key in the plugin's
mclicense.txtfile and starts their server.
It happens straight away, there's no extra cost for the emails, and you don't have to do anything. Every key is a fully managed license on your dashboard, so you can see where it's running, change its limits or revoke it.
Setting it up
1. Connect Tebex to MC License
Go to creator.tebex.io/webhooks and copy your webhook secret key. Paste it into the Keys page on the MC License dashboard.
2. Add the endpoint in Tebex
MC License gives you a personal endpoint that looks like https://api.mclicense.org/tebex/[userid]. On the same Tebex webhooks page, click Add Endpoint, paste the URL, and make sure the Payment Completed event is ticked.
3. Create your plugin
In the MC License dashboard, create your plugin using the Tebex package ID of the package that sells it.
4. Add the license check to your plugin
@Override
public void onEnable() {
if (!MCLicense.validateKey(this, "yourPluginId")) {
Bukkit.getPluginManager().disablePlugin(this);
return;
}
// ... the rest of your startup
}
The library creates mclicense.txt on first start, prints a clear console message telling the server owner where to put their key, and handles the signed validation for you. The full walkthrough, including the Maven and Gradle setup, is in how to add a license key to a Paper plugin. The Tebex setup reference is in the docs.
What your buyer sees
From the buyer's side:
- They pay on your Tebex store and download the plugin.
- An email arrives with their license key and short activation steps.
- They drop the plugin in, start the server once to create
mclicense.txt, paste their key in and restart.
That's one more step than on BuiltByBit, where the key is already in the jar. So make it obvious: mention the email on your package description and in your plugin's first-start console message. If buyers ever lose track of their key's status, point them to the license checker. It shows whether a key is valid, when it expires and how many servers it's active on.
Tips for selling plugins on Tebex
- You bring the traffic. Tebex has no marketplace browsing, so link the store from your SpigotMC page, Discord, GitHub and documentation.
- Price in your main currency, and let Tebex handle tax. Being merchant of record means you aren't working out VAT per country.
- Sell in more than one place. Many developers run a Tebex store alongside BuiltByBit or Voxel Shop. With MC License, all of those sales land in the same dashboard. (Where to sell, compared.)
- Set sensible server limits by default. The plugin's default settings decide what every Tebex key allows, so pick a server limit that fits a typical buyer, and raise it per customer when someone asks.
Want to see how Tebex's fee compares with the marketplaces? Try the fee calculator.