Starbound

Starbound

Not enough ratings
[ENG] How to make vanilla Characters with custom textures in Starbound
By Ethan
[ENG] This guide is about how to make your character appear differently in game, using only client-sided mods, which allow you to play on vanilla servers. Create your own custom haircut, body textures, emotes from scratch or import from somewhere else.


Russian translation will be added after full release of this guide and some fixes - be patient.
2
2
2
   
Award
Favorite
Favorited
Unfavorite
1. Getting started
How ironic it is not, you have to do some preparations, before attempting to make anything custom. Down here is the list of things you will need throughout whole guide:
  • Graphic editor.
    Paintnet[www.getpaint.net], Aseprite[www.aseprite.org] and etc. Use whatever you see fit - you will use it for creating textures, editing existing ones and merging them into singular spritesheet,which will be required later.

  • StarExtensions by Kae.
    QoL Public Starbound extensions, written in C++ for Starbound, by Kae. Installment is essential, makes editing easier ingame. Provides a lot of utility outside textures replacement. If you dont need it after replacing textures - you can delete it. Trust me - after such improvements you won`t do it.
    Download: StarExtensions[github.com]

  • Drawables Generator by FezzedOne.
    This programm will help us make textures of body, arms appear on your character. Also, requires Python 3.9.0[www.python.org]. Don`t forget to install pillow. More on that later in "Install" segment.
    Use the exact 3.9.0 version, or generator won`t work.
    Download: DrawablesGenerator[github.com]

  • Advanced Hatter and Hatter by Degranon and Silverfeelin.
    Those two websites will be used in order to create directives for your hair and emotes:
    Advanced Hatter - for emotes and animated hats (if you want to make them). Requires a mod to be used in game.
    Download: Starbound-AdvancedHatter[github.com]
    Website link: AdvancedHatter[krashv.github.io]
    Hatter - for creating hats and haircuts. We will be using this site for making haircut, of course.
    Website link: Starbound-Hatter[silverfeelin.github.io]

  • Unpacked assets of Body, Arms and etc.
    You can find a lot of guides about unpacking textures from Starbound. Search it up. They will be usefull.

Most of them have an installment guide, written on the page. If many people will find installing some programs difficult, I`ll make additional install orders for all programs.

There is one more important step. It`s more like a check to be made:
Please, make sure you dont use any mods with texture packs like Cutebound and etc - because of them you wont see your emotes and body textures.
2. Installation
As I said earlier, most of programms or files have an installation guide form them on websites. If many people will find those complicated, I`ll make more described guides here. For now, let`s focus on things, that might cause some confusion - Python and probably FezzedOne-Drawables Generator.
2.1 Python and pillow
Oh boy, the Python. Hopefully I am not working in IT, but for now - cope with it.
There are some crucial details, we need to adress, so follow those steps carefully.

1. After downloading installer, make sure to check the box Add Python 3.9 to PATH. It should look like this:



2. Press "Customize Installation":



3.Make sure to check every box and hit "Next"



4. In Advanced options make sure that you check the box "Install for all users". For a relation, make sure you have same box checked as here and hit "Install":



5. After programm is installed, we need to install Pillow. For this, open CMD.
For those, who don`t know, hit the combination "Win+R" and type into search:
cmd



6. After you`ve gained access to cmd, input the following:
pip



7. After getting this huge list of commands, input:
pip install pillow



8. After getting this message (don`t mind the warning - it`s about using older version of Python and pillow), all steps dedicated to Python and Pillow are done.


2.2 FezzedOne Drawables Generator
After you downloaded the archive from website, just unpack it where you can access it easily (on your desktop, for example. Just keep the main folder intact.).
It should look something like this:





3. Creating custom textures and implementing them into character
This step is sub-divided into multiple steps, each is corresponding to different part of custom textures:
  • Hair/Haircut
  • Body and arms
  • Emotes and head
We will start from the most easy ones, and will end with the most complicated stuff. After you do it several times, you`ll do all steps by heart.
3.1. Creating Hair (Hatter-Generator)
Link: Starbound-Hatter[silverfeelin.github.io]

This generator appeared long ago, primarily for creating custom hats. Later, it evolved into Advanced-HatterGenerator, but we`ll talk about it later. First of, before we procceed to even generate the code, you need to draw/import/export your future hair. Conveniently, on Website, there is a template we can use for editing. Scroll down on web-page download the template:


For an example, I will use "Paint.net" as my main grapic editor.

1. Draw your beloved futute hair/hat/anything else you wish to be permamently stuck on your head, on that template. In my case, I draw it on layer called "Hat Layer". For the example of that guide, we will try to replace default hair with custom one.




2. Delete everything not realted to hair. That means: Head, body and etc, which shouldn`t be as part of you hair. Save it as .png.
For example, for our haircut it looks like this:


