Valence is a Rust framework for building Minecraft: Java Edition servers.
Valence addresses the challenge of creating custom Minecraft servers by providing a complete, from-scratch implementation built on Bevy's entity component system architecture. Rather than modifying existing server software, the framework gives developers direct access to the Minecraft protocol and lets them compose server behavior through Bevy's plugin system. This approach treats server development like game engine development, where core abstractions handle protocol communication, chunk management, entities, and player authentication, while game logic and custom mechanics are built as optional plugins on top.
Valence suits developers building highly customized Minecraft experiences such as minigame servers or experimental game modes where flexibility matters more than out-of-the-box vanilla compatibility. The framework is modular, allowing you to use only the components you need rather than inheriting a monolithic server codebase. It targets the most recent stable Minecraft version and does not plan to support multiple versions simultaneously, though backwards compatibility with older clients can be achieved through a proxy like ViaBackwards. The project is still early in development with incomplete features and breaking changes expected.
The project maintains active development with regular commits addressing protocol completeness and performance. Work spans protocol implementation, with recent focus on spatial queries and entity systems. The codebase includes specialized libraries like valence_nbt for the Named Binary Tag format and tooling such as a Fabric mod for extracting game data into JSON that feeds code generation. Documentation and examples receive ongoing attention as part of the development effort. The project sustains community engagement through Discord and accepts contributions through established channels.