Reference

Systems
& Method

How the game scales difficulty, where the point-blank window sits, and exactly how every number on this site was read. Including the parts that could not be.

Beta 1.0.1627.0 Updated 15 Aug 2026 About a 6 min read

Health and time to kill

Every player and every standard enemy in Horde has 1500 health. That single number drives every kill-time figure on this site, so the maths is worth knowing.

shots to kill = ceiling( 1500 / (damage × pellets) )
time to kill = (shots to kill − 1) ÷ (rpm / 60)

Time to kill subtracts one shot because the first round leaves the barrel immediately. A weapon that kills in one shot has a time to kill of 0.00s no matter how slow it fires. That is why the Longshot and the Lancer both read 2400 damage per second while feeling nothing alike in a fight.

Caveat These figures assume every shot connects and every pellet lands. Real time to kill is always worse, and it gets worse fastest on the multi-pellet weapons.

Difficulty never buffs enemies

This is the single most useful thing in the files. Nothing in the game raises enemy health or enemy damage by difficulty. Every tier changes you instead: your health, your damage output, how many times you can go down, and how long you bleed out. A Drone on Casual and a Drone on Inconceivable are the same Drone.

Campaign tierYour healthYour damage LivesBleed-out
Casual2.00×1.85×62.00×
Normal1.30×1.15×41.20×
Hardcorenot readnot read2not read
Insane0.90×0.88×not read0.80×
Inconceivable0.40×0.66×10.60×

Read down the health column and the difficulty curve is obvious. Inconceivable gives you 600 effective health against Casual's 3000, a five-fold swing, while the thing shooting at you never changes. Your damage only drops to 0.66×, so enemies do not take much longer to kill. You just die far faster.

Horde and Siege tiers

Horde runs its own four-tier ladder: Rookie, Infantry, Commander, Allfather. It uses the same settings block as the campaign, but the values could not be pinned down, so they are not printed here. The files do confirm a promotion system that raises class stats specifically for Allfather, and that the squad perk pools are difficulty-tiered.

The point-blank window

The Gnasher gets a flat damage multiplier inside a set distance, and falls off outside it. In Horde that window is 20 metres deep, which is enormous, but the multiplier is only 1.75×. In Versus the window is much tighter and the multiplier is 2.5×.

ModeBase × pelletsMultiplier Inside the windowResult
Horde / Siege80 × 10 = 8001.75× 1400100 short of a kill. You always fire twice.
Versus125 × 10 = 12502.50× 3125Comfortable one-shot gib.
Why it matters That 1400 is not an accident. It sits exactly 100 damage under the 1500 threshold, which forces a second shot out of every Horde Gnasher kill. It is the reason Full Auto is the strongest mod in the game for that weapon: it does not raise your damage at all, it just cuts the wait for shot two from 1.00s to 0.60s.

Horde and Versus are tuned separately

Weapons are tuned once as a baseline, then each mode layers overrides on top. Versus has a full set of its own damage values. Horde and Siege have 26 override entries and not one of them touches a damage stat, so Horde fires the raw baseline weapon.

  • Lancer: 180 in Horde, 75 in Versus. A 2.4× gap.
  • Gnasher: 80 in Horde, 125 in Versus. One of only three weapons buffed for PvP.
  • Longshot: 1200 in Horde, 900 in Versus.

If you have seen a damage number for E-Day somewhere else and it does not match this site, check which mode it came from first. Most published figures are Versus, because that is what the beta let people test.

How these numbers were read

Weapon tuning lives in a blackboard system that stores values without field names. The names are gameplay tags in a separate list, and the values are a flat stream. Matching one to the other is the whole problem.

  • The value stream was aligned against the slot list using sequence alignment, scoring each candidate on whether the record type agreed with what the tag name implies, and whether the value was plausible for that tag.
  • Any file where a single check disagreed was thrown out. 138 files were discarded.
  • On the Gnasher, the accepted alignment scores 76 checks correct and 0 wrong.

The method reproduces figures that were known before it existed, which is the real test: Gnasher 125 with its 2.5× bonus, Breechshot 500 with a 3.0 headshot, Longshot 900/2.0, Hammerburst 65, Lancer 75, Vulcan 120, Gut-Puncher 1500, Torque Bow 500, and three damage falloff curves matched exactly.

Mod lists come from a different and much more reliable place: the the game's own item list, which names every mod entry directly. That is why the count is exactly 176 and why it is higher than what the customisation screen shows you at any one time.

What is still missing

Listed plainly, because a guide that hides its gaps is worse than one that has them.

Mod magnitudes

The registry names every mod but not how much it changes. No build on this site depends on a hidden multiplier, and the builder rates slots on fit rather than inventing numbers.

Enemy health per type

Enemies are not in the tuning system at all. Their stats need a field-name map the build does not ship. Standard enemies are 1500; a Boomer is not, and that value is not readable.

Horde difficulty values

Only three to five usable anchors, and the alignment returned impossible results such as 11 lives and 7× health. Discarded rather than published.

Some display names

120 of the 176 mods have names worked out from the file name because the localised string is absent from the beta. Those are marked in our data but no longer surfaced on the page.

Vulcan and Retro baselines

Vulcan rate of fire and Retro Lancer base damage did not survive the confidence filter.

Armour and gear mods

Weapon mods have been checked against in-game screenshots. Armour and gear have not, so treat those slots as less firm than the weapon side.

Standing rule Nothing on this site is estimated. If a number could not be read with confidence it is marked not read or left out entirely, never filled in with a guess.