Aexrael

Galaxy Creation – Reference Guide

Galaxy Creation – Reference Guide

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.
161,199 views 64 replies | Pinned
Reply #26 Top
Are there any known debug "tricks" available? I ran into an error -- about SpawnProbability -- and can't seem to figure out where my mistake is. And its not something I can copy and paste the code to the forums for checking -- I'll e-mail the file, but posting the raw code in here would eat... well, a lot of space.
Reply #27 Top
Not really. Every star, planet and connection needs to have exactly one spawnProbability 1.000000.

There's not really much you can do if something is wrong besides checking it from hand.

Btw. you've got a pm with a mail addy.
Reply #28 Top
Not really. Every star, planet and connection needs to have exactly one spawnProbability 1.000000.


Wait, where do star's spawn probability go? I don't see any star spawn probabilities in my digging...
Reply #29 Top
connection
planetIndexA 8
planetIndexB -1
spawnProbability 1.000000
type "PhaseLane"
spawnProbability 1.000000
playerCount 2
player
designName ""


That's what I've called star's spawn probability. It could be that it is related to the connections, but I for myself connected it with the star, since it makes it easier to remember that it has to be at the end of each star.


Edit:
After checking out your mapfile, that's the one you're missing.

connection
planetIndexA 27
planetIndexB 54
spawnProbability 1.000000
type "PhaseLane"
playerCount 4
player
designName ""


Btw. how long did it take you to make the map? The amount of connections boggles my mind.


Edit2:

There are 3 further mistakes in the map file:
Twice raceItemsCount is wrong. Once it is 1 and the other time it is 0 when it should be 2.

Also you have 60 planets, not just 59 (you have numbered them from 0 to 59 -> 60 planets). So you need to change planetCount.

Last you've counted your amounts of connections wrong. You have 94 connections, not 100. So change connectionCount accordingly.

After I did those changes, the map run flawlessly. I'm now off to play and test it.
Reply #30 Top

Btw. how long did it take you to make the map? The amount of connections boggles my mind.


A few hours last night -- I'm going to write up a few addendums to this thread, on how to make life a lot easier when it comes to making maps.

Specifically, here it is now!

When you want to create a map for Sins, given the complete lack of an editor / GUI, you can either jump straight into the files and much around (presumably with some kind of plan in mind) or you can plan it out completely in advance -- a method that can make life much easier.

Take a piece of graph paper and create a border around a square area which easily divides into 100 on both sides -- or, if your map is larger, then make the division larger. Placing 0,0 at one side, mark in your coordinate axis. (I'm really lucky: the paper I have on hand not only has really small lines, like a millimeter apart each, but every 10th line is darker than the rest, creating a natural "internal" grid that I can work with -- my 100 x 100 map was 50x50, each square representing two units).

Using this map, draw circles of an appropriate size in wherever you want them, and place a letter inside the circle to represent what it is -- I used S for sun, H for homeworld, T for terran, X for pirates, N for neutral, and so on and so forth. Once you've done that (or concurrent with), go back and draw in any phase lane connections you like. Please try to leave room between planets for additional lettering -- your going to need it!

Once you've gotten the map mapped out, go back and -- in a systematic fashion -- label each planet with its co-ordinates, and its planet number (starting from 0!). Which is to say, next to each planet you'll have a label with the following:

X,Y,Z where X is the distance from the left edge of the map, Y is the distance from the bottom edge of the map, and Z is the planetary number -- started from 0 -- of the planet. Once you have all this information, its almost ridiculously easy to transpose the map into a text file.

Please note that I'm seriously considering writing a C++ program that, given the type, X, Y, and connection info of each planet, will write that code for you -- it won't do most of the map for you, but that much is within my power, I think. I'll probably end up writing it just for myself, but if there's a public demand I'll release the source code for sure (and if I can get the student editor I use to cooperate, I'll release a .exe version). It won't be much -- I know how to do text interface, not GUI -- but hopefully I'll know enough to make it work, which means that my suggested "graph paper" system will be useful even after the first editor comes out

Edit: OK, I just "fixed" my map and I've got a *lot* of work to do yet!
Reply #31 Top
OK, I think I have a "fixed" map version -- want an updated copy? And anyone else out there want a a copy?

Edit: OK, map fixed, map working... I even made a wittle thread about it!
Reply #32 Top
Im getting the areas misingl version number label
but ive put the version number right there

anyone know which version
Reply #33 Top
anyone know which version


It shouldn't really matter what number you have there.

TXT
versionNumber 1
isBrowsable TRUE
browsePictureName "ScenerioPicture-Flashpoint"


Something like this at the beginning of the file and it should be ok.
Reply #34 Top
G'day,

I know the guide is a tad outdated, I'll see if i can allocate some time too it in the coming days. Work has sucked my will dry over the past month and half so haven't had much time to maintain this and keep taps on changes with Beta 4.
Reply #35 Top
Hello,

I've skimmed through the posts above, and didn't see it so I'll just ask here.

