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
Data/Data.xml
Data/Icons_Slavery.xml
Slavery.dep
Slavery.modinfo
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: