Zombie Waves Codex

How is an arena fight considered - full analysis

Analysis of the game code and configs: where HP comes from, what damage is actually calculated from, what panel in the arena does not work at all, and how robots enter battle.

Short
  • Your HP in the arena is the strength of the machine, not the hero. The hero's health is not involved at all.
  • The damage of your bullets is calculated from CP (Combat Power), not from the attack. The “Attack” panel does not enter shooting.
  • A crit drops in the arena, but it hits like a regular shot. If the crit works, the game will highlight the number in yellow and show a flash - and the damage number itself will be exactly the same as it would have been without the crit. The very multiplier for which crit is pumped up (in normal levels it doubles damage) is not present in the arena: the game counts it, but at the last moment replaces it with normal damage. At the same time, CP raises the critical chance more than all other stats - and bullet damage is counted specifically from it. Therefore, it’s still worth upgrading: the damage will increase not because the crits will start hitting, but because CP will increase.

Plus, half of the panel in the battle itself is multiplied by zero: rate of fire, reload, evasion, all crit, damage to bosses. Elements are reduced to 20%. But be careful: “doesn’t work in battle” does not mean “useless” - almost all of these stats raise CP, and the character’s damage is calculated from it. The only thing that doesn’t lift it is something that has zero weight.

1.HP in the arena is NOT the hero's health

The hero's health does not participate in the duel at all. HP is taken from the machine and calculated in two layers:

HP = Vehicle durability (based on its level in the garage) × (1 + “Assault vehicle durability”%)

The main layer is the car level, that is, a clean garage. The spread is monstrous:

LevelStrength
1300 000
1001.2 billion
2006.9 billion
50043.8 billion
900450 billion
950900 billion
1000 (Max)4.5 trillion

Between 100th and 200th - almost ×6. The last 50 levels (950→1000) – another ×5. From the first to the last there is a difference of 15 million times. No attack can compensate for this.

The second layer is the “Assault Vehicle Durability” stat (up to +42%), it multiplies the already accumulated base. The percentages are nice, but next to the garage level it's the icing on the cake. And the “Initial HP” stat in a duel is simply not readable: HP is taken entirely from the machine, the engine in the arena does not ask about the hero’s health at all.

Small thing: the car changes the type of damage to 1/2 and 1/3 HP - purely visual.

2.Damage formula

DAMAGE = Base × Bullet Multiplier × (1 + % element) × (1 − “Arena Damage Subtraction” of the target + “Arena Damage” of the attacker) × Target machine resistance

There is no crit in this line. This is not a typo - see point 3. And the “Base” is the most unexpected place in the entire arena.

Character's damage base = your COMBAT POWER + elements with a weight of 20%

Not an attack. The character's attack does not enter shooting in the arena at all: weapons in the arena are initialized from CP. That is, the “Attack” panel, which everyone is looking at, has nothing to do with the damage of your bullets.

The only one who reads the character's attack is the robot (point 5).

Hence the answer to the eternal question “why is the guy with less attack taking me apart”: in the arena they are measured not by attack, but by CP, car and percentages. Attack is just one of the components of CP, and not the main thing.

And what is CP made from?

Since the character's damage is calculated from CP, the question “how much do I hit” turns into the question “how is CP gained.” It is put together in an extremely stupid way: each stat has a weight written in the config, and CP is the sum of all stats multiplied by their weights. The client calculates it himself and checks it with the server: if the discrepancy is more than 200, the game swears in the log and sends a report to the server. This means that the client and server have the same formula.

Only 16 stats out of 130 have weight. Here they are all:

StatWeight in CPIn the battle itself
Lethal Chance500 000doesn't work
Crit Chance100 000doesn't work
Fire Rate · Reload SPD40 000doesn't work
Bullet Damage20 000works at 20%
Elements (the other seven)10 000works at 20%
DMG to Elites · DMG to Bosses10 000doesn't work
Starting HP1 000doesn't work
Total Attack1only through a robot

Look what happens. The heaviest weights are for exactly those stats that are reset to zero in battle. The kill chance weighs 500,000, the crit chance weighs 100,000, and the overall attack that everyone prays for weighs one. But the attack takes place in volume: there are tens of thousands of them, and the chances are fractions of one.

Hence the practical conclusion. “Doesn’t work in battle” and “not needed in the arena” are two different things. Crit chances, rate of fire, reload and damage to bosses do not participate in the calculation of the battle one bit, but they regularly turn into CP, and CP directly into the damage of your bullets. It’s worth checking by weight: if the weight is zero, the stat gives neither combat nor CP - this is real garbage. This is how crit damage, lethal damage and evasion work.

