Skip to content

Combat

Combat in Orbitarion is not about who clicks fastest. It's about preparation, intelligence, and timing. Battles resolve automatically at the tick — you set everything up in advance, and the engine does the rest.

Understanding how combat works lets you build better fleets, pick better targets, and survive attacks that would wipe out less prepared players.


How a battle starts

Send a fleet to an enemy planet with mission type Attack. When your fleet arrives — when its ETA reaches zero at a tick — the battle resolves immediately as part of that tick's calculations.

The defender doesn't have to do anything. Any ships on their planet automatically defend. Any allied defend fleets that have also arrived at the planet that tick join the defense.

You cannot stop a battle once fleets are in position. You can recall an outbound fleet before it arrives, but once it has landed, the fight happens.


Home fleet defense

When your planet is attacked, every ship you have at home defends automatically — not just the loose ships in your shipyard, but every ship in every fleet with "home" status as well.

This matters because organizing your ships into named fleets is part of normal play. You might have a fleet prepared for an upcoming attack, or a defend fleet staged for a neighbor, or ships grouped by role. As long as those fleets haven't departed, they're still physically at your planet. The moment an enemy arrives, those ships consolidate with your general defense and fight alongside everything else.

You do not need to "deploy" them manually. You do not lose the fleet organization afterwards — the consolidation happens under the hood, only for the purpose of the battle. Surviving ships end up pooled in your main planet inventory after the fight, and you can reorganize them into fleets again as needed.

The rule to remember: a fleet is only "away" when it has actually departed on a mission. Attack, defend-elsewhere, return trip, or a scheduled launch still queuing — any of these leave your planet's defense until the ships come back. Everything else at home fights when needed.

A planet that has sent all its ships out on a distant attack is extremely vulnerable. Good attackers watch for exactly this moment.


The 3-round system

Every battle plays out in exactly three combat rounds.

Round Targeting priority
Round 1 T1 → T2 → T3 (primary target first)
Round 2 T2 → T1 → T3 (rotates)
Round 3 T3 → T2 → T1 (rotates again)

Losses are applied between rounds — ships killed in Round 1 don't fire in Round 2.

Targeting effectiveness

A ship is built for its primary target. Hitting anything else works, but works less well:

What it hits Damage
T1 — primary target class 100%
T2 — secondary 85%
T3 — tertiary 70%
Anything else 40%

The multiplier follows which slot the class sits in on that ship's own chain — not which round it is. If only one of a ship's three target classes is present, it hits that class every round at that slot's rate: a UEC Sentinel (Co > Fr > De) facing nothing but frigates does 85% in all three rounds and never reaches 100%.

When nothing matches

If none of a ship's three target classes is present, it fires at whatever is there for 40% damage.

This used to mean the ship did not fire at all. A pure fighter fleet attacking a pure battleship garrison produced a battle where nobody shot and nobody died — Falcons target Fi > Co > Fr, Titans target Cr > Bs > De, and neither could see the other.

  • Wrong-class fleets are now inefficient rather than useless. Raid corvettes can chip down cruisers. A poor trade, not an impossible one.
  • Single-class fleets and garrisons are riskier. A mixed composition always has something to shoot at full effect.

Within each round, ships fire in initiative order. Lower initiative number fires first. The Aetherians have the lowest ship initiative values in the game (Celestial 3, Volt 4). Only PDS and Odonari ships with First Strike (see Race research in combat) act earlier.


PDS — stationary defender units

A defending planet's Planetary Defense Systems participate in combat as stationary defender units alongside any ships at home. They are not "pre-battle damage" — they fight in all three combat rounds, fire at initiative 1 or 2 (ahead of almost every ship), and take exact, proportional damage when attackers target their class.

PDS Class Targets Guns × Damage Armor Initiative
Pulse Laser Array Fi Fi → Co 2 × 30 150 1
Plasma Turret Fr Fr → De 2 × 80 300 1
Ion Cannon De De → Cr 3 × 150 525 2
Orbital Strike Platform Cr Cr → Bs 3 × 300 750 2

