News

Modding Custom Race Colors

Posted on Thursday, April 9, 2015

So today I dove into modding the colors of a custom race. I learned a few things and hit one (major) brick walls. I'm posting this for the benefit of those who don't want to use the standard UI and map color options, and because I'm interested in seeing what other people have to say about modding the colors (how to do it more efficiently, what I might be doing wrong, and especially how to create custom ship colors).

My race is the Elesion, and I used that for all my file name changes. Here's what I did:

STEP ONE: I copied the GC3AppearanceDefs.xml and ColorDefs.xml files from the data/Core folder into the new Mods/Elesion/Core folder and renamed the files using the race name, as in ElesionAppearanceDefs.xml and ElesionColorDefs.xml.

The ColorDefs file enables us to create a custom UI--which is used in conjunction with the UIColorDef file in the Game folder (I'll get to that in STEP TWO). I simply erased all but the Terran Colors section (and closing tag) and replaced all uses of Terran with Elesion, then changed the RGB values to what I wanted.

The AppearanceDefs file enables us to create ship color templates--though this seems to be somewhat limited, or I just haven't found the proper xml file to really customize the colors...I played with the values, and discovered a couple useful tidbits.

First, the DiffuseGradientRow1 & DiffuseGradientRow2 elements control color. The colors seem to be mapped from 0-33 with some additional colors in the 240s and 250s. I could not find any rationale or connection between the numeric values and the colors. I would love it if one of the devs or another modder could explain this to me, and if there is a way to create custom colors...

Second, the three LightGradient Rows control light/window color. I believe these are mapped according to the same color scheme as the DiffuseGradient Rows.

Third, SurfaceScale gets bigger the smaller the number--in other words, the texture is finer when the number is bigger.

STEP TWO: I copied the FactionMapColorDefs.xml and UIColorDef.xml from the data/Game folder into the Mods/Elesion/Game folder. I then renamed these files accordingly.

The FactionMapColorDefs file, which has been renamed to ElesionMapColorDefs.xml, determines the UI, grid, influence, and path colors using the colors from the ElesionColorDefs file in the Core folder. The names on the MapColorDefs file need to match those in the ColorDefs file.

The UIColorDef file overrides the default UI with the custom UI according to the colors created in the ColorDefs file in the Core folder.

STEP THREE: Create a custom race and use the custom colors--you may need to change some display names, because the default seems to be UI_Color_RACENAME--though for the core races, the name is all that I displayed...

Overall, this isn't too complicated--but I really do want someone to weigh in about the ship colors/numbers in the GC3AppearanceDefs file. I sure hope the ship color choices are not hard coded... that would be a bummer.