What problem does it solve? Building a first-person controller that feels right requires handling subtle movement details — coyote time, jump buffering, asymmetric gravity, and external forces like knockback — that naive implementations get wrong, producing stiff or unfair-feeling movement. ## Core Features & Use Cases - Complete movement model: WASD movement, mouse look with yaw/pitch split, sprint, jump, separate ground/air acceleration and friction, and asymmetric gravity. - Game-feel timers: Coyote time and jump buffering windows so jumps near ledges and just-before-landing presses register correctly. - External velocity accumulator: A public add_external_velocity API for knockback, explosions, jump pads, and conveyor belts that decays smoothly without fighting player input. - Use Case: Scaffold a playable FPS prototype in Summer Engine by adding a CharacterBody3D player with capsule collision, head-mounted camera, InputMap bindings, and the controller script via MCP tools. ## Quick Start Ask your agent to add a first-person player controller with WASD movement, mouse look, and jumping to the current scene using the fps-controller skill.