Any egg can hatch as a Mutant, and any wild creature can spawn as one — a creature with an alternate colour scheme from a rare pigmentation mutation. It is purely cosmetic: a medal on the creature sheet and a recoloured palette, with no effect on stats or gameplay.
Chance scales with egg grade. Completing the Codex adds a permanent flat bonus to every mutant chance, in two halves (zone tiers and Void lines, below).
| Egg grade | Base chance | With every zone tier (+0.10%) | With the whole Codex (+0.20%) |
|---|---|---|---|
| Worn | 0.01% | 0.11% | 0.21% |
| Common | 0.02% | 0.12% | 0.22% |
| Uncommon | 0.03% | 0.13% | 0.23% |
| Rare | 0.04% | 0.14% | 0.24% |
| Epic | 0.05% | 0.15% | 0.25% |
| Legendary | 0.06% | 0.16% | 0.26% |
| Abyssal | 0.07% | 0.17% | 0.27% |
| Divine | 0.08% | 0.18% | 0.28% |
| Primordial | 0.09% | 0.19% | 0.29% |
| Void | 0.10% | 0.20% | 0.30% |
Zone tiers +0.01% each (cap +0.10%); Void lines +0.001% each (cap +0.10%): src/worker.js MUTANT_CHANCE, cxMutBonusOf, cxVoidBonusOf. Generated by tools/codex_tables.py.
Mutants are not a hatch-only phenomenon. Every wild creature rolls for Mutant colouring when it spawns, on exactly the same odds — the table above, read against the wild creature's own grade instead of an egg's grade, and lifted by the same Codex zone tiers. A Void-grade wild spawn is a Mutant 0.10% of the time (0.30% with every zone tier and every Void stamp); a Worn one, 0.01%.
| Source | Rolls against | Codex bonus applies |
|---|---|---|
| Hatching an egg | Egg grade | Yes |
| Wild spawn | The spawned creature's grade | Yes |
| Devour | No roll — inherits: a creature that devours a Mutant becomes one (nothing changes if it already was) | — |
A wild Mutant is a sighting: it fights in its recoloured palette and marks the Codex accordingly. It is still cosmetic — identical stats, moves, and grade to any other spawn of its kind — and, like every wild creature, it is not itself Acquired; Acquisition happens by hatching.
The Codex bonus is not one all-or-nothing unlock — it is earned zone by zone. Each of the ten zones has its own Codex tier: Acquire (hatch) every creature that appears on that zone's floors and the tier locks in permanently.
| Zone | Floors | Creatures | Tier reward | Cumulative |
|---|---|---|---|---|
| Grasslands | 1–10 | 84 | +0.01% | +0.01% |
| Tidal Shallows | 11–20 | 86 | +0.01% | +0.02% |
| Desert Plains | 21–30 | 84 | +0.01% | +0.03% |
| Swarm Thicket | 31–40 | 69 | +0.01% | +0.04% |
| The Crag | 41–50 | 86 | +0.01% | +0.05% |
| Storm Peaks | 51–60 | 84 | +0.01% | +0.06% |
| Sunken Bog | 61–70 | 79 | +0.01% | +0.07% |
| Underwater Cave | 71–80 | 85 | +0.01% | +0.08% |
| Gemstone Cave | 81–90 | 87 | +0.01% | +0.09% |
| Flaming Hellscape | 91–100 | 87 | +0.01% | +0.10% |
Each zone tier grants a permanent +0.01% flat Mutant hatch chance. All ten zones = the full Codex = +0.10%, exactly the completion bonus in the table above — the reward was always +0.1%; it is now paid out in ten instalments instead of one.
The Void Apex (floors 101–120) is an eleventh zone in floors.csv and counts as a tier of its own, but the zone half is capped at +0.10% on the server, so it is a spare: any ten of the eleven complete the half.
Floor_Found reads like 1;11;21;32), so each zone's set holds 69–87 creatures (the Creatures column below) and the ten sets union to every line that spawns on floors 1–100. A creature counts toward every zone tier whose floors it appears on — completing the Grasslands tier therefore also carries you part-way through the tiers above it, and the ten tiers finish together only when the last creature is Acquired.Acquired means hatched. Seeing a creature in the wild marks it Seen in the Codex but does not count toward a tier. The server stamps it: the stage 1 when it hatches, and each later form when a creature the server hatched evolves into it. A flag the client sets on its own counts for nothing.
2026-11-03 — codex review (dfmc-client lane codexreview-a; D 2026-11-03 “review the codex, clean it up, update whatever needs updating”). WIKI ONLY. Fusion left the game and the page still said a fused pair inherits the colouring; the carrier is Devour (the devoured Mutant’s eater becomes one — the client’s own effect text). The Codex half named “all 300” creatures and “ten zones”; floors.csv now carries eleven (the Void Apex is one), the server caps the zone half at +0.10%, and the sentence says so. The odds themselves re-checked against MUTANT_CHANCE, cxMutBonusOf and cxVoidBonusOf in the worker: unchanged.
2026-10-23 — C17 part 3 (dfmc-client lane c17-gen-2): the chance and zone-tier tables are generated from the server’s own constants. WIKI ONLY; no game code changed. The chance table was drawn by a script on the page with its own copy of the rates; it is now static HTML from src/worker.js MUTANT_CHANCE, cxMutBonusOf and cxVoidBonusOf, and gains the whole-Codex column (+0.20%: both halves), which the intro’s “+0.1%” left out. The creatures-per-zone column is the server’s zoneCreatures count (creatures.csv Floor_Found): Sunken Bog 77 → 79.
2026-10-22 — the Codex mutant mark is the server's stamp (Tower rulings form card T19 part 5, D 2026-10-18: “Investigate and fix it this round. We are wiping now.”). LIVE on release since 2026-10-23 (0.89). The double tick and the mutant tile read codex[].mutant, a flag the client wrote at hatch and merged grow-only, so a console edit bought the mark and the save door kept it. The Acquired row now carries mut: a hatch stamps it from the server's own mutant roll, and the save door stamps an evolved form when the creature wearing it is one the server hatched mutant and the form is of its line. The door writes a missing mark into the save at either epoch; a mark the server never stamped is flagged codex_claim_bad (system class), and from the wipe it is also taken off the save and the corrected map handed back. The client adopts the mark from the answer only, as it does Acquired. A wild mutant seen in battle never wrote this mark on either side, so nothing is left client-set.
2026-10-01 — Acquired is the server's stamp (Rulings board row acquired). LIVE on release since 2026-10-23 (0.89). The zone tiers counted a creature Acquired off the flag the client wrote into its own Codex, merged grow-only, so a console edit bought the mutant bonus. The server now keeps the record: a hatch stamps the stage-1 species it mints, read off the egg's own ledger name (dropped, boss and first-win eggs are now named by the server when they are granted, and a save can no longer rename an egg); an evolved form is stamped when the creature carrying it is one the server hatched and the form is of that creature's line. The save door takes any other Acquired claim off the stored Codex, writes missing stamps in and hands the corrected map back; the bonus reads only the stamps. A wild creature still never counts. The same door now sets an active class the account does not own back to an owned one.
2026-09-30 — the Codex bonus on every wild roll, review lane Q (F092). ON DEV. The zone-tier and Void-stamp bonus lifted the Mutant roll only on /api/floor/enter. The encounter a battle priced, its two extras, and the refreshed pool every battle answer ships all rolled with a bonus of 0, so a Mutant shown on entry could come back plain after a fight. /api/battle now reads the same bonus and passes it to all three. Gate tools/probe_laneq.mjs 0/15 → 15/15.
2026-09-30 — review drift fixes: F099, F100, F139. WIKI ONLY. The Void-stamp half of the Codex bonus (#193: +0.001% per Void line, capped at +0.10%) has been live on hatch and wild rolls since 2026-08-19 and is now written into How it behaves; the full-Codex ceiling is 0.30%, not 0.20%. The zone-tier table said 90 creatures per zone; the sets built from creatures.csv Floor_Found hold 69–87 (union still 300). DESCRIPTIVE ONLY.
2026-09-16 — a mutant’s creature sheet wears its own skin, whatever the Codex says of its species (#922, D). ON DEV (0.81). The report, in Portuguese: mutants did not show their colour when equipped, from the items screen, nor in the creature information. The sheet was the one surface keyed on the species — it chose the mutant art from the Codex’s own mutant flag, which only a mutant hatch writes — while the inventory tiles, the equipment slot, the current-slot panel, the floor and the fight all ask the record itself. So a mutant made by devour or fusion, or one whose species the Codex never flagged, opened its sheet in ordinary colours from the bag tile and from the press-and-hold on its equipment card alike (they are one opener), and the inverse held too: a regular creature of a species you had hatched a mutant of wore the mutant palette on its sheet. When the sheet is opened on an individual, that individual now decides its art and its medal; a Codex-only sheet keeps the species reading, and a wild mutant’s sheet wears the palette it fights in. The equipped surfaces were already right, which is why the reporter saw the two disagree. Gate tools/probe_sheetmut.py 12/12, red 5/12.
2026-09-09 — a mutant in the soul picker finally wears its own skin (#793, D). LIVE on release since 2026-09-09 (0.73). The row in the soul picker has always been labelled “(Mutant)”, and the picture beside it was the ordinary art of that species — on every mutant, not just the one that was reported. The picker was the one surface that never got the mutant-aware art lookup the inventory tiles and the creature details window both use. Nothing about the art or the data was missing: all three of the reporter’s mutants had their recoloured images sitting in the codex the whole time. Gate tools/probe_mutsoul.py 5/5, red 4/5.
2026-08-29 — every mutant rebuilt from current art, and a line's stages now share one colour. Two faults, found together. Fifty-eight mutants predated the art they were made from — early creatures whose portraits were redrawn later, whose recolours were never redone — and they are all rebuilt. And the recolour itself is a deterministic hue rotation that was seeded from each creature's own identifier, so the three stages of a line were always going to land on three different colours: all 100 lines disagreed, 52 degrees apart on average and 96 at the worst. The rotation and the cluster split are now both taken from the line's first stage, so a colour is treated the same way all the way up the line. Across the roster the stages of a line now vary by 6 degrees where their own base art varies by 10. Charybdis has gone from 51° to 337°, against its stage one at 333°. Ten boss recolours were checked and were already correct.
Sixteen lines still vary more as mutants than their own art does, worst at 171°. That is the two-cluster split landing differently on stages whose palettes straddle its boundary, and closing it would be a change to the technique rather than a repair — left alone deliberately.
2026-08-29 — a mutant is drawn as one in the equipment window too. LIVE on release since 2026-09-01 (0.65). A player devoured a same-line mutant into his creature; it turned mutant in battle, but its icon in the equipment window kept the ordinary art. Devour had set the flag correctly and the battle was reading it — the equipment slot simply never asked. It looked its icon up in the item art table by name, which holds no creatures and knows nothing about mutants, while the resolver used everywhere else has always handled it. Both slot builders now go through that one resolver, so a creature in a slot is drawn the same way a creature is drawn anywhere.
tools/probe_dismmutant.py 9/9, tools/probe_dismmutant_ops.py 4/4. Mechanics live on crafting.html.deriveSlot was handed mutPctOf(), which
returned the number of bosses the player had downed (0–10) and used it as a
percentage. A count where a probability belonged. The spawn's own grade — computed on the
line directly above — was ignored entirely. One units error produced both live symptoms at once: a
new player with no bosses down rolled 0% and could never see a wild Mutant, while a
player six bosses in rolled 6% of every spawn, about 0.6 per ten-slot floor. That is
report #23, “3 shiny in under 5 min”, on floor 91. Wild spawns now roll
MUTANT_CHANCE against their own grade exactly as documented above: on the 91–100 band
(40% Epic / 60% Legendary) that is 0.056% per spawn, roughly 1 in 1,800, a
107× reduction from what was live.zoneSpeciesMap) was defined and never called, so the value handed to the hatch roll and the spawn roll was always 0 and every “with Codex bonus” figure on this page was unattainable by any player. The Worker now attaches the map to both requests, the same way it attaches the spawn table, because the Durable Object must never fetch. A codex-data outage is not fatal on either path — the bonus simply falls back to 0. Scale note, measured against live saves: a zone tier counts as complete only when all 90 species appearing on that zone's floors are acquired, so the bonus is a genuine endgame reward — an account 109 species in completes zero tiers.