window.GDD = window.GDD || {};
function ShipsPage() {
const [activeSection, setActiveSection] = React.useState('classes');
const shipClasses = [
{
name: 'Frigate',
hull: 400, armor: 350, shield: 300,
highSlots: 3, medSlots: 3, lowSlots: 2,
cpu: 120, powerGrid: 40, cargo: 150,
speed: 280, mass: 1200,
role: 'Fast scout and tackle. Low slot count but quick to align and warp. Good for new players.',
examples: ['Merlin', 'Rifter', 'Incursus', 'Punisher'],
},
{
name: 'Destroyer',
hull: 650, armor: 550, shield: 500,
highSlots: 7, medSlots: 3, lowSlots: 3,
cpu: 180, powerGrid: 65, cargo: 300,
speed: 210, mass: 1800,
role: 'Anti-frigate platform. Many turret hardpoints but slow and vulnerable to larger ships.',
examples: ['Cormorant', 'Thrasher', 'Catalyst', 'Coercer'],
},
{
name: 'Cruiser',
hull: 1200, armor: 1000, shield: 900,
highSlots: 5, medSlots: 4, lowSlots: 4,
cpu: 280, powerGrid: 110, cargo: 600,
speed: 175, mass: 3500,
role: 'Versatile workhorse. Can mine, fight, or explore. Good cargo hold and balanced slot layout.',
examples: ['Osprey', 'Rupture', 'Vexor', 'Maller'],
},
{
name: 'Battlecruiser',
hull: 2800, armor: 2400, shield: 2000,
highSlots: 7, medSlots: 5, lowSlots: 5,
cpu: 380, powerGrid: 180, cargo: 1000,
speed: 130, mass: 7000,
role: 'Command ship. Can fit warfare links and project damage. Excellent fleet support.',
examples: ['Drake', 'Hurricane', 'Myrmidon', 'Harbinger'],
},
{
name: 'Battleship',
hull: 6000, armor: 5000, shield: 4500,
highSlots: 8, medSlots: 5, lowSlots: 6,
cpu: 520, powerGrid: 280, cargo: 1800,
speed: 90, mass: 15000,
role: 'Heavy assault platform. Maximum firepower and tank but very slow. Fleet anchor.',
examples: ['Rokh', 'Tempest', 'Dominix', 'Apocalypse'],
},
];
const slotTypes = [
{
name: 'High Slots',
color: 'var(--red)',
icon: '◆',
description: 'Weapons, mining lasers, cloaks, salvagers. The things that do stuff to other things.',
modules: ['150mm Railgun', '200mm Autocannon', 'Heavy Missile Launcher', 'Mining Laser II', 'Salvager I', 'Cloaking Device'],
fitting: 'Turrets and launchers require both CPU and Power Grid. Heavy weapons need more of both.',
},
{
name: 'Medium Slots',
color: 'var(--cyan)',
icon: '◇',
description: 'Shields, propulsion, electronic warfare, tackle. The things that keep you alive or stop them.',
modules: ['Shield Booster', '1MN Afterburner', 'Warp Scrambler', 'Stasis Webifier', 'ECM Jammer', 'Shield Extender'],
fitting: 'Shield and propulsion modules are CPU-heavy. EWAR fits are tight on CPU, light on grid.',
},
{
name: 'Low Slots',
color: 'var(--green)',
icon: '○',
description: 'Armor, damage mods, cargo expanders, power diagnostics. Passive upgrades and tank.',
modules: ['Armor Plate', 'Magnetic Field Stabilizer', 'Cargo Expander', 'Power Diagnostic System', 'Capacitor Power Relay', 'Armor Repairer'],
fitting: 'Armor and damage modules are Power Grid-heavy. Passive modules use less CPU.',
},
];
return (
Ships & Fitting System
Ships are the player's primary asset. Each ship has a slot layout with CPU and Power Grid limits
that constrain what modules can be fitted. Players own multiple ships and can assign AI crew to
pilot them on autonomous tasks.
1. Each module has a CPU cost and a Power Grid cost.
2. Total fitted module costs must not exceed ship's CPU and Power Grid.
3. Some modules have ship bonuses (e.g. "+5% mining laser yield per Cruiser level").
4. Rig slots add permanent modifications — cannot be removed, only destroyed.
5. Fitting is only possible when docked at a station with fitting service.
Example: Mining Cruiser Fit
Slot
Module
CPU
Grid
High 1
Mining Laser II
30
10
High 2
Mining Laser II
30
10
Med 1
1MN Afterburner
25
15
Med 2
Shield Booster I
30
10
Med 3
Market Analyzer (AI)
15
0
Low 1
Mining Upgrade I
20
5
Low 2
Cargo Expander I
15
0
Low 3
Nav Processor (AI)
10
0
Total
175/280
50/110
AI modules: Market Analyzer (med) tracks local prices and flags arbitrage opportunities. Nav Processor (low) optimizes warp routes. See Ship AI \u2192 Module Gates tab.
Example: Combat Frigate Fit
Slot
Module
CPU
Grid
High 1
150mm Railgun
35
12
High 2
200mm Autocannon
30
14
Med 1
Warp Scrambler I
25
1
Med 2
1MN Afterburner
25
15
Low 1
Armor Plate I
10
20
Low 2
Magnetic Field Stab.
15
5
Total
140/120 ⚠
67/40 ⚠
Overfit! CPU 140/120 and Grid 67/40 — exceeds ship capacity. Drop a turret or fit lower-tier modules.
Ships are the player's primary asset, and acquiring them is a core economic milestone.
The system balances accessibility (new players always have a ship) with economic consequence
(better ships cost real ISK and represent player investment). Players can own multiple ships
stored in station hangars, but only fly one at a time. Switching ships requires docking.
Ship Ownership Model
Single Active Ship
A player has exactly one active ship at a time — the ship they're currently piloting.
This is the ship that appears in the star system, has a position, and can perform actions (mine, fight, warp).
The active ship cannot be traded, contracted, or stored while it is active.
Hangar Storage
Ships not currently being piloted are stored in a station hangar.
Each station has a hangar per player. A player can store unlimited ships at any station they have docking access to.
Hangar ships are safe — they cannot be destroyed or stolen while stored.
How Players Get Ships
Method
Cost
Available At
Phase
{[
{ method: 'Rookie Frigate (free)', cost: '0 ISK — granted on first spawn and on death respawn', available: 'Automatic on new player creation. Automatic on respawn after ship destruction.', phase: 'Phase 0', color: 'var(--green)' },
{ method: 'NPC Market (sell orders)', cost: 'Hull base value × 1.0–1.5 (station markup)', available: 'Any station with Market service. NPC sell orders seeded at galaxy gen.', phase: 'Phase 6', color: 'var(--cyan)' },
{ method: 'Player Market (sell orders)', cost: 'Player-set price — typically below NPC price for T1, above for T2', available: 'Any station with Market service. Player-placed sell orders.', phase: 'Phase 10', color: 'var(--accent)' },
{ method: 'Manufacturing', cost: 'Minerals (from refining ore) + blueprint + factory fee + time', available: 'Stations with Factory service. Requires Industry skill ≥ ship class tier.', phase: 'Phase 5', color: 'var(--purple)' },
{ method: 'Loyalty Point Store', cost: 'ISK + LP — faction ships at below-market rates', available: 'Faction stations only. Requires high standing + LP balance.', phase: 'Phase 12', color: 'var(--red)' },
].map((row, i) => (
{row.method}
{row.cost}
{row.available}
{row.phase}
))}
The Rookie Frigate
Free Ship Policy
On first spawn: New player receives a Rookie Frigate at their faction's starter station.
On death (ship destroyed): Player respawns at their home station with a new Rookie Frigate. Always free.
Cannot be sold or traded: The Rookie Frigate has no market value.
Cannot be insured: Insurance doesn't apply — you always get a new one free.
Basic stats: 2 high slots, 2 mid slots, 1 low slot. 200 hull, 150 armor, 100 shield. 100 cargo. Very limited — enough for basic mining and combat, but weak.
NPC market exclusion: Rookie Frigates are never sold on the NPC market — they exist only as free grants.
Why Free Respawn?
A player without a ship has no way to earn ISK — they can't mine, fight, or trade. A permanent
"ship-less" state is a dead-end that causes player churn. The free Rookie Frigate ensures that
every player always has a path back into the game, no matter how
many times they're destroyed. The cost of death is the upgraded ship and modules you lost —
not the ability to play at all.
Design rule: "Never softlock the player out of the game loop." The Rookie Frigate is the safety net.
NPC Market — Ship Pricing
NPC sell orders provide baseline ship availability. At galaxy generation, the server seeds NPC sell orders
for every ship type at stations with Factory services. These orders have infinite quantity (they never run out)
but are priced at a premium over manufacturing cost. This ensures:
(1) players can always buy a basic ship hull, (2) player manufacturers can undercut NPC prices profitably,
(3) the economy has a known ISK sink ceiling per ship class.
1. Dock at station — Player must be docked. Cannot switch ships while in space. 2. Open Hangar panel — Station Mode → Hangar tab. Shows all ships stored at this station. 3. Select a ship — Shows ship name, class, fitting summary, cargo, insurance status. 4. Activate — Click "Make Active". Current active ship moves to hangar. Selected ship becomes active. 5. Cargo transfer — Prompt to transfer cargo between ships (limited by destination capacity). Remaining stays in station inventory. 6. Undock — Player undocks in the new active ship. Old ship stays in hangar.
Cannot switch while in space. If your ship is destroyed, you respawn at your home station
in a Rookie Frigate — you cannot switch to a hangar ship remotely. You must fly to the station where the ship is stored and dock.
This is intentional: it creates geographic identity ("my ships are in Amarr") and makes home station choice meaningful.
SHIP-ACQ-DB
Backend Impact
Schema & Reducer Changes
ships — add column: storage_location (enum: active / hangar:station_id). When active, ship has system_id/x/y/z. When in hangar, stored at station. ships — add column: is_rookie (bool, default false). Rookie frigates are untradeable, uninsurable, free-replace. npc_sell_orders — seeded at galaxy gen for every ship_types entry at Factory stations. Infinite quantity. Price = base_hull_value × 1.5. New reducer:switch_ship(player_id, target_ship_id) — validate docked, validate target in same station hangar, swap active ↔ hangar. Updated reducer:connect_player(display_name) — on first connection, spawn Rookie Frigate at faction starter station. On subsequent, load existing active ship. Updated reducer:respawn_player(player_id) — on ship destruction, create new Rookie Frigate at home station, set as active.
Post-MVP feature. AI crew is designed here so the ship and backend architecture
supports it from the start, but implementation is planned after the core gameplay loop ships.
SHIP-AI
AI Crew System
Players can own multiple ships and assign AI crew members to pilot them. AI ships execute
autonomous tasks — mining runs, patrol routes, trade delivery — while the player controls
their primary ship directly. AI crew gain experience over time and improve at their assigned role.
Crew Roles
Role
Behavior
XP Growth
Miner
Warps to belt, mines until cargo full, returns to station, sells ore.
XP sources:
• Task completion (base XP)
• Task success rate bonus
• Survival bonus (ship not destroyed)
• Player commendation (manual XP grant)
SHIP-OPS
Task Assignment Flow
1. Player docks at station and opens Crew Management panel
2. Selects an idle ship + available crew member
3. Assigns a task template (mine system X, patrol route Y, haul to station Z)
4. Crew departs autonomously — ship disappears from player's direct control
5. Player receives periodic status reports in a dedicated channel
6. Task completes (or ship is destroyed) → crew returns to station or sends distress signal
7. Resources earned are deposited in player's station inventory
Risk: AI crew earning passive income could trivialize the economy. Mitigation: AI
operations have costs (fuel, maintenance, crew wages) and diminishing returns at scale. A player
with 10 AI miners shouldn't earn 10× a single player — there should be coordination overhead.
AI Crew vs. Zora (Ship AI): These are two different systems. AI Crew (this tab) are autonomous
pilots that fly other ships on your behalf — mining runs, patrol routes, hauling. Zora (see Ship AI page)
is a companion AI installed on your current ship that provides market intelligence, tactical advice,
and dialogue. Think of AI Crew as your employees and Zora as your ship's computer. They do not share
systems, modules, or XP. A future expansion may let Zora be assigned to an AI Crew ship, but that is post-MVP scope.
>
)}
{/* Death & Loss */}
Slot scope note: High, Medium, and Low slots cover combat, mining, propulsion, and tank modules. Ship AI modules (Communications Processor, Market Analyzer, etc.) are a separate system — see the Ship AI → Module Gates tab for the full AI module catalog and how they install alongside standard fittings.
SHIP-DEATH
Ship Destruction
What you lose
The ship hull itself (destroyed)
All fitted modules (50% chance each to drop as loot)
Cargo — destroyed or dropped (50/50 split)
AI crew aboard — injured, require medical bay recovery time
What you keep
Your other ships in hangars
Station inventory and assets
Player XP and progression
ISK in wallet (₢)
Respawn: Player respawns at their home station (or nearest friendly station) in a
rookie frigate. Insurance policies can partially reimburse ship loss.