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:
BeginPlay→OnPawnComponentReady_Implementation→BindDelegates_Implementation(OnEquippedItem, OnUnequippedItem, OnEquipmentMeshShowOrHide);OnPlayerLoadingCompleted→EquipAllLoadedEquipmentItemMeshes(). UsesEquipmentMeshes(array of UMIPBaseEquipmentSkeletalMesh) andEquipmentMeshTransforms(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).