Skip to main content
⌖ OF Intel

MECHANICS · 03

Military: Combat & Defense

Combat boils down to two numbers: mag (armor penetration) and speed (advance rate). Terrain, buildings, and population all multiply these values.

Terrain Modifiers

Terrain mag / speed
Plains
mag = 80, speed = 16.5
Highland
mag = 100, speed = 20
Mountain
mag = 120, speed = 25

Higher mag = more attacker losses; higher speed = slower advance. Mountains are hardest to crack, plains are easiest. v24 added "terrain manipulation" allowing limited modification of adjacent tile terrain.

Defense Posts

⌖ Within 30 tiles range

A completed, defender-owned post applies mag ×5 and speed ×3. Overlapping posts do not stack this multiplier. Coverage can slow a chokepoint sharply, but no fixed number of posts guarantees a hold.

Large Army Penalty (Defender)

Defense and Combat Math
Plains terrain
mag = 80, speed = 16.5
Highland terrain
mag = 100, speed = 20
Mountain terrain
mag = 120, speed = 25
Defense Post bonus
Within 30 tiles: mag ×5, speed ×3
Fallout-zone penalty
mag *= (5 - falloutRatio × 2)
Large-army sigmoid penalty
defenseSig = 1 - sigmoid(defender.tiles, ln(2)/50000, 150000)
Betrayal penalty
Defense ×0.5, Speed ×0.8, duration 300 ticks (30s)
Large-attacker bonus
When tiles > 100k: bonus = (100k/tiles)^0.7

Key constant: DEFENSE_DEBUFF_MIDPOINT = 150,000 tiles. As defender tiles approach or exceed this, defense decays from 1.0 to 0.7:

This is OpenFront's core "no permanent superpower" mechanic—grow too large and you can't push or hold.

Large Army Bonus (Attacker)

When attacker tiles exceed 100k, the loss modifier is sqrt(100k / tiles)^0.7, equivalent to (100k / tiles)^0.35. It reduces losses at the margin for a large attacker; committed force, terrain, coverage, and the defender still determine the fight.

Betrayal Debuffs

⚠ Cost of Breaking Alliance

Attacking an ally = entering betrayer state:

  • Defense ×0.5 (you take more damage)
  • Advance speed ×0.8
  • Lasts 300 ticks (30 seconds)
  • Triggers auto-embargo from target + entire map

Therefore "betrayal rush" must either kill in 30 seconds (capture their core cities) or don't start.

Population & Attack

Population Cap and Growth
Population cap base
2 × (tiles^0.6 × 1000 + 50,000) + Σ(cityLevel × 250,000)
Population type multiplier
Human ×1 / Bot ÷3 / Nation Easy ×0.5, Med ×0.75, Hard ×1, Imp ×1.25
Troop growth rate
toAdd = (10 + troops^0.73 / 4) × (1 - troops / maxTroops)

Simplified takeaways:

Naval Combat

Combat Checklist

For the live decision sequence, numeric counterattack examples, and stop rules, read the land combat guide.