ItemsAssistant Utility

ItemsAssistant is an Editor Utility Widget that automates the creation and initial setup of item-related DataAssets for RPG Engine v6. It removes most repetitive steps required to create new items, such as creating multiple DataAssets, wiring references, and adding rows to DT_ItemData.

ItemsAssistant supports all item types used by the inventory and equipment system and can generate:

  • A master item DataAsset (BP_ItemData child).
  • An Inventory-type DataAsset (child of BP_II_Master and its derivatives).
  • A Clarification-type DataAsset (ammo, weapon, cloth, bag, buff, grenade, modification, etc.).
  • A new row in DT_ItemData with references to the generated assets.

Purpose and Scope

ItemsAssistant is designed to:

  • Provide a unified UI for creating any item type (ammo, weapons, clothing, armor, bags, grenades, buffs, etc.).
  • Auto-generate DataAssets with correct parents for the selected item type.
  • Pre-fill common fields (General Data, Inventory Data, and part of Clarification Data).
  • Automatically register the new item in DT_ItemData.

It does not fully replace manual configuration for advanced parameters. After generation, designers can fine‑tune the created assets following the corresponding system docs.


High-Level Workflow

  1. Open the ItemsAssistant Editor Utility Widget in the UE editor.
  2. Select the desired Item Type (Ammo, Weapon, Cloth, Bag, Buff, Grenade, Modification, etc.).
  3. Fill in the three sections:
    • General Data.
    • Inventory Data.
    • Clarification Data (type-specific).
  4. Press Generate.
  5. ItemsAssistant will:
    • Create the appropriate Clarification-type DataAsset (based on the selected type).
    • Create the appropriate Inventory-type DataAsset.
    • Create a master BP_ItemData-type DataAsset if used by your version.
    • Add or update a row in DT_ItemData referencing these assets.

After that, you can open the generated assets and refine advanced settings manually.


UI Sections Overview

ItemsAssistant UI is divided into three sections:

  • General Data – common item metadata.
  • Inventory Data – how the item behaves in the inventory UI.
  • Clarification Data – type-specific configuration, different for each item type.

Each field in these sections is described below.


General Data (All Item Types)

These parameters correspond to the GeneralData block inside DT_ItemData and the master item DataAsset (BP_ItemData child).

  • Name
    Human‑readable item name. Used in UI (inventory, tooltips, trading screens) and in some logs. Example: 9x19mm AP Rounds or Tactical Helmet.

  • Short Name
    Shortened name used where space is limited (inventory cells, compact lists). Example: 9x19 AP, TacHelm.

  • Description
    Text description of the item for tooltips and detailed info panels. Should briefly explain the purpose and key properties of the item.

  • Abbreviation
    Short code used for internal logic and naming (for example, when generating icon names or in debug UIs). Example: AP919, THLM.

  • Weight
    Weight of a single item instance. Currently used as a statistic and cosmetic parameter; can be used by future mechanics that depend on carried weight.

  • Price
    Base price of the item for the trading system. Used by vendors and the economy layer to calculate buy/sell values.

  • Rarity
    Item rarity (enum). Drives visual styling (frame color, rarity filters) and can be used for loot drop balancing. Concrete values are defined in your rarity enum.


Inventory Data (All Item Types)

These parameters correspond to an Inventory-type DataAsset that inherits from BP_II_Master or one of its children (e.g. BP_II_Con_Master, BP_II_C_Skins_Master, BP_II_C_Cloth).

  • Texture (Texture2D)
    Inventory icon texture for the item when using a simple, single texture setup. If Texture Type = Simple, this texture is used directly in UI. For generated icons, this is usually left empty and filled later by icon generators.

  • Texture Type
    Defines how inventory icons are handled.

    Supported values:

    • Simple
      Use Texture (Texture2D) directly as the item icon. Suitable for simple items (ammo, resources, consumables, basic clothing).
    • Generated Texture
      Icon is generated by a dedicated icon generator actor (e.g. BPEngineSimpleItemIconGener, BPEngineClothesIconGener, BPEngineWeaponIconGener), saved as a texture and then referenced from the Inventory DataAsset.
    • Generated 2D Array
      Used primarily for weapons with many visual combinations (e.g. firearms with modifications). A Texture2DArray stores multiple icon variants, and the Inventory DataAsset references this array. UI selects the correct slice based on current weapon configuration.
  • Size (Vector2D)
    Size of the item in inventory grid cells.

    • X – width in cells.
    • Y – height in cells.

    Examples:

    • (1,1) – small item, occupies one cell.
    • (2,3) – larger item occupying 2 columns and 3 rows.
  • Maximum Number In Slot (int)
    Maximum stack size for this item in a single inventory slot.

    Examples:

    • Ammo: 60.
    • Grenades: 16.
    • Weapons: 1.
  • For Sale (bool)
    Determines whether the item can appear in vendor inventories and be used in the trading system.

    • true – the item is eligible for inclusion in vendor stock.
    • false – the item is not sold by default and is only obtainable via loot, crafting, etc.