The Planetary Shield Generator is a permanent structure — it never fights and cannot be destroyed. Its only job is to unlock Orbital Shield research.

PDS is immune to EMP freeze and STC ship-stealing. Commander armour, agility and initiative bonuses and race armour bonuses do not apply to PDS; commander damage and crit bonuses do.

For full PDS mechanics — class roles, build costs, targeting punch-up principle, and tactical advice — see Planetary Defense Systems.


Initiative and firing order

Initiative determines who shoots first within a round. This matters enormously.

A ship that fires before its target can kill some of those ships before they get to shoot back. At the extreme end, The Aetherians' Celestial battleship has initiative 3 — it fires before every other battleship in the game. UEC's Titan has initiative 4 and fires afterward, but it has more armor and higher DPS.

The tradeoff between firing first and surviving longer is one of the core strategic tensions of the game.

Commander Tactician traits modify initiative directly. Coordinated Strike (T2) gives −1 initiative. Master Tactician (T4) gives another −1. A fully-built Tactician fires 2 initiative tiers earlier than they otherwise would. Defender's T2 trait gives +5 agility, not initiative.


Hit chance

Every shot rolls a hit chance based on the firing ship's weapon speed and the target's agility:

hit_chance = (25 + weapon_speed − target_agility) / 100

Clamped between 5% and 95%. A Stinger (agility 35) attacked by a Vanguard (weapon speed 35) is hit 25% of the time. A Titan (agility 8) attacked by the same Vanguard is hit 52% of the time. The math is small per-ship but compounds across hundreds of attackers.

STC steal-ships get a +5% agility bonus that applies during battle setup. This makes them harder to hit. Defender's T2 trait adds another +5 agility to your fleet.

Luck multiplier

After hit chance is calculated, the entire battle gets a single luck roll: 0.85 + random() × 0.30. The attacker's fire is multiplied by the roll and the defender's by its mirror image (2 − luck): when the attacker rolls 1.10, the defender fires at 0.90. This means kill outputs vary by ±15% per battle. You can lose a battle you "should" have won by 7-8% on a bad luck roll, or vice versa. Build fleet margins above the deciding threshold, not at it.


Damage and armor

Damage per attacking ship type per round:

damage = guns × active_ships × damage × hit_chance × target_mult × share × buff_mult × luck
kills  = floor(damage / max(target_armor, 1))

target_mult is the targeting effectiveness above (100% / 85% / 70% / 40%).

Kills are capped at the target's surviving quantity. A frigate that hits a fleet of 100 destroyers can kill at most 100 destroyers per round.

The share factor means a fleet with multiple ship types in the targeted class divides damage proportionally between them. If the target side has 60 Falcons and 40 Stingers (both Fighters), 60% of fighter-targeted damage goes to Falcons.

Commander damage buffs

Commander traits that affect combat are applied during battle setup:

Trait stat Effect
damage_pct Multiplies damage output (Tactician traits, Defender T3 Last Stand)
armor_pct Multiplies armor (Defender traits)
agility_bonus Flat +agility (Defender T2)
init_bonus Subtracted from initiative — fires earlier (Tactician T2, T4)
crit_chance Doubles a single kill roll per attack
low_hp_damage_bonus Bonus damage when fleet drops below 30% value
first_hit_survive_chance Prevents the first 10% of your side's ship losses in the battle (Defender T4 Iron Bastion; PDS losses excluded)

For PvP battles, the attacker's commander buffs apply to the attacker side, and the defender's commander buffs apply to the defender side.

Joint attacks — fleets from several planets landing on the same target on the same tick — fight with everyone's bonuses, not one attacker's:

  • Every numeric bonus (commander traits and race research) is averaged by the fleet value each attacker brings. A planet bringing 60% of the fleet counts for 60%.
  • On/off race effects — Stasis Lock, Pirate Code and First Strike — apply if the attackers who have them bring at least 25% of the fleet.
  • Joint Operations: +2% damage for each extra attacker from the same alliance as the largest attacker that brings at least 5% of the fleet, up to +6%.

