We'll use Stars of the Pilgrim (SOTP) and JBW's Pale Blue Light tutorial mod (PBL) as examples. To get the best use of this get the PBL mod from xelerus.de http://xelerus.de/index.php?s=mod&id=1505, a text editing program like Notepad++ or Sublime Text and a decompiled version of SOTP which is a folder called "Transcendence_Source" (search the forum/Multiverse for info on how to do this with Transdata).
Basically what we'll cover here is how to create the systems you want, how the Galactic Map is drawn and how to set up stargates so they go to the system you want. It's not everything you need to know but will help to decipher things.
All the adventures (as opposed to extensions which add on to an existing adventure) have their own star topology. SOTP has about 25 star systems and PBL has 2. They are both set up in the same way.
Firstly a UNID is set up for the SystemMap. Note that this isn't the system map you get in the game where you see all the stations and asteroids in a system. This is the map of all the systems in the adventure so the game knows what stars exist, where they are and how they are connected. Like what you see in the Galactic Map.
These examples are taken from ExtSystemMap.xml in PBL and HumanSpaceMap.xml in SOTP.
Code: Select all
<SystemMap UNID="&smPBLSystemMap;"
name= "Space"
backgroundImage= "&rsWatsonGalaxyMap;"
initialScale= "100"
minScale= "50"
maxScale= "100"
>
Code: Select all
<SystemMap UNID="&smHumanSpace;"
name= "Human Space"
backgroundImage= "&rsHumanSpace;"
initialScale= "200"
minScale= "100"
maxScale= "250"
lightYearsPerPixel= "0.4"
stargateLineColor= "#6b8299"
>
backgroundImage= is the important one. Scroll down to the bottom of each of these files. You will see a line of code starting with <Image UNID=".
For PBL it's
Code: Select all
<Image UNID="&rsWatsonGalaxyMap;" bitmap="Resources\WatsonGalaxyMap.jpg" loadOnUse="true" />
Code: Select all
<Image UNID="&rsHumanSpace;" bitmap="Resources\HumanSpace.jpg" loadOnUse="true" />
The other lines of code deal with how big the Galactic Map is, how much you can zoom it in or out and (I assume) what color the line between systems is (I didn't know you could change that until now!).
Next comes <TopologyCreator> This is the meaty bit. This is where you tell the game how many star systems you want in the adventure and how they are connected.
For PBL we have:
Code: Select all
<TopologyCreator>
<Stargate from="SE:Outbound" to="DL:Inbound"/>
</TopologyCreator>
<Node ID="SE" x="0" y="0">
<System UNID= "&ssWatsonsStar;"
name= "Watson's Star"
level= "1"
attributes= "humanSpace; newBeyond; mainline;"
/>
</Node>
<Node ID="DL" x="100" y="0">
<System UNID= "&ssDelirium;"
name= "Delirium"
level= "3"
attributes= "humanSpace; newBeyond; mainline;"
/>
</Node>
Inside <NodeID="SE", two lines down is "name= "Watson's Star". So in the Pale Blue Light mod "SE" is a convenient way for the game to say "Watsons's Star".
And for <Node ID="DL", the name is "Delerium"
So from this the game will create 2 stargates. One outbound from SE, which is the system called Watson's Star,which will connect to the inbound stargate in the Delerium (DL) system. And as you see in the mod there are only two systems with one stargate connection between them. Also every individual stargate must be called something different. You can't have two stargates called "SE:Outbound" but you can have two stargates leading out from a system if they are called different names.
In SOTP it gets a bit more complicated because (among other reasons) there are so many more systems to connect.
This time the code comes from StarsOfThePilgrim.xml.
Code: Select all
<SystemMap UNID="&unidPartISystemMap;"
displayOn="&smHumanSpace;"
>
<TopologyCreator>
<Node ID="NewBeyondMainline"/>
<Stargate from="CP:Outbound" to="SK:Inbound"/>
<Node ID="UngovernedTerritoriesMainline"/>
<Stargate from="C9:Outbound" to="A1:Inbound"/>
<Node ID="OuterRealmMainline"/>
<Stargate from="G2:Outbound" to="EndGame"/>
<Node ID="Elysium"/>
</TopologyCreator>
So here rather than linking systems, areas are linked. Note that except for Elysium the groups have a stargate connection after them. eg "CP:Outbound" to="SK:Inbound". We'll refer back to these later.
Now if we head back to HumanSpaceMap.xml we find the rest of the systems. This is only the code for the NewBeyond section, the Ungoverned and Outer sections have similar sections of code further down in the file.
Code: Select all
<NodeGroup ID="NewBeyondMainline">
<Stargate from="SE:Outbound" to="C1:Inbound"/>
<Stargate from="C1:Outbound" to="C3:Inbound"/>
<Stargate from="C3:Outbound" to="C3A:Inbound"/>
<Stargate from="C3A:Outbound" to="BA:Inbound"/>
<Stargate from="BA:Outbound" to="C4:Inbound"/>
<StargateTable>
<Group chance="50">
<Stargate from="C4:Outbound" to="C4A:Inbound"/>
<Stargate from="C4A:Outbound" to="CP:Inbound"/>
</Group>
<Stargate chance="50" from="C4:Outbound" to="CP:Inbound"/>
</StargateTable>
</NodeGroup>
Just below this code you find
Code: Select all
<!-- ERIDANI -->
<Node ID="SE" x="-15" y="-66">
<System
name= "Eridani"
level= "1"
attributes= "humanSpace, mainline, newBeyond"
>
<System UNID="&ssStartonEridani;"/>
</System>
In this lot of code we again see "SE" as a Node ID. But this time if you look at the name= it says "Eridani". "SE" was also used in PBL but because SOTP and PBL are completely separate adventures this can work. But only one NodeID can be called "SE" in each adventure. The next lot of code is for the Rigel Aurelius system and it has a Node ID of BA. Then comes Charon (CP) and St Katherines (SK). These systems appear in every SOTP game and are always laid out in the same way.
So looking at the stargate code above we see a stargate linking SE, which is Eridani, to the C1 system. "But what's the C1 system called", you ask? Well it depends. Below the St Kats code there is a section headed MINOR NEW BEYOND SYSTEMS. It has info on the C1, C3, C3A, C4 and C4A systems, all of which are in the above stargate list.
Here's the C1 code.
Code: Select all
<Node ID="C1" x="18" y="-139">
<System
level= "1"
attributes= "humanSpace, mainline, newBeyond"
>
<Table>
<System chance="25" name="Groombridge" UNID="&ssEarthSpaceStandard;"/>
<System chance="25" name="Lalande" UNID="&ssEarthSpaceRedDwarf;"/>
<System chance="25" name="5 Indi" UNID="&ssEarthSpaceAsteroids;"/>
<System chance="25" name="Foum Alhaut" UNID="&ssEarthSpaceDesert;"/>
</Table>
</System>
</Node>
Looking back at the list of stargates we get a topology which will look like this
SE Eridani (always occurs)
C1 (maybe named Groombridge, 25% chance)
C3 (maybe named Cairn, 25% chance)
C3A (maybe named Lacaille, 50 % chance; because there are only two name options in the code with chance=50)
BA Rigel Aurelius (always occurs)
C4 (maybe named Jotunheim, 25% chance; but there are 5 choices with chances ranging from 8% to 25%)
After C4 there is a bit more code trickery. Observant players will have noticed that sometimes there is one system between Rigel and Charon and other times it is two systems.
Extracted from the stargate list above is the relevant code:
Code: Select all
<StargateTable>
<Group chance="50">
<Stargate from="C4:Outbound" to="C4A:Inbound"/>
<Stargate from="C4A:Outbound" to="CP:Inbound"/>
</Group>
<Stargate chance="50" from="C4:Outbound" to="CP:Inbound"/>
</StargateTable>
So to finalise the stargate list for the New Beyond area we add
C4A (50% chance this system will appear in the game), and
CP Charon (always occurs)
Now we have to go back to the <TopologyCreator> code in StarsOfThePilgrim.xml to get the next stargate. The code there had
Code: Select all
<Stargate from="CP:Outbound" to="SK:Inbound"/>
That's how to create a straight topology. Start at one system, connect to the next one, then connect that one to the next one, etc. As long as you have the NodeIDs defined and a stargate linking your systems to the starting system you have created your own universe.