<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.starcup.cc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Skcb</id>
	<title>starcup wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.starcup.cc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Skcb"/>
	<link rel="alternate" type="text/html" href="https://wiki.starcup.cc/w/Special:Contributions/Skcb"/>
	<updated>2026-05-05T10:47:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.starcup.cc/index.php?title=Dev:SpeciesDocumentation&amp;diff=20630</id>
		<title>Dev:SpeciesDocumentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.starcup.cc/index.php?title=Dev:SpeciesDocumentation&amp;diff=20630"/>
		<updated>2025-09-09T08:52:46Z</updated>

		<summary type="html">&lt;p&gt;Skcb: Skcb moved page Dev:SpeciesDocumentation to /w/Species Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[/w/Species Documentation]]&lt;/div&gt;</summary>
		<author><name>Skcb</name></author>
	</entry>
	<entry>
		<id>https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20629</id>
		<title>Species Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20629"/>
		<updated>2025-09-09T08:52:46Z</updated>

		<summary type="html">&lt;p&gt;Skcb: Skcb moved page Dev:SpeciesDocumentation to /w/Species Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How A Species Is Made ==&lt;br /&gt;
&#039;&#039;When a mommy coder and a daddy spriter love each other very much...&#039;&#039;&lt;br /&gt;
==== The .YML Files ====&lt;br /&gt;
&#039;&#039;&#039;Resources/Prototypes/(_namespace)/Species/[species].yml&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This file contains the &#039;&#039;&#039;species&#039;&#039;&#039; prototype, which contains some of the information needed for the character creation menu. This includes...&lt;br /&gt;
* &#039;&#039;&#039;id&#039;&#039;&#039; (recommended): the internal name of the prototype, which is generally just the species name.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (required): the user-facing name of the species; point this to a locale string.&lt;br /&gt;
* &#039;&#039;&#039;roundStart&#039;&#039;&#039; (required): whether the species is available at roundstart, IE the character creation menu in the lobby.&lt;br /&gt;
* &#039;&#039;&#039;prototype&#039;&#039;&#039; (required): what mob prototype the player entity will inherit the features of. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;sprites&#039;&#039;&#039;: the sprite prototype that makes up the player entity. defined in this file (see below).&lt;br /&gt;
* &#039;&#039;&#039;markingLimits&#039;&#039;&#039;: the marking limit prototype that sets how many markings and what kind the species can have. defined in this file.&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;skinColoration&#039;&#039;&#039; (required): which method of skin coloration is used. existing options include: HumanToned, Hues, TintedHues, &amp;amp; VoxFeathers.&lt;br /&gt;
* &#039;&#039;&#039;defaultSkinTone&#039;&#039;&#039;: default skin tone for species with a non-HumanToned skin coloration. defaults to white.&lt;br /&gt;
* &#039;&#039;&#039;defaultHumanSkinTone&#039;&#039;&#039;: default skin tone for species with HumanToned skin coloration. defaults to &#039;&#039;&#039;20&#039;&#039;&#039;, on a scale from &#039;&#039;&#039;0&#039;&#039;&#039; (gold/yellow) to &#039;&#039;&#039;100&#039;&#039;&#039; (dark brown).&lt;br /&gt;
* &#039;&#039;&#039;maleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;femaleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;lastNames&#039;&#039;&#039;, (etc): namelist prototypes to reference for different name components. defaults to the basic human namelist.&lt;br /&gt;
* &#039;&#039;&#039;naming&#039;&#039;&#039;: the naming rules for the random name generator. defaults to FirstLast. other existing options include: First, LastNoFirst, TheFirstOfLast, FirstDashFirst, LastFirst, FirstDashLast, &amp;amp; FirstCodeLast.&lt;br /&gt;
* &#039;&#039;&#039;sexes&#039;&#039;&#039;: a list of valid sexes for the species to be. this can include some combination of Male, Female, and Unsexed.&lt;br /&gt;
* &#039;&#039;&#039;minAge&#039;&#039;&#039;, &#039;&#039;&#039;youngAge&#039;&#039;&#039;, &#039;&#039;&#039;oldAge&#039;&#039;&#039;, &#039;&#039;&#039;maxAge&#039;&#039;&#039;: these integers define breakpoints for this species age. &#039;&#039;&#039;minAge&#039;&#039;&#039; is the youngest a character of this species can be, and is implied to be an &amp;quot;age of majority&amp;quot;. &#039;&#039;&#039;youngAge&#039;&#039;&#039; and &#039;&#039;&#039;oldAge&#039;&#039;&#039; define whether a character is described as young (under &#039;&#039;&#039;youngAge&#039;&#039;&#039;), middle-aged (&#039;&#039;&#039;youngAge&#039;&#039;&#039; to &#039;&#039;&#039;oldAge&#039;&#039;&#039;), or old (over &#039;&#039;&#039;oldAge&#039;&#039;&#039;). &#039;&#039;&#039;maxAge&#039;&#039;&#039; is the oldest a character of this species can be, and is implied to be a &amp;quot;maximum reasonable lifespan&amp;quot;. in order, these default to &#039;&#039;&#039;18&#039;&#039;&#039;, &#039;&#039;&#039;30&#039;&#039;&#039;, &#039;&#039;&#039;60&#039;&#039;&#039;, and &#039;&#039;&#039;120&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;baseScale&#039;&#039;&#039;: this takes two float numbers, which are applied as modifiers to the character&#039;s sprite scaling in X and Y (i think) respectively. defaults to &#039;&#039;&#039;1, 1&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;minHeight&#039;&#039;&#039;, &#039;&#039;&#039;maxHeight&#039;&#039;&#039;: float numbers which define the minimum and maximum heights a character can be set to in the character creator. defaults to &#039;&#039;&#039;0.95&#039;&#039;&#039; and &#039;&#039;&#039;1.05&#039;&#039;&#039;, respectively (at least in starcup). these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;defaultHeight&#039;&#039;&#039;, &#039;&#039;&#039;defaultWidth&#039;&#039;&#039;: float numbers which define the starting scale factor for a character&#039;s height and width (obviously). both default to &#039;&#039;&#039;1&#039;&#039;&#039;. these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;scaleHeight&#039;&#039;&#039;, &#039;&#039;&#039;scaleWidth&#039;&#039;&#039;: boolean. whether the character is scaled vertically or horizontally (respectively). both default to &#039;&#039;&#039;true&#039;&#039;&#039;. you probably shouldn&#039;t change these.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This file also typically contains the &#039;&#039;&#039;speciesBaseSprites&#039;&#039;&#039; prototype, which defines what sprites will be rendered on a given humanoid visual layer. If an entry is empty, the visual layer is assumed not to be in use and will be ignored. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The following list of existing layers and their definitions are pieced together as best as I can without spending all day reading rendering code. From what I can tell, the order of &#039;&#039;this&#039;&#039; list does not matter (but it very much does in other locations!), so I have ordered in the most sensible way I can imagine. Not all of these are necessary for all species.&lt;br /&gt;
* &#039;&#039;&#039;Head&#039;&#039;&#039; (usually species-specific; governs the base Head part)&lt;br /&gt;
* &#039;&#039;&#039;HeadTop&#039;&#039;&#039; (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;HeadSide&#039;&#039;&#039; (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;Eyes&#039;&#039;&#039; (usually species-specific &#039;&#039;if&#039;&#039; the species has a unique eye sprite. many use the human one)&lt;br /&gt;
* &#039;&#039;&#039;Snout&#039;&#039;&#039;  (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;Hair&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s hair)&lt;br /&gt;
* &#039;&#039;&#039;FacialHair&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s hair)&lt;br /&gt;
* &#039;&#039;&#039;UndergarmentTop&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;UndergarmentBottom&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;Chest&#039;&#039;&#039; (usually species-specific; governs the base Chest part)&lt;br /&gt;
* &#039;&#039;&#039;LArm&#039;&#039;&#039; (usually species-specific; governs the base LArm part)&lt;br /&gt;
* &#039;&#039;&#039;RArm&#039;&#039;&#039; (usually species-specific; governs the base RArm part)&lt;br /&gt;
* &#039;&#039;&#039;LHand&#039;&#039;&#039; (usually species-specific; governs the base LHand part)&lt;br /&gt;
* &#039;&#039;&#039;RHand&#039;&#039;&#039; (usually species-specific; governs the base RHand part)&lt;br /&gt;
* &#039;&#039;&#039;LLeg&#039;&#039;&#039; (usually species-specific; governs the base LLeg part)&lt;br /&gt;
* &#039;&#039;&#039;RLeg&#039;&#039;&#039; (usually species-specific; governs the base RLeg part)&lt;br /&gt;
* &#039;&#039;&#039;LFoot&#039;&#039;&#039; (usually species-specific; governs the base LFoot part)&lt;br /&gt;
* &#039;&#039;&#039;RFoot&#039;&#039;&#039; (usually species-specific; governs the base RFoot part)&lt;br /&gt;
* &#039;&#039;&#039;Tail&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;TailBehind&#039;&#039;&#039; (usually MobHumanoidAnyMarking; this uses the new tail code recently ported from floof, wikidocs pending)&lt;br /&gt;
* &#039;&#039;&#039;TailOversuit&#039;&#039;&#039; (usually MobHumanoidAnyMarking; this uses the new tail code recently ported from floof, wikidocs pending)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Species-specific sprite parts are defined with a &#039;&#039;&#039;humanoidBaseSprite&#039;&#039;&#039; prototype. These simply have a single component, &#039;&#039;&#039;baseSprite&#039;&#039;&#039;, containing the &#039;&#039;&#039;sprite:&#039;&#039;&#039; [path_to_parts.rsi] and &#039;&#039;&#039;state:&#039;&#039;&#039; [body_part].&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Skcb</name></author>
	</entry>
	<entry>
		<id>https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20628</id>
		<title>Species Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20628"/>
		<updated>2025-09-09T08:51:55Z</updated>

		<summary type="html">&lt;p&gt;Skcb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How A Species Is Made ==&lt;br /&gt;
