Developer Notes

AutoReceiveInput with player indices is not intended for multiplayer games but for local (and splitscreen) games only. Meaning the described repro case is not a bug, but a mix of features that should not be used together.

Description

AutoReceiveInput get incorrect controller (previous controller on previous level) on the Listen server at SeamlessTravel.

In the process of SeamlessTravel, player controller is changed for new level, and push this controller to World by AddController().

At the Server, server keeps previous player controllers until clients proceeding travel and re-login. So it keeps previous controllers on top of array.

Steps to Reproduce
  1. Put some actor on the level.
  2. set Player0 for AutoReceiveInput,
  3. Play Multi play game with this level.
  4. AActor;;PreInitializeComponents calls EnableInput for controller array[0:Player0], but it is previous controller.

On the previous level:
Array[0] = PrevController_1 (Local)
Array[1] = PrevController_2

Started Travel
Array[0] = PrevController_2
Array[1] = NextController_1 (Local)

After remote players logged in
Array[0] = NextController_1 (local)
Array[1] = NextController_2

Have Comments or More Details?

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

0
Login to Vote

Won't Fix
Affects Versions4.9
CreatedJan 19, 2016
ResolvedMay 6, 2016
UpdatedJul 14, 2021