Why isn’t unreal using my custom player start tag?

I use a custom actor class for spawning. Simple Actor with a box collision.

In the GM’s Begin Play I get all actors of class (BP_SpawnVolume) which outputs an array. I store the result in a variable.

In the GM’s settings I have the Default Pawn as a simple custom pawn class. When the client has loaded the map and other assets the loader pawn RPC’s the controller which calls the GM to spawn the actual character.

GM spawn character function grabs the array and chooses which spawn point to use. Then it destroys the loader pawn, spawns the character at the spawner location, and possesses the new pawn.


The Loading Pawns spawn location uses the GM’s default functions. I don’t actually care where it spawns because I use a loading screen to block the view of the camera. What I do care about is where the main character is loaded. So I use the above.

Main reason for this process is that characters (pawns) are spawned instantly on server join. Maps do not load instantly in a packaged game once you connect. The issue here is your pawn will fall through the map if you don’t override the character classes default behavior… movement mode = walk.

If you do override you have to use conditional logic and RPC’s to revert when ready. The above process is easier with less hackiness.


Loading Pawn

Controller Class

Game Mode



Spawning main character…


If you need sequential spawn points…



BP_LobbySpawnPoint (Actor)
Place Actor in the level then set its Spawn Order int variable to correspond with which client you want to spawn there… 1, 2, 3 etc

2 Likes