Skip to content

Player ships & consoles

Two things every crewed mission needs: player ships to fly, and consoles for the crew to fly them from.

Player ships

The easy path uses the LegendaryMissions fleets add-on. With PLAYER_CREATE_DEFAULT: true in settings.yaml, it pre-creates ships from PLAYER_LIST and shows the right number based on PLAYER_COUNT. In your @map/ body you just position them:

await task_schedule(spawn_players)                    # place player ships
await task_schedule(docking_standard_player_station)  # wire up docking

# then grab references
players = to_object_list(role("__player__"))
player  = players[0]
name    = player.name

Doing it yourself (no add-on): create each ship with npc_spawn and assign it with assign_client_to_ship(client_id, ship_id). See the spawn API.

Consoles

The consoles add-on provides the standard helm / weapons / science / engineering / comms / main-screen consoles. Loading it in story.json is enough — clients are routed to the right console automatically:

{ "mastlib": ["artemis-sbs.LegendaryMissions.consoles.v1.4.0.mastlib"] }

Add your own console with a @console/ label:

@console/status !0 ^10 "Status"
    gui_console("status")
    await gui()

@console/name !priority ^sort "Display" if condition — see the GUI cookbook for building console layouts.

Without LegendaryMissions, route consoles yourself with gui_reroute_server / gui_reroute_clients; MiningDays is an example that loads no add-ons.