Inventory and Equipment System

The Inventory and Equipment system in RPG Engine v6 is a shared, grid-based jigsaw inventory with fixed equipment slots and a data-driven item layer. It is controlled by BP_EquipmentComponent and UI widgets like WB_MainInventoryPanel and WB_OnBodyInventory.

Core Structure

  • All inventory and equipment logic for the character is handled by BP_EquipmentComponent.
  • The main in-game GUI is WB_InGameContainer, where Inventory is one of the tabs (Inventory, Skill Tree, Map, Quests, Craft, Raids).
  • The inventory tab uses WB_MainInventoryPanel as the main widget; inside it, the on-body inventory is shown through WB_OnBodyInventory.
  • The inventory is grid-based (Tarkov-style). Items occupy variable-size jigsaw slots and can be rotated by pressing R while dragging.
  • Items can support stacking; the maximum stack size is configured via the MaximumNumberInSlot parameter in the inventory-type data asset.

After full initialization of the inventory and widget references, startup items are added into the inventory and immediately appear inside WB_MainInventoryPanel.

Equipment Slots and Backpack

The character has a set of fixed equipment slots plus a shared backpack grid.

Key equipment slots include:

  • Ears
  • Head
  • Face
  • Eyes
  • Vest
  • Shirt
  • Device
  • Boots
  • Pants
  • On Belt
  • Melee
  • On The Back
  • Sheath
  • Backpack

On Belt and On The Back are weapon slots. Sheath is used for a pistol. Melee is a dedicated melee weapon slot. Device is used for device-type equipment. Vest is the armor slot. Shirt, Pants, Boots, Face, Eyes, and Ears are wearable equipment slots. Shirt can also be used by some armor items.

Items can be dragged from the grid to compatible equipment slots and back. If the target slot is free and supports that item type, the item can be equipped there.

Backpack and Grid Size

The backpack is not a separate inventory. It is an equipped item that increases the number of available cells in the shared grid.

  • There is always a base grid.
  • The default base size is 24 cells.
  • This default size can be configured inside WB_MainInventoryPanel, in the settings of the embedded Inventory widget (WB_OnBodyInventory).
  • A backpack item increases grid capacity through its Inventory Size parameter.

Drag-and-Drop Behavior

The inventory supports these core actions:

  • Move item.
  • Combine stack.
  • Equip.
  • Unequip.
  • Drop.
  • Use.

Drag-and-drop is the main interaction model.

  • If the selected area for placement is valid, it is highlighted in green.
  • If the selected area is invalid, it is highlighted in red.
  • Pressing R while dragging rotates the item.
  • If stacking is allowed for that item type, stacks can be combined up to the limit defined by MaximumNumberInSlot.

To drop an item, the player drags it to an empty place outside valid slots and valid inventory placement.

Filters

The inventory panel supports filters by item type.

These filters are configured in the DA_GS_Texture data asset through the InventoryFilterTextures map:

GameplayTag(type) -> Texture2D

The following tags are used for filters:

  • World.Items.Types.NoType
  • World.Items.Types.Modification
  • World.Items.Types.Buff
  • World.Items.Types.Ammo
  • World.Items.Types.Usable
  • World.Items.Types.Grenade
  • World.Items.Types.Cloth
  • World.Items.Types.Bag
  • World.Items.Types.Resource
  • World.Items.Types.Weapon

DT_ItemData and Item Data Assets

All items used by the inventory and equipment system are registered in DT_ItemData.

Each item row refers to item-specific data assets. The common item structure includes:

GeneralData

  • Name
  • Short Name
  • Description
  • Abbreviation
  • Weight
  • Price
  • Type
  • Rarity

Abbreviation is used for generated icon naming. Price is used by the trading system. Weight currently exists as a cosmetic/statistical value and does not yet affect gameplay directly.

InventoryData

Each item also references an inventory data asset. This data asset inherits from BP_II_Master.

A common inheritance chain used by item inventory data assets is:

  • BP_II_Master
  • BP_II_Con_Master
  • BP_II_C_Skins_Master
  • BP_II_C_Cloth

BP_II_Con_Master

BP_II_Con_Master is used for items that need a connected actor when attached to the player.

Important parameters include:

  • ConnectActor
  • Power

ConnectActor is the actor class used when the item is in the player’s hands. This is separate from the interact actor used in the world. Interact actors use a SceneComponent root with a StaticMesh component, while connected actors can use different setups optimized for equipped/in-hand behavior.