What is the versionNumber for? Is that the map version (as in, mappers update their maps and increase it's version number), or the game version? (beta 1, 2, 3, 4)

Thanks,

Warpath
(Cardassian Union)
Reply #36 Top
game version, to make sure ur playing the right one
Reply #37 Top
Ahhh damn, that's not what I hoped for. =)

Thanks for the reply,

Warpath
(Cardassian Union)
Reply #38 Top
Forgive me for jumping ahead of this thread because I didn't have time to read it all, I will go back tonight though - but what do WeightedNonIcePlanet, WeightedRandomPlanet, WeightedColonizablePlanet planets really mean. I understand the NonIce (other variations) Random, and Colonizable, but what exactly is "weighted".

Thanks,
~JO
Reply #39 Top
JOCool69,

I think the code block in Reply #1 gives the specification of those options. That may have changed since that version, however. My guess is that the game will pick one of the lines under the option name with an even-chance random choice. Thus those lines that occur more than once under an option have a higher ("weighted") chance of selection than those which occur only once.
Reply #40 Top
Is there a database listing of what each weapon, ship, factory, research, etc. is available to the .galaxy files? would be nice to set my own custom fleet, maybe have some "captured" enemy ships I can use as well, or modify the starting research for a player. That so needs to be pinned to this topic or at least stuffed into a comprehensive file we can all download and use for our own custom galaxies. even galaxy forge still has limits (still haven't found template files yet), so this will allow us to fill in the rest of the details.
Reply #41 Top
Is this guide still accurate? The non-random maps that ship with the game seem to use a different format for player ownership of planets:


From FlashPoint.galaxy:

player
designName "Player0"
inGameName "Player0"
overrideRaceName ""
teamIndex -1
startingCredits 3000
startingMetal 800
startingCrystal 250
isNormalPlayer TRUE
isRaidingPlayer FALSE
isInsurgentPlayer FALSE
themeGroup "PlayerTech"
themeIndex 0
pictureGroup "PlayerTech"
pictureIndex 0

planet
designName "Planet8"
inGameName ""
type "TerranHome"
pos [ 69 , 32 ]
owner "Player0"
isHomePlanet TRUE
startingUpgradeLevelForPopulation 0
startingUpgradeLevelForCivilianModules 0
startingUpgradeLevelForTacticalModules 0
startingUpgradeLevelForArtifacts 0
planetItems
templateName ""
subTemplates 0
groups 0
spawnProbability 1.00000
useDefaultTemplate TRUE


That said, no matter what I do, I still can't get my non-random map to work. It doesn't crash the game like it used to, but now it starts a game with everybody dead and no sun or planets.

When I tried adding "playerId #" lines to planets and players, it started crashing again, so I'm pretty sure the guide is out of date.
Reply #42 Top
Guide hasn't been updated since Beta I'm afraid. I was holding out for the Forge tools before I even considered dabbling with updating the guide.
Reply #43 Top
sorry to interrupt just a quick question is there no possible way to connect to diffrent star systems??
for instance if i want to make 2 diffrent star systems and a player on each star system how would i make that game and have the possibilty for them to meet ? if at all possible
Reply #44 Top
All stars are automatically linked to each other. There are no inter-system phase lanes.
Reply #45 Top
stupid me i just assumed that if they dont apear in the file and not in SF they dont exist :D and i didnt even try playing it ingame
basicly i have to connect at least one of the planets to the star and then i can fly from one star to the other and through that planet enter the system -a bit wierd as this game is base on lanes and the star is in the middle it would make more sense moving in through the outer rim of the star system but i guess that will do

thnx
Reply #46 Top


I changed the Aurelian sector map so that the Advent and the Vasari have each their own system (blue star for Advent, green for Vasari) while the TEC factions share 2 yellow stars systems. My Advent home world is a desert planet (coord 105, 165). If I open the galaxy file in a text editor Player 0 has indeed its homeworld at 105,165 in a star system with a blue star at its center. Yet whenever I start a game with that map I end up in one of the TEC systems with a terran world.

So what good is the Galaxy Forge tool if the changes I make are never displayed ?? That is when the sordid game doesn't crash on me when I try loading it...



G.
Reply #47 Top
What is a "Scenario Template" and how can I use it?

How can I create a fleet of ships for AI's when the AI starts with the planet? say I want "player3" which owns "planet43" (a desert planet) to start with 2 capitals, 12 frigs, and 4 cruiser of a particular tech/race?

How can I designate player start points? not just assigning planets to player0 or 1/2/3/4/etc... I want particular players to start in particular places.

Reply #48 Top
Is there anyone in the know ever responding to our queries on this board ?


I've stoped playing this game since it won't let me play the changes edited using the Forge but I'd really like to know why this is the case.




G.
Reply #49 Top
how about a more advanced GalaxyScenarioDef.galaxyScenarioDef file with more items in it? Seems a bit limiting to not be able to place any ship/structure available.
Reply #50 Top
I would like to change what resource asteroids surround each planet (crystal and metal). how would i do this? also, how do i change what forces are on neutral planets (how do i make the planet colonized by a neutral force?). sorry about the random post but i cant seem to find a better place to post.