A solo attack works as before. In Dominion battles, the top contributor per slot (Phase 1) or per side (Phase 2) provides the buffs. See Orbital Dominion for details.


EMP — freeze, don't destroy

The Aetherians' Pulse, Arc, and Volt ships carry EMP weapons instead of standard guns. EMP doesn't deal damage — it freezes enemy ships for the remainder of the round.

A frozen ship can't fire. It can still be killed normally by other attackers. A successful EMP volley creates a free kill window for the EMP race's heavier ships (Tempest, Aether, Celestial) and any allies.

EMP ships fire early. Since the v3.0 rebalance, Pulse (init 7), Arc (init 6), and Volt (init 4) fire well before most ships in their weight class — Volt even acts before ATH's own Tempest (init 5). The freeze lands before the enemy shoots, which is the whole point of a control fleet.

EMP rolls no hit chance — it always connects:

frozen = EMP guns × active EMP ships × share × (1 − emp_resistance) × (1 + EMP bonus) × luck
Factor Effect on EMP
emp_resistance Reduces the EMP's freeze rate against this ship (0% = fully vulnerable, 100% = immune)
EMP bonus Aetherian race bonus +10%, Resonant Emitters +10%, Overload Cascade +15% (they stack)
Stasis Lock Ships the Aetherians froze in round 1 stay frozen in round 2

Frozen capture ships steal no orbitals and frozen raid corvettes carry nothing — the freeze state of the last round counts.

ATH heavy ships (Tempest 30%, Aether 35%, Celestial 40%) have high EMP resistance — they can fight through other ATH fleets. The Void has 0 EMP resistance across all ships — ATH is The Void's worst nightmare.


STC ship-stealing

The Sytherian Cartel replaces damage with ship capture on its Cutlass (Fi), Marauder (Co), and Black Frigate (Fr).

Both sides steal. A defending STC planet's steal-ships hijack attacking ships too — attacking the Cartel at home means feeding its fleet if you lose ships to boarding parties.

When a steal-ship hits a target, the target isn't destroyed — it's captured. Since v4.1 a captured ship does not fight on in the same battle — it is boarded and secured, and joins the capturing side's fleet permanently after the battle. (It used to fight immediately, which let a fighter reach hull classes it can never target itself.)

Detail Behavior
Capture attempts per round Each steal-ship attempts one capture per round — guns is ignored
Hit chance Standard (25 + weapon_speed − target_agility) / 100 formula
Distribution Captures distributed proportionally across enemy ship types in the target class
Captured ship stats Captured ships keep their original stats — armor, damage, initiative all unchanged when they fight for you in later battles
Where hijacking works Everywhere, on both sides — planet battles (Void planets included), Nebula and Dominion
Capture-ship immunity Capture ships (Orbital Pods, transports) and PDS cannot be stolen
Hijacks consume boarding hulls The boarding crews take over the captured hull. The cost depends on the target's class (see below) — fleet value is what you trade, which is why the economics push you toward expensive targets
Surviving captures Added to the hijacker's fleet permanently. With several steal-fielding participants on a side, the haul is split by each one's pre-battle steal strength

Boarding cost by class

Target class Steal-ships consumed per hijacked hull
Fighter 1
Corvette 1
Frigate 2
Destroyer 2
Cruiser 3
Battleship 4

Taking a battleship costs four boarding crews: 400 Black Frigates hijack at most 100 battleships. Pirate Code (Cartel race research) cuts the cost by one per hull, minimum 1 — Fighters and Corvettes still cost 1. Boarding Drills adds +10% steal yield when you attack players (not the Void).

Steal-ships also get a permanent +5% agility bonus during battle setup, making them slightly harder to kill than the same hull on another race.

See Sytherian Cartel for full details on each ship's targeting and strategy.


Race research in combat

Since 4.5 every race has its own research branch, and its nodes change how battles play out. Since 4.6.0 the race passives are live as well. Effects come from the attacking planet (first attack fleet) and the defending planet.

Race passives (always on)

Race Battle effect
United Earth Command +10% armour on all ships
The Aetherians +10% EMP efficiency

Race research nodes

Race Node Effect in battle
UEC Reinforced Plating +10% armour on all your ships (stacks with the passive)
UEC Field Repair Yards After a won defence, 15% of your ships destroyed in the battle are restored
ATH Resonant Emitters +10% EMP efficiency
ATH Stasis Lock Ships frozen by your EMP in round 1 stay frozen in round 2
ATH Overload Cascade +15% EMP efficiency, on top of Resonant Emitters
ODO Phase Hulls +1 agility on your cloaked hull types
ODO First Strike Your cloaked ships fire before everything else in round 1 (initiative 0), then return to their normal initiative
STC Boarding Drills +10% steal yield when attacking players (not the Void)
STC Pirate Code Hijacking costs one less hull per ship (minimum 1)
Any Salvage Operations (Industry) After a won battle, recover 5% of the titanium and silicon cost of the enemy hulls you destroyed

In a joint attack, Salvage is shared: each attacker gets its fleet share of the destroyed hulls, at its own Salvage %.

Field Repair and Salvage only count ships that were actually destroyed — not hijacked hulls, not PDS, and not ships the survival floor already gave back. A draw triggers neither.

Outside battle, the Cartel's Fence Network raises the scrap refund for hijacked hulls to 80% (see Ships — Scrapping), Smuggler Routes cuts ETA by 1 against a planet that attacked you in the last 48 ticks, and UEC's Citadel Protocol makes your Orbital Shield recharge 50% faster.


Determining the winner

After three rounds, the engine compares surviving fleet value between both sides:

dominance = attacker_value_after / (attacker_value_after + defender_value_after)

This is the attacker's share of the surviving total. High dominance = attacker still holds most of the value on the field = attacker dominated.

Dominance Result
> 0.55 attacker_won (attacker holds majority of surviving value)
0.45 – 0.55 draw
< 0.45 defender_won (defender holds majority of surviving value)

A perfect attacker win approaches dominance 1.0; a perfect defender win approaches 0.0. The 0.45–0.55 buffer around 50% creates the draw band — when both sides took similar losses relative to their starting strength.

Edge case: if both sides took zero ship losses AND the defender had zero combat presence (empty planet), the result is forced to attacker_won so capture-only raids on undefended planets read correctly.

Draws are real outcomes

A draw isn't "nothing happened" — both sides take real losses, and the attacker still earns partial orbital theft. See the next section.


Orbital theft

The attacker's surviving capture ships (special_type = 'capture') determine how many orbitals are stolen. Each capture ship class contributes differently:

orbitals_stolen = floor((Fi_alive × 0.5 + Fr_alive × 1.25) × score_ratio × outcome_mult)
                  capped at 50% of the defender's total orbitals (75% vs The Void)
Class Ships Contribution
Fi Orbital Pod 0.5 orbs per surviving ship
Fr Atlas Transport, Brood Carrier, Conduit, Infiltrator 1.25 orbs per surviving ship
Result outcome_mult
attacker_won 1.00×
draw 0.40×
defender_won 0.00× — if the defense wins, nothing gets taken

Yes — draws give orbital theft (at 0.40×), and a draw in which anything is stolen is recorded as an attacker win. Losses give nothing since v3.1.0. Sending more capture ships — especially Fr-class — directly increases your take on a win or draw. A capture-only fleet with zero survivors steals nothing regardless of outcome, and capture ships frozen by EMP in the final round don't count either.

The 50% cap means a single raid can never take more than 50% of the defender’s total orbitals per raid (75% vs The Void). If the attacking fleet also carries raid corvettes, both the orbital cap and the raid cap drop to 30% — you can't max both in one strike.

Score ratio scaling

The score_ratio modifier scales theft based on size matchup:

score_ratio = clamp(defender_score / attacker_score, 0.5, 2.0)

