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_MainInventoryPanelas the main widget; inside it, the on-body inventory is shown throughWB_OnBodyInventory. - The inventory is grid-based (Tarkov-style). Items occupy
variable-size jigsaw slots and can be rotated by pressing
Rwhile dragging. - Items can support stacking; the maximum stack size is configured via
the
MaximumNumberInSlotparameter 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:
EarsHeadFaceEyesVestShirtDeviceBootsPantsOn BeltMeleeOn The BackSheathBackpack
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 embeddedInventorywidget (WB_OnBodyInventory). - A backpack item increases grid capacity through its
Inventory Sizeparameter.
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
Rwhile 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.NoTypeWorld.Items.Types.ModificationWorld.Items.Types.BuffWorld.Items.Types.AmmoWorld.Items.Types.UsableWorld.Items.Types.GrenadeWorld.Items.Types.ClothWorld.Items.Types.BagWorld.Items.Types.ResourceWorld.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
NameShort NameDescriptionAbbreviationWeightPriceTypeRarity
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_MasterBP_II_Con_MasterBP_II_C_Skins_MasterBP_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:
ConnectActorPower
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 ofBP_DA_SkinsRecreatedTextureSize—Vector2D, 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 ofstring -> 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:
AbbreviationInteractActorMaterialsConnect ObjectConnect To Body ObjectIconIcons Regular ResolutionIcons Custom ResolutionIcon Regular ResolutionIcon 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 ofMaterial 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.AmmoWorld.Items.Types.BagWorld.Items.Types.BuffWorld.Items.Types.BuildingWorld.Items.Types.ClothWorld.Items.Types.GrenadeWorld.Items.Types.ModificationWorld.Items.Types.QuestWorld.Items.Types.ResourceWorld.Items.Types.UsableWorld.Items.Types.Weapon
The following are not treated as regular inventory items in this system:
SkinVehicleCustomInteractionSpyCamera
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:
StaticMeshAmmoSubtypeDamage Type EnumProcessing TypeAdditionalDataDamage TypeDamage Type CriticalSpawnHitReactIfNoHitNo Hit React SystemHit Effects ModeImpactDataCustom Hit ReactUseCustomHitSoundUse Eject Bullet SystemEject Bullet SystemEject Bullet MeshUse Tracer SystemTracer SystemAmmoFeatureBullet ClassIs Homing ProjectileHoming Acceleration MagnitudePredictionProjectileSpeedOrientProjectileToHitLocation
AdditionalData defines damage behavior and inherits
from:
BP_Ammo_AD_CasualBP_Ammo_AD_ElectroshockBP_Ammo_AD_Explosive
Shared ammo damage parameters include:
DamageDeviation From The MeanDependence 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_ClarBP_NoFireWeapon_Clar
From BP_Weapon_Master_Clar:
BP_Fire_W_Master_ClarBP_Melee_W_Master_Clar
BP_CommonMaster_Clar
Parameters:
TypeTagSpecial Attacks Container DataDefenceCoefficientTotal Powerful Attacks By CombosTotal Simple Attacks By CombosAirToFloorAmountAirToTargetAmountAnimationsCheckWallCheckWallDistanceImpact DataAim WidgetEmptyAimRetargetModifier
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:
MainSkeletalMeshMainSkeletalMeshAnimBPInteractStaticMeshMain Mesh Start MontageAttachToBodyComponentVictimHitCameraShakeAttachSocketsUniqueWeaponEnumCustom Back ActorDestroyBackActorByAnimNotify
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 ModeRate Of FireAccuracyPercentDependence Of Accuracy On Continuous ShootingCritical Hit Damage PercentCritical Hit Damage ChanceWeapon Parts And Allowed Quantity Of ModificationsInstance ModificationsModificationAndSocketsShotSoundTypeShotSoundShot LoudnessShot Loudness RangeAMMO/PriorityShootAdditionalConditionMuzzleFlashShootCameraShake- hot barrel parameters
Aim DataLeanOffsetBlowEject 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 SocketsSecond Mesh Trace SocketsSecondSkeletalMeshSecondMeshAnimBPSecondBackMeshSecondMeshStartMontagePossibleBuffsSecondMeshBackSocket
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 MeshorStatic Meshmust 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 toStaticMesh, you do not need to fill theSkeletal Meshfield 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 usingSetLeaderPoseComponent. This is suitable for equipment that does not need extra animation logic or a custom AnimBlueprint.CopyPoseFromMesh– the clothing/bag mesh usesCopyPoseFromMesh, 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
CopyPoseFromMeshfor items like hoodies with laces or loose parts that need additional animation on top of the character skeleton. UseSetLeaderPoseComponentfor 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 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 will also be effectively hidden. For example, hidingspine_01will also hidespine_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
Scalevalue 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 byBP_EquipmentComponent.
Bags
World.Items.Types.Bag uses
BP_Bags_ClarData_Master.
Parameters include:
SimpleVisualizationInventory SizeMutableSectionMutableParameterCharacterSkinVariationsVisualizationMode
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 fromSimpleVisualization. No skin-specific overrides are applied.MutableObject
The bag visual is driven by the player’s Mutable body object. In this case, the system readsMutableSectionandMutableParameterand 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 theCharacterSkinVariationsmap. 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
SimpleVisualizationso 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
VisualizationModetoCharacterSkinVariation. - Add corresponding entries to
CharacterSkinVariationswith 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_ClothBP_ClothesClarData_AudioBP_ClothesClarData_Cloth_BootsBP_ClothesClarData_DevicesBP_ClothesClarData_GasBP_ClothesClarData_GlassesBP_ClothesClarData_Armor
BP_ClothesClarData_Master
Parameters:
Type TagSimpleVisualizationMutableSectionMutableParameterVisualizationModeCharacter Skin VariationsImpact 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 usingSimpleVisualization. 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 readsMutableSectionandMutableParameterand 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 theCharacter Skin Variationsmap instead ofSimpleVisualization.
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 useDefaultAppearanceand the default mesh fromSimpleVisualization. - For specific female skins, you add entries to
VisualizationModewith methodCharacterSkinVariation, and configure per-skin data inCharacter Skin Variations(for example, useSM_Helmet_Womaninstead ofSM_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_Helmeton male skins andSM_Helmet_Womanon 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 includeJacket,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 ClassesVolumeValueMultiplier
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:
SkillsTurnOnSound
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:
DefenceBonesHealthPointsArmor Class
Armor Class uses BP_ArmorClass_Master,
which contains:
NameDescriptionDesignedForTheseBulletsGrenadeDefense
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_ClipDataBP_CollimatorDataBP_FlashlightDataBP_GripDataBP_ScopeDataBP_SilencerData
BP_Modif_W_Data_Master
Parameters:
StaticMeshTypeAffected Stat Types And ValuesRequired Class
If Required Class is set, a separate actor is spawned on
the weapon instead of a static mesh.
BP_SilencerData
Parameters:
ShotSoundMuzzle SystemTracer System
BP_ScopeData
Parameters:
ScopeValuesSubtypeVisibility ModesAdditional Data
ScopeValues is an array of
S_ScopeValues:
ScopeValueField Of ViewMouse 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_ElectroBP_CL_Grenade_ExplosiveBP_CL_Grenade_FlashBP_CL_Grenade_PoisonBP_CL_Grenade_SmokeBP_CL_GrenadeMaster_Paint
BP_CL_GrenadeMaster
Parameters:
Static MeshSpawn ActorDetonation DelayDamage TypeDamage RangeMain Damage ZoneSecondary Damage ZoneLoudnessActivateByHitDestroyImmediatelyGrenadeTypeGrenade Camera ShakeOuterRadiusAttachEffectRotateGrenadeSound TypeMeta Explosion SoundCue Explosion SoundFadeOut Sound DelayLifespan
Child Grenade Assets
BP_CL_Grenade_Electro:
Make Damage N Times
BP_CL_Grenade_Explosive:
PenetrableMaterialsBlockingMaterials
BP_CL_Grenade_Poison:
GasTypeAffectCharacteristic_TypeAffectZoneInitialDelayAffectZoneEndTimeDamage Zone Class
BP_CL_GrenadeMaster_Paint:
DecalsQuantityDecal MaterialDecal Settings
Buff
World.Items.Types.Buff uses
BP_Buff_ClarData.
Parameters:
StaticMeshBuff CategoryCharacter TagBuff TypeBuff Stat InfoActions After Using If Buff In UseActions After Using If Buff Not In UseRemove 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:
AddCharacteristicsAddToSceneAddOverlayMaterialAddNiagaraSystem
Resource
World.Items.Types.Resource uses
BP_Components_ClarData.
Parameters:
Static Mesh
Usable
World.Items.Types.Usable uses
BP_UsableClarData_Master.
Parameters:
Static MeshStatAffectsUse SoundAnimMontageDeactivateStates
StatAffects is an array of
S_StatAffects:
AffectedStateWhatToDoValue
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:
- The player opens
WB_MainInventoryPanel. - The inventory grid is shown through
WB_OnBodyInventory. - The player drags a backpack item into the
Backpackslot. - The backpack increases the available inventory cell count using its
Inventory Size. - The player drags a weapon into
On Belt,On The Back,Sheath, orMelee, depending on item type. - The player drags ammo, grenades, usable items, or resources into free grid space.
- Valid placements are highlighted green, invalid placements red.
Related Docs
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.md—DTItemDataand related data defining item registration.
docs/reference/weapon-modifications-reference.md— weapon attachment data assets used by this system.