View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.2.1
- Last updated
- First released
- Unity version
- 6000.3.8 or later
- Package size
- 1.3 MB
- Files
- 63
- Views in the past week
- 13
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $12.49 on
Keywords
XLR8 Movement
Built for games where movement is a skill. Tune the physics, master air control, and build the fast, momentum driven FPS movement that makes every jump and strafe matter.
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 1
XLR8 Movement video 1
About this asset
XLR8 Controller
Quake-Inspired FPS Movement for Unity
A custom kinematic controller built for fast-paced XLR8 movement. XLR8 uses its own collision solver and movement simulation rather than Unity's built-in CharacterController or force-based Rigidbody movement.
The movement model is built around acceleration, friction, air control, and momentum, with support for classic Quake-style air strafing and ground movement. Collision handling, tick timing, and movement parameters are all under your control, making it suitable for everything from old-school arena shooters to modern movement-focused FPS games.
Movement
- Quake-style physics: Ground acceleration, air acceleration, friction, speed limits, and air strafing.
- Jumping: Coyote time and jump buffering for more forgiving, responsive jumps.
- Crouching and sprinting: Smooth crouch transitions, overhead clearance checks, and separate movement speeds.
- Ladders: Climbing based on the player's position and orientation relative to the ladder.
- Step handling: Step-up and step-down logic for navigating stairs, ledges, and uneven terrain.
- Noclip: Free movement for testing levels and debugging.
Collision and Simulation
XLR8 uses a custom capsule-based collide-and-slide solver built on Unity's Physics.CapsuleCastNonAlloc. Instead of relying on Unity's CharacterController, the motor handles collision response, velocity clipping, and movement along surfaces directly.
- Collide-and-slide: Resolves movement against walls and other intersecting surfaces using collision normals.
- Velocity clipping: Projects velocity along collision planes to preserve movement where possible while preventing motion into blocking geometry.
- Ground detection: Separate ground sweeps help determine when the player is grounded and handle downward movement over steps and slopes.
- Fixed-rate simulation: XLR8TickManager runs the movement simulation at a configurable tick rate, defaulting to 125 Hz, independently of the render frame rate. A per-frame tick limit helps prevent excessive catch-up work during lag spikes.
Configuration
Movement and physics parameters are stored in XLR8Settings, a ScriptableObject that can be configured in the Inspector.
Tune walk, sprint, crouch, air, and climb speeds, along with acceleration, friction, gravity, jump settings, slope limits, step height, terminal velocity, noclip speed, and collision padding. Jump buffering, coyote time, and other movement timings can be adjusted without changing the motor code.
Architecture
The system is split into a few focused components:
- XLR8Motor: The main movement motor. Handles locomotion, jumping, crouching, sprinting, ladder movement, slope handling, step logic, and noclip. It also exposes OnJumped, OnLanded, and OnStateChanged events for connecting movement to camera effects, animation, audio, or other gameplay systems.
- XLR8CollisionSolver: Handles capsule sweeps, ground checks, and collide and slide algorithm. It clips velocity against collision planes and resolves movement around geometry without relying on Rigidbody forces.
- XLR8TickManager: Manages the fixed rate movement loop using a delta-time accumulator. The tick frequency and maximum catch up ticks per frame are configurable.
- XLR8Settings: Stores the movement and physics parameters in a reusable ScriptableObject, keeping tuning separate from the motor implementation.
- XLR8InputBase: Separates input from movement logic. Movement input, look rotation, and action flags are passed to the motor through an abstract controller layer, allowing you to connect your preferred input setup or AI driven controls without rewriting the movement system.
-- Resources --
From the publisher's Asset Store listing.
Technical details
- Unity Compatibility: Unity 2021.3 LTS or newer.
- Dependencies: None (Pure C# script package).
- Component Requirements: Requires CapsuleCollider and kinematic Rigidbody components (auto-configured via script attributes).
Compatibility
| Unity version | Built-in | URP | HDRP | Custom |
|---|---|---|---|---|
| 6000.3.8f1 | Compatible | Compatible | Compatible | Compatible |
As listed on the Asset Store.