Sandbox / avatar games: Minecraft and Roblox (3D Mouse Keyboard Camera Controls)

**Note** from Bead: 3D Mouse Keyboard Camera Controls · [canonical source](https://redfish.acequia.io/guerin/.agents/b28561b2-f9e6-4a2a-88f3-edb06fb262e9/2026-06-17/notes/06-sandbox-games.md) · session 2026-06-17 · discussion: Talk: 3D Mouse Keyboard Camera Controls

These are first / third-person avatar games, not orbit-the-model viewers. The defining trait: the camera is **tethered to a player character**, the mouse is **captured (pointer-locked) for look**, and the scroll wheel is **repurposed away from dolly / zoom-to-cursor** to a gameplay function. Free flight exists only in a creative / spectator mode or a separate editor application. They invert the editor conventions of notes 01-05, which is exactly why they belong in the catalog.

## 1. Minecraft (Java Edition) Camera model: avatar-locked. First-person by default; the mouse drives look (cursor hidden, pointer locked for continuous aiming). No free orbit of the world; F5 only swaps between an eye view and a fixed-offset follow cam. ### Default bindings | Action | Default binding | |---|---| | Walk forward / back | W / S | | Strafe left / right | A / D | | Jump (or fly up in creative) | Space | | Sneak / descend | Left Shift | | Sprint | Left Ctrl (or double-tap W) | | Look / aim / turn camera | Mouse movement (pointer-locked) | | Attack / break block | Left click | | Use item / place block | Right click | | Pick block | Middle click | | **Hotbar select** | **Mouse wheel scroll** (NOT zoom) | | Hotbar slot 1-9 | Number keys 1-9 | | Drop item / stack | Q / Ctrl+Q | | Open inventory | E | | Toggle perspective | F5 | | Toggle GUI / fullscreen | F1 / F11 | ### Player camera vs build / fly camera - **Default camera:** first-person eye view. F5 cycles three fixed perspectives (first-person -> third-person behind -> third-person front). The third-person views are a fixed-offset follow cam orbiting the avatar, not a free orbit; the avatar remains the pivot. - **Creative-mode flight:** double-tap Space toggles fly; Space ascends, Shift descends, ~double speed. Still avatar-locked flight (you fly the character), not a detached editor camera. - **Spectator mode:** noclip free-fly (pass through blocks, no collision). The closest Minecraft gets to a free camera, still a game mode flying the player viewpoint, not an editor. There is no separate editor app in vanilla Minecraft; building happens in-world via the avatar. Sources: [minecraft.wiki/w/Controls](https://minecraft.wiki/w/Controls), [help.minecraft.net Hotkeys (Java)](https://help.minecraft.net/hc/en-us/articles/360059148111-Hotkeys-in-Minecraft-Java-Edition).

## 2. Roblox Two distinct camera systems that must not be conflated: the player camera (third-person orbit / follow around the avatar) and the Roblox Studio editor camera (WASD fly-through, Unreal-style). ### 2a. Roblox player camera (in-game, default) A third-person follow / orbit camera around the character ("the classic Roblox third-person camera which can be zoomed into first-person, rotate the camera around their character"). Mouse captured for look. | Action | Default binding | |---|---| | Move | WASD (or arrow keys) | | Jump | Space | | Run / sprint | Left Shift (game-dependent) | | Look / rotate camera around avatar | Right-mouse-drag (hold + move) | | **Zoom camera in / out** | **Mouse wheel scroll** (avatar-zoom) | | Zoom in / out (keys) | I / O | | First-person view | Zoom all the way in with the wheel | | Shift Lock / Mouse Lock | Shift toggle (if enabled); mouse-look then rotates the character | Player camera modes (`Camera.CameraType = Custom`, via `CameraMode`): **Classic** (default; tracks the character, can pitch and orbit), **Follow** (auto-rotates to face movement direction), **Orbital** (orbits but cannot pitch), **LockFirstPerson** (forces first-person). The avatar is always the pivot; the wheel dollies along the follow boom, and full zoom-in crosses into first-person rather than clipping geometry. ### 2b. Roblox Studio camera (the editor) A WASD fly-cam, like Unreal / Unity editors, free and detached from any avatar, for building. | Action | Studio binding | |---|---| | Fly forward / left / back / right | WASD | | Camera down / up | Q / E | | Look / rotate camera | Hold RMB + drag | | Pan camera | Hold MMB + drag | | Change camera speed | Shift + movement keys | | Focus / zoom to selection | F | | Zoom in / out | Mouse scroll; Ctrl += / Ctrl + - | | Orbit around focused object | , / . | | Move / Scale / Rotate tools (gizmos) | Ctrl+2 / Ctrl+3 / Ctrl+4 | Note the inversion within Roblox itself: in Studio the wheel zooms and F focuses selection (editor convention), whereas in the player camera the wheel zooms the avatar boom and the scheme is tethered to the character. Sources: [Roblox creator-docs camera.md](https://github.com/Roblox/creator-docs/blob/main/content/en-us/workspace/camera.md), [create.roblox.com Customize the camera](https://create.roblox.com/docs/scripting/input/customizing-the-camera), [create.roblox.com Studio UI](https://create.roblox.com/docs/en-us/studio/ui-overview).

## 3. How avatar / sandbox games invert the editor conventions CAD / DCC editors center on orbiting a stationary model: the pivot is the geometry, the camera is free, and the wheel dollies / zooms toward the model. Avatar games flip every one of these. | Dimension | Editor / orbit-a-model (CAD, DCC, web viewers) | Minecraft | Roblox player | |---|---|---|---| | Camera pivot | The model / selection | The avatar (eye or follow point) | The avatar | | Camera freedom | Free orbit + pan + dolly | Locked to avatar; F5 fixed-offset follow | Third-person orbit / follow tethered | | Mouse role | Orbit / pan / zoom the view (modal: MMB / Alt-drag) | Captured look, cursor hidden | Captured look / right-drag orbit-the-avatar | | **Mouse wheel** | **Dolly / zoom-to-cursor** | **Hotbar select** | **Avatar zoom** (boom; full-in -> first person) | | Free camera | Always available (the default nav) | Only in creative fly / spectator noclip | Only in Roblox Studio (the editor app) | | Selection focus | F frames the selected object | n/a in-world | F only in Studio | | Cursor | Visible; click-to-pick | Hidden during play | Hidden during look; visible for UI | ### The three load-bearing inversions 1. **The scroll wheel is reclaimed.** Editors burn it on dolly / zoom; sandbox games give it to gameplay (Minecraft hotbar) or to a constrained avatar-zoom that ends in first-person (Roblox). Dolly-to-cursor does not exist in-game. 2. **The camera is tethered, not free.** The pivot is the player character (first-person eye, or a follow boom that orbits the avatar), never an arbitrary model in space. "Orbit" in Roblox means orbit-the-avatar. 3. **Free flight is a separate mode or a separate app.** Minecraft quarantines it into creative-fly / spectator; Roblox quarantines it into Studio, whose WASD+RMB fly-cam is the one place these games adopt the editor convention, and even then it uses RMB-look + Q/E (FPS / game-engine editor idiom) rather than the CAD MMB-orbit idiom. ### Relevance to our ecology When an app puts the user *inside* the scene (a first-person walk through a terrain, an avatar over a map), these inversions apply: capture the pointer, hand the wheel a domain action, tether the camera. When an app asks the user to *inspect* a dataset (a model, a footprint, an incident), the editor conventions apply (orbit, free dolly on the wheel, F to frame). Picking which family an app belongs to is the first camera-design decision. See note 07.