Skip to content
Torna al Blog
Bedrock server console showing Endstone plugin system with active player connections

Endstone: Paper Server Power Now for Bedrock

ice
ice
@ice
Updated
22 visualizzazioni
TL;DR:Endstone brings plugin infrastructure to Minecraft Bedrock servers, letting you write Python and C++ plugins with access to 60+ events, commands, and permission systems - while staying fully compatible with vanilla Bedrock.
GitHub · Minecraft community project

endstone (EndstoneMC/endstone)

High-performance Minecraft Bedrock server software with native C++ and Python plugin API

Star on GitHub ↗
⭐ 623 stars💻 C++📜 Apache-2.0

Ever wanted to run a Bedrock server with the customization power of Java Edition's Paper? Endstone fills that gap, giving you plugin support and deep server control while keeping vanilla compatibility intact.

What Endstone Does

Let's be honest: vanilla Bedrock servers are limited. You can't cancel events, control packets, or modify core gameplay the way you can with Paper or Spigot. Endstone changes that by sitting between you and Bedrock itself, intercept events, and offering a full plugin API. It's not an addon system or a script engine. It's a proper server wrapper with the architectural power Java players have had for years.

The cool part? It's genuinely a drop-in replacement. Your world files, your configs, your existing Bedrock setup - they all work. You don't need to migrate anything. Just install Endstone, point it at your world, and start loading plugins. The underlying Bedrock server runs unchanged underneath, so vanilla features stay intact and reliable.

Under the hood, this is C++ doing the heavy lifting. The project's got 623 GitHub stars and active development (latest version supports Bedrock 1.26.12). That plugin API itself leans on design patterns familiar to Bukkit developers - if you've written Paper plugins before, the mental model will click immediately.


Why You'd Use This

The obvious case: you're running a Bedrock server and want to add custom commands, permissions systems, or gameplay mechanics without coding your own addon from scratch. Endstone handles the infrastructure - events, scoreboards, forms, inventory access, player data - so you can focus on logic.

Concrete examples. Say you want a leveling system where players gain XP and unlock commands. In vanilla Bedrock, you're fighting against addon limitations. In Endstone, you write an event handler that listens for player damage, calculates XP, updates a scoreboard, and grants permissions dynamically. A few dozen lines of Python and you're done. You could implement a full economy system, custom combat mechanics, dungeon events, or ranked PvP matchmaking.

Another angle: cross-server connectivity. You're running Bedrock but you want players to join from Java Edition servers via proxy tools. Endstone's packet control lets you intercept and modify join sequences, cosmetics, and other cross-version friction. It's not smooth out of the box, but it's possible in ways pure vanilla Bedrock isn't.

Windows or Linux. Docker support exists. Python 3.10+ on Windows 10+ or Ubuntu 22.04+ / Debian 12+. That's flexible enough for most hosting setups. And if you need C++ performance for a critical plugin, the API supports that too.


Getting Started

Installation is three commands:

bash
pip install endstone
endstone

That's it. Python package manager pulls the release binary (Windows or Linux depending on your platform), and running `endstone` starts the server in your current directory. It'll generate a server config and a `plugins` folder.

For your first plugin, create a Python file in that folder. Here's the bare minimum:

python
from endstone.plugin import Plugin
from endstone.event import event_handler, PlayerJoinEvent

class MyPlugin(Plugin):
 api_version = "0.10"

 def on_enable(self):
 self.logger.info("MyPlugin enabled!")
 self.register_events(self)

 @event_handler
 def on_player_join(self, event: PlayerJoinEvent):
 event.player.send_message(f"Welcome, {event.player.name}!")

Drop it in `plugins/`, restart the server, and you'll see "MyPlugin enabled!" in the logs. Players joining get a welcome message. That's the entire feedback loop.

The project provides templates for both Python and C++ if you want a scaffolded structure. But honestly, the bare plugin example above is small enough that you can copy it and start experimenting.


What Makes It Powerful

