Overview
A detailed explanation (with graphs!) of all aspects of monster stats, how they scale, vulnerabilities, corruption spread mechanics, etc.
Overview (incomplete cheat sheet)
This is an unfinished draft of a cheat sheet aiming to examine every aspect of monster stats in the game. To make this, I’ve consulted the top expert players, the developer, the source code itself and a bunch of careful testing in sandbox, to confirm. I’ll explain the graphs individually in the sections beneath…
Monster Damage Resistances, Vulnerabilities and Basic Info
Above, you can see that:
• Poison tower upgrades are a bad plan, with no monsters vulnerable to it, but several highly resistant and most not taking any of its damage over time effect. (Note: these upgrades are currently planned to be reworked to be acid, instead.)
• Ice upgrades are a safe bet, with no monsters resistant. Also, the most troublesome Fire Elementals are highly vulnerable. Ice is the go-to for most experienced players, in the current patch, 1c. Towers alone Won’t freeze a monster solid, but will lower its body temperature so that the Cold Aura spell will freeze them, more quickly.
• Electric, primarily from the Static Tower, is also a good bet. The lightening bolt spell is of limited use. Static Towers are hard to use past day 16, when Fire Elementals start appearing. Their fire projectile has a longer range than theses towers, and will burn them down quickly if they damage these monsters, and so aggro them.
However, if you are able to split spectres off into a separate maze (pictured right), Static Towers will grind them very efficiently; they currently don’t take extra energy per monster hit, despite the tooltip stating they do.
• Fire is pretty good against most monsters, on paper, but doesn’t do damage over time. Is obviously useless against Fire Elementals. It will also defrost monsters frozen solid by the Cold Aura spell, by raising their body temperature. Hence I never bother with fire.
• Blight is only relevant (against monsters) if you charm a zombie to fight for you (blighted villagers/animals become zombies too, if dying with blighted affect active. Magic Fire from charmed Fire Elementals. Pure Magic from Spectres. Slashing from Skeletons or villagers with swords. Default melee attacks are crushing, including from Doggos.
• All the bipedal monsters, excluding fire elementals, can pick up and use weapons and armour/shields. This can give them much higher attack/defence stats, respectively. E.g. 3x damage for an Iron sword.
• Spectres can not cross natural crystal fields, walls containing crylithium, God walls, or natural rock/tree terrain. But if there is no clear route to where they want to travel to, they will attempt to destroy any of these obstacles (including natural crystals), at the weakest point. Including when they are charmed.
• Similarly, Fire Elementals will never choose to path across a single tile of water! Because they take damage from it (and rain drops). Hence water mazes are sadly mostly unhelpful.
However, they can not destroy water tiles (like Spectres can with crystals). Hence Fire Elementals can be permanently trapped, or entirely deterred from attacking with a moat ALL the way around a village. However, water will freeze in winter, allowing them in again (ironically). Dry-outs in peak summer can be avoided by using the Storm spell to trigger map-wide rain.
Monster Scaling Stats and Notes
For those who want to see some of the raw numbers used in the graphs below. Plus a couple of key details about the variants of basic monster types.
Monster Pathing Tips
• Don’t fully wall off your village or any of the towers in your maze. Monsters start off targeting a random building, then will divert to any tower that damages them. If there’s no open route, they will simply break through the wall, directly, at the shortest, weakest point.
• If a maze route is too long, monsters will break through a wall instead. Using curtain walls and layering walls will discourage this.
• Gates are perceived as significantly less of an obstacle than walls of the same build material (approx 1/2 to 1/3 at much). However, they might still cause monsters to break through a maze (or perimeter) wall, if they are used to fully enclose any area.
Using several gates in series can, in theory, prevent monsters wanting to attack through them. However, they may still do, if (for example) a friendly NPC/mob that they are attacking uses the first gate.
• Pathing is ultimately decided on the basis of total move cost, with even open tiles having a small cost. Hence, monsters may attack the back of a base, if the maze entrance is all the way across the map, for them, and the walls at the back are relatively thin.
• Congestion increases the move cost through a tile, for monsters. This is an invisible mechanic that may cause a perfectly working maze route to be ignored, once more monsters are spawning, per night. If there are too many currently *planning* to travel the same route. Hence some players ensure their maze path is 2 tiles wide, throughout. Reducing perceived congestion. You will see many monsters taking an outside line that’s longer than necessary.
• Earthquakes and meteors can spawn rock that can, rarely, block a maze. Causing monsters to break in elsewhere. Same issue with nearby trees, which may grow and spread to adjacent tiles. Crystals too, blocking just Spectres.
• FIRE ELEMENTALS WILL NEVER CHOOSE TO WALK ACROSS WATER! Beware. They will break through any width of walls or terrain, instead. Always have a clear route for them, unless you can reliably moat your entire village, perfectly.
Monster Health Scaling
• Simple linear increases, based on monster’s level, but at different rates for different types, with slightly different starting offsets.
• The later monsters scale up to be more tanky, faster than the basic mobs. Spectres, particularly, get a lot of health. Combined with their resistance to physical damage, this may well necessitate a switch in tower/maze setup.
Monster Speed Scaling
• Skeletons start out walking two times faster than anything else. Doubling their speed again by level 90. Which means they can run a maze in half the time, so they will tend to be the first to over-run defences.
• Fire Elementals scale up at the same rate as Skeletons. (Zombies, too, roughly speaking.) So their speed differential is not as significant, very late game. Everything fast, except for headless, which are medicre. While Slimes and Spectres don’t ever get notably faster.
• Rain slows down all monster by about 20% (as well as villagers). So the Storm spell could be used to help keep monsters in a maze for longer.
• Roads and worn paths can obviously make a big speed difference. So naturally formed tracks could be removed. e.g. You can give temporary access to a maze by including small sections of God Wall (at a permanent cost to influence), that can be dispelled and replace instantly.
Corruption Threat Scaling
• The amount of corrupt tiles makes an enormous difference to the Threat Level (red bar top of screen). And hence to the level of monsters you’ll see.
• Increase in threat is exponential. It is based on the ratio of the number of corrupt tiles it has, verses what it wants. The base rate in Survival mode, for the number of additional tiles desired per day, is 1024. Desired tiles tops out at 65k, the total number of tiles in a map. (There are only about 59k useable tiles, excluding the void around the edge.)
• Knowledgeable players tend to go for one of two strategies:
(1) Turtle in a corner, to keep the nightly spawns much more manageable.
(2) Rush the corruption to totally remove it in the first few days of a new map.
• From the graph, it’s clear that pushing back the corruption, late game, or keeping it penned in tightly penned in from the start, will ratchet up the threat very high. It does not want to be removed, if it can help it!
• Maximum threat level is 200%. A full, red bar is 100%. Past this, it will flash white increasingly quickly. The flashing can be unpleasant to look at (possibly a trigger), so I cover the bar with an overlay program. I use LiveSplit, a speedrun timer that just happens to work well.
Corruption Spread Mechanics
• The brown creep of the corruption spreads to adjacent tiles if the number of corrupt tiles is less than the amount it desires.
• It can spread (more slowly) under rock terrain with no visual indication. However, hovering your mouse over a corrupted tile changes the pointer hand icon from blue to black/grey.
• It spreads under trees, which it will slowly cause to die off, like with Blight events.
• It can also spread invisibly under water, without the need for Drones to fill it in with land.
• It will never expand within an area of corruption resistance, provided by your intact buildings. They don’t need to be part of village range. But they immediately stop providing resistance as soon as you mark them for destruction.
• However, it’s rate of retraction will be much slower if it still wants a lot more tiles (high Threat Level).
• As creep is destroyed, there’s a chance it will spawn a Headless. More so the fewer corrupt tiles remain.
• An overpowered exploit to beat the corruption on day 1 is to immediately burn down your village centre and then place it back down on top of the first patch of corruption (as close as possible). This building has a huge radius of corruption resistance (and range). Surviving the horde of Headless this creates can be difficult, though. Requiring clever use of God powers.
Randomisation of Monster Level and Day Scaling Component
• Monster level scales up linearly with day, up to the different limits shown above in the full monster stats. Level 30 in this example of Zombies.
• Threat scaling is in addition to this base rate. The two components, combined, at the solid (green and yellow) lines on the graph.
• There is randomisation of level, between an upper and lower limit of day scaling. However, by day 60 (at the latest), the lower limit reaches the monster’s level cap, too. Because the lower bound is 1/2 the current day. It is also limited to 1 level below the upper cap. So late game, monsters will all be one of two possible levels.
Monster Level Scaling by Map Corruption Amount
• This graph combines the Threat Scaling and Monster Level Scaling graphs. It also gives an idea of the (relatively small) differential in max level scaling between the different monster types.
• The lesser monster types lag a little behind in their (maximum) level scaling: see dotted lines.
• The game doesn’t currently acknowledge complete removal of the corruption. Although the developer says it should, and will do in future updates. This means that Trashy Slimes and and Fire Elementals (from meteorites) will become immensely dangerous, in this instance.
• Blood Slimes (that rain down during Blood Moons) do not continue to scale up, thankfully. Their day scaling caps are low and Threat does no affect them.
• No other monsters will spawn without at least 1 tile of corruption present somewhere on the map.
• Spawn rate is not significantly influenced by the number of corrupt buildings or amount of corruption. Indeed,the less corruption there is, more monsters will spawn, on any corrupt tile (or near by, if it’s all under terrain).
Boosted Chance Scaling
• “Boosted” monsters have their level doubled, so the absolute max level spawn is 2 * 196 = 392.
• They cannot be charmed.
• They are rendered slightly brighter than regular monsters, but are still fairly hard to pick out of a crowd.
• Spawns have only a very low chance of being boosted, for a very long time (1 to 2% is as much as most players will experience). So this feature isn’t much of an issue.
• However, extremely late game, boosted chance will suddenly shoot up to 100% from around day 190 to 200. Or by day 150 if there are fewer than 1024 corrupt tiles on the map.
Spawn Rate Scaling and DPS Scaling (WIP)
• I can’t find all the relevant code to get a good idea of how spawn rate should theoretically scale. “updateDailySpawns()” doesn’t have everything I need to know, so I’d appreciate any pointers from more experienced code divers…
• I need to do more in-game testing to confirm attack speeds, for a DPS scaling graph. The equation defining delay between successive attacks didn’t make sense to me. High dexterity stats seem to increase the delay, while strength stats decreases it and makes it faster. I’d assumed it should be the other way around. Unless math opperators work differentlyin Java…?:
• Hopefully I’ll update and finish these details at some point (if there’s any interest in the guide)…
Credits
Special thanks to:
• Tiberiumkyle – for answering many questions and generally helping everyone on the Discord and Steam forum, etc.
• Veldrin – for posting many code insights into various technical game mechanics (and inspiring me to go decompile some of the code myself).
• Raymond Doer – for single-handedly creating this great game and continuing to interact enthusiastically with the community.