Tags Request for Modders

Some ideas...

GalCiv2 is an awesome game, added to this is the ability to create mods and you have me hooked. Now that I'm getting less and less satisfaction out of slaughtering the AI, I've started to really mess with the game, trying to see how I can make the experience fresh and new. So I've been messing around with the xml files modding to my heart's content, and while doing basic changes and tweaks are fine and great, I've ran into some serious problems when trying to do any more than what the game gives me.

So I thought I'd put up a post in the forum to request some extra features for modders. I apologize if it has already been done, but frankly it's just impossible to find anything in this forum. Let's hope that this post actually show up even. With that said, it is my hope that this will become somewhat of an 'official' list, something that the devs might visit and go, "hey, let's toss that in," if they should ever find the time. That's why I've limited this particular topic to just extra xml tag support. This is because while adding them will make all our (modding) life easier, it does not affect the current game balance. So please, if you would like to request a certain tag or feature added, make sure that it will not throw off the balance in the current game before doing so. This thread only exist to make modding the existing game easier, not change some fundamental game design (like adding tactical combat).


With that said, I'll start off with some of my own requests, starting with the easiest:

1. Support for a {S_UpgradeTarget} in all the types of "GC2Types.xml" like it is done in "PlanetImprovements.xml"
- Basically, this would be used to make Laser III replace Laser II in the ship design module list instead of leave them both there. Now, I understand that sometimes you might not want this, but since you are not 'enforcing' the use of this tag, it will be up to the modders to make sure that whatever they replace will be better. Normally, this serves to keep down the number of modules in the weapon and defense list, however it could be used creatively to make a whole branch of the tech tree dealing with improving lasers, and another branch improving plasma weapons, etc. So that in the end, you have multiple choices for your beam weapon instead of all rushing for Doom Rays. Again, it doesn't affect the core game, but can lead to many creative options like a technology line that upgrades your hull types (IE: research a "Improved fighter construction" to get three improved tiny hulls, that would replace the old ones instead of making the 'ship' tree a gigantic list - thank god for hull filtering). By doing this, you also enforce the AI to use the 'best' that they have available (so you don't end up with the AI using old hulls when they have an improved one).

- Since the tag is already in used in "PlanetImprovements.xml", I don't think this will be hard to implement at all. For those who still haven't figured it out, yes, you can take out this tags in "PlanetImprovements.xml" and be able to build earlier buildings, it would just kill the "auto-upgrade" option by the governor, and the list of buildings will be very long (perhaps adding filtering tags to all the facilities in "PlanetImprovements.xml" might also be a good idea, although after lowering the cost of high-end building, I have found this to be a non-issue). I just think that sensors, life support, weapons, defenses, and engines should have the option to be replaced or not so as to cut down the number of possible modules when you start to add more.


2. Support for {NoTrade}, and {NoSteal} tags in "TechTree.xml".
- This can be used to mod the existing game to stop a certain technology from being traded/stolen. Mainly I would apply this to the good and evil technologies from xeno ethics as a fix, because it will stop the exploit where you can trade good technologies to evil/neutral empires repeatedly. Further more, it will allow the creation of 'unique' technologies for each race by creating a starting race technology with a ridiculous research cost and give it to that race and branching a tree off of it. Needless to say, there are many creative things that you can do with this. Combine it with the suggestion in #1, and you can make more powerful Drengin Lasers, and specialized Yor Missiles in no time without any worry about it being traded to or stolen by the Altarians.

- Since there is a 'no tech trade' option in 1.1, I don't think it would be very hard (of course I may be wrong) to make a certain tech behave this way. Of course, the {NoSteal} tag might need some work. However, this also lets modders determines an intermediate between massive tech trading and no tech trading at all that is in the current system.


