A list of things we CANNOT currently do via Modding

jerseymike25

Chieftain
Joined
Dec 24, 2005
Messages
50
I've been looking around for a definitive "you can't do this!" list, and haven't found one. (I am realizing after the fact that it might be in the "Issues with Civ5" thread, but that would deal with the entire game as whole, not just the Mods).

Hopefully, some of the experienced modders will also add to this list and then at some point, we can transfer it to the wiki. Of course, if I or anyone lists a "can't" and there's actually a way that you "can", that information would be very much appreciated. I'll attempt to keep this first post updated.

The "As far as I know, things you cannot do right now" list:

Cannot change the current Quest of a Minor Civ
- I have looked around for a way to do this, but it seems that for each Player "object", there is no public property to set the current quest of a Minor Civ. You can retrieve it via GetActiveQuestForPlayer(playerID), but there does not appear to be a "Set" version of that function.
- I had hoped that there was even a way to "hack" this in - somehow obtaining the address for that value returned by GetActiveQueustForPlayer, but I think that even if I knew it, updating it in Lua may be impossible.

Mountains are hardcoded to be Impassable
- Or more correctly, when PLOT_TYPE = PLOT_MOUNTAIN, it's going to be an impassible plot for any unit that does not have the Hover promotion (Helicopter).
- Of interest: The TERRAIN_MOUNTAIN type doesn't appear to ever be used, as best I can tell. If you edit a plot to use TERRAIN_MOUNTAIN, that plot becomes impassable to all units, even those with the Hover promotion.
- Similar to the Quest issue, you can query for the Impassable value (Plot:IsImpassable()), but there's no "Set" equivelent. If you change the Plot Type to HILLS or LAND, the Impassable value changes as a result.

Cannot Add New Terrain Textures
- I've found it's possible to add a new Terrain, but haven't been able to add any new Terrain texture. The Nexus importer appears to be broken.

Cannot Change the Attitude of 1 Player towards Another
(Full Disclosure: I think this is so, that you can't alter this. There might be a way to do it, and I'm just spacing on it at the moment).
- It seems most of the "InGame" stuff relating to the players attitudes, current focus, etc, cannot be changed on the fly.

From Xysplosion:
Cannot load new UI files & graphics at boot_runtime via the usual MOD process;
The main issue why Z-UI (below) files must be transfered into Resource/DX9 folder to be indirectly activated.

Cannot edit any GR2 models to change - for example - the Trading Post layouts & 3D assets;
That in itself prevents everyone from creating huge supplemental stuff. Some workaround can be achieved for units, though. But the proprietary Firaxis system isn't standard like 3DS. Even free Blender won't allow conversion to a valid CiV item. If Nexus *must* be used, then they might as well hand over the real capacity to alter what we want.

From Cope:
Events.SerialEventHexHighlight() ignores the alpha value
When using a custom hex highlight color for Events.SerialEventHexHighlight() the alpha value does nothing, the color is always (r,g,b,1.0). Setting alpha to 0.0 does work though, so it seems like the game just does (r, g, b, floor(a)) for some strange reason. I take it this is a bug because the devs defined some custom colors with alpha values less than 1 too, and they don't work either. This is too bad because I can think of a dozen things that could be done with hex highlights if they weren't stuck in full-alpha-obnoxious-mode.

From Whys:
I've read the FontIcons can't be changed.
 
for moving across mountains you could always make a new promotion with the canMoveImpassable set to true. Works kinda good actually, i've been using it for a while now.
 
for moving across mountains you could always make a new promotion with the canMoveImpassable set to true. Works kinda good actually, i've been using it for a while now.

Can you post an example of how you did it? This works around the problem, but doesn't solve the specific issue of being able to change the individual plot from impassable to passable.

Garrett: Isn't that recoloring of the existing textures, though? Your work on the Mars mod was impressive, but I thought it was just a recoloring, rather than addition of new textures.
 
Mountains are hardcoded to be Impassable

:wallbash: no, they did it again :wallbash:. That was already a pain in Civ4, and they did it again in Civ5 :wallbash:.


