Open level and change player start location

I think there are some flaws in your code.

First of all the GameMode gets destroyed and a new instance is instantiated when you call “Open Level”. So, whatever you set on it before loading the new map will be reset. Instead you should either use GameInstance to store your target location or, how I would try it, pass it as a Parameter of the open level node. Check Open Level Options - #13 by Atheist91.

Second, since your destination door doesn’t exist in the current level “Get actors of class” can not find it, resulting in your runtime error.

Third, your “Destination Door” variable is a class type reference. Doing it like that would mean for each destination door you would have to create a dedicated class. So for 100 doors you would have to create 100 classes. Not optimal. Instead I propose to use actor tags instead. So each destination playerstart would get a unique actor tag.

So in the end, I would pass the destinations actor tag as a parameter to the open level node. Then in your GameMode inside of “ChoosePlayerStart” you can use the “Get All actors of class with Tag” to find a player start having the passed over Tag.

Hope that makes sense to you.