How To Add a Melee Weapon Skin

This guide explains how to create a new melee weapon skin using BP_DA_Weapon_Skins, hook it into the melee weapon’s inventory DataAsset, and set up icon textures for the skin.
For melee skins you do not need modification‑specific icons or Texture2DArray – only the base skin materials and single icon textures.


1. Overview

Melee weapon skins are configured through DataAssets that inherit from BP_DA_Weapon_Skins, which itself derives from BP_DA_Skins.

  • BP_DA_Skins holds shared visual parameters (materials, icons).
  • BP_DA_Weapon_Skins adds weapon‑specific configuration (for firearms it includes ModificationSkins, but for melee we can ignore modification‑related settings).

To make a melee weapon skin functional, you need to:

  1. Create a BP_DA_Weapon_Skins DataAsset with proper naming.
  2. Configure base skin parameters (BP_DA_Skins fields).
  3. Set up a single icon (regular and/or custom resolution).
  4. Register the skin in the melee weapon’s inventory DataAsset (SimpleVisualizationSkins array).

For melee skins you do not fill:

  • ModificationSkins
  • Icons Regular Resolution (Texture2DArray)
  • Icons Custom Resolution (Texture2DArray)

2. Naming and Asset Types

2.1. DataAsset naming convention

For melee weapon skin DataAssets, use the same naming pattern as for firearms:

  • DA_Skin_<WeaponAbbreviation>_<SkinName>

Examples:

  • DA_Skin_SWD_Basic
  • DA_Skin_SWD_ShieldGold

This makes it easy to search by weapon abbreviation and clearly separates skins from other DataAssets.

2.2. Core classes involved

  • BP_DA_Skins
    Base skin DataAsset, contains generic skin parameters (materials, icon textures, etc.).

  • BP_DA_Weapon_Skins (inherits from BP_DA_Skins)
    Weapon‑specific skin DataAsset. For melee we use only:

    • All BP_DA_Skins fields (materials, icons, etc.).
    • We do not use ModificationSkins for melee.
  • Melee weapon inventory‑type DataAsset
    The inventory DataAsset of the melee weapon (child of BP_IIMaster / BP_IICSkinsMaster) that contains a SimpleVisualizationSkins array.


3. BP_DA_Skins Parameters (Base Melee Skin)

BP_DA_Weapon_Skins inherits all fields from BP_DA_Skins. You should understand and fill these first.

3.1. Abbreviation

Field: Abbreviation
Short, unique skin identifier (string). Used by UI and scripted actions to identify the skin.

Examples:

  • SWD_BASIC
  • SWD_SHLD_GOLD

Make sure abbreviations are unique per skin.

3.2. InteractActorMaterials

Field: InteractActorMaterials (TArray<UMaterialInterface>)

List of materials applied to the StaticMesh component of the interact actor (world representation of the weapon, pickup mesh).

Typical usage:

  • When the melee weapon is lying in the world as a pickup actor, this array defines which materials are applied to its static mesh component under this skin.

3.3. Connect Object

Field: Connect Object (TMap<int32, TArray<UMaterialInterface>>)

Maps skeletal mesh component indices to arrays of materials for connect actors, such as BP_Connect_Weapon (in‑hand representation).

Default for BP_Connect_Weapon:

  • Index 0MainSkeletalMeshComponent
  • Index 1SecondSkeletalMeshComponent (if used; e.g. sword + shield)

Filling rules for melee:

  • Single skeletal mesh melee weapon (e.g. only a sword):
    • Only MainSkeletalMeshComponent is used.
    • Add entry:
      • Key 0 → materials for MainSkeletalMeshComponent.
  • Dual skeletal mesh melee weapon (e.g. sword + shield where Second Skeletal Mesh in BP_Melee_W_Master_Clar is not empty):
    • Add both entries:
      • Key 0 → materials for MainSkeletalMeshComponent (sword).
      • Key 1 → materials for SecondSkeletalMeshComponent (shield).

3.4. Connect To Body Object

Field: Connect To Body Object (TMap<int32, TArray<UMaterialInterface>>)

Same idea as Connect Object, but for back weapon actors like:

  • BP_WeaponBack
  • BP_DoubleWeaponBack

Filling rules:

  • Single back weapon actor (BP_WeaponBack):
    • Use key 0 → materials for the back weapon mesh (single melee mesh on the back).
  • Double back weapon actor (BP_DoubleWeaponBack):
    • Use keys 0 and 1 for the two back meshes, mirroring the logic in Connect Object:
      • Key 0 → materials for main back mesh (sword).
      • Key 1 → materials for second back mesh (shield).

3.5. Icon fields for melee

For melee skins we only use single icon textures, not Texture2DArray:

Fields to fill:

  • Icon Regular Resolution (UTexture2D)
    Single icon texture in regular resolution.
    • This can be:
      • A manually created texture, or
      • A texture generated by the Simple Item Icon Generator (e.g. BP_EngineSimpleItemIconGener) used as a static icon.
  • Icon Custom Resolution (UTexture2D)
    Single icon texture in custom resolution (optional).
    • Use this if you have UI screens that require non‑standard icon sizes.