3. Better support for multiple {Class} tags in all modules in "GC2Types.xml".
- Basically this lets people make modules that can shoot, ships with default weapons, and weapons that can defend against missiles, etc... From what I can gather from my experiments, the way it is done now, the {Class} tag is only read in if the module is a weapon or a defense, and it only reads it once, so no multiple class weapons, or multiple class defenses either. I can understand from the game's perspective that it is used for balancing reasons, but it wouldn't hurt to give modders the options to change these and be creative. The balancing would have to be the modder's responsibility.

- This might be the most difficult of the suggestions, but it, like the previous suggestions leads to many interesting changes like Point Defense Lasers, or tiny defender drones (hulls with zero space and movement, but some defenses and weapon for planetary defense).


I'm sure there are a lot more suggestions that would make modding the game that much more satisfying, but for now, these three are at the top of my list, and seems to be "do-able". Perhaps others will add their requests as well, and hopefully a dev will have some time to look through the possibilities.

*cross fingers and pray that the message actually shows up, and in the right place*
7,459 views 7 replies
Reply #1 Top
1. Support for a {S_UpgradeTarget} in all the types of "GC2Types.xml" like it is done in "PlanetImprovements.xml"


This could easily create a rather unbalancing sort of system, but I could see some situations where it would be pretty nice to have as an option.

- Since the tag is already in used in "PlanetImprovements.xml", I don't think this will be hard to implement at all. For those who still haven't figured it out, yes, you can take out this tags in "PlanetImprovements.xml" and be able to build earlier buildings, it would just kill the "auto-upgrade" option by the governor, and the list of buildings will be very long (perhaps adding filtering tags to all the facilities in "PlanetImprovements.xml" might also be a good idea, although after lowering the cost of high-end building, I have found this to be a non-issue). I just think that sensors, life support, weapons, defenses, and engines should have the option to be replaced or not so as to cut down the number of possible modules when you start to add more.

Honestly I think a lot of the complaints about this one could be solved by having a second version of the basic factory that is just different in name so it doesn't force you to try building industrial sectors on new planets.


2. Support for {NoTrade}, and {NoSteal} tags in "TechTree.xml".

also a pretty useful idea.

3. Better support for multiple {Class} tags in all modules in "GC2Types.xml".
- Basically this lets people make modules that can shoot, ships with default weapons, and weapons that can defend against missiles, etc... From what I can gather from my experiments, the way it is done now, the {Class} tag is only read in if the module is a weapon or a defense, and it only reads it once, so no multiple class weapons, or multiple class defenses either. I can understand from the game's perspective that it is used for balancing reasons, but it wouldn't hurt to give modders the options to change these and be creative. The balancing would have to be the modder's responsibility.

- This might be the most difficult of the suggestions, but it, like the previous suggestions leads to many interesting changes like Point Defense Lasers, or tiny defender drones (hulls with zero space and movement, but some defenses and weapon for planetary defense).

I think this is one of the most frustrating limits for now . Really makes it difficult to do too much more than simply tweaking numbers or names a bit.


Somethings I would like to add would be:

- The ability to set a requirement for building X being that building Y be on the planet.
- The same for ship parts.
- The same for both only replace "on the planet" with "in your empire"
- Ability to make an improvement autodestroy/autodecommission itself if it changes hands. It would allow the ability to make a super project that does something powerful (i.e. +interest rate to make buying on the pay over time options viable), but would be massively unbalancing if someone had multiple of them.
- I've read (but havent tested) that negative values on a lot of ship parts of planetary improvements and such are ignored and made positive. The ability to set negative modifiers would be especially useful if coupled with the ability to add things like engine/weapon/defense/sensor/life support/etc stats on single items.
- the ability to make a planetary improvement require a moon/ring be in place on a planet.
- a pony.
- The ability to make a planetary improvement that speciffically is placed on nonbuildable nonupgradable tiles.
- The ability to build a planetary improvement that take all tiles on a planet, or all but one tile (for a starport, could be random the leftover tile) and upgrades anything already existing on the planet to itself before it's finished. Also the ability to make it so that improvement can have absolute stats regardless of the number of tiles it use, as well as the ability to have stats that are affected by the number of tiles it actually uses. Would allow things like the often requested dyson sphere/ringworld/etc that give a base bonus to something, as well as a variable output for something else based on the quality of the world you gave up to make it.
- maybe a unicorn instead of a pony.
- a ship function (i.e. like constructors) that would destroy/set to class 0 the world it's created on, and allow you to directly upgrade the PQ & tiles on another world.
- The same for an uninhabited planet.
- The same for a planet you own instead of the planet it's created on.
- The same for a planet you don't own.
- a cure for insomnia!
Reply #2 Top
gack, it said there was a timeout and it doubleposted when I resubmitted.
Reply #3 Top
This could easily create a rather unbalancing sort of system, but I could see some situations where it would be pretty nice to have as an option.


