OpenFront Numbers Worth Double-Checking

Figures that circulate in OpenFront guides, set beside what the source code actually says: city troop cap, trade income, SAM reload, and one of ours.

SOURCE-VERIFIED · df9114ee Core Updated 2026-07-30 8 min read

The short version

  • City +25,000 and +250,000 are both right. On-screen troops are a tenth of the internal value
  • Trade income is not proportional to distance. It is a sigmoid, so nearby ports earn far less than a linear estimate suggests
  • The game's own help text is stale in places. It lists SAM reload as 7.5 seconds; the code says 9

The biggest gap is the city troop bonus: it circulates as +25,000 while the source says +250,000, a factor of ten. Alliance duration is another — five minutes, not the ten that gets repeated.

Below is each circulating figure set against the game repository. This is not a page about who is wrong — it is a page about which number to trust, and it includes the ones we got wrong ourselves.

No site is named. Some values were right in older builds, and some may already be fixed. What matters is what the code says right now.

Reference: the commit in _meta.commit, shown at the foot of every page and in the rail.

1. Troop cap from a city — both numbers are right

Commonly quotedSource code
+25,000 per level+250,000 per level

⚠️ This is a unit difference, not an error. Both figures describe the same thing read off two different places, so neither one is wrong.

The troop figures the game prints are the internal value divided by ten — the client’s renderTroops is renderNumber(troops / 10). So a city level raises the cap you see by +25.0K. The constant in the source is 250_000.

Read it off the screen and you write 25,000. Read it off the code and you write 250,000. Same thing, two frames of reference.

This site publishes internal values because every formula is written in them. Comparing against the screen, drop a zero. → How to Measure Distance On Screen

Either notation leads to the same conclusion — holding 1,000 tiles, one city is worth 5,175 tiles of land. That reorders your entire gold priority.

→ How Many Cities Should You Build?

2. Trade income scales with distance

Commonly quotedActual
linear or near-linear, base + rate × distancea sigmoid
75,000 / (1 + e^(−0.03 × (distance − 300))) + 50 × distance
Distance (tiles)Actual (gold)Common estimate (gold)
1005,185~33,800
20013,557~60,900
30052,500~88,900

Short lanes get overstated by more than 6×. That is the number that convinces people clustered ports still earn something.

→ Where Should You Build Ports?

3. Tiles give population linearly

Commonly quotedActual
a flat figure per tile (e.g. 3)2 × (tiles^0.6 × 1000 + 50,000)

The 0.6 exponent is the whole story. Land has diminishing returns; believing it is linear makes expansion always look correct. In practice, past a certain point cities dominate.

Tiles heldOne more tile adds
100+190
1,000+76
5,000+40

→ Troop Cap and the 42.2% Rule

4. The worker system

Commonly quotedActual
workers breed faster than the armyno worker concept found in the current source

There is one slider, the attack ratio, and no structure that divides population into workers and soldiers. The code has a variable named goldFromWorkers, but that just holds passive gold income — it is not a unit.

It may have existed in an older build and been removed.

5. Defense post multipliers vary by terrain

Commonly quotedActual
mountain ×6 / flat ×4.5, terrain-dependent×5 flat, terrain-independent

The code multiplies the terrain coefficient by ×5 with no branch for terrain type.

The outcome does differ by terrain, though. On mountain (120) the effective figure is 600; on plains (80) it is 400. “A post in the mountains is stronger” is a correct feeling with the wrong cause — it is the terrain coefficient, not the post multiplier.

→ Defense Post Range and Placement

6. SAM reload is 7.5 seconds

Commonly quotedActual
7.5 s9 s

SAMCooldown() is 90 ticks and a tick is 100 ms, so 9 seconds.

The game’s own help text also says 7.5 seconds. This is a case of the help being older than the code. The same text gives the range as “100 pixel” when level 1 range is actually 70 tiles.

That 1.5 seconds decides whether two simultaneous incoming missiles both get stopped.

→ When to Use Nukes

7. SAM intercept chance

Commonly quotedActual
75% chance to interceptthere is no probability roll

Interception is deterministic — the interceptor reaches the missile and deletes it. Randomness is used only to pick which missile to shoot at.

Intercepts fail for four real reasons: out of range, still reloading, caught too late (no intercept is allowed on the final step of the trajectory), or still under construction. Luck is not one of them.

8. SAMs cannot touch a MIRV at all

