How to Configure Mutable Cloth Skin Asset

This guide explains how to configure a clothing/armor item so it uses the Mutable plugin: the cloth is driven by the character’s Mutable Object, exposes parameters to the UI, and links back to the Clarification DataAsset.


1. Prerequisites

Before you start, you should already have:

  • A character Mutable Object (customizable object) for your player skin.
  • A clothing item created via ItemsAssistant (BP_ItemData + Inventory DataAsset + clothes Clarification DataAsset).
  • A Skeletal Mesh for the clothing that uses the same Skeleton as the player’s body.

Important: the clothing Skeletal Mesh must use the same Skeleton as the character skin; this is a requirement of the Mutable plugin.


2. Step 1 – Create a Clothing Customizable Object

  1. Create a new Customizable Object asset for the clothing item.

  2. In its Details panel, set:

    • WorkingSet – the character’s customizable object (the Mutable Object of the player skin this clothing will work with).
    • MeshCompileTypeAdd Working Set And Children.

This tells the clothing Mutable Object which character Mutable Object it belongs to and how meshes should be compiled.


3. Step 2 – Attach Clothing to the Character Mutable Object

  1. In the clothing Customizable Object graph, select the BaseObject block/node.

  2. In the Details for BaseObject:

    • Attached to external object:
      • Choose the character skin Customizable Object you want this clothing to work with.
      • After selecting it, a list of Object Groups becomes available – choose the logical group for this clothing:
        • Shoes → for sneakers/boots/etc.
        • Jacket → for outerwear.
        • Pants → for trousers/lower body clothing.
    • Name (BaseObject):
      • Set the object name to something unique and descriptive.
      • Example: Boots_1.
  3. UI metadata for the BaseObject:

    • ParamUIMetadata:
      • UISectionName – the name of the group you chose above (Shoes, Jacket, Pants); this is used to group items in the UI.
      • UIThumbnail – the clothing icon for UI. Use the same texture you use in the Inventory DataAsset:
        • Take it from the clothing Inventory DataAsset’s InventoryTexture field.
    • ExtraInformation (map <string, string>):
      • To make the clothing appear in the character customization menu using the generated icon (UIThumbnail), add a new entry:
        • Key: UseGeneratedIcons
        • Value: (empty string)

4. Step 3 – Add Clothing Mesh and Sections

Now configure the actual clothing mesh inside the clothing Customizable Object.

  1. Add a Skeletal Mesh node and, in its Customizable Object settings:

    • Set SkeletalMesh to the clothing Skeletal Mesh you want to use.

    Important: this Skeletal Mesh must use the same Skeleton as the character skin’s Skeletal Mesh.

  2. On the Skeletal Mesh node, you will see several LOD Outputs (for example, LOD0, LOD1, etc.).

  3. For each LOD output:

    • Add a Mesh Section node.
    • Connect the corresponding LOD output to the MeshSection node.
    • In each MeshSection, choose the material slot you want to use for that LOD.

    Notes:

    • You may have many materials per LOD (for example: LOD0.Material0, LOD0.Material1, LOD0.Material2, LOD0.Material3, …).
    • This simply means the character uses multiple materials on the same Skeletal Mesh.
    • You must process all materials that should be visible; if you skip a material slot (i.e. do not route it through a MeshSection), that part of the mesh will be invisible.
  4. In each MeshSection node, in Details → Pins, expose the parameters you want the player to control (color, patterns, decal variants, etc.). We’ll configure parameter metadata in the next step.


5. Step 4 – Parameter Types and Naming

All clothing parameters exposed to the UI should follow consistent naming and metadata rules.

5.1. Common metadata

For every parameter (regardless of type):

  • ParameterName
    • Use a convention: <ObjectName>_<ParameterName>.
    • Example for Boots_1: Boots_1_ColorChoice, Boots_1_MaterialVariant.
    • This helps quickly find all parameters that belong to a specific clothing object.
  • ExtraInformation (map <string, string>)
    • Add an entry that tags the parameter with the clothing object name:
      • Key: <BaseObjectName> (for example, Boots_1)
      • Value: empty string
    • Example: <map: Boots_1 | >
    • This is important: it allows the GUI to group/sort parameters by clothing object.
  • ObjectFriendlyName
    • Human-readable name shown in the UI (for the player).
    • Example: Color, Material, Pattern.
  • UISectionName
    • Use the same group name as for the BaseObject (Shoes, Jacket, Pants).
    • This keeps all parameters for this clothing type grouped together in the UI.