Clarification Data by Item Type

Clarification Data is a type‑specific section. Based on the selected item type, ItemsAssistant exposes a different set of fields and generates a Clarification-type DataAsset with the correct parent class.

Supported Item Types

At a minimum, ItemsAssistant supports:

  • Cloth and Armor.
  • Ammo.
  • Bag.
  • Buff.
  • Grenade.
  • Modification.
  • Weapon (Firearms / Melee).
  • Other types (Usable, Resource, etc.) without extra wizard fields.

Each type is described below.


Cloth and Armor

Used for World.Items.Types.Cloth and Clarification assets derived from BP_ClothesClarData_Master and its children:

  • BP_ClothesClarData_Cloth
  • BP_ClothesClarData_Armor
  • BP_ClothesClarData_Audio
  • BP_ClothesClarData_Cloth_Boots
  • BP_ClothesClarData_Devices
  • BP_ClothesClarData_Gas
  • BP_ClothesClarData_Glasses

ClothType

  • ClothType
    Logical clothing type that defines:
    • Which equipment slot the item uses.
    • Which Clarification subtype and additional parameters are relevant.
    Allowed values:
    • Boots
    • Devices
    • Ears
    • Face
    • Head
    • Jacket
    • Mask
    • Pants
    • Vest

At generation time, ItemsAssistant uses ClothType to choose which specialized Clarification behavior to create or which subclass to base it on (e.g. Armor vs Audio vs Gas).

Boots (ClothType = Boots)

Additional field:

  • Use Default Foley Container (bool)
    Controls where footstep Foley data is taken from.

    • true
      Use the default footstep container DA_FoleyBank_Default:
      • Footstep sounds are resolved via BP_DA_FoleyBank_Default based on surface physical material and movement tags.
    • false
      You are expected to create your own DataAsset derived from BP_DA_FoleyBank and assign it manually.
      Use this when the boots require unique, non‑standard footstep sounds (e.g. heavy armor boots, sneakers, bare feet).

ItemsAssistant only toggles whether the default container should be used; creating a custom Foley bank is done manually.

Head (ClothType = Head)

Additional field:

  • HealthPoints (float)
    Durability/health of this head item (typically helmet or head armor).

    • While HealthPoints > 0, the item can protect the player according to armor rules and Armor Class.
    • When HealthPoints reach 0, the helmet no longer provides protection (but can still be visually present unless destroyed).

Mask (ClothType = Mask)

Additional field:

  • FlashbangProtection (bool)
    Controls whether this mask protects from flashbang grenade effects.

    • true
      The mask provides flashbang protection: flashbang camera effects are ignored or significantly reduced while the mask is equipped.
    • false
      The mask offers no flashbang protection and behaves like standard clothing/armor for visuals only.

The grenade/debuff system checks this flag when applying flashbang effects.

Vest (ClothType = Vest)

Additional field:

  • HealthPoints (float)
    Durability of the vest / body armor piece.

    • While HealthPoints > 0, the vest can absorb or mitigate damage as defined by Armor Class, DefenceBones and the damage system.
    • When the value is depleted, the vest no longer protects but can remain equipped visually.

Other ClothType values

For these types, ItemsAssistant does not add extra fields beyond the base Cloth configuration:

  • Devices
  • Ears
  • Face
  • Jacket
  • Pants

Their advanced behavior (audio, gas protection, device behavior, etc.) is configured manually in the generated Clarification assets (BP_ClothesClarData_Audio, BP_ClothesClarData_Gas, BP_ClothesClarData_Devices, etc.).

