• Our friends from AlphaCentauri2.info are in need of technical assistance. If you have experience with the LAMP stack and some hours to spare, please help them out and post here.

Winter Patch: Adding Icons and ArtDefs

PlotinusRedux

Warlord
Joined
Jul 11, 2013
Messages
196
[EDIT1]Added additional information inside "[EDIT1]...[/EDIT1]" blocks.[/EDIT1]

The winter patch finally made it possible to add icons and artdefs without users having to copy files. I played around with @UncivilizedGuy 's Slavery mod because he has both icon and artdef changes, and got it working without copying any of his files to my base directory, so I'm going to use that as an example.

Note this shouldn't be considered a replacement for his mod, it is an example only.

First the example, then some explication:

Mod directory structure:
Code:
\Mods
    \Slavery by UG (V. 2.4)
        Slavery.modinfo
        Slavery.dep
        \Data
            Data.xml
            Icons_Slavery.xml
        \ArtDefs
            Units.artdef

Slavery.modinfo file:
Code:
<?xml version="1.0" encoding="utf-8"?>

<Mod id="039cbfec-dbde-4e2e-9bb9-19787b5c6F813">
    <Properties>
        <Name>Plot's Test of UncivilizedGuy's Slavery</Name>
        <Teaser>Plot's test of UncivilizedGuy's Slavery.</Teaser>
        <Authors>UncivilizedGuy</Authors>
        <SpecialThanks>Special thanks go out to Onno "donald23" Zaal, Madjinn, and Deliverator</SpecialThanks>
    </Properties>

    <Files>
        <File>Data/Data.xml</File>
        <File>Data/Icons_Slavery.xml</File>
        <File>Slavery.dep</File>
    </Files>
 
    <Components>
        <Icons id="UGSIcons">
            <Items>
                <File>Data/Icons_Slavery.xml</File>
            </Items>
        </Icons>
        <UpdateDatabase id="UGSComponent">
            <Items>
                <File>Data/Data.xml</File>
            </Items>
        </UpdateDatabase>
        <ModArt id="UGSModArt">
            <Items>
                <File>Slavery.dep</File>
            </Items>
        </ModArt>
    </Components>

</Mod>

Slavery.dep file:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects::GameDependencyData>
    <ID>
        <!-- A Unique Name and GUID for your mod-->
        <name text="Civ6Slave"/>
        <id text="cb2f71b7-843e-4af3-9ca7-992acda9c122"/>
    </ID>
    <SystemDependencies>
        <Element>
            <!-- The type of thing you are adding -->
            <ConsumerName text="Units"/>
            <ArtDefDependencyPaths>
                <!-- The name of the file you are adding,
                     seems to have to be the same as a base
                     file name -->
                <Element text="Units.artdef"/>
            </ArtDefDependencyPaths>
        </Element>
    </SystemDependencies>
</AssetObjects::GameDependencyData>

Data/Icons_Slavery.xml file:
Code:
<?xml version="1.0" encoding="utf-8"?>
<GameInfo>
    <IconDefinitions>
        <!-- In general, just add "ICON_" to the front of any object you added -->
        <Row Name="ICON_POLICY_FORCED_LABOR" Atlas="ICON_ATLAS_POLICIES" Index="0"/>
        <Row Name="ICON_POLICY_INDENTURED_SERVITUDE" Atlas="ICON_ATLAS_POLICIES" Index="0"/>
        <Row Name="ICON_BUILDING_SLAVE_MARKET" Atlas="ICON_ATLAS_BUILDINGS" Index="11"/>
        <Row Name="ICON_UNIT_SLAVE_PORTRAIT" Atlas="ICON_ATLAS_UNIT_PORTRAITS" Index="1"/>
        <Row Name="ICON_UNIT_SLAVE" Atlas="ICON_ATLAS_UNITS" Index="1"/>
    </IconDefinitions>
</GameInfo>

