This page combines the earlier quick start, configuration notes, and GAS integration example into one setup path. Generic Input System (GIPS) 1.6 builds on Enhanced Input, Gameplay Tags, and StateTree. It routes local input by tag, checks permissions, and buffers input; it does not create your Input Actions or implement movement, combat, or network actions.
Prerequisites
- Use Unreal Engine 5.8 or later and enable Enhanced Input, StateTree, and GenericInputSystem.
- Prepare your own Input Actions, Input Mapping Context, and Gameplay Tags.
- Attach
UGIPS_InputSystemComponentto a Pawn. The component does not support PlayerController or AIController ownership.
Setup
1. Configure Enhanced Input assets
Map keys to Input Actions in your project Input Mapping Context. Register each action managed by GIPS in InputActionMappings on a UGIPS_InputConfig: each entry maps a Gameplay Tag to a UInputAction. bValueBinding enables action-value binding and defaults to true.
For each registered action, the component binds Enhanced Input phases Started, Triggered, Ongoing, Completed, and Canceled. A trigger phase is not a per-entry field in InputActionMappings; permissions, processors, and allowed-input lists filter phases independently.
2. Configure an Input Control Setup
Create at least one UGIPS_InputControlSetup and place it in the component InputControlSetups array. The last entry is current. Add InputCheckers, AlwaysAllowedInputs, and InputProcessors as needed. To buffer rejected input, also enable bEnableInputBuffer on the current setup.
3. Define buffer windows (optional)
In InputBufferDefinitions on the UGIPS_InputConfig, define each window tag, BufferType, and AllowedInputs. Each allowed entry can restrict the Gameplay Tag and trigger phase; an empty TriggerEvents list allows every phase. A window has no duration field. Game logic, Blueprint, animation flow, or StateTree controls when it opens and closes.
4. Add the component and assign assets
Add UGIPS_InputSystemComponent to a Pawn Blueprint or C++ class, then assign InputConfig and at least one valid InputControlSetup. Set InputMappingContext and InputPriority if the component should manage that Pawn mapping context. Local-player Enhanced Input bindings are created when the Pawn Enhanced Input Component is ready and are cleaned up when that input context is removed or the controller changes.
5. Choose how input is handled
- Internal handling (default): input passes through the current setup checkers. If rejected, it can be buffered when buffering is enabled and an active window allows its tag and phase. Inputs that pass are sent to matching processors.
- External handling: enabling
bProcessingInputExternallyskips internal permission checks, buffering, and processors. The component still records the last action value and broadcastsOnReceivedInput. Listening to this event does not mean the input passed permission checks.
GAS and other gameplay systems
GIPS has no fixed GAS integration. A project can derive a processor from UGIPS_InputProcessor and send accepted input to its own Ability System; a custom UGIPS_InputChecker can implement project-specific permission rules. The tag relationship checker reads tags from the Pawn when it implements IGameplayTagAssetInterface. If tags come from an Ability System Component, override GetActorTags in a derived checker.
StateTree integration
The plugin provides tasks such as GIPS Input Setup Scope, GIPS Buffer Window Scope, GIPS Listen Buffer Window, and GIPS Wait Buffer Window, plus conditions for active windows and the latest buffered input. These can bind setup and window lifetimes to StateTree states.
Related pages
- Input System Component: component settings, events, and value access.
- Input Control Setup: checkers, processors, and the setup stack.
- Input Buffering System: window policies and lifecycle.
- Debugging Guide: logs and Gameplay Debugger.