BP_II_C_Skins_Master

This child asset is used for items that support skins, such as weapons and clothing.

Parameters:

  • SimpleVisualizationSkins — soft reference array of BP_DA_Skins
  • RecreatedTextureSizeVector2D, used by the icon generator to determine icon resolution

BP_II_C_Cloth

This child asset is used specifically for clothing.

Parameters:

  • Character Skin Variations — map of string -> S_SkinsList

S_SkinsList contains an array of soft references to BP_DA_Skins. This is used to define which clothing skins are valid for which character skin asset.

BP_DA_Skins

BP_DA_Skins stores visual data for weapon and clothing skins.

Parameters include:

  • Abbreviation
  • InteractActorMaterials
  • Connect Object
  • Connect To Body Object
  • Icon
  • Icons Regular Resolution
  • Icons Custom Resolution
  • Icon Regular Resolution
  • Icon Custom Resolution

Material Assignment Data

InteractActorMaterials — list of Material Interfaces Connect Object, and Connect To Body Object are map-type variables:

integer -> S_SkinDataMat

S_SkinDataMat contains:

  • Material — array of Material Interface

This is used to assign correct materials to the world interact actor, the object held in hands, and the object attached to the body/back.

Dynamic Weapon Icons

For weapons, Icons Regular Resolution and Icons Custom Resolution are Texture2DArray assets. These are used for dynamic weapon icons that change depending on currently installed weapon modifications and the active skin.

For clothing, Icon Regular Resolution and Icon Custom Resolution are Texture2D assets used for simpler icon display.

Clarification Info

In addition to common item data, gameplay items use a Clarification Info data asset. This is a type-specific asset that stores detailed behavior and configuration for the given item type.

Item Types Used by Inventory

The following item types are relevant to the inventory/equipment system:

  • World.Items.Types.Ammo
  • World.Items.Types.Bag
  • World.Items.Types.Buff
  • World.Items.Types.Building
  • World.Items.Types.Cloth
  • World.Items.Types.Grenade
  • World.Items.Types.Modification
  • World.Items.Types.Quest
  • World.Items.Types.Resource
  • World.Items.Types.Usable
  • World.Items.Types.Weapon

The following are not treated as regular inventory items in this system:

  • Skin
  • Vehicle
  • CustomInteraction
  • SpyCamera

Quest is not a separate gameplay item type with its own Clarification Info logic. A quest item can still be a normal item such as a weapon, cloth item, or another valid inventory type.


Ammo

World.Items.Types.Ammo uses BP_Ammo_ClarData_Master.

Important parameters include:

  • StaticMesh
  • AmmoSubtype
  • Damage Type Enum
  • Processing Type
  • AdditionalData
  • Damage Type
  • Damage Type Critical
  • SpawnHitReactIfNoHit
  • No Hit React System
  • Hit Effects Mode
  • ImpactData
  • Custom Hit React
  • UseCustomHitSound
  • Use Eject Bullet System
  • Eject Bullet System
  • Eject Bullet Mesh
  • Use Tracer System
  • Tracer System
  • AmmoFeature
  • Bullet Class
  • Is Homing Projectile
  • Homing Acceleration Magnitude
  • PredictionProjectileSpeed
  • OrientProjectileToHitLocation

AdditionalData defines damage behavior and inherits from:

  • BP_Ammo_AD_Casual
  • BP_Ammo_AD_Electroshock
  • BP_Ammo_AD_Explosive

Shared ammo damage parameters include:

  • Damage
  • Deviation From The Mean
  • Dependence Of Damage On Distance

Ammo also depends on BP_DamageTypeMaster and BP_ImpactData, which define hit reactions, decals, effects, sounds, and surface interaction logic.


Weapons

World.Items.Types.Weapon uses a Clarification Info hierarchy. Main parent:

  • BP_CommonMaster_Clar

Children:

  • BP_Weapon_Master_Clar
  • BP_NoFireWeapon_Clar

From BP_Weapon_Master_Clar:

  • BP_Fire_W_Master_Clar
  • BP_Melee_W_Master_Clar

BP_CommonMaster_Clar

Parameters:

  • TypeTag
  • Special Attacks Container Data
  • DefenceCoefficient
  • Total Powerful Attacks By Combos
  • Total Simple Attacks By Combos
  • AirToFloorAmount
  • AirToTargetAmount
  • Animations
  • CheckWall
  • CheckWallDistance
  • Impact Data
  • Aim Widget
  • EmptyAim
  • RetargetModifier