Attacking a planet twice your size doubles potential theft (score_ratio = 2.0).
Attacking a planet half your size halves it (score_ratio = 0.5).
Equal-sized planets: no modifier (score_ratio = 1.0).

This is the main scaling mechanism. Punching up is rewarded, farming weaker targets is throttled.

The Orbital Shield gates theft entirely

Orbital-theft protection is the Orbital Shield — a researched, chargeable planet-wide barrier, rebuilt in v4.0.0:

If the defender's shield charge is at 60% or more of its maximum after the attack, zero orbitals are stolen — regardless of outcome or surviving capture ships.

The shield never joins the combat rounds. Every attack instead drains a fixed percentage of its maximum, scaled by the attacker's fleet value against the orbital network it protects — any serious fleet can wear one down, while token fleets barely scratch it. A strike that pushes the charge below the 60% line — SHIELD BREACHED in the battle report — steals normally in that same battle.

The Planetary Shield Generator is a permanent structure (max 1) that never fights; building it is what unlocks Orbital Shield research. See Orbital Shield for the drain formula, research tiers, upkeep, regeneration and siege tactics.

Raid recovery protection

If a raid takes the maximum allowed — the theft hits the orbital cap above (50%, or 30% when raid corvettes come along), or the raid corvettes hit their stockpile cap — the defender's planet automatically receives 48 ticks of protection (24 hours in a normal season) — the same P status that new planets start with. No one can attack the planet during this window, and while it lasts the protected player cannot attack other players — bot planets and The Void can still be attacked, and the protection stays on. A Void planet gets 24 ticks.

The same 48-tick protection follows a fleet wipe: when the attacker wins and the defender loses more than half of its ships.

The timer never shortens an active protection — the later of the two end ticks applies. It fires automatically in the same tick as the battle resolves, and the attacking fleet that triggered it returns home cleanly.

Resource distribution of stolen orbitals

Stolen orbitals are split proportionally across the defender's three resources:

steal_titanium = orbitals_stolen × (target_ti_orbs / total_orbs)
steal_silicon  = orbitals_stolen × (target_si_orbs / total_orbs)
steal_uranium  = orbitals_stolen − steal_ti − steal_si

If the defender has more Titanium orbitals than Silicon, you steal more Titanium. The numbers always sum to the total stolen amount.

Joint attacks: who gets the orbitals

When several planets attack together, the stolen orbitals are shared between the attackers that brought capture ships. Each attacker's share is:

share = ½ × your part of the capture weight  +  ½ × your part of the fleet value sent
capture weight: Orbital Pod (fighter class) 0.5 each, other capture ships 2.0 each

So a strike fleet that carries a few transports gets a fair cut, and an attacker sending only cheap pods gets a small one. The total is rounded so that nobody is rounded down to zero without reason, and each attacker gets a mix of Ti, Si and Ur. An attacker with no capture ships gets no orbitals. The battle report lists who got how many, and your Intel shows your own share.

Stolen orbitals arrive pre-initiated

The orbitals you steal land in your dock pre-initiated in the same per-resource breakdown they were on the defender's side. You don't pay any initiation cost on them — they start producing on the next tick.

This is a meaningful buff to raiding play: a winning attack against a defender with 50 mixed orbitals doesn't just give you raw uninitiated wreckage to slowly activate, it transfers working production into your economy immediately.

This rule applies to all races (not just STC). Every race with capture ships benefits.


Resource raiding (raid corvettes)

v3.0 introduces a raid ship role: every playable race has one raid corvette that steals resource stockpiles (Ti/Si/Ur on hand) instead of ships or orbitals.

Race Raid corvette
United Earth Command Harrier
Odonari Broodleach (cloaked)
The Aetherians Specter
Sytherian Cartel Raider

