InputForge
A UE5-inspired Enhanced Input System for Godot 4 (C#). InputForge replaces
scattered _Input handlers and hard-coded key checks with a structured,
Inspector-driven pipeline: physical input sources are described as resources,
transformed through modifiers, gated by triggers, and delivered to typed callbacks.
Godot's built-in input map is action-based but flat — an action is either pressed or not, and context-switching (gameplay vs. menu vs. vehicle) is left to your own code. InputForge adds the layer that's missing.
Features
- Context stack — push/pop
InputMappingContextresources at runtime. The same physical key can mean different things depending on what the player is doing; the topmost context wins. OptionalPreventFallbackContextfor modal states. - Unified
InputKey— keyboard, gamepad, mouse buttons, analog axes, mouse delta, and absolute pointer position, all from one Inspector-configured resource. - Modifier pipeline — deadzone, invert, normalize, scale, swizzle, and pointer-space transforms, composable per binding and applied in order.
- Trigger system — decide when an action fires: on press, on release, on change, continuously, or pulsed — independently of the input source.
- Source-aware callbacks — when one action is driven by several inputs (e.g. WASD and mouse), the callback can tell which physical source fired.
- Type-safe callbacks — bind
Action<bool>,<float>,<Vector2>,<Vector3>, or the fullContextualInputEvent. Multiple subscribers per action. - No Godot InputMap dependency — bypasses hard-coded action strings entirely.
- Inspector-driven — actions, mappings, contexts, modifiers, and triggers are all resources. No custom editor UI, no code required for the wiring.
Performance
InputForge pays Godot's native _Input dispatch cost once per event, then fans out
in-process to all subscribers — so it scales better than N separate _Input
overrides as handler count grows. Full benchmark tables and methodology are in the
documentation.
Requirements
- Godot 4.7+ — .NET / Mono (C#) build
- .NET 8 SDK or newer
Links
- Documentation: https://pandoraoyun.github.io/InputForge.Docs/
- Source & issues: https://github.com/Pandoraoyun/InputForge
- License: MIT
Enable under Project → Project Settings → Plugins → InputForge; the
EnhancedInputSystem autoload is registered automatically.
Changelog for version v0.2.3
No changelog provided for this version.