Create / Mod files / Start roles for mods
Start roles for mods
A StartRole is one New Game start: the icon its row shows, the catalog
hull the player flies, the kit it starts with, a sum of credits and a hold
of items, the job mix its station boards lean to, and its goal, one finite
milestone. Roles are content like ships and stations. Create a new id to
add a role, or reuse a base id to replace that role. The New Game wizard
lists the roles in merge order.
This page is the field-by-field start role reference. For general RON spelling rules, see RON spelling rules.
The StartRole item
[
StartRole((
id: "my_courier",
name: "Courier",
icon: Container,
about: "A light freighter with no weapons. Carry cargo between stations.",
hull: "light_freighter",
kit: (
credits: 2000,
stock: {
"Rations": 50,
"WaterIce": 50,
},
),
jobs: Trade,
goal: (
title: "A courier network",
kind: StationNetwork(stations: 4),
),
lore: "Stations need what they cannot make. Couriers carry it.",
)),
]
Every field is required.
| field | type | meaning |
|---|---|---|
id |
string | the id the role is picked by. A mod reusing a base id REPLACES that role |
name |
string | the name a picker shows |
icon |
Drill, Claw, Container, Star, Shield or Blades |
the shape drawn beside the name in the New Game role list and on the Load list. Lint refuses any other value |
about |
string | how the role plays, for a reader |
hull |
string | the id of a ship design the player starts in: a base ship id, one of your mod's own, or one from a mod you depend on |
kit |
kit | what the ship starts with, see below |
jobs |
Trade, Salvage or Combat |
the job mix every station board leans to for this start, see Jobs |
goal |
goal | the role's goal, one finite milestone, see The goal |
lore |
string | background text for the role |
A kit has two fields, both required:
| field | type | meaning |
|---|---|---|
credits |
whole number | the credits the ship starts with |
stock |
stock | the items the hold starts with, in the stock format. It must fit the hull's hold (100 kg per hull section) |
The goal
A goal is one finite milestone the role plays toward, read off the saved
world. Every role's progress opens with the same shared first line,
Stations owned, which needs one station the player owns, live or kept in
a sector left behind; the goal's own flavour line follows it. The Map's
chart view OBJECTIVES block lists the next unmet line, station line first,
until both are met, then reads Goal reached at the play time it happened.
It is not an ending: the world is an endless sandbox, a met goal stamps the
save and nothing else, and there is no completion screen. It has two
fields, both required:
| field | type | meaning |
|---|---|---|
title |
string | the name the New Game role step and the Load screen show |
kind |
goal kind | the flavour line after the shared station line, one of the kinds below |
| kind | fields | met when |
|---|---|---|
OreDeliveries |
jobs |
the player handed in jobs Procure jobs whose item is in the Raw category: ore and ice |
Recoveries |
jobs |
the player handed in jobs Recover jobs |
StationNetwork |
stations |
the player handed in Procure or Escort jobs posted by stations distinct stations |
KillList |
hulls |
the player handed in Neutralize jobs naming hulls distinct hulls |
Patrols |
jobs |
the player handed in jobs Distress or Escort jobs |
Outlaw |
hulls |
the player's own kills turned a civilization Enemy (a seeded Enemy does not count) and the player neutralized hulls more intact hulls of it while it stands Enemy; the kill that flips it does not count, and a settlement or the decay clears the count, see Civilization stances |
Every count is a whole number above zero. The base industrial role asks
for six ore deliveries; the base scavenger asks for six recoveries; the
base transport asks for a station network of four stations; the base
bounty_hunter asks for a kill list of six hulls; the base military asks
for a patrol record of six jobs; the base pirate asks for an outlaw's
name (Outlaw): one civilization its own kills turned Enemy, then six more
intact hulls of it neutralized while it stands Enemy.
Progress is derived from the saved world each frame: the stations you own,
live or frozen in a sector you left, the jobs you handed in, and the
civilizations your kills turned Enemy
with the hulls you took from them since. The frame both lines are met, the
save records the play time; the OBJECTIVES block then reads Goal reached at that time, and a Load brings it back. The world does not change on a
met goal.
Overlay and lint
Overlay is last-wins by id, as for every content kind: a mod that defines a
StartRole with a base id replaces it whole. Roles keep their load order, so
a replaced role keeps its place in the list and a new role comes after the
base roles.
content lint and the content check at load both report an error for a
role that:
- names a
hullno visible ship design has (the base ships, your own, and those of the mods you depend on); - names a
hullwith no cargo intake section: an open-world ship jettisons and takes cargo in through one; - names a
hullwhose cargo intake reaches as far out as a docking port's face, where a berthed ship parks; - seeds its kit
stockwith an unknown item; - seeds a kit heavier than the hull's hold;
- gives its
goala count of zero.
In the game
The second step of the New Game wizard lists the roles and selects the
first. The details pane shows the selected role's name, about, the
hull's design name, the kit, the goal's title as its milestone, and the
lore. In the game the Map's chart view OBJECTIVES block lists the goal's
next unmet line, station line first, until all are met. Create starts
the base open_world scenario, whose
SpawnStartRole action spawns the role's hull
with its kit and binds its weapons, docked at the starting station: the
nearest station of a civilization that begins as the player's Ally.
The world save records the role id. A Load refuses a world whose role id
the loaded content does not define, with
its start role '<id>' is not in the loaded content. The content check runs
first, so a role that a mod change removed shows content changed.
Base start roles
A kit's worth at ask is its credits plus its items at their ask_cr per
price_lot. Each unarmed kit is worth 3,000 cr. Each PDC-armed kit is worth 2,000 to 2,200 cr
without its rounds. A PDC-armed hull also carries 1,000 PdcRound in its
shared hold, not per mount. That is 10 whole lots of 100 at 10 cr each, so
the rounds add 100 cr at ask and an armed kit is worth 2,100 to 2,300 cr. The
rounds sell for 70 cr at their reference bid_cr.
| id | hull | kit |
|---|---|---|
industrial |
mining_tug |
2,200 cr, 15 HullPlate, 25 Rations |
scavenger |
salvage_hauler |
1,800 cr, 1,000 PdcRound, 10 HullPlate |
transport |
light_freighter |
2,000 cr, 50 Rations, 50 WaterIce |
bounty_hunter |
interceptor |
1,600 cr, 1,000 PdcRound, 10 HullPlate |
military |
patrol_picket |
1,000 cr, 2 Torpedo, 1,000 PdcRound, 10 HullPlate |
pirate |
raider |
1,800 cr, 1,000 PdcRound, 10 HullPlate |
The roles are generated into assets/base/roles/base.content.ron.
The proof is system_start_roles: for each base role, New Game spawns the
role's hull with its kit and its weapons bound, the hull passes the post-build
checks, docks at a generated station and jettisons an item through its cargo
intake and takes it back in, and Load last save brings the role,
the hull and the kit back from disk.