AGameModeBase::GetDefaultPawnClassForController
#include "GameFramework/GameModeBase.h"
Access: public
Description
Returns the pawn class to spawn for a given controller. The default implementation returns `DefaultPawnClass`. Override to return different classes based on controller type, team, or game state.
Signature
UClass* GetDefaultPawnClassForController(AController* InController) Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| InController | AController* | The controller needing a pawn class. | — |
Return Type
UClass* Caveats & Gotchas
- • Must return a valid `APawn` subclass; returning `nullptr` causes `SpawnDefaultPawnFor` to fail silently.
- • Called by `SpawnDefaultPawnFor` during `RestartPlayer`.
- • If using async-loaded pawn assets, ensure the class is fully loaded before returning it here.
Example
Return a per-player character class C++
UClass* AMyGameMode::GetDefaultPawnClassForController(AController* InController)
{
if (AMyPlayerController* PC = Cast<AMyPlayerController>(InController))
{
return PC->GetSelectedCharacterClass();
}
return Super::GetDefaultPawnClassForController(InController);
} Version History
Introduced in: 4.14
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
| 5.0 | stable | — |
Feedback
Was this helpful?