Only if you intentionally make it unbalancing. I mean, I don't see how making Laser II replacing Laser would make things unbalanced. The only reason it would become that way would be that the modder add some wicked weapon to replace Laser. But that would happen anyways even if you couldn't replace the normal Laser with the new ultimate weapon. The balancing doesn't actually have anything to do with whether this tag is implemented or not, but rather what the modder was trying to do. Inevitably, balancing is something that the modder has to test out and play with.

The tag working would just, like I mentioned, cut down the amount of clutter that would fill up the ship design screen when you start adding more components. It would also FORCE the AI to use the best weapon it has, even though it might not be designed to do that normally. Doesn't that make things MORE balanced?


Honestly I think a lot of the complaints about this one could be solved by having a second version of the basic factory that is just different in name so it doesn't force you to try building industrial sectors on new planets.


Yeah, and completely doable as it is, simply create a new facility with the exact same stats as the Basic Factory and call it "Starter Factory". Which is why I didn't really bother suggesting anything for the facilities. Actually, by lowering the cost of the high end buildings to more reflect the amount of w/e that the facilities produce, as opposed to just wierd extreme costs for no reason, I have had zero problem with this what-so-ever. I just pointed it out because I've seen so many people complaining why can't they build lesser buildings, when it is perfectly moddable for them to do so. The only reason I mentioned the sortable tag for planetary improvements was for future planning, when you start adding buildings and the list gets too long and annoying when you have to scroll through everything.




As for your suggestions, while I definitely see some cool things you can do with them (the building/component requirements), I'm not sure how viable it will be to implement.


- The ability to set a requirement for building X being that building Y be on the planet.
- The same for ship parts.
- The same for both only replace "on the planet" with "in your empire"


These I can see being very useful. Establishing requirements for a chain of buildings can be fun, I'm not sure how the AI would be able to handle it, but that's up to the modder to take care off.


- Ability to make an improvement autodestroy/autodecommission itself if it changes hands. It would allow the ability to make a super project that does something powerful (i.e. +interest rate to make buying on the pay over time options viable), but would be massively unbalancing if someone had multiple of them.


The ability to auto-decomission/destroy buildings won't help your super project idea, because well... super projects can't be decomissioned or destroyed. Besides, I believe super powerful things like these are meant to be either galatic achievements or trade goods since you can only build one of those per galaxy. In which case, you don't want it blowing up anyways, you want to take it back.


- I've read (but havent tested) that negative values on a lot of ship parts of planetary improvements and such are ignored and made positive. The ability to set negative modifiers would be especially useful if coupled with the ability to add things like engine/weapon/defense/sensor/life support/etc stats on single items.


Yeah, the ability to make a certain useful module reduce the effectiveness of these other values would be great. You can do things like cheap radioactive engines that reduces life support, etc... I'm not so sure about the negative value bit though, I thought I heard that the negative value to range on the modules worked.


- the ability to make a planetary improvement require a moon/ring be in place on a planet.


I really like this idea, it would allow for some unique situations and can make these into a customizable 'bonus' tile of sorts. Only concern is that the AI might not realize its significance and won't take advantage of it.


- a pony.


