Stellaris Custom Ship Guide
Stellaris Custom Ship Guide
find was out-of-date forum posts and broken links. The general opinion seems to be that
making shipsets is an arduous, byzantine and downright impossible process.
Not so. The pieces are far flung and obscure, but they are there, and I have brought them
together to create an updated custom shipset tutorial for Stellaris that does not require
expensive software or years of modding experience.
● Google Chrome
● JoroDox Tools: An applet that installs to your chrome browser. Essential.
● A text editor. I recommend Notepad++, as it formats code in text files and can have
multiple files open in tabs.
● Blender, a free 3D modelling program with native .dae support.
● An image editor that can edit .dds files. I personally use Photoshop, but there are
free programs, such as GIMP.
○ Photoshop requires a .dds plugin to save into the right format, available here
○ Gimp has one too, available here.
While not strictly necessary, I highly recommend downloading my example mod folder, as
the tutorial assumes you are using the folder structure.
Alternatively, it is available as a Steam Workshop mod, and you can copy its contents from
your workshop folder, but it may take some looking around for.
Contents:
This tutorial will progress in a step-by-step process for creating a new shipset from scratch.
This is not a tutorial on 3D modelling. Modelling, textures; this tutorial assumes you have
them already prepared. I’m using Blender because it is both free, and capable of importing
and exporting in many formats.
First you will want to create a local mod. Launch the Stellaris Launcher and scroll to the
Mods section. Click on the Mod Tools button.
Name your mod whatever you want and pick whichever tags you need. I recommend
‘spaceships’ and ‘graphics’. Press the create mod button, and enable your mod.
Replace ‘test_01’ with whatever shorthand you want for your mod. ‘Alpha_01’, ‘dog_01’,
‘asdf_01’, it doesn’t matter, so long as you are consistent. Whatever you replace ‘test_01’
with, you will need to replace every instance of it with the same thing.
You can leave everything else in this file as it is, unless you want to change the fallback
shipset to another type.
Species Classes:
Replace ‘TestFull’ with anything. Then replace the “test_01” with whatever you named them.
GFX/Models/Ships:
Here you will have four files, two .asset, two .gfx. Open them all in your text editor. My
prepared files will have everything set up for you, save for the specifics of the meshes and
locators. For now, simply replace all instances of ‘test_01’ with the same prefix you used for
the graphical culture. Ctrl+F and Replace All is your friend.
In the settings tab of JoroDox, select the mod directory where you have exported the .dae
file of your model. Then go into the Explore tab. On the left will be a breakdown of the
directory. Find your .dae model and click on it.
Now press the big blue Convert to PdxMesh (.mesh) button. This will create a .mesh file.
Scroll down and you will see two headings. You can ignore the “run .anim animation” section
for now, what we want to focus on is the meshes section.
Depending on the amount of objects in your 3D model, you will have that many meshes. The
textures section has three dropdown menus. The contents of these drop downs will be any
.dds files in the directory.
Make the Diffuse selection your texture .dds file. You can either select it from the drop down,
or select -Other- and type the name of the file in the input box that will appear.
Do the same for the normal and specular maps your model uses. If your model does not
have any, or you don’t know what those mean, just put ‘nonormal.dds’ and ‘nospec.dds’ in
the normal and specular sections.
Now change the Shader selections for all meshes to -Other- and type “PdxMeshShip” in the
input box for each of them. In the end it should look something like this:
Once you’ve set all meshes and shaders, you can press the save mesh changes to file
button at the bottom. You will be left with a .mesh file that you can now bring into the game.
However, there is still more to do.
Depending on which section of which tier of ship, be it a corvette, or the front of a battleship,
you will want to change the name of the .mesh file to match the table below. This will
correspond with an entry in the ships_meshes.gfx file.
Corvette
_corvette_S3
_corvette_M1S1
_corvette_S1
Destroyer
_destroyer_bow_L1 _destroyer_stern_S2
_destroyer_bow_M1S2 _destroyer_stern_M1
_destroyer_bow_S3
Cruiser
_cruiser_bow_M2 _cruiser_mid_M3
_cruiser_mid_M2S2
Battleship
_battleship_bow_M2S4 _battleship_mid_M4SHB
_battleship_bow_M3S2 _battleship_mid_S4LHB
_battleship_bow_XL1
Titan
_titan_bow
Colossus
Strike Craft
Civilian Ships
_colony
For the rest of this tutorial, the model I’m using will be assigned as the three small weapons
corvette model. Thus, I name the .mesh file “test_01_corvette_S3.mesh”.
Make sure that your mod is enabled, and all files have been saved, and all instances of
“test_01” have been replaced with your culture’s prefix.
Start up Stellaris and start a new game. Either edit an existing species or make a new one. If
all has gone well, your new shipset should appear in the ships appearance section.
You may see a test block or vanilla ship. This will be because your shipset lacks a science
ship mesh. What’s important is that you select your shipset, and start up a new game.
I recommend using the console to give you all technologies, with the
‘research_all_technologies’ command. Use the ship designer to check if your ship
component is in the game.
Alternatively you can use the spawn_entity command to directly spawn in your component.
Use the command ‘spawnentity test_01_corvette_S3_entity’, of course replacing ‘test_01’
with your ship’s culture, and ‘corvette_s3_entity’ with the section from the
ships_entities.asset file you want to test.
If all has gone well, save the game so you can jump back in quickly with the resume
function, then close the game.
Open the “test_01_weapons_entities.asset” file. If you do not want physical turrets to appear
on your ships, leave “test_01_turret_invis.mesh” as the file for each of the turrets. Otherwise,
remove ‘_invis’ from each entry.
Open the “test_01_ships_entities.asset” file again. Now you can look at the weapon locators
section in each entry.
Locators tell the game where the weapon models (i.e. turrets) will sit on the ship. While not
strictly necessary, without locators all weapons will sit at the origin point, and this may or
may not be acceptable.
This part of the process takes some time. You will need to edit the { 0 0 0 } section in the
locator details to position the ship’s weapons along your model. I advise editing them all at
once and jumping back into the game to see if they’re in the right spot. Eventually you can
get the locators in the right spot with time.
——-
And that should be it. Creating a full shipset takes time, but it is rewarding to see your
handiwork zooming across space. I encourage you to play around with the numbers to see
how they work. I’m afraid I’m not the best at tutorials or explanations; and I learn best by
fiddling with the workings of things and seeing how they break, and how to fix them, so my
understanding of things is somewhat… fragmented.
Still, I would be happy to edit this tutorial to make it more concise and/or clear. I hope this
can help anyone in some way, and most of all, I hope to see more shipsets mods floating out
there!