Armor and Clothing
This document describes armor and clothing in RPG Engine v6: defensive stats, special ability devices (NVG, thermal, masks, headphones), and how they integrate with items, skins, Mutable, and interaction.
Item Types and Categories
Armor and clothing are configured through item data
(BP_ItemData + DT_ItemData) and clothing/armor
Clarification-type DataAssets.
High-level categories:
- Protective items:
- Armor vests, helmets, body armor pieces.
- Provide protection against damage and use durability.
- Special ability devices:
- Headphones (“Ears”): change sound mix (muffle loud sounds, amplify quiet ones).
- Eye protection (“Eyes”): protect against flashbang effects.
- Visors (“Device”): night vision and/or thermal vision.
- Gas masks: protect from gas grenade types.
- No-abilities clothing:
- Pure cosmetic garments that only change appearance.
All of them are ultimately clothing/armor items that:
- Have a
BP_ItemDataentry. - Use a clothing/armor Clarification-type DataAsset.
- Can be equipped through
BP_EquipmentComponent.
Protective Armor
Protective devices include any wearable item that reduces or mitigates damage:
- Typical examples:
- Bulletproof vests.
- Helmets.
- Other armor pieces.
Key properties (from armor Clarification-type assets and equipment data):
- Protection values:
- Define how much damage is reduced for specific damage types or calibers.
- Can be tied into the damage pipeline (hit zones, ammo types, etc.).
- Durability / Health:
- Each armor piece has its own durability value.
- When durability is depleted, armor stops providing protection.
- Hit zones:
- Armor may protect only specific body zones (head, torso, etc.).
- Damage to unprotected zones bypasses that armor piece.
At the world actor level, BP_Inter_Master_Cloth
exposes:
Health(float) — durability of the physical item instance.UseCustomHealth(bool) — iftrue, uses the customHealthvalue rather than the default from data.
The detailed numeric damage model and hitzone integration are documented in the damage/armor system; this file focuses on how armor is represented as items.
Clothing Clarification Assets and SimpleVisualization
Clothing and armor rely on clothing Clarification-type DataAssets
(for example, BP_ClothesClarData_Master and its children).
The central part of these assets is the SimpleVisualization
structure.
SimpleVisualization
The SimpleVisualization section defines how the item is
visualized on the character and how its world Interactable actor is
initialized.
Fields:
Skeletal mesh / Static mesh
- Mesh used to initialize the clothing or armor object and its world
Interactable actor.
- At least one of these must be filled; otherwise, the system cannot spawn the visual or the pickup actor.
- Mesh used to initialize the clothing or armor object and its world
Interactable actor.
Socket (optional)
- Socket name where the clothing or device will be attached on the
character skeleton.
- If empty, the item will be attached to the character’s skeleton root.
- Socket name where the clothing or device will be attached on the
character skeleton.
Type Of Mesh Used For Cloth
- Chooses between
StaticMeshandSkeletalMeshas the main representation.
- If set to
StaticMesh, theSkeletal meshfield does not need to be filled.
- Chooses between
AttachmentType
Controls how the clothing/armor mesh follows the character’s pose and whether it can use its own Animation Blueprint.Supported values:
SetLeaderPoseComponent- Ideal for clothing/devices that do not require their own
animations.
- The mesh simply follows the character’s pose via
SetLeaderPoseComponentand does not use its own AnimBlueprint.
- Ideal for clothing/devices that do not require their own
animations.
CopyPoseFromMesh- Allows the clothing/armor mesh to use its own Animation Blueprint /
AnimMontages while still copying the character pose.
- Requires a properly configured ControlRig and PostProcessAnimationBlueprint on the clothing SkeletalMesh.
- Allows the clothing/armor mesh to use its own Animation Blueprint /
AnimMontages while still copying the character pose.
Use
CopyPoseFromMeshfor items like hoodies with laces or gear with loose parts that need extra animation on top of the base pose. UseSetLeaderPoseComponentfor rigid gear that only needs to follow the body.HiddenBones
A list of bones that should be hidden when this item is equipped. This field is only relevant whenAttachmentType == CopyPoseFromMesh, and it requires ControlRig and PostProcessAnimationBlueprint to be configured correctly.Internally, this uses the
HideBoneByNamenode, which works by setting the scale of the specified bone to 0. As a result, the entire chain of child bones is effectively hidden. For example, hidingspine_01will also hidespine_02,spine_03,clavicle_l,clavicle_r, and all child bones.A typical use case is hiding the character’s feet while wearing sneakers. Because ControlRig usually copies not only location and rotation, but also scale from the character to the clothing mesh, you must adjust the clothing ControlRig to avoid propagating a zero scale to the clothing. In practice:
- Open the clothing ControlRig.
- Find the
SetTransform (Bone)nodes that copy transforms from the character. - For the relevant bones, force the
Scalevalue to(1,1,1)instead of copying it from the character.
This prevents the clothing (for example, sneakers) from disappearing when the underlying bone is hidden.
HideDuringDialogue
If true, the item will be automatically hidden during dialogues. This is used for equipment that covers the face, such as masks, helmets, and glasses, to ensure facial animation and lip sync remain visible.HideCustomHairType
If true, the item will hide specific custom hair types (for example, hair, beard) when equipped. This is typically used for helmets or headgear where visible hair would clip through the mesh.Type
Logical clothing type used to determine which equipment slot the item should occupy (Head, Face, Eyes, Jacket, Pants, Boots, Vest, etc.). This must be consistent with the equipment slot types supported byBP_EquipmentComponent.
Skins and Icons
Clothing and armor also support:
- Skins
BP_DA_SkinsDataAssets define visual variants (colors, patterns, etc.) for clothing and armor.
- Icon generation
- Clothing icon generator actors can automatically render inventory icons using the configured meshes and skins.
Skin and icon generation workflows are described in the skin/icon generator documentation; armor/clothing reuse those systems rather than reimplementing them.
VisualizationMode and Character Skin Variations
Clothing and armor can behave differently depending on which
character skin is active. This is controlled by
VisualizationMode and
Character Skin Variations in the Clarification-type
DataAssets.
VisualizationMode
VisualizationMode is a map:
Skin Name -> Clothing Initialization Method
It defines how the clothing/armor should be initialized for specific character skins. Supported methods:
DefaultAppearance
The clothing/armor is initialized usingSimpleVisualization. This is the default behavior and is applied to all character skins that do not require special handling.MutableObject
The clothing/armor appearance is controlled by the player’s Mutable body object. In this mode, the system readsMutableSectionandMutableParameterand applies the clothing via the Mutable Object.Important: this method only works for character skins implemented with a Mutable Object. If the active skin is not Mutable-based, this initialization method will fail.
CharacterSkinVariation
Clothing/armor is initialized using per-skin data from theCharacter Skin Variationsmap instead ofSimpleVisualization.
Only skins listed in VisualizationMode use these custom
rules. For all character skins not present in
VisualizationMode, the system automatically falls back to
DefaultAppearance and uses
SimpleVisualization.
Example: a helmet that should look different on male and female character skins.
- Most skins do not appear in
VisualizationMode, so they useDefaultAppearanceand the default mesh fromSimpleVisualization(for example,SM_Helmet). - Specific female skins are added to
VisualizationModewith methodCharacterSkinVariation. For these skins, initialization usesCharacter Skin Variations(for example,SM_Helmet_Woman).
Character Skin Variations
Character Skin Variations is a map:
Skin Name -> Per-Skin Clothing/Armor Initialization Data
This map is used when VisualizationMode specifies
CharacterSkinVariation for a given skin. In that case, the
initialization data for that skin is taken from
Character Skin Variations instead of
SimpleVisualization.
Typical scenarios:
- Female character skins that require smaller or alternative meshes
for the same clothing/armor item (for example, a helmet that uses
SM_Helmeton male skins andSM_Helmet_Womanon female skins). - Special character skins that need adjusted offsets, different attachment points, or unique visual variants for the same clothing item.
If you set CharacterSkinVariation for a given skin in
VisualizationMode, you must add a corresponding entry to
Character Skin Variations. If you do not, the
clothing/armor will not be initialized correctly for that skin.
MutableSection and MutableParameter
MutableSection and MutableParameter are
used when at least one entry in VisualizationMode uses the
MutableObject initialization method.
MutableSection
Name of the Mutable Object group/section that this clothing/armor item belongs to. Examples includeJacket,Pants,Shoes,Bags. The engine uses this section to determine which part of the Mutable Object should be updated for this item.MutableParameter
Name of the parameter inside the Mutable Object that controls this specific clothing/armor item (for example,Helmet_01,Jacket_01). This parameter is used to enable or switch the visual variant corresponding to the item.
If VisualizationMode contains any
MutableObject entries, both MutableSection and
MutableParameter must be filled. Otherwise, Mutable-based
initialization for this clothing/armor will not work.
Special Ability Devices
Special ability items are clothing/armor devices that modify gameplay rather than (or in addition to) providing protection.
Headphones (Ears)
“Ears” devices are headphones:
- Reduce the volume of loud sounds (gunshots, explosions).
- Increase the volume of quiet sounds (footsteps, subtle noise).
- Are configured as clothing/armor devices in the Clarification-type DataAssets.
- When equipped:
- Hook into the audio system to modify sound mix parameters.
- Provide an advantage in detecting movement at the cost of dampened explosions/gunfire.
Exact audio implementation (which buses/curves are affected) is handled in the audio subsystem; the item data only defines that this device is of the “Ears” type.
Eye Protection (Eyes)
“Eyes” devices are goggles or glasses:
- Protect from flashbang effects:
- Reduce or eliminate blinding time from flash grenades.
- Are configured in the clothing/armor Clarification-type assets as a device type “Eyes”.
- When equipped:
- The grenade/debuff system checks whether the player has appropriate eye protection equipped.
- Flashbang debuff strength/duration is reduced or blocked.
Night/Thermal Visors (Device)
Night/thermal vision devices are defined as clothing/armor devices:
- Parent class (for connected/equipped actors): typically
BP_Con_Visors.
Key parameters:
ChangeVisorMaterialWhenTurnOn(bool):- If
true, highlights the visor material (emissive) while the device is active. - Simulates the glowing glass effect seen in real-world night vision devices.
- If
VisorGlassMaterialIndex(int):- Index of the material slot on the visor mesh that should be highlighted when active.
- Must point to a material using the correct parent material that supports emissive highlighting.
Behavior:
- Devices are equipped like normal clothing/armor (usually in a “Device” or “Head” slot).
- When the player activates Night Vision or Thermal Vision:
- The corresponding device:
- Applies night/thermal post-process or vision mode.
- Optionally toggles visor material emissive according to
ChangeVisorMaterialWhenTurnOnandVisorGlassMaterialIndex.
- The corresponding device:
Night/thermal vision activation and vision modes are described in the Unusual Skills / vision modes documentation.
Gas Masks
Gas masks are configured as special ability devices under the clothing/armor system:
- Protect against certain gas grenade types:
- For example, poison gas grenades defined in grenade data.
- When a gas grenade effect is processed:
- The damage/debuff system checks whether the player has a compatible gas mask equipped.
- If yes and the mask supports that gas type, the damage or debuff is blocked or reduced.
- Gas masks use clothing Clarification-type assets with appropriate gas protection parameters and can also adjust breathing/voice FX for extra immersion (handled in audio/VFX).
No-abilities Clothing
Clothing pieces that are purely cosmetic:
- Only change the visual appearance of the character.
- Do not affect stats, damage, or special abilities.
- Still use the same Clarification-type DataAsset structure
(
SimpleVisualization, meshes, sockets, etc.), but without special ability logic.
These are useful for purely aesthetic customization.
World Actors for Clothing and Armor
Clothing and armor items in the world use the same
BP_Inter_* hierarchy as other items.
World pickups
Typical world class for clothing/armor:
BP_Inter_Master_Cloth:- Inherits from
BP_Inter_Items_With_Skin→BP_Inter_AutoInit→BP_Inter_Master. - Uses
BP_ItemDatato:- Initialize meshes (via
SimpleVisualizationin the Clarification asset). - Apply skins (
BP_DA_Skins).
- Initialize meshes (via
- Parameters:
Health— durability of the world instance.UseCustomHealth— use this instance’sHealthinstead of defaults.
- Inherits from
World behavior:
- Detected by
BP_InteractComponentvia interaction interfaces. - On pickup:
BP_EquipmentComponentadds the clothing/armor to inventory/equipment.- The world actor is destroyed or its
Quantityreduced (same logic as other loot).
Equipped state
When equipped:
- Clothing/armor devices:
- Attach to character sockets as defined by
SimpleVisualization. - Use
AttachmentTypeto decide whether to follow body pose or use their own animations. - Enable any special abilities (ears, eyes, visors, gas masks) defined in their Clarification-type assets.
- May hide bones, hair, or facial items according to
HiddenBones,HideCustomHairType, andHideDuringDialogue.
- Attach to character sockets as defined by
Unequipping:
- Removes both visual attachment and special ability effects.
- Returns items to inventory or destroys them depending on system rules.
Integration Summary
Armor and clothing sit on top of existing systems:
- Item system:
BP_ItemDataandDT_ItemDatadefine all clothing/armor items.- Clarification-type assets define meshes, sockets, abilities, and special parameters.
- World interaction:
- World pickups use
BP_Inter_Master_Clothand relatedBP_Inter_*classes. BP_InteractComponenthandles picking them up.
- World pickups use
- Equipment:
BP_EquipmentComponentmanages slots, equips items, and applies armor/clothing logic.
- Stats and damage:
- Protective armor integrates with the damage pipeline and durability.
- Special ability devices interact with debuffs, grenades, and vision/sound systems.
- Customization:
- Skins,
VisualizationMode,Character Skin Variationsand Mutable integration define how clothing/armor look on different character skins. - Icon generators provide inventory icons for clothing and armor items.
- Skins,
Related Docs
Armor and clothing connect to:
docs/systems/interaction/interaction-and-items.mddocs/systems/interaction/doors-and-interactables.mddocs/systems/interaction/trading-and-vendors.mddocs/systems/inventory-equipment/inventory-and-equipment.mddocs/systems/customization/character-customization-and-skins.mddocs/systems/combat/damage-and-armor-system.mddocs/systems/skills/unusual-skills-and-vision-modes.md