Welcome to Input Nexus
Last updated
Last updated
InputNexus
is a plugin that streamlines how Enhanced Input System is handled and where gameplay logic is stored, creating a more designer-friendly approach and reducing clutter in the player controller and pawns.
Input Nexus Component: Hosts an array of Input Link's and is the home of input management.
Input Link: Objects linked to an input action's event to run your gameplay code.
Link Bundle: Quickly grant multiple Input Nexus component's the exact same Mapping Context, Input Action and Input Link setup.
Input Buffering: Open buffer channels to delay Input Link's code tied to those channels until the channel is closed.
The vast majority of gameplay logic around Enhanced Input System can be found in the player controller and pawn, which slowly leads to those classes becoming massively bloated.
Because of this, the core of InputNexus
can be found in the AC_InputNexus
actor component.
This component hosts an array of input actions, and grants each input action an array of InputLink
's, then when that input action is activated, the nexus component sends appropriate events to each link associated with that input action. This can include movement, opening an inventory screen, activating GAS abilities, etc.
This approach allows you to create reusable, easily manageable input gameplay logic that can be used across projects.
Should the regular InputAction
nodes continue to be used?
You can, but it is advised to use InputLinks
whenever possible because we can control the order and input consumption. This system does not block the regular input action nodes from being used in any way.
The helper library comes with a RegisterObjectWithInputComponent
and UnregisterObjectWithInputComponent
function, which enable and disable the traditional input action nodes in most classes.
Is it possible to have multiple Nexus components at the same time?
Yes! You can also enable/disable input events per Nexus component. Meaning you can disable one, then enable another Nexus component to completely swap out InputActions
and InputLinks
.
For things like GAS, why wouldn't I use the in-built EIS
support?
Every single system in Unreal that tries to tie some event to input actions are separated. So it becomes extremely difficult to debug, organize, customize and control. Lyra has its own implementation, GAS has its own implementation. InputNexus
is a centralized system that tries to allow itself to be connected to anything you want to enable EIS
support for, such as a custom ability system.
Does this support replication?
No. But it doesn't mean it can't be implemented. As stated , I am done with creating systems with replication support. It is fairly simple to add replication support, but I won't be adding it because it would mean that I would have to provide technical support for multiplayer issues.