GameViewportClient Interactions-array

(This is a copy from my AnswerHub question, in hindsight, I found the forum more appropriate)

The Interactions-array from GameViewportClient is no longer available and I’m curious why a simple and effective system like that didn’t make the cut in UE4? It’s such a hassle now to capture input in a way the console can (of which most are hacks, frankly…), whereas before I would just push an interactable on the stack (which PlayerInput used to implement as well), and I would eventually get my turn to directly work with input.

Any chance this can be added back, officially? I can obviously put it in myself, or make certain functions virtual, so I can overwrite them, but I’m not too fond of making core engine changes for upgrading reasons.

So to start I’ll have to be honest and say I’m not super familiar with the interactions system you’re speaking of but found so I think I more or less understand what they previously did.

I think the core of the answer of why they are not there is reliable behavior. With the system as it is now, execution order is guaranteed, with the interactions system you don’t have control over who gets input when and so different systems can easily end up in conflict with one another.

Another significant issue with putting interactions back in would be viewport association. While in a stand alone game there is only one world, in the editor with the multi-player PIE there can be multiple game viewport clients and knowing which clients interactions array a created class would go to is undefined.

Both GameViewportClient and PlayerController can be subclassed and implement all of the Input functions as virtual so you can inherit and add in your own behaviors like how the Console gets input routed to it when appropriate.