Default player start

Im sure this is easier than im making it. I have multiple player starts in my levels. The player starts are all tagged so that when you enter/exit levels, you always show up where you entered/exited. However, the player start for starting the game is not functioning, and i always end up starting at another player start (which is at the entrance the the first dungeon). I googled around a bit, but i cant seem to find a solid way to start the game at my beginning player start. I did a get all actors of class and set player start as the class in the game mode, but that didnt do anything. Also, i made sure that my game start player start is at the top. Can anyone point me to something that might help?

Hi @TLOA ,

I’m don’t have a solid understanding about your problem, I imagine what you want is similar with checkpoint system? where after you reach X location, you want to spawn in that location also? Correct me if I’m wrong.

I also want to clarify, so there is multiple player start actor in 1 Level right?

and when you Get all actor of player start, do you already check those player start Tag is the same with the tag you want before spawning the player?

also please correct me if I misunderstand something

Lets say you have 3 player starts on your main map. One is where you want the whole game to begin. One is coming out of a cave. The last one is outside of a castle. If you start the game, you want it to be at your default game start position. If you go into the castle, when you come out of the castle, you want it to start where the player start is outside the castle (not back where you start the game). Same for the cave.

For me, when i start the game, it starts me outside of the cave. I cant find a way to make that game beginning player start be the default for a new game.

For going into (or coming out of) the castle or the cave, i have a player start tag for those, so when you enter or exit, it seems to work fine. Its just that beginning one where i have no idea how to set it with a tag for game start.

so what do you want is to make sure the player always spawn at specific player start when the game start right?

Is it working if you just move the character in the BeginPlay to that specific actor location?

To your first question the answer is yes.

Your second question, the answer is that it only works in the editor. When i oackage the game, the player starts at other plater starts.

I don’t know if it is fit your problem or not, however, few weeks ago, I work on a game where the starting spawn location is randomly generated. I put the spawning mechanism in the Game Mode class in the BeginPlay. It work perfectly in the editor, but when I package the game, the player doesn’t spawn in the expected location (Pretty similar to your problem actually).

I fixed it by adding some delay before spawning the player (in your case, adding delay before moving the chara to the location).

if you use Blueprint, you can use Delay Node:

if you use C++ you can use a timer:

void AYourClass::BeginPlay()
{
    Super::BeginPlay();

	FTimerHandle Handle;
	GetWorld()->GetTimerManager().SetTimer(Handle, this, &AYourClass::MoveTheCharacterFunction, .2f, false);
}

Maybe you can try this if its work in editor, but not in packaged game

[Edited]
Maybe you want to set the delay to a higher amount first to see if its the problem or not. Maybe 1s is enough, then if its working, you can try to shorten the delay if you want.