Movement breaks upon reloading level

I’m new to UE4, so I apologize if this question is somewhat noobish or has been answered already. I am facing issues with enabling movement after loading and entering a level, then re-entering the original level.

I’m playing with level loading and I’ve created a “hub” in the form of a hallway. When the hallway loads, I create a Player Start at an empty actor, and the player can freely roam. Then the player can click on a door to enter a room. This room loads as a separate level and not as a stream level because I need a separate Player Start for this room, and I need to lock my player’s movement and camera in my custom player controller:


The branch to decide on movement options fires correctly here. After the player is done, I want them to click on a door leading back to the hallway.

The transition from the hallway to the room works properly, but after re-loading the hallway, I can’t move. I used Open Level to enter the hallway in the exact same way I did to exit, and I printed to console to check whether move input was being ignored, and checked the hierarchy to make sure all my actors were in the game, but everything checked out. The weird thing is that when I enter the hallway, my UI, variables, etc. load as expected - I just don’t know why the movement would work on the first spawn then break after reloading.

If it helps, I’m seeing an error in my log:

LogGameMode: FindPlayerStart: PATHS NOT DEFINED or NO PLAYERSTART with positive rating

Even though I check the hierarchy and the player start is there, and I got no such error when I began the game in the hallway.

Also, here is my level blueprint for the hallway. PlayerPawn is my custom Pawn for my Game Mode, and the actor with tag CanStart is where I wish to place my Player Start:

And that is done with the BeginPlay event. This event is for sure firing because the “Load Player Functions” at the end of that event fires.

Edit: I’ve been reminded that I actually don’t need to spawn the player start, so the above image is now irrelevant. I only have the cast and Load Player Functions there now.

I can’t quite see what’s going on here, but if these are seperate levels, why not just place the player start in the level. Why spawn it?

Do you have spawn player set as ‘current camera’ or ‘player start’?:


Oh, I was spawning it because of some alterations I did to the custom pawn, but now I see that I don’t need to do that anymore.

After I saw this comment I deleted the code to spawn the player start and tried placing it normally. I’m not getting the “paths not defined” message anymore, but I still can’t move.

Edit: and yes, I have spawn player as ‘player start’

Is your pawn by any chance top down and using SimpleMoveToLocation, or similar?

Then maybe you don’t have the nav volume setup right when you come back to the level.

If not that, then I’m wondering about player collision getting stuck on something, maybe try moving the player start…

Hi, thanks for sticking with this question - right now my pawn inherits from DefaultPawn, would that cause issues with nav volume? Also, now that you mentioned it, the more I play around, the more I have a creeping suspicion that player collision really is the issue here. I’ll look in my settings again, thanks.

When you start play, and get stuck, press F8. You can ‘pop out’ of the player and take a look around, and enable collsion view:

Thanks for the helpful tip - I checked my collision, I don’t see anything blocking it. I’ll look through the documentation of default pawn and see if that is messing anything up.

Hmm, I think that default pawn just sort of glides around doesn’t it. Doesn’t really have character movement.

I’m out of ideas I’m afraid.

If you want to package a minimal project I’ll download it a take a look…

I’ll try to do that when I can, I’d have to move a couple things first. Hopefully while moving stuff around, the problem will solve itself.

Okay, I’m embarrassed but I found the issue: in a widget that I’d completely forgotten about but never remembered to alter, I set my Input Mode to UI only, and therefore when I went to the next level, the input mode remained as UI only… set a boolean to decide the input mode and immediately solved the issue.

I’ve learned my lesson: one node can break the entire project, so you have to look everywhere.