A lightweight Minecraft server written from scratch in Rust supporting Minecraft versions from 1.7.2 up to 26.2.
  • Rust 92.8%
  • RenderScript 3.6%
  • TypeScript 1.7%
  • Java 1.1%
  • Nix 0.6%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Lxk4z 57a77b1c99 fix: do not send Registry Data for registries without entries
`minecraft:block` is mapped as a mandatory registry from 26.2 onwards so
that block tags can be sent. It has no entry directory in the generated
data, and `Registry::load` falls back to an empty entry map instead of
failing, so the registry still ends up in the RegistryManager.

As a result an empty Registry Data packet is emitted for
`minecraft:block` during configuration. It carries no information, and
clients that do not expect that registry to be synced can fail hard on
it: Geyser (and therefore every Bedrock player behind it) dies with

    IllegalStateException: Expected reader for registry
    Java registry: minecraft:block

Vanilla clients silently ignore the packet, which is why this went
unnoticed.

Skip registries without entries when building the Registry Data
packets. Tags are unaffected: `get_tagged_registries()` keeps its own
list and still emits block tags.
2026-08-08 10:36:31 +02:00
.github chore: update github actions 2026-07-24 19:35:33 +02:00
crates feat: Add support for 26.2 2026-06-16 21:53:56 +02:00
data fix: add back blocks.json for loading schematics #87 2026-06-22 18:37:26 +02:00
docker chore: Update Rust and dependencies version 2026-07-24 19:43:19 +02:00
docs feat: Added logging to file #53 2026-08-01 14:38:47 +02:00
java_wrapper fix: update modrinth upload logic 2026-07-24 19:27:44 +02:00
nix feat: Nix flake (#74) 2026-06-06 10:51:53 +02:00
pico_libraries fix: do not send Registry Data for registries without entries 2026-08-08 10:36:31 +02:00
pico_limbo feat: Added logging to file #53 2026-08-01 14:38:47 +02:00
pterodactyl/eggs chore: release v1.10.0+mc1.21.11 2026-01-10 21:01:45 +01:00
.dockerignore chore(docker): update .dockerignore 2025-06-05 15:57:40 +02:00
.gitignore feat: Nix flake (#74) 2026-06-06 10:51:53 +02:00
Cargo.lock feat: Added logging to file #53 2026-08-01 14:38:47 +02:00
Cargo.toml feat: Added logging to file #53 2026-08-01 14:38:47 +02:00
CHANGELOG.md feat: Added logging to file #53 2026-08-01 14:38:47 +02:00
CONTRIBUTING.md chore: add tutorials and update docs 2026-04-06 11:27:22 +02:00
docker-compose.yml fix: binary not present in Docker image 2026-01-11 11:37:40 +01:00
flake.lock feat: Nix flake (#74) 2026-06-06 10:51:53 +02:00
flake.nix feat: Nix flake (#74) 2026-06-06 10:51:53 +02:00
LICENSE chore: add project license #6 2025-05-15 09:13:53 +02:00
package-lock.json chore: update github actions 2026-07-24 19:35:33 +02:00
package.json feat: docs website 2025-07-02 15:37:45 +02:00
README.md chore: Remove star history from README 2026-07-25 10:16:25 +02:00
rust-toolchain.toml chore: Update Rust and dependencies version 2026-07-24 19:43:19 +02:00

PicoLimbo

An ultra-lightweight, multi-version Minecraft limbo server written in Rust

Supporting all Minecraft versions from 1.7.2 through 26.2

GitHub CI Latest Release License Discord

Star this repo💬 Join Discord📖 Read Docs

PicoLimbo.png
Schematic from LOOHP/Limbo


Community & Support

If you have any questions, suggestions or simply want to stay updated, please join the Discord server!

Introduction

PicoLimbo is a lightweight limbo server written in Rust, designed primarily as an AFK or waiting server. Its core focus is on efficiency by implementing only essential packets required for client login and maintaining connection (keep-alive) without unnecessary overhead.

While not aiming to replicate every Minecraft server feature, PicoLimbo supports all Minecraft versions from 1.7.2 through 26.2, excluding snapshots.

Features

🎮 Wide Version Compatibility

Supports all Minecraft versions from 1.7.2 to 26.2 natively, no need for ViaVersion or additional compatibility layers.

Ultra-Lightweight & Highly Scalable

Uses 0% CPU while idle and handles hundreds of players under 10 MB RAM. View benchmarks.

👤 Skin Support

Player skins are supported. What else to say about that?

🔀 Built-in Proxy Support

Integrates with all major Minecraft proxies:

  • Velocity (Modern Forwarding)
  • BungeeCord (Legacy Forwarding)
  • BungeeGuard & BungeeGuardPlus authentication

⚙️ Highly Configurable

Customize your server using a simple TOML configuration file, including welcome message, spawn dimension, server list MOTD, and more. View configuration docs.

🌍 Schematic World (Experimental)

Load a custom world from a schematic file and customize spawn location (1.16+ only).

PicoLimbo.png
The screenshot shows just a few of the supported Minecraft versions.


Quick Start

Pterodactyl

Official eggs for Pterodactyl are provided in the pterodactyl directory. More information about PicoLimbo's Pterodactyl eggs.

Docker

docker run --rm -p "25565:25565" ghcr.io/quozul/picolimbo:latest

Java Wrapper

For user wishing to run PicoLimbo inside your Velocity, BungeeCord proxy as a plugin or as a standalone jar file, you can download the Java Wrapper from Modrinth.

Binary / Standalone

Download from GitHub Releases

For more detailed installation and configuration instructions, please refer to the documentation website.

Documentation

Complete documentation is available at https://picolimbo.quozul.dev/

For detailed installation instructions, configuration options, and usage examples, please visit the documentation website.


Similar Projects

Contributing

Contributions are welcome! If you encounter any issues or have suggestions for improvement, please submit an issue or pull request on GitHub. Make sure to follow the existing code style and include relevant tests.

  1. Fork the repository.
  2. Create a new branch git checkout -b <branch-name>.
  3. Make changes and commit git commit -m 'Add some feature'.
  4. Push to your fork git push origin <branch-name>.
  5. Submit a pull request.