All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added support for transfer packets (1.20.5+)
- Add environment variable placeholders in configuration file
- Updated list of transparent blocks
- Fixed binary not present in Docker image
- Commands documentation page not present in menu
- Add skylight and block light calculation for schematics (1.18+)
- Allow renaming and disabling commands
- Allow player to toggle fly and change flyspeed
- Java wrapper to run PicoLimbo as a Velocity plugin, BungeeCord plugin or standalone using the Java runtime
- Now compile and publish pre-built binaries using GNU libc
- Updated the Debian Pterodactyl egg to use the new GNU binary
- Always enforces secure chat, removing the unsecure chat popup
- Reduced the interval between keep alive packets from 20 to 15 seconds to match vanilla behavior and reduce kicks
/spawncommand to teleport player back to spawn- Support for 1.21.11
- Moved the
player_listedsetting to thetab_listsection
- Option to hide the player from the tab list
- Support for block entities
- Option to block unsupported versions from joining
- Option to not send the status response
- Status handshake was rejected with legacy or BungeeGuard forwarding enabled
- Add spawn rotation configuration
- Add reduced debug info configuration
- Support for 1.21.10
- Reduced Docker image size
- Fixed wrong skin parts ID sent in entity metadata packets for version 1.12 to 1.14.4
- Added support for 1.21.9
- Player teleportation system when falling below world boundaries with configurable minimum Y position and teleport message
- Time configuration for all versions with lock time for 1.21.5+ clients
- Tab list header/footer (1.8+)
- Player shows up in the tab list
- Player skins (1.8+)
- Boss bar (1.9+)
- Configurable server icon
- Network compression options
- MiniMessage formatting support for MOTD and welcome messages
- Title and subtitle (1.8+)
- Action bar message (1.8+)
- Removed maximum view distance limit
- Spawn position is now a persistent world setting
- Updated forwarding configuration format (see documentation)
- Renamed and relocated spawn dimension setting to
world.dimension - Schematic is sent to clients starting from 1.16
- High memory usage when sending a large schematic over the network
- Handle invalid Unicode strings by replacing it with the replacement characters �
- Major schematic performance optimizations reducing memory, CPU, and network usage for significantly faster schematic loading
- World height for overworld dimension now fixed at 256 blocks across all versions
- Removed unused registry entries
- Allow customization of the spawn position in the configuration
- View distance can now be customized
- Hardcore mode can be defined in configuration
- Support for loading schematics
- NBT strings and arrays should be prefixed with a UShort
- Send correct version of the game in KnownPacks
- Player not spawning due to view distance being too small in certain versions
- Set center chunk to prevent player getting stuck in loading world screen
- Void chunk is always send for all versions after 1.19
- Empty configuration file never gets filled
- Send correct amount of chunk section given a dimension
- Clouds not rendering for versions after 1.21.6
- Connection from BungeeCord were rejected when BungeeCord is running in offline mode
- Wrong yaw being sent for versions after 1.21.2
- Use the same binary reader and writer for NBT and packets, reducing duplicated code
- Simplified implementation of the Velocity secret key check
- Renamed
nbtcrate topico_nbt - Bundled packets' protocol IDs into the binary
- Pre-compiled and bundled registries into the binary
- Specify the correct
latesttag for the Docker image in the documentation - Shutdown signal is now properly handled on Docker
- Removed
pico_pingutility crate - Runtime parsing of JSON (registries and packet reports) files
- If the game mode is set to
spectatorin the configuration file, players in 1.7.x will spawn in creative instead of survival
- Keep alive packet not properly sending for 1.7.x
- Removed unused
PlayerPositionPacket
- Updated versioning scheme to adhere to Semantic Versioning
- We'll start with 1.3.1 as we had 3 versions with minor changes before and this one fixes a compatibility issue with ViaVersion
- Error getting displayed when running behind ViaVersion due to the -1 protocol version number
- Support for 1.21.8
- Refactor to simplify the Server struct
- Updated the README and the documentation
- Invalid login start packet between 1.19 and 1.20.1
- Do not always serialize as dynamic list if possible for >=1.21.5, which could cause incompatibilities with some proxy plugins (e.g. PacketEvents)
- UUID is misencoded for <1.7.6 preventing connection to PicoLimbo through Velocity when using 1.7.6 or older clients
- Invalid string decoding could cause a crash of the server if a player tries to connect with a Unicode username
- Accept -1 protocol version number during handshake to improve support with ViaVersion
- Removed the build script from pico_limbo binary for faster build times, this removes the detailed version number available when using the help command
- Support for 1.21.7
- Customizable default game mode in configuration
- Commands auto-completion when running behind a proxy #16
- Added error message in server's console when modern forwarding failed to help debug issues
- Improved de-serialization of spawn dimension configuration
- Send correct biome index in minecraft:login play packet
- Correctly implement the palette container data type according to 1.21.5 specs
- Send correct dimension type for 1.20.5, resulting in correct world height and clouds being visible
- Command-line argument to configure the data directory path
- Introduced a configuration file for easier setup
- Configurable default spawn dimension in the configuration file
- Customizable server Message of the Day (MOTD) and maximum player count (display only) through the configuration file.
- Configurable welcome message sent to players upon login
- Support for BungeeCord and BungeeGuard forwarding
- Added support for 1.21.6
- Improved documentation in the README and CLI help
- Online player count is now included in the server's status response
- The Pterodactyl egg file includes additional environment variables to easily configure
- Docker images and standalone binaries are now available for Linux/arm64, in addition to Linux/amd64, Windows, and macOS (M-series Macs)
- The default listening address is now set to 0.0.0.0
- Improved error logging for clearer diagnostics
- Direct connection kicks for pre-1.13 clients when modern forwarding is enabled but they attempt to bypass the proxy
- Refined login sequence to strictly follow Minecraft standards required by BungeeCord
- Fixed issue where the server brand was not sent to clients prior to Minecraft 1.20.2
- Resolved an issue that caused crashes whenever a null byte was sent to the server during handshake
- Fixed incorrect Docker image tag in README and docker-compose.yml
- Removed invalid CLI argument in Dockerfile preventing the server from starting
- Enhanced stability and reduced server crashes (panics)
worldgen/biomeregistry not being sent when running on windows causing a Network Protocol Error on the client
- Fixed Docker image not including the assets directory
- Update Pterodactyl egg to use Alpine
- Add project license
- Enable LTO and set codegen-units to 1 for optimized builds
- Build for musl Linux to be used in Pterodactyl
- Remove build for Apple Intel because it is an aging platform
- Assets is no longer bundled in the binary
- Bundle assets into the binary
- First official release of PicoLimbo.