This layer contains common combat-related data, including locomotion/animation layer selection, wall checks, impact behavior, aiming widget configuration, and retarget setup for different character skins.

BP_Weapon_Master_Clar

Parameters:

  • MainSkeletalMesh
  • MainSkeletalMeshAnimBP
  • InteractStaticMesh
  • Main Mesh Start Montage
  • AttachToBodyComponent
  • VictimHitCameraShake
  • AttachSockets
  • UniqueWeaponEnum
  • Custom Back Actor
  • DestroyBackActorByAnimNotify

This asset controls how the weapon is represented in hand, in the world, and on the player’s body.

BP_Fire_W_Master_Clar

Parameters include:

  • Fire Mode
  • Rate Of Fire
  • AccuracyPercent
  • Dependence Of Accuracy On Continuous Shooting
  • Critical Hit Damage Percent
  • Critical Hit Damage Chance
  • Weapon Parts And Allowed Quantity Of Modifications
  • Instance Modifications
  • ModificationAndSockets
  • ShotSoundType
  • ShotSound
  • Shot Loudness
  • Shot Loudness Range
  • AMMO/Priority
  • ShootAdditionalCondition
  • MuzzleFlash
  • ShootCameraShake
  • hot barrel parameters
  • Aim Data
  • LeanOffset
  • Blow
  • Eject Bullet

This data controls firearm shooting behavior, ammo compatibility, installed modifications, sound, AI loudness, aiming, and visual systems.

BP_Melee_W_Master_Clar

Parameters include:

  • Main Mesh Trace Sockets
  • Second Mesh Trace Sockets
  • SecondSkeletalMesh
  • SecondMeshAnimBP
  • SecondBackMesh
  • SecondMeshStartMontage
  • PossibleBuffs
  • SecondMeshBackSocket

This data is used by melee weapons, including dual-part weapons such as sword+shield setups.


SimpleVisualization structure

The SimpleVisualization structure defines how the visual mesh for a bag or clothing item is initialized and how the corresponding Interactable actor in the world is spawned and configured. This data is used both for the on‑body representation and for the world pickup actor.

Fields:

  • Skeletal Mesh
    Skeletal mesh used for this item. This mesh is used to initialize the clothing/bag on the character and can also be used by the Interactable actor in the world.

  • Static Mesh
    Static mesh used for this item. This mesh is typically used to initialize the world Interactable actor when the item is dropped on the ground.

    At least one of Skeletal Mesh or Static Mesh must be filled. If these fields are empty, the system cannot initialize the Interactable actor or the equipped visual mesh.

  • Socket
    Name of the socket the item will be attached to on the character skeleton.
    If this field is empty, the item will be attached to the character’s root socket by default.

  • Type Of Mesh Used For Cloth
    Determines which mesh type is used for the equipped visual: Skeletal or Static.
    If this field is set to StaticMesh, you do not need to fill the Skeletal Mesh field for this item.

  • AttachmentType
    Controls how the clothing/bag mesh follows the character’s pose and whether it can use its own Animation Blueprint.

    Supported values:

    • SetLeaderPoseComponent – the clothing/bag mesh simply copies the pose of the character’s body using SetLeaderPoseComponent. This is suitable for equipment that does not need extra animation logic or a custom AnimBlueprint.
    • CopyPoseFromMesh – the clothing/bag mesh uses CopyPoseFromMesh, which allows it to run its own Animation Blueprint, AnimMontages, and post-process logic on top of the copied character pose.
      This mode requires a properly configured ControlRig and PostProcessAnimationBlueprint for the clothing mesh.

    Use CopyPoseFromMesh for items like hoodies with laces or loose parts that need additional animation on top of the character skeleton. Use SetLeaderPoseComponent for simple 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 used when AttachmentType == CopyPoseFromMesh, and it requires ControlRig and PostProcessAnimationBlueprint to be configured correctly.

    Internally this uses the HideBoneByName node, which works by setting the scale of the specified bone to 0. As a result, the entire chain of child bones will also be effectively hidden. For example, hiding spine_01 will also hide spine_02, spine_03, clavicle_l, clavicle_r, and all child bones.

    This can be used, for example, to hide 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, this means:

    • Open the clothing ControlRig.
    • Find the SetTransform (Bone) nodes that copy transforms from the character.
    • For the relevant bones, force the Scale value to (1,1,1) instead of copying it from the character.
      This prevents the clothing (e.g. sneakers) from becoming invisible 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, glasses, so that facial animation and lip sync remain visible during conversations.

  • HideCustomHairType
    If true, this 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 type of the clothing/bag that determines which equipment slot it should occupy when equipped (Head, Face, Eyes, Vest, Pants, Boots, etc.). This must be consistent with the equipment slot types supported by BP_EquipmentComponent.


