News
This page is the change log of mcrs. Each entry says what was merged, what changed for people who write plugins, and what is still missing. A change is marked “Breaking” when old plugin code stops compiling. The newest entry comes first.
The last tag is 27 days old, and 152 pull requests were merged after it, so the first entry covers work that has no tag yet.
Since v0.5.8 (no tag yet)
Section titled “Since v0.5.8 (no tag yet)”This entry covers 2026-10-14 to 2026-11-10. In that time 6 authors made 874 commits and merged 156 pull requests. 123 of the pull requests are from andreypfau, and 33 are from five other people.
Merged
Section titled “Merged”- Worlds tick as parallel cells behind a muxer thread and a shared data layer (Works#646).
- The server has mobs with a parallel AI stage, the client renders mobs, and there is a benchmark with 50,000 pigs (Works#651).
- Entity physics, movement checks and block simulation work (Works#648), and so do the block tick and block event queues (Works#477).
- Player bans and the whitelist follow their specifications (Works#637, Works#635).
- The server disconnects and saves every player before shutdown (Works#624).
- A player can break blocks in creative mode (Works#643).
- The mc.rs landing page was added, with a language switcher (Works#629, Works#633), and CI checks that the client compiles for
wasm32(Works#622). - The VarInt and VarLong reader now rejects out-of-range bits (Works#653).
- NBT reads and writes the two Bedrock encodings, little-endian for storage and varint for the network, next to the Java one (Works#679).
- The new crate
mcrs_minecraft_text_flattenfills translations in flattened text. A translated disconnect reason used to show an empty line, and now it shows its fallback or its key (Works#680). - Survival block breaking has a specification, taken from a vanilla server (Works#686). Block placing in creative mode has one too, also from a vanilla server (Works#645, Works#692).
- Teleport confirmation follows its specification. The server resends a pending teleport while the client moves, and tests check it through a scripted client (Works#683, part of Partial#623).
- CI runs the project’s own pull requests in one self-hosted job and fork pull requests on hosted runners, and a change to
docs/alone builds nothing (Works#691). Cargo resolves features once for the whole workspace (Works#685). - Coding agents get
AGENTS.md, agent skills and path rules (Works#687). How to contribute explains how to use them. - The landing page has search engine metadata,
robots.txtand a sitemap (Works#684).
Breaking for plugin authors
Section titled “Breaking for plugin authors”A plugin here is Rust code that is compiled into the server.
MinecraftServerPluginbecame the plugin groupMinecraftServerPlugins, with members such asServerCorePlugin,DimensionWorldsPlugin,WorldGenPluginandServerNetworkPlugin. You can disable or replace any member (Works#551). The engine members then moved to the new cratemcrs_minecraft_engine_server, andmcrs_minecraft_serverkeeps the vanilla group (Works#592).- No library crate reads the environment or the working directory for settings now. Operators are an
opsfield of the plugin, and the client knobs are aKnobsresource (Works#548). The details are in Environment variables. Text::to_legacy_lossyis removed. Useplain_textorlegacy_textfrommcrs_minecraft_text_flatten, which also take aLanguage(Works#680).- The reader and the writer of
mcrs_minecraft_nbtlost the_besuffix of their methods, soget_u8_beisget_u8now (Works#679).
New for plugin authors
Section titled “New for plugin authors”- A plugin can add plugins to every dimension world with
add_dimension_plugin, or to one dimension world withadd_dimension_plugin_to(Works#552). - The chat event is cancellable. An observer can stop a line or replace its text before the broadcast (Works#636, part of Partial#283). Join, leave, movement and block events are not done.
Not there yet
Section titled “Not there yet”- Changed chunks are not saved to region files (WIP#78), and there is no online mode (WIP#82).
- There is no loader for plugins outside the server build, and no decision on it.
- There is no speed claim against another server. The benchmark runs are provisional, as Performance explains.
v0.5.8, 2026-10-14
Section titled “v0.5.8, 2026-10-14”Commit bf147fb2c, two commits after v0.5.7.
The workspace version is now 0.5.8, and CI runs mutation testing only on demand. Nothing breaks for plugin authors. The crates are still not published (Undecided#321).
v0.5.7, 2026-10-13
Section titled “v0.5.7, 2026-10-13”Commit 4fe86dc75, two commits after v0.5.6.
The xtask check now refuses a literal that names any fixture destination directory. The other commit is the version bump. Nothing breaks for plugin authors, because this tag changes only the test tooling. What is missing is the same as in v0.5.8.
v0.5.6, 2026-10-13
Section titled “v0.5.6, 2026-10-13”Commit e57c49ebe, seven commits after v0.5.5.
Parity tests and fixtures now load oracle dumps, protocol goldens and data goldens through one fixture loader, which resolves them by name and checks their version. There are two new xtask checks. The first warns about vanilla claims that are tested against literals outside parity files. The second checks that parity tests compare against fixtures loaded by name. Nothing breaks for plugin authors. What is missing is the same as in v0.5.8.
How to follow the changes
Section titled “How to follow the changes”- Watch the tags. The repository has 11 of them, and the latest is v0.5.8.
- Watch the list of merged pull requests.
- Watch the four direction issues in the Roadmap.
An RSS feed of this page is planned.
Sources and verification
Verified: 26.4-snapshot-7, f50e2fdf6, 2026-11-10