Guide for finding and modifying ships — player ship physics, NPC ships, fleet battle ships, ship meshes/visuals, ship stats, and ship behavior in The Years Between the Stars. Use this skill whenever the user wants to change how ships look, adjust ship speed or physics, add a new ship type, change NPC ship behavior, modify fleet combat ships, or tweak ship stats like shields, fuel, or heat. Trigger on "ship", "player ship", "NPC ship", "fleet ship", "ship mesh", "ship speed", "shields", "hull", "ship design", "ship geometry".
FlightModel.ts, state in GameState.tsNPCSystem.tsFleetBattleSystem.tssrc/game/flight/FlightModel.ts — all player ship physics:
jumpCost() — fuel calculation for hyperspace jumpssrc/game/GameState.ts — interface: position, velocity, shields, fuel, heat, speed, cargo capacity. Edit here to add new player ship stats or state fields.
PlayerStatesrc/game/Game.ts — manages player ship in the game loop:
src/game/constants.ts — ship-related constants: HYPERSPACE config, FUEL_HARVEST, GAS_GIANT_SCOOP, BATTLE_DANGER_RANGE, BATTLE_WEAPONS_RANGE
src/game/mechanics/NPCSystem.ts — NPC ship generation and behavior:
NPCShipState type — position, velocity, cargo, faction, target planetsrc/game/rendering/SceneRenderer.ts — renders NPC ships via makeNPCShipMesh(). Also manages per-frame NPC movement.
src/game/mechanics/FleetBattleSystem.ts — fleet combat ships:
FleetShip type — faction, stats, positionFleetShipRuntime — live combat state (health, behavior, target)src/game/rendering/SceneRenderer.ts — renders fleet ships via makeFleetShipMesh(). Manages fleet battle scene.
src/game/rendering/meshFactory.ts — all ship 3D geometry:
makeNPCShipMesh() — NPC civilian ship meshmakeFleetShipMesh() — fleet combat ship mesh (varies by faction)src/game/rendering/effects.ts — ship visual effects:
createBattleProjectiles())createBattleExplosions())Change player ship handling (speed, turning, boost):
src/game/flight/FlightModel.tsChange player ship stats (shields, fuel capacity, heat):
src/game/GameState.ts — update PlayerState defaultssrc/game/constants.ts — check relevant constantsChange NPC ship behavior or spawn rate:
src/game/mechanics/NPCSystem.tsChange fleet ship combat stats or AI:
src/game/mechanics/FleetBattleSystem.tsChange ship 3D appearance:
src/game/rendering/meshFactory.ts — find makeNPCShipMesh() or makeFleetShipMesh()Change weapon/projectile effects:
src/game/rendering/effects.tsAdd a new ship type:
src/game/rendering/meshFactory.ts — add new mesh functionsrc/game/mechanics/NPCSystem.ts or FleetBattleSystem.ts — use the new meshengine/src/types.rs, then rebuild WASM