Player Components¶
Overview¶
Player-related components live on PlayerState or PlayerController and handle saveable player-wide data (unlock slots, equipment mesh visibility, new-player flag), extended player info (possessed pawn lifecycle), and player class (replicated class tag, startup abilities, friendly/data info).
Key traits:
- UMIPControllerCommonSaveableObjectsComponent – Saveable; holds extra unlocked inventory slots per inventory tag, equipment mesh hidden overrides, and "new player" flag. Integrates with inventory expansion and save/load.
- UMIPExtendedPlayerInfoComponent – Extends MIPChatSystem's
UMIPPlayerInfoComponent; reacts to possessed pawn change and end play to keep player info in sync; handles update on logout. - UMIPPlayerClassComponent – Replicated player class (FGameplayTag); provides class data info, friendly info, startup abilities; broadcasts when class is initialized.
All paths below are relative to Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/.
Key Classes & Files¶
| Class | File |
|---|---|
UMIPControllerCommonSaveableObjectsComponent |
Public/Player/MIPControllerCommonSaveableObjectsComponent.h |
UMIPExtendedPlayerInfoComponent |
Public/Player/MIPExtendedPlayerInfoComponent.h |
UMIPPlayerClassComponent |
Public/Player/MIPPlayerClassComponent.h |
UMIPControllerCommonSaveableObjectsComponent¶
- Base: UMIPBaseSaveableComponent.
- Attachment: PlayerController (typical).
- Unlock slots:
ExtraUnlockedInventorySlotsMap(SaveGame) – FGameplayTag → extra unlocked count.UnlockInventorySlots(InInventory, InInventoryTag, InValue, bInPermanent, bInLoaded)is protected; called by inventory expansion or internal flow. Friend:AMIPBaseInventoryExpansionActor. - Equipment mesh:
ToggleEquipmentMeshShownState(InEquipmentSlotTag),RemoveEquipmentShownState(InEquipmentSlotTag),GetEquipmentMeshShownState(InEquipmentSlotTag).EquipmentMeshHiddenOverridesMap(SaveGame) – slot tag → bool hidden override. - New player:
bNewPlayer(SaveGame);IsNewPlayer(). Set false inOnLoaded_Implementation();OnLoggingOut()override for cleanup if needed.
UMIPExtendedPlayerInfoComponent¶
- Base: UMIPPlayerInfoComponent (from MIPChatSystem module).
- Attachment: PlayerController.
- Flow:
BeginPlay→ bind to possessed pawn change;OnPossessedPawnChanged,OnPossessedPawnEndPlay; on logout,UpdatePlayerInfoForPawnOnLoggingOut(InPawn). Keeps player info consistent when pawn is possessed/destroyed.
UMIPPlayerClassComponent¶
- Base: UMIPBasePlayerStateComponent.
- Attachment: PlayerState.
- Properties:
Class(FGameplayTag, SaveGame, ReplicatedUsing=OnRep_Class),ClassIndex(SaveGame). Resolved viaMIPPlayerClassSettingsDataAsset→PlayerClassAllInfoPtr. - API:
SetClass(InClass);GetPlayerClass(),GetPlayerClassFriendlyInfo(),GetPlayerClassDataInfo(),GetStartupAbilities(). - Delegate:
OnPlayerClassInitializedDelegate(FMIPPlayerClassDataInfo, FMIPPlayerClassFriendlyInfo)– fired when class is set/initialized.
Integration¶
- Inventory slot unlocks: UMIPBaseInventoryManagerComponent uses permanent unlock count from
UMIPControllerCommonSaveableObjectsComponent(friend/callback); see Inventory. - Equipment mesh show/hide is consumed by equipment or UI systems that read
GetEquipmentMeshShownState. - Player class is used for class-restricted items, abilities, and UI; startup abilities are applied from
GetStartupAbilities().