Why Endstone?

Why build another Bedrock server platform - and why on top of BDS.

I started Nukkit back in 2015. It set out to be a fast, Java-friendly server for Minecraft: Bedrock Edition, and it worked - it got popular, and more than ten years later it's still going. Java made it approachable, it performed well, and writing a plugin to extend or reshape the server was genuinely easy. A lot of what I believe a server platform should feel like comes from that era.

Endstone exists because, over those ten years, I watched the approach behind Nukkit run into limits that no amount of effort could engineer away. Endstone is my answer to them.

The cracks in re-implementing the game

Nukkit, like PocketMine before it, is a from-scratch re-implementation of the Bedrock server. That decision is the source of both its strengths and its eventual problems.

The codebase began as a translation of PocketMine, and as Bedrock gained features, that foundation got harder to keep clean. Re-architecting it meant breaking the plugin API - and every break strands the plugin ecosystem that made the project worth using. PowerNukkitX and similar efforts have done heroic cleanup work, but the cost has always landed on plugin authors.

The deeper problem is structural, and every third-party reimplementation shares it:

  • Vanilla parity is a treadmill. Mojang adds features and ships releases faster than any reimplementation can chase. You are permanently behind, and the gap is widest right when players most want the new thing.
  • Marketplace and add-ons don't work. A huge share of Bedrock content - Marketplace maps, skins, and add-ons - assumes the real client and server. No reimplementation supports it, so you're cut off from the largest content ecosystem on the platform.

These aren't bugs to fix. They're the price of not being the official server.

A different foundation

Here I took inspiration from Paper. On the Java side, Paper didn't reimplement the game - it builds on top of NMS, Mojang's own server code, and layers its API and improvements over it. That's exactly why Paper stays current with vanilla while still giving developers a powerful, stable platform. Bedrock had no equivalent.

So Endstone doesn't re-implement Minecraft either. It builds on top of Bedrock Dedicated Server - Mojang's own server software - and adds a plugin layer around it, the same way Paper builds on NMS.

That single decision flips the structural problems into non-issues:

  • 100% vanilla parity, automatically. It is the vanilla server. New mobs, blocks, and mechanics work the day Mojang ships them, because Endstone isn't reimplementing any of it.
  • Add-ons and Marketplace content just work, because the game running underneath is the real thing.

There was a second insight, and it's a personal one. I started a PhD in computer vision at Imperial College in 2022, right as ChatGPT landed and AI went from a research niche to the thing reshaping everything. In that world Python is the default language - not because it's fast (it isn't), but because it lets everyone drive fast C++ underneath with far nicer syntax. PyTorch and friends are really C++ engines with a Python steering wheel: C++ speed, Python ergonomics. BDS is written in C++ too, and once I saw it that way, exposing it through Python felt obvious - the same trick the whole AI world leans on, pointed at a Minecraft server.

So what's different?

If Endstone runs the official server, what does it actually give you over plain BDS? The things Mojang left out, and the rough edges they left in.

A real plugin platform

Mojang's own answer to extensibility stops well short of that. BDS only exposes the Script API - a sandboxed JavaScript surface aimed at add-on creators, walled off from the C++ engine underneath. Endstone opens that door: it gives you a full server plugin API in Python and C++, with the same easy-to-extend feeling that made Nukkit pleasant to develop for. You can do things the Script API simply can't: send custom network packets, and hook a far broader set of events - many of them cancellable - to actually change server behavior rather than just react to it.

It also adds the server-administration commands Mojang never shipped, like reload and status.

An API that survives Minecraft updates

This is the part I care about most, because it's the lesson from ten years of Nukkit.

Endstone puts a deliberate API layer between your plugin and the server. When Minecraft updates, Endstone updates its internal hooks - and your plugins keep working without a recompile. Other approaches, like LeviLamina, expose the server's ABI more directly: this gives maximum power, but also couples plugins tightly to a specific BDS binary, so they generally need rebuilding for each new Bedrock version. It's a genuine trade-off - Endstone leans the other way, toward an API that compounds over years instead of resetting every release.

Fixes and hardening

Building on BDS doesn't mean inheriting its bugs. Endstone quietly fixes memory leaks, item-loss bugs, and network-level crash vectors that Mojang hasn't - see Bug fixes for the specifics.

What's the catch?

Building on BDS is the right trade for most people, but it isn't free, and it's worth being honest about the limits:

  • x86-64 only. BDS ships for 64-bit Intel/AMD. On Apple Silicon or ARM, you run it through emulation, which is slower than native.
  • You extend the game, you don't replace it. Because the core is Mojang's binary, you can't rewrite vanilla mechanics wholesale the way a from-scratch server can. Endstone's reach ends where BDS's does.
  • You follow Mojang's release cadence. When a new Bedrock version drops, there's a short window while Endstone updates its hooks to match. Your plugins don't break - the API holds - but a brand-new Bedrock build is supported once Endstone catches up to it. Luckily, during that window Endweave can bridge the gap: it translates the protocol so players who've already updated their client can keep connecting to your not-yet-updated server.

TLDR

If you want Bedrock vanilla compatibility, Marketplace and add-on support, real Python/C++ plugins, and an API that survives Minecraft updates, Endstone is built for you.

-- Vincent (MagicDroidX), creator of Nukkit and Endstone

On this page