Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Species Documentation

From starcup wiki
Revision as of 23:11, 8 September 2025 by Skcb (talk | contribs) (A best-effort documentation of how new playable species are constructed in SS14, specifically under the starcup codebase.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

How A Species Is Made

When a mommy coder and a daddy spriter love each other very much...

The .YML Files

Resources/Prototypes/(_namespace)/Species/[species].yml
This file contains the species prototype, which contains some of the information needed for the character creation menu. This includes...

  • id (recommended): the internal name of the prototype.
  • name (required): the user-facing name of the species; point this to a locale string.
  • roundStart (required): whether the species is available at roundstart, IE the character creation menu in the lobby.
  • prototype (required): what mob prototype the player entity will inherit the features of. defined elsewhere (see below).
  • dollPrototype (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).
  • sprites: the sprite prototype that makes up the player entity. defined in this
  • markingLimits: the marking limit prototype that sets how many markings and what kind the species can have. defined in this file.
  • dollPrototype (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).
  • skinColoration (required): which method of skin coloration is used. existing options include: HumanToned, Hues, TintedHues, & VoxFeathers.
  • defaultSkinTone: default skin tone for species with a non-HumanToned skin coloration. defaults to white.
  • defaultHumanSkinTone: default skin tone for species with HumanToned skin coloration. defaults to 20, on a scale from 0 (gold/yellow) to 100 (dark brown).
  • maleFirstNames, femaleFirstNames, lastNames, (etc): namelist prototypes to reference for different name components. defaults to the basic human namelist.
  • naming: the naming rules for the random name generator. defaults to FirstLast. other existing options include: First, LastNoFirst, TheFirstOfLast, FirstDashFirst, LastFirst, FirstDashLast, & FirstCodeLast.
  • sexes: a list of valid sexes for the species to be. this can include some combination of Male, Female, and Unsexed.
  • minAge, youngAge, oldAge, maxAge: these integers define breakpoints for this species age. minAge is the youngest a character of this species can be, and is implied to be an "age of majority". youngAge and oldAge define whether a character is described as young (under youngAge), middle-aged (youngAge to oldAge), or old (over oldAge). maxAge is the oldest a character of this species can be, and is implied to be a "maximum reasonable lifespan". in order, these default to 18, 30, 60, and 120.
  • baseScale: this takes two float numbers, which are applied as modifiers to the character's sprite scaling in X and Y (i think) respectively. defaults to 1, 1.
  • minHeight, maxHeight: float numbers which define the minimum and maximum heights a character can be set to in the character creator. defaults to 0.95 and 1.05, respectively (at least in starcup). these are applied as a modifier to the baseScale, above (I think).
  • defaultHeight, defaultWidth: float numbers which define the starting scale factor for a character's height and width (obviously). both default to 1. these are applied as a modifier to the baseScale, above (I think).
  • scaleHeight, scaleWidth: boolean. whether the character is scaled vertically or horizontally (respectively). both default to true. you probably shouldn't change these.