Fields to leave empty for melee skins:

  • Icons Regular Resolution (Texture2DArray)
  • Icons Custom Resolution (Texture2DArray)

These are used for firearms with many modification combinations and are not needed for melee skins.


4. Creating BP_DA_Weapon_Skins for a Melee Weapon

Step 1. Create the DataAsset

  1. In Content Browser: Right‑click → Miscellaneous → Data Asset.

  2. Select BP_DA_Weapon_Skins as the parent class.

  3. Name the new asset following the convention:

    • DA_Skin_<WeaponAbbreviation>_<SkinName>

    Example:

    • DA_Skin_SWD_Basic
    • DA_Skin_SWD_ShieldGold

Step 2. Fill basic skin parameters

Open the newly created DA_Skin_... and fill base BP_DA_Skins fields:

  1. Abbreviation
    • Enter a short, unique code matching your naming (e.g. SWD_BASIC).
  2. InteractActorMaterials
    • Add materials that should be applied to the StaticMesh of the melee interact actor (sword+shield pickup) for this skin.
  3. Connect Object
    • If the melee weapon uses a single skeletal mesh component (only MainSkeletalMeshComponent):
      • Add key 0 → materials for MainSkeletalMeshComponent.
    • If the melee weapon uses two components (MainSkeletalMeshComponent + SecondSkeletalMeshComponent, e.g. sword + shield):
      • Add key 0 → materials for MainSkeletalMeshComponent (sword).
      • Add key 1 → materials for SecondSkeletalMeshComponent (shield).
  4. Connect To Body Object
    • For BP_WeaponBack:
      • Add key 0 → materials for the back weapon mesh.
    • For BP_DoubleWeaponBack:
      • Add keys 0 and 1, just like in Connect Object:
        • Key 0 → materials for main back mesh (sword).
        • Key 1 → materials for second back mesh (shield).
  5. Icon fields
    • Icon Regular Resolution: assign a UTexture2D with the main inventory icon for this skin (from a Simple Item Icon Generator or a pre‑made texture).
    • Icon Custom Resolution (optional): assign a UTexture2D with a custom‑size icon if needed by your UI.

At this point the melee skin will work for world / connect / back actors in terms of materials and will have a correct single icon in the inventory UI.


5. What You Can Ignore for Melee Skins

For melee weapons you do not need the firearm‑specific icon pipeline:

  • Do not fill ModificationSkins (melee usually has no modular parts like scopes/silencers that change skin per part).
  • Do not fill:
    • Icons Regular Resolution (Texture2DArray)
    • Icons Custom Resolution (Texture2DArray)

If in the future you decide to have modular melee weapons with separate modification skins, you can reuse the firearm icon workflow, but it is not required for standard melee skins.


6. Hooking the Melee Skin into the Weapon Inventory DataAsset

To make the melee skin visible and selectable in the game, it must be registered in the melee weapon’s inventory‑type DataAsset.

Step‑by‑step

  1. Open the melee weapon’s inventory‑type DataAsset

    • This is the DataAsset that inherits from BP_IIMaster / BP_IICSkinsMaster and is assigned in the item’s Inventory Data field.
  2. Find the array:

    • SimpleVisualizationSkins
  3. Add your DA_Skin_... (melee weapon skin DataAsset) to SimpleVisualizationSkins.

Result:

  • The melee weapon:
    • Knows about this skin as one of its visualization skins.
    • Can use this skin in UI, inventory, and runtime (interact actor, connect actor, back actor).
    • Uses BP_DA_Weapon_Skins to retrieve the correct materials and icon textures.

7. Sanity Checklist for a Melee Skin

Before committing the new melee skin, verify:

  • Naming
    • DA_Skin_<WeaponAbbreviation>_<SkinName> is used consistently.
    • Abbreviation in DA_Skin_... is unique and matches what you expect in tools/UI.
  • Materials
    • InteractActorMaterials are correctly set for the melee interact actor (pickup).
    • Connect Object:
      • Key 0 maps to materials for MainSkeletalMeshComponent.
      • Key 1 is present only if SecondSkeletalMeshComponent is actually used (sword + shield).
    • Connect To Body Object:
      • For BP_WeaponBack, only key 0 is used.
      • For BP_DoubleWeaponBack, keys 0 and 1 are correctly filled.
  • Icons
    • Icon Regular Resolution points to a valid UTexture2D icon (from your Simple Item Icon Generator or a static texture).
    • Icon Custom Resolution is filled only if your UI needs a special icon size.
    • Icons Regular Resolution / Icons Custom Resolution (Texture2DArray) are not filled for a simple melee skin.
  • Inventory registration
    • Your DA_Skin_... is added to the melee weapon’s inventory DataAsset in SimpleVisualizationSkins.

If all items in this checklist are satisfied, the new melee weapon skin should be fully functional in inventory, in the world, on the character’s back, and in all runtime visual contexts for that melee weapon.