Fill In Visualization Mode

  • Fill In Visualization Mode (bool)
    Controls automatic initialization of VisualizationMode in the generated Clarification asset.

    • true
      ItemsAssistant:
      • Reads all player skins from DA_CharacterSkinsContainer.
      • Reads all AI skins from DA_AI_SkinsContainer.
      • Fills VisualizationMode with an entry for each skin name.
      • Sets the initialization method for each skin to DefaultAppearance.
      After generation, you can manually:
      • Change the initialization method to MutableObject or CharacterSkinVariation for specific skins.
      • Remove or adjust entries as needed.
      • Configure Character Skin Variations and Mutable settings.
    • false
      VisualizationMode remains empty. The clothing/armor will use DefaultAppearance and SimpleVisualization behavior for all skins until you explicitly configure per‑skin rules.

Ammo

Used for World.Items.Types.Ammo and Clarification assets derived from BP_Ammo_ClarData_Master.

ItemsAssistant exposes the key damage and type parameters:

  • Ammo Damage (float)
    Base damage value for a single bullet or projectile.

    • Combined with distance falloff and other modifiers to compute final damage.
    • Typically corresponds to the Damage parameter in the underlying Clarification asset.
  • Ammo Damage Deviation (float)
    Damage deviation from the base value.

    • Defines how much actual damage can vary around Ammo Damage.
    • Used to compute minimum/maximum damage for each hit (randomization within a range).
  • Ammo Type (Gameplay Tag)
    Gameplay Tag representing the ammo category or caliber.

    Typical uses:

    • Weapon compatibility: weapons list allowed ammo types; ammo type must match one of them.
    • Armor and damage filtering: armor classes can be designed for specific ammo types.
  • DamageType
    Reference to a damage type asset (usually derived from BP_DamageTypeMaster).

    Controls:

    • Hit reactions.
    • Integration with the damage/impact system (BP_ImpactData).
    • Special damage behaviors (critical types, surface interactions).
  • ProcessingType
    Enum describing how this ammo is processed.

    Examples (exact values from your enum):

    • Simple hit, area damage, multi‑hit, etc.
    • Defines how the projectile interacts with hit targets and world geometry.
  • Ammo Feature
    Enum or flag describing special features of the ammo.

    Possible roles (exact values depend on your project):

    • Tracer rounds.
    • Armor-piercing.
    • Explosive.
    • Other specialized behaviors.

Bag

Used for World.Items.Types.Bag and Clarification assets derived from BP_Bags_ClarData_Master.

  • InventorySize (Vector2D)
    Additional inventory grid size provided by this bag.

    • X – extra columns.
    • Y – extra rows.

This size is added to the base inventory grid size (configured in WB_MainInventoryPanel / WB_OnBodyInventory) when the bag is equipped, effectively increasing capacity.


Buff

Used for World.Items.Types.Buff and Clarification assets derived from BP_Buff_ClarData.

  • BuffCategory (E_EquipmentBuff)
    Category of the buff. Enum values include:

    • Health – buffs related to health.
    • Armor – buffs increasing armor or damage mitigation.
    • Damage – buffs affecting outgoing damage.
    • Exp – buffs affecting experience gain.
    • Other – any custom category not fitting the above.

Category is used to:

  • Group buffs in UI and equipment/buff slots.
  • Restrict which buffs can be placed in specific buff slots (slot accepts specific categories).
  • Drive behavior in the buff system when applying or removing buffs.

Grenade

Used for World.Items.Types.Grenade and Clarification assets derived from BP_CL_GrenadeMaster and its children.

  • GrenadeType
    Enum representing the grenade type, e.g. explosive, smoke, poison, flash, etc.

    Used to:

    • Select behavior in the grenade system (damage, effects, debuffs).
    • Drive UI and AI reactions (different responses to different grenade types).

Exact fields of both zones are defined in the grenade Clarification assets; ItemsAssistant exposes the key configuration values required for generation.


Modification

Used for World.Items.Types.Modification and Clarification assets derived from BP_Modif_W_Data_Master and its children (BP_SilencerData, BP_ScopeData, etc.).

  • WeaponModification
    Enum describing the modification type.

    Typical values:

    • Silencer.
    • Clip.
    • Collimator.
    • Grip.
    • Scope.
    • Flashlight.