Bags

World.Items.Types.Bag uses BP_Bags_ClarData_Master.

Parameters include:

  • SimpleVisualization
  • Inventory Size
  • MutableSection
  • MutableParameter
  • CharacterSkinVariations
  • VisualizationMode

Inventory Size controls how many extra cells this bag adds to the base inventory grid.

SimpleVisualization is a structure that defines which skeletal/static meshes are used for the bag, which socket it is attached to, and how the bag visual is initialized in the world and on the character. See SimpleVisualization structure above for details.

Character Skin Compatibility and VisualizationMode

VisualizationMode is a map:

Skin Name -> Clothes Initialization Method

This map defines how the bag should be initialized for specific character skins. The available initialization methods are:

  • DefaultAppearance
    The bag is initialized using the data from SimpleVisualization. No skin-specific overrides are applied.

  • MutableObject
    The bag visual is driven by the player’s Mutable body object. In this case, the system reads MutableSection and MutableParameter and uses the Mutable Object to apply the bag appearance.
    Important: this method only works if the active character skin is implemented using a Mutable Object. If the skin is not Mutable-based, initialization will fail.

  • CharacterSkinVariation
    The bag is initialized using data from the CharacterSkinVariations map. This allows you to define skin-specific variations (different meshes or configurations) for the same bag.

Only skins listed in VisualizationMode use these custom rules. For all character skins not present in VisualizationMode, the bag falls back to DefaultAppearance and uses SimpleVisualization for initialization.

If you want a bag to be wearable regardless of which character skin is active, either:

  • add explicit entries for all relevant player skins into VisualizationMode, or
  • rely on the default behavior and configure SimpleVisualization so that it works for all skins that do not require special handling.

CharacterSkinVariations

CharacterSkinVariations is a map:

Skin Name -> Per-Skin Bag Initialization Data

This map is used when VisualizationMode specifies CharacterSkinVariation for a given skin. In that case, the bag initialization data is taken from CharacterSkinVariations instead of SimpleVisualization.

Typical use case: a bag or backpack that needs a different mesh or scale for certain character skins (for example, male vs female body proportions). For those skins, you:

  • Set their initialization method in VisualizationMode to CharacterSkinVariation.
  • Add corresponding entries to CharacterSkinVariations with the appropriate meshes or setup.

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 represents this bag or its visual region (for example, Bags, Backpack). The engine uses this section to know which part of the Mutable object should be affected.

  • MutableParameter
    Name of the parameter inside the Mutable object that controls this specific bag (for example, Backpack_01). This parameter is used to enable, disable, or select the correct visual variant of the bag.

If VisualizationMode contains any MutableObject entries, these fields must be filled, otherwise the Mutable-based initialization will not work.


Cloth

World.Items.Types.Cloth uses BP_ClothesClarData_Master.

Children:

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

BP_ClothesClarData_Master

Parameters:

  • Type Tag
  • SimpleVisualization
  • MutableSection
  • MutableParameter
  • VisualizationMode
  • Character Skin Variations
  • Impact on Temperature

Type Tag defines the clothing type and is used to determine which equipment slot the clothing item occupies (Head, Face, Eyes, Jacket, Pants, Boots, Vest, etc). It must match the slot types supported by the equipment system.

SimpleVisualization is the core structure describing how the clothing mesh is attached to the character and how the world Interactable actor is initialized. It includes:

  • Skeletal mesh / Static mesh
  • Socket
  • Type Of Mesh Used For Cloth
  • AttachmentType
  • HiddenBones
  • HideDuringDialogue
  • HideCustomHairType
  • Type

For a detailed explanation of each field, see SimpleVisualization structure above. In short:

  • It defines which meshes are used for the clothing (equipped and world versions).
  • It defines which socket the clothing is attached to.
  • It defines how the clothing follows the character pose (with or without its own AnimBlueprint).
  • It can hide specific bones (for example, feet under sneakers) using HiddenBones.
  • It can hide facial-covering items during dialogues (HideDuringDialogue).
  • It can hide hair/beard when certain headgear is equipped (HideCustomHairType).
  • It links the clothing to the correct equipment slot via Type.

