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, Boots
    • Ears, Eyes, Face
    • Device
    • Backpack (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

  1. Open ItemsAssistant (Editor Utility Widget).
  2. In Item Type, select Cloth (or your clothing/armor type).
  3. Fill General Data:
    • Name, Short Name, Description, Abbreviation
    • Weight, Price
    • Type = World.Items.Types.Cloth (or your cloth/armor item type)
  4. 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 – usually 1 for clothing/armor.
    • For Sale – whether this item can be sold by vendors.
  5. In Clarification Data:
    • Set Cloth Type to the clothing subtype you want (boots, vest, device, etc.).
  6. Press Generate:
    • ItemsAssistant creates:
      • A BP_ItemData child.
      • An Inventory DataAsset (child of BP_II_C_Cloth or its derivative).
      • A clothing/armor Clarification DataAsset (BP_ClothesClarData_* child).
      • A DT_ItemData row wired to these assets.

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.
  • 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.
  • Type Of Mesh Used For Cloth
    • Chooses StaticMesh or SkeletalMesh as the primary representation.
    • If set to StaticMesh, you can leave Skeletal Mesh empty.
  • 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 == CopyPoseFromMesh and 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).
  • 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 – use SimpleVisualization.
      • MutableObject – use a Mutable Object section/parameter for this item.
      • CharacterSkinVariation – use data from the CharacterSkinVariations array.
  • MutableSection
    • Name of the Mutable Object section/group this clothing/armor belongs to (for example Jacket, Pants, Shoes, Helmet).
  • MutableParameter
    • Name of the parameter inside the Mutable Object that corresponds to this item (for example Helmet_01, Pants_03).
  • 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’s Health overrides the default durability from the Clarification asset.
    • Useful for pre-damaged or unique loot.

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 AudioActions array. Each entry is a structure with fields:
        • Affected Sound Classes – array of SoundClass assets.
        • VolumeValueMultiplier – float multiplier applied to the volume of those sound classes.
      • Use this to muffle loud sounds and amplify quiet ones.
    • Type/Tag should identify it as an Ears device so it uses the correct slot and logic.
  • Eyes (Goggles / Glasses)
    • There is a Flashbang Grenade Protection category with:
      • Flashbang Grenade Protection (bool) – if true, this device protects the eyes from flashbang explosions (reduces or blocks the effect).
    • Type/Tag should identify it as an Eyes device.
  • 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.NightVisionDevice
          • CharacterStates.UnusualSkills.ThermalVisionDevice
        • This means the device allows the player to activate night vision and thermal vision states.
    • 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.
  • Gas Masks
    • Special Abilities → Gas:
      • Configure which GasTypes this mask protects from (matching your grenade/debuff data).
    • During gas grenade effects, the system checks for a compatible gas mask and blocks or reduces damage/debuffs accordingly.

4.3. No-Abilities Clothing

For purely cosmetic clothing:

  • Use the same Clarification parent type, but:
    • Fill only SimpleVisualization and skin/Mutable-related fields.
    • Do not set any armor or special ability fields.
  • 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 the SimpleVisualization data for that skin.
      • MutableObject – initialize via Mutable Object section/parameter (MutableSection and MutableParameter must be filled).
      • CharacterSkinVariation – use the corresponding entry from CharacterSkinVariations.
  • 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 CharacterSkinVariations parameter as well:
    • Keys must match the skin keys used in the Clarification CharacterSkinVariations.
    • Only add entries for skins where the Clarification’s VisualizationMode value is actually CharacterSkinVariation.
    • Values should map player skins to clothing skins that are compatible with the alternative meshes.
      • This is necessary because with CharacterSkinVariation the skeletal/static mesh of the clothing changes, so default clothing skins may no longer fit.

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).
  • CharacterSkinVariations
    • If the Clarification uses CharacterSkinVariation, replicate the same keys here, but only for player skins whose VisualizationMode is set to CharacterSkinVariation.
    • For each such skin, specify which clothing skin(s) correspond to it.
    • This is required because with CharacterSkinVariation the clothing skeletal/static mesh changes and default skins may not be appropriate anymore.
  • SimpleVisualizationSkins
    • List skins that use DefaultAppearance (SimpleVisualization) and where standard icon/visual setup applies.
  • RecreatedTextureSize / Icon size
    • Size used by the icon generator (for example 512×512).
  • InventoryTextureType
    • Simple – you will assign a ready-made Texture2D icon.
    • 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:

  1. The world Interactable actor is automatically created by ItemsAssistant when you generate the item (based on your settings).

  2. 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.
  3. Optional (applies only to armor actors):

    • Set Health and UseCustomHealth on this actor:
      • If UseCustomHealth = true, the pickup instance uses its own Health instead of the default from Clarification.

8. Step 7 – Icon Generation in Icon Generator

If you use the icon generator for clothing/armor (see your icon generator documentation):

  1. Prepare data:
    • Ensure Clarification and Inventory DataAssets are correctly set:
      • SimpleVisualization, CharacterSkinVariations, SimpleVisualizationSkins.
      • RecreatedTextureSize / icon size.
      • Correct InventoryTextureType for generated icons.
  2. 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.
  3. Assign icons in the Inventory DataAsset:
    • If InventoryTextureType expects a generated texture:
      • Assign the generated texture or texture array to the appropriate field.
  4. 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).