This type:

  • Determines how the modification is applied to weapons.
  • Defines which stats are affected via Affected Stat Types And Values (damage, accuracy, recoil, etc.).
  • Selects the proper slot and actor/static mesh logic (e.g. scopes often use ChildActor; silencers typically use StaticMeshComponent).

Weapon

Used for World.Items.Types.Weapon and Clarification assets derived from:

  • BP_Weapon_Master_Clar
  • BP_Fire_W_Master_Clar (for ranged weapon behavior)
  • BP_Melee_W_Master_Clar (for melee behavior)

ItemsAssistant exposes common weapon fields for all weapon types and additional fields for firearm‑like subtypes based on a gameplay tag selector.

Common Weapon Fields

  • WeaponSubtype (Gameplay Tag)
    Weapon subtype tag from the World.Items.Weapon.Type group. Used for gameplay categorization (perks, skills, UI filters) and to control which ItemsAssistant fields are visible. Supported values:

    • World.Items.Weapon.Type.Bow
    • World.Items.Weapon.Type.Pistol
    • World.Items.Weapon.Type.Rifle
    • World.Items.Weapon.Type.RocketLauncher
    • World.Items.Weapon.Type.Shotgun
    • World.Items.Weapon.Type.Sniper
    • World.Items.Weapon.Type.Melee
    • World.Items.Weapon.Type.TwoComponentMelee

    ItemsAssistant treats the following subtypes as firearms‑compatible:

    • World.Items.Weapon.Type.Bow
    • World.Items.Weapon.Type.Pistol
    • World.Items.Weapon.Type.Rifle
    • World.Items.Weapon.Type.RocketLauncher
    • World.Items.Weapon.Type.Shotgun
    • World.Items.Weapon.Type.Sniper

    If WeaponSubtype is one of these values, Firearms-specific Clarification fields become visible.
    If WeaponSubtype is any other value (for example, World.Items.Weapon.Type.Melee or World.Items.Weapon.Type.TwoComponentMelee), Firearms-specific fields are hidden, and only common weapon fields are available in ItemsAssistant.

  • CustomBackActor (bool)
    Controls how the weapon is represented on the character’s back when not in hands.

    • false
      Use the default back actor class BP_WeaponBack. This standard actor handles weapon-on-back visuals based on data from the weapon Clarification asset.
    • true
      You will create and assign your own back actor manually later (for unique pose/attachment behavior).
  • DestroyBackByAnimNotify (bool)
    If true, the back actor can be destroyed or removed by animation notifies during equip/unequip sequences.
    Used to precisely sync visual removal of the back weapon with animations.

  • Check wall (bool)
    Enables wall-checking logic for this weapon.

    • When true, the weapon checks for obstacles (e.g. walls) in front of the muzzle or main damage origin.
    • This can block shooting or change animations when the weapon is too close to a surface.
  • Check wall distance (float)
    Distance for the wall check trace.

    • If an obstacle is detected closer than this distance, wall-check behavior is triggered (for example, prevent firing or switch to a special pose/animation).

Firearms-Specific Fields (firearms-compatible WeaponSubtype only)

The following fields are visible in ItemsAssistant only if WeaponSubtype is one of:

  • World.Items.Weapon.Type.Bow
  • World.Items.Weapon.Type.Pistol
  • World.Items.Weapon.Type.Rifle
  • World.Items.Weapon.Type.RocketLauncher
  • World.Items.Weapon.Type.Shotgun
  • World.Items.Weapon.Type.Sniper

