Dramatic slow-downs when Ejecting traced back to dual-ticking of UGameInstance

A colleague of mine recently had an issue with his custom AI engine, which would run at double speed whenever he ejected from the player controller in PIE.

He traced the issue back to the UGameInstance class (which we use as a manager) ticking twice per-frame, causing all functions within to be called twice and subsequently run his external AI code at double speed. This would also explain the huge slow-downs we experience in our own title when ejecting in PIE, and I suspect a lot of users see the same thing when they eject too.

It wasn’t reported because it’s likely we’re not supposed to use GameInstance this way, but I thought it was worth mentioning in case this is a genuine engine bug. With such a core class, it might also be causing performance issues elsewhere too. We believe this only happens when you eject in PIE.

// —
Reported on AnswerHub here: https://answers.unrealengine.com/questions/170021/ugameinstance-ticks-twice-per-frame-when-you-eject.html

Sorry folks, turns out it’s UBaseManager ticking twice on Ejecting, not GameInstance. Updated Answerhub Post.