Why SpawnActor PlayerStart in level BP doesn't work?

Hello. I’m trying to spawn character on level in different points. The point is an actor. I’m trying to get actor’s transform and spawn player at this coordinates, but nothing happens.
I’ve checked: cast to game instance is working, Door variable is correct and is 0. So player should spawn at BP_Entry’s coordinates, but it always spawns outside level and falling down. I don’t have another player’s start at level.


I can’t understand why is this happening. Could it be that player’s spawn is happening before I spawn “PlayerStart”?

I don’t believe that this is how PlayerStart works - as you said, you may spawn in before the PlayerStart actor spawns in.

You could try something like this instead, connecting BP_Entry and BP_Entry2 to the GetActorLocation nodes:

You have to spawn the player, not the player start :slight_smile:

Yes, your solution is working, so the problem is in spawnActor. @ClockworkOcean said I should spawn the player, not the player start, but I tried spawn everything (player start, character class, player controller, character bp…)


Everything isn’t work, but I want to deal with spawn actor, because I think “set actor location” isn’t right decision - my character (and camera) spawns in strange place and then transfer to right point. I think character should spawn already in right point. Can you give me advice with it?

So if you want to spawn the actor in, then you shouldn’t use PlayerStart; rather, you should go into your level blueprint and do something like this:


Where you place the branch in my previous reply and connect the Location to the location of BP_Entry

Spawning player start should work, but LevelBP seems to be too late for that.

In this case you’d have to do it in GameMode class, where InitGame happens before everything else. Or override FindPlayerStart to return the appropriate spawn location (obviously called before spawning).

Alternatively there might be some obscure engine remnant of an URL parameter called “Portal” which is used to choose a PlayerStart by tag at URL-level. This is present in 4.27 but I don’t know about UE5. Maybe someone else can confirm?

If that works, you can replace your BP_Entry actors with actual player starts, give each one of them a Tag like Entry1 and Entry2, then in the Open Level node (from previous level), add #Entry1 or #Entry2 in the Options string.

1 Like

It’s almost works but it caused another problem - I have camera in my top-down character BP, and looks like my character is falling when I’m using Possess function.


Could I have occasionally duplicate my character BP?
Update: Yes, there are two top-down characters in scene:

If there is a PlayerStart already in the world, then it will spawn a second character - remove this PlayerStart.

There is no player start in level, only BP_Entry where I’m spawning character, so I see this (withous possess function):


And falling character on the right side of screen with possess function.
Update: well, I fixed it but in absolutely stupid way - I just deleted first actor:

I suppose it can cause a lot of errors in future so if you know a better way, please, give me advice.

Well there isn’t any errors in the picture - maybe one is in the level? It’s hard to tell because there isn’t much info to work with…

You’re right - there isn’t any errors NOW. But I’m afraid, what if there WILL BE? Maybe “destroy actor” can delete the wrong actor or something else…