Commonly quotedActual
MIRV cannot be interceptedMIRV warheads are on the intercept list

The intercept list is atom bomb, hydrogen bomb, and MIRV warhead. What cannot be intercepted is the MIRV body before it splits; the warheads themselves are valid targets.

They get through for three reasons, and volume is only the third: MIRV warheads travel at speed 22 against an interceptor’s 12, no intercept is allowed on the final step of the trajectory, and only then does the 9-second reload matter. Levelling a SAM adds parallel intercepts, which helps with the third but not the first two.

9. Stacking a port beats spreading

Commonly quotedActual
one port at level 10 ≈ 3× ten portsthe reverse — ten ports are 1.4× better

A port rolls once every 10 ticks, and one check yields at most one ship, whatever the level. A level-N port makes N attempts inside that check but stops at the first success.

For the same 7,875,000 goldShips per check
1 port × level 100.60
10 ports × level 10.84

The 3× figure appears if you apply the failure-streak discount to only one side of the comparison. Held to the same rules, the stacked port comes out slightly behind.

Levels 2–3 are still efficient. When there is no coastline left to build on, upgrading is right.

→ Where Should You Build Ports?

10. Trade ships run between your own ports

Commonly quotedActual
your own ports trade with each otherthey do not

Candidate partners are drawn only from other players’ ports.

Trains are the easy confusion. A train stopping at your own city still pays 10,000 gold. Sea trade has no self case.

It changes the placement advice completely: there is no reason to space your ports apart from each other. Only the distance to someone else’s port matters.

11. Stack levels into one factory

Commonly quotedActual
upgrade a single factorythe reverse — spreading is 21% better

⚠️ The name is the trap here. The function behind the dispatch denominator is named unitCount and carries the comment // Count of units owned — but the body is total += unit.level(). It sums levels, not buildings.

Since the denominator is your level total, splitting changes nothing about it. What actually decides the outcome is elsewhere: a station dispatches at most one train, then waits 10 ticks. A level-6 factory makes six attempts but stops at the first success.

For the same 3,875,000 goldTrains per tick
1 factory × level 60.0198
6 factories × level 10.0240

Same rule as ports. Where a per-check ceiling of one exists, more checks wins.

→ Factory and Rail Income

12. A low attack ratio makes troops grow faster

Commonly quotedActual
the slider position affects growth rateno effect whatsoever

The growth formula reads exactly two things: current troops and the cap. The attack ratio is a client-side value deciding how much a click sends; it never enters the growth calculation.

The reason it looks connected is indirect. A high ratio sends more troops out, fewer troops means a lower fraction of cap, and a fraction nearer 42.2% grows faster. The cause is what you have left, not the slider.

→ The Attack Ratio Slider · Troop Cap and the 42.2% Rule

13. A SAM starts intercepting once its gauge is partly full

Commonly quotedActual
partial function above some build progresszero intercepts until complete

The interception logic is attached at the moment construction completes. Before that, no check runs at all regardless of how full the bar looks. There is no threshold and no probability.

Not a SAM quirk. A city under construction does not raise your cap; a defense post under construction adds no loss multiplier at the border. The one place the under-construction state leaks against you is a factory — it already counts toward the dispatch denominator.

→ When to Use Nukes

Things that checked out

For fairness, these matched the source exactly.

  • FFA win condition, 80% of the land
  • Growth peak at 42% of cap
  • City prices 125,000 → 250,000 → 500,000 gold, capped at 1,000,000
  • Prices in gold: atom bomb 750,000 · hydrogen bomb 5,000,000 · missile silo 1,000,000 · MIRV 25,000,000 · SAM launcher 1,500,000
  • Traitor mark, −50% defense for 30 seconds
  • Defense post radius, 30 tiles
  • Warship range 130 tiles, 250 shell damage every 2 seconds

Why this keeps happening

The game is in alpha and patches often. A number written down once goes stale on the next patch, and a number typed into prose never gets fixed.

That is why this site extracts figures from the repository. One npm run extract updates the docs and the calculators together, and a failed extraction stops the build.

We are not immune, though. Of the site’s 64 values, 62 are extracted and 2 are still entered by hand — the ones with no fixed constant in the source (the lobby’s default Tribe count) and the exponents that arrive as strings rather than code. If something here is wrong, those two are the likeliest. And as entry 1 shows, our reasoning can be wrong even when the number is right. Tell us via contact.

Further reading