Custom Units for WH3: Difference between revisions

From Total War Modding
mNo edit summary
(HUGE CHANGES fixed stuff)
 
Line 1: Line 1:
Hello! My name is Casualfield, welcome to my guide for creating custom units in WH3. I've done over 40 new units and figured it's time to give the community an updated guide for WH3, it's loooong overdue. Steam version [https://steamcommunity.com/sharedfiles/filedetails/?id=3335345328 here].
Hello! My name is Casualfield, welcome to my guide for creating custom units in WH3. I've done over 40 new units and figured it's time to give the community an updated guide for WH3. Steam version [https://steamcommunity.com/sharedfiles/filedetails/?id=3335345328 here], it has pretty pictures and layout (I'm bad at wiki ok).


==Requirements==
== The Main Tables ==
First and foremost you need the latest version of RPFM, which you can download from [https://github.com/Frodo45127/rpfm here]. Second you need the Total War: Warhammer 3 Assembly Kit, which can be downloaded in your Steam library under the tools section (keep track of where you install it). That's it! Since most people reading this will be beginners, I highly recommend going to [https://tw-modding.com/ https://tw-modding.com] and reading through the guides and tutorials.
=== Find a Base Game Unit to use as a Foundation ===
So, going into the weeds a little here, I HIGHLY recommend to always use a base game unit for a foundation of a new unit; creating new units from scratch is very time consuming, will leave you with loads of empty columns and a single empty/invalid key won't always trigger diagnostics and your game will CTD with no error leaving you on a horrid needle in a haystack search. You'll need to reference a base unit anyways to see where and how it's added in-game.  


== Setting Up RPFM ==
'''Finding a Base Game Unit, or anything really'''
Open rpfm_ui.exe (I'd create a shortcut and or pin it to your start/taskbar now) and at the top left go to PackFile > settings, or hit Ctrl + P, and set up the paths for WH3 and The Assembly Kit, usually C:/Program Files (x86)/Steam/steamapps/common/Total War WARHAMMER III. Now in the same window go to the settings tab in the top left. Under the UI Settings set the Default Game to WH3, I recommend unchecking "Delete empty folders" and enabling Dark Theme. Now under Table Settings I recommend enabling Tight Mode and Right-Side Markers. Read through the rest of the settings and change what you want and hit save when you are done.


Now back to the top left, go to Special Stuff > Warhammer 3 > Generate Dependencies Cache. This is extremely important and you will need to do this every update. This insures the game files are loaded and updated so RPFM can run diagnostics and you can import the game files into your packfile. Next, go back to the top left, View > Toggle Global Search Window. I recommend dragging this window far left and 50/50 splitting it with Pack Contents as this is the bread and butter window which you will be using constantly. Under View > Toggle on Dependencies Window, I recommend dragging this window to the left of the Diagnostics window. Done! Let's make a new unit!
The main_units table is where you should ideally start but how do I find my unit? Let's say I want to base my unit off the Dark Elves Black Guard. We need find that units' key. USUALLY the units are named after their screen name so we can search black in the search bar at the bottom.


== The Juice ==
If we can't find the key use Global Search, make sure the source is game files and both DB & loc are checked. We can search in-game text that will connect to .loc files.
First we need to go to PackFile > New Pack, or CTRL + N, to make a new Pack and then we need to save and name it, CTRL + SHFT + S or PackFile > Save PackFile As. The default location should be in the Total War WARHAMMER III\data folder. Save it here or, if you want another copy of your pack for backup or other reasons, save it in another location. Another location requires that you install it EVERY TIME you want to test the mod in-game, which is done via PackFile > Install, or CTRL + SHFT + I which will install it into the data folder. As for the name DO NOT end the name in a number, same for any file names in the pack to avoid....issues. It's best practice to put your name/initials in front, so cf_new_black_guards.pack.


=== Find a Base Game Unit to use as a Foundation ===
In this case "Black Guard of Naggarond" is connected to land_units_onscreen_name_wh2_main_def_inf_black_guard_0. The unit key is wh2_main_def_inf_black_guard_0 so we can Global Search that.
So, going into the weeds a little here, I HIGHLY recommend to always base a new unit off a base game unit as creating new units from scratch is very time consuming and will leave you with loads of empty columns and a single empty key won't always trigger diagnostics and your game will CTD with no error leaving you on a horrid needle in haystack search, plus you need to reference a base unit anyways to see where and how it's added in-game. So if you are adding a new Dark Elf unit, reference a base Dark Elf unit.  


So, let's say I want to base my unit off the Dark Elves Black Guard. We need find that units' key. USUALLY the units are named after their screen name so in the Global search window type black_guard, make sure the source is game files and both DB & loc are checked and hit search. Now we have all the tables with "black_guard" in them.  
Alternatively we can do a right click > go to ... > definition.


If you can't find your unit search the in-game name "Black Guard of Naggarond" and find the key in the .loc files, i.e. land_units_onscreen_name_wh2_main_def_inf_black_guard_0. The unit key is after "land_units_onscreen_name_" so delete and search wh2_main_def_inf_black_guard_0. Alternatively you can use https://totalwarwarhammer.fandom.com/ to search for the unit and they usually have the unit key under the unit's picture.  
Alternatively again you can use find references.  


=== Importing tables ===
=== Importing tables ===
There's a few methods here but, the one I use is to import the whole table either by right clicking the table tab at the top after opening the table or by importing it from the dependencies window. Afterwards I search the table for the unit, copy the whole row by clicking on the row number and using ctrl + c, then ctrl + a to highlight the whole table, delete key to delete everything and then ctrl + shft + v to paste the row back in. After you are ready to test the mod you can highlight all the tables by ctrl + left click and then ctrl + r to rename them all at once because leaving them named data__ will overwrite the base game files and cause a crash.
There's a few methods to do this, the one I use is to import the whole table by right clicking the table tab at the top after opening the table.
 
I open the new imported table, copy the whole row[s] I want by clicking on the row number and then highlight the whole table using the default shortcut keys [ctrl + a], then delete everything and then paste the copied row[s] back in with another shortcut key ctrl + shft + v.
 
--NOTE: After you are ready to test the mod you can highlight all the tables by ctrl + left clicking them and then using a default shortcut key [ctrl + r] to rename them all at once. Leaving them named data__ will overwrite the base game files, don't do that unless you know what you are doing.


=== Important tables to Import ===
=== Important tables to Import ===
Line 35: Line 37:
db/campaign_map_attrition_unit_immunities_tables -- Give the unit attrition immunity, imagine vampires taking vampire attrition.
db/campaign_map_attrition_unit_immunities_tables -- Give the unit attrition immunity, imagine vampires taking vampire attrition.


db/campaign_rogue_army_group_units_tables --Ignore. Adds the unit to Rogue armies, xp is unit rank. MUST use a UNIQUE ID key.
db/campaign_rogue_army_group_units_tables --Can Ignore. Adds the unit to Rogue armies, xp is unit rank. MUST use a UNIQUE ID key.


db/cdir_military_generator_unit_qualities_tables --Helps the AI understand the unit's performance and role when recruiting.
db/cdir_military_generator_unit_qualities_tables --Helps the AI understand the unit's performance and role when recruiting.


db/faction_rebellion_units_junctions_tables --Ignore. Adds unit to rebel armies.
db/faction_rebellion_units_junctions_tables --Can Ignore. Adds unit to rebel armies.


'''db/land_units_tables''' --The second most important table. Contains the stats and other very import things, will go in-depth later on.
db/land_units_tables --The second most important table. Contains the stats and other very import things, will go in-depth later on.


db/land_units_to_unit_abilites_junctions_tables --Add an ability to the unit.
db/land_units_to_unit_abilites_junctions_tables --Add an ability to the unit.
Line 47: Line 49:
db/loading_screen_tables --Ignore. Add the unit to loading screens, requires a few tables, .locs and proper images. Reference vanilla entries.
db/loading_screen_tables --Ignore. Add the unit to loading screens, requires a few tables, .locs and proper images. Reference vanilla entries.


'''db/main_units_tables''' --The main table for the unit. Messing things up here will cause many issues especially crashes, will go in-depth later on.
db/main_units_tables --The main table for the unit. Messing things up here will cause many issues especially crashes, will go in-depth later on.


db/ui_unit_bullet_point_unit_overrides_tables --Controls the bullet points on the unit card, max of four.
db/ui_unit_bullet_point_unit_overrides_tables --Controls the bullet points on the unit card, max of four.
Line 61: Line 63:
db/unit_variants_tables --Connects the unit to a variant and unit card. The variant will be a different name and will need to be searched for separately.
db/unit_variants_tables --Connects the unit to a variant and unit card. The variant will be a different name and will need to be searched for separately.


db/units_custom_battle_permissions_tables --Add the unit to a faction for custom battles.  
db/units_custom_battle_permissions_tables --Add the unit to a faction for custom battles.


db/units_to_groupings_military_permissions_tables --Add the unit to a factions military group which enables it in campaign.
db/units_to_groupings_military_permissions_tables --Add the unit to a factions military group which enables it in campaign.
Line 68: Line 70:


== Adding .locs ==
== Adding .locs ==
Just keep importing like before. You can change the name of the unit now if you want. You only need one .loc file so you can combine them if you want but, for organization you can follow vanilla naming scheme but, DO NOT keep file names the same to prevent issues. DO NOT enabled tooltip unless the base game entry does, which for units is never. Alternately you can right click the packfile name and generate missing .loc data. but, not everything is needed.
Different factions have different tables, recruitment methods ect. You'll need to use deductive reasoning to determine if a table I didn't mention should be added or you can create a post/question in the modding discord found here <nowiki>https://discord.gg/moddingden</nowiki>.


== Disclaimer ==
== Disclaimer ==
Line 79: Line 81:


== Customizing the main_units_table ==
== Customizing the main_units_table ==
<nowiki>*</nowiki>'''Unit''': The units unique key.
For the sake of saving space and time, I'll just refer you to use the tooltips in RPFM (not always correct but close enough) and again just reference vanilla. If there are no tooltips usually that means the name of the row is self explanatory or it's not used. In the case of naval stuff just reference the vanilla table. If literally every single unit has "wh_main_shp_transport" in Naval Unit, yours should too....


<nowiki>*</nowiki>'''Additional Building Requirement:''' Requires that a building must be built first for the unit to be available.
== Customizing the land_unit_table ==
This table is pretty self explanatory. Use the tooltips in RPFM to see what things do and link to. Global Search stuff to find things like the melee weapon so you can customize the units melee damage and weapon stats.  


<nowiki>*</nowiki>'''Campaign''' '''Cap''': -1 is no cap, anything higher means only that amount will be allowed unless increased by an effect or script.
Man Entity references the battle_entities table, which controls things like the unit speed, mass, and hitbox.


<nowiki>*</nowiki>'''Caste''': Can cause issues if using an incorrect entry. Controls a few UI things and max stat values. Links to unit sets too.
If you want to change the unit to a different type of weapon style i.e from halberds to dual wield you'll need to look at the Man Animation and you need to match the skeleton or the model will become all stretchy and spaghetti. So Hu1c's have to use Hu1c animations, if they don't have an animation you want you'll need to make a custom one, have fun with that.


<nowiki>*</nowiki>'''Create''' '''Time''': Turns to recruit. Doesn't affect things like RoRs or units that replenish over time or are given via effects or scripts.
== Customizing the Unit Card Picture and Variant ==
The unit_variants_tables references the unit card file which can be found in ui/units/icons/filename.png. Import a vanilla one for easy folder creation to ensure the path is correct. You can export a random one to your desktop and edit it to your liking and then right click the folder and add file to import it. Make sure you use the correct size and type of file (png) and do not do things like interlace the image.


<nowiki>*</nowiki>'''Is''' '''Naval''': ALWAYS Uncheck
The unit_variants_tables will reference the variants_tables which links to a variantmeshdefinition. Import a vanilla one to ensure the file path is correct. Inside the variantmeshdefinition you can change things like the model & weapons of the unit. Again if the model doesn't fit the skeleton you'll get a mess in game. Different animations use different weapon slots and some slots require a name. Just always fall back on a vanilla file if you have issues you can create a post/question in the modding discord found [https://discord.gg/moddingden here] if you need help.


<nowiki>*</nowiki>'''Land''' '''Unit''': Links to a land unit, should be the same key as the main unit.
== Common Issues ==
If you are crashing to the desktop immediately after opening the game with no error message you likely are missing a table that is being called on by something or you have an empty field/key and RPFM diagnostic didn't catch it.


<nowiki>*</nowiki>'''Number''' '''of''' '''Men''': Number of models per unit on Ultra unit size setting.
If you are crashing when loading into a custom battle it's probably something in the main_units table, caste, unit type, voice over stuff or empty fields are likely.


<nowiki>*</nowiki>'''Multiplayer Cap''': Controlled else where pretty sure, set it to 0 or what ever.
If you you are crashing loading into a NEW campaign it could be any of the above or more invalid keys. Pretty much applies to if you can load into the campaign but crash when it has to load your unit, something like missing permission tables.


<nowiki>*</nowiki>'''Multiplayer Cost''': Cost in Custom Battles
If your model is invisible you need to look at the variant and variantmeshdef. They could be missing or broken.


<nowiki>*</nowiki>'''Naval Unit''': ALWAYS wh_main_shp_transport
If the weapons are on their back or side and not in the units hand or proper position the meshdefinition will be the cause. If you are trying to make a spearman dual wield that requires changing the animation, animations have their own weapon slots and just changing the variant is not enough.


<nowiki>*</nowiki>'''Number''' '''of''' '''Ships''': Doesn't matter set it to 1
== Troubleshooting Steps ==
Run RPFM diagnostics AFTER you make sure RPFM & dependencies are updated.


<nowiki>*</nowiki>'''Min Men Per Ship''': Just match number of men
REFERENCE VANILLA, and I personally do this ALL the time, re-read over everything and quadruple check because you probably miss read or just completely missed something.


<nowiki>*</nowiki>'''Max Men Per Ship:''' Just match number of men
Ask for help in the modding discord[discord.gg]!
 
<nowiki>*</nowiki>'''Recruitment Cost:''' Campaign Recruitment Cost
 
<nowiki>*</nowiki>'''Upkeep''' '''Cost''': Campaign Upkeep Cost
 
<nowiki>*</nowiki>'''Weight''': UI thing only pretty sure, set it to most appropriate.
 
<nowiki>*</nowiki>'''Source''' '''Requirement''': Leave Empty
 
<nowiki>*</nowiki>'''Special''' '''Edition''' '''Mask''': Leave Empty
 
<nowiki>*</nowiki>''''In''' '''Encyclopedia''': Enable if you want it to appear in the Encyclopedia
 
<nowiki>*</nowiki>'''Audio Voiceover Culture''': Do not leave blank, set it to most appropriate.
 
<nowiki>*</nowiki>'''Ui Unit Group Land''': Controls the icon at the bottom of the unit card and controls various UI things like custom battle locations.
 
<nowiki>*</nowiki>'''Tier''': The Tier icon on the unit. Doesn't connect or interact with anything else.
 
<nowiki>*</nowiki>'''Is''' '''high''' '''Threat''': AI will focus and prioritize these units.
 
<nowiki>*</nowiki>'''Porthole''' '''Cam''': Controls the angle and view of the 3D Porthole, set it to most appropriate.
 
<nowiki>*</nowiki>'''Mount''': Does the unit have a mount? Yes? Then set it to most appropriate. No? Leave blank.
 
<nowiki>*</nowiki>'''Use''' '''Hitpoints''' '''In''' '''Campaign''': IDK, leave unchecked
 
<nowiki>*</nowiki>'''Porthole''' '''Composite''' '''Scene'''" Leave Blank unless you are having issues with mounted units/engines and then best of luck to you.
 
<nowiki>*</nowiki>'''Melee Cp" Melee Combat Potential:''' Don't leave blank or 0, set it to most appropriate, mainly for auto resolve stuff.
 
<nowiki>*</nowiki>'''Missile Cp: Missile Combat Potential''': Don't leave blank or 0, set it to most appropriate, mainly for auto resolve stuff.
 
<nowiki>*</nowiki>'''Can Siege''': Allow attacking settlements without siege equipment. Adds the siege icon on the unit card.
 
<nowiki>*</nowiki>'''Audio Voiceover Culture Override''': Do not leave blank, set it to most appropriate.
 
<nowiki>*</nowiki>'''Restrict XP in campaign''': Set's the unit to rank 9 without the bonuses, used for RoR mainly.
 
<nowiki>*</nowiki>'''Audio Voiceover Actor Group''':  Do not leave blank, set it to most appropriate.
 
<nowiki>*</nowiki>'''Food Cost''': Set to 0
 
<nowiki>*</nowiki>'''Has Spoken Vo''': I believe for playing voice lines when being highlighted.
 
<nowiki>*</nowiki>'''Is''' '''Monster''': Voiceover stuff set it to most appropriate.
 
<nowiki>*</nowiki>'''Multiplayer''' '''Qb Cap''': Unit cap for Quest battles
 
<nowiki>*</nowiki>'''Vo is Dragon''': Voiceover stuff set it to most appropriate.
 
<nowiki>*</nowiki>'''Optional''' '''Ui''' '''Element''': Just leave blank
 
<nowiki>*</nowiki>'''Barrier''' '''Health''': Adds barrier to the unit.
 
<nowiki>*</nowiki>'''Can''' '''Be''' '''Bribed''': Can unit be seduced by say N'Kari.
 
<nowiki>*</nowiki>'''Point''' '''Allowance''': No idea, set to 1.
 
<nowiki>*</nowiki>'''Is''' '''Renown''': Is it?
 
== Customizing the land_unit_table ==
This table is pretty self explanatory. Use the tooltips in RPFM to see what things do and link to. Global Search stuff to find things like the melee weapon so you can customize the units melee damage and weapon stats.
 
Man Entity references the battle_entities table, which controls things like the unit speed, mass, and hitbox.
 
If you want to change the unit to a different type of weapon style i.e from halberds to dual wield you'll need to look at the Man Animation and you need to match the skeleton or the model will become all stretchy and spaghetti. So Hu1c's have to use Hu1c animations, if they don't have an animation you want you'll need to make a custom one, have fun with that.
 
== Customizing the Unit Card Picture and Variant ==
The unit_variants_tables references the unit card file which can be found in ui/units/icons/filename.png. Import a vanilla one for easy folder creation to ensure the path is correct. You can export a random one to your desktop and edit it to your liking and then right click the folder and add file to import it. Make sure you use the correct size and type of file (png) and do not do things like interlace the image.
 
The unit_variants_tables will reference the variants_tables which links to a variantmeshdefinition. Import a vanilla one to ensure the file path is correct. Inside the variantmeshdefinition you can change things like the model & weapons of the unit. Again if the model doesn't fit the skeleton you'll get a mess in game. Different animations use different weapon slots and some slots require a name. Just always fall back on a vanilla file if you have issues you can create a post/question in the modding discord found [https://discord.gg/moddingden here] if you need help.

Latest revision as of 19:25, 30 September 2024

Hello! My name is Casualfield, welcome to my guide for creating custom units in WH3. I've done over 40 new units and figured it's time to give the community an updated guide for WH3. Steam version here, it has pretty pictures and layout (I'm bad at wiki ok).

The Main Tables

Find a Base Game Unit to use as a Foundation

So, going into the weeds a little here, I HIGHLY recommend to always use a base game unit for a foundation of a new unit; creating new units from scratch is very time consuming, will leave you with loads of empty columns and a single empty/invalid key won't always trigger diagnostics and your game will CTD with no error leaving you on a horrid needle in a haystack search. You'll need to reference a base unit anyways to see where and how it's added in-game.

Finding a Base Game Unit, or anything really

The main_units table is where you should ideally start but how do I find my unit? Let's say I want to base my unit off the Dark Elves Black Guard. We need find that units' key. USUALLY the units are named after their screen name so we can search black in the search bar at the bottom.

If we can't find the key use Global Search, make sure the source is game files and both DB & loc are checked. We can search in-game text that will connect to .loc files.

In this case "Black Guard of Naggarond" is connected to land_units_onscreen_name_wh2_main_def_inf_black_guard_0. The unit key is wh2_main_def_inf_black_guard_0 so we can Global Search that.

Alternatively we can do a right click > go to ... > definition.

Alternatively again you can use find references.

Importing tables

There's a few methods to do this, the one I use is to import the whole table by right clicking the table tab at the top after opening the table.

I open the new imported table, copy the whole row[s] I want by clicking on the row number and then highlight the whole table using the default shortcut keys [ctrl + a], then delete everything and then paste the copied row[s] back in with another shortcut key ctrl + shft + v.

--NOTE: After you are ready to test the mod you can highlight all the tables by ctrl + left clicking them and then using a default shortcut key [ctrl + r] to rename them all at once. Leaving them named data__ will overwrite the base game files, don't do that unless you know what you are doing.

Important tables to Import

db/allied_recruitment_unit_permissions_tables -- Allows the unit to be recruited via Outposts.

db/armed_citizenry_unit_groups_tables -- The main key to add your unit to a garrison.

db/building_level_armed_citizenry_junctions_tables -- Assign your unit to a building to add it to the garrison. MUST use a UNIQUE ID key.

db/battle_set_piece_tables --Ignore, quest battle stuff. Add if you want your unit in quest battles but I'm not going over that in this guide.

db/building_units_allowed_tables -- Adds the unit to a building for local and global recruitment. MUST use a UNIQUE ID key.

db/campaign_map_attrition_unit_immunities_tables -- Give the unit attrition immunity, imagine vampires taking vampire attrition.

db/campaign_rogue_army_group_units_tables --Can Ignore. Adds the unit to Rogue armies, xp is unit rank. MUST use a UNIQUE ID key.

db/cdir_military_generator_unit_qualities_tables --Helps the AI understand the unit's performance and role when recruiting.

db/faction_rebellion_units_junctions_tables --Can Ignore. Adds unit to rebel armies.

db/land_units_tables --The second most important table. Contains the stats and other very import things, will go in-depth later on.

db/land_units_to_unit_abilites_junctions_tables --Add an ability to the unit.

db/loading_screen_tables --Ignore. Add the unit to loading screens, requires a few tables, .locs and proper images. Reference vanilla entries.

db/main_units_tables --The main table for the unit. Messing things up here will cause many issues especially crashes, will go in-depth later on.

db/ui_unit_bullet_point_unit_overrides_tables --Controls the bullet points on the unit card, max of four.

db/unit_attributes_groups_tables --Main key for enabling the adding of attributes to the unit.

db/unit_attributes_to_groups_junctions_tables --Add attributes to the unit.

db/unit_banner_unit_height_offsets_tables --Control the banner above the unit in battles or on the campaign map, usually to avoid clipping.

db/unit_set_to_unit_junctions_tables --Adds the unit to a set, sets are used in effects like Technologies & Skills. New sets can be created.

db/unit_variants_tables --Connects the unit to a variant and unit card. The variant will be a different name and will need to be searched for separately.

db/units_custom_battle_permissions_tables --Add the unit to a faction for custom battles.

db/units_to_groupings_military_permissions_tables --Add the unit to a factions military group which enables it in campaign.

db/variants_tables --Connects the unit variant in unit_variants_tables to a variant mesh definition that controls the model, textures, weapons, ect.

Adding .locs

Different factions have different tables, recruitment methods ect. You'll need to use deductive reasoning to determine if a table I didn't mention should be added or you can create a post/question in the modding discord found here https://discord.gg/moddingden.

Disclaimer

Different factions have different tables, recruitment methods ect. You'll need to use deductive reasoning to determine if a table I didn't mention should be added or you can create a post/question in the modding discord found here.

Use Global Search to Replace all Keys

A huge reason to import from base game is the replace feature in the global search window. Paste the unit key in the search box "wh2_main_def_inf_black_guard_0" make the source Packfile, type your custom key into the Replace box, "cf_new_def_inf_black_guard_0" and hit the replace all button which is a page icon with a red page behind it with a small red x on it.

And just like that a huge amount of the work is done, assuming you used a good base unit. In this case all I need to do is save the pack (don't forget to rename all the tables and file names, highlight them all and ctrl + r), install it if isn't saved to the data folder, and launch the game. Of course the unit will be an exact copy of the Black Guard already in the game but, it's smooth sailing from here, hopefully....

Customizing the main_units_table

For the sake of saving space and time, I'll just refer you to use the tooltips in RPFM (not always correct but close enough) and again just reference vanilla. If there are no tooltips usually that means the name of the row is self explanatory or it's not used. In the case of naval stuff just reference the vanilla table. If literally every single unit has "wh_main_shp_transport" in Naval Unit, yours should too....

Customizing the land_unit_table

This table is pretty self explanatory. Use the tooltips in RPFM to see what things do and link to. Global Search stuff to find things like the melee weapon so you can customize the units melee damage and weapon stats.

Man Entity references the battle_entities table, which controls things like the unit speed, mass, and hitbox.

If you want to change the unit to a different type of weapon style i.e from halberds to dual wield you'll need to look at the Man Animation and you need to match the skeleton or the model will become all stretchy and spaghetti. So Hu1c's have to use Hu1c animations, if they don't have an animation you want you'll need to make a custom one, have fun with that.

Customizing the Unit Card Picture and Variant

The unit_variants_tables references the unit card file which can be found in ui/units/icons/filename.png. Import a vanilla one for easy folder creation to ensure the path is correct. You can export a random one to your desktop and edit it to your liking and then right click the folder and add file to import it. Make sure you use the correct size and type of file (png) and do not do things like interlace the image.

The unit_variants_tables will reference the variants_tables which links to a variantmeshdefinition. Import a vanilla one to ensure the file path is correct. Inside the variantmeshdefinition you can change things like the model & weapons of the unit. Again if the model doesn't fit the skeleton you'll get a mess in game. Different animations use different weapon slots and some slots require a name. Just always fall back on a vanilla file if you have issues you can create a post/question in the modding discord found here if you need help.

Common Issues

If you are crashing to the desktop immediately after opening the game with no error message you likely are missing a table that is being called on by something or you have an empty field/key and RPFM diagnostic didn't catch it.

If you are crashing when loading into a custom battle it's probably something in the main_units table, caste, unit type, voice over stuff or empty fields are likely.

If you you are crashing loading into a NEW campaign it could be any of the above or more invalid keys. Pretty much applies to if you can load into the campaign but crash when it has to load your unit, something like missing permission tables.

If your model is invisible you need to look at the variant and variantmeshdef. They could be missing or broken.

If the weapons are on their back or side and not in the units hand or proper position the meshdefinition will be the cause. If you are trying to make a spearman dual wield that requires changing the animation, animations have their own weapon slots and just changing the variant is not enough.

Troubleshooting Steps

Run RPFM diagnostics AFTER you make sure RPFM & dependencies are updated.

REFERENCE VANILLA, and I personally do this ALL the time, re-read over everything and quadruple check because you probably miss read or just completely missed something.

Ask for help in the modding discord[discord.gg]!