How to Add Clothing and Armor
This guide explains how to add new clothing and armor items (protective armor, special devices, cosmetic clothes) so they work with inventory, equipment slots, character skins, world pickups and icon generation.
1. Prerequisites and Item Types
Before you start, make sure you understand:
- Equipment slots used by clothing/armor:
Head,Vest,Shirt,Pants,BootsEars,Eyes,FaceDeviceBackpack(bags)
- Item categories:
- Protective armor (vests, helmets, armor plates)
- Special devices (Ears, Eyes, Visors, Gas masks)
- No-abilities clothing (pure cosmetics)
All these items:
- Are registered in
DT_ItemData - Have
BP_ItemData+ Inventory DataAsset + Clarification DataAsset - Can be equipped through
BP_EquipmentComponent
2. Step 1 – Create the Item via ItemsAssistant
- Open ItemsAssistant (Editor Utility Widget).
- In Item Type, select
Cloth(or your clothing/armor type). - Fill General Data:
Name,Short Name,Description,AbbreviationWeight,PriceType = World.Items.Types.Cloth(or your cloth/armor item type)
- Fill Inventory Data:
- Use a clothing inventory parent (for example, ensure it is based on
BP_II_C_Cloth). Size– grid size in inventory (for example, 2×2).Maximum Number In Slot– usually1for clothing/armor.For Sale– whether this item can be sold by vendors.
- Use a clothing inventory parent (for example, ensure it is based on
- In Clarification Data:
- Set Cloth Type to the clothing subtype you want (boots, vest, device, etc.).
- Press Generate:
- ItemsAssistant creates:
- A
BP_ItemDatachild. - An Inventory DataAsset (child of
BP_II_C_Clothor its derivative). - A clothing/armor Clarification DataAsset
(
BP_ClothesClarData_*child). - A
DT_ItemDatarow wired to these assets.
- A
- ItemsAssistant creates:
3. Step 2 – Configure Clarification (SimpleVisualization)
Open the generated clothing/armor Clarification DataAsset.
3.1. SimpleVisualization
Fill the SimpleVisualization block:
- Skeletal Mesh
- If
Type Of Mesh Used For Cloth == SkeletalMesh, fill this field. - If
Type Of Mesh Used For Cloth == StaticMesh, you do not need to fill this.
- If
- Static Mesh
- Used by the world interact actor.
- Also, depending on
Type Of Mesh Used For Cloth, that component (static or skeletal) will be used for the equipped visual on the character.
- Socket
- Socket on the character skeleton to attach this item to (for
example,
head,spine_03,BackpackSocket). - If empty, the item attaches to the character’s root socket.
- Make sure this socket exists on all player skin skeletons you plan to use in the game. In this project there are three main skeletons: UE5, UE4 and Metahuman. You must add the same socket (with the same name) to all of them so clothing/armor can attach correctly on every skin.
- Socket on the character skeleton to attach this item to (for
example,
- Type Of Mesh Used For Cloth
- Chooses
StaticMeshorSkeletalMeshas the primary representation. - If set to
StaticMesh, you can leaveSkeletal Meshempty.
- Chooses
- AttachmentType
SetLeaderPoseComponent:- Mesh simply follows the character body pose.
- Suitable for rigid armor/devices without their own animation.
CopyPoseFromMesh:- Mesh copies pose but can use its own Animation Blueprint, AnimMontages, ControlRig and PostProcessAnimBP.
- Use this for gear that needs extra animation (hood strings, hanging straps, etc.).
- HiddenBones
- List of bones that should be hidden when this item is equipped.
- Only relevant when
AttachmentType == CopyPoseFromMeshand ControlRig/PostProcessAnimBP are configured. - Example: hide feet bones when wearing shoes, or hide part of the torso for certain armor.
- HideDuringDialogue
- If
true, the item will be hidden during dialogues (useful for masks, helmets, glasses that block the face).
- If
- HideCustomHairType
- Controls which hair/beard/eyebrow types should be hidden while this item is equipped (for example, helmets hiding hair and beard).
3.2. When to Use Mutable
If you use the Mutable plugin for character skins:
- VisualizationMode (map):
- Key – character skin name.
- Value – initialization mode for this clothing item on that skin:
DefaultAppearance– useSimpleVisualization.MutableObject– use a Mutable Object section/parameter for this item.CharacterSkinVariation– use data from theCharacterSkinVariationsarray.
- MutableSection
- Name of the Mutable Object section/group this clothing/armor belongs
to (for example
Jacket,Pants,Shoes,Helmet).
- Name of the Mutable Object section/group this clothing/armor belongs
to (for example
- MutableParameter
- Name of the parameter inside the Mutable Object that corresponds to
this item (for example
Helmet_01,Pants_03).
- Name of the parameter inside the Mutable Object that corresponds to
this item (for example
- CharacterSkinVariations
- Used when a single clothing item should look different per skin (male/female meshes, different proportions, etc.).
- For each skin key you can override meshes and parameters.
A dedicated how-to on configuring the Mutable plugin (creating Mutable Objects, sections and parameters) will be provided separately. Here you only need to know which fields to fill in the Clarification asset.
4. Step 3 – Subtypes: Armor, Devices, Clothing
4.1. Protective Armor
For vests, helmets, armor plates and other protective pieces, configure in the Clarification DataAsset:
- ArmorClass
- DataAsset that describes which bullet types/damage types are reduced and how (per caliber, damage type, etc.).
- HealthPoint
- Total durability of this armor.
- Once it reaches 0, armor stops providing protection (it may remain as a visual item).
- DefenceBones
- List of bones that count as “protected” by this armor.
- If a hit trace lands on one of these bones, damage is applied to armor first (depending on your damage pipeline).
On the world actor side (BP_Inter_Master_Cloth):
- Health
- Durability of this specific world instance.
- UseCustomHealth
- If
true, this instance’sHealthoverrides the default durability from the Clarification asset. - Useful for pre-damaged or unique loot.
- If
4.2. Ears / Eyes / Visors / Gas Masks
These are special ability devices configured via clothing/armor Clarification assets.
- Ears (Headphones)
- In the Actions section:
- There is an
AudioActionsarray. Each entry is a structure with fields:- Affected Sound Classes – array of
SoundClassassets. - VolumeValueMultiplier – float multiplier applied to the volume of those sound classes.
- Affected Sound Classes – array of
- Use this to muffle loud sounds and amplify quiet ones.
- There is an
- Type/Tag should identify it as an
Earsdevice so it uses the correct slot and logic.
- In the Actions section:
- Eyes (Goggles / Glasses)
- There is a Flashbang Grenade Protection category
with:
- Flashbang Grenade Protection (
bool) – iftrue, this device protects the eyes from flashbang explosions (reduces or blocks the effect).
- Flashbang Grenade Protection (
- Type/Tag should identify it as an
Eyesdevice.
- There is a Flashbang Grenade Protection category
with:
- Visors (Night/Thermal Devices)
- In the Clarification asset:
- Skills – an array of Gameplay Tags. These tags
define which CharacterStates the player is allowed to activate while
this device is equipped.
- For example, for night/thermal goggles:
CharacterStates.UnusualSkills.NightVisionDeviceCharacterStates.UnusualSkills.ThermalVisionDevice
- This means the device allows the player to activate night vision and thermal vision states.
- For example, for night/thermal goggles:
- Skills – an array of Gameplay Tags. These tags
define which CharacterStates the player is allowed to activate while
this device is equipped.
- The connected actor typically inherits from
BP_Con_Visors. - In the Clarification / Connect actor:
ChangeVisorMaterialWhenTurnOn(bool) – whether to highlight the visor material when a vision mode is active.VisorGlassMaterialIndex(int) – material slot index used for the glow/emissive effect; the material must support emissive.
- In the Clarification asset:
- Gas Masks
- Special Abilities → Gas:
- Configure which
GasTypesthis mask protects from (matching your grenade/debuff data).
- Configure which
- During gas grenade effects, the system checks for a compatible gas mask and blocks or reduces damage/debuffs accordingly.
- Special Abilities → Gas:
4.3. No-Abilities Clothing
For purely cosmetic clothing:
- Use the same Clarification parent type, but:
- Fill only
SimpleVisualizationand skin/Mutable-related fields. - Do not set any armor or special ability fields.
- Fill only
- This is ideal for jackets, pants, shirts, boots, etc., that only affect visual appearance.
4.4. Boots: Foley Data
For boots (Cloth Type = Boots), you can configure how
footsteps sound for this footwear.
In the boots Clarification DataAsset:
- Foley Data
- Reference to a Foley Data DataAsset.
- This asset stores information about which footstep sounds are used for different surfaces and movement types.
- Different boots can use different Foley banks, so sneakers, heavy boots and barefoot steps all sound distinct.
If Foley Data is not specified, the system will use the default footstep settings (if configured globally). Use a custom Foley Data asset when you want this footwear to have unique audio feedback.
5. Step 4 – Integration with Skins and Mutable
5.1. VisualizationMode and CharacterSkinVariations (Clarification)
In the Clarification DataAsset:
- VisualizationMode
- For each character skin key:
DefaultAppearance– use theSimpleVisualizationdata for that skin.MutableObject– initialize via Mutable Object section/parameter (MutableSectionandMutableParametermust be filled).CharacterSkinVariation– use the corresponding entry fromCharacterSkinVariations.
- For each character skin key:
- CharacterSkinVariations
- Provide per-skin overrides (for example, female vs male mesh, different helmets).
- For skins using this mode, initialization data is taken from here
instead of
SimpleVisualization.
5.2. Inventory DataAsset: CharacterSkinVariations
If you configured CharacterSkinVariation for some skins
in the Clarification asset:
- Open the clothing Inventory DataAsset (child of
BP_II_C_Cloth). - Fill its
CharacterSkinVariationsparameter as well:- Keys must match the skin keys used in the Clarification
CharacterSkinVariations. - Only add entries for skins where the Clarification’s
VisualizationModevalue is actuallyCharacterSkinVariation. - Values should map player skins to clothing skins that are compatible
with the alternative meshes.
- This is necessary because with
CharacterSkinVariationthe skeletal/static mesh of the clothing changes, so default clothing skins may no longer fit.
- This is necessary because with
- Keys must match the skin keys used in the Clarification
5.3. Hair / Beard / Dialogue
Use the Clarification fields to control visual conflicts:
- HideCustomHairType
- Configure which hair/beard types to hide when this item is equipped (for example, helmets that should hide hair and beard).
- HideDuringDialogue
- Enable for items that should disappear during dialogues (masks, opaque helmets, etc.) so facial animation is visible.
A separate how-to will explain in detail how to configure the Mutable plugin and create/extend Mutable Objects; for now just ensure the correct fields are wired for clothes that rely on Mutable.
6. Step 5 – Inventory Data and Icons
Open the Inventory DataAsset for your clothing/armor item (which
should inherit from BP_II_C_Cloth or its derivative).
Check and configure:
- Parent Class
- Confirm it is part of the clothing inventory hierarchy (for example
BP_II_C_Cloth).
- Confirm it is part of the clothing inventory hierarchy (for example
- CharacterSkinVariations
- If the Clarification uses
CharacterSkinVariation, replicate the same keys here, but only for player skins whose VisualizationMode is set toCharacterSkinVariation. - For each such skin, specify which clothing skin(s) correspond to it.
- This is required because with
CharacterSkinVariationthe clothing skeletal/static mesh changes and default skins may not be appropriate anymore.
- If the Clarification uses
- SimpleVisualizationSkins
- List skins that use
DefaultAppearance(SimpleVisualization) and where standard icon/visual setup applies.
- List skins that use
- RecreatedTextureSize / Icon size
- Size used by the icon generator (for example 512×512).
- InventoryTextureType
Simple– you will assign a ready-madeTexture2Dicon.Generated Texture(or your project’s generated type) – icon will be produced by the icon generator pipeline.
- Inventory Texture
- Set the icon that will be displayed by default in the inventory for this item.
- This texture should be filled in in all cases, regardless of whether it is simple or generated (for example, as a fallback or initial icon).
7. Step 6 – World Pickup (BP_Inter_Master_Cloth)
To make clothing/armor appear in the world as a pickup:
The world Interactable actor is automatically created by ItemsAssistant when you generate the item (based on your settings).
In the actor’s settings:
- Ensure it references your
BP_ItemData. - Make sure that:
- Meshes are initialized via the item’s Clarification
SimpleVisualization. - Skins are applied via
BP_DA_Skins, if used.
- Meshes are initialized via the item’s Clarification
- Ensure it references your
Optional (applies only to armor actors):
- Set Health and UseCustomHealth on
this actor:
- If
UseCustomHealth = true, the pickup instance uses its ownHealthinstead of the default from Clarification.
- If
- Set Health and UseCustomHealth on
this actor:
8. Step 7 – Icon Generation in Icon Generator
If you use the icon generator for clothing/armor (see your icon generator documentation):
- Prepare data:
- Ensure Clarification and Inventory DataAssets are correctly set:
SimpleVisualization,CharacterSkinVariations,SimpleVisualizationSkins.RecreatedTextureSize/ icon size.- Correct
InventoryTextureTypefor generated icons.
- Ensure Clarification and Inventory DataAssets are correctly set:
- Generate icons:
- In the icon generator setup:
- Select your clothing/armor Clarification DataAsset or Inventory DataAsset (depending on your pipeline).
- Generate icons for all necessary skins/variations.
- Save the generated
Texture2D(and texture arrays, if used) in your content folder.
- In the icon generator setup:
- Assign icons in the Inventory DataAsset:
- If
InventoryTextureTypeexpects a generated texture:- Assign the generated texture or texture array to the appropriate field.
- If
- Assign icons in skin DataAssets
(
BP_DA_Skins):- For each skin that supports this clothing/armor:
- Set Icon Regular Resolution – default icon texture.
- Set Icon Custom Resolution – high-resolution icon if you use it (for example, for shop previews or large UI).
- For each skin that supports this clothing/armor: