Has anyone figured out a solution to the dreaded "asset cooker" build error?

Homusubi

Lafcadio Hearn Wannabe
Joined
Dec 21, 2012
Messages
1,035
Civ 6 seems so much more fussy than Civ 5...

I've been following Keniisu's mod-with-leader-art tutorial, and everything worked as planned, until I tried to build the mod:


Error 1 (UIErrorTexture) EXEC 0 1 SM_Satsuma

Error 2 The command ""C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI SDK\AssetModTools\Cooker\Civ6AssetCooker_Win64_null_FinalRelease.exe" --absolute_paths --no_mt --mode XLP --platform Windows --shaders "C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI SDK\AssetModTools\Cooker" --pantry "C:\Users\User\Documents\Modding\Civ 6\Sengoku Monogatari Modbuddy\Sengoku Monogatari Satsuma" "C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI SDK Assets\pantry" --stewpot "C:\Users\User\Documents\My Games\Sid Meier's Civilization VI\Mods\SM_Satsuma\Platforms\Windows\BLPs" --config "C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI SDK\AssetModTools\Cooker\Civ6.cfg" "C:\Users\User\Documents\Modding\Civ 6\Sengoku Monogatari Modbuddy\Sengoku Monogatari Satsuma\XLPs\UILeaders.xlp"" exited with code -1. C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI SDK\ModBuddy\Extensions\Application\Civ6.targets 83 6 SM_Satsuma



There appear to be several posts on Civfanatics etc. from a few months ago with the same error, but nobody seems to have found an answer. Please help: it took enough willpower to learn to code Civ 6 in the first place, I don't want to see it all amount to nothing due to some stupid tech error!
 
Have you checked your cooker.log?

It can be found here
Documents/Firaxis ModBuddy/Civilization VI/Your Mod name/Your Mod Name
 
Thanks, but don't worry... I've managed to fix it! It was a problem with using the template's XLPs instead of making my own.

That being said, if you know of a way to fix the Cleopatra-by-default bug given that my UI leader image is working properly, it would be much appreciated.

(By the way, are you going to do a version of your Elder Scrolls mods for Civ 6?)
 
Thanks, but don't worry... I've managed to fix it! It was a problem with using the template's XLPs instead of making my own.

That being said, if you know of a way to fix the Cleopatra-by-default bug given that my UI leader image is working properly, it would be much appreciated.

(By the way, are you going to do a version of your Elder Scrolls mods for Civ 6?)

Been working on TES CIV 6 for the past few weeks. Civ 6 modding is much more tedious. I was hoping to get it out before Rise and Fall, but that doesn't look like it's going to happen.

Anyway, yes I have gotten rid of Cleopatra. Since I don't know where you are at in terms of your mod, I'll just give an overview of the entire process.

DDS, TEX, XLP Info
Spoiler :
You need to bring your DDS in through Asset Editor. You can do it one of two ways. You can bring it in just as a Texture, or you can bring it in as an XLP. (Bringing it in as an XLP will automatically create your .tex file and you .xlp file for your .dds.) *side note: if you already have an XLP for the Category, then bringing it in as a texture and updating the XLP is the way to go.

XLP Class should be LeaderFallback (select from dropdown), and your Package name should be "LeaderFallbacks". Under Entries you will click the document icon for "Add New", then click Add Source File, navigate to your DDS for your Leader Fallback Image and double click it, then click import. Then you'll want to click the Blue Disk icon up top to save it as LeaderFallbacks, save it wherever you want.

Now you'll go back to ModBuddy. If you don't already have a folder called XLPs, go ahead and create one, and then right click the folder and click add existing. Navigate to your LeaderFallbacks.xlp and add it to the folder.

Your XLP should look something like this. *Note the .. between AssetObjects and XLP, ModBuddy makes it a :: which is illegal syntax in XML, so you'll need to change that most likely.
Code:
<AssetObjects..XLP>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>315</build>
        <revision>805</revision>
    </m_Version>
    <m_ClassName text="LeaderFallback"/>
    <m_PackageName text="LeaderFallbacks"/>
    <m_Entries>
        <Element>
            <m_EntryID text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
            <m_ObjectName text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
        </Element>