ArtDefs/Units.artdef file:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects::ArtDefSet>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>238</build>
        <revision>243</revision>
    </m_Version>
    <m_TemplateName text="Units"/>
    <m_RootCollections>
        <Element>
            <m_CollectionName text="Units"/>
            <Element>
                <m_Fields>
                    <m_Values>
                        <Element class="AssetObjects::ArtDefReferenceValue">
                            <m_ElementName text="Builder"/>
                            <m_RootCollectionName text="UnitFormationTypes"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="Units"/>
                            <m_ParamName text="Formation"/>
                        </Element>
                        <Element class="AssetObjects::ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="UnitCombat"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>false</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="UnitCombat"/>
                        </Element>
                        <Element class="AssetObjects::ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="UnitFormationTypes"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="EscortFormation"/>
                        </Element>
                        <Element class="AssetObjects::ArtDefReferenceValue">
                            <m_ElementName text="UNIT_ANCIENTEMBARK"/>
                            <m_RootCollectionName text="Units"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text="Units"/>
                            <m_ParamName text="EmbarkedUnit"/>
                        </Element>
                        <Element class="AssetObjects::BoolValue">
                            <m_bValue>false</m_bValue>
                            <m_ParamName text="DoNotDisplayCharges"/>
                        </Element>
                        <Element class="AssetObjects::ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="UnitCulture"/>
                            <m_ArtDefPath text="Cultures.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="Culture"/>
                        </Element>
                        <Element class="AssetObjects::ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="Era"/>
                            <m_ArtDefPath text="Eras.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="Era"/>
                        </Element>
                        <Element class="AssetObjects::ArtDefReferenceValue">
                            <m_ElementName text=""/>
                            <m_RootCollectionName text="Units"/>
                            <m_ArtDefPath text="Units.artdef"/>
                            <m_CollectionIsLocked>true</m_CollectionIsLocked>
                            <m_TemplateName text=""/>
                            <m_ParamName text="ProxyUnit"/>
                        </Element>
                        <Element class="AssetObjects::BoolValue">
                            <m_bValue>false</m_bValue>
                            <m_ParamName text="PlayDeathOnDestroy"/>
                        </Element>
                        <Element class="AssetObjects::IntValue">
                            <m_nValue>-500</m_nValue>
                            <m_ParamName text="DisplayLevel"/>
                        </Element>
                    </m_Values>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Members"/>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects::FloatValue">
                                        <m_fValue>1.000000</m_fValue>
                                        <m_ParamName text="Scale"/>
                                    </Element>
                                    <Element class="AssetObjects::IntValue">
                                        <m_nValue>1</m_nValue>
                                        <m_ParamName text="Count"/>
                                    </Element>
                                    <Element class="AssetObjects::ArtDefReferenceValue">
                                        <m_ElementName text="Builder_Ancient01"/>
                                        <m_RootCollectionName text="UnitMemberTypes"/>
                                        <m_ArtDefPath text="Units.artdef"/>
                                        <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                        <m_TemplateName text="Units"/>
                                        <m_ParamName text="Type"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="A"/>
                        </Element>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects::FloatValue">
                                        <m_fValue>1.000000</m_fValue>
                                        <m_ParamName text="Scale"/>
                                    </Element>
                                    <Element class="AssetObjects::IntValue">
                                        <m_nValue>1</m_nValue>
                                        <m_ParamName text="Count"/>
                                    </Element>
                                    <Element class="AssetObjects::ArtDefReferenceValue">
                                        <m_ElementName text="Builder_Ancient02"/>
                                        <m_RootCollectionName text="UnitMemberTypes"/>
                                        <m_ArtDefPath text="Units.artdef"/>
                                        <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                        <m_TemplateName text="Units"/>
                                        <m_ParamName text="Type"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="B"/>
                        </Element>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects::FloatValue">
                                        <m_fValue>1.000000</m_fValue>
                                        <m_ParamName text="Scale"/>
                                    </Element>
                                    <Element class="AssetObjects::IntValue">
                                        <m_nValue>1</m_nValue>
                                        <m_ParamName text="Count"/>
                                    </Element>
                                    <Element class="AssetObjects::ArtDefReferenceValue">
                                        <m_ElementName text="Builder_Ancient03"/>
                                        <m_RootCollectionName text="UnitMemberTypes"/>
                                        <m_ArtDefPath text="Units.artdef"/>
                                        <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                        <m_TemplateName text="Units"/>
                                        <m_ParamName text="Type"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="C"/>
                        </Element>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects::FloatValue">
                                        <m_fValue>1.000000</m_fValue>
                                        <m_ParamName text="Scale"/>
                                    </Element>
                                    <Element class="AssetObjects::IntValue">
                                        <m_nValue>1</m_nValue>
                                        <m_ParamName text="Count"/>
                                    </Element>
                                    <Element class="AssetObjects::ArtDefReferenceValue">
                                        <m_ElementName text="Builder_Ancient04"/>
                                        <m_RootCollectionName text="UnitMemberTypes"/>
                                        <m_ArtDefPath text="Units.artdef"/>
                                        <m_CollectionIsLocked>true</m_CollectionIsLocked>
                                        <m_TemplateName text="Units"/>
                                        <m_ParamName text="Type"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="D"/>
                        </Element>
                    </Element>
                    <Element>
                        <m_CollectionName text="Audio"/>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects::StringValue">
                                        <m_Value text=""/>
                                        <m_ParamName text="XrefName"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="Entry"/>
                        </Element>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects::StringValue">
                                        <m_Value text="Builder"/>
                                        <m_ParamName text="XrefName"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="BUILDER"/>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="UNIT_SLAVE"/>
            </Element>
        </Element>
    </m_RootCollections>