3. After you have your new haircut saved as .png, you can return to web-page we talked about earlier. Import your new image into it:



Don`t mind the checkboxes - our goal is texture, we about to receive in generated hat. Choose either of options: "Generate item file" or "Generate command file".
For example, we will download command file, since you can open it in basic .txt format. Open it:



We are met with a huge amount of text. Here comes the tricky part - we need to locate this parametre:
"directives"

After it, there is a huge line of symbols. We need to copy it all, but not the rest of parameters. For this example, what you copy should look something like this:

?setcolor=fff?replace;fff0=fff?crop;0;0;2;2?blendmult=/items/active/weapons/protectorate/aegisaltpistol/beamend.png;0;0?replace;a355c0a5=00010000;a355c07b=2a010000;ffffffa5=00012a00;ffffff7b=2a012a00?scale=43;43?crop;1;1;44;44?replace;0d011b00=c7375a;0e011a00=c7375a;0e011b00=d83c63;0f011900=ad304f;0f011a00=c7375a;0f011b00=d83c63;10011800=ad304f;10011900=c7375a;10011a00=ad304f;10011b00=c7375a;11011700=201f3f;11011800=c7375a;11011900=ad304f;11011a00=d83c63;11011b00=c7375a;11011c00=2e2c5a;11011d00=2e2c5a;12011700=201f3f;12011800=ad304f;12011900=ad304f;12011a00=c7375a;12011b00=47476f;12011c00=47476f;12011d00=47476f;12011e00=2e2c5a;13011600=201f3f;13011700=201f3f;13011800=ad304f;13011900=c7375a;13011a00=47476f;13011b00=555581;13011c00=555581;13011d00=7678a9;13011e00=47476f;13011f00=2e2c5a;14011800=47476f;14011900=47476f;14011a00=555581;14011b00=555581;14011c00=7678a9;14011d00=555581;14011e00=555581;14011f00=47476f;15011a00=47476f;15011b00=47476f;15011c00=7678a9;15011d00=555581;15011e00=555581;15011f00=555581;15012000=47476f;15012100=555581;16011c00=47476f;16011d00=555581;16011e00=555581;16011f00=47476f;16012100=47476f;16012200=555581;17011b00=47476f;17011c00=555581;17011d00=555581;17011e00=555581;17011f00=47476f;17012200=555581;18011a00=47476f;18011b00=555581;18011c00=7678a9;18011d00=555581;18011e00=555581;18011f00=47476f;19011b00=2e2c5a;19011c00=47476f;19011d00=555581;19011e00=47476f;1a011800=201f3f;1a011900=2e2c5a;1a011a00=47476f;1a011b00=555581;1a011c00=555581;1a011d00=47476f;1b011900=201f3f;1b011a00=2e2c5a;1b011b00=47476f;1b011c00=47476f

As a big of guidestone, look for that type of code after "directives" but dont copy after "description". This is your texture in written format. Hold on to it - there is little left to do.

4. Go into your Starbound, and finally open the character, whom haircut you want to edit.
After logging in, write down the following in chat:

/identity set hairDirectives

Hit space, and paste the code we copied earlier.

If you`ve done everything correctly, your character should change his/her haircut:





Congratulations, you have just made 1/3 of making fully custom character. Now your character has new hair, which can be as unique as you want. Since it is written in code, you can use it on vanilla and everyone will see your custom hair.




3.2 Creating custom emotes and head (Advanced-HatterGenerator)
Link: Starbound-AdvancedHatter[krashv.github.io]

1. The method here is almost the same as we had before. Draw yourself sprites. But here is the catch - now we draw emotes. Spritesheet is much bigger right now. On the webpage here is a template, which we can use. For the purpose of this guide, we will use it. You can find it here:





