Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions content/editor/explorer.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,28 @@ Prerequisites: a writable project and an existing asset file. Stop Play before r

1. Copy the model and its companion files into the project with your operating system's file manager. Keep glTF buffers/textures and OBJ dependencies in their required relative locations.
2. Find the model in Explorer. The viewport accepts `.obj`, `.gltf`, `.glb` and `.fbx` model drops.
3. Drag the file into the authoring viewport. The editor imports it, creates/reads its `.rmeta` sidecar and uses its Asset ID for scene instances.
3. Click the file once to highlight it, then press and hold on its highlighted name and drag it into the authoring viewport. The editor imports it, creates/reads its `.rmeta` sidecar and uses its Asset ID for scene instances.
4. Inspect the created object, save the scene and check Console for import errors.

Expected result: an imported model appears as a scene object. A recognised extension alone does not guarantee that every file variant is supported. Keep the original source and metadata together; regenerating metadata may change identity.

## Files and scripts

The project separates assets, scenes, scripts, `ui/` Web assets, and configuration. **Programming → Object Component Script** creates and registers a script for the selected object; global and scene startup scopes also exist. Existing registered scripts can be attached through **Programming → Attach Existing Script** or Inspector. Double-clicking a script opens the external editor. Right-click (or two-finger click on a trackpad) offers **Set As → Global Startup Script**, **Scene Startup Script**, or **Object Component Script**. Select the target scene object first to enable Object Component Script. See [the scripting guides](/docs/scripting/lua) for each language's setup, including Luau registration and optional external runtimes.
The project separates assets, scenes, scripts, `ui/` Web assets, and configuration. **Programming → Object Component Script** creates and registers a script for the selected object; global and scene startup scopes also exist. Existing registered scripts can be attached through **Programming → Attach Existing Script** or Inspector. Right-click a script and choose **Open** to launch the external editor. Right-click (or two-finger click on a trackpad) offers **Set As → Global Startup Script**, **Scene Startup Script**, or **Object Component Script**. Select the target scene object first to enable Object Component Script. See [the scripting guides](/docs/scripting/lua) for each language's setup, including Luau registration and optional external runtimes.

## Rename, move, copy, cut and delete

Hovering over a row does not start a move. Press and hold the primary mouse button on the item name, then drag to another project folder or the root. A folder's arrow expands or collapses it; dragging its name moves only that folder, and dragging a child moves the child.
Click an Explorer file or folder name once to highlight it. Double-click the name to edit it inline. Press **Enter** or click elsewhere to save; **Escape** cancels. Use a single filename, including its extension. Empty names, path separators and existing names are rejected; Console explains the failure. Scene-tab selection and rename controls keep their existing behavior.

Click a file or folder name once to edit it inline. The field appears after the short double-click window so double-click can still open a file. Press **Enter** or click elsewhere to save; **Escape** cancels. Use a single filename, including its extension. Empty names, path separators and existing names are rejected; Console explains the failure.
**Shift-click** adds files or folders to the selection. Holding Shift and the primary mouse button while moving over names also adds those items. **Ctrl-click** highlights the visible range between the last highlighted item and the new item, including both ends. The range follows the tree's displayed order and skips collapsed/filtered entries. Ctrl+Shift adds that range to the existing selection.

Right-click an item, or use a two-finger trackpad click, for **Copy**, **Cut**, **Paste** and **Delete**. Copy/Cut stores an item in the editor clipboard; Paste on a folder uses that folder, and Paste on a file uses its containing folder. Right-click empty tree space for **Paste at Project Root**. Copies get a numbered name when needed. Cut leaves the source in place until a successful Paste. Delete moves the entry into `.rustic/trash/<identifier>/`; recover it with your operating system's file manager. The engine-owned `.rustic` directory is hidden from Explorer, including generated files and recovery trash. Scene Undo does not undo filesystem actions.
Hovering does not start a move. To drag, the item must already be highlighted before you press and hold on its name. Pressing and holding on an unhighlighted item highlights it; that press cannot start a drag. Release, then press and drag the highlighted name. Dragging a highlighted item moves the highlighted group to the destination folder or project root. Shift/Ctrl selection gestures do not start drags. A folder's arrow expands or collapses it. A selected folder and its selected descendants are moved/copied as one subtree.

Press **Ctrl+C** to copy highlighted items. Highlight a destination folder and press **Ctrl+V** to paste. If several folders are highlighted, each receives a copy of every copied item. This includes nested selected destinations. Without a selected folder, Paste uses the last selected file's containing folder, or the project root when the selection is empty. The editor also accepts Command+C/V on macOS. Shortcuts apply while Explorer has focus; a focused rename/filter text field uses normal text copy/paste. Copies remain in the clipboard for repeated Paste and get numbered names on collisions.

Right-click an item, or use a two-finger trackpad click, for **Copy**, **Cut**, **Paste**, **Delete**, and file **Open**. Copy/Cut/Delete uses the highlighted group when the clicked item is highlighted; otherwise the clicked item becomes the selection. Menu Paste on a folder uses that folder, and Paste on a file uses its containing folder. Right-click empty tree space for **Paste at Project Root**. Cut leaves sources in place until a successful Paste and accepts a single destination folder; use Copy for multiple destinations. A batch reports individual failures in Console and refreshes completed operations. Delete moves entries into `.rustic/trash/<identifier>/`; recover them with your operating system's file manager. The engine-owned `.rustic` directory is hidden from Explorer, including generated files and recovery trash. Scene Undo does not undo filesystem actions.

Select one model or script at a time for viewport drops; grouped drags organize files within Explorer.

These controls require a writable project and stopped Play. Moves and renames keep a file's `.rmeta` sidecar alongside it. Copies omit `.rmeta` so a new asset identity can be assigned on import or script registration. **Manifest paths, scene references and companion-file links are not rewritten.** Update affected references before Play; copied scripts must be registered using the script scope commands. A folder copy does not rewrite references within its files. Operations reject traversal, symbolic links, missing destinations, move collisions and moving/copying a folder into itself. A dangling destination symlink or an existing destination `.rmeta` also blocks a move or rename, even when the source has no metadata; inspect the destination with your file manager and resolve the conflict before retrying. Do not reuse orphaned metadata for an unrelated asset.

Expand Down
Loading