And a mirror fact: the arena stats - “Arena Damage”, “Damage Subtraction”, “Assault Vehicle Durability”, all three robotic stats - have zero weight in CP. They won't give you any CP points, but they work directly in combat. That is, the CP panel and real strength in the arena are two different sets of stats, and they almost do not overlap.

3.Crit in the arena does not do damage

The game honestly throws the rolls, draws a yellow number, plays a flash - and throws out the result. The crit multiplier is counted and immediately reset to one before the damage hits the target. This can be seen in three ways at once, and all three converge:

  • in the arena code the crit multiplier is reset to zero, and in the normal level code it is applied. The difference is in the arena;
  • all four crit stats (crit chance, crit damage, lethal chance, lethal damage) are marked in the config with a zero PVP coefficient;
  • the same thing lies in the current version of the client - zeroing in place, although the critical code in it was recently corrected.

Critical damage and lethal damage in the arena are real ballast: they do not provide either a multiplier or CP. But the odds are a different story. They also don’t provide a multiplier, but these are the two heaviest CP stats in the game: the chance of a fatal blow in it weighs 500 thousand times more than an attack unit, the chance of a crit is 100 thousand. And the damage of your bullets in the arena is calculated from CP. It turns out to be a paradox: it is profitable to pump up the crit chances for the arena - just not as a crit, but as CP. Robots, by the way, do not crit at all: there is simply no crit branch in the arena.

4.How much can you dial?

“Arena Damage” and “Damage Subtraction” are in the same bracket and are subtracted: × (1 − Target_Deduction + Attacker_Damage). Linear, no curves. Clicking on the name of the set will show the composition and resonance effects.

🗡 Arena DMG

SourceHow many
S-weapon attachments: muzzle + laser + sight (3 × 8%)24%
Collectibles: 10% · 10% · 10%30%
Garage Talents (80 nodes × 0.2%)16%
Camp skins (max level)10%
Survivor "Soccer Babe", 5★10%
Album of maps6%
Total96%

🛡 Arena DMG Reduction

SourceHow many
S-weapon attachments: handle + butt + magazine (3 × 8%)24%
Collectibles: 10% · 10% · 5%25%
Garage Talents (80 nodes × 0.2%)16%
Album of maps12.5%
Camp skins (max level)10%
Lost City8%
Total95.5%

🚗 Assault Vehicle HP

SourceHow many
Collectibles: 16% · 10%26%
Album of maps10%
Camp skins (max level)6%
Total42%

Which of these is practical:

  • The biggest chunk of damage is S-weapon attachments: 24% + 24%, and that’s three slots on each side.
  • Collectibles are the second largest (30% / 25%), and they also provide the bulk of the durability multiplier.
  • The garage hits you from all sides at once: HP base (level), talents (16 + 16), car rank (resistance, see below). The backlog in the garage is not covered by anything.
  • The contribution of the “Football Beauty” is not displayed in the panel - the stat is hidden and works silently.

5.Robots: counted separately from the character

The robots in the arena live by their own rules, and this is the most underrated part of the roster.

First of all, they don't shoot. At all. In the arena, the robot parks far outside the map and only gets out to use its skill: it teleports to the enemy’s car, works on it, and drives back. The skills of the robots in the arena are separate from the usual ones - their own, PVP ones, two slots per robot, and they are opened by rank (green / purple / orange / red). The rank of a robot in the arena is not “a little more stats”, it’s what skill it can do in general.

The robot's damage is calculated from a DIFFERENT base than the character's damage.

The character hits from CP. The robot hits from its own attack based on the level plus the character's share of the attack. That is, the character's attack, which is useless for your bullets, works - but only through robots.

Three stats rotate this combination, and all three are found in the resonance of collectibles:

StatWhat doesIn the arena
Robot DMGRobot damage multiplier100%
Robot Shared Character ATKThe larger share of your attack that the robot inherits100%
Character ATK provided by RobotsMultiplier on the attack that robots give to the character100%

All three are working at full capacity. The “Robot Damage” has a coefficient of 0.1 written in the config - that is, it was intended to cut it to 10%. But the code that actually calculates the robot's damage reads this stat, bypassing the place where the coefficient is applied. As a result, the cutting multiplier is never read, and the stat works at 100%.

Be careful: “Robot Damage” and “Robot Attack Percentage” also strengthen the enemy robot

The fight counts your phone - and in the pet branch the game takes these two stats from YOUR profile, without separating the sides. That is, they apply to both your robots and the enemy’s robots at the same time. By pumping them up, you strengthen both. Whether this is profitable or not depends on whose robots hit harder: if the enemy’s robots are stronger than yours, you work for him.