Here is some text for general understanding, how those emotes work. As you can see, there are squares with red letters. Those are frames for emotes, which will be shown on character accordingly to command/text. Some attenrive users will notice that every frame is exactly 43x43 pixels (same as hat template). Here we basicly draw separate "hat" for every state of "emote". Our main focus here - the head and face. Some emotes have different amount of frames and speed of transition - mind that.
Side note. Due to some strange limitations of Advanced-Hatter, some races cannot play all emotes, so you`ll be locked with limited options. Floran and Human dont have that problem.
Keep in mind, that you need to make emote with separate head. As usual, clean anything unrelated.

If you need a reference - check any texturepack, like Cutebound.

In the end, we will end with something like this:



2. Save it as .png, as usual.

3. Now, we head back on web-site. Here, we press "Import spritesheet" and choose our .png we saved earlier. After that, hit "Generate emoteDirective File".


4. After that, new window will pop up, asking you to select a race. Choose the race your character is. For more highly-customized character (that use fully custom body) always pick Floran. More on that in next section.


5. You will get new file, containing code for emotes. There is nothing to search for, just copy all that is inside text file. It should look something like this:
?crop;17;21;27;31?scale=0.7?replace;af8e7529=0000ff?scale=0.7?scale=0.7?scale=0.9?crop;2;1;3;2?replace;cc8c651c=00a100;c1735432=00a200;c57d5a26=00a300;c2735547=00a400;ca88611c=00a500;bf6e4f32=00a600;ffffff00=00a700;ca996f1d=00b100;c2825e06=00b200;a56a752a=00b300;c2825d05=00b400;c3815c03=00b500;cc8b6216=00c100;c174531c=00c200;c0705046=00c300;c06e505d=00c400;cc8b621e=00d100;c2765430=00d200;cc8b621f=00e100;c57d5811=00e200;c278551f=00e300;bf6e5041=00e400;bd684c58=00e500;ead1bd00=00f100;e6c8b714=00f200;ddb4a224=00f300;d39d8c40=00f400;d49e8c40=00f500;f0dfd924=00f600?scale=2?blendscreen=/ships/apex/apexT3blocks.png;6;20?multiply=00ffff?blendscreen=/ships/apex/apexT3blocks.png;-1;0?multiply=2eff2e00?scale=47?crop;1;1;44;44?replace;13a11e00=d3b0adff;14a11e00=edccc9ff;15a11e00=edccc9ff;16a11e00=edccc9ff;17a11e00=edccc9ff;13a21e00=d3b0adff;14a21e00=edccc9ff;15a21e00=edccc9ff;16a21e00=edccc9ff;17a21e00=edccc9ff;13a31e00=d3b0adff...

6. Head to Starbound. We use the following command, once you are on your designated character:
/identity set emoteDirectives
Hit space and paste all this giant code. Hit enter.

If you did everything correctly, we should end up with something like this:






Congratulations, you just have made through 2/3 of this guide. All those steps we made are good for making custom emotes and hair for vanilla races. (For example, you want to make different haircut and eye color, but want your human body to remain the same).
Next part is for those, who are not satisfied with vanilla type of body, texture and want something more unique.
3.3. Creating custom body textures (FezzedOne-Drawables Generator)
Now, we`ve come to the most difficult in terms of steps and accoplishment part of the guide. If you make those steps many times, you should probably do them almost automatically.

1. First of, we need to prepare the textures for our body, which is one spritesheet, consisting from:
  • Body
  • Legs
  • Arms
The example of how your spritesheet should be compiled is presented inside FezzedOne-Drawables-Generator as "bodytemplate.png". This is blank list, where you need to put all required sprites, combining them into one.






Here is breakdown of where to put what:
  • 1.Body and legs
  • 2.Front arm
  • 3.Back arm

For example of this guide, we are gonna complete our harpy with full body sprite:




Tip: Some may encounter a problem of lining up everything according to the dimensions. My advice is to use text of template as an anchor to line up everything. If you use edtiting software which supports layers (Such as Paintnet), you can make an upper layer, line up all sprites and delete the template layer.

As usual (here it is very important), delete any text, and anything that sticks out on white squares. There is an example of what should be deleted from the sprite:




In the end, we`ll have something like this:




2. After we are done with our spritesheet, save it as .png, and save inside FezzedOne-Drawables Generator folder, because here we are gonna use CMD. Head to the folder of FezzedOne-Drawables-Generator. You are gonna need one thing:
  • Path to this folder

For those, who don`t know how to get it, just click this little line:




Now copy that selected path - you are gonna need it later.




3. For now, there is no easy .exe file to execute whole generation. For now, we are gonna use CMD to generate our file. First of, open CMD (I hope you know how to do it. If not - google it)
Then, enter the following:

cd /d

Hit space, and paste your path. In my example, it looks like this:

cd /d F:\starbound\SB Programms\FezzedOne-Drawable-Generator-master

Now, you should be seeing something like this (yours will be different, depending on path):



Now, we need to execute the python file to do the work. Enter the following:

python drawable-gen.py yourtemplate.png --body

yourtemplate.png - is the name of your .png file you saved inside the folder.
Note: You can press TAB to make CMD search for suitable file.

If everything doen correctly, than this should pop up:

Drawables will be exported to yourtemplate.json

After this, search the folder for JSON file:


Inside this file, copy the code for your texture. It looks like this:

?scale=0.4?scale=0.7?scale=0.85?scale=0.925?scale=0.9625?scale=0.8?scale=0.8?crop;3;2;4;3?replace;b79b810f=ff00ff;a8896777=ff01ff;c28a638c=ff02ff;d39c6d7a=ff03ff;c78e638a=ff04ff;b4855b8d=ff05ff;b1875d82=ff06ff;b7a28b3f=ff07ff;9f7e5879=ff08ff;9d7f5b70=ff09ff;98785372=ff0aff;97774f77=ff0bff;9575516e=ff0cff;9a7e5a6a=ff...

4. Now, we come to starbound. Load up your desired character and input this command:
/identity set imagePath floran

This will keep your desired race intact, but will change the path game takes to load your textures.
Important note: In time of writing this guide, its only possible to make custom texture on floran textures. Therefore, we bypass race restriction, using different path for your character. Therefore, if you are making custom emotes with this body - choose floran race. You may look strange for a bit, but dont worry.



After you have changed your image path, input this:
/identity set bodyDirectives
Hit space and paste your code.
Note Your head will dissapear. Don`t forget to reapply custom emotes, as was written in Part 2. After fixing it, we are finally done!






That should do it. Now we end up with fully custom harpy, and you can use that character on vanilla servers and everyone will see what you have done!



Afterword
This guide is dedicated to a lot of people and work. Starbound community is slowly growing thin, many people leave this game for other projects. However, I feel that there are some people out there,who do posess a talent in art, cannot express themselves fully due to the lack of knowledge. This guide should help other people make their characters appear as unique as possible. Some will make completly custom characters, some are just gonna borrow assets from mods and use them - I dont blame them.
All of us here have different skill level and knowledge, but posess the spark of creativity. This guide`s goal is to give you that required knowledge to visualize whatever you made into the reality.


The only limit - is your own imagination and creativity.
Special thanks
That guide was inspired by many people, so I would like to adress them personally (If you do recognise yourself - take a cookie :3):
  • Sytrus Cirup - A good LUA-coding friend, who actually taught me about floran ImagePath, so that now we are not restricted by race choice. I think he is the main reason I made that guide in the first place.
  • Kae - the one and only. Creator of StarExtensions. Guide is heavily dependant on this stuff, so giving a regard to this wonderful piece of code is essential. Thank you.
  • Light - my dear old friend, who basicly dragged me inside this world of Starbound. Without you, I wouldn`t be here. You inspired me to do the art. You made many comissions for custom clothes/emotes. That gave me a portfolio to work with.
Also huge thanks to:
  • Hansby, for being a good guy he is.
  • Otto, for being an example of good knowledge of code and fabulous artstyle.
  • Krohitsu, for being supportive to me in general.
  • Alesart, for being brother-in-arts.
  • Grimblade, for being the most Evil tyrant he tries to be.
  • FezzedOne, Degranon, Silvefeelin, for providing us with those amazing programs.
And everyone in SB community, who still creates content for this little masterpiece!

F.A.Q.
To be added.
Change Log:
Version 1.0:
  • Release
10 Comments
FezzedOne Aug 5, 2024 @ 6:48am 
For those who can't or don't want to use StarExtensions (because you're on Linux, for instance), {LINK REMOVED} also has the /identity set command.
Ethan  [author] Apr 27, 2024 @ 5:55am 
@EarRaid!
There are commands listed on official StarExtensions page.
Usually, you change your sprites via /identity set "name of sprite".
EarRaid Apr 7, 2024 @ 7:33pm 
hey, for starextensions, how do i open the character editor
Ethan  [author] Mar 4, 2024 @ 5:07am 
@Berath_Herald
Yeah there is. In order to make your eyes glow (or any pixel actually) you need the Futara's Dragon Pixel Full Bright Shader. Therefore, you just replace required pixels with 99% opacity one.
Ethan  [author] Feb 18, 2024 @ 9:10am 
@GhostlySheet
Is the Python the exact version I written in the guide? It must be a 3.9.0 version only
Berath Herald Feb 17, 2024 @ 12:21am 
Hello there! Is there any way to make, eyes for example, to glow?
Samwych Feb 11, 2024 @ 5:25pm 
hi! thank you for this guide. i encountered an issue when creating custom body textures that i'm not sure how to resolve- when i try to execute the drawable-gen file in the drawable-generator-master folder, it launches for a second and then crashes. i've made sure to install python and pillow. i'm not sure if i'm missing something or i did something wrong. thank you in advance!
pocl.v Dec 8, 2023 @ 6:40pm 
Thank you for the amazing guide. I knew about hair, but I had no idea custom body textures were possible now! So cool to see that people are still interested in modding the game.
Ethan  [author] Nov 7, 2023 @ 7:24am 
W.I.P. I`ll get to it when I`ll have free time from work.
Rest in peperoni Nov 7, 2023 @ 1:14am 
Где вариант на русском?