-
-
Notifications
You must be signed in to change notification settings - Fork 10
Modding: Races
So you have a nice, well developed and good looking custom race for Starbound. And now you wanna add the one most important thing missing for it: The ability to fuck it! Luckily for you, the process is rather simple and straight forward. Unluckily for you, it involves atleast as much spriting work as creating the race itself did. Regardless, in the following I will walk you through the process of giving your race a full "Sexbound compatibility patch", as well as teach you all the nifty features SBR allows you to do now!
Sprites. Lots and lots of sprites. We'll get this out of the way first, cause this is the biggest amount of work you will need to do, and the most important one too. First, you will want to the folders /artwork/humanoid/actor1/<your species>
and /artwork/humanoid/actor2/<your species>
. I'll let you know once we reach the point where more actors are supported and need unique artwork - fear that day. For now, that's enough to cover all the animating needs. Each of these folders now get a handfull of images:
- arm_back.png
- arm_front.png
- body_female.png
- body_male.png
- groin_genital.png
- groin_genital_mask.png
- groin_genpreg.png
- groin_genpreg_mask.png
- groin_pregnant.png
- groin_pregnant_mask.png
- head_female.png
- head_male.png
Wow, that's alot. And it will get technical, so bear with me for a moment.
Let's start with the head files first, as they are unique. And the easiest, as for most races these two files are literally just a literal copy of the head files from the base race. They just exist, because you can give your species a unique head sprite for sex. It will not be animated though. It will also need to fit with the offsets for the head for each position, as these are hardcoded.
Now onto all the other files. The arm
and body
files should be pretty self explanatory in function. What's new, however, is the groin
files. groin_genital
is for the penis, groin_pregnant
for the pregnant belly, and groin_genpreg
is a combination of both (for, e.g., Futanaris). The masks get even more technical - these are applied (currently only during fellatio) to the other actor's head to crop out certain areas.
The content of these files is structured in a fixed, specific way. Every individual sprite is 43x43 pixels in size. This restriction is not really bypassable, and inline with vanilla Starbound. Every spritesheet currently has 7 columns and 9 rows. The first column is unused in animation and can contain notes (as seen on, e.g., the human SBR sprites). The last two rows are also unused as of now.
The rows are for, in order, "idle", "standing", "doggy", "missionary", "cowgirl", "butterfly", "fellatio". Columns 2-6 are for the 5-frame animation, the last column for a "reset" frame - which also doubles as the one frame of climax animation.
The good thing about drawing all this is, that you can just layer all the files in the right order above eachother, as all these sprites are placed over the body. Makes positioning easier and lets you preview the full result.
If, at any stage, you need a clean reference to work off of - just use the human SBR files. They are the best base to work off of.
All of the above structures (inside of the spritesheets) - except for the 43x43 size - are, however, only applicable when you take the lazy way out and support the bare minimum. This is how the fallback default.frames
file defines the sprites to be used. You can, however, easily do some funky stuff yourself.
For this, you only need to supply a default.frames
file (or, if you want to do it only for individual spritesheets, <png name>.frames
) yourself in the folder of your race itself. Starbound will start looking in the folder of the loaded image and then upwards, until it finds a suitable .frames file. This means you can structure your spritesheets however you want, and even animate stuff differently through the use of aliases. In this case you only need to adhere to the following technical requirements:
- The names "idle", "position1" - "position8", "position4_1" and "position4_2" need to be defined.
- Each of these positions need to define frame 1-5 and "r"
- You probably want to define frame "default" too, Starbound shenanigans.
- Each of these positions (except "idle") has a "-climax" variant. This one is technically only animated as one frame, but you can define 5 for failsafety and future-proofing.
- Each of these positions (except "idle") has a "-postclimax" variant. This one has 13 frames. Originally it's just a re-timing of the original 5 frames, played backwards.
- Each of these positions (except "idle") has a "-reset" variant. I honestly don't even know if that is still used.
You can always go look at /artwork/default.frames
as reference for what all you need in aliases. Feel free to make as much fancy custom stuff as you like! If you wanna negotiate about doubling the frame count per animation, let me know.
With that out of the way, and several hundred sprites drawn in thirsty, horny glory, it is time to put them to work. Literally. Cause this is the part where you make it "work". You will need a sexbound.config.patch
file in the top level of your mod. The contents are way simple - literally just:
[{"op" : "add", "path" : "/sex/supportedPlayerSpecies/-", "value" : "<your species>"}]
Now Sexbound actually recognizes your species as supported, and will try to load your juicy sprites when banging as a character of your species. No more bald humans!
That was the mandatory bare minimum. Congratulations, your species works and is fully bangable! However, why stop here when there is so much more cool stuff to add? This is where you patch (or just add to) your own .species file! There is quite a few parameters you can put in there that will change the Sexbound behavior of your race. Let's break them down:
This setting gives your species a speciesType - a speciesType is used to determine cross-species breedability. Without further config tweaking, only partners of the same species can make babies. If two partners are of the same speciesType, however, they are also eligable for breeding. That's how Humans and Apex are natively compatible - they both have the same speciesType. Here are the vanilla species and their speciesTypes:
- human: Human, Apex
- avian: Avian
- floran: Floran
- mechanic: Glitch
- aquatic: Hylotl
There is also special values "universal" and nil
(aka. not set). They make your species breedable with any or no species respectable. (Sorry Novakid players - gotta look for another Novakid to make babies.)
This is pretty straightforward. Set this to true
and your species will not use normal arousal effects. Instead, your species will use the "in heat" mechanic where every couple days (config set), your player goes into heat. This gives them a long lasting debuff making them weaker, slower and occasionally moaning (if moans are defined), as well as increase their fertility. This effect can only be removed early by successfully breeding, aka. making a baby. Alternatively the player can take a pill to weaken and shorten (but not remove) the effects of being in heat.
Setting this to true
tells Sexbound to use an addition file ears.png
from the sprites you created at the beginning. The ears are another 43x43 sprite, but attached to the head. This lets you animate the ears, as normally nothing on the head is animated. Useful for races with big, fluffy ears.
Oops, did I say attached to the head? Turning this on will instead attach the ear layer to the body layer. Since vanilla Starbound does not let you animate the head either, if your race has animated ears to begin with you will be familiar with the ins and outs of this approach and know why you would want this, so I'm not gonna explain it in detail.
The thing of note, however, is that you will now need two new spritesheets: ears.png
and ears_flipped.png
. This is because the head can flip independently from the body, and so the ears need to flip too. Attaching the ear layer to the body layer means I can't just flip it, so you need to draw a seperate sprite for it.
Want your ears to use the body color directives instead of the head color directives? Turn this to true
.
Same was with the ears, this tells Sexbound to use a new spritesheet tail.png
for animated tails. This one is attached to the body sprite (duh) and layers behind everything (except back_arm).
This one is very new, experimental, and probably irrelevant for your normal humanoid species anyway. I let's you define offsets by which the body or head are moved per position (or in general when using "default"). If you need this, you know what that means. Supports different offsets for flipped heads. Structure is:
{"<position name>": {"body": {<X>,<Y>}, "head": {<X>,<Y>}, "headFlipped": {<X>,<Y>}}}
These settings don't go into the species files directly, but rather into the gender data blocks. So you can have different settings for male and female.
Define a fixed sub-gender that members of this species with this gender have. Keep in mind that this is only actually applied when the sub-gender exists and is allowed for the base gender. This is also only an initial value, any individual entity can override it by several means throughout the game.
Sexbound as a thing where it adds it's own nipples as precisely placed 1x1 pixel sprites. If you don't want that, set this to false
.
This let's you define statuses that members of your species with this gender have by default. We're talking Sexbound statuses, not Starbound status effects here. If I were to simplify this with a real example, this let's you define your females as natively "infertile". So they can never have babies.
In general, there are also a couple of old legacy options that let you individually override certain stuff in Sexbound - but I heavily discourage using them.
Want your species to not only look the part, but also sound it? Time to add some moans, even if you are just reusing the human ones! All you gotta do, is create a sxb_plugin.moan.config.patch
in the top level of your mod folder and fill it with that tasty data!
You wanna patcxh /moan/soundConfig/<your species>
and /orgasm/soundConfig/<your species>
respectively. The data you wanna patch in there is structured as follows:
{
"male": {
"interval": [min, max],
"pitch": [min, max],
"soundEffects": [<all your file paths>]
},
"female": {
"interval": [min, max],
"pitch": [min, max],
"soundEffects": [<all your file paths>]
}
}
Boom, erotic moaning!
Your species looks the part and sounds like it too - now you just want them to actually say something very arousing while being railed! Well, for that you better read the dedicated guide on how to add sextalk, as alot has changes with sextalk v2!