uniz.hostSign in
GuidesContact usTerms of servicePrivacy
Guide topics
Minecraft11
Moving your Minecraft server to a new version without losing the worldYour first Python plugin for Endstone — from Endstone's template to a running pluginInstalling plugins on an Endstone server — .whl and .so files, where to find them, and what a restart doesEndstone on a Bedrock server — what changes, what it costs in RAM, and how to switch a Bedrock server overTurning on keepInventory and the other Minecraft gamerulesAdding mods, plugins and modpacks to a Minecraft serverWhitelist, operators and bans on your Minecraft serverProximity voice on your Minecraft server — hear friends by distance, on PC, iPhone and AndroidI changed a Minecraft server setting and nothing happenedMinecraft server types — Vanilla, Paper, Fabric or Forge, and what each one costs youHow to run your own Minecraft server, from zero to friends joining (and the shortcut that skips the work)
Palworld7
Palworld admin and players — set the admin password, see who is online, kick and banMy friend on PS5 or Xbox can't find our Palworld serverMods on a Palworld server — what the uploader does, and what the publisher actually documentsPvP is on, but my friends still can't hurt each otherPalworld server stuttering — reading server FPS and fixing itPalworld server settings — where the knobs are, and why nothing changedHow to run your own Palworld dedicated server (SteamCMD) — and why budget players end up on hourly hosting
Using uniz.host13
Archived servers on uniz.host — where the world went and how to get it backStop paying while nobody is playing: auto-sleep on uniz.hostOpen a plugin's web page over https:// with a Cloudflare temporary linkMaking your first server on uniz.host — the create wizard, step by stepCredits and billing — how you are charged, and how to read your billUse your own domain for a server on uniz.hostA tour of the uniz.host dashboard — what this page is telling youMove an existing server to uniz.host — bring the whole world with youScheduled tasks on uniz.host — automatic restarts, commands and powerRestoring a backup on uniz.host — getting last night's world backManage server files on uniz.host — edit, upload, extractServer won't start: reading the console on uniz.hostShare your server with a friend — let them start it without handing over your account
The basics worth knowing3
Minecraft server crashes after adding mods? Read the error, then pick the right Java runtimeWhat is port forwarding? How to let friends join the server on your home PCHow much RAM does a game server need? Minecraft, Palworld, and picking a size that doesn't waste money
Guides / Minecraft
Minecraft

Your first Python plugin for Endstone — from Endstone's template to a running plugin

Last updated October 16, 2026

Short answer

Start from Endstone's official template, EndstoneMC/python-example-plugin on GitHub. Create your own repository from it, rename the package, entry point and plugin class to your plugin's name, set the api_version to the Endstone version you target, then build the wheel with `uv build`. The `.whl` lands in the `dist` folder. Upload it in Content, then Plugins on your Endstone server and restart; the console should then show your plugin loading. Python skills are all you need — no Bedrock or C++ knowledge — but the server updates Endstone automatically, so keep an eye on the API version when a new release arrives.

Steps at a glance
  1. Create your own repository from the template
  2. Rename the package and set the API version
  3. Build the wheel
  4. Upload the wheel in Content, Plugins
  5. Restart and look for your plugin in the console
On this page · 4 sections
What you need on your own computerBuilding itPutting it on the serverRead next

This is the shortest path from "I know a bit of Python" to a plugin running on your Endstone server. It uses Endstone's official template so you start from something that already loads. If you have not yet seen how plugin files are uploaded, read Installing plugins on an Endstone server first; this page assumes an Endstone server exists.

What you need on your own computer

  • Python, and a place to keep a Git repository (GitHub is fine).
  • uv, the build tool the template's README uses. Without it, Endstone's docs build a wheel with pipx run build --wheel; either way, the result is the same kind of file.
  • A text editor.

You do not need anything installed on the server.

Building it

Create your own repository from the template

Go to EndstoneMC/python-example-plugin on GitHub and make your own repository from it. You can also fork or clone it. The template is MIT-licensed.

Rename the package and set the API version

The template says what to rename so that the plugin is yours. In short:

WhatIn the templateRenamed, for a plugin called greeter
Distribution name, in pyproject.tomlendstone-exampleendstone-greeter
Package foldersrc/endstone_example/src/endstone_greeter/
Entry pointexample = "endstone_example:ExamplePlugin"greeter = "endstone_greeter:GreeterPlugin"
Plugin class and its prefixExamplePluginGreeterPlugin

The two names are tied together: the distribution name must be endstone- followed by the entry-point name. Endstone's loader checks this at every start and refuses the plugin with an "Invalid name" message in the console if they differ. Underscores and hyphens count as the same. Rename the permission prefix in the plugin class the same way, as the README says.