I'm not sure if this is necessary or not, but at this point I right click on my Textures folder and add existing, then I navigate to my solution in modbuddy and go to the Textures folder, in there is where your .dds was imported and the .tex was auto-generated, both will have the same name......then I import them both. Once imported to ModBuddy you can click on the .tex file in the solution explorer and take a look at that code....nothing should be amiss here, but it doesn't hurt to check it out to better understand what the purpose of it is.

Now that you have imported your DDS and .tex files and created an XLP, you're only part of the way done.


We still need FallbackLeaders.artdef, and to update our Mod.Art.xml

ArtDef Info
Spoiler :
There's probably a way to create an artdef document through Asset Editor, but I don't know how, so I just vulture one from another mod, or find one in the base game folders and import to modbuddy via "add existing".

In any case, for a single leader, it will look like this:

Code:
<AssetObjects..ArtDefSet>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>315</build>
        <revision>805</revision>
    </m_Version>
    <m_TemplateName text="LeaderFallback"/>
    <m_RootCollections>
        <Element>
            <m_CollectionName text="Leaders"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values/>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Animations"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects..BLPEntryValue">
                                        <m_EntryName text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
                                        <m_XLPClass text="LeaderFallback"/>
                                        <m_XLPPath text="LeaderFallbacks.xlp"/>
                                        <m_BLPPackage text="LeaderFallbacks"/>
                                        <m_LibraryName text="LeaderFallback"/>
                                        <m_ParamName text="BLP Entry"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="DEFAULT"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="LEADER_KC20_TES_AYRENN"/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>
    </m_RootCollections>
</AssetObjects..ArtDefSet>

This is where the game defines which leader to apply the .dds (which is defined in your xlp).

Now that you have an art def, you just need to update mod.art.xml to tell the game to look for the artwork.


Mod.Art.xml Info
Spoiler :
There are 2 primary sections in mod.art.xml. 1 is ArtConsumers and 2 is GameLibraries

Under Art Consumers you will need the following element:

Code:
<Element>
            <consumerName text="LeaderFallback"/>
            <relativeArtDefPaths>
                <Element text="FallbackLeaders.artdef"/>   --- ADD THIS LINE to point to the artdef
            </relativeArtDefPaths>
            <libraryDependencies>
                <Element text="LeaderFallback"/> --- This should already be there and it points to the Game Libraries section below
            </libraryDependencies>
            <loadsLibraries>true</loadsLibraries>
        </Element>

and under Game Libraries you will need the following element:

Code:
<Element>
            <libraryName text="LeaderFallback"/> ---Tied in from the above
            <relativePackagePaths>
                <Element text="LeaderFallbacks.blp"/> ---Ties to your blp, which is created by your xlp.
            </relativePackagePaths>
        </Element>

Once you have all of that, it should be working.
 
Last edited:
It works! Thanks ever so much for taking the time to write all that and show me how to get rid of Cleo!
 
Been working on TES CIV 6 for the past few weeks. Civ 6 modding is much more tedious. I was hoping to get it out before Rise and Fall, but that doesn't look like it's going to happen.

Anyway, yes I have gotten rid of Cleopatra. Since I don't know where you are at in terms of your mod, I'll just give an overview of the entire process.

DDS, TEX, XLP Info
Spoiler :
You need to bring your DDS in through Asset Editor. You can do it one of two ways. You can bring it in just as a Texture, or you can bring it in as an XLP. (Bringing it in as an XLP will automatically create your .tex file and you .xlp file for your .dds.) *side note: if you already have an XLP for the Category, then bringing it in as a texture and updating the XLP is the way to go.

XLP Class should be LeaderFallback (select from dropdown), and your Package name should be "LeaderFallbacks". Under Entries you will click the document icon for "Add New", then click Add Source File, navigate to your DDS for your Leader Fallback Image and double click it, then click import. Then you'll want to click the Blue Disk icon up top to save it as LeaderFallbacks, save it wherever you want.

Now you'll go back to ModBuddy. If you don't already have a folder called XLPs, go ahead and create one, and then right click the folder and click add existing. Navigate to your LeaderFallbacks.xlp and add it to the folder.

Your XLP should look something like this. *Note the .. between AssetObjects and XLP, ModBuddy makes it a :: which is illegal syntax in XML, so you'll need to change that most likely.
Code:
<AssetObjects..XLP>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>315</build>
        <revision>805</revision>
    </m_Version>
    <m_ClassName text="LeaderFallback"/>
    <m_PackageName text="LeaderFallbacks"/>
    <m_Entries>
        <Element>
            <m_EntryID text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
            <m_ObjectName text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
        </Element>

I'm not sure if this is necessary or not, but at this point I right click on my Textures folder and add existing, then I navigate to my solution in modbuddy and go to the Textures folder, in there is where your .dds was imported and the .tex was auto-generated, both will have the same name......then I import them both. Once imported to ModBuddy you can click on the .tex file in the solution explorer and take a look at that code....nothing should be amiss here, but it doesn't hurt to check it out to better understand what the purpose of it is.

Now that you have imported your DDS and .tex files and created an XLP, you're only part of the way done.


We still need FallbackLeaders.artdef, and to update our Mod.Art.xml

ArtDef Info
Spoiler :
There's probably a way to create an artdef document through Asset Editor, but I don't know how, so I just vulture one from another mod, or find one in the base game folders and import to modbuddy via "add existing".

In any case, for a single leader, it will look like this:

Code:
<AssetObjects..ArtDefSet>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>315</build>
        <revision>805</revision>
    </m_Version>
    <m_TemplateName text="LeaderFallback"/>
    <m_RootCollections>
        <Element>
            <m_CollectionName text="Leaders"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values/>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Animations"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects..BLPEntryValue">
                                        <m_EntryName text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
                                        <m_XLPClass text="LeaderFallback"/>
                                        <m_XLPPath text="LeaderFallbacks.xlp"/>
                                        <m_BLPPackage text="LeaderFallbacks"/>
                                        <m_LibraryName text="LeaderFallback"/>
                                        <m_ParamName text="BLP Entry"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="DEFAULT"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="LEADER_KC20_TES_AYRENN"/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>
    </m_RootCollections>
</AssetObjects..ArtDefSet>

This is where the game defines which leader to apply the .dds (which is defined in your xlp).

Now that you have an art def, you just need to update mod.art.xml to tell the game to look for the artwork.


Mod.Art.xml Info
Spoiler :
There are 2 primary sections in mod.art.xml. 1 is ArtConsumers and 2 is GameLibraries

Under Art Consumers you will need the following element:

Code:
<Element>
            <consumerName text="LeaderFallback"/>
            <relativeArtDefPaths>
                <Element text="FallbackLeaders.artdef"/>   --- ADD THIS LINE to point to the artdef
            </relativeArtDefPaths>
            <libraryDependencies>
                <Element text="LeaderFallback"/> --- This should already be there and it points to the Game Libraries section below
            </libraryDependencies>
            <loadsLibraries>true</loadsLibraries>
        </Element>

and under Game Libraries you will need the following element:

Code:
<Element>
            <libraryName text="LeaderFallback"/> ---Tied in from the above
            <relativePackagePaths>
                <Element text="LeaderFallbacks.blp"/> ---Ties to your blp, which is created by your xlp.
            </relativePackagePaths>
        </Element>

Once you have all of that, it should be working.

Any chance you can help me out some? I seem to have messed up somewhere along the way and I can't seem to figure out how, I've had a mess of problems I keep solving by accident lol. Main question is how would I go about loading stock game assets? I learn best when I have something to reverse engineer, but best I can really find is various templates. I'd like to start working on a special swordsman but I figured I should probably fix my pics first.
 
Been working on TES CIV 6 for the past few weeks. Civ 6 modding is much more tedious. I was hoping to get it out before Rise and Fall, but that doesn't look like it's going to happen.

Anyway, yes I have gotten rid of Cleopatra. Since I don't know where you are at in terms of your mod, I'll just give an overview of the entire process.

DDS, TEX, XLP Info
Spoiler :
You need to bring your DDS in through Asset Editor. You can do it one of two ways. You can bring it in just as a Texture, or you can bring it in as an XLP. (Bringing it in as an XLP will automatically create your .tex file and you .xlp file for your .dds.) *side note: if you already have an XLP for the Category, then bringing it in as a texture and updating the XLP is the way to go.

XLP Class should be LeaderFallback (select from dropdown), and your Package name should be "LeaderFallbacks". Under Entries you will click the document icon for "Add New", then click Add Source File, navigate to your DDS for your Leader Fallback Image and double click it, then click import. Then you'll want to click the Blue Disk icon up top to save it as LeaderFallbacks, save it wherever you want.

