Not possessing my default pawn on play

I just finished the 14th video in the 3rd person game tutorial and when I went to test out my game and hit play, I am ejected from the character controller. When I hit possess, everything starts to work normally.

I’ve set up a game mode referencing the tutorial blueprint class as the default pawn, and set the world settings to override game mode to the aforementioned. I left the player start actor in from the starter content, and after possessing, my character spawns there. I would expect to hit play and start with the tutorial’s character at this point, but it behaves as if I don’t have a game mode override selected at all.

Am I missing something or is this the expected behavior?

what I see on play:

game mode:

world settings:

Could you post pics of your gamemode class defaults tab and Maps and Modes section of Project Settings

I’ve edited my original response with some photos.

From the posted images, I dont see anything wrong.

Just to test something, try this:

Add BeginPlay event in your MyCharcter BP. Use GetPlayerController node to get a reference to your controller. Then call Posses node on it and pass ‘Self’ as the Pawn. Now hit play and see if it works.

If possible could you take a screenshot of Map&Modes settings tab from ProjectSettings window (I am using an older version of Engine 4.4 So it might be different there)

I have the same problem. Have you resolved it?

Edit → Editor Preferences → Play → Reset to Defaults

I know this post is old, but I just must thank you for this answer!

This really gave me headaches, because all changes I made to my default game mode didn’t apply without restarting UE4. Doing as you said, everything works fine!

I tried the reset to defaults thing, but it didn’t work for me. Mindfane’s suggestion’s FINALLY solved this problem for me. I have no idea what I did to screw it up, but I’m so happy it’s fixed now.

Another possible solution (and one which fixes lots of unexpected behavior):

Note, this applies only to C++ classes/base classes that don’t function as expected.

Many times, problems can be solved by adding “Super::foo(param)” to the top of your Derived::foo(param) definition.

For example, I had the above problem when trying to extend GameModeBase in C++. The default pawn would never spawn. On further inspection, I found that I had failed to call “Super::PostLogin()” inside my DerivedGameMode::PostLogin() method. As soon as I added it, the problem was resolved.

This just ensures that all the good stuff that the base class does actually happens.

I had the exact same problem and was beating my head again the wall. Thank you sir!

In case anyone else has this issue and finds this post, here’s what worked for me:

If you drop a pawn into the scene, you need to set that as the default pawn. You do this by selecting the pawn actor in the scene, then scroll through the details panel to find Auto Possess Player. Set it to Player 0.

Thank you to [Nachtmahr][2] for this solution.

Thank you! I also had the same problem as the original poster. I’m on version 4.26.0 and this method by A7426764001 has worked for me! Happy new year 2021!

“Edit → Editor Preferences → Play → Reset to Defaults”

That was it! Thanks Snow!

Jayzus. This happened to me too, resetting to default editor seetings resolved it. Did someone at Epic push a custom editor setting, rugged.

This one saved my life! I even considered that I’d missed a super call, checked tick, and deleted it from my “possible causes” list before coming across this response and remembering that PostLogin is virtual. Thank you from the future :smiley: