Skip to content
Back to wiki

GIPS 1.6 Release Notes

A

Author

Author

Created: Sep 09, 2026Updated: Sep 15, 2026

Table of contents

Generic Input System 1.6

Changes since 1.5. StateTree can now own input permissions and buffer windows. Two sloppy defaults are gone: the component must live on a Pawn, and an empty setup no longer allows every input. This is a behavior-tightening upgrade. A component on a Controller, or a missing setup, means no input after the upgrade.

Added

  • Combo, hit-react, and interaction windows can follow a StateTree state instead of manual push/pop in every ability. GIPS|Input nodes scope control setups and buffer windows to a state’s lifetime, and can listen or wait for those windows.
  • C++ and StateTree hear the same input events as Blueprint. The component adds native multicast delegates. Existing Blueprint delegates remain.
  • Mac is allowed on the runtime module. Enabling this plugin also enables StateTree. This release targets Unreal Engine 5.8.

Changed

  • The input component only accepts a Pawn owner. A PlayerController or AIController host is no longer a half-working option. StateTree can still resolve a Controller to its Pawn; the component itself must be on that Pawn. Bindings are not created if the owner is wrong.
  • An empty setup no longer means “allow all”. GetCurrentInputSetup() returning null now fails the check and logs a Warning. Projects that only used the component as an event bus still get broadcasts; processors do not run.
  • Bad Input Config fails in the editor; runtime nulls warn instead of check-crashing. Invalid tags, missing Input Actions, and incomplete buffer-window definitions are rejected.
  • Processors with empty InputTags now match every input. Trigger Events still filter them. Processors that used an empty list to stay idle will start handling everything.
  • Closing every buffer window notifies listeners once per window. CloseActiveInputBufferWindows used to clear the list silently. Animation or ability logic that assumed a quiet batch close can re-enter.

Fixed

  • Exact-match on listen actually works. ListenInputEvent’s bExactMatch existed in the 1.5 header but was never assigned. The default is still exact match.
  • Canceling an async listen unbinds the right delegate. Non-buffered listeners no longer unsubscribe from the buffered-input event, and always call Super::Cancel().

Removed

  • EGIPS_OwnerType is gone. The unfinished Controller-owner path was deleted instead of extended. External C++ that names the enum will not compile.

Upgrade Notes

Behavior tightening. Component placement, Input Config assets, processor tags, and window-close listeners need a pass. The usual failure if you skip it is a character with no input, or a processor that suddenly handles every action.

  1. Move UGIPS_InputSystemComponent from the Controller onto the possessed Pawn.
  2. Always give the component a valid UGIPS_InputControlSetup. Do not rely on “no setup means allow all”.
  3. Open existing Input Config assets and fix the new validation errors.
  4. Review processors with empty InputTags and confirm that matching every input is intended.
  5. If gameplay listens for “close all windows”, handle one close event per window.
  6. If the project deliberately disabled StateTree, resolve that hard dependency first.