Labs

Labs

Tools backed by real game data. Set it up, press run, and check the numbers yourself.

The short version

  • A lab is a tool first and an explanation second. You set it up, you get numbers, and the numbers are on the page rather than behind a verdict.
  • Everything works on a phone, and everything works before the JavaScript arrives: the controls are plain forms and the server sends a finished answer.
  • Every lab names what it assumed. If a number is an estimate rather than a measurement, it says so in a row you can read.
  • Where a lab runs a model rather than the game, it says that at the top, not in a footnote.

What the numbers rest on

Two files and one rule.

The unit and weapon data is one YAML file, taken from Liquipedia, and every lab reads it. A stat stated in two places is a stat that will disagree with itself, so there is only one place.

The damage rules are not from a wiki. They are read out of the engine this site runs on, from the function that actually resolves a hit, so the order of operations is the game's own: shields are hit before the damage type meets the unit's size, armour comes off what the shields did not absorb, and everything is computed in units of a two hundred and fifty sixth of a hit point. That is why the Damage Lab gives you halves and quarters instead of rounding them away.

The rule is that an assumption is printed. Mining rates, unit spacing, what a job costs in clicks: all of it is a guess until we have measured it, all of it is a field you can change, and every lab carries a list of them.

Coming next

Engine fights. Today the Battle Lab runs two fight models and says so at the top. Next it hands both armies to the real engine, fights them a dozen times and shows you how many units each side has left, next to what the models predicted. After that comes a full unit against unit table built from thousands of those fights.

Sources for this page