This is an unofficial and incomplete guide. It will be updated and replaced with an official doc in the future.
QUICK CHECKLIST
Body/Species/species.yml should contain:- [] MarkingsGroup
- [] AppearanceSpecies, modified from Body/Prototypes/species.yml
- [] MobSpecies, modified from Entities/Mobs/Species/species.yml
- [] External organs (formerly ‘parts’), modified from Body/Organs/species.yml
- [] Internal organs, modified from Body/Parts/species.yml
- [] Body/Prototypes/species.yml
- [] Entities/Mobs/Species/species.yml
- [] Body/Organs/species.yml
- [] Body/Parts/species.yml
- [] Species. thats it
- [] Remove species
sprites - [] Remove species
markingLimits - [] Replace
dollPrototypeMobSpeciesDummyentity toAppearanceSpeciesentity - [] Delete
speciesBaseSprites - [] Delete
humanoidBaseSprites - [] Cut out
markingPoints, paste at the top of Body/Species/species.yml. This is our new MarkingsGroup
- [] Delete
markingCategory - [] Delete
followSkinColor - [] Rename
speciesRestrictiontogroupWhitelist.
Markings
This inherits from theUndergarments markingsGroup and defines the limits for what markings a species can have. numerical limits, bool requiremments, and default markings have more or less the same syntax as the previous MarkingPoints- just replace the humanoid visual layers with enum.HumanoidVisualLayers.whatever, and change points to limit.
You will need to seperate out arms and legs to LArm RArm etc etc. The limits on these got halved to compensate. I’m not sure how to handle species that use a single marking to modify both arms or legs at once unfortunately.
Species appearance
Best I can tell this replaces the system connecting body parts to each other. This entity shouldinheritBaseSpeciesAppearance, and contain info about InventoryComponent, InitialBodyComponent, and HumanoidProfile.
InitialBodyComponent’s organs field has a dictionary of organ types corresponding to the mob’s internal or external organs. If you need to define a new organ type, you can do that somewhere in a seperate yml file, much like the previous system.
HumanoidProfile is the replacement for HumanoidAppearance. Just change the name and call it a day
The actual mob
Should inheritBaseSpeciesMobOrganic and the relevant species appearance. Everything on the old mob goes here, minus whatever you moved onto the appearance. Make sure you get rid of InventoryComponent specifically.
Organs
So parts are also organs now. We’re calling parts ‘external organs’ as opposed to the existing organs, which we call ‘internal organs’. You will need:- [] OrganSpecies, inheriting OrganBase, with a species suffix
- [] OrganSpeciesMetabolizer, with MetabolizerComponent. You might not need this.
- [] OrganSpeciesInternal(brain, eyes, etc), inheriting OrganSpecies, sprite path to organs.rsi
- [] OrganSpeciesExternal (head, foot, etc), inheriting OrganSpecies, sprite path to parts.rsi
- [] OrganSpeciesVisual, inheriting OrganSpecies, with
VisualOrganComponentandVisualOrganMarkingsComponent.
VisualOrganComponent point to the parts.rsi, and its VisualOrganMarkings point to our earlier created marking group (can be ‘None`). Eyes (and other internal organs that affect markings if you have them, I guess) should also inherit OrganSpeciesVisual.
Markings
You can just deletemarkingCategory and followSkinColor, and rename speciesRestriction to groupWhitelist and you should be okay. Unfortunately there’s nothing upstream with custom visual layers so I’m at a loss there.