This guide uses the Close Encounters galaxy file as a point of reference in explaining the galaxy setup located in ..\Sins of a Solar Empire\Galaxy folder.
At the top of the Close Encounters Galaxy file you'll see the following
TXT versionNumber 3 isBrowsable TRUE browsePictureName "ScenarioPicture-CloseEncounters" browseName "IDS_CUSTOMGALAXY_NAME_CLOSEENCOUNTERS" browseDescription "IDS_CUSTOMGALAXY_DESCRIPTION_CLOSEENCOUNTERS" isFirstCapitalShipIsFlagship TRUE randomizeStartingPositions TRUE planetArtifactDensity .15 planetBonusDensity .40 normalStartHomePlanetUpgradeLevel:Population 3 normalStartHomePlanetUpgradeLevel:CivilianModules 1 normalStartHomePlanetUpgradeLevel:TacticalModules 0 normalStartHomePlanetUpgradeLevel:Home 1 normalStartHomePlanetUpgradeLevel:ArtifactLevel 10 normalStartHomePlanetUpgradeLevel:Infrastructure 2 quickStartHomePlanetUpgradeLevel:Population 4 quickStartHomePlanetUpgradeLevel:CivilianModules 1 quickStartHomePlanetUpgradeLevel:TacticalModules 0 quickStartHomePlanetUpgradeLevel:Home 1 quickStartHomePlanetUpgradeLevel:ArtifactLevel 10 quickStartHomePlanetUpgradeLevel:Infrastructure 2 recommendedGameTypeCount 1 recommendedGameType "Solo" metersPerGalaxyUnit 61500.000000 pixelsPerGalaxyUnit 9.439996 useRandomGenerator FALSE galaxyWidth 112.000000 galaxyHeight 108.000000 nextStarNameUniqueId 1 nextPlanetNameUniqueId 9
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
Tells the game engine to read a TXT (text) file or a BIN file.
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.
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.
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.
Determines how many planet bonus' there are throughout the galaxy.
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.
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”.
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 galaxyHeightEdit
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.
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.
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: ???
Star Setup Edit
starTypeCount starCount 1 star orbitBodyTypeCount * designName "Star0" inGameName "" type "RandomStar" pos [ 50 , 50 ] radius 50.000000 planetCount 9
This value determines how many stars are present in your galaxy. Change the value accordingly to match the amount of stars in your galaxy.
This designates the start of values for a star.
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.
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.
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.
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.
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."
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 Setup Edit
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
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.
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.
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.
This determines the ownership of the planet. If set to 0, playerId 0 has this planet at the start of the game.
This should be self explaining. Set it to TRUE for homeworlds, FALSE for others.
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.
This designates the number of races that can start at this planet. Values are 1, 2 and 3.
raceItems and raceNameEdit
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.
This number must correspond with the number of listed itemNames for the given race. If there are seven itemNames, set this value to 7.
A guess is that this sets the percentage chance of the planet appearing at galaxy generation. 1 being 100%.
Phase Lanes and Connecting the Planets Edit
connectionCount 14 connection planetIndexA 1 planetIndexB 0 spawnProbability 1.000000
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.
This designates the beginning of the values of a connection
planetIndexA and BEdit
This determines the point of origin and destination between two planets you want to make a connection beteen. 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.
Player Setups Edit
playerCount 2 player designName "" playerId 0 teamIndex -1 startingCredits 1000 startingMetal 300 startingCrystal 100 overrideRaceName ""
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.
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.
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.
See Also Edit
Credits: Novaburst, Vandenburg, Aldarian, Lordkosc.