Now you'll go back to ModBuddy. If you don't already have a folder called XLPs, go ahead and create one, and then right click the folder and click add existing. Navigate to your LeaderFallbacks.xlp and add it to the folder.

Your XLP should look something like this. *Note the .. between AssetObjects and XLP, ModBuddy makes it a :: which is illegal syntax in XML, so you'll need to change that most likely.
Code:
<AssetObjects..XLP>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>315</build>
        <revision>805</revision>
    </m_Version>
    <m_ClassName text="LeaderFallback"/>
    <m_PackageName text="LeaderFallbacks"/>
    <m_Entries>
        <Element>
            <m_EntryID text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
            <m_ObjectName text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
        </Element>

I'm not sure if this is necessary or not, but at this point I right click on my Textures folder and add existing, then I navigate to my solution in modbuddy and go to the Textures folder, in there is where your .dds was imported and the .tex was auto-generated, both will have the same name......then I import them both. Once imported to ModBuddy you can click on the .tex file in the solution explorer and take a look at that code....nothing should be amiss here, but it doesn't hurt to check it out to better understand what the purpose of it is.

Now that you have imported your DDS and .tex files and created an XLP, you're only part of the way done.


We still need FallbackLeaders.artdef, and to update our Mod.Art.xml

ArtDef Info
Spoiler :
There's probably a way to create an artdef document through Asset Editor, but I don't know how, so I just vulture one from another mod, or find one in the base game folders and import to modbuddy via "add existing".

In any case, for a single leader, it will look like this:

Code:
<AssetObjects..ArtDefSet>
    <m_Version>
        <major>4</major>
        <minor>0</minor>
        <build>315</build>
        <revision>805</revision>
    </m_Version>
    <m_TemplateName text="LeaderFallback"/>
    <m_RootCollections>
        <Element>
            <m_CollectionName text="Leaders"/>
            <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            <Element>
                <m_Fields>
                    <m_Values/>
                </m_Fields>
                <m_ChildCollections>
                    <Element>
                        <m_CollectionName text="Animations"/>
                        <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                        <Element>
                            <m_Fields>
                                <m_Values>
                                    <Element class="AssetObjects..BLPEntryValue">
                                        <m_EntryName text="LEADER_KC20_TES_AYRENN_FALLBACK"/>
                                        <m_XLPClass text="LeaderFallback"/>
                                        <m_XLPPath text="LeaderFallbacks.xlp"/>
                                        <m_BLPPackage text="LeaderFallbacks"/>
                                        <m_LibraryName text="LeaderFallback"/>
                                        <m_ParamName text="BLP Entry"/>
                                    </Element>
                                </m_Values>
                            </m_Fields>
                            <m_ChildCollections/>
                            <m_Name text="DEFAULT"/>
                            <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                        </Element>
                    </Element>
                </m_ChildCollections>
                <m_Name text="LEADER_KC20_TES_AYRENN"/>
                <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
            </Element>
        </Element>
    </m_RootCollections>
</AssetObjects..ArtDefSet>

This is where the game defines which leader to apply the .dds (which is defined in your xlp).

Now that you have an art def, you just need to update mod.art.xml to tell the game to look for the artwork.


Mod.Art.xml Info
Spoiler :
There are 2 primary sections in mod.art.xml. 1 is ArtConsumers and 2 is GameLibraries

Under Art Consumers you will need the following element:

Code:
<Element>
            <consumerName text="LeaderFallback"/>
            <relativeArtDefPaths>
                <Element text="FallbackLeaders.artdef"/>   --- ADD THIS LINE to point to the artdef
            </relativeArtDefPaths>
            <libraryDependencies>
                <Element text="LeaderFallback"/> --- This should already be there and it points to the Game Libraries section below
            </libraryDependencies>
            <loadsLibraries>true</loadsLibraries>
        </Element>

and under Game Libraries you will need the following element:

Code:
<Element>
            <libraryName text="LeaderFallback"/> ---Tied in from the above
            <relativePackagePaths>
                <Element text="LeaderFallbacks.blp"/> ---Ties to your blp, which is created by your xlp.
            </relativePackagePaths>
        </Element>

Once you have all of that, it should be working.

I saw your code, and I immediately thought that now modbuddy can be possible to me! I tried quickly and my leader appeared for first time at selection screen! You should do a tutorial with it!
 
Top Bottom