Is it still possible to Update Art without downloading 36GB of SDK Assets?

dartmor

Chieftain
Joined
Oct 23, 2010
Messages
55
Location
Russia
I'm trying to update Units.artdef file using old school with .dep and <Modart> thing, but can't succeed so far. Is it still even possible? Or I am forced to download 36GB of Assets for ANY changes to artdefs?

Structure:
ArtDefs/Units.artdef
Data/Data.xml
Data/Icons_Slavery.xml
Slavery.dep
Slavery.modinfo

Units.artdef
I've just copied Scout unit's artdef and replaced UNIT_SCOUT with my unit
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_Fields>
            <m_Values>
                <Element class="AssetObjects..ArtDefReferenceValue">
                    <m_ElementName text="Scout"/>
                    <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_SINGLE"/>
                    <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>0</m_nValue>
                    <m_ParamName text="DisplayLevel"/>
                </Element>
            </m_Values>
        </m_Fields>
        <m_ChildCollections>
            <Element>
                <m_CollectionName text="Members"/>
                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                <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="Scout"/>
                                <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="Members1"/>
                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                </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="ScoutDog"/>
                                <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="Members2"/>
                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                </Element>
            </Element>
            <Element>
                <m_CollectionName text="Audio"/>
                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
                <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=""/>
                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                </Element>
                <Element>
                    <m_Fields>
                        <m_Values>
                            <Element class="AssetObjects..StringValue">
                                <m_Value text="Scout"/>
                                <m_ParamName text="XrefName"/>
                            </Element>
                        </m_Values>
                    </m_Fields>
                    <m_ChildCollections/>
                    <m_Name text="BRUTE"/>
                    <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
                </Element>
            </Element>
            <Element>
                <m_CollectionName text="AttachmentVisibility"/>
                <m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
            </Element>
        </m_ChildCollections>
        <m_Name text="UNIT_BRUTE"/>
        <m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
    </Element>
    </m_RootCollections>
</AssetObjects..ArtDefSet>


Data/Data.xml

Code:
<?xml version="1.0" encoding="utf-8"?>
<GameData>
  <!-- Almost all gameplay types should first be added to the types table. -->
  <!-- This serves as a central way to reference any type -->
  <Types>
    <Row Type="UNIT_BRUTE" Kind="KIND_UNIT" />
  </Types>
  <!-- Define the actual unit here. For examples of additional properties and values, look at Units.xml in /Base/Assets/Gameplay/Data/-->
  <Units>
      <Row UnitType="UNIT_BRUTE" Cost="1" BaseMoves="4" BaseSightRange="2" ZoneOfControl="false" Domain="DOMAIN_LAND" Combat="20" FormationClass="FORMATION_CLASS_LAND_COMBAT" PromotionClass="PROMOTION_CLASS_MELEE" AdvisorType="ADVISOR_CONQUEST" Name="LOC_UNIT_BRUTE_NAME" Description="LOC_UNIT_BRUTE_DESCRIPTION" PurchaseYield="YIELD_GOLD" MandatoryObsoleteTech="TECH_GUNPOWDER"/>
  </Units>
</GameData>

Data/Icons_Slavery.xml

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_BUILDING_BRUTE_MARKET" Atlas="ICON_ATLAS_BUILDINGS" Index="11"/>
    <Row Name="ICON_UNIT_BRUTE_PORTRAIT" Atlas="ICON_ATLAS_UNIT_PORTRAITS" Index="1"/>
    <Row Name="ICON_UNIT_BRUTE" Atlas="ICON_ATLAS_UNITS" Index="1"/>
  </IconDefinitions>
</GameInfo>

Slavery.dep
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>
                <ConsumerName text="Units"/>
                <ArtDefDependencyPaths>
                       <Element text="Units.artdef"/>
                </ArtDefDependencyPaths>
        </Element>

    </SystemDependencies>
</AssetObjects::GameDependencyData

Slavery.modinfo
Code:
<?xml version="1.0" encoding="utf-8"?>
<Mod id="039cbfec-dbde-4e2e-9bb9-19787b5c6F813" version="1">
  <Properties>
    <Name>Test test test 5</Name>
    <Description>This starter mod demonstrates how to create a new unit.</Description>
    <Created>1624213419</Created>
    <Teaser>This starter mod demonstrates how to create a new unit.</Teaser>
    <Authors>Dart</Authors>
    <CompatibleVersions>1.2,2.0</CompatibleVersions>
  </Properties>
<Files>
    <File>Data/Data.xml</File>
    <File>Data/Icons_Slavery.xml</File>
    <File>Slavery.dep</File>
  </Files>

  <FrontEndActions />
    <InGameActions>
        <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>
    </InGameActions>

  </Mod>
 
Last edited:
Logs

[873366.938] Target in-game actions (in order of application):
[873366.938] 039cbfec-dbde-4e2e-9bb9-19787b5c6F813 (Test test test 5)
[873366.938] * UGSIcons (Icons)
[873366.939] * UGSComponent (UpdateDatabase)
[873366.939] * UGSModArt (ModArt)
[873366.940] Game content needs to change to match target config.
[873366.940] Performing pre configure processing.
[873366.948] Unloading Gameplay DLL.
[873366.949] Reloading Gameplay DLL.
[873366.952] Localization database unchanged, no rollback needed.
[873366.952] Rebuilding gameplay database.
[873367.166] Reverted Gameplay database to its original state.
[873367.166] Updating gameplay database with embedded GameCore data.
[873367.182] Updated gameplay database with GameCore data.
[873367.182] Applying mod components.
[873367.182] UpdateContent - Importing implicit files, pre components
[873367.183] Modding Framework - Applying Components
[873367.201] Applying Component - UGSIcons (Icons)
[873367.202] UpdateIcons - Loading Data/Icons_Slavery.xml
[873367.203] Applying Component - UGSComponent (UpdateDatabase)
[873367.204] UpdateDatabase - Loading Data/Data.xml
[873367.204] Applying Component - UGSModArt (ModArt)
[873367.205] ModArtLoader - Loading Slavery.dep
[873367.224] Modding Framework - Finished Apply Components
[873367.224] Applied all components of enabled mods.
[873367.224] UpdateContent - Importing implicit files, post components
[873367.240] Initializing Gameplay DLL.
[873367.240] Saving a debug version of the gameplay database.
[873367.449] Performing post configure processing.
[873367.628] Reloading icons.
[873367.681] Reloading colors.
[873367.781] Successfully reconfigured game.
[873372.854] Reloading Tuner states.
[873408.412] Modding Framework - Shutting down framework.
[873408.412] Releasing Modding Framework Services...
[873408.412] Services released!
 
Back
Top Bottom