PUBLIC KNOWLEDGE BASEChapter Markdown ↓

MANDRIS / DESIGN REFERENCE

Combat and progression

Resource rules, damage interactions, pickups, difficulty, linked sorties, and co-op.

Snapshot: · Source ca26d81327a1

The game may have changed since this snapshot. Routine deployments do not update this reference.

Combat, movement, and resources #

Movement and aim are independent. The game renders in full 3D, but pilots normally move on a combat flight plane above the battlefield. Target altitude and weapon surface restrictions matter: ground artillery, air missiles, beams, contact, and area hazards use different collision rules.

Hull determines survival. Shields absorb ordinary incoming damage first; shield-bypassing attacks and particular damage rules are exceptions. Armor removes a fixed amount from each hull hit. Energy funds shots and abilities; active modes and channels, such as Michen's Flame Jet and Ratajack's auto turret, pause passive recharge while they run.

Enemies announce committed attacks on the unit: glowing weapons, opening bays, spinning hoppers, and wind-up poses. Impact rings mark where area attacks land. Bosses and heavy enemies have exceptions to displacement, crowd control, and damage that must be considered when evaluating a weapon.

Source reference: src/simulation/MissionSimulation.ts · src/content/combat.ts · src/content/enemyWeapons.ts

Existing damage interactions #

There is no general flame-versus-flesh or explosive-versus-armor effectiveness matrix in this snapshot. That is a proposed system. Existing special cases include Tug Hauler directional armor, Brood Warden protection, vulnerable recovery states, shield-piercing needles, the Gulper's shield-breaking laser, Norgron's eye and throat weak points, and the Forgemaster's exposed core.

Blast radius, falloff, air/ground eligibility, and obstruction rules belong to each weapon. Scrap plates can be destroyed before impact: a plate cracks on the first hit and breaks on a second hit from another shot. Explosive scenery such as slag vats can chain into nearby enemies. Ordinary player attacks do not imply universal friendly fire; Wrath of Sera explicitly damages pilots.

Source reference: src/content/armoredCarrier.ts · src/content/heavies.ts · src/content/frostfall.ts · src/content/foundry.ts · src/simulation/MissionSimulation.ts

Pickups, credits, and weapon drops #

Destroyed enemies pay credits directly on the kill: 2 for ordinary enemies, 6 for strong ones, and 10 for heavies. Ordinary pickups occupy the world and go to the closest eligible living pilot within collection reach, with pilot-slot order breaking a tie. Credits belong to the collecting pilot. An upgrade requires a compatible hull and an available rank, so the closest ineligible pilot does not consume it.

A credit pickup grants 50 credits. Repair pickups restore up to 68 hull; if hull is already full, they instead restore up to 48 shields. An upgrade orb that has nothing left to grant converts to 25 credits. Capacity upgrades also grant the newly added capacity to a living pilot. Upgrades persist across linked sorties until the run ends.

Ratajack and Garmo also receive weapon drops during a run, from scheduled drops and rare destructible caches. Each drop adds a new ship-specific weapon at full strength for the rest of the run. Boss rewards reserve a pickup for each pilot and collect it automatically after a brief delay. Orb color, symbols, and motion are presentation choices; they do not change what a pickup grants.

Source reference: src/simulation/Pickups.ts · src/content/pickups.ts · src/content/enemyRewards.ts · src/content/weaponAdditions.ts · src/content/rareCaches.ts

Linked sorties and the Field Store #

A standard run begins in combat with a fresh loadout and zero run credits. Winning a sortie opens the Field Store, carries upgrades and remaining hull forward, and awards each pilot 250 clear credits. A pilot destroyed during a victorious stage returns with a quarter of maximum hull for the intermission.

The store offers ship-compatible purchases, prerequisites, rank caps, quarter-hull or full repairs, and the next mission selection. Repair price is proportional to the hull actually restored, at 200 credits per full maximum hull. The flight lead chooses the next mission and launches after everyone prepares and declares ready.

Defeat or ending the run clears its credits and upgrades. There is no completed persistent power economy or fixed six-stage campaign director here.

Source reference: src/simulation/RunState.ts · src/content/upgrades.ts · src/ui/StoreDirector.ts

Private cooperative play #

Solo uses one pilot. Private co-op supports two to four pilots, including duplicate ship choices. A flight lead creates a room; guests join with its code, choose hulls, prepare assets, and declare readiness. The host starts and controls the shared run while each pilot has a personal loadout and credit balance.