The API surface is substantial. We're talking 60+ events covering players joining, breaking blocks, taking damage, opening inventories, chatting, and more. Commands work with Bedrock's built-in command parsing (no custom string parsing required). You get scoreboards, forms (the interactive UI system), permissions, inventories, and access to player metadata and world data.

Packet control is where Endstone breaks away from other solutions. You can listen to low-level network packets before the server processes them. That opens doors to anti-cheat, cross-version compatibility hacks, and fine-grained event cancellation. Modify a packet mid-flight and the change propagates through normally.

Stay compatible with the latest Bedrock automatically? Design philosophy favors keeping up with Minecraft's monthly releases instead of playing catch-up. The v0.11.3 release added BlockType registry support and fixed several packet serialization bugs that were causing disconnects. That's the pace you're looking at - quick iterations keeping the API current.


Things That Catch People

Python plugins are convenient but slower than C++. If you're building something that runs on every tick for thousands of players, C++ is your answer. But for events that fire occasionally (player join, chat, custom commands), Python is fast enough.

Worlds created in pure Bedrock will work, but if you have existing realm backups or world-specific data outside the level folder (like realm backup metadata), you may need to migrate manually. Endstone handles the world format natively - it's just the surrounding infrastructure that sometimes needs adjustment.

Also, know that you're running a Bedrock server, not Java. That matters for plugin availability. Many popular Java plugins (Essentials, Vault, fancy chat formatting libraries) have no Bedrock equivalents. You'll write more from scratch. The community is smaller but growing, and the official template repos give you starting points.


How It Stacks Against Alternatives

PocketMine and Nukkit are older Bedrock server implementations. They don't run vanilla Bedrock underneath - they reimplement the server from scratch. That's more control but more maintenance, slower updates, and sometimes subtle differences in behavior. Endstone wraps real Bedrock, so vanilla features are guaranteed.

Addon scripting is official and limited on purpose. It's great for cosmetics and simple logic, but can't hook into server-level events or permissions. Endstone is the play if you need control.

If you're on Java Edition, Paper (or Spigot/Bukkit) is still the gold standard and always will be. Endstone is specifically for Bedrock communities that need plugin infrastructure.


Real-World Setup Notes

Run it in Docker for cleaner isolation and easier updates. Run it behind a reverse proxy if you're exposing it publicly (Bedrock uses UDP, so your firewall config matters). And before deploying anything to production, test your plugins locally. Endstone's development setup is straightforward enough that you can iterate on a laptop.

For hosting a public server, consider using the Free DNS tools we offer at Minecraft.How's free DNS service to manage your server domain reliably and cheaply. And if you're maintaining a whitelist, the Minecraft Whitelist Creator streamlines generating and managing your player list.

Check the Discord community (linked on the GitHub repo) before you get stuck. The maintainers respond quickly, and you'll find plugin examples and deployment advice from people running live servers.

Frequently Asked Questions

Is Endstone free to use?
Yes. Endstone is open-source under the Apache-2.0 license, meaning it's completely free to download, install, and modify. You can run it on any server you own without licensing fees.
Can I run Endstone on my existing Bedrock world?
Yes, Endstone is a drop-in replacement for vanilla Bedrock servers. Your existing world files, player data, and configurations will work without migration. Just install Endstone, point it to your world folder, and start the server.
What's the difference between Endstone and PocketMine?
Endstone wraps the official Bedrock server, guaranteeing vanilla compatibility and faster updates. PocketMine reimplements Bedrock from scratch, offering more control but sometimes differing behavior. Endstone is the better choice if vanilla features matter to you.
Do I need C++ knowledge to write plugins?
No. Endstone supports Python for rapid development—you can write functional plugins with just Python 3.10+. C++ plugins are available for performance-critical code, but most use cases work fine with Python.
Which Minecraft Bedrock versions does Endstone support?
Endstone tracks recent Bedrock releases closely. The latest version (v0.11.3) supports Bedrock 1.26.12. The project prioritizes staying up-to-date with monthly Minecraft releases rather than falling behind.