← Back to blog
wowsb ship tool

wowsb ship tool: fixing the equipment maths

12 Sep 2026 · 5:10 PM

The equipment system had a problem I could not see from my own screen. The numbers looked fine on my side. Then someone checked the same build in the actual game and the results did not match. That is how this whole round started, and it took several wrong guesses before it made sense.

The bug I could not see

Damage Reduction and Torpedo Damage Reduction were coming out wrong. Not wildly wrong, just off. The kind of off you would not notice unless you had the game open next to the page.

My mistake was assuming one formula covered everything. I had written the code to treat one kind of value one way, and it happened to work for most items, so I stopped looking. It did not work for all of them.

What the numbers actually do

After several rounds of checking in game, the pattern turned out to be simple. The equipment lists write these bonuses in two different forms, and the game handles each one differently.

  • Whole numbers like +14 or +19 are relative. A 19% bonus on a base of 4.5 gives 5.36. It is the base times 1.19, not the base plus 19.
  • Small decimals like +0.05 are additive. Same base of 4.5 plus 0.05 gives 9.5. That one really is plain addition.

Two forms, two rules. I had been using one rule for both, which is exactly why some rows were close but never correct.

The rounding rule

There is one more thing I had to match. When the maths leaves more than two decimal places, the game carries the value up at the second decimal. So 5.355 becomes 5.36, not 5.35. Small detail, but it is the difference between matching the game and being one hundredth out.

Where I went wrong

  • I guessed at the formula more than once instead of asking for a clean reading from the game first. Every guess cost a round trip.
  • I added a class cap for these stats, thinking the game limited them by ship type. It does not work that way here, and the cap was quietly cutting off correct results. I removed it.
  • I chased my own test output instead of the real screen. Twice I "proved" something was broken when the code was right and my test was reading the wrong element.
  • One of my earlier edits doubled a line in the ship data file by accident. I caught it on the next check, but it is a reminder to verify after every write.

What is correct now

Every case below was checked against the game, not against my own maths:

  • Alvaro de Bazan, Emergency Suppression III: Torpedo Damage Reduction 5.36, Fire & Flood Resistance 11.40.
  • Alvaro de Bazan, Improved Emergency Suppression III: 5.47 and 11.65.
  • Thunderer, Emergency Suppression III: 20.63 and 17.10.
  • Gdansk, Torpedo Defense Bulkhead III: 9.5.

Smaller fixes in the same pass

  • The chip beside each changed stat was showing a percentage worked out from rounded numbers, so a 6.5% bonus showed as 6.4%. It now shows the item's own listed value.
  • Total AA Damage had the same problem, showing 20.02 instead of 20. It now reads the item value directly.
  • Torpedo Firing Panel was missing its flooding debuff. The effect had no matching row on the site, so it silently disappeared. It shows now.
  • Propulsion Control Gear pointed at the wrong row. It has its own "Max Turning Speed" row now, and it shows "not available" because I do not have that ship data yet.
  • Survivability values display as plain numbers now, no percent sign, and the row shows the base in brackets so you can see how the result was reached.

What I learned

Screen testing is not the same as having the real numbers. For most of this session I was checking my own page against itself and calling it verified. The moment someone opened the actual game, the truth came out in one message.

If you are building anything with game data, get a real reading before you build the formula. It saves a lot of guessing.

Everything is live on wowsb ship tool. Open a ship, fit Emergency Suppression, and the numbers should line up with your game now. If any of them still look wrong, tell me which ship and which item.

· · ·

Back to Blog