How the haul works:

  • Each surviving raid corvette has a fixed cargo capacity. Your total haul is limited by combined capacity and by a capped share of the defender's on-hand stockpile — you can never empty a planet.
  • Outcome matters: a win hauls at full rate (1.00×); a draw hauls at 0.60×; if the defender wins, nothing is taken.
  • EMP-frozen raiders carry nothing. Freezing the raid wing is a hard counter.
  • The haul is split across Ti/Si/Ur in proportion to what the defender holds.
  • Combined capture + raid fleets are capped harder: bringing both capture ships and raid corvettes drops both caps to 30% each. Specialize or split your waves.

Raiding pairs naturally with Trading — steal what you lack, sell what you don't need.

Historical note: STC-only resource raiding existed in v1 and was removed on 2026-05-20. The v3 raid corvettes are a new, all-races mechanic — not the old one.


PDS losses

PDS units are destroyed exactly during combat — there is no flat percentage destruction. When attackers target a PDS class, hits land, armor is overcome, and unit count drops by exactly that many. A battle that focuses on Fighter targeting can leave heavy PDS completely intact. Conversely, a heavy capital-ship attack can rip through Orbital Strike Platforms without scratching Pulse Lasers.

Destroyed PDS does not regenerate automatically — you rebuild from the defense queue. See Planetary Defense Systems.


Panic Retreat & Scatter

A fleet that loses a battle doesn't get wiped out — it panics, retreats, and scatters.

The survival floor

The engine enforces a minimum survival per side, counted in ships across all ship types together:

Side Keeps at least
Attacker (a player — also when attacking The Void) 50% of its committed ships
Defending player 50% of its ships
Defending Void planet 20% of its ships

If a side would have kept less, destroyed ships are handed back (in proportion to what each ship type lost) until it reaches the floor. If it would have lost only 20%, it loses 20% — the floor is a minimum, not a fixed value. Because the floor covers the side as a whole, one ship type can still be wiped out if the rest survives. PDS take no floor.

Hijacked ships count as losses. The floor applies to destroyed and stolen ships combined — a Cartel opponent cannot board past the 50% line. Hijacks beyond the floor are returned to the victim and removed from the thief.

When The Void attacks you, no floor applies to either side.

Scatter trigger

When an attacking fleet falls below the floor (lost more than 50% of its committed ships) and did not win, the survivors don't return cleanly. They scatter into the surrounding galaxy and limp back home over a randomized interval — against players and against The Void alike:

return_eta = 8 + random() × 5  →  8 to 12 ticks

The fleet's status flips to 'scattered', its mission becomes 'return', and it shows up in the news feed as fleet_scattered. During the scatter window, the fleet cannot be acted upon — no recalling, no redirecting, no new orders. You wait for it to limp home.

A winning attacker never scatters. On defence, a player's home fleet that falls below the floor scatters for 8–12 ticks and leaves the planet undefended; allied defend fleets withdraw home in good order instead. The Void never scatters.

Tactical implications

  • You can't be wiped. A massively outgunned fleet still leaves you half its ships to rebuild from. The era of "one bad attack and your season is over" is over.
  • Scatter is a soft penalty. 8-12 ticks of fleet downtime is non-trivial in a regular season (4-6 hours) but devastating in a Speed Round (40-60 minutes). Losing badly costs you tempo, not stock.
  • Defenders also scatter. If your home fleet loses more than half its ships in a defense, it scatters too. Sometimes a defender returning from scatter arrives late to a follow-up attack window.
  • Aggressive vs careful play. Aggressive players can take more risks knowing they'll never zero out. Careful players still want to minimize losses — scattered fleets are still wasted ticks.
  • Void garrisons hit back harder. A Void planet keeps only 20%, so you can nearly clear it — but a failed attack on the Void scatters your fleet just like a failed attack on a player.

Tactics

Fleet diversity matters. A pure-Fighter fleet can be hard-countered by a fleet built to target Fighters. Mix Corvettes and Frigates so your fleet has answers to multiple target classes.

Punch up, not down. Score ratio rewards attacking larger targets (up to 2x) and penalizes attacking smaller ones (down to 0.5x). The same fleet investment goes much further against bigger targets — but they have to be ones you can actually beat.

