This is a lightweight Minecraft limbo server, written in Java with Netty. The main goal of this project is maximum simplicity with a minimum number of sent and processed packets. The limbo is empty; there is no ability to set a schematic building since this is not necessary. You can send useful information via chat or boss bar.
The server is fully clear. It is only able to keep a lot of players while the main server is down.
General features:
- High performance. The server doesn't save or cache any useless (for limbo) data.
- Doesn't spawn threads per player. Use a fixed thread pool.
- Support for BungeeCord and Velocity info forwarding.
- Support for BungeeGuard handshake format.
- Support for MiniMessage text format.
- Multiple versions support.
- Fully configurable.
- Lightweight. App size around 5MB.
Symbol X means all minor versions.
- 1.7.X
- 1.8.X
- 1.9.X
- 1.10.X
- 1.11.X
- 1.12.X
- 1.13.X
- 1.14.X
- 1.15.X
- 1.16.X
- 1.17.X
- 1.18.X
- 1.19.X
- 1.20.X
- 1.21.X (incl. 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11)
- 26.1.X
The server doesn't support snapshots.
help- Show help messageconn- Display number of connectionsmem- Display memory usage statsversion- Display limbo versionstop- Stop the server
Note that the server also will be closed correctly if you just press Ctrl+C.
Required software: JRE 17+
The installation process is simple.
- Download the latest version of the program here.
- Put the jar file in the folder you want.
- Create a start script as you did for Bukkit or BungeeCord, with a command like this:
java -jar NanoLimbo.jar - The server will create
settings.ymlfile, which is the server configuration. - Configure it as you want and restart the server.
The server supports player info forwarding from the proxy. There are several types of info forwarding:
LEGACY- The BungeeCord IP forwarding.MODERN- Velocity native info forwarding type.BUNGEE_GUARD- BungeeGuard forwarding type.
If you use BungeeCord, or Velocity with LEGACY forwarding, just set this type in the config.
If you use Velocity with MODERN info forwarding, set this type and paste the secret key from
Velocity config into secret field.
If you installed BungeeGuard on your proxy, then use BUNGEE_GUARD forwarding type.
Then add your tokens to tokens list.
This release is built on top of community contributions across multiple forks. Huge thanks to everyone listed below — expand each section to see what they contributed.
Nan1t — original author & maintainer
The entire foundation of NanoLimbo:
- Netty pipeline, packet system, multi-version protocol skeleton up to 1.21
- BungeeCord and Velocity info forwarding
- Configuration framework, command system, dimension registry
- Project structure, build setup, release process
BoomEaro (Valentine) — Minecraft 1.21.2 → 26.1, modernization
The bulk of post-1.21 protocol work and toolchain modernization:
- Protocol support for 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11 and 26.1
- Rewrote the login → configuration phase for the post-1.20.5 known-packs handshake:
PacketKnownPacks,PacketUpdateTags, per-versionPacketRegistryData - Rewrote play packets for the 1.21.x line:
PacketLogin(formerlyPacketJoinGame),PacketChunkWithLight(real heightmaps + biome palette + light update),PacketPlayerPositionAndLookfor the 1.21.2 teleport-flags redesign,PacketGameEventwithstart_waiting_for_chunks - Build modernization: Gradle Kotlin DSL, version catalog, Java 17, Lombok, GitHub Actions for build & release
- Adventure stack (api / gson / legacy / plain / json / nbt) + MiniMessage support in all text fields
- Netty 4.2 split modules with native transports: epoll, io_uring (Linux x86_64 / aarch64) and kqueue (macOS x86_64 / aarch64); new
TransportTypeenum - Per-connection traffic rate limiting in
ChannelTrafficHandler - Refactored configuration serializers,
VersionedDimension,versioncommand
Source: https://github.com/BoomEaro/NanoLimbo · upstream PR: #98
YueMi-Development — external secret files
@-prefix support ininfoForwarding.secretandinfoForwarding.tokens: values starting with@are read from a file relative to the working directory. Lets you keep credentials out ofsettings.yml(Docker / Kubernetes secrets, SOPS, etc.).
Biquaternions — IP logging privacy switch
- New
logPlayersIpconfig flag. Whenfalse, player IP addresses are redacted in connection logs (shown as<redacted>). Useful for GDPR / privacy-compliant deployments.
Source: https://github.com/Biquaternions/NanoLimbo · upstream PR: #96
Feel free to create a pull request if you find some bug or optimization opportunity, or if you want to add some functionality that is suitable for a limbo server and won't significantly load the server.
Required software:
- JDK 17+
- Gradle 9+ (optional)
To build a minimized jar, go to the project root directory and run in the terminal:
./gradlew build
If you have any questions or suggestions, join our Discord server!
