Blog ·

We were wrong about modded worlds

This page used to say our AI could not join a heavily modded server. We had not tried it. Somebody asked whether we had, we went and did, and the claim was wrong — so here is what actually happens, measured on a 49-mod pack.

The assumption was reasonable and completely untested: a big modpack changes so much about a world that a bot built against vanilla data would not survive contact with it. That sounds right. It is the sort of thing that gets written into a FAQ because nobody wants to promise something they have not checked.

The trouble with an untested caution is that it is still a claim. We spun up the Cobblemon Fabric pack — 49 mods, Minecraft 1.21.1 — and pointed the bot at it.

It joined, and nothing broke

A 49-mod Cobblemon pack on Fabric, 1.21.1. The bot connected as an ordinary player, stayed connected, walked 8.2 blocks under its own power, and reported 20/20 health with zero packet parse errors during play. Everything we had assumed about protocol incompatibility was wrong: mods overwhelmingly add content, not protocol, and content travels over the same packets vanilla already uses.

But it could not name anything

mineflayer resolves blocks through minecraft-data — a static file written per Minecraft version, before any of those mods existed. So a Cobblemon apricorn log arrived with the correct network state id, 43707, and an empty string for a name. The bot could see it perfectly and had no idea what it was.

The server already knows, and will tell you

A server has to know its own blocks or it could not place one. Tab completion is the interface: type "/setblock 0 64 0 " and it answers with every block it will accept. Walking that one prefix at a time returned 1,367 blocks — 304 of which vanilla has never heard of — plus 2,039 items and 135 entities, in under a second, with no support for any particular mod required.

Naming a block is not being able to touch it

Even named, mineflayer had no hardness and no harvest rule for those blocks — so bot.dig() returned successfully and broke nothing. Success, reported, with the block still standing. The fix is calibration: place one of each on a scratch block, write down the state id the bot reports, and put a synthetic entry in the registry borrowing a lookalike vanilla block’s weight. 304 blocks in 140 seconds, once per server.

Two traps in the calibration

Neither of these announced itself, and both would have produced a registry that looked complete and was quietly wrong.

A failed setblock leaves the previous block standing. The read then records its state id under the new block's name — and overwrites the correct entry made for it a moment earlier. One failure corrupts two blocks and reports nothing. Clearing to air first turns that into a reading of air, which is countable.

A block with several states answers differently each time. A berry that grows, a sign that faces somewhere. One reading names one state and silently leaves the rest unknown. Placing twice and keeping only the blocks that agree sets those aside instead.

What it can do now, and what it still cannot

1,367 blocks offered · 304 vanilla had never heard of · 304 learned in 140s · 8 of 8 mined, ore included · 705 items learned in 30s

The ore is worth a note. It resisted a first attempt and we nearly wrote it up as a limitation — it was resisting a bare hand. With a pickaxe it broke. That is Minecraft working correctly, and it is a good reminder that a failed measurement is a claim about your setup before it is a claim about the world.

Crafting is the honest remaining edge. A mod that adds its own furnace, its own recipes and its own machine to run them is a mod Cog can build with and mine in, and cannot yet craft in. Nothing about that is solved by knowing block names, so we are not claiming it.

Update, 25 August 2026. The paragraph above is now out of date, which is the correct fate for a paragraph like it. Cog can craft a mod’s recipes, and the way it works is that Cog never learns them. Since Minecraft 1.21.2 the recipe book lives on the server: ask for it and 1,358 recipes arrive with a number against each one, and asking by that number makes the server lay the ingredients out itself. A mod’s recipe is just another number in that list. We checked it with a recipe we invented — four dirt into three diamonds, which nothing in the game does — and then on a real one: Cog made a Just Hammers reinforced core, a three-by-three recipe whose own ingredients include another modded part, having never seen either of them before. What is still true is the machine: a mod that adds its own furnace with its own screen is not a recipe anybody can ask for, and that one we are still not claiming.

The wider point is not about mods. We had a sentence on a public page that was wrong because checking it looked like work. It took an afternoon. If you are reading a claim on this site and wondering whether anybody measured it, that is exactly the right question, and the answer should always be in the post.

Keep reading

The other notes

Be in the first worlds.

We are opening a small number to begin with. Put your name down and we will tell you when yours is ready.

Early access

Be in the first worlds.

We are opening a small number of worlds to begin with. Tell us which part matters most to you and it moves up the list.

No spam. One email when your world is ready.