Starship Horizons
Log In
☰
Knowledge Base›Vessel Classes

Vessel Classes

A vessel class is a ship type — the design. Missions place instances of it. It is the largest record in the game and the one that decides what a crew's consoles look like.

The sections

GroupSections
CoreGeneral, Presentation, Model, Animations, NPC
CollectionsDamage Teams, Cameras, Decks, Docks, Effects, Hard Points, Lights, Occupants, Roles, Statuses, Weapon Groups
DefaultsCargo, Objects, Ordnance
ToolsShipyard
InterfaceWidgets

Some of the class lives only in its file: damage sections, processors, hull markings and scoring have no section yet. The editor saves the whole class, so those blocks survive an editor save untouched.

Roles: the most important section

The roles a class declares are the seats it offers, and each one names the console screen it opens. The flagship declares six:

<role id="Captain"    screen="captain"    abbr="CAP" commander="true" visible="false" />
<role id="Flight"     screen="flight"     abbr="FLT" visible="true" />
<role id="Tactical"   screen="tactical"   abbr="TAC" visible="true" />
<role id="Operations" screen="operations" abbr="OPS" visible="true" />
<role id="Sciences"   screen="science"    abbr="SCI" visible="true" />
<role id="Engineer"   screen="engineer"   abbr="ENG" visible="true" />

Each carries a short abbreviation and a color used consistently across consoles and GM displays. commander marks the command seat.

Two optional attributes, written in the file, tie a role to the controls: input names the input role the station's gamepad and key bindings come from, and widget names the station widget a lobby shows for the seat.

Nothing requires these six. A small craft can offer one role; an unusual hull can offer a role that exists nowhere else, pointed at a screen your module provides. This is the main lever for making a module feel different: give the crew different seats.

Hard points and the Shipyard

Hard points are the mounting positions on the hull — where a component can be installed, and where it sits in space for aiming and for damage. The Shipyard tool fits Components to them, and also places the ship's cameras, docks, lights and effects.

Hard points define the ship's capability envelope; components define what is actually installed. Getting the hard points right first saves rework, because everything else attaches to them.

A component installs only where the hard point is big enough and of the same type (or of type Any). When the class's default loadout names a component that does not exist or does not fit, that hard point is left empty and the server log says which and why.

Damage sections

A class can divide its hull into sections, each with its own armor and internal structure, so that a ship loses an engine pod or a wing rather than just hit points:

<sections bind="Box">
  <section name="Bridge" box="-20 50 60 20 90 140" armor="200" internal="300"
           crit-chance="0.3" vital="true" />
  <section name="Port Nacelle" box="…" armor="150" internal="250" propagates-to="Hull" />
</sections>
  • A hit lands on the first section whose box contains it, and otherwise on the one along the shot's line or the nearest. Armor absorbs first; only the overflow reaches internal.
  • Internal damage can roll a critical (crit-chance) that damages a component on that section.
  • When a section's internal reaches zero, every component on its hard points is destroyed and the rest of the damage passes to propagates-to. A section marked vital="true" (or mode="Destruction") destroys the whole vessel.
  • The sections' internal values add up to the hull's maximum.
  • bind="Mesh" uses mesh="…" names from the model instead of boxes. Mixing the two rejects the whole block, and the class falls back to a single hull.

A hard point joins a section with section="…"; without one, it belongs to the first section box that contains it. The Hard Point dialog's Mount field no longer does anything, so set the section in the file.

Statuses: the alert conditions

A class can define its own alert conditions. Leave the section empty and it gets the standard four — Blue for docking, Green standard, Yellow elevated, Red battlestations — each restricting which component types may be brought up. Those restrictions are what stop Tactical arming weapons below Red.

Define your own and you take on the whole job: a condition set needs a base, an elevated, a docking and a critical condition for the rest of the game to reason about it. This is a powerful place to express a faction's doctrine and an easy place to make a ship that cannot fight.

Write a custom set in the file. On a class that started with the standard four, the editor's status edits are not saved.

Cameras

Cameras are named viewpoints with a position, a target and a field of view, and they are what the Main Viewer and viewport panels show. Author them generously: a bridge forward view, side views, an astern view, and a set of external cinematic angles.

<camera name="Forward" position="0 70 130" target="0 70 -70" mode="Perspective" fov="55" showvessel="false">
  The main Bridge view
</camera>

showvessel decides whether the ship itself is drawn — false for a view from inside it, true for anything outside.

Occupants and crew

Large ships are populated by a mix of named people and generator rules: an <occupant> row is one person, and a <generate> row makes so many officers of this rank, so many enlisted, so many marines, with health and efficiency defaults and tags. Operations and the decks display read this. A warship with no occupants authored is a warship where nothing internal can go wrong.

Either kind of row can carry a character sheet: the four abilities (strength, constitution, intelligence, speed, 0 to 1) and the eight temperament traits (mood, disposition, honor, humor, impulsivity, persistence, social, valor, −1 to 1). In the occupant dialog each is "auto" until you pin it; an unpinned value is rolled per person. An occupant can also name its own archetype and deck. One with no faction takes the ship's.

The class itself can name an Archetype in General: the role the ship's commander plays when nothing more specific gives him one. Unmanned hulls get their commander from a processor instead. See NPC Archetypes.

Decks and docks

Decks are the interior: the compartments that matter when boarders, fires or atmosphere become the story. Docks are where other craft attach, which is what makes a carrier a carrier.

A dock is one shape with its berths inside it, placed and sized with the Shipyard's dock handles and filled in with the Docks section's dialog (General, Shape, Openings, Speeds):

<dock name="Main Bay" type="Bay" flow="Both" position="0 -20 40" orientation="0 0 0"
      park="Out" shape="Box" size="120 40 200">
  <berth position="0 0 0" halign="Center" valign="Bottom" />
  <opening direction="-Z" flow="Inbound" approach="Nose" />
</dock>
  • type — Bay, Pad (set down gear first), Port (two ships mate, and only with a port of the same connector) or Tube (a launch tube).
  • openings — the faces ships enter and leave by, each with its own flow and approach (Nose or Translate). With none, ships enter nose first along the dock's forward axis.
  • park — how a ship sits once in: Out, nose toward the first exit; Frame, along the dock; Travel, as it came in.
  • speeds — approach, final, terminal and capture speeds, on the dock or per opening.

A dock with no shape is treated as an old‑style sphere of its maximum radius, and forward= on an old dock is still read and turned into an orientation. A dock currently parks one ship, in its first berth.

Damage teams

The pool of repair teams Engineer distributes. The number is a real balance decision — it sets how quickly a ship recovers from anything.

Scoring

A class can keep score, which suits racing and arena modules: <scoring collision-cost="…" weapon-cost="…" credit="Weapon" credit-own-hit="true" />. Each hit costs its victim the cost for that kind of damage times the share of the hull it took, and the loss is paid to the attacker if the kind is credited. Only hulls that keep score are charged or paid.

Widgets

The class can push extra panels onto specific consoles, in addition to the ones its components bring. See Widgets for what a widget is; the short version is that a console is assembled from declarations like these rather than being a fixed layout.

Last updated 19 October 2026