Skip to content

Equipment Components

Overview

Equipment is split into attribute application (stats via Gameplay Effects) and mesh display. UMIPBaseEquipmentAttributesApplierComponent applies/removes equipment GEs and loose tags from the ASC when items are equipped/unequipped; see UMIPEquipmentGE. UMIPBaseEquipmentMeshesManager manages skeletal meshes for equipped items: it listens to equip/unequip and show/hide delegates and keeps a replicated list of equipped mesh data.

Key traits:

  • Attributes: Server-only application; SetByCaller magnitudes from equipment data; equipment sets and ability stats supported. See UMIPEquipmentGE doc for full flow.
  • Meshes: Pawn component; replicates EquippedItemMeshDataList; binds to OnItemEquipped/OnItemUnequipped/OnEquipmentMeshShowOrHide from player IMC; initializes and shows/hides meshes per slot.

All paths below are relative to Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/.


Key Classes & Files

Class File
UMIPBaseEquipmentAttributesApplierComponent Public/Equipment/MIPBaseEquipmentAttributesApplierComponent.h
UMIPBaseEquipmentMeshesManager Public/Equipment/MIPBaseEquipmentMeshesManager.h

UMIPBaseEquipmentMeshesManager

  • Base: UMIPBasePawnComponent.
  • Attachment: Player pawn (character).
  • Delegates: OnEquipmentItemMeshChangedDelegate(FMIPEquippedItemMeshData, IsEquipped).
  • API: OnEquippedItemMesh(InData), OnUnEquippedItemMesh(InData); GetEquippedItemMeshDataEntries(), GetSlotTags(), GetEquipmentMeshTransforms(), MarkArrayDirty(); GetOwnerCharacter().
  • Flow: BeginPlayOnPawnComponentReady_ImplementationBindDelegates_Implementation (OnEquippedItem, OnUnequippedItem, OnEquipmentMeshShowOrHide); OnPlayerLoadingCompletedEquipAllLoadedEquipmentItemMeshes(). Uses EquipmentMeshes (array of UMIPBaseEquipmentSkeletalMesh) and EquipmentMeshTransforms (EditDefaultsOnly) for spawn/attach.
  • Replication: FMIPEquippedItemMeshDataList EquippedItemMeshDataList.

UMIPBaseEquipmentAttributesApplierComponent

  • Documented in UMIPEquipmentGE: subscribes to OnItemEquipped/OnItemUnequipped from player IMC; applies/removes UMIPEquipmentGE with SetByCaller magnitudes; handles equipment sets and ability stats; client sync for loose tags via ClientEquipmentEntryAdded/Removed delegates.

Integration

  • UMIPPlayerServerIMC broadcasts equip/unequip and mesh show/hide; both the attributes applier and meshes manager subscribe.
  • Equipment mesh visibility overrides are stored in UMIPControllerCommonSaveableObjectsComponent (GetEquipmentMeshShownState, ToggleEquipmentMeshShownState).