A PocketMine-MP plugin that provides a packet translation layer allowing players using older Minecraft Bedrock client versions to connect to servers running newer protocol versions β without forcing anyone to update.
π§ Active Alpha Development
LittleBrother is currently in active development and the core translation system is evolving rapidly.
While many packet translators and runtime mappings are already implemented and functioning correctly, protocol translation support is still considered experimental and may vary depending on the protocol version, gameplay feature, or packet type.
Stability and compatibility continue to improve between releases, but issues such as desync, incomplete packet handling, or runtime mapping inconsistencies may still occur.
One of the most frustrating problems in Minecraft Bedrock server hosting:
Players using older clients can't join servers running newer protocol versions.
Instead of forcing players to update β or downgrading your server β LittleBrother introduces a seamless translation layer that bridges the gap between protocol versions automatically.
β
No forced client updates
β
No server downgrades
β
Transparent to players
β
Clean, modular architecture
LittleBrother sits silently between the client and the server, translating packets in both directions in real time using the new Axiom runtime translation architecture.
Client (Old Protocol)
β
βΌ
βββββββββββββββββββββ
β Runtime Inbound β β Translates old β new
β Translator β
βββββββββββββββββββββ
β
βΌ
PocketMine Server (Latest Protocol)
β
βΌ
βββββββββββββββββββββ
β Runtime Outbound β β Translates new β old
β Translator β
βββββββββββββββββββββ
β
βΌ
Client (Old Protocol)
Old clients send packets β LittleBrother translates them at runtime β Server processes normally β Responses are translated back into compatible packets. β¨
LittleBrother is built around a modular runtime translation architecture designed to scale across multiple Bedrock protocol versions.
| Component | Description |
|---|---|
| π Runtime Translator | Core runtime engine handling packet translation between protocol versions |
| β‘ Axiom Runtime Codecs | Dynamic protocol-aware serialization and deserialization system |
| π οΈ Manual Packet Handlers | Handles complex packets where automatic runtime translation is insufficient |
| πΊοΈ Runtime Mapping System | Handles block, item, and runtime ID remapping across versions |
LittleBrother ships with internal tools that assist protocol research, runtime mapping, and development workflows.
Downloads the required Bedrock protocol data from pmmp/BedrockData.
Fetched data includes:
canonical_block_states.nbtblock_state_meta_map.jsonrequired_item_list.json
Stored per protocol version inside:
resources/data/bedrock/<protocol>/
Usage:
php tools/generate-protocol-data.php --config=schema-config.jsonThe script automatically fetches data from GitHub, caches results locally, and skips already-downloaded versions. β‘
- π Multi-version Bedrock client compatibility
- β‘ Runtime-based packet translation
- π οΈ Manual packet handlers for complex packets
- πΊοΈ Runtime ID remapping system
- π Bidirectional protocol translation
- π Broader legacy protocol support
- βοΈ Improved gameplay synchronization across versions
LittleBrother is a full runtime packet translation system, not just a handshake modifier.
The plugin handles:
- Packet structure differences across versions
- Runtime ID remapping
- Protocol-level serialization changes
- Dynamic packet translation between supported protocols
β οΈ Very large version gaps may still require additional manual handling and runtime adjustments.
If you find LittleBrother or my other PocketMine-MP plugins useful, your support means a lot! It helps me dedicate more time and resources to improving and expanding these tools for the community. π
Donations are welcome via PayPal. Your generosity helps cover hosting, development tools, and everything that keeps this project alive.
Pull requests are always welcome! If you're a developer who wants to help build the future of multi-version Bedrock compatibility, jump in.
Your feedback shapes the direction of this project. Found a bug? Have a feature idea? Open an issue β every bit of feedback helps.
A heartfelt thank you to everyone who has supported this project β through code contributions, donations, or valuable feedback. You keep this project alive and thriving. π
Made with β€οΈ for the PocketMine-MP community