vagant.inputMap
The one control scheme of *First Light: Vagant*. Eleven controls, each carrying keyboard, gamepad and touch, so the night is playable on a desktop, on a pad and under a thumb without a second scheme existing anywhere.
vagant.inputMap
The one control scheme of First Light: Vagant. Eleven controls, each carrying keyboard, gamepad and touch, so the night is playable on a desktop, on a pad and under a thumb without a second scheme existing anywhere.
| Control | Kind | Keyboard / mouse | Gamepad | Touch |
|---|---|---|---|---|
move | axis2 | WASD | left stick | left virtual stick |
look | axis2 | mouse (pointer locked) | right stick | right-side drag |
sprint — "Run" | button | Shift (held) | left-stick click, east | Run |
jump — "Climb" | button | Space | north | Climb |
relight | button | E (held) | south (held) | Relight |
hood | button | Q, right mouse | west, left trigger | Hood |
pause | button | Escape | start | Pause |
confirm | button | Enter, left mouse | south | — the card's own control |
back | button | Escape, right mouse | east | — the card's own Back |
navigate | axis2 | arrow keys | d-pad | — tap the control |
restart — "Again" | button | R | north | — the card's own Again |
Why the names are what they are
move, sprint, jump and look are read BY NAME by the engine's own
CharacterController and third_person_follow. Renaming sprint to run
would leave the character with no way to run at all, so the control keeps the
engine's name and shows the player its label, which is Run.
Why four controls carry no touch class
confirm, back, navigate and restart are menu controls, and on a phone
a menu is driven by touching the control you want. An overlay button for them
would be a second, unlabelled way to press the button already on screen, and
it would spend one of the four slots the night itself is played from. The
screens slice draws those controls at a thumb size; this map says so in the
record, where a reader sees it.
The four the night is played with
relight and hood render first, largest, and adjacent — they are the two a
thumb has to find in the dark without looking, so they share the act group
and take the two lowest priority numbers. Run sits above them. Pause is
last and smallest, deliberately away from the act cluster, so a thumb
reaching for Relight in a hurry cannot stop the game instead.
Shared bindings, and why none of them are ambiguous
Escape is pause and back; south is relight and confirm; north is
jump and restart. Each pair is answered in a different phase — pause
only while the night runs, back only while a card is up, restart only from
an end card — so one key opens the pause card and the same key closes it, and
nothing has to be learned twice.
look's gate declares rightButton = "off" because hood binds the right
mouse button as a game action: in this world a right-drag pulls the wig down
rather than swinging the camera.
Who runs it
The loop slice's GameLoop component activates it, and points the avatar's
CharacterController and the camera rig's behaviour at it too, so exactly one
scheme is ever live. screens stands the whole player group down with its
own ui map while a card is open.
Scoped to this part · feeds back into the world's score.