</AssetObjects::ArtDefSet>

Data/Data.xml: This is just where he's updating the Gameplay database we're already familiar with, so I'm not including it here.

Icons

The new <Icons> element can occur under <Components> and/or <Settings> depending on whether the icons are needed during game set up or game play. Firaxis seems to have added the same files to both.

The file itself is an XML (though .sql would probably also work) that updates the in-memory icons database the same way that files under <UpdateDatabase> and <Custom> update their respective databases. [EDIT1]Per @Craig_Sutter, you can't use the same file names already used in the base directories, like "Icons_Buildings.xml".[/EDIT1]

This means you don't want to copy an existing file like Icons_Buildings.xml and start adding to it--your file only needs to add the new icons you want. [EDIT1]See @Horem 's post below for how to add new icon graphics.[/EDIT1] Note you can add icons of all types--buildings, units, etc., in the same file.

For "Name" you just prepend "ICON_" to whatever the identifier for your building, unit, etc., is--i.e., the value you used for "Type" when you added it to the Types table.

Dep/Artdefs

For artdefs, you *have* to use the same name as the file you are adding to, like Units.artdef, or the game won't load it--at least after an hour of trying I couldn't get it to load anything else (sorry @Deliverator ). You include only your additions to the file--you're not replacing the original file, you're adding to it. Note in the example Units.artdef file, only the XML for UNIT_SLAVE is included. [EDIT1]Per @Horem you can override existing objects by using the same name, such as defining a UNIT_TRADER object to change the traders' horses to reindeer.[/EDIT1]

The artdef files [EDIT1]must be in an ArtDefs directory off your mod's root directory per @Hajee .[/EDIT1]

Artdef files don't go anywhere in the .modinfo file at all, not even the main <Files> element--only in the .dep file which you put in your .modinfo file under <Components> and/or <Settings> under <ModArt><Items><File>.

The .dep file can be called anything, and needs to include any .artdef files you've added. Again, you seem to be extending the existing definitions rather than replacing them, so it's only necessary to include files you're adding in dependencies, etc., and you don't need to re-specify things like <LibraryDependencies> unless you really added a library--which would mean you've figured out how to create BLP files and you should be writing this post, not reading it....

You can see for example I didn't even include a <ArtDefDependencies> element. That *might* be necessary if you change 2 files that have a dependency on each other, but I'd try it without it first.

This is also where you'd add .blp files if we knew how to create them yet.

It's just as simple as that. The new DLC files seem to include a lot of stuff that isn't necessary, by testing I worked out the minimum required to get things working.

I've updated the XSD file at https://forums.civfanatics.com/threads/civ6-modinfo-schema.606784/ to reflect the new changes.
 
Last edited:
This means you don't want to copy an existing file like Icons_Buildings.xml and start adding to it--your file only needs to add the new icons you want. Until we get the BLP files figured out, you're limited to re-using existing icons in the game. Note you can add icons of all types--buildings, units, etc., in the same file.
We can add our own Icons without the use of BLP's. You add the dds files to the Import part of the ModInfo:
Code:
       <ImportFiles id="HS_Import">
           <Items>
               <File>Art/Icons/Tech/Haj1Tech30.dds</File>
               <File>Art/Icons/Tech/Haj1Tech38.dds</File>
               <File>Art/Icons/Tech/Haj1Tech42.dds</File>
               <File>Art/Icons/Tech/Haj1Tech42_FOW.dds</File>
               <File>Art/Icons/Tech/Haj1Tech128.dds</File>
               <File>Art/Icons/Tech/Haj1Tech160.dds</File>
               <File>Art/Icons/Districts/financeatlas32.dds</File>
               <File>Art/Icons/Districts/financeatlas38.dds</File>
               <File>Art/Icons/Districts/financeatlas50.dds</File>
               <File>Art/Icons/Districts/financeatlas80.dds</File>
               <File>Art/Icons/Districts/financeatlas128.dds</File>
               <File>Art/Icons/Districts/financeatlas256.dds</File>
           </Items>
       </ImportFiles>
