Overview
Learn how to modify the unit base and abilities beyond what the unit creator allows you to do
Introduction
The main steps to create a Tank, Horse, Ballista or any other unit are fairly simple:
- Create the unit rider (if any) and save it (Note: for ballistas, catapults, hwachas and the like it’s better to have units without weapons, since they won’t be quite able to use them while operating their machinery.)
- Create the soon-to-be tank, horse or whatever and set its rider (if any) and save it (Note: avoid giving it weapons or clothing. But do set its melee or ranged type, voice, stats, and price for you won’t have the chance to change them again using the unit creator and will have to change them in the unit file instead. [check the Further Customization Section])
- Add the two units to a faction and save it
- Close TABS
- Browse TABS local files (Usually: C:Program Files (x86)SteamsteamappscommonTotally Accurate Battle Simulator)
- Go to CustomContentCustomUnits sort by date modified
- Open the first folder, it contains the last created unit info in a .unit file and its icon as png.
- Open the .unit file with notepad (or any other editor like notepad++) The unit info is displayed as a JSON[en.wikipedia.org]
- Find the “m_unitBase” and change the “m_ID” value (1760500345) to the base unit ID you wish to use from this file[docs.google.com] (Props to its creators, btw) for instance 1146934227 for a horse, 162532997 for a raptor, and 1620026876 for a tank.
- Find the “m_rightWeapon” parameter and set its “m_modID” value to -1 and its “m_ID” value to whatever weapon you need by using the weapon ids from the file (Only if the unit has a weapon to begin with, like a catapult or a tank). 749475673 for ballista, 689856330 for the tank and 842884168 for the hwacha. (Note: You are free to experiment with those, but if you use an invalid weapon id, like a bow for a ballista, the unit will break and you’ll have to close the game and try again with a different weapon id. Hence, I recommend that you use only the right weapon for those units and change the projectile instead. More on that later.)
- Find the “m_combatMoves” parameter and add abilities from the file as you see fit. Syntax is extremely important, so make sure your ability syntax looks like this if it’s a single ability:
Or like this if it’s more than one (notice the colon between the ability instances)
- Go to the end of the file and find the “rightProjectile” parameter and change its “m_modID” value to -1 and its “m_ID” value to whatever projectile you need by using the projectile ids from the file (Only if the unit has a weapon to begin with, like a hwacha or a tank)
- Save the file and open TABS
- Place your units in the sandbox to test them
- DO NOT edit your modified units in the Unit Creator, you may edit the rider units and save them but not those that were modified using this method or they will return to normal
- Enjoy
Further Customization
Here’s a breakdown of how to use the parameters that weren’t mentioned in the introduction (that I know of, of course)
- “m_holdingWithTwoHands” Whether the weapon is two-handed or not, can be true or false only.
- “m_positionOffset” under “m_rightWeaponData” or “m_leftWeaponData” Allows offsetting the weapon position by changing its x,y and z values.
- “m_scale” under “m_rightWeaponData” or “m_leftWeaponData” Allows re-scaling the weapon by changing its x,y and z values.
- “m_colors” and “m_isTeamColor” under “m_rightWeaponData” or “m_leftWeaponData” Allow recoloring the weapon (I suggest trying it first with a custom-colored weapon to match the expected input.)
- “m_health”, “m_movementSpeedMuiltiplier”, “m_massMultiplier”, “m_sizeMultiplier”, “customCost”, “unitDescription”, “voicePitch”, “voiceVolume”, “attackSpeedMultiplier”, and “damageMultiplier” allow changing the health, movement speed, mass, size, cost, description, voice pitch, voice volume, attack speed, and damage stats respectively and function just like in the unit editor.
- “m_props” lists the clothes on the unit, they can be edited using the clothes id from the file in the introduction.
- “m_propData” contains “m_positionOffset”, “m_scale” and “m_colors” that allow manipulating the clothes on the unit to create the strange-looking units you see in the workshop, like drones and the like. There is one for each cosmetic so it can get quite long and difficult to edit.
- “m_movementTypes” Shows the unit type, use “Landfall.TABS.AI.Components.Modifiers.KeepRangedDistance, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null” for ranged and “Landfall.TABS.AI.Components.Modifiers.KeepPreferredDistance, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null” for melee.
- “voiceBundle” allows selecting the voice. It can be edited using the voice id from the file in the introduction.
- “leftProjectile” allows changing the projectile for the off-hand weapon (if any) just like the right one in the introduction.
To change the unit icon, you can replace the icon.png in the unit folder (I recommend keeping the same dimensions for the new file, though I haven’t tried otherwise)
Troubleshooting
As there is no indication that we’re breaking something while editing the unit file I highly recommend to perform one change at a time in order to be able to fix possible errors as they arise. These are some of the errors I’ve found while customizing units and their causes:
- Unit missing clothes/abilities/riders/weapons: there is a syntax error within the section of the missing characteristic. For instance: if the syntax for the abilities is wrong, none of them will work
- Unit dies instantly and cannot be removed: there is an invalid characteristic assigned to the unit. For instance: give an incorrect weapon to a Ballista.
- Unit does not show within the faction: check if you added it in the first place, it you can’t find it in the unit editor either, it means something in the general syntax of the file is wrong. Undo the changes if possible or you’ll have to start over. Hence the importance of making one change at a time and minding the syntax
Things I can’t do. Help needed
This guide is a work in progress. As such, there are things that I still do not know how to do. If you know how to achieve any of these, please let me know in order to make this guide more complete:
- Having more than one dragon carrier (The dragon fails spectacularly with only one carrier.)
- Having more than one tank-crew man (No matter what I try, I only get to have the guy sitting on the back of the tank.)
- Basically anything involving more than one rider.