First of all, you will need some basic modding knowledge. This isn't going to be a tutorial from nothing, you should download the modding Tutorials and Tools from the downloads section and get accustom to editing files successfully first. You will also need the reference data for this.
I will refer to a planet named
EXAMPLE in any examples I give.
KeyCount NumberAbove every list in all the files in Sins there is a number of exactly how many items are in that list. Whenever you add to this list, you must add to the count number. This applies for EVERY LIST you edit. Some have 'num' instead of 'Count', but it has the same purpose.
StringsWhen you add a new file, you must link its StringID references to the english.str file. So if you create a new planet, or ability, you must update its string ID's and add these to the string file. The string file reads the reference ID and displays what you have written below in the game. There is a Count number at the very top of this file, above 5,000 I believe.
TutorialTexturesFirst things first, you need a texture. I use '
PlanetDesert01-cl.DDS' and '
PlanetDesert01-da.DDS' as a base then heavily modify them to get the planet I want. The '
cl' texture is the sunny side of the planet, the '
da' texture is the dark side of the planet. The Alpha channel on the '
cl' texture translates to reflectivity, so black is non reflective surfaces, like rock, earth, sand, etc, and white is fully reflective, like ice, snow, and to a certain degree; water. Grey would be used for grass and vegetation, and swallow water, etc.
The square sections at the top and bottom of the planet textures are the poles. Imagine a circle in that square, and that is what is shown at the pole sections of the planet. The entire mid-section wraps right around the planet and forms most of what you see as the planet's surface.
MeshesYou will now need to copy a new mesh and name it what you like. Name it, like the texture, in a similar way to the other files;
Planet_EXAMPLE_0.MESH. Now open this new mesh and where it says '
DiffuseTextureFileName' and '
SelfIlluminationTextureFileName' change the texture files they refer to so they read your '
cl' and '
da' texture files respectively.
Planet FileOnce again, copy an existing planet file and change the name and the stats to what you want, and don't forget the Count numbers. The stats are pretty self explanatory, and if you don't understand one, change it and try it, and don't post unless you can't see any differences after some time of looking.
Firstly, you will need to link this new planet to your new mesh. Where it has meshInfoCount, change it to 1. Then Remove all the other meshInfo sections below, apart from one. In the last remaining one, change the meshName to your new mesh. Now, just above that, enter your new string ID, and then put that into the english.str file, altering the Count number in there too. You can also edit the Cloud colour here, and the glow of the planet. These use 8 digits colours, which is basically a hex code (search Google for references), with 2 on the front, ingore the first 2 digits, and add your hex code there.
IconsNow comes the tricky bit, the custom icons. In the meshInfo, where it has this section:
hudIcon "HUDICON_PLANET_EXAMPLE0" 1 smallHudIcon "HUDICONSMALL_PLANET_EXAMPLE0" 2 infoCardIcon "INFOCARDICON_PLANET_EXAMPLE0" 3 mainViewIcon "MAINVIEWICON_PLANET_EXAMPLE0" 4 undetectedMainViewIcon "MAINVIEWUNDETECTEDICON_PLANET_EXAMPLE0" 5 picture "PICTURE_PLANET_EXAMPLE0" 6
You will need to change them to your planet's name. Now go into the
Textures folder and open the
Icons_planets.TGA file. Make you new planet icons, and don't forget the Alpha channel; black is invisible in-game, and white is fully visible. It is easiest to copy the icons from other planet, along with their Alpha Channel. Check the numbers and picture to see which is which.

Once this is done you will need to go into the Window folder and open the following files:
HUDIcon-Planet.BRUSHESInfoCardIcon-Planet.BRUSHESMainViewIcon-Planet.BRUSHESPicture-Planet.BRUSHESNow in the 4 .BRUSHES files above, at the bottom of each, copy one brush section and rename it to your planets name. Each brush has 4 separate numbers like this (all measured in Pixels);
pixelBox [
### ,
### ,
### ,
### ]
The X-axis co-ordinate of the top left corner of icon.The Y-axis co-ordinate of the top left corner of icon.The width of the icon.The height of the icon.Now, combine all of the above so you have included all the icons as brushes, in each of the files. You may notice there are only 4 files, but 6 references in the planet file. The '
HUDIcon-Planet' and the '
MainViewIcon-Planet' files contain 2 brushes for each planet. '
HUDICON' and '
HUDICONSMALL' are both in the '
HUDIcon-Planet' file, and the '
MAINVIEWICON' and the '
MAINVIEWUNDETECTEDICON' are both in the '
MainViewIcon-Planet' file.
And don't forget to change the Count numbers in each of these 4 files!
GalaxyScenarioDefThis is the most important file for adding a new planet. It has many different sections, so use the find function (Ctrl+F in Notepad) to location the section I refer to.
planetTypeHere you can add your planet to existing categories, like colonisable, uncolonisable, random, etc. All you need to do for this is take the name of your planet(
Example) and add it below the others in the list under the category you want. Then change the '
orbitBodyTypeCount'.
To add a new category, it is easiest to copy one, and add it at the bottom of the
planetType section. Then change its stringID to your planets stringID (
IDS_PLANETTYPE_EXAMPLE), this should read and display the same name as you planet. Now add your planet name to the list below, and make it the only one, if you want this category to be only for your planet. Don't forget the '
orbitBodyTypeCount'
AND the '
planetTypeCount' right at the top of the section.
orbitBodyTypeThis section is the last thing you need to add to. Same procedure as above, copy one and paste at the bottom of the section, then change the '
typeName' to the name(
Example) you used the in the above section. Now add the planet's file name without the .ENTITY extension in the '
entityDefName' slot.
For the template, I strongly recommend adding one of the templates used by the original planet ("
Template:DefaultStart_Terran"), or leaving it blank. If you want to add your own template, you will have to do it outside of this tutorial, as it is complicated. Basically though, if you really want to, copy one, then change the name and see if it works. Then make slight alterations to what ships are there, and slowly make it more complex, testing it after every change. And don't forget the counts.
Finally, change the '
orbitBodyTypeCount' and you should be good to go.
I hope this helps would-be modders make their own planets, as the ridiculous amount of requests I get for new planets in my Mod is just getting too much. I do appreciate the ideas, but, quite frankly, most are just another variant of an existing one, or something that has to be modeled, which most of you should know, I cannot do at the moment.
Good luck, and any questions, please post. If you post something that has been mentioned, or something you can test, I will probably not answer, and if I do you won't like what I say. Basically;
Use common Sense