VisualizationMode

VisualizationMode is a map:

Skin Name -> Clothing Initialization Method

This map describes how the clothing should be initialized for specific character skins. Supported methods:

  • DefaultAppearance
    Clothing is initialized using SimpleVisualization. This is the default behavior for all character skins that do not require special handling.

  • MutableObject
    Clothing uses the player’s Mutable body object to initialize its appearance. In this mode, the system reads MutableSection and MutableParameter and applies the clothing via the Mutable Object.
    Important: this method only works for character skins implemented with a Mutable Object. If the skin is not Mutable-based, initialization will fail.

  • CharacterSkinVariation
    Clothing is initialized using per-skin data from the Character Skin Variations map instead of SimpleVisualization.

The map only needs to contain entries for skins that require non-default behavior. For all other skins (not present in VisualizationMode), the clothing will fall back to DefaultAppearance and use SimpleVisualization.

Example: a helmet that should look different on male and female character skins.

  • For most skins you do not add entries to VisualizationMode, so they use DefaultAppearance and the default mesh from SimpleVisualization.
  • For specific female skins, you add entries to VisualizationMode with method CharacterSkinVariation, and configure per-skin data in Character Skin Variations (for example, use SM_Helmet_Woman instead of SM_Helmet).

Character Skin Variations

Character Skin Variations is a map:

Skin Name -> Per-Skin Clothing Initialization Data

This map is used when VisualizationMode specifies CharacterSkinVariation for a given skin. In that case, the clothing initialization data for that skin is taken from Character Skin Variations instead of SimpleVisualization.

Typical scenarios:

  • Female character skins that require smaller or different meshes for the same clothing item (for example, a helmet that uses SM_Helmet on male skins and SM_Helmet_Woman on female skins).
  • Special skins that need adjusted offsets, alternative meshes, or different visual behavior 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; otherwise, the clothing 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 item belongs to. Examples include Jacket, Pants, Shoes, Bags. The engine uses this section to know which part of the Mutable Object should be updated.

  • MutableParameter
    Name of the parameter inside the Mutable Object that controls this specific clothing item (for example, Helmet_01, Jacket_01). This parameter is used to enable or switch the visual variant corresponding to the clothing item.

If VisualizationMode contains any MutableObject entries, these fields must be filled; otherwise, Mutable-based initialization for this clothing will not work.

BP_ClothesClarData_Audio

Parameters:

  • AudioActions

AudioActions is an array of S_AudioAction:

  • Affected Sound Classes
  • VolumeValueMultiplier

Used for headphones and similar gear that affects surrounding sounds.

BP_ClothesClarData_Cloth_Boots

Parameters:

  • Foley Data

Foley Data uses BP_DA_FoleyBank, which maps:

EPhysicalSurface -> S_FoleyData

S_FoleyData contains sound mappings by movement gameplay tag.

BP_ClothesClarData_Devices

Parameters:

  • Skills
  • TurnOnSound

Skills is a list of CharacterState gameplay tags activated by the device.

BP_ClothesClarData_Gas

Parameters:

  • Gas Types

All gases from this list will not damage the player while this equipment is worn.

BP_ClothesClarData_Glasses

Parameters:

  • Flashbang Grenade Protection

If true, flashbang camera effects are ignored.

BP_ClothesClarData_Armor

Parameters:

  • DefenceBones
  • HealthPoints
  • Armor Class

Armor Class uses BP_ArmorClass_Master, which contains:

  • Name
  • Description
  • DesignedForTheseBullets
  • GrenadeDefense

This allows armor to block specific bullet types and optionally protect from grenade damage.


Modifications

World.Items.Types.Modification uses BP_Modif_W_Data_Master.

Children:

  • BP_ClipData
  • BP_CollimatorData
  • BP_FlashlightData
  • BP_GripData
  • BP_ScopeData
  • BP_SilencerData

BP_Modif_W_Data_Master

Parameters:

  • StaticMesh
  • Type
  • Affected Stat Types And Values
  • Required Class

If Required Class is set, a separate actor is spawned on the weapon instead of a static mesh.

BP_SilencerData

Parameters:

  • ShotSound
  • Muzzle System
  • Tracer System

BP_ScopeData

Parameters:

  • ScopeValues
  • Subtype
  • Visibility Modes
  • Additional Data

ScopeValues is an array of S_ScopeValues:

  • ScopeValue
  • Field Of View
  • Mouse Sensitivity Multiplier

