Skip to content

AMIPBasePlayerController

File: Public/GameFramework/MIPBasePlayerController.h Base: APlayerControllerIMIPCommonComponentsInterface, 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

Input & Camera

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