&#039;&#039;When a mommy coder and a daddy spriter love each other very much...&#039;&#039;&lt;br /&gt;
==== The .YML Files ====&lt;br /&gt;
&#039;&#039;&#039;Resources/Prototypes/(_namespace)/Species/[species].yml&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This file contains the &#039;&#039;&#039;species&#039;&#039;&#039; prototype, which contains some of the information needed for the character creation menu. This includes...&lt;br /&gt;
* &#039;&#039;&#039;id&#039;&#039;&#039; (recommended): the internal name of the prototype, which is generally just the species name.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (required): the user-facing name of the species; point this to a locale string.&lt;br /&gt;
* &#039;&#039;&#039;roundStart&#039;&#039;&#039; (required): whether the species is available at roundstart, IE the character creation menu in the lobby.&lt;br /&gt;
* &#039;&#039;&#039;prototype&#039;&#039;&#039; (required): what mob prototype the player entity will inherit the features of. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;sprites&#039;&#039;&#039;: the sprite prototype that makes up the player entity. defined in this file (see below).&lt;br /&gt;
* &#039;&#039;&#039;markingLimits&#039;&#039;&#039;: the marking limit prototype that sets how many markings and what kind the species can have. defined in this file.&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;skinColoration&#039;&#039;&#039; (required): which method of skin coloration is used. existing options include: HumanToned, Hues, TintedHues, &amp;amp; VoxFeathers.&lt;br /&gt;
* &#039;&#039;&#039;defaultSkinTone&#039;&#039;&#039;: default skin tone for species with a non-HumanToned skin coloration. defaults to white.&lt;br /&gt;
* &#039;&#039;&#039;defaultHumanSkinTone&#039;&#039;&#039;: default skin tone for species with HumanToned skin coloration. defaults to &#039;&#039;&#039;20&#039;&#039;&#039;, on a scale from &#039;&#039;&#039;0&#039;&#039;&#039; (gold/yellow) to &#039;&#039;&#039;100&#039;&#039;&#039; (dark brown).&lt;br /&gt;
* &#039;&#039;&#039;maleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;femaleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;lastNames&#039;&#039;&#039;, (etc): namelist prototypes to reference for different name components. defaults to the basic human namelist.&lt;br /&gt;
* &#039;&#039;&#039;naming&#039;&#039;&#039;: the naming rules for the random name generator. defaults to FirstLast. other existing options include: First, LastNoFirst, TheFirstOfLast, FirstDashFirst, LastFirst, FirstDashLast, &amp;amp; FirstCodeLast.&lt;br /&gt;
* &#039;&#039;&#039;sexes&#039;&#039;&#039;: a list of valid sexes for the species to be. this can include some combination of Male, Female, and Unsexed.&lt;br /&gt;
* &#039;&#039;&#039;minAge&#039;&#039;&#039;, &#039;&#039;&#039;youngAge&#039;&#039;&#039;, &#039;&#039;&#039;oldAge&#039;&#039;&#039;, &#039;&#039;&#039;maxAge&#039;&#039;&#039;: these integers define breakpoints for this species age. &#039;&#039;&#039;minAge&#039;&#039;&#039; is the youngest a character of this species can be, and is implied to be an &amp;quot;age of majority&amp;quot;. &#039;&#039;&#039;youngAge&#039;&#039;&#039; and &#039;&#039;&#039;oldAge&#039;&#039;&#039; define whether a character is described as young (under &#039;&#039;&#039;youngAge&#039;&#039;&#039;), middle-aged (&#039;&#039;&#039;youngAge&#039;&#039;&#039; to &#039;&#039;&#039;oldAge&#039;&#039;&#039;), or old (over &#039;&#039;&#039;oldAge&#039;&#039;&#039;). &#039;&#039;&#039;maxAge&#039;&#039;&#039; is the oldest a character of this species can be, and is implied to be a &amp;quot;maximum reasonable lifespan&amp;quot;. in order, these default to &#039;&#039;&#039;18&#039;&#039;&#039;, &#039;&#039;&#039;30&#039;&#039;&#039;, &#039;&#039;&#039;60&#039;&#039;&#039;, and &#039;&#039;&#039;120&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;baseScale&#039;&#039;&#039;: this takes two float numbers, which are applied as modifiers to the character&#039;s sprite scaling in X and Y (i think) respectively. defaults to &#039;&#039;&#039;1, 1&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;minHeight&#039;&#039;&#039;, &#039;&#039;&#039;maxHeight&#039;&#039;&#039;: float numbers which define the minimum and maximum heights a character can be set to in the character creator. defaults to &#039;&#039;&#039;0.95&#039;&#039;&#039; and &#039;&#039;&#039;1.05&#039;&#039;&#039;, respectively (at least in starcup). these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;defaultHeight&#039;&#039;&#039;, &#039;&#039;&#039;defaultWidth&#039;&#039;&#039;: float numbers which define the starting scale factor for a character&#039;s height and width (obviously). both default to &#039;&#039;&#039;1&#039;&#039;&#039;. these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;scaleHeight&#039;&#039;&#039;, &#039;&#039;&#039;scaleWidth&#039;&#039;&#039;: boolean. whether the character is scaled vertically or horizontally (respectively). both default to &#039;&#039;&#039;true&#039;&#039;&#039;. you probably shouldn&#039;t change these.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This file also typically contains the &#039;&#039;&#039;speciesBaseSprites&#039;&#039;&#039; prototype, which defines what sprites will be rendered on a given humanoid visual layer. If an entry is empty, the visual layer is assumed not to be in use and will be ignored. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The following list of existing layers and their definitions are pieced together as best as I can without spending all day reading rendering code. From what I can tell, the order of &#039;&#039;this&#039;&#039; list does not matter (but it very much does in other locations!), so I have ordered in the most sensible way I can imagine. Not all of these are necessary for all species.&lt;br /&gt;
* &#039;&#039;&#039;Head&#039;&#039;&#039; (usually species-specific; governs the base Head part)&lt;br /&gt;
* &#039;&#039;&#039;HeadTop&#039;&#039;&#039; (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;HeadSide&#039;&#039;&#039; (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;Eyes&#039;&#039;&#039; (usually species-specific &#039;&#039;if&#039;&#039; the species has a unique eye sprite. many use the human one)&lt;br /&gt;
* &#039;&#039;&#039;Snout&#039;&#039;&#039;  (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;Hair&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s hair)&lt;br /&gt;
* &#039;&#039;&#039;FacialHair&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s hair)&lt;br /&gt;
* &#039;&#039;&#039;UndergarmentTop&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;UndergarmentBottom&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;Chest&#039;&#039;&#039; (usually species-specific; governs the base Chest part)&lt;br /&gt;
* &#039;&#039;&#039;LArm&#039;&#039;&#039; (usually species-specific; governs the base LArm part)&lt;br /&gt;
* &#039;&#039;&#039;RArm&#039;&#039;&#039; (usually species-specific; governs the base RArm part)&lt;br /&gt;
* &#039;&#039;&#039;LHand&#039;&#039;&#039; (usually species-specific; governs the base LHand part)&lt;br /&gt;
* &#039;&#039;&#039;RHand&#039;&#039;&#039; (usually species-specific; governs the base RHand part)&lt;br /&gt;
* &#039;&#039;&#039;LLeg&#039;&#039;&#039; (usually species-specific; governs the base LLeg part)&lt;br /&gt;
* &#039;&#039;&#039;RLeg&#039;&#039;&#039; (usually species-specific; governs the base RLeg part)&lt;br /&gt;
* &#039;&#039;&#039;LFoot&#039;&#039;&#039; (usually species-specific; governs the base LFoot part)&lt;br /&gt;
* &#039;&#039;&#039;RFoot&#039;&#039;&#039; (usually species-specific; governs the base RFoot part)&lt;br /&gt;
* &#039;&#039;&#039;Tail&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;TailBehind&#039;&#039;&#039; (usually MobHumanoidAnyMarking; this uses the new tail code recently ported from floof, wikidocs pending)&lt;br /&gt;
* &#039;&#039;&#039;TailOversuit&#039;&#039;&#039; (usually MobHumanoidAnyMarking; this uses the new tail code recently ported from floof, wikidocs pending)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Species-specific sprite parts are defined with a &#039;&#039;&#039;humanoidBaseSprite&#039;&#039;&#039; prototype. These simply have a single component, &#039;&#039;&#039;baseSprite&#039;&#039;&#039;, containing the &#039;&#039;&#039;sprite:&#039;&#039;&#039; [path_to_parts.rsi] and &#039;&#039;&#039;state:&#039;&#039;&#039; [body_part].&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Skcb</name></author>
	</entry>
	<entry>
		<id>https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20627</id>
		<title>Species Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20627"/>
		<updated>2025-09-08T23:34:54Z</updated>

		<summary type="html">&lt;p&gt;Skcb: Adding info about the baseSprites prototype&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How A Species Is Made ==&lt;br /&gt;
