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_pdsflag distinguishing PDS units from ships - Per-round events: who fired at what class, hits, kills, EMP freezes, ship captures (STC steals), with
is_pds_shooterflag 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-eventbuff_eventsfor 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 validatesstatus = '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.