OmniWalk is a high-performance C++ middleware framework designed to solve the technical "Showstoppers" of non-Z-up locomotion in Unreal Engine. It delivers a "Zero-Config" solution for Ratchet & Clank style surface adhesion on arbitrary meshes.
Bugtesting continues on this MIT version, but only the Fab version is production-ready at all times.
Example video 1
Update video 1
Update video 2
Update video 3
Manual
Extension Modules Manual
| Comparison | Core GitHub version (0.1+ MIT) | Full FAB edition (0.3+ Closed) |
|---|---|---|
| Version | Core | Fully featured + updated |
| Distribution | Source only | Binaries, vetted by Epic |
| Engine support | UE 5.7.0 | UE 5.6 - 5.7.2+ |
| Gravity-relative camera | Included | Included |
| Angle handling | Included | Included |
| Arbitrary gravity, Wall walking | Included | Included |
| Wall sliding with input resistance | n/a | Included |
| Dedicated dismount & Sprinting | n/a | Included |
| Grace periods, Coyote time | n/a | Included |
| Planetary gravity (0.3) | n/a | Included as subsystem |
| Spider Walk / Convex Traversal | n/a | Included |
| 4 Magnetic Boots States (0.3) | n/a | Included |
| Volumetric Gravity System (0.3) | n/a | Included |
| Trigger Zones (0.3) | n/a | Included |
| Physics Field (0.3) | n/a | Included |
| Replication | n/a | Included |
| Code Access | Public scripts | Full implementation + samples |
| Updates | n/a | Regular, vetted by Epic |
| Quality Assurance | GitHub Issues | Vetted by Epic, tested by author |
| Support | GitHub Issues | Forum & Email |
- Arbitrary surface walking by driving SetGravityDirection from live surface normals (walls, ceilings, spheres).
- Surface detection and transition logic (multi‑point traces, wall detection, normal averaging, cooldown smoothing).
- Adhesion force to prevent popping off convex or inverted geometry.
- Gravity‑relative input mapping so movement aligns to the camera on any surface.
- Native 5.4+ Integration: Deeply integrated with
UCharacterMovementComponent::SetGravityDirectionfor frame-perfect physics integration. - The "Singular Component": No-code setup. Automatically hijacks Pawn settings, stabilizes camera gimbals, and remaps input vectors to surface planes.
- Gimbal-Free Solver: Custom camera modifier logic eliminates control inversion and view-locking at ±90° pitch.
- Surface-Projected Input: Intercepts and re-projects movement inputs onto triangle normals to prevent "capsule pinning" against vertical walls.
- Slate Telemetry: Dedicated editor debugger for real-time visualization of gravity vectors and alignment quality.
- Strafe/Follow toggle that works correctly under arbitrary gravity.
- Auto‑injection via tags for no‑code adoption in levels.
- Editor tools (example level generator, debugger telemetry).
OmniWalk/
├── Source/
│ ├── OmniWalk/ # Runtime Module (Adhesion & Input Hijacking)
│ └── OmniWalkEditor/ # Editor Module (Slate UI & Telemetry)
├── Resources/ # Icons and Visual Assets
├── Content/ # UI Styles and Prototype Blueprints
└── OmniWalk.uplugin # Descriptor# OmniWalk
Zero-Config Arbitrary Gravity & Surface Adhesion Framework for UE5.4+. Native C++ "Magneboot" locomotion with gimbal-free camera stabilization.
In UE 5.7, please setup your Character like this:
Add Component: Attach UOmniWalkPro to any ACharacter.
Tag (Optional): Add actor tag OmniWalk.Enabled for subsystem auto-injection.
Play: Move toward any surface. The framework handles orientation, gravity redefinition, and camera stabilization automatically.
To toggle between Strafing (facing camera) and Orient to Movement (facing travel), please use the Orient Rotation To Movement switch on the component.
OmniWalk ticks in the TG_PrePhysics group, ensuring that the redefined gravity vector is utilized by the CharacterMovementComponent during the current frame's integration. It utilizes Slerp-normalized Quaternions for orientation to avoid Euler singularities inherent in traditional platformer movement.
Distributed under the MIT License. See LICENSE for more information.