5.2. Parameter types

Below are the main parameter types you’ll typically use:

Float

  • Fields:
    • DefaultValue
    • Min / Max values

Use for continuous settings (for example, roughness multiplier, tint intensity if you drive it via material logic, etc.).

Enum

  • Fields:
    • Values – array entries for each enum option.
      • For each entry you can set:
        • UIThumbnail – icon for that enum value (optional).
          • If you want icons to appear in the UI for this enum parameter, add to ExtraInformation:
            • Key: UseThumbnails
            • Value: empty string

Use for discrete options such as “Color A / Color B / Color C”, “Camo 1 / Camo 2 / Camo 3”.

DataTable

For more complex options (for example, sets of patterns or skins defined in a DataTable):

  • Table
    • Reference to a DataTable that contains options.
  • DefaultRowName
    • The default row for this parameter.
  • ExtraInformation:
    • This map must contain some special keys:

    • OptionsUIMetadataColumn

      • Name of a column in the DataTable of type MutableParamUIMetadata.
      • This is required: your DataTable must include a column of this type.
      • That column stores UI metadata per row (for example, label, thumbnail, etc.).
    • UseThumbnails (optional)

      • If you want thumbnails in UI, add:
        • Key: UseThumbnails
        • Value: empty
      • Then, in the DataTable, in the OptionsUIMetadataColumn for each row, fill the UIThumbnail field.
    • HideLabel (optional)

      • If you want to hide the text label in the UI and show only icons, add:
        • Key: HideLabel
        • Value: empty

6. Step 5 – Add To Skeletal Mesh Component

Now we need to merge the clothing mesh LODs and send them back into the BaseObject.

  1. Add an Add to Skeletal Mesh Component node.

  2. In its Details:

    • NumLODs
      • Set to the number of LODs your clothing Skeletal Mesh actually has.
    • AutoLODStrategy
      • Set to OnlyManuallyCreatedLODs.
      • This is very important to ensure only your manually configured LODs are used.
    • ComponentName
      • Usually Body – this tells Mutable which component of the character this clothing attaches to.
  3. Connect the outputs of all MeshSection nodes (for each LOD and material slot) to the appropriate Input pins of the Add to Skeletal Mesh Component node (per LOD index).

  4. Finally, connect the output of Add to Skeletal Mesh Component to the Components input of the BaseObject node.

Now the clothing Mutable Object feeds its meshes and parameters into the character Mutable Object.


Next, open the character skin Customizable Object (the Mutable Object for the player body this clothing was made for).

  1. Compile the character Customizable Object.

  2. In the ObjectGroup corresponding to this clothing type (for example, Boots):

    • You should now see your external clothing Customizable Object (the one you just created), listed under external objects.
  3. Select the BaseObject node of the character skin.
    In Details → CustomizableObject → States → CLOTH:

    • Find the RuntimeParameters array.
    • Add all parameter names you created in the clothing Customizable Object:
      • Press + and pick each parameter from the drop-down.
      • This is where the naming convention helps: you can filter by object name, for example Boots_1_.

Once these runtime parameters are added, the character Mutable Object will expose the clothing parameters at runtime.

At this point, the clothing item is fully integrated with the Mutable plugin. You do not need to add this clothing Customizable Object to any additional DataTables.


In the clothing Clarification DataAsset, in the Mutable section, set:

  • MutableSection
    • The name of the Object Group you selected earlier for this clothing in the clothing Customizable Object:
      • For example: Shoes, Jacket, Pants.
  • MutableParameter
    • The name of the clothing object as defined in the clothing Customizable Object’s BaseObject → Name.
    • In our example: Boots_1.

These two fields let the game know:

  • Which Mutable Object section should be used when this item is equipped.
  • Which specific clothing parameter set (object) should be enabled in the character Mutable Object.

After this:

  • Equipping the clothing item will:
    • Inform the character Mutable Object to activate the correct clothing object (MutableParameter) in the correct section (MutableSection).
    • Expose and control the clothing parameters you defined (color, variants, etc.) via the UI, driven by RuntimeParameters you registered on the character’s skin Customizable Object.