Bring escorts for capture ships. Capture ships have no guns. They die first if your fleet is overrun. A capture-only fleet against light defenses can work, but adding even a few escorts dramatically improves survival.

Fr-class capture ships are worth the investment. An Atlas Transport, Brood Carrier, Conduit, or Infiltrator contributes 2.5× more orbs per ship than an Orbital Pod. A fleet of 10 Fr-class capture ships steals as much as 25 Orbital Pods. If you raid regularly, prioritise the Fr-class hulls.

Raid hard enough to trigger recovery protection — or don't. If your raid hits the theft cap, the defender gets 48 ticks of P-status and you can't follow up. If your haul stays under the cap, you can re-raid sooner. Plan your fleet size around this threshold.

Use intel before committing. The Aetherians' EMP only works if you know what you're hitting. A Spymaster T2 (Deep Recon) reveals incoming enemy fleet composition — letting you build the perfect counter.

Watch dominance, not casualties. A battle isn't decided by absolute kills — it's decided by which side has more surviving value. Two 90%-loss sides is a draw; a 30%-attacker-loss vs 60%-defender-loss is an attacker win. The engine compares ratios.

Break the shield with fleet value, then send the pods. Orbital Shield drain scales with your fleet's total build cost — tricks and targeting don't matter to it. Scout the charge with a Military Scan, bring enough value to push it under 60%, and the same strike that breaks it steals in full.

Plan for scatter, not wipeout. A catastrophic attack costs you 8-12 ticks of fleet downtime via scatter — not your entire fleet. Aggressive plays can survive a bad outcome. But scattered fleets can't defend or strike, so chaining losses is still painful.

The Void is your recovery farm. The Void is always attackable and a Void planet keeps only 20% of its ships, so a strong fleet can strip a garrison almost bare. Your own fleet keeps the same 50% floor as in PvP — and scatters if it fails. Practiced raiders use this for rebuild cycles.

Build for the worst luck roll. A fleet that wins by exactly the right margin in math will lose 15% of the time to a bad luck roll. Build past the threshold.


Battle logs

Every battle generates a detailed JSON log stored in battles.log (current schema: version: 20). The log contains:

  • Pre-battle state: starting fleet composition both sides, with is_pds flag distinguishing PDS units from ships
  • Per-round events: who fired at what class, hits, kills, EMP freezes, ship captures (STC steals), with is_pds_shooter flag marking PDS contributions separately
  • Dominance value: the final surviving-value share that determines the result
  • Luck multiplier: the random 0.85–1.15 roll for this battle
  • Score ratio: clamped defender/attacker ratio (0.5–2.0) used in orbital theft scaling
  • Buff manifests: which commander traits were active on each side — attacker_buffs, defender_buffs, and per-event buff_events for crits, low_hp_rage activations, and first_hit_save activations
  • Steal events: per-round per-ship records of any captures made by STC steal-ships
  • PDS manifest: pre-battle quantities of each PDS class on the defender side
  • Final survivors: ending ship and PDS counts both sides
  • Orbitals stolen + breakdown: per-resource (Ti / Si / Ur) split of stolen orbitals
  • Steal mode flag: whether the battle had STC steal-ships active
  • Shield: Orbital Shield charge before and after, drain and whether it still protected
  • Race effects: which race research triggered (Phase Hulls, First Strike, Stasis Lock, Field Repair, Salvage)

Separately from the battle log, a fleet that scatters fires a fleet_scattered news event into the attacker's news feed, with the return ETA.

Battle reports are visible in-game through the Private News feed and are open to every participant.

From app 4.6.0 the report also shows Salvage Operations (titanium and silicon recovered, and by whom) and Field Repair Yards (ships restored per type). Restored ships are already included in the survivor counts. From app 4.6.4 it shows your own Salvage share in a joint attack, and a Joint Operations box with the number of attackers and the teamwork bonus. It also lists Stasis Lock, First Strike and Phase Hulls when they trigger, for either side.


Attack range — score-based punch-up rule