Create the Icon Atlas and Icon Definitions in a new XML:
Code:
<?xml version="1.0" encoding="utf-8"?>
<GameInfo>
   <IconTextureAtlases>
       <Row Name="ICON_HS_ATLAS_DISTRICTS" IconSize="32" IconsPerRow="8" IconsPerColumn="8" Filename="financeatlas32.dds"/>
       <Row Name="ICON_HS_ATLAS_DISTRICTS" IconSize="38" IconsPerRow="8" IconsPerColumn="8" Filename="financeatlas38.dds"/>
       <Row Name="ICON_HS_ATLAS_DISTRICTS" IconSize="50" IconsPerRow="8" IconsPerColumn="8" Filename="financeatlas50.dds"/>
       <Row Name="ICON_HS_ATLAS_DISTRICTS" IconSize="80" IconsPerRow="8" IconsPerColumn="8" Filename="financeatlas80.dds"/>
       <Row Name="ICON_HS_ATLAS_DISTRICTS" IconSize="128" IconsPerRow="8" IconsPerColumn="8" Filename="financeatlas128.dds"/>
       <Row Name="ICON_HS_ATLAS_DISTRICTS" IconSize="256" IconsPerRow="8" IconsPerColumn="8" Filename="financeatlas256.dds"/>
       <Row Name="ICON_HS_ATLAS_DISTRICTS_FOW" IconSize="256" IconsPerRow="8" IconsPerColumn="8" Filename="financeatlas256.dds"/>
   </IconTextureAtlases>
   <IconDefinitions>
       <Row Name="ICON_DISTRICT_SHOPPING_COMPLEX"                 Atlas="ICON_HS_ATLAS_DISTRICTS" Index="0"/>
       <Row Name="ICON_DISTRICT_SOUQ"                                             Atlas="ICON_HS_ATLAS_DISTRICTS" Index="1"/>
       <Row Name="ICON_DISTRICT_SHOPPING_COMPLEX_FOW"      Atlas="ICON_HS_ATLAS_DISTRICTS_FOW" Index="0"/>
       <Row Name="ICON_DISTRICT_SOUQ_FOW"                                  Atlas="ICON_HS_ATLAS_DISTRICTS_FOW" Index="1"/>
   </IconDefinitions>
</GameInfo>
Then you add this to the Icon part of the ModInfo:
Code:
       <Icons id="HS_Icons_Component">
           <Items>
               <File>Art/Data/HS_Icons_Districts.xml</File>
               <File>Art/Data/HS_Icons_Tech.xml</File>          
           </Items>
       </Icons>
 
The artdef files can presumably go anywhere in your mod's directory structure, though I'd suggest following Firaxis and putting them in an ArtDefs directory right off the mod's root directory.

thank you for the guide. I wish I read this two hours ago to save me time.

For the quote This is important. AFTER I followed your guide I still could not get the artdef to load. Once I made a new folder call "ArtDefs" was when the graphic finally loaded. So yes it appears we must have that folder name correct in order for the mod to load the file(s)
 
@PlotinusRedux : thanks a lot !

Do you know if we can replace things instead of adding ?
 
@Gedemon : The Viking Scenario adds UnitDefs for UNIT_TRADER that says to me its possible to replace. They replace the Horses with Reindeers (Ho Ho Ho).
 
@Gedemon : The Viking Scenario adds UnitDefs for UNIT_TRADER that says to me its possible to replace. They replace the Horses with Reindeers (Ho Ho Ho).
Thanks, I'll have a look at the artdef.
 
This should be moved into Modding Tutorials and Reference IMO.
 
Is it possible to add FontIcons currently? What I'm trying doesn't seem to be working.
 
The winter patch finally made it possible to add icons and artdefs without users having to copy files. I played around with @UncivilizedGuy 's Slavery mod because he has both icon and artdef changes, and got it working without copying any of his files to my base directory, so I'm going to use that as an example.

Thanks! I love progress:goodjob:
 
I've added a new improvement, but i want it to look like Barbarian Camp. What should i write? I mean in artdef file?
 
For information, there is a <RequiredGameArtIDs> tag that can be used in the .dep file like this
Code:
    <RequiredGameArtIDs>
        <Element>
            <name text="DLC2"/>
            <id text="3809975F-263F-40A2-A747-8BFB171D821A"/>
        </Element>
    </RequiredGameArtIDs>
which has solved an issue I had with the initialization order of the winged hussard unit with R.E.D
 
