Identity labels

"Rank eight is not a demotion. It is where everybody starts." — Records Officer Sela Marn

Every character carries 3 numbers, and your server decides what those numbers are called.

Rank 1 is the highest standing. The ladder counts downwards, which catches almost every operator once.


What it does

A character stores status, faction and rank as whole numbers from 0 to 8. It never stores a name. The server looks the name up from its own settings at the moment it needs to print one. The same character therefore reads differently on a different server.

Zero means unset and shows as a dash. A number pointing at a slot you left empty also shows as a dash, so a half-filled ladder leaves players looking blank.

Rank is the only one of the 3 that changes anything mechanical. Status and faction are labels and nothing more. What players see from their side is covered in identity, status and rank.


Setting the labels

There are 24 settings in 3 sets of 8. All of them are empty until you fill them in, and all of them are archived, so the engine saves whatever you last set.

Server-side. The name shown for status 1. The same pattern runs to sf_status8. Server-side. The name shown for faction 1. The same pattern runs to sf_faction8. Server-side. The name shown for rank 1, the highest standing. The same pattern runs to sf_rank8, the lowest.

Put them in storyforce_server.cfg with the rest of your settings. You do not have to use all 8 slots in a set. Leave the ones you do not need empty and they are skipped everywhere the labels are listed.


A worked example

Take a frontier station where 3 groups share a docking ring, staffed by a single chain of command. Statuses cover what a character is doing right now. Factions cover who they answer to. Ranks run from the person in charge down to the newest arrival.

set sf_status1  "On duty"
set sf_status2  "Off duty"
set sf_status3  "Injured"
set sf_status4  "Missing"
set sf_status5  "Deceased"

set sf_faction1 "Station Authority"
set sf_faction2 "Wayfarers"
set sf_faction3 "Free Traders"
set sf_faction4 "Dust Cartel"

set sf_rank1    "Director"
set sf_rank2    "Section Chief"
set sf_rank3    "Deck Officer"
set sf_rank4    "Hand"
set sf_rank5    "Probationer"

Write the rank ladder from the top down before you write anything else. A rank 3 door in your build now admits the Director, every Section Chief and every Deck Officer, and turns away Hands and Probationers. Getting that order wrong means rebuilding every lock on the map.

Slots 6, 7 and 8 stay empty here, which leaves room to add a rank below Probationer later without renumbering anybody.


Assigning a label to a character

A clerical admin sets all 3 with /comadmin. Run the subcommand with no target to see what the server currently has configured. The outputs on this page show the worked example's labels, and your server prints whatever its own settings hold:

Then assign one by character id or by the name of an online player:

If that character is being played at the time, its owner is told straight away and the change applies live, without a respawn:

Leave the number off to read the current value back instead of setting one. status and faction work exactly the same way. 0 clears the field, and anything outside 0 to 8 is refused:


What rank changes in the world

2 things in the entity system read rank, and they read it differently.

Locked doors admit everyone at or above the requirement. A lock placed with /add lock 3 lets ranks 1, 2 and 3 through and refuses everyone else. Anyone unranked is refused as well:

The rank name in that message comes from the labels you configured. A requirement pointing at a slot you never named falls back to a self-describing label, so an unnamed slot 3 reads as Rank 3.

Rank-restricted spawn points match exactly. A spawn point placed with /add spawnpoint 2 takes rank 2 characters and nobody else, including rank 1. Use them to put each group where it belongs at the start of a scene, not as a security measure.

Rank comes from the character a player currently has selected. Somebody logged out, or playing with no character, counts as unranked whatever their last character held.


Things to note

  • Rank 1 beats rank 8. Seniority counts downwards. Write the ladder top first and the rest follows.
  • An empty slot shows as a dash. A character set to a rank you never named reads as blank rather than falling back to a number. Door messages are the exception, printing Rank 3 for an unnamed slot 3.
  • Doors and spawn points do not use the same rule. One admits everyone at or above, the other matches exactly.
  • A lock with no rank set ignores rank entirely. Being rank 1 does not open it, because the door is not asking about standing.
  • Quote marks, semicolons and backslashes are stripped from labels. Keep them to plain words and spaces.
  • Changing a label renames every character holding that number. Nobody is notified and no history is kept, because only the number was ever stored.
  • Players set their own status. You name the options, but you do not control which one somebody picks. Faction and rank are staff-only.
  • These settings are archived. Editing them by hand on a live server means the engine saves your change, config file or not.

Next