You cannot attack planets too far below your score. The v2 engine enforces a sliding floor that scales with your size:

min_target_score = attacker.score × GREATEST(0.20, LEAST(0.60,
    0.20 + GREATEST(0, attacker.score − 20_000_000) / 180_000_000.0 × 0.40))

In plain terms: the bigger you are, the bigger the smallest target you can attack. Small players have free range; whales are isolated from punching down on mid-tier.

Attacker score Floor Smallest legal target
≤ 20M 20% 20% of your score
50M ~27% 13.5M
100M ~38% 38M
150M ~49% 73.5M
200M+ 60% (cap) 60% of your score

There is no upper limit. You can always punch up — there's no rule preventing you from attacking a planet 100× your score (other than the obvious fact that you'll get crushed). Score-based protection only stops downward punching.

The Void exception

The Void (NPC race) is always attackable, regardless of score gap. Their planets, garrisons, and dominion sectors ignore the floor entirely. This is the design release valve — after a bad loss, you can always farm The Void to claw back ships and orbitals without score-protection blocking you.

Other exceptions

  • Nebula and Dominion battles ignore score protection — those are alliance vs NPC or alliance vs alliance, with their own balance constraints.
  • Terminated planets bypass the check. If a planet's status is anything other than active (abandoned, banned, deleted), the score check is skipped because score is effectively 0. The engine validates status = 'active' separately to prevent attacks on terminated planets.

Why the sliding floor matters

The v1 system had a fixed 20% floor (and a 5× upper cap that didn't matter much). This let large players still farm new players in their score band. In v2, the floor scales — a 200M-score player can only attack targets at 120M+, which protects the entire mid-tier from being farmed by endgame whales.

The cap at 60% (for 200M+ players) means whales fight each other or punch up further into Dominion. They cannot reach below 60% of their own score except via The Void.


Quick reference

Concept Detail
Rounds per battle 3
PDS in battle Stationary defender units, init 1–2, all 3 rounds
Hit chance formula (25 + weapon_speed − target_agility) / 100
Hit chance range 5% – 95%
Luck multiplier 0.85 + random() × 0.30 per battle (±15%); defender fires at 2 − luck
Damage formula guns × active × damage × hit × target_mult × share × buff × luck
Kills formula floor(damage / armor) capped at target quantity
Dominance attacker_value_after / (attacker_value_after + defender_value_after)
Attacker win threshold dominance > 0.55
Defender win threshold dominance < 0.45
Draw range 0.45 – 0.55
Orbital theft formula floor((Fi×0.5 + Fr×1.25) × score_ratio × mult); mult = 1.0 / 0.4 / 0.0 (win/draw/loss)
Orbital theft cap 50% of defender’s total orbitals per raid (30% with raid corvettes along; 75% vs The Void)
Raid recovery protection 48-tick P-status when a raid hits the theft cap, or after a fleet wipe (Void planets: 24)
Hijack cost Steal-ships per hull: Fi 1 · Co 1 · Fr 2 · De 2 · Cr 3 · Bs 4 (Pirate Code −1, min 1)
Score ratio range clamp(defender/attacker, 0.5, 2.0)
Shield Generator Structure, max 1, never fights — unlocks Orbital Shield research
Stolen orbitals state Pre-initiated (same Ti/Si/Ur breakdown as defender)
PDS destruction Exact, proportional to incoming damage
Survival floor Per side, by ship count: attacker 50% (also vs The Void), defending player 50%, Void defender 20%; none when The Void attacks
Scatter trigger Attack loses more than 50% of its ships and does not win; home fleet below its floor
Scatter return ETA 8–12 ticks (random)
Scatter status 'scattered' — no orders accepted during scatter
Void exception Always attackable; Void planets keep only 20% and never scatter
Attack range floor 20% (≤20M) sliding to 60% (200M+ whales)
Attack upper limit None — punch up freely
STC resource raid Removed in v2 (2026-05-20)
Battle log version 20

Documentation reflects Orbitarion v4.6.4. Last updated: 2026-11-03.