&#039;&#039;When a mommy coder and a daddy spriter love each other very much...&#039;&#039;&lt;br /&gt;
==== The .YML Files ====&lt;br /&gt;
&#039;&#039;&#039;Resources/Prototypes/(_namespace)/Species/[species].yml&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This file contains the &#039;&#039;&#039;species&#039;&#039;&#039; prototype, which contains some of the information needed for the character creation menu. This includes...&lt;br /&gt;
* &#039;&#039;&#039;id&#039;&#039;&#039; (recommended): the internal name of the prototype, which is generally just the species name.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (required): the user-facing name of the species; point this to a locale string.&lt;br /&gt;
* &#039;&#039;&#039;roundStart&#039;&#039;&#039; (required): whether the species is available at roundstart, IE the character creation menu in the lobby.&lt;br /&gt;
* &#039;&#039;&#039;prototype&#039;&#039;&#039; (required): what mob prototype the player entity will inherit the features of. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;sprites&#039;&#039;&#039;: the sprite prototype that makes up the player entity. defined in this file (see below).&lt;br /&gt;
* &#039;&#039;&#039;markingLimits&#039;&#039;&#039;: the marking limit prototype that sets how many markings and what kind the species can have. defined in this file.&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;skinColoration&#039;&#039;&#039; (required): which method of skin coloration is used. existing options include: HumanToned, Hues, TintedHues, &amp;amp; VoxFeathers.&lt;br /&gt;
* &#039;&#039;&#039;defaultSkinTone&#039;&#039;&#039;: default skin tone for species with a non-HumanToned skin coloration. defaults to white.&lt;br /&gt;
* &#039;&#039;&#039;defaultHumanSkinTone&#039;&#039;&#039;: default skin tone for species with HumanToned skin coloration. defaults to &#039;&#039;&#039;20&#039;&#039;&#039;, on a scale from &#039;&#039;&#039;0&#039;&#039;&#039; (gold/yellow) to &#039;&#039;&#039;100&#039;&#039;&#039; (dark brown).&lt;br /&gt;
* &#039;&#039;&#039;maleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;femaleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;lastNames&#039;&#039;&#039;, (etc): namelist prototypes to reference for different name components. defaults to the basic human namelist.&lt;br /&gt;
* &#039;&#039;&#039;naming&#039;&#039;&#039;: the naming rules for the random name generator. defaults to FirstLast. other existing options include: First, LastNoFirst, TheFirstOfLast, FirstDashFirst, LastFirst, FirstDashLast, &amp;amp; FirstCodeLast.&lt;br /&gt;
* &#039;&#039;&#039;sexes&#039;&#039;&#039;: a list of valid sexes for the species to be. this can include some combination of Male, Female, and Unsexed.&lt;br /&gt;
* &#039;&#039;&#039;minAge&#039;&#039;&#039;, &#039;&#039;&#039;youngAge&#039;&#039;&#039;, &#039;&#039;&#039;oldAge&#039;&#039;&#039;, &#039;&#039;&#039;maxAge&#039;&#039;&#039;: these integers define breakpoints for this species age. &#039;&#039;&#039;minAge&#039;&#039;&#039; is the youngest a character of this species can be, and is implied to be an &amp;quot;age of majority&amp;quot;. &#039;&#039;&#039;youngAge&#039;&#039;&#039; and &#039;&#039;&#039;oldAge&#039;&#039;&#039; define whether a character is described as young (under &#039;&#039;&#039;youngAge&#039;&#039;&#039;), middle-aged (&#039;&#039;&#039;youngAge&#039;&#039;&#039; to &#039;&#039;&#039;oldAge&#039;&#039;&#039;), or old (over &#039;&#039;&#039;oldAge&#039;&#039;&#039;). &#039;&#039;&#039;maxAge&#039;&#039;&#039; is the oldest a character of this species can be, and is implied to be a &amp;quot;maximum reasonable lifespan&amp;quot;. in order, these default to &#039;&#039;&#039;18&#039;&#039;&#039;, &#039;&#039;&#039;30&#039;&#039;&#039;, &#039;&#039;&#039;60&#039;&#039;&#039;, and &#039;&#039;&#039;120&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;baseScale&#039;&#039;&#039;: this takes two float numbers, which are applied as modifiers to the character&#039;s sprite scaling in X and Y (i think) respectively. defaults to &#039;&#039;&#039;1, 1&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;minHeight&#039;&#039;&#039;, &#039;&#039;&#039;maxHeight&#039;&#039;&#039;: float numbers which define the minimum and maximum heights a character can be set to in the character creator. defaults to &#039;&#039;&#039;0.95&#039;&#039;&#039; and &#039;&#039;&#039;1.05&#039;&#039;&#039;, respectively (at least in starcup). these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;defaultHeight&#039;&#039;&#039;, &#039;&#039;&#039;defaultWidth&#039;&#039;&#039;: float numbers which define the starting scale factor for a character&#039;s height and width (obviously). both default to &#039;&#039;&#039;1&#039;&#039;&#039;. these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;scaleHeight&#039;&#039;&#039;, &#039;&#039;&#039;scaleWidth&#039;&#039;&#039;: boolean. whether the character is scaled vertically or horizontally (respectively). both default to &#039;&#039;&#039;true&#039;&#039;&#039;. you probably shouldn&#039;t change these.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This file also typically contains the &#039;&#039;&#039;speciesBaseSprites&#039;&#039;&#039; prototype, which defines what sprites will be rendered on a given humanoid visual layer. If an entry is empty, the visual layer is assumed not to be in use and will be ignored. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The following list of existing layers and their definitions are pieced together as best as I can without spending all day reading rendering code. From what I can tell, the order of &#039;&#039;this&#039;&#039; list does not matter (but it very much does in other locations!), so I have ordered in the most sensible way I can imagine. Not all of these are necessary for all species.&lt;br /&gt;
* &#039;&#039;&#039;Head&#039;&#039;&#039; (usually species-specific; governs the base Head part)&lt;br /&gt;
* &#039;&#039;&#039;HeadTop&#039;&#039;&#039; (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;HeadSide&#039;&#039;&#039; (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;Eyes&#039;&#039;&#039; (usually species-specific &#039;&#039;if&#039;&#039; the species has a unique eye sprite. many use the human one)&lt;br /&gt;
* &#039;&#039;&#039;Snout&#039;&#039;&#039;  (usually MobHumanoidAnyMarking; a type of head marking)&lt;br /&gt;
* &#039;&#039;&#039;Hair&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s hair)&lt;br /&gt;
* &#039;&#039;&#039;FacialHair&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s hair)&lt;br /&gt;
* &#039;&#039;&#039;UndergarmentTop&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;UndergarmentBottom&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;Chest&#039;&#039;&#039; (usually species-specific; governs the base Chest part)&lt;br /&gt;
* &#039;&#039;&#039;LArm&#039;&#039;&#039; (usually species-specific; governs the base LArm part)&lt;br /&gt;
* &#039;&#039;&#039;RArm&#039;&#039;&#039; (usually species-specific; governs the base RArm part)&lt;br /&gt;
* &#039;&#039;&#039;LHand&#039;&#039;&#039; (usually species-specific; governs the base LHand part)&lt;br /&gt;
* &#039;&#039;&#039;RHand&#039;&#039;&#039; (usually species-specific; governs the base RHand part)&lt;br /&gt;
* &#039;&#039;&#039;LLeg&#039;&#039;&#039; (usually species-specific; governs the base LLeg part)&lt;br /&gt;
* &#039;&#039;&#039;RLeg&#039;&#039;&#039; (usually species-specific; governs the base RLeg part)&lt;br /&gt;
* &#039;&#039;&#039;LFoot&#039;&#039;&#039; (usually species-specific; governs the base LFoot part)&lt;br /&gt;
* &#039;&#039;&#039;RFoot&#039;&#039;&#039; (usually species-specific; governs the base RFoot part)&lt;br /&gt;
* &#039;&#039;&#039;Tail&#039;&#039;&#039; (usually MobHumanoidAnyMarking; it&#039;s a type of marking)&lt;br /&gt;
* &#039;&#039;&#039;TailBehind&#039;&#039;&#039; (usually MobHumanoidAnyMarking; this uses the new tail code recently ported from floof, wikidocs pending)&lt;br /&gt;
* &#039;&#039;&#039;TailOversuit&#039;&#039;&#039; (usually MobHumanoidAnyMarking; this uses the new tail code recently ported from floof, wikidocs pending)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Species-specific sprite parts are defined with a &#039;&#039;&#039;humanoidBaseSprite&#039;&#039;&#039; prototype. These simply have a single component, &#039;&#039;&#039;baseSprite&#039;&#039;&#039;, containing the &#039;&#039;&#039;sprite:&#039;&#039;&#039; [path_to_parts.rsi] and &#039;&#039;&#039;state:&#039;&#039;&#039; [body_part].&lt;/div&gt;</summary>
		<author><name>Skcb</name></author>
	</entry>
	<entry>
		<id>https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20626</id>
		<title>Species Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.starcup.cc/index.php?title=Species_Documentation&amp;diff=20626"/>
		<updated>2025-09-08T23:11:07Z</updated>

		<summary type="html">&lt;p&gt;Skcb: A best-effort documentation of how new playable species are constructed in SS14, specifically under the starcup codebase.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How A Species Is Made ==&lt;br /&gt;
