More actions
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.