Status: what works today
This page is the only full status table in the docs, and other pages show a part of it. Each row has a date and either a check you can run or a section of PERF.md.
What the states mean
Section titled “What the states mean”| State | Meaning |
|---|---|
| Works | A test you can run or a measurement in PERF.md shows it |
| Partial | Part works, and the rest is in an issue or a PR |
| WIP | It is not in the code or not finished, and an issue tracks it |
| Undecided | No decision yet. The plugin loader (jar, wasm, scripts) is in this state |
| Not planned | A closed decision says no |
Status by area
Section titled “Status by area”| Area | State | Works | Missing |
|---|---|---|---|
| World generation | Works | Noise, surface, aquifers, carvers, features and structures. The output is compared element by element with dumps of the real game (about 14 of the 49 entries in tools/fixtures.json belong to world generation). Presets normal and flat. | Parity is checked on reference seeds and chunks, not on every seed. Entities from generated structures are not done. WIP#170Partial#523 |
| Lighting | Partial | Sky light and block light from the light engine crates, with a bulk-load example. | Coloured block light exists but is not on by default. WIP#346 |
| Client and rendering | Partial | Terrain, sky, clouds, light, mobs, the F3 overlay, chat and block breaking in creative. Render distance 96 columns by default. | At 96 columns the GPU frame is 3.7 ms, above the 1.0 ms target, and the process holds 12 GB. Measured only on an Apple M4 Max with macOS. The web build hangs. No sound, particles or weather. WIP#337WIP#344WIP#129 |
| Protocol | Partial | Handshake, status, login, configuration and play. 71 of 144 clientbound and 52 of 69 serverbound play packets are typed. | The other play packets travel as raw bytes. Only one game version at a time; translation for older clients is planned. WIP#295WIP#537 |
| Network | Partial | TCP with compression, status with MOTD and icon, transfer, LAN announce, whitelist and bans. | No online mode and no encryption: anyone can join under any name. No proxy support (modern forwarding, BungeeCord, Velocity). WIP#82WIP#296 |
| Saving and Anvil | Partial | Reads an existing Java Edition world. Players are saved when the server shuts down cleanly. | Changed chunks are not written back to disk. A world of another data version does not load, and there are no datafixers. WIP#78WIP#169 |
| Gameplay | Partial | Join, chat with a cancellable event before broadcast, game modes, block breaking in creative, random ticks, block events, block drops. | Crafting, combat, redstone, fluids, plant growth, trading, bosses. No survival loop yet. WIP#182WIP#190 |
| Commands | Partial | Command parser and tree, the commands packet and tab hints. 20 vanilla commands, among them execute, gamemode, tp, summon, kill, data, time, fill, whitelist and ban. | A command tree with permission levels is still open. Partial#285 |
| Entities and mobs | Partial | Entity rows by tile, 5 mob types with data (pig, cow, sheep, chicken, zombified piglin), pig AI, replication of mobs to clients. | Most other mobs and their AI. The 50,000-pig benchmark is marked provisional by its author, so we publish no numbers from it. Partial#102WIP#224 |
| Physics and movement | Partial | Physics kernel with collisions and impulses, a movement check for players, comparison with recordings of the vanilla client. Results do not depend on the thread count. Teleport confirmation follows its specification, and scripted-client tests check it. | The shared player movement model is open. The teleport confirmation spec still has open questions, such as an accept of an older id when nothing is pending. Partial#85Partial#623 |
| Data packs and registries | Works | 147 registries with 9079 entries load from a data pack at start. Biomes and dimensions come from the pack without a rebuild. | Reloading a data pack while the server runs. WIP#316 |
| Molang | Works | Parser, compiler, scalar, batch and WGSL backends, and a corpus of Bedrock expressions for comparison. | New code, about a week old at the check date. No dedicated issue. Partial#338 |
| Tools | Works | One command moves the project to a new game snapshot. Also the vanilla oracle, mob bench, server bench, client recorder, Molang corpus and the xtask checks. | Some tools need Java 21 or newer, and the mob bench needs Java 25. WIP#507 |
| Crates as a library | Partial | 122 crates. CI checks that 100 packages build without Bevy, 9 without std and 11 for wasm32. | Nothing is published on crates.io, there are no library examples, and the API is not stable. WIP#180WIP#287Undecided#321 |
Performance numbers are in PERF.md, each with the machine and the scenario. All of them were measured on one machine, an Apple M4 Max with macOS. We publish no comparison with vanilla, Paper or other servers.
What is not planned
Section titled “What is not planned”- Support for older game versions. mcrs targets one version at a time.1
- Datafixers. A save is read at exactly the targeted data version, and an unknown field is a loud error.2
- A facade or a Bukkit-like API crate.3 This decision covers only the facade. A plugin loader for jar, wasm or scripts has no decision yet.
How to follow progress
Section titled “How to follow progress”You do not need to read code to follow the project.
- All the work is visible in the GitHub repository.
- To follow one issue, open it from the table and press Watch on the right. You need a GitHub account, and you get a mail when the issue changes.
- The latest code changes and the releases are on GitHub too.
- Questions and progress reports are on Discord.
- Three issues hold the direction: one for the library, one for many nodes and one for gameplay.456
- Decisions and their reasons are the issues with the label
decision.
We check this page by hand once a month and on every new tag.
Footnotes
Section titled “Footnotes”-
Not planned#412 The decision to target one version at a time, with no backward compatibility. ↩
-
Not planned#388 The decision that saves are read at exactly the targeted data version, with no datafixers. ↩
-
Not planned#437 The decision that there is no facade or API crate, and the crates and plugins are the public surface. ↩
-
WIP#180 The direction for mcrs as a library, from a proxy to a full server. ↩
-
WIP#181 The direction for one dimension on many nodes for thousands of players. ↩
-
WIP#182 The direction for vanilla gameplay and behavior tests on the scaling architecture. ↩
Sources and verification
Verified: 26.4-snapshot-7, 3540f457b, 2026-11-10