A third-party dedicated server for Minecraft: Legacy Console Edition (Win64).
LCE never got a proper dedicated server. If you wanted to play with friends, one person had to host, and when they quit, everyone got kicked. That sucks.
EndCity is a dedicated server that speaks LCE's Win64 TCP protocol (net version 560, protocol 78) natively. Run it on a box you leave on, and an unmodified LCE client can just connect to it like it would any other server.
Heads up: this is early. Right now the server can do the handshake but doesn't send any world data yet, so clients hit "Downloading terrain" and just sit there. See below for what works.
- Listens on TCP 25565
- Accepts real LCE Win64 clients
- Full handshake (PreLogin, Login, enter Play)
- Keep-alives every second, timeout detection, login watchdog
- Rejects outdated/future client versions with the right error code
- Clean disconnects, proper small ID pool recycling
- World data (clients hang on "Downloading terrain")
- Player movement
- Blocks, placing, breaking
- Inventory and chests
- Chat
- Other players showing up
- Mobs
- Saving worlds to disk
These are all planned. The project is being built in order, one piece at a time, with each piece tested against a real client before moving on.
You need JDK 22. If you don't have it, Gradle will grab one automatically.
./gradlew runServer listens on 25565. Point a real LCE Win64 client at the host and it'll connect.
Want a launch script you can run without Gradle?
./gradlew installDist
# Then run: build/install/EndCity/bin/EndCity./gradlew testEverything gets tested against a live server on an ephemeral port. No mocks, no fakes, real TCP end to end.
Apache 2.0. Do what you want.
Clean-room reimplementation of the LCE Win64 network protocol. No code or assets from the actual game. Not affiliated with Mojang, Microsoft, 4J Studios, or Xbox Game Studios. "Minecraft" is a trademark of Mojang Synergies AB.