Description
AGameModeBase::FinishRestartPlayer

and

AGameModeBase::RestartPlayerAtPlayerStart

handle rotation differently for Spawning Pawns and Control Rotation depending on whether or not the game is Standalone or Multiplayer.

This can cause inconsistencies when spawning between Servers and Clients, and even Single Player vs. Multiplayer modes.

Steps to Reproduce
  1. Create a new BP Project.
  2. Add a BP Call to AGameModeBase::RestartPlayerAtTransform, with a Transform that has non-zero Pitch and Roll.
  3. Play in PIE with one player.
  4. Play in PIE with a dedicated server.
  5. Make sure the Player has no pawn, and trigger the restart event.

Expected:
In both cases, the Pawn is spawned at the given transform, and the control rotation is set to that transform.

Actual:
In non networked environments, the Pawn is spawned at the given transform, and the control rotation is set to that transform.

In networked environments, the Pawn is spawned at the given transform, but the control rotation has Roll set to 0 on the client.

  1. Repeat the steps from above, this time using AGameModeBase::RestartPlayerAtPlayerStart.

Expected:
In both cases, the Pawn is spawned at the transform of the Player Start, and control rotation is set to that rotation.

Actual:
In non networked environments, the Pawn is spawned at the given start point, with the Pitch and Roll removed. The control rotation is set to that transform with Pitch and Roll intact.

In networked environments, the Pawn is spawned at the given transform, with the Pitch and Roll removed. The control rotation is set to the transform with Pitch intact.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-63138 in the post.

1
Login to Vote

Won't Fix
ComponentUE - Gameplay
Affects Versions4.204.21
CreatedAug 21, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021