@topic: I think adding new building graphics is still not really possible.
 
Garrett: Isn't that recoloring of the existing textures, though? Your work on the Mars mod was impressive, but I thought it was just a recoloring, rather than addition of new textures.
If you mean I just made a new texture and applied it to an existing terrain type then yeah. If you mean I just applied a mask to the original texture then no.
 
If you mean I just made a new texture and applied it to an existing terrain type then yeah. If you mean I just applied a mask to the original texture then no.

Ah, okay, my bad. I meant specifically adding a brand new texture/terrain. Say I wanted to create a new terrain type called "Mountain Pass". I can add the Terrain to the game, but I can't add the art for that terrain that I've found. That's what I mean.
 
Well, nothing special, but here it is

Spoiler :

<UnitPromotions>
<Row>
<Type>PROMOTION_MOUNTAINEERING</Type>
<Description>TXT_KEY_PROMOTION_MOUNTAINEERING</Description>
<CanMoveImpassable>true</CanMoveImpassable>
<Help>TXT_KEY_PROMOTION_MOUNTAINEERING_HELP</Help>
<Sound>AS2D_IF_LEVELUP</Sound>
<OrderPriority>1</OrderPriority>
<PortraitIndex>26</PortraitIndex>
<IconAtlas>PROMOTION_ATLAS</IconAtlas>
<PediaType>PEDIA_SHARED</PediaType>
<PediaEntry>TXT_KEY_PROMOTION_MOUNTAINEERING</PediaEntry>
</Row>
</UnitPromotions>
 
Cannot change the Personality of a Minor Civ
we only can GetPersonality()
but there is not SetPersonality()
 
When using a custom hex highlight color for Events.SerialEventHexHighlight() the alpha value does nothing, the color is always (r,g,b,1.0). Setting alpha to 0.0 does work though, so it seems like the game just does (r, g, b, floor(a)) for some strange reason. I take it this is a bug because the devs defined some custom colors with alpha values less than 1 too, and they don't work either. This is too bad because I can think of a dozen things that could be done with hex highlights if they weren't stuck in full-alpha-obnoxious-mode.

The strategic view is very hard to mod, a lot of it seems to be handled in the backend. For example, you can't change the way city banners collapse into the simple City Name (Population) form, and adding any sort of text to resource icons seems to be impossible.
 
Cannot load new UI files & graphics at boot_runtime via the usual MOD process;
The main issue why Z-UI (below) files must be transfered into Resource/DX9 folder to be indirectly activated.

Cannot edit any GR2 models to change - for example - the Trading Post layouts & 3D assets;
That in itself prevents everyone from creating huge supplemental stuff. Some workaround can be achieved for units, though. But the proprietary Firaxis system isn't standard like 3DS. Even free Blender won't allow conversion to a valid CiV item. If Nexus *must* be used, then they might as well hand over the real capacity to alter what we want.
 
I keep thinking that somehow, there's got to be a way to access the mostly inaccessible values without the use of the DLL. Programs like ArtMoney are able to read and edit the entire memory space of the Civilization5.exe process. Using ArtMoney, I've been able to change the requested CityState quest, but this is obviously not a preferred method, as accessing it programatically via Lua would be much, much better.

The obvious flip side to this is if such things were editable via the lua script, such things could be exploited in a multi-player game, so that's probably why they're not available to change.
 
I keep thinking that somehow, there's got to be a way to access the mostly inaccessible values without the use of the DLL. Programs like ArtMoney are able to read and edit the entire memory space of the Civilization5.exe process. Using ArtMoney, I've been able to change the requested CityState quest, but this is obviously not a preferred method, as accessing it programatically via Lua would be much, much better.

The obvious flip side to this is if such things were editable via the lua script, such things could be exploited in a multi-player game, so that's probably why they're not available to change.
When embedding Lua in a program, you have to go out of your way to give it access to the host process's value space. If they've done so, they haven't mentioned it, and I can't see why they would do so.
 
Top Bottom