How Claw Master increases enemy stats over the campaign, with an interactive calculator. The formulas are decompiled from the arm64 binary (libil2cpp.so); the multipliers are live runtime values read off the running game. Both curves climb hard: HP is linear and explodes; damage is a steep, super-linear power curve.
EnemyMultipliersConfig singleton), which reproduces the team's observed ~150 for that Rat. HP (0.14) was unchanged and was already correct.LevelSpawnEnemiesAbility.Spawn(EnemyConfig, int level) → CalculateHealth/DamageParameterValue(base, multiplier, level), multiplier = one global EnemyMultipliersConfig (HP 0.14, DMG 1.18 live). The integer level runs 1 → ~4500 across the campaign. Decompiled bodies (RVA 0x2EC5754 / 0x2EC57F8):
Pick a CM enemy (auto-fills base stats) or type your own, set a level, read the effective stats. The HP coefficient, DMG exponent and DMG divisor are editable so you can model CF's own curve. Decompiled formulas: HP = round(base × (1 + cHP×(level−1))), DMG = round(base × (1 + (level−1)/div)^exp).
| # | Biome | Level | Eff. HP | Eff. DMG |
|---|
Basic columns = floor Common enemy (base 240 HP / 20 DMG, e.g. Rat). Boss column = biome boss base → scaled at the biome's top level. Sorted by biomeOrder (the data's biome key order is NOT play order).
| # | Biome | Waves | Enemy level | Basic HP | Basic DMG | Boss | Boss HP (base→scaled) |
|---|---|---|---|---|---|---|---|
| 1 | Enchanted Forest | 10 | 1–12 | 240–610 | 20–34 | SpikeWorm | 5.2k → 13.2k |
| 2 | Mystic Woods | 15 | 11–100 | 576–3.6k | 32–164 | Golem | 4.4k → 65.4k |
| 3 | Frozen Tundra | 10 | 85–180 | 3.1k–6.3k | 140–301 | ArcticWorm | 5.2k → 135.5k |
| 4 | Crystal Caves | 15 | 144–370 | 5.0k–12.6k | 238–664 | LarvaQueen | 4.4k → 231.7k |
| 5 | Molten Fields | 10 | 278–430 | 9.5k–14.7k | 483–786 | MagmaWorm | 5.2k → 317.5k |
| 6 | Clockwork Factory | 15 | 301–500 | 10.3k–17.0k | 527–933 | CyberWorm | 5.2k → 368.5k |
| 7 | Desert Oasis | 10 | 425–575 | 14.5k–19.5k | 776–1.1k | Golem | 4.4k → 358.0k |
| 8 | Abandoned City | 15 | 403–700 | 13.7k–23.7k | 731–1.4k | Beholder | 5.2k → 514.1k |
| 9 | Poisonous Marsh | 10 | 595–850 | 20.2k–28.8k | 1.1k–1.7k | LarvaQueen | 4.4k → 527.4k |
| 10 | Glacial Peaks | 15 | 595–1000 | 20.2k–33.8k | 1.1k–2.1k | ArcticOgre | 4.4k → 619.8k |
| 11 | Scrapyard | 10 | 850–1150 | 28.8k–38.8k | 1.7k–2.4k | MetalWorm | 5.2k → 841.7k |
| 12 | Blazing Caves | 15 | 805–1650 | 27.3k–55.6k | 1.6k–3.7k | Devil | 4.4k → 1.02M |
| 13 | Dark Catacombs | 10 | 1403–2000 | 47.3k–67.4k | 3.1k–4.6k | Wyvern | 5.2k → 1.46M |
| 14 | Ancient Ruins | 15 | 1400–2500 | 47.2k–84.2k | 3.1k–6.0k | CyberWorm | 5.2k → 1.82M |
| 15 | Neon District | 10 | 2125–2750 | 71.6k–92.6k | 5.0k–6.7k | SpikeWorm | 5.2k → 2.01M |
| 16 | Ghostly Swamp | 15 | 1925–4500 | 64.9k–151.4k | 4.4k–12.0k | BugWorm | 5.2k → 3.28M |
level comes fromEvery spawn's level is hand-authored in the donor's EnemyWaves config sheet (EnemySpawnData: Enemy / Line / Distance / Level) — not computed at runtime. Below is the full sheet (1,113 spawns across 16 biomes), filtered by biome, with each spawn's authored level and the resulting effective HP/DMG from the decompiled formulas. ⬇ download full CSV
| Wave | Enemy | Line | Dist | Level | Eff. HP | Eff. DMG |
|---|
The Dungeon (23 levels) authors boss HP/DMG explicitly (overrides, not the formula) and reuses base configs as lackeys via an integer lackeyLevel that feeds the same scaling. Boss HP 260k → 5.6M (~22×) — the magnitude anchor confirming the linear HP curve.
| # | Boss | Boss HP | Boss DMG | Lackey | Lackey level |
|---|---|---|---|---|---|
| 1 | RatSquire | 260.0k | 1.3k | Rat | 82 |
| 2 | Wasp | 303.0k | 1.6k | Rat | 90 |
| 3 | Boar | 347.0k | 1.9k | Rat | 98 |
| 4 | Wolf | 392.0k | 2.2k | Rat | 106 |
| 5 | RatKing | 654.0k | 4.1k | Rat | 154 |
| 6 | HawkBat | 745.0k | 4.8k | Rat | 170 |
| 7 | Quillbeast | 838.0k | 5.4k | Rat | 186 |
| 8 | Tusk | 931.0k | 6.1k | Rat | 202 |
| 9 | CannonBoar | 1.02M | 6.7k | Rat | 218 |
| 10 | Warg | 1.57M | 10.5k | Rat | 314 |
| 11 | PolarRat | 1.71M | 11.5k | Rat | 338 |
| 12 | Parasite | 1.85M | 12.5k | Rat | 362 |
| 13 | BlackHoof | 1.99M | 13.5k | Rat | 386 |
| 14 | HawkBat | 2.14M | 14.5k | Rat | 410 |
| 15 | BlackBear | 2.97M | 20.3k | Rat | 554 |
| 16 | Larva | 3.16M | 21.6k | Rat | 586 |
| 17 | ShardLizard | 3.35M | 22.9k | Rat | 618 |
| 18 | MinerBoar | 3.55M | 24.2k | Rat | 650 |
| 19 | Ghost | 3.74M | 25.6k | Rat | 682 |
| 20 | Scarab | 4.87M | 33.3k | Rat | 874 |
| 21 | HawkBat | 5.11M | 35.0k | Rat | 914 |
| 22 | Quillbeast | 5.36M | 36.7k | Rat | 954 |
| 23 | Tusk | 5.60M | 38.3k | Rat | 994 |
unpacked/lib/arm64-v8a/libil2cpp.so at the RVAs given by the Il2CppDumper output (CalculateHealthParameterValue 0x2EC5754, CalculateDamageParameterValue 0x2EC57F8); disassembled with radare2 (arm64). Multiplier values are LIVE runtime reads (16/06/2026) — frida-il2cpp-bridge on the running build read EnemyMultipliersConfig as Health = 0.14, Damage = 1.18. The 31-May static APK dump had Damage = 0.10 at offset 0x0090; that value was stale (the live build retuned it), which is why the archive previously under-reported enemy damage by several times. Level values + biome order from biome_waves_detailed.json + boss_data.json. Open: whether Super/Boss types receive a different multiplier than Common (the config exposes only one HP + one DMG value, so the same pair is applied to all); and the exact source of the 0.10→1.18 change (newer baked build vs runtime override — OnlineConfigs showed no sheet override, so most likely a retuned baked value in the current build).