Skip to main content

Controls & Camera

Oasis currently uses seven input states and starts in noclip.

Core movement

InputAction
WASDMove
Q / EMove down / up in noclip
ShiftSprint
SpaceSlow movement
MouseLook around while pointer lock is active
Right clickRelease pointer lock
Ctrl + Alt + CCycle camera mode

Editing and world actions

InputAction
Left clickSelect object
ScrollZoom
RTranslate mode
TRotate mode
YScale mode
DeleteRemove selected object
Ctrl + CCopy selected object
Ctrl + VPaste and enter placement mode
Ctrl + ZUndo
Ctrl + Shift + ZRedo
EscapeCancel, deselect, or leave temporary state
Ctrl + Shift + PPanorama screenshot

Input states

StateWhat it is for
orbitMouse-free camera orbiting
noclipFree-fly building mode
third-personAvatar-based movement
agent-focusInteracting with a 3D agent window
placementPlacing objects into the world
paintPainting ground tiles
ui-focusedTyping into UI panels

Current source of truth

If controls ever disagree across docs, trust:

  1. src/lib/input-manager.ts
  2. the in-app Help panel
  3. the actual key handling in src/components/forge/WorldObjects.tsx