# Controls (`0.1.0` walkable demo) Keyboard and mouse. The same list is shown in-game, bottom-right of the frame (`AGigLineHUD`), and the packaged Linux build ships with these bindings. | Action | Key | Notes | | --- | --- | --- | | Move forward | `W` | 4 m/s walk | | Move back | `S` | | | Strafe right | `D` | | | Strafe left | `A` | | | Look | Mouse | Captured on launch; `Escape` releases it | | Jump | `Space` | | | Reset to start | `R` | Returns to the grounded spawn point | | Pause / release mouse | `Escape` | Second press resumes and recaptures the mouse | ## Notes - Movement is relative to where you are looking (controller yaw), so the capsule stays upright on the sloped street. - The mouse is captured on launch, so looking works without clicking first. `Escape` toggles the capture as part of pause. - Bindings are Enhanced Input actions in `/Game/Input` built by `Tools/ue_create_input_assets.py`; the mapping context is `IMC_Default`. ## Testing input without a physical keyboard `Tools/input_test.py` injects OS-level keyboard/mouse events through a virtual `/dev/uinput` device (see `Tools/input_emulation.py`), e.g.: ```bash python3 Tools/input_test.py --sequence move:2,look:3 ``` It drives the focused game window exactly like real hardware, which is how the controls were regression-tested on the packaged build.