&#039;&#039;When a mommy coder and a daddy spriter love each other very much...&#039;&#039;&lt;br /&gt;
==== The .YML Files ====&lt;br /&gt;
&#039;&#039;&#039;Resources/Prototypes/(_namespace)/Species/[species].yml&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This file contains the &#039;&#039;&#039;species&#039;&#039;&#039; prototype, which contains some of the information needed for the character creation menu. This includes...&lt;br /&gt;
* &#039;&#039;&#039;id&#039;&#039;&#039; (recommended): the internal name of the prototype.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (required): the user-facing name of the species; point this to a locale string.&lt;br /&gt;
* &#039;&#039;&#039;roundStart&#039;&#039;&#039; (required): whether the species is available at roundstart, IE the character creation menu in the lobby.&lt;br /&gt;
* &#039;&#039;&#039;prototype&#039;&#039;&#039; (required): what mob prototype the player entity will inherit the features of. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;sprites&#039;&#039;&#039;: the sprite prototype that makes up the player entity. defined in this &lt;br /&gt;
* &#039;&#039;&#039;markingLimits&#039;&#039;&#039;: the marking limit prototype that sets how many markings and what kind the species can have. defined in this file.&lt;br /&gt;
* &#039;&#039;&#039;dollPrototype&#039;&#039;&#039; (required): what mob prototype will be used in certain menus, such as the character creator. defined elsewhere (see below).&lt;br /&gt;
* &#039;&#039;&#039;skinColoration&#039;&#039;&#039; (required): which method of skin coloration is used. existing options include: HumanToned, Hues, TintedHues, &amp;amp; VoxFeathers.&lt;br /&gt;
* &#039;&#039;&#039;defaultSkinTone&#039;&#039;&#039;: default skin tone for species with a non-HumanToned skin coloration. defaults to white.&lt;br /&gt;
* &#039;&#039;&#039;defaultHumanSkinTone&#039;&#039;&#039;: default skin tone for species with HumanToned skin coloration. defaults to &#039;&#039;&#039;20&#039;&#039;&#039;, on a scale from &#039;&#039;&#039;0&#039;&#039;&#039; (gold/yellow) to &#039;&#039;&#039;100&#039;&#039;&#039; (dark brown).&lt;br /&gt;
* &#039;&#039;&#039;maleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;femaleFirstNames&#039;&#039;&#039;, &#039;&#039;&#039;lastNames&#039;&#039;&#039;, (etc): namelist prototypes to reference for different name components. defaults to the basic human namelist.&lt;br /&gt;
* &#039;&#039;&#039;naming&#039;&#039;&#039;: the naming rules for the random name generator. defaults to FirstLast. other existing options include: First, LastNoFirst, TheFirstOfLast, FirstDashFirst, LastFirst, FirstDashLast, &amp;amp; FirstCodeLast.&lt;br /&gt;
* &#039;&#039;&#039;sexes&#039;&#039;&#039;: a list of valid sexes for the species to be. this can include some combination of Male, Female, and Unsexed.&lt;br /&gt;
* &#039;&#039;&#039;minAge&#039;&#039;&#039;, &#039;&#039;&#039;youngAge&#039;&#039;&#039;, &#039;&#039;&#039;oldAge&#039;&#039;&#039;, &#039;&#039;&#039;maxAge&#039;&#039;&#039;: these integers define breakpoints for this species age. &#039;&#039;&#039;minAge&#039;&#039;&#039; is the youngest a character of this species can be, and is implied to be an &amp;quot;age of majority&amp;quot;. &#039;&#039;&#039;youngAge&#039;&#039;&#039; and &#039;&#039;&#039;oldAge&#039;&#039;&#039; define whether a character is described as young (under &#039;&#039;&#039;youngAge&#039;&#039;&#039;), middle-aged (&#039;&#039;&#039;youngAge&#039;&#039;&#039; to &#039;&#039;&#039;oldAge&#039;&#039;&#039;), or old (over &#039;&#039;&#039;oldAge&#039;&#039;&#039;). &#039;&#039;&#039;maxAge&#039;&#039;&#039; is the oldest a character of this species can be, and is implied to be a &amp;quot;maximum reasonable lifespan&amp;quot;. in order, these default to &#039;&#039;&#039;18&#039;&#039;&#039;, &#039;&#039;&#039;30&#039;&#039;&#039;, &#039;&#039;&#039;60&#039;&#039;&#039;, and &#039;&#039;&#039;120&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;baseScale&#039;&#039;&#039;: this takes two float numbers, which are applied as modifiers to the character&#039;s sprite scaling in X and Y (i think) respectively. defaults to &#039;&#039;&#039;1, 1&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;minHeight&#039;&#039;&#039;, &#039;&#039;&#039;maxHeight&#039;&#039;&#039;: float numbers which define the minimum and maximum heights a character can be set to in the character creator. defaults to &#039;&#039;&#039;0.95&#039;&#039;&#039; and &#039;&#039;&#039;1.05&#039;&#039;&#039;, respectively (at least in starcup). these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;defaultHeight&#039;&#039;&#039;, &#039;&#039;&#039;defaultWidth&#039;&#039;&#039;: float numbers which define the starting scale factor for a character&#039;s height and width (obviously). both default to &#039;&#039;&#039;1&#039;&#039;&#039;. these are applied as a modifier to the &#039;&#039;&#039;baseScale&#039;&#039;&#039;, above (I think).&lt;br /&gt;
* &#039;&#039;&#039;scaleHeight&#039;&#039;&#039;, &#039;&#039;&#039;scaleWidth&#039;&#039;&#039;: boolean. whether the character is scaled vertically or horizontally (respectively). both default to &#039;&#039;&#039;true&#039;&#039;&#039;. you probably shouldn&#039;t change these.&lt;/div&gt;</summary>
		<author><name>Skcb</name></author>
	</entry>
</feed>