Nooooo! not a pony!!!! Ponies are waaaaay over powered.


- The ability to make a planetary improvement that speciffically is placed on nonbuildable nonupgradable tiles.


I'm not sure how viable this is, simply because the game is designed for you to build ON buildable tiles. But I'm not a dev, so no idea.


- The ability to build a planetary improvement that take all tiles on a planet, or all but one tile (for a starport, could be random the leftover tile) and upgrades anything already existing on the planet to itself before it's finished. Also the ability to make it so that improvement can have absolute stats regardless of the number of tiles it use, as well as the ability to have stats that are affected by the number of tiles it actually uses. Would allow things like the often requested dyson sphere/ringworld/etc that give a base bonus to something, as well as a variable output for something else based on the quality of the world you gave up to make it.


Hmm, I think you're trying to hard, or not hard enough. I mean, wouldn't it be easier if you turn your 1 facility building setup into a multiple facility set up? Basically one where all your "absolute stats regardless of the number of tiles it use" can be put into one building, with a building limit of one per planet. Then have all your "stats that are affected by the number of tiles it actually uses" split into multiple buildings. Essentially you will end up with the same stats, just with many buildings instead of one building producing all those stats. I don't see why this won't work unless you yourself don't build it that way. It would just be built in parts instead of being built all at once. It makes a lot of sense building something huge like that in parts anyways. So with some creativity, it is perfectly possible to do what you ask, at least in the form that I understood it, unless I'm missing something else.


- maybe a unicorn instead of a pony.


Well, it's better than a pony I suppose, but I still think you need something to balance it for those of more evil dispossition. Like a hell hound, a nightmare (the burning horse), or something.


- a ship function (i.e. like constructors) that would destroy/set to class 0 the world it's created on, and allow you to directly upgrade the PQ & tiles on another world.
- The same for an uninhabited planet.
- The same for a planet you own instead of the planet it's created on.
- The same for a planet you don't own.


I'm not quite clear on the purpose of something like this. Unless I'm mistaken, you basically want a terror star to work, one that not only blows up a planet, but saves it, go to your own planet, drops the destroued planet on top of your planet and make it bigger and better. O_O

I'm sorry, but WHA??? Please... I said no game changing features. And you called my {S_UpgradeTarget} potentially unbalancing.


- a cure for insomnia!


Why? Insomnia is my friend. Otherwise how will I find the time to play this game?


PS: I'm glad this showed up and in the right place...
Reply #4 Top
Yay to timeouts when posting!

Anyways, i'd like to see a 'Race' tag in the 'TechTree.xml' file.
This to make race specific techs.
Reply #5 Top
Anyways, i'd like to see a 'Race' tag in the 'TechTree.xml' file.
This to make race specific techs.


this can actually be done in a roundabout way currently. edit the race files to give them a specific tech that starts a tech tree, then set that tech do require 100000 research or something to learn (tech victory is like 8000). Sprout your additional techs off that base part of the tree.
Reply #6 Top
this can actually be done in a roundabout way currently. edit the race files to give them a specific tech that starts a tech tree, then set that tech do require 100000 research or something to learn (tech victory is like 8000). Sprout your additional techs off that base part of the tree.


Yes, but like I mentioned in my request, this tech and subsequent ones will be traded to each other and can be stolen. That is why I requested the {notrade} and {nosteal} tag in "techtree.xml" in the first place. A {race} tag is nice, but the {notrade} and {nosteal} tag solves a lot of problems (like the good alignment tech exploit) and give modders control over how much techs and which ones can be traded as well. It's like killing a flock of birds with one (or in this case, two) stones.
Reply #7 Top
Sort of a bump, and sort of not... just recording something I've written somewhere else. It basically deals with technology value and their usefulness. The reason I add it here is one of the possible solutions involves a new tag in techtree.xml along the line of {AITechUsefullness} (Alright, so I'm a little tired and can't come up with anything better at the moment). When I get the time I'll edit the main post to include it... for now, it at:

Link