The Map Editor viewport has Blender-style keys: G, R and S start a move, rotate or scale that follows the mouse. There is also a Blender-style rotate gizmo, a key to drop objects onto the ground, and a panel that lists every key. All keys below were read from the code.
Before you start
- View > Blender-style Keys is on (it is by default; setting
MapEditor_Blender_Keys). - The mouse is over the viewport and the viewport has focus. Keys act on the viewport selection.
- Blender's Z is up. Here Z is the game's Y (up) and Y is the game's Z.
Move, rotate or scale
- Select one or more objects.
- Press G (move), R (rotate) or S (scale). The selection follows the mouse and a line of text at the viewport shows the amount and the lock.
- Optional: press X, Y or Z to lock to that world axis. Press the same key again for the selection's own (local) axis. A third press frees it. Shift+X/Y/Z locks to the plane without that axis (move and scale only).
- Optional: type a number for an exact amount: metres, degrees or a scale factor.
- Press Enter or left click to confirm. Press Esc or right click to cancel.
A confirmed transform is one undo step.
Rotate details:
- With no axis, R turns around the view direction.
- Press R again while rotating for a trackball rotate. R once more goes back.
- Pressing an axis key during a trackball switches back to a plain rotate around that axis.
Push and pull with the scroll wheel
While moving (G), the mouse wheel pushes the selection away from the camera (wheel up) or pulls it closer (down). One notch is a tenth of the selection's distance from the camera. Hold Shift for a hundredth.
- Free move: along the line from the camera through the selection.
- Locked to an axis: along that axis. Locked to world Z: straight up and down.
- Locked to a plane: within that plane.
The rotate gizmo
When the gizmo is in rotate mode (Shift+E by default), Smithbox's rotate rings are replaced by a Blender-style gizmo:
- A coloured ring: drag to turn around that axis. Only the half facing the camera is drawn.
- The white outer ring: drag to turn around the view.
- Inside the sphere: drag to tumble freely (trackball).
Let go of the mouse to apply. Ctrl snaps, Shift is finer, right click cancels. It follows the gizmo's World / Local
space setting. Turn it off with the Blender rotate gizmo checkbox in the Shortcuts panel (setting
MapEditor_Blender_Rotate_Gizmo). It is only shown when gizmos are drawn at all.
Snap to the surface
- End drops the selection onto the surface below it.
- Shift+End also tilts it to the slope and keeps its facing.
These work whether or not the Blender-style keys are on, with focus on the viewport or the map tree. Surfaces are the triangles of the loaded maps' assets and map pieces and the hit collision. A message says how many objects moved and how many had nothing below them. One undo step.
The Object Palette's Align to slope option does the same at placement, see place-an-object.md.
Selecting and deselecting by click
- Click an object: select it alone.
- Click the one selected object again: deselect it.
- Click empty space: clear the selection.
- Ctrl+click or Shift+click: add the object, or take it out if it is already selected.
- In a larger selection, a plain click narrows it to the clicked object.
The Shortcuts panel
View > Shortcuts Panel shows a window titled Shortcuts (on by default). It has the Blender-style keys and Blender rotate gizmo checkboxes and three tables: Blender-style, During move / rotate / scale and Smithbox (Smithbox's own keys as currently bound). Smithbox's own keys are rebound under Shortcuts in the top menu bar. The Blender-style keys are fixed.
Key table
Blender-style keys (mouse over the viewport, nothing being dragged):
| Keys | Action |
|---|---|
| G | Move the selection with the mouse |
| R | Rotate the selection around the view direction (R again: trackball) |
| S | Scale the selection |
| Shift+D | Duplicate, then move the copies |
| X | Delete the selection (replaces Pull to Camera) |
| Alt+R | Clear rotation |
| Alt+S | Clear scale |
| H | Hide the selection in the editor |
| Alt+H | Show everything again |
| Alt+A | Deselect all |
| Numpad . | Frame the selection |
| Ctrl+Shift+Z | Redo |
| End | Drop the selection onto the ground below it |
| Shift+End | Drop onto the ground and tilt to match the slope (keeps facing) |
During a move, rotate or scale:
| Keys | Action |
|---|---|
| X / Y / Z | Lock to that world axis (Z is up); again for the selection's own axis; a third time frees it |
| Shift+X / Y / Z | Lock to the plane without that axis (move and scale) |
| 0-9 . - | Type an exact amount: metres, degrees (anticlockwise seen from the axis) or a scale factor |
| Backspace | Remove the last typed character |
| Ctrl (hold) | Snap: 1 m, 5 degrees, x0.1 |
| Ctrl+Shift (hold) | Finer snap: 0.1 m, 1 degree, x0.01 |
| Shift (hold) | Precision: the mouse moves the transform a tenth as far |
| R while rotating | Trackball rotate; R again goes back |
| Mouse wheel (move) | Push the selection away (up) or pull it closer (down); Shift for small steps |
| G / R / S | Switch between move, rotate and scale |
| Enter / Left click | Confirm (one undo step) |
| Esc / Right click | Cancel |
Smithbox defaults that matter here (can be rebound):
| Keys | Action |
|---|---|
| Shift+W / Shift+E / Shift+G | Gizmo: move / rotate / scale mode |
| Ctrl+R | Reset rotation |
| Alt+1 | Toggle the orange selection tint |
| Esc | Deselect all |
| X | Pull the selection to the camera (only when the Blender-style keys are off) |
What goes wrong
- A key does nothing. The mouse is not over the viewport, a text field has focus, or a mouse button is held.
- X deleted my object. With the Blender-style keys on, X deletes instead of Pull to Camera. Ctrl+Z undoes it.
- Alt+R cleared the rotation. With the keys on, Alt+R clears rotation instead of Smithbox's rotate on X.
- "No collision found below the selection". Nothing is loaded under the object. Load the map that holds the ground.
Through the MCP bridge
modal_transform runs a G / R / S transform with an axis, a typed amount or a wheel push. rotate_gizmo drags a part
of the rotate gizmo. The bridge also has a snap_to_surface tool, but smithbox_mcp.py does not wrap it.
See mcp-bridge.md.