The host simulates authoritative state; guests predict their own inputs and reconcile against checkpoints. All participants need compatible protocol and content. If a pilot disconnects or the host's tab goes to the background, the flight pauses and resumes from the host's exact state. Spectating after destruction and continuing without an absent pilot are supported; host migration and recovering a host after a full page reload are not.

Linked-stage and store recovery track the current run and stage rather than restarting the original sortie. A complete downed/bleedout/revive combat system remains future work.

Source reference: src/network/CoopSession.ts · src/network/contracts.ts · src/simulation/RunState.ts · ARCHITECTURE.md

Difficulty and combat profiles #

Players choose a difficulty before launch, or the host chooses it for a co-op room. It scales enemy count, hull, and damage; player ships are unchanged.

Public launches use the Arcade Test combat profile. The Standard profile is a local development option (?balance=standard). Profiles change enemy density, dispatch timing, approach, cooldowns, and projectile behavior; player weapon tuning is shared. Heavy counts do not multiply like ordinary waves, and boss phase rules and special encounter caps also apply.

Difficulty multipliers on enemies (Medium is the standard balance)
DifficultyEnemy countEnemy hullEnemy damageSummary
Easy×0.9×0.65×0.8Slightly fewer enemies, much lower enemy hull, and lighter hits.
Medium×1×1×1The standard combat balance.
Hard×1.15×1.7×1.35Slightly more enemies, much tougher hulls, and heavier hits.
Nightmare×1.3×2.6×1.75More enemies, extreme hull strength, and punishing hits.
Profile configuration
ParameterStandardArcade Test
Enemy Count12
Wave Time10.5
Approach Speed11.5
Regular Cooldown10.65
Boss Cooldown10.5
Boss Projectile Speed11.25
Extra Fan Pairs01
Solo Cap1224
Coop Cap1240
Solo Offspring Cap612
Coop Offspring Cap620
Solo Carry Over14
Coop Carry Over16

Source reference: src/content/difficulty.ts · src/content/combatProfiles.ts · src/content/population.ts · src/main.ts

Enemy drop rates #

Base chances per eligible death, before mission adjustments. Upgrade chance is absolute and already included in the chance of any drop. The remaining drops split one third repair and two thirds credits, and repair and credit drops are then scaled by 0.5. Ordinary waves compensate for their reduced counts. Boss rewards and no-drop summons (such as Spark Fighters and Maw Fry) use separate rules. The tier uses base enemy health, not remaining health.

Regular eligible enemy deaths (base rates)
TierBase healthAny dropUpgradeKill credits
Ordinary<8034.4%1.15%2
Strong80–29943%2.3%6
Heavy≥30060.2%4.6%10

Source reference: src/simulation/Pickups.ts: DROP_RATES, enemyDropRates, rollEnemyDrop · src/content/pickups.ts · src/content/enemyRewards.ts

Hazards and telegraphs #

Warnings identify delayed damage; active residue can remain after the initial impact. Different hazards use different altitude checks, damage clocks, and destruction rules. Avoid assuming that every visible ground effect harms a pilot or that every hazard can be shot.

  • Slag Bombers drop 4 bombs along a committed line; each leaves a burning cloud of 3.5 m for 1.6 s dealing 7 damage every 400 ms.
  • Furnace Crawlers heat up, then release a fire ring that expands to 13 m and deals 18 damage to pilots it crosses. A destroyed crawler can cook off; Fuel Haulers explode when destroyed.
  • Tug Hauler scrap plates deal 12 damage each in a fan of 7; a plate cracks on the first hit and breaks on the second.
  • Resin patches slow to 70% movement, cover 3.2 m, and last 5 s. Resin itself deals no direct damage.
  • Spore vents and brood capsules are destructible hive hazards; capsules can release offspring. Root lashes and toxic clouds control flight lanes.
  • Damaging hive blood splashes are brief: 600 ms lifetime, 2.5 m radius, 4 damage per eligible hit. These are separate from cosmetic blood particles.
  • Frost residue slows to 70% movement and lasts 3 s. Norgron's breath sweeps 90° over a 26 m range, dealing 6 damage per 250 ms damage tick.

Source reference: src/content/foundry.ts · src/content/heavies.ts · src/content/hiveExpansion.ts · src/content/combatEvolution.ts · src/content/frostfall.ts