For these subtypes, ItemsAssistant exposes firearm parameters corresponding to BP_Fire_W_Master_Clar.

  • Firemode (enum)
    Fire mode of the weapon:

    • Single shot, burst, full auto, or other modes defined in your firemode enum.
      Controls how input events are converted into shots (one shot per click, continuous fire, fixed-length bursts, etc.).
  • RateOfFire (float)
    Weapon rate of fire (shots per second or equivalent).
    Defines the time between consecutive shots and strongly influences effective DPS.

  • AccuracyPercent (float)
    Base accuracy of the weapon in percent.
    Used to calculate spread and dispersion; higher values mean tighter spread. Works together with continuous fire and movement spread modifiers.

  • Critical Hit Damage Percent (float)
    Critical hit damage multiplier (or percent bonus) applied when a shot is critical.
    Combined with base ammo damage and modification effects to compute final critical damage.

  • Critical Hit Damage Chance (float)
    Chance for a shot to be treated as a critical hit, in percent.
    Higher values increase the frequency of critical hits and interact with modifications and character stats.

  • Shot Loudness (float)
    Loudness of the shot from the gameplay perspective.
    Used by AI and perception systems to determine how noticeable the shot is.

  • Shot Loudness Range (float)
    Maximum range within which shot loudness affects AI.
    AI within this distance can react to the shot according to their hearing logic.

  • Use Hot Barrel Effect (bool)
    Enables or disables the hot-barrel effect system.

    • true – the weapon uses HotBarrelData in the Clarification asset to gradually increase barrel heat and apply visual effects (glow, smoke).
    • false – no hot barrel visual behavior is applied.
  • Blow Socket (name)
    Name of the socket on the weapon SkeletalMesh used for muzzle-related effects.
    Commonly used to spawn muzzle flash VFX and as a reference point for trace origin or camera shake configuration.

  • Eject Bullet Socket (name)
    Name of the socket used to spawn ejected shells (casings).
    The ejection system uses this socket as the origin for shell meshes or Niagara systems.

Melee and Two-Component Melee

For WeaponSubtype = World.Items.Weapon.Type.Melee and WeaponSubtype = World.Items.Weapon.Type.TwoComponentMelee ItemsAssistant:

  • Uses only the common weapon fields listed above.
  • Does not show Firearms-specific fields in the Clarification Data section.
  • Relies on the melee system docs and BP_Melee_W_Master_Clar for further configuration, which is handled manually in the generated Clarification assets.

Other Item Types

ItemsAssistant can also generate base assets for other item types that do not have extra wizard fields in the Clarification section, such as:

  • World.Items.Types.Usable
  • World.Items.Types.Resource
  • World.Items.Types.Building
  • Other project-specific categories without special UI extensions.

For these types:

  • Clarification Data section in ItemsAssistant shows None or minimal fields.
  • ItemsAssistant still creates the correct Clarification-type asset with the right parent class.
  • All advanced configuration is done manually in the generated asset, following the appropriate system docs (Usable items, Resource, Building, etc.).

Output Assets and Naming

On Generate, ItemsAssistant typically creates (depending on your project setup):

  • Clarification-type DataAsset
    • Parent depends on item type:
      • Ammo → BP_Ammo_ClarData_Master child.
      • Weapon → BP_Weapon_Master_Clar / BP_Fire_W_Master_Clar / BP_Melee_W_Master_Clar.
      • Cloth → BP_ClothesClarData_*.
      • Bag → BP_Bags_ClarData_Master.
      • Buff → BP_Buff_ClarData.
      • Grenade → BP_CL_GrenadeMaster child.
      • Modification → BP_Modif_W_Data_Master child.
    • Naming convention usually follows your project style (e.g. DACLSniperRifle1, DACLHelmet_1).
  • Inventory-type DataAsset
    • Typically a child of BP_II_Master such as:
      • BP_II_Con_Master for items with connect actors.
      • BP_II_C_Cloth for clothing and armor.
      • Other specialized children for weapons, mods, etc.
  • Master Item DataAsset (BP_ItemData child)
    • Collects general info and references to Inventory and Clarification assets, following naming patterns like DA_ItemName.
  • DT_ItemData entry
    • A new row in DT_ItemData with:
      • GeneralData values from the General Data section.
      • References to the created DataAssets.
      • Type and category fields corresponding to the selected Item Type.

This ensures that the new item is immediately usable in the inventory and equipment systems after minimal manual adjustments.


ItemsAssistant integrates with:

  • docs/systems/inventory-equipment/inventory-and-equipment.md – grid inventory, equipment slots, item registration.
  • docs/systems/armor-and-clothing/armor-and-clothing.md – clothing and armor Clarification assets and behavior.
  • docs/systems/weapons/firearms-system.md – firearm Clarification, shooting logic.
  • docs/systems/weapons/ammo-system.md – ammo Clarification, damage and processing types.
  • docs/systems/weapons/weapon-modifications-reference.md – weapon modification Clarification assets.
  • docs/systems/customization/character-customization-and-skins.md – character skins, VisualizationMode, and Mutable integration.