AMIPBasePlayerController
File: Public/GameFramework/MIPBasePlayerController.h
Base: APlayerController → IMIPCommonComponentsInterface, IAbilitySystemInterface, ICharacterClassTagInterface, IGameplayTagAssetInterface
The PlayerController is the central hub that owns 45+ components covering every player system — inventory, save/load, interaction, UI, quest, social, combat, and more. All systems access components through IMIPCommonComponentsInterface rather than casting directly.
Component Inventory
Inventory & Economy
| Component |
Type |
Purpose |
MIPPlayerServerIMC |
UMIPPlayerServerIMC |
Server-authoritative inventory manager |
MIPStoragesManager |
UMIPStoragesManagerComponent |
Bank, stash |
CurrencyComponent |
UMIPCurrencyComponent |
Gold and premium currencies |
PlayerVendorManager |
UMIPPlayerVendorManager |
NPC shop buy/sell |
PlayerExchangeManager |
UMIPPlayerExchangeManager |
Personal and account exchange |
ItemEffectApplierComponent |
UMIPItemEffectApplierComponent |
Passive item stats and on-use effects |
EquipmentAttributesApplierComponent |
UMIPBaseEquipmentAttributesApplierComponent |
Pushes equipment stats into the ASC |
PersonalLootGroupManager |
UMIPPersonalLootGroupManager |
Personal loot piles and group rolls |
Save / Load
| Component |
Type |
Purpose |
SaveOperationsHandler |
UMIPSaveOperationsHandler |
Client save/load orchestration |
MIPServerLoad |
UMIPBaseServerLoadComponent |
Server-driven loading gates |
ClientCharacterSaveComponent |
UMIPClientBaseSaveComponent |
Character-scoped client savegame |
ClientFamilySaveComponent |
UMIPClientBaseSaveComponent |
Account/family client savegame |
ControllerCommonSaveableObjectsComponent |
UMIPControllerCommonSaveableObjectsComponent |
Controller-scoped save objects |
PlayerSocialsSaveLoadComponent |
UMIPPlayerSocialsSaveLoadComponent |
Friends and blocks persistence |
Interaction & World
| Component |
Type |
Purpose |
MIPInteraction |
UMIPInteractionComponent |
World interactable detection and use |
CircularInteractionSphereComponent |
UMIPCircularInteractionSphereComponent |
Radial interaction prompt |
ItemPickupComponent |
UMIPItemPickupComponent |
Pickup actor interaction |
ItemSelectionComponent |
UMIPItemSelectionComponent |
Ground pickup and target selection |
NPCInteractionManager |
UMIPNPCInteractionManager |
NPC dialogue, quests, and interaction |
GateManager |
UMIPGateManager |
Travel gate and session flow |
PlayerDungeonManager |
UMIPPlayerDungeonManager |
Dungeon enter/exit and instance rules |
UI
| Component |
Type |
Purpose |
ClientWidgetsManagerComponent |
UMIPClientWidgetsManagerComponent |
Major HUD widgets |
PopupWidgetManager |
UMIPPopupWidgetManager |
Modal popups and confirmations |
ProgressBarManager |
UMIPActionProgressBarManager |
Channelled actions and cast bars |
InGameESCMenuManager |
UMIPInGameESCMenuManager |
Pause / ESC menu stack |
PlayerNotifierComponent |
UMIPPlayerNotifierComponent |
Inventory change toasts |
ChatWidgetCreatorComponent |
UMIPChatWidgetCreatorComponent |
Chat widget instances |
ChatItemLinkerComponent |
UMIPChatItemLinkerComponent |
Item links in rich chat |
Progression & Abilities
| Component |
Type |
Purpose |
AbilityPointsLevelComponent |
UMIPAbilityPointsLevelComponent |
Ability-point spending and unlock |
PlayerLevelBasedFeaturesComponent |
UMIPBasePlayerLevelBasedFeaturesManager |
Level-based feature unlocks |
PlayerDynamicTagsContainer |
UMIPPlayerDynamicTagsContainer |
Runtime gameplay tags (buffs, quests) |
Cooldowns & Action Limits
| Component |
Type |
Purpose |
MIPBaseCooldown |
UMIPBaseCooldownComponent |
Item and ability cooldowns |
MIPClientCooldownRelayHandler |
UMIPClientCooldownRelayHandler |
Client-side cooldown mirror |
ActionLimitManagerComponent |
UMIPActionLimitManagerComponent |
Action rate limits |
CharacterActionLimitComponent |
UMIPCharacterActionLimitComponent |
Per-character limits |
FamilyActionLimitComponent |
UMIPFamilyActionLimitComponent |
Account-wide limits |
| Component |
Type |
Purpose |
InputManagerComponent |
UMIPPlayerInputManagerComponent |
Enhanced Input mapping |
CursorComponent |
UMIPCursorComponent |
Software cursor and hit testing |
ObjectOutlineManager |
UMIPObjectOutlineManager |
Interactable outlines |
TopDownPlayerControllerComponent |
UMIPTopDownPlayerControllerComponent |
Top-down click-move helpers |
TopDownPathFollowingComponent |
UMIPTopDownPathFollowingComponent |
Click-to-move path following |
Social & Quest
| Component |
Type |
Purpose |
QuestComponent |
UMIPBaseQuestComponent |
Quest state, tasks, journal |
FriendsComponent |
UMIPPlayerFriendsComponent |
Friend list and invites |
PartyComponent |
UMIPPlayerPartyComponent |
Active party state and RPCs |
PartyEventsListener |
UMIPPartyEventsListener |
Party roster and invite events |
FriendEventsListener |
UMIPFriendEventsListener |
Friend presence and requests |
SocketIOEventsListener |
UMIPControllerCommonSocketIOEventsListener |
Backend event bridge |
Other
| Component |
Type |
Purpose |
ClientSoundPlayer |
UMIPClientSoundPlayer |
Client-side UI and 2D sounds |
PlayerDealtDamageInfoQueueManager |
UMIPPlayerDealtDamageInfoQueueManager |
Floating combat text aggregation |
MIPQuickBarComponent |
UMIPQuickBarComponent |
Hotbar ability and item slots |
SendMessageProcessor |
UMIPBaseSendMessageProcessor |
Outgoing chat pipeline |
MinimapRuntimeComponent |
UMIPMinimapRuntimeComponent |
Fog-of-war and minimap |
PlayerMapManager |
UMIPPlayerMapManager |
World map discovery and markers |
ContinueMoveAfterSpawnComponent |
UMIPContinueMoveAfterSpawnComponent |
Resume movement after load screens |
SwitchChannelObjectHelper |
UMIPSwitchChannelObjectHelper |
Map travel on channel switch |
Loading Flow
PostLogin (server)
│
▼
OnRep_PlayerState()
Fires PlayerStateReadyDelegate
Triggers ListenForMIPPlayerStateReady()
│
▼
TryWaitASCReady()
Waits for AbilitySystemComponent to be valid
│
▼
OnASCManagerReady()
ASC is live; startup abilities can be granted
│
▼
[Server load components finish loading data from MongoDB]
│
▼
OnAllLoadingCompleted()
Sets bPlayerLoadingCompleted = true (replicated)
│
▼
OnRep_Pawn()
Pawn is possessed; player is fully in-game
Fires OnPlayerLoadingCompleted
K2_OnAllLoadingCompleted (Blueprint event)
Death & Respawn
| Property / Method |
Description |
DeathState |
EMIPDeathState — current death/alive state |
OnDeathStateChanged() |
Called when PlayerHealthComponent changes death state |
QuitDungeon() |
Exits current dungeon session |
HandleQuitDungeonOrRespawnAtTown() |
Either quits dungeon or respawns at town based on map type |
CharacterSelection() |
Returns to character selection screen |
Channel Switching
Players can switch between server channels (instances of the same map):
| Method |
Description |
SwitchChannel(ChannelInfo) |
Initiates a channel switch with the given session info |
ServerSwitchChannel(SessionId) |
Server RPC to perform the switch |
ClientTravelToWaitServerTravelMap() |
Client-side travel to a waiting map during switch |
The FMIPChannelInfo struct carries session ID, channel number, current/max players.
See Also