Last player game mode not saved after player dies or the game is reloaded
The bug
When joining a world or switching dimensions while in spectator mode, the game will forget the last game mode you were in and will put you into spectator mode (The game mode you are already in) when using F3 + N or F3 + F4.
Expected result
You should be set to survival/creative/adventure (whatever your last game mode was) whenever you use F3 + N or F3 + F4.
To reproduce
Steps (1)
- Join a world.
- Set your game mode to spectator mode.
- Use the /execute command to teleport into the nether.
- Press F3 + N to attempt to switch back to your previous game mode.
Steps (2)
- Join a world.
- Set your game mode to spectator mode.
- Leave and rejoin the world.
- Press F3 + N to attempt to switch back to your previous game mode.
Steps (3)
- Join a world.
- /gamemode creative
- /gamemode spectator
- Press F3 + F4
The game switches back to creative mode- /kill or rejoin the world/server
- Press F3 + F4
The game switches back to spectator mode
Code analysis
Code analysis by Sensei can be found in MC-260836 (Yarn mappings).
ServerPlayerInteractionManager#changeGameMode (1.19.3):

ServerPlayerInteractionManager#changeGameMode (prior to 1.19.3):

The previous game mode being set in ServerPlayerInteractionManager#setGameMode is no longer being set to the existing gamemode but instead the previous one, meaning that this never changes - it is always null, unless the player had set their previous gamemode in a version prior to 1.19.3.
2023-01-30, 05:56 PM
2025-02-03, 06:02 PM
20
11
-