RealDocs

AGameModeBase::GetDefaultPawnClassForController

function Engine Since 4.14
#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?

Suggest an edit

Select a field above to begin editing.