For information, there is a <RequiredGameArtIDs> tag that can be used in the .dep file like this
Code:
    <RequiredGameArtIDs>
        <Element>
            <name text="DLC2"/>
            <id text="3809975F-263F-40A2-A747-8BFB171D821A"/>
        </Element>
    </RequiredGameArtIDs>
which has solved an issue I had with the initialization order of the winged hussard unit with R.E.D

@Gedemon , can you explain more about the situation this fixed? I saw that element being used by the Poland Scenario, but couldn't understand what it would actually do since the .modinfo already had the Poland DLC as a dependency.

Like you, I had found the order of loading of artdefs seemed to depend entire on the mod's ModRowId in mods.sqlite, unless the .modinfo had a dependency listed--at least between R.E.D and MoarUnits. Your R.E.D mod surely had a higher ModRowId than the DLC, do I'm trying to understand why the <RequiredGameArtIDs> was necessary/what it change, and if it is changing the order of .artdef loading independently of the order of mod loading itself.
 
I've managed to add almost all of my ArtDefs to my .dep file successfully, but I'm having some trouble with one file in particular and I'm hoping some of you with more civ modding experience can help me!

The problem comes from the WonderMovies.ArtDef file, which handles what world wonders look like on the map while they're being built. My attempts at adding this artdef to my .dep file have so far been unsuccessful, I "think" because I'm getting the ConsumerName wrong. For my other ArtDefs (Units, Buildings, and Districts) the consumer name is the same as the apparent name. But for WonderMovies.artdef, this doesn't seem to be the case. Anyone have any ideas?
 
@anansethespider when in doubt, look in base\Civ6.dep. From that, I think your problem is it should be WonderMovie.artdef and WonderMovie consumer--i.e., both singular, whereas your file is plural (unless that was just a typo in your post).
 
@Gedemon , can you explain more about the situation this fixed? I saw that element being used by the Poland Scenario, but couldn't understand what it would actually do since the .modinfo already had the Poland DLC as a dependency.

Like you, I had found the order of loading of artdefs seemed to depend entire on the mod's ModRowId in mods.sqlite, unless the .modinfo had a dependency listed--at least between R.E.D and MoarUnits. Your R.E.D mod surely had a higher ModRowId than the DLC, do I'm trying to understand why the <RequiredGameArtIDs> was necessary/what it change, and if it is changing the order of .artdef loading independently of the order of mod loading itself.
I'm using independent mods for compatibility, see R.E.D latest release.

Setting dependency in the .modinfo seems to work so that my compatibility mod (including the artdef. file) is loaded after R.E.D. and Moar Units, but it doesn't for the DLC (for the .artdef file, I suppose database update and file override does work)

So yes, the .artdef order appears to be independent in that case

in ArtDef.log with <RequiredGameArtIDs> :
Code:
[2017-01-03 14:00:25]     Added art file 'REDModpack: 8670da15-d435-44ea-9758-7438cb321411' to the ArtDefProvider.
[2017-01-03 14:00:25]     Added art file 'DLC2: 3809975F-263F-40A2-A747-8BFB171D821A' to the ArtDefProvider.
[2017-01-03 14:00:25]     Added art file 'VikingsLandmarks: 9b820c07-a45c-4963-9854-65e1d7545c10' to the ArtDefProvider.
[2017-01-03 14:00:25]     Added art file 'REDforPoland: 17b3fede-5505-4aed-88db-5a2026ea1dca' to the ArtDefProvider.

without:
Code:
[2017-01-03 17:39:38]     Added art file 'REDModpack: 8670da15-d435-44ea-9758-7438cb321411' to the ArtDefProvider.
[2017-01-03 17:39:38]     Added art file 'REDforPoland: 17b3fede-5505-4aed-88db-5a2026ea1dca' to the ArtDefProvider.
[2017-01-03 17:39:38]     Added art file 'DLC2: 3809975F-263F-40A2-A747-8BFB171D821A' to the ArtDefProvider.
[2017-01-03 17:39:38]     Added art file 'VikingsLandmarks: 9b820c07-a45c-4963-9854-65e1d7545c10' to the ArtDefProvider.
 
@Gedemon that's not good, so by default DLC artdef is always loading last, and to get your RED artdef to load after it, you have to make it a <RequiredGameArtIDs>? So you're having to have 2 separate .modinfo's, one for people with the DLC and one for people without, just to control the loading order? I don't suppose you tested what would happen if you tried the version with DLC2 in <RequiredGameArtIDs> with the DLC disabled to see if you could get away with 1 .modinfo?
 
Back
Top Bottom