Another common reason why a pawn/actor/character’s BeginPlay()/Tick() methods would not get called is when you don’t spawn them from the gamemode. In other words, if your blueprint is not spawned (placed in the scene), then the corresponding methods (e.g. beginplay(), tick(), …) would not get called. Thus, you should do two things: verify that your custom gamemode is selected, and make sure you spawn the target pawn/actor/charactor from your custom gamemode :
1- To select your custom gamemode (e.g. BP_gamemode), within Unreal editor, go to Edit->Projet Settings->Maps&Modes:
2- Spawn the class whose beginplay method needs to be called using the following statement in your custom gamemode (e.g. BP_gmaemode.cpp) as follow:
BP_gamemode.cpp::BeginPlay()
// ....
FVector Location;
FRotator Rotation;
Cast<AActor>(GetWorld()->SpawnActor<AMyPawnClassName>(AMyPawnClassName::StaticClass(),Location,Rotation)));
// ....