Why this is so is unknown. Only the result is visible: the pet branch reads these two stats from the player’s general profile, and not from the profile of the side to which the robot belongs.

There is also feedback: each robot in the composition gives the character a flat increase to the base attack - according to its level and rank, multiplied by the “Character Attack from Robots”. The level and rank of the robot are read from the same table, but from different columns: one column is how much the robot hits itself, the other is how much it gives to the character.

What to collect for robots

StatCollectiblesHow many
Character ATK provided by Robots 10% · 10% · 10%30%
Robot Shared Character ATK 10%10%
Robot DMG 10% · 10%20%

Plus, camp talents give 10% to “Robot Damage” and to “Character Attack from Robots”.

6.The machine counters a specific weapon

Resistance = 1 − (general + anti-weapon if enemy weapon matches) × Rank Multiplier

Percentage - at red rank:

CarCounterattackAgainst othersAgainst your target
Pickup Assault Vehicle10%10%
Forest RogueAssault Rifle10%25%
Flames and SeaShotgun10%25%
Graffiti PatrolHMG10%25%
Purple PhantomSniper Rifle10%25%
Blue BeastRocket Launcher10%25%
Old BladeCrossbow10%25%
Exiled SpikeSniper Rifle12.5%37.5%
Destruction RollerHMG12.5%37.5%
Neon Bone SharkShotgun12.5%37.5%
Count DraculaCrossbow12.5%37.5%
Steel TorrentRocket Launcher12.5%37.5%
Silver Lance KnightAssault Rifle12.5%37.5%
Soul ReaperSniper Rifle12.5%37.5%
Crimson StreamHMG12.5%37.5%
Jungle FortressShotgun12.5%37.5%
Abyssal ShadowCrossbow12.5%37.5%
Wasteland ScavengerRocket Launcher12.5%37.5%

The rank multiplies the entire resistance: white 0.3 · green 0.4 · blue 0.5 · violet 0.6 · violet+1 0.63 · +2 0.66 · +3 0.7 · orange 0.8 · +1 0.82 · +2 0.84 · +3 0.87 · +4 0.9 · red 1.0. The intermediate levels of violet and orange are full ranks, not cosmetics: orange+4 (0.9) cuts three times better than white.

“Reaper of Souls” vs. sniper: red rank → cuts 37.5%; the same on white → only 11%. Rank triples defense.

7.What DOESN'T work in the arena?

There are two different cases here, and it is worth distinguishing them. First: each stat has its own PVP coefficient written in the config, by which the stat is silently multiplied when entering battle - for some it is zero. Second: the stat is not reset, but simply no one reads it. And an important caveat to the entire table: “does not work” here means “does not participate in the calculation of the battle.” These stats still boost combat CP, and the character’s damage is counted from it - so you can’t remove them from the arena build.

StatWhy doesn't it work?
Fire RatePVP coefficient is 0. Moreover, the arena reads this stat - reads it and always gets zero
Reload SPDPVP coefficient 0, exactly the same
Crit Chance · Crit DMG · Lethal DMGPVP coefficient is 0, and the crit multiplier itself is neutralized. Critical damage and lethal damage are completely dead - they also have zero weight in CP
Dodge ChancePVP coefficient 0
DMG to Elites · DMG to BossesPVP coefficient 0, no branches in the arena calculation
Damage by weapon type (all six)PVP coefficient 0
Attack from body kitsPVP coefficient 0. “Damage/Arena Deduction” percentages from body kits work - these are different stats
Starting HPNot reset, but not readable: HP is taken by the machine, the engine doesn’t ask for the hero’s health

Cut down, but alive:

  • Elements (all eight) - work at 20%.

A separate curiosity: in the game there are two different stats with the same name “Damage in the arena”. One is a worker, the one who rocks body kits and collectibles. The second one is dead: zero PVP coefficient and zero calls to it in the entire code. Just a forgotten dummy with the same name.

And a reverse curiosity: a coefficient of 0.1 was prescribed for “Robot Damage”, but they forgot to read it - the stat works 100%. The config says one thing, the code does something else.

Epiphany (distance bonus) - removed.

8.Who's counting the fight

Now it's your phone. The server displays the enemy's stats, the battle rotates locally, and at the end the result is displayed.

But the client already has a built-in switch for a server battle: if the server sends a ready-made report (second-by-second snapshots of HP of both sides + the designated winner), the local formula is thrown away entirely. The fight will become a cartoon with a predetermined ending. This is already enabled in the Mine, but not yet in the Arena.