This is used for zoom levels, camera behavior, and special scope vision modes.


Grenades

World.Items.Types.Grenade uses BP_CL_GrenadeMaster.

Children:

  • BP_CL_Grenade_Electro
  • BP_CL_Grenade_Explosive
  • BP_CL_Grenade_Flash
  • BP_CL_Grenade_Poison
  • BP_CL_Grenade_Smoke
  • BP_CL_GrenadeMaster_Paint

BP_CL_GrenadeMaster

Parameters:

  • Static Mesh
  • Spawn Actor
  • Detonation Delay
  • Damage Type
  • Damage Range
  • Main Damage Zone
  • Secondary Damage Zone
  • Loudness
  • ActivateByHit
  • DestroyImmediately
  • GrenadeType
  • Grenade Camera Shake
  • OuterRadius
  • AttachEffect
  • RotateGrenade
  • Sound Type
  • Meta Explosion Sound
  • Cue Explosion Sound
  • FadeOut Sound Delay
  • Lifespan

Child Grenade Assets

BP_CL_Grenade_Electro:

  • Make Damage N Times

BP_CL_Grenade_Explosive:

  • PenetrableMaterials
  • BlockingMaterials

BP_CL_Grenade_Poison:

  • GasType
  • AffectCharacteristic_Type
  • AffectZoneInitialDelay
  • AffectZoneEndTime
  • Damage Zone Class

BP_CL_GrenadeMaster_Paint:

  • DecalsQuantity
  • Decal Material
  • Decal Settings

Buff

World.Items.Types.Buff uses BP_Buff_ClarData.

Parameters:

  • StaticMesh
  • Buff Category
  • Character Tag
  • Buff Type
  • Buff Stat Info
  • Actions After Using If Buff In Use
  • Actions After Using If Buff Not In Use
  • Remove From Inventory After Deactivating

Character Tag is a CharacterState activated when the buff is used.

Actions After Using If Buff In Use supports these action types:

  • AddCharacteristics
  • AddToScene
  • AddOverlayMaterial
  • AddNiagaraSystem

Resource

World.Items.Types.Resource uses BP_Components_ClarData.

Parameters:

  • Static Mesh

Usable

World.Items.Types.Usable uses BP_UsableClarData_Master.

Parameters:

  • Static Mesh
  • StatAffects
  • Use Sound
  • AnimMontage
  • DeactivateStates

StatAffects is an array of S_StatAffects:

  • AffectedState
  • WhatToDo
  • Value

This is used for consumables and similar usable items.


Building

World.Items.Types.Building currently has no Clarification Info data asset.


Door

World.Items.Types.Door uses BP_Door_ClarData.

Parameters:

  • Lock Type

Multiplayer Behavior

The Inventory and Equipment system is fully replicated and server-authoritative.

  • Inventory and equipment changes are validated and applied on the server.
  • Clients receive the resulting replicated inventory state.
  • The UI displays the replicated result.

Example Flow

A typical equipment flow looks like this:

  1. The player opens WB_MainInventoryPanel.
  2. The inventory grid is shown through WB_OnBodyInventory.
  3. The player drags a backpack item into the Backpack slot.
  4. The backpack increases the available inventory cell count using its Inventory Size.
  5. The player drags a weapon into On Belt, On The Back, Sheath, or Melee, depending on item type.
  6. The player drags ammo, grenades, usable items, or resources into free grid space.
  7. Valid placements are highlighted green, invalid placements red.

The inventory and equipment system is closely connected with:

  • docs/systems/state/state-system.md — shared character state rules that affect equipping, looting, and interaction.
  • docs/systems/firearms/firearms-system.md — firearms stored and equipped through the inventory and equipment layer.
  • docs/systems/melee/melee-system.md — melee weapons as inventory items and equipped weapons.
  • docs/systems/grenades/grenades-system.md — grenade items, stacks, and usage from inventory.
  • docs/systems/stats/stats-and-survival-system.md — items that restore Hunger, Thirst, or change survival stats.
  • docs/systems/trading/trading-and-economy.md — buying and selling items that live in the same inventory grid.
  • docs/systems/save-load/save-load-and-sessions.md — saving and restoring inventory and equipment state.
  • docs/systems/ui/ui-and-common-ui-shell.md — UI shell that hosts inventory screens and on-body equipment panels.
  • docs/reference/reference-data-tables.mdDTItemData and related data defining item registration.
  • docs/reference/weapon-modifications-reference.md — weapon attachment data assets used by this system.