A trip through the fantasy worlds I enjoy

 

In a prior Developer Blog (https://forums.galciv3.com/461709/page/1/ ) I talked about all the cool stuff you can do in the Custom Race tool. We give you a bunch of images, traits, abilities and settings to create whatever race you want.

But, if you really want to make something unique you can go so much further. In this post I’ll talk about how modding works in Galactic Civilizations III and show you how I used it to make a new faction for the game, the Ghosts of Abbadon.


How does modding work?

Mods are files placed in your My Games/GalCiv3/Mods/ directory. They can include graphic and XML files. You can have as many mods in here as you want, but keep them in their own directories (so if you want to remove one it’s easy to do). The plan is to get some Steam Workshop integration in here to help manage this at some point. But first we are getting the system working.

NOTE: We use a file structure to help with organization, but the game actually just searches all subdirectories when looking for files. So your files must have unique names (even if they aren' in the same directory).

At a high level there are three things you want to do when modding. You either want to add something, modify something or delete something.

  1. Adding things. This is the easiest, just create a new XML file, with a new name. It doesn’t matter what the name is, as long as it isn’t the same as an existing file. Personally I like using the same name that it uses in GC3, but I append the mod name to make sure it is unique. The only other thing that matter is that it is in the right directory. Faction Defs, Star System Defs and Planet Defs are all in the Game folder (because if you look at the XML in the GalCiv’s real directories those files are in the Game folder). You have to match GalCiv3’s file placement so that the modded files load correctly. Add a new file in here with just the new Faction, Star System, Planet, Tech, Improvement, Ideology Trait, etc (there are about 150 moddable xml files in GC3). Anything Paul can add to the game, you can add too.
  2. Modifying things. What if you want to increase the amount of credits the Iridium to start the game with? If you ever want to modify an existing object you just need to copy the file from the GC3 directories and modify what you like, but be sure to keep the name exactly the same. When the game starts if it sees a file with an identical name in your mod directory to one of the base files it uses your mod file instead. This gives you ultimate control over overwriting anything in the base game (without ever having to modify a base game file).
  3. Removing things. Since you can overwrite any of the existing XML files our deletion solution is built right in. If there is a particular global event that annoys you can copy that xml file into your mod directory, delete that event form your copy and voila, it’s gone.

Now let’s use this power to create a new faction, the Ghosts of Abbadon. The Ghosts are unlike any other faction in GC3, and we want to be able to do more with them than the Custom Race tool normally allows. In this case they have ruined their homeworld and used the last of their resources to prepare 3 colony ships to go out and attempt to find a new home.

How do we do this?

1: Copy the FactionDefs.xml file into my new mods \My Games\GalCiv3\Ghost\Game\ directory.

2: Rename it from FactionDefs.xml to FactionDefs_Ghost.xml. (I don’t want to overwrite the existing factiondefs, I just want to add a new one).

3: Open up the file (I use Notepad++ for this) delete the other entries, except maybe one I am about to use as a template, and add the XML for my faction.

There are lots of things set here. But the important things here are that <HomeStarSystem> is set to “DeadSystem” where normal factions have a Colony, Scout and Survey ship in <StartingShips> they have 3 Colony ships instead. We could put anything we want in here, 12 Colony ships, a Battleship, a fleet of flying toasters, etc.

I played with a bunch of options with their starting ships. At first I gave them the extra colony ships in addition to the normal Survey and Scout. But when it was just Colony ships it made them feel a more desperate. They don’t have the luxury of having a scout out finding planets for them, or time spent collecting anomalies. When they choose to set out for a star it becomes a dramatic step, and when there is nothing there it is a tragedy of the time of a very valuable resource wasted. And when they find a worthwhile planet it is a huge joy. The hardest part is finding a mediocre planet, do they keep going, looking for something better, or settle?

I used the Terran definition for most of their art aspects, and I’m using one of the extra faction foregrounds and backgrounds that come with the game (“Devilgirl”) for the leader art. We could create our own versions of any of this. If you had a custom image you wanted to use for your faction you would just reference it here, I think Paul has one for his dog Maggie.

The only custom art I created for them is that I created a new material in <Material1>, Ghost_Ship_Material_01.

To do that I added a new file for my mod, this time in the \Mods\Ghost\Core\ directory. I’ve used it to define a new material that I can use to create ships. Materials aren’t colors (you will want to add appearances to modify ship colors). They define the way that light interacts with the surface of the object and I wanted to try some things out to make the ghost ships look unusual.

I really don’t know what I’m doing here. But I love having lots of levers available to tweak and play with. So I’m not asking any modder to understand what all these options mean. Instead do what I did, make a bunch of new materials with all sorts of values then load up the game and check them out. I’ve created new color schemes and materials, and I will add them to the base game to make it easy for non-modders to play with. But modders can go wild.

For this new material I bumped the Reflectivity to a crazy 10.2. That’s going to make my ship look like it is made from mirrors. It’s hard to appreciate in a still picture, but it looks pretty cool in motion.

 

So I have some cool looking ships and a fun faction to play as. I’m going to go play some Galactic Civilizations III.


Comments (Page 11)
12 PagesFirst 9 10 11 12 
on May 19, 2015

Is there any way to get the xml files out of a .faction file created by the faction editor so they can be put back in as a mod?

 

I don't want to create a huge mod, I just want to create a faction which is more different than the built-in faction designer will let me.

on May 19, 2015

@ShadowDragon
Nope, see what Derek says here:
https://youtu.be/zee3KC6kIxg?t=2539

It was done so that that custom race creators wouldn't need to restart the game when they have finished. So it might be possible in the future to have it exported to XML.

on May 19, 2015

@pendrokar

 

Ahh, bollocks.

Well, at least that's a reasonable, technical reason, as opposed to some cockamamie anti-cheating reason, though it would've been nice if it did, as he said, create an .xml of the custom file.

Hopefully they'll get onto that at some point, or someone will figure out how to convert the binary file out into an .xml.

 

I'm trying to make a race that has more faction points than the built-in editor will let me start with, but I'm having the devil's own time. Ah well, more than one way to do something. CheatEngine and modding the faction directly don't seem to be working, but someone on Steam tipped me off to the values where the race creator points are stored.

 

Thanks.

on May 19, 2015

Where do a put a picture into the game so that it can be selected when using the race editor?  I want to put background pics as well as portraits. Some examples are Star Trek characters, Battlestar Galactica, B5, Personal pics of friends and family etc.    Not a programmer so I'm trying to avoid messing with .XML files hence why I want to use in game editor as much as possible.

Also sort of related how do I attach ship designs to a race. For example if I create the Federation as a race, can I create a bunch of Federation Ships in the Ship Designer and attach them to this race so that no matter if this race is played by the AI or play only these ships will show?

 

on May 19, 2015

Bellack

Where do a put a picture into the game so that it can be selected when using the race editor?  I want to put background pics as well as portraits. Some examples are Star Trek characters, Battlestar Galactica, B5, Personal pics of friends and family etc.    Not a programmer so I'm trying to avoid messing with .XML files hence why I want to use in game editor as much as possible.

Also sort of related how do I attach ship designs to a race. For example if I create the Federation as a race, can I create a bunch of Federation Ships in the Ship Designer and attach them to this race so that no matter if this race is played by the AI or play only these ships will show?

 

 

there alittle more to it then just putting pics in the folders

 

C:\Users\XXXXXX\Documents\My Games\GalCiv3\Factions 

 

Look in the folders you see there.

on May 19, 2015

This is TheLegoCruiser Race 


Here is the way it looks at race setup!

The start screen before you go to your planet.

The Diplomacy screen The race icon is over his head not over his face.

And the Report Screen!


TheLegoCruiser sorry it took me so long I was very sick for over a week and I`m still not all the way over it.

I`ll send you a PM.

on May 20, 2015

Hi guys im new here and i want to learn about modding.. But my first questiion here is how we can add more racial points/ability points?? 

on May 20, 2015

TheLegoCruiser PM Sent.

on May 31, 2015

Is there a database of available mods available somewhere out there?

on Jun 01, 2015

Tetrasodium

not allow colonize standard habitable worlds?  Probably doable by moving them into extreme worlds (at worst) & changing the colonization techs for the unlucky race to not get the required one

You could set a requirement on unlocking the colony module I suppose. Just a thought

on Jun 01, 2015

shiva7663

Is there a database of available mods available somewhere out there?

 

Not as yet - that'll come with the steam integration I expect.

on Jun 04, 2015

I tried to make my 1st baby steps into GC III modding. From the OP here it seems pretty clear - I did set up a folder called "MyGC3Mod" in Documents\My Games\GalCiv3\Mods\

Then I copied the folders from the example mod into this (game, core etc.), and put some copied game files into those folders and modified certain values.

What I don't understand is how GCIII determines what mod it should use? In GC II you had to point the game to a specifc mod folder, but here in GC III it just seems to be "enable mods" in the game's options? If you got several mods how does the game know which one I want to play with? Is there something else I need to do to activate a specific mod?

 

 

on Jun 04, 2015

GalCivius

I tried to make my 1st baby steps into GC III modding. From the OP here it seems pretty clear - I did set up a folder called "MyGC3Mod" in Documents\My Games\GalCiv3\Mods\

Then I copied the folders from the example mod into this (game, core etc.), and put some copied game files into those folders and modified certain values.

What I don't understand is how GCIII determines what mod it should use? In GC II you had to point the game to a specifc mod folder, but here in GC III it just seems to be "enable mods" in the game's options? If you got several mods how does the game know which one I want to play with? Is there something else I need to do to activate a specific mod?

 

 

 

When there's a conflict (i.e., multiple mods with the same files in), it just uses the last one that gets loaded into memory. It's pretty hard to guess which one. 

on Jun 05, 2015

I see, thanks.

on Jun 25, 2015

Hey, I've run into a problem with my custom race. Namely, ideology. I'm trying to set it to be a Benevolent race, but even I placed the personality trait, "Benevolent" in the xml, the game keeps reading its ideology as pragmatic. Anyone know how I can fix this?

12 PagesFirst 9 10 11 12