Galaxy Creation – Reference Guide
I hope this reference guide helps others in making some great galaxies. I strongly suggest you start small, and learn the basics instead of jumping straight in to making 5 star setups with 40 planets from the beginning. Use the default galaxies for reference and follow the
KISS Principle and you'll be just fine.
This guide uses the Close Encounters galaxy file as a point of reference in explaining the galaxy setup. You can find it in ..\Sins of a Solar Empire\Galaxy folder.
At the top of the Close Encounters Galaxy file you'll see the following
-------------------------------------------
TXT
versionNumber 0
isBrowsable TRUE
browsePictureName "ScenerioPicture-CloseEncounters"
browseDescription "IDS_CUSTOMGALAXY_DESCRIPTION_CLOSEENCOUNTERS"
hasStartingPlanetPirates TRUE
isFirstCapitalShipIsFlagship TRUE
artifactCount 0
planetBonusCount 3
recommendedGameTypeCount 1
recommendedGameType "Solo"
useRandomGenerator FALSE
galaxyWidth 112.000000
galaxyHeight 108.000000
metersPerGalaxyUnit 35000.000000
pixelsPerGalaxyUnit 9.439996
nextStarNameUniqueId 1
nextPlanetNameUniqueId 9
-------------------------------------------
isBrowsable: This sets whether your galaxy will be listed with the other galaxies currently available in the Galaxy Browser, such as the Aerolian Sector, Convergence, and so on.
browsePictureName: If set, it displays the picture in the in-game Galaxy Browser when you have a galaxy selected. It loads a .tga file from the ..\Textures folder. For the Close Encounters galaxy as shown above, it loads and displays the ScenerioPicture-CloseEncounters.tga file.
You should be able to make new .tga images using Photoshop, GIMP, or some other imaging program with support for .tga.
browseDescription: This text string is loaded from ..\String\English.str.
It displays a brief description of the selected galaxy in the browser. The displayed text will appear below the .tga picture. You are however able to freely write your own text here without adding it to the English.str file.
An example being "In a Galaxy far far away..." ect.
hasStartingPlanetPirates: This sets whether all non-home worlds/Gas Giants/Plasma Clouds ect. starts with Militia forces present or not.
artifactCount: Determines how many artifacts there are in the galaxy. Values are between 0-10, they are randomly distributed across the galaxy.
planetBonusCount: Determines how many planet bonus' there are throughout the galaxy.
recommendedGameTypeCount #: This sets how many recommended game types that will be listed in the Galaxy Browser. It'll be displayed on the right side of the .tga picture. Change this value accordingly to the number of GameTypes listed.
recommendedGameType: This will display the various GameTypes available for the selected galaxy in the Galaxy Browser. It's displayed to the right of the tga picture and shows up as "Best for:".
Parameters are “Solo”, “TwoTeamsOfTwo”, “TwoTeamsOfThree”, “TwoTeamsOfFour”, “TwoTeamsOfFive” and “FFA”.
useRandomGenerator: This sets whether the Galaxy is randomly generated or not. If set to True it will randomly generate the galaxy according to certain values as shown in the example below.
-------------------------------------------
isBrowsable TRUE
browsePictureName "ScenerioPicture-RandomLarge"
browseDescription "IDS_CUSTOMGALAXY_DESCRIPTION_RANDOMLARGE"
hasStartingPlanetPirates TRUE
artifactCount 3
planetBonusCount 12
recommendedGameTypeCount 1
recommendedGameType "FFA"
useRandomGenerator TRUE
planetCount 30
starCount 5
recommendedPlayerCount 10
playerStartingCredits 1000
playerStartingMetal 300
playerStartingCrystal 100
-------------------------------------------
galaxyWidth and galaxyHeight: These two determine how big the galaxy is. And in helping you visualize the layout, imagine the X and Y axis on a piece of paper. Along the bottom line you have the X axis or the Width, and along the Y axis you have the Height.
If you set those values to 100 each, you'll have values of 0-100 along the X axis, and 0-100 along the Y axis. If you write that down on a piece of paper, it'll be easier in mapping out your galaxy with planets. If you set them to anything else, you increase or decrease the width and height of your galaxy accordingly.
Here's a crude illustration of the Width and Height on the X and Y axis.
metersPerGalaxyUnit, pixelsPerGalaxyUnit: A guess at these values function is believed to determine the length of the Galaxy Units in meters, and how many pixels represents one Galaxy Unit. (duh)
It's a bit like reading a map, two inches on a map may represent 10 kilometers in reality. It's not something that's recommended to tamper with as it seems better off left alone.
nextStarNameUniqueId and nextPlanetNameUniqueId: ???
-------------------------------------------
starCount 1
star
designName "Star0"
inGameName ""
type "RandomStar"
pos [ 50 , 50 ]
radius 50.000000
planetCount 9
-------------------------------------------
Moving on in the Close Encounters galaxy file, you'll see text describing a star setup.
starCount: This value determines how many stars are present in your galaxy. Change the value accordingly to match the amount of stars in your galaxy.
star: This designates the start of values for a star.
designName: This is a unique name of the star throughout the galaxy file, use Star0 for your first star, Star1 for your second, and so on. It is used later when making phase lane connections.
inGameName: You can use this field to name the star something uniquely instead of relying on the random generator. If you leave the field blank it'll generate a name randomly.
type: This determines if the star is generated as a specific color star such as a yellow, red, blue or green or whether it's generated randomly. Parameters are YellowStar, BlueStar, GreenStar, or RandomStar.
pos: This is the position along the X and Y axis of the star. If you set the galaxy to 100 by 100 Width and Height, and the star at [ 50 , 50 ], it'll be positioned dead center of the entire galaxy.
radius: Therax Quote "I believe the "radius" parameter attached to stars determines when the ships switch to the higher speed. If they are closer to the star than "radius", then they are considered to be inside the star system, and use the slower interplanetary speed."
planetCount: Set his value according to how many planets surround the star. If you have a star with 20 planets attached to it, set the value to 20.
-------------------------------------------
planet
designName "Planet1"
inGameName ""
type "HomeTerranPlanet"
pos [ 51 , 58 ]
playerId 0
isHomePlanet TRUE
isPiratePlanet FALSE
startingUpgradeLevelForPopulation 0
startingUpgradeLevelForCivilianModules 0
startingUpgradeLevelForTacticalModules 0
startingUpgradeLevelForShips 0
startingUpgradeLevelForArtifacts 0
raceItemsCount 1
raceItems
raceName "Tech"
itemCount 7
itemName "Tech:Module:FrigateFactory"
itemName "Tech:Module:CapitalShipFactory"
itemName "Tech:Module:MetalExtractor"
itemName "Tech:Frigate:Constructor"
itemName "Tech:Frigate:Colony"
itemName "Tech:Frigate:Scout"
itemName "Tech:Frigate:Light"
spawnProbability 1.000000
-------------------------------------------
Next, we move on to the making of a planet.
designName: this is the unique name for the planet in this galaxy setup. You'll need this value later when making phase lane connections. Name the first planet 0, the second 1, the third 2, and so on.
inGameName: You can use this field to name the planet something uniquely instead of relying on the random generator. If you leave the field blank it'll generate a name randomly.
type: This determines the type of the planet. The variables are Asteroid, AsteroidBelt, DeadAsteroid, DesertPlanet, HomeDesertPlanet, GasGiant, IcePlanet, MagneticCloud, PirateBase, PlasmaStorm, TerranPlanet, HomeTerranPlanet, VolcanicPlanet, WeightedNonIcePlanet, WeightedRandomPlanet, WeightedColonizablePlanet, AsteroidOrDead, RandomPlanet, RandomTruePlanet, RandomUncolonizable or if left blank it will be random.
playerId: This determines the ownership of the planet. If set to 0, playerId 0 has this planet at the start of the game.
isHomePlanet: This should be self explaining. Set it to TRUE for homeworlds, FALSE for others.
isPiratePlanet: This sets whether the planet is owned by pirates or not. You can make planets using this that aren't the pirate base, but instead a regular planet controlled by the pirates.
startingUpgradeLevelForPopulation
startingUpgradeLevelForCivilianModules 0
startingUpgradeLevelForTacticalModules 0
startingUpgradeLevelForShips 0
startingUpgradeLevelForArtifacts 0
These values determines the state of the upgrades for the planet at the beginning of the game. If Population for example is set to 2, the planet will already have that upgrade when you colonize it. Home worlds automatically come with startingUpgradeLevelForPopulation at 1 and UpgradeLevelForArtifacts at 2.
Adjusting these values doesn't work at the moment however.
raceItemsCount: This designates the number of races that can start at this planet. Values are 1, 2 and 3.
raceItems and raceName: Lists the available races that can initially start on this planet. Tech, Psi, and Phase each representing one of the three races in Sins. It can be used to make exclusive planets which only one race can start at. It also determines available starting research and ships the planet owner starts with.
You can find the values for these in the GameInfo folder. All though they will be written differently then in the Galaxy file. For example the itemName "Tech:Frigate:Constructor" will be called FrigateTechModuleCostructor in the GameInfo folder. Or the itemName "Tech:Frigate:Light" will be called FrigateTechLight.
For a galaxy example, check the Areolian Sector file.
itemCount: This number must correspond with the number of listed itemNames for the given race. If there are seven itemNames, set this value to 7.
spawnProbability: A guess is that this sets the percentage chance of the planet appearing at galaxy generation. 1 being 100%.
-------------------------------------------
connectionCount 14
connection
planetIndexA 1
planetIndexB 0
spawnProbability 1.000000
-------------------------------------------
Next we move on to phase lanes and connecting the planets.
connectionCount: Thisdetermines the overall number of connections within the star. If the value is set to 14, it means the game expects there to be 14 connections between the various planets in your star system. This must be set precisely.
connection: This designates the beginning of the values of a connection
planetIndexA and B: This determines the point of origin and destination between two planets you want to make a connection between.
Example, if you set planetIndexA to 1, and planetIndexB to 2, you have made a phase lane connection between the planets with designId 1 and 2. Other values available are -1 to designate a connection to the Star in the system.
-------------------------------------------
playerCount 2
player
designName ""
playerId 0
teamIndex -1
startingCredits 1000
startingMetal 300
startingCrystal 100
overrideRaceName ""
-------------------------------------------
And last, there's player setups.
playerCount: This determines how many players the game expects there to be. If you set this to 4, you should make 4 players accordingly.
What's important here really, is the playerId, this is the value you use for giving players their homeworlds. Make sure when you make a homeworld, you give it a playerId that matches with one of the players you've made at the end here.
teamIndex: This makes it possible to setup pre-set teams, for example Player 1 and 2 are set as the same team, and player 3 and 4 are set as the other team. This however can be changed when starting the game, as normal. Use values 0-9 to represent team 1 to 10.
Starting resources is self explaining.
overrideRaceName, Aldarian and I believe this to effectively force players in to playing specific races. It's not possible to test currently however, since even if you change it, apparently you can only select Tec. (duh) Which might be explained by the lack of the other two races currently.
Credits: Novaburst, Vandenburg, Aldarian, Lordkosc.