Set api_version to the Endstone version you want to target. The template's example uses "0.11". The dashboard shows which Endstone version your server runs. Then delete the example command and listener, or read them first — they show how a command, a player-join event and a config file are written.

The project has four files that matter: __init__.py re-exports the plugin class, plugin.py holds the lifecycle, commands and config, listener.py holds an event listener, and config.toml is the default config that is copied on first run.

Build the wheel

From the project folder run:

uv build

The finished .whl file is written to the dist folder. If you add libraries to the dependencies list in pyproject.toml, the server downloads them from PyPI when it starts, so it needs the internet the first time.

Putting it on the server

Upload the wheel in Content, Plugins

Open your Endstone server on the dashboard, go to the Content tab, then the Plugins section, and upload the .whl from dist. This works while the server is stopped. Uploads need the server's owner to have topped up at least ฿20 with a real payment; until then the dashboard refuses the file. Coupon and referral credit do not count. Your plugin appears in the list next to uniz-link, the platform's own plugin.

Restart and look for your plugin in the console

Start or restart the server and open the Console tab. Endstone's docs say that after a restart "you should see your plugin has been successfully loaded". If you do not, go through the checks in the FAQ above. To change the plugin, build a new wheel, delete the old one in the Plugins section of the Content tab, upload the new one and restart again — two wheels of the same plugin side by side would clash.

Read next

  • Installing plugins on an Endstone server — file types, finding other people's plugins, and what to do when one breaks the server
  • Endstone on a Bedrock server — what Endstone is and how updates work
  • The Files tab — see the plugin folder on the server

Frequently asked questions

Do I need to know C++ or how Bedrock works inside?

No. A Python plugin is ordinary Python that uses Endstone's API — commands, events such as a player joining, configuration and permissions. The template already contains a small example of each, so you change it rather than start from a blank file.

Do I have to write the plugin on the server?

No. You build the plugin on your own computer and upload the finished `.whl` file. The server does not compile anything for you; it installs the wheel you give it when it starts.

Can I test changes without restarting each time?

Locally, yes — Endstone's docs describe a development mode that installs your plugin into a local Endstone setup and reloads it on a command. On the platform a restart is how a new file takes effect, so do the quick loop on your own computer and upload a build when it works.

Where do I find Endstone's own documentation?

Endstone's docs are in its GitHub repository, including the page on installing plugins that this article follows. The template's README explains the layout of the example project and what to rename.

My plugin did not appear in the console. What should I check first?

Check that the file you uploaded ends in `.whl`, that you built it from the renamed template (the distribution name must be `endstone-` plus the entry-point name — for an entry point called `greeter`, the name `endstone-greeter` — otherwise the console logs "Invalid name" and the plugin is refused), and that the Plugins section of the Content tab lists it. Then restart again and read the console from the top of the start.

What happens to my plugin when Endstone updates?

Your server moves to the new Endstone at its next restart. A plugin states the API version it was written for, so after an update, check that your plugin still loads and bump the version in the template's settings if Endstone's API changed. Keep the source in your own repository so you can rebuild.

Sources

  • EndstoneMC python-example-plugin (README) (link checked October 15, 2026)
  • Endstone docs — Install your plugin (v0.11.14) (link checked October 15, 2026)
  • Endstone plugin_loader.py (v0.11.14) (link checked October 15, 2026)

Related guides

Installing plugins on an Endstone server — .whl and .so files, where to find them, and what a restart doesUpload Endstone plugins as .whl (Python) or .so (C++) files in Content, Plugins, even with the server stopped. Where to find them and what can go wrong.Endstone on a Bedrock server — what changes, what it costs in RAM, and how to switch a Bedrock server overEndstone is BDS with a plugin layer — how it differs from the standard server, what our own test measured, automatic updates, and switching a server over.Manage server files on uniz.host — edit, upload, extractEverything the Files tab on uniz.host does — which files open in the editor, which only download, folder uploads, zip extraction, and the real limits

Would you rather skip all of this?

A server on uniz.host is up in minutes. You pay by the hour only while it is online, and the smallest top-up is ฿20.

Create a server
On this page
What you need on your own computerBuilding itPutting it on the serverRead next
uniz.host

Game servers that are easy to start; pay only while the server is on

Join the community on Discord
Product
  • Pricing
  • Create a server
  • Public servers
  • Wiki
Games
  • Minecraft
  • Palworld
  • Valheim
  • Enshrouded
  • 7 Days to Die
  • Core Keeper
  • Factorio
  • All games
Company
  • Contact us
  • Privacy
  • Terms of service
© 2026 uniz.host

Operated by CODECRAFTCLOUD CO., LTD. · Reg. No. 0735567008973Security Lead: Sutthipat LitthibanlueSecurity: [email protected]