In October 2020 I set up a blocky server for my kids and my friends’ kids. Five years later, in September 2026, the world keeps running on the same map, has 138 modifications, and has survived the upgrade I feared most: the move from Minetest 5.4.1 to Luanti 5.17.0 without a single unknown block. The difference between the 2020–2022 era and September 2026 is who performed the upgrade. The first time it was a human with no time; the second time an AI agent with full access to a testing server and a set of gates that refuse to deploy anything that would break the old map.
Why a Blocky World, and Why Not Minecraft
Minecraft is a paid game with closed source code; playing it requires a Microsoft account (Minecraft support) and a purchased license (official store). For a community server for kids I wanted the opposite: a free engine, open code, the map and data fully under my control, and the option to run the server on my own hardware in a hosting environment I have access to. The choice fell on Minetest, an open-source voxel engine that was renamed to Luanti in October 2024. The game itself is free to download, the server runs on my own machine, and nobody can switch off my account or change the license terms under my hands.
This is not about Luanti being “better than Minecraft” — that would be marketing, not fact. It is about a different business model: zero license cost for every kid, full control over a world in which children have been building for years, and the ability to look inside the engine and the modifications and intervene. It was that third property that proved key in September 2026.
Five Years of “Good Enough” Operation
The first commit of the minetest-mm repository dates to 25 October 2020. I set the server up, the kids adopted it, and the map kept growing. But there was simply no time left for administration, maintenance, or repairs. The server showed occasional errors, systemd restarts papered over the crashes, and everything worked — more or less.
Two problems kept coming back. Upgrades left so-called unknown blocks on the map: spots where the engine no longer knew a block’s definition, leaving an ugly placeholder instead of a build. And many things could not be crafted at all, because the recipes of two modifications claimed the same crafting pattern — a recipe conflict the player only notices when crafting yields something other than expected. Crashes were rare, hard to reproduce, and debugging them was boring. The classic combination: nothing burned urgently enough for a human to sit down and rewrite it, and everything rotted enough for a human to fear touching the upgrade.
What the Agent Was Given
After five years of operation I tried an AI agent: Muse Spark 1.3 in the Contributor tier, running inside Hermes Agent. The agent got full access to my devel-testing server — a faithful copy of production where anything can be broken without consequences. The assignment: upgrade the whole repository to the latest Luanti version and the latest modification versions as of September 2026, namely Luanti 5.17.0, and design the project’s gates so as to prevent everything I had previously fixed by hand or “once somebody noticed”. The condition was strict: full compatibility with servers that had been running for five years with large maps.
We designed the gates together — I defined what had hurt for five years, and the agent designed the mechanisms that detect that pain automatically. In September 2026 the repository gained 53 commits, more than in all previous years combined, and on 25 September 2026 I released version 1.0.0. In total, master holds 238 commits.
Two Gates Against Two Old Pains
The first pain — unknown blocks — is handled by the node registry. A script statically extracts every block registration from the modifications and the game, a helper mod on the running server prints the engine’s actually registered nodes, and the result is diffed against the frozen list from version 5.4.1. Every removed or renamed node must get an alias in our compatibility mod mm_compat, or the gate rejects the upgrade. The 5.17.0 runtime registry spans 32,825 lines — the authoritative list of everything the engine knows.
The second pain — recipe conflicts — is handled by the craft gate. A helper mod dumps every recipe the way the running engine sees it (the merged table of game and mods, aliases resolved), an analyzer classifies them into hard conflicts, shadow collisions, and fixed pairs, and the gate lets through only a state with zero hard conflicts. The fixes live in craft_recipes.lua inside mm_compat: each pair is resolved two-sided — first the colliding pattern is cleared, then the winning copy is registered and the loser gets a new recipe. A recipe added once never changes again.
Around that stands a pre-push hook that checks every push in seconds: that the bundled copies are in sync, that no secrets leak into the public repository, regression tests, a dual node check against both baseline lists, unsatisfied mod dependencies, and lockfile validity. Slow checks (a full recipe analysis takes minutes) belong in the nightly run, not in every push — that split is part of the design too.
Upgrading 5.4.1 → 5.17.0 Without Losing a Block
The upgrade itself ran on devel-testing on 23 September 2026. The engine went from 5.4.1 to 5.17.0, released in August 2026 (a version that fixed critical security bugs — a sandbox escape in singleplayer and menu-hosted games, which does not affect servers — plus other vulnerabilities), the game minetest_game to commit c42e4d0c, and all 138 modifications to pinned upstream commits from mods-versions.lock and game-versions.lock. The before-and-after runtime dump comparison: 31,650 → 32,825 registrations, i.e. 1,175 new ones, and zero lost. No unknown block, no dead recipes.
The key word is pinned. Every modification is locked to a specific upstream commit, so every install and every upgrade is reproducible. The –fresh flag ignores the lock and pulls the newest upstreams — a controlled experiment, not a lottery. And the patches/ directory with nine patches keeps our fixes on top of upstreams idempotently: they can be applied repeatedly with no side effects.
What Version 1.0.0 Is
Version 1.0.0 of 25 September 2026 merges the development branch and closes four tracked issues: horse and vehicle seat-height fixes, a risk-ranked protection audit, an English documentation translation, and mm_compat consolidation. The whole repository holds 23,015 files, including 138 modification directories, the bundled game, our own compatibility mod, nine patches, the compat/ gates directory, git hooks, and documentation including expansion plans. Everything open, everything versioned, everything reproducible with one set of scripts.
The world offers over 14 thousand usable items — blocks, tools, mobs, simply everything playable — yet is meant to stay lightweight. Lightweight here does not mean few mods, but few moving parts in the data path: one engine, one locked game, a deterministic deploy, no manual intervention on the server. Heavy is the offering; light is the administration.
What You Can Play: Stargates, Cars, Trains, and a Furnished Flat
And now the main course for players: what can actually be done on the server when no upgrade is running. Advtrains rails (ContentDB) cross the world — from steam locomotives through industrial consists to the metro — and whoever does not want to wait for a train takes a car from vehicle_mash (the lineup includes a hot rod), a boat or a hovercraft, or a hot-air balloon from the standalone hot_air_balloons mod. And when the destination is truly far, a stargate serves: a portal you travel through by dialing an address — our thematic replacement for the generic teleports we deliberately cut from the future plans.
Home life is vivid too. The homedecor pack with dozens of submodules (upstream) and ts_furniture furnish a flat completely: a kitchen with a fridge, a bathroom with a toilet, a living room with a sofa and a big screen, a study with a computer. Add a jukebox for music, chess plus sixteen more board games from the myboardgames pack, farms with bees, a vineyard, barbecues, animals, monsters and villagers, horses to saddle — and above it all, land protection, a currency with shops, and mail. A lived-in world, in short, not a technology demo of gates.
Three Servers: Survival, Creative, and Devel
The world runs as a trio: a production survival server, a creative server for limitless building, and a devel-testing server where the agent debugged the upgrade and where every novelty is tested before it touches the live map. That trio is exactly why the upgrade could afford to be bold — only something nobody would miss could break. Players find addresses and ports in the repository description.
Why the Contribution Model: Price, Performance, and Data for a Discount
The primary reason for choosing Muse Spark 1.3 Contributor via OpenRouter was price-performance. The Contributor model cuts operating costs roughly tenfold in exchange for the right to use prompts and outputs for product improvement — per OpenRouter’s price list, 12.5 times on input and 21.25 times on output. I would never make that trade with confidential data. But this is a blocky world: the repository is open-source anyway, the prompts describe block recipes and aliases, there are no secrets in them. For non-confidential data this is, in my view, a great deal — Meta gets prompt data, I get a huge compute discount.
It paid off in another way too: in September 2026 the agent worked at a pace I could never have matched alongside a job and a family — dozens of commits with tests on devel-testing, including nightly gate runs. Boring debugging, which I had postponed for five years, is exactly the work where an agent shines: patient, systematic, and never bored by the fifty-second dump run.
So what did this fun cost? I summed up all 5,773 paid generations of the development key from the OpenRouter export: 1.49 billion prompt tokens (90.4% served from cache) and 3.2 million completion tokens. On the Contributor price list (0.10 USD per 1M, 0.002 USD cached, 0.20 USD output) that comes to USD 17.63. The same workload on the standard tariff (1.25 / 0.15 cached / 4.25 USD) would have cost USD 394.96 — 22.4 times more. The whole upgrade from 5.4.1 to 5.17.0, all 53 commits and gates included, thus cost me less than dinner for two.
What Comes Next: More Playable Things, but Never at the Map’s Expense
The plans (docs/FUTURE_PLANS.md, a September 2026 brainstorm) point to further expansion: roughly seventy candidate modifications in the first wave — new dimensions above and below the world, furniture, food, logistics, peaceful mobs. Every candidate passed through a decision gate, and many did not: nothing that generates terrain into the production map’s existing chunks may ever touch it. Ethereal, Everness, map-generated villages — all of those would leave irreversible artifacts our gates are not built to catch. Expansion yes, but only the kind that cannot harm a five-year-old map.
The road from “good enough” to 1.0.0 is thus not a story about AI replacing the administrator. It is about the administrator finally gaining a colleague with time for boring work — and gates that make sure boring work never has to be done twice. The map those kids were building on five years ago survived the upgrade without a scratch. There’s no need for further proof that it all makes sense — and that AI can be a good colleague.
A video demonstration from the administrator/player perspective to wrap things up:
Sources
- Luanti blog: Luanti 5.17.0 released (2026)
- Luanti Documentation: Changelog 5.16.0 → 5.17.0 (2026)
- GHSA-5373-9cjp-qfmg: sandbox-escape fix in 5.17.0 (singleplayer/menu hosting, does not affect servers)
- Luanti: Downloads (2026)
- luanti-org/luanti on GitHub (engine, open source)
- luanti-org/minetest_game, commit c42e4d0c (bundled game)
- Wikipedia: Minetest — renamed to Luanti (October 2024)
- OpenRouter: Muse Spark 1.3 Contributor — price list (0.10/0.20 USD per 1M tokens, 2026)
- OpenRouter: Meta models (2026)
- Minecraft support: Microsoft account for Java Edition (2026)
- Minecraft: Java & Bedrock Edition for PC — store (2026)
- minetest-mods/stargate — portal modification (2026)
- minetest-mods/vehicle_mash — cars, boats, hovercraft (2026)
- Eran/hot_air_balloons — hot-air balloons (ContentDB, 2026)
- advtrains — trains and railways (2026)
- ContentDB: advtrains (2026)
- mt-mods/homedecor_modpack — home furnishings (2026)
- DonBatman/myboardgames — 17 board games (2026)
- minetest-mods/ts_furniture — furniture (2026)
- Hermes Agent — open-source AI agent (Nous Research, 2026)
- milan/minetest-mm — server repository, version 1.0.0 (2026)
Content Transparency and AI Assistance
How this article was created:
This article was written by Hermes Agent — an open-source self-improving AI agent (Nous Research) — in collaboration with our editors. The editors set the topic, research direction, and primary sources; Hermes prepared the research, structure, and draft. Every key claim passed iterative fact-checking against two independent sources plus blind review audits.
Editorial review and fact-checking:
- ✓ The text was editorially reviewed
- ✓ Fact-checking: All key claims and data were verified against two independent sources
- ✓ Fact corrections and enhancement: Our editors corrected inaccuracies and added subject matter expertise
- ✓ Multi-round audit: The article passed repeated blind audits including a final shared review round
AI model limitations (important disclaimer):
Language models can generate plausible-sounding but inaccurate or misleading information (known as “hallucinations”). We therefore strongly recommend:
- Verifying critical facts in the primary sources (official documentation, peer-reviewed research, subject matter authorities)
- Not relying on AI-generated content as your sole information source for decision-making
- Applying critical thinking when reading
Spotted a mistake?
Let us know in the comments under the article — we check every report.
Technical details:
- Agent: Hermes Agent (Nous Research, open-source)
- Model: Muse Spark 1.3 Contributor (Meta)
- Method: Self-improving editorial skill — research, drafting, multi-round blind audit, human review
- Run: Self-hosted Hermes Agent instance run by our editors, connected to the model provider’s API (not a local model)
Be First to Comment