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: Difference between revisions

From starcup wiki
Skcb (talk | contribs)
A best-effort documentation of how new playable species are constructed in SS14, specifically under the starcup codebase.
(No difference)

Revision as of 23:11, 8 September 2025

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.