[GS] Implement RF's Improvement on the CUSTOM CIV, it shows a red exclamation on Tiles, How to fix this?

Airier23

Chieftain
Joined
Feb 19, 2019
Messages
7
I made a CUSTOM CIV beloved by me, and I gave it the traits for building improvement of others.

<CivilizationTraits>
<Row CivilizationType="CIVILIZATION_CUSTOM" TraitType="TRAIT_CIVILIZATION_IMPROVEMENT_PAIRIDAEZA"/>

<Row CivilizationType="CIVILIZATION_CUSTOM" TraitType="TRAIT_CIVILIZATION_IMPROVEMENT_GOLF_COURSE"/>

<Row CivilizationType="CIVILIZATION_CUSTOM" TraitType="TRAIT_CIVILIZATION_IMPROVEMENT_POLDER"/>
</CivilizationTraits>


The problem is that when I play this new Custom Civ, the visual texture on the tile is shown like a RED EXCLAMATION mark.

PXaZ0CG.png

1) In the Strategic view, all the icons are printed perfectly normal. (generates proper food/production et cetera too)
2) If I play the Vanlia or RF's civ in GS ruleset, the textures of the improvements show well!
(I've found even in GS rulset, the other civs(ex. if I put the polder script on America in the GS) cannot bring artdefs of polder.

I thought this problem is caused the Custom Civ cannot refer to the textures of RF's improvement. or...it's shown when the texture files are missing or have a conflict with another.
I've tried lots of methods which I think those matter.

a) Put a code which adds the traits for improvements directly on the Vanilla codes. --> doesn't fix
b) Brought texture files in SHARED_DATA from Exansion1 and other DLC to the Custom Civ's Platfomrs>Windows>BLPs>SHARED_DATA --> doesn't fix

How to fix this? Please Help me. to find out how to use the old (DLCs, Expansion1) improvements to the NEW CUSTOM CIVS. This problems show on only 5 improvements for now; PAIRIDAEZA, POLDER, GOLF COURSE, KAMPONG, MEKEWAP
 
Last edited:
The issue is that the DLC assets have not been integrated into ModBuddy. So because ModBuddy doesn't "know" what those assets are, your artdef entries for those assets get turned into errors when the mod gets "cooked." There is an easy solution though.

After you build your mod, go to your project folder for that mod. Take the Landmarks.artdef file and copy and paste it into your "built" mod folder (the one that shows up in the Mods folder) to replace the "cooked" artdef.
 
Last edited:
OMG are you p0kiehl? I'm a big fan of you and your mods! Thank you for your reply! I'll Try!
 
G3lV0B0.png


Sorry, I still dosen't work at all. I gave TRAIT_IMPROVEMENT_PAIRIDAEZA to my CIV, and bring Improvement.artdef and Landmark.artdef from PERSIA DLC to my custom civ's Artdef folder. Did I have something missing??
 
I had tried almost every improvement. Only RF's POLDER, GOLF COURSE, KAMPUNG & DLC's PAIRIDAEZA cannot be shown and they print a red exclamation. It's strange that the Chemamull is clearly shown well even though it's included in Expansion1.
 
Airier23, did you ever figure this out? I am also having this issue and haven't been able to fix it myself.
 
Airier23, did you ever figure this out? I am also having this issue and haven't been able to fix it myself.

Nah, this problem still exists. only several improvements (Polder, Golf course, Kampung, Pairidaeza, Makewap) have this issue.
 
Has anyone found a solution to this issue yet? It's pretty annoying since I'm making a custom civ which I want to give golf courses to.
 
This issue also exists with the Mbanza when it is given to non-expansion civs.

I haven't found a solution short of creating an entire clone of the district art.
 
Could you sort of briefly explain how I could go about doing that? I haven't done very much involving art assets and wouldn't really have the first clue how to make a mod that added custom improvement art (which is sort of what this is, even if the assets are just pulled directly from the DLC game files).
 
Has anyone checked if Nubian Pyramids are affected too? I've had problems with it trying a mod and I think it happens for the same reason.
 
When placing those improvements the game for some reason checks if their owner is the correct civ and does not load the improvement model if it's not. To test it remove TraitType from unique improvements and try placing them with different civs.
 
Last edited:
Would that also work in the game DLC files to give those improvements to other civs without problems?
 
Would that also work in the game DLC files to give those improvements to other civs without problems?
Would what work? I did not give any solution. The only workaround is to copy those improvements into your mod as new ones.
 
I believe I have found a solution, based on the Brazil All Uniques mod and Gedemon's R.E.D. I have only tested it for improvements, but the same logic probably applies to districts/buildings.

The issue relates to Landmarks.artdef specifying a particular civilization or culture type for the problematic improvements. You need to copy the improvement specific data from the DLC or Expansion's Landmarks.artdef and add it into your own mod's Landmarks.artdef. Then replace the following civ-specific blocks of text:
HTML:
<Element class="AssetObjects..ArtDefReferenceValue">
    <m_ElementName text="CIVILIZATION_PERSIA"/>
    <m_RootCollectionName text="Civilization"/>
    <m_ArtDefPath text="Civilizations.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text="Civilizations"/>
    <m_ParamName text="Tag_Culture"/>
</Element>
with the generic:
HTML:
<Element class="AssetObjects..ArtDefReferenceValue">
    <m_ElementName text="DEFAULT"/>
    <m_RootCollectionName text="Culture"/>
    <m_ArtDefPath text="Cultures.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="Tag_Culture"/>
</Element>
This will cause the improvement graphics to correctly show for any civ. In the case of Persia, there are multiple blocks that refer to CIVILIZATION_PERSIA that you must replace. Then, in your mod's .dep file, you also need to specify the corresponding DLC or Expansion as a RequiredGameArtID. Your .dep file should look something like:
HTML:
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects::GameDependencyData>
    <ID>
        <name text="CUI"/> <!-- Your mod's name -->
        <id text="d85b5f9b-5025-47d9-9f70-872175bcb17f"/> <!-- Your mod's id -->
    </ID>
    <RequiredGameArtIDs>
        <Element>
            <name text="DLC4"/>
            <id text="d5642886-43d5-4ce9-9465-3a47b5c70096"/>
        </Element>
        <Element>
            <name text="DLC5"/>
            <id text="754001af-1b3f-43a5-8138-8fb13e2bf173"/>
        </Element>
        <Element>
            <name text="DLC6"/>
            <id text="4fd22d21-5ec7-4ce9-aca6-8d8b623e5a82"/>
        </Element>
    </RequiredGameArtIDs>
    <SystemDependencies>
        <Element>
            <ConsumerName text="Landmarks"/>
            <ArtDefDependencyPaths>
                <Element text="Landmarks.artdef"/>
            </ArtDefDependencyPaths>
        </Element>
    </SystemDependencies>
</AssetObjects::GameDependencyData>
I have only briefly tested this, but so far there have been no issues.
 
What's wrong with OPPIDUM district? It's culture is not set to any civ but when placed in a tile that does not belong to Gauls you get red exclamation mark instead.
 
I was placing OPPIDUM in ancient era. I guess it was not defined in artdef. No problems in later eras.
 
I didn't want to "necro" this thread, but it's a consistent problem.

I tried the solution presented in this thread, but the Landmarks.artdef that I introduce with my mod simply does not overwrite the base game. I am going to lose my mind, nothing seems to work.
 
Back
Top Bottom