You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -17,7 +17,7 @@ pub fn tools() -> Vec<Value> {
),
(
"scene_create",
- "Create an empty persisted scene; does not switch or overwrite. Path is relative to the scenes folder.",
+ "Create an empty persisted scene for an independent screen/map or lifetime boundary; read authoring_guide for menu/loading/map decisions. Inspect scene_list first. Does not switch or overwrite. Path is relative to the scenes folder, e.g. maps/map1.scene.",
json!({"type":"object","required":["path","name"],"properties":{"path":{"type":"string"},"name":{"type":"string"}}}),
),
(
@@ -42,7 +42,7 @@ pub fn tools() -> Vec<Value> {
),
(
"object_create",
- "Create an authored folder, empty object, camera or light, optionally inside parent (null means scene root). Folders organize the scene explorer. For finished meshes use model_create; primitives are for deliberate blockouts/colliders.",
+ "Create an authored folder, empty object, camera or light, optionally inside parent (null means scene root). Use folders and nested subfolders to organize growing scenes by purpose/area; paren
@@ -101,7 +101,7 @@ fn handle(session: &mut WorkspaceSession, request: &Value) -> Option<Value> {
"protocolVersion": "2025-06-18",
"capabilities": {"tools": {"listChanged": false}},
"serverInfo": {"name": "rustic-workspace", "version": env!("CARGO_PKG_VERSION")},
- "instructions": "Call workspace_info first. If no game is selected, supply its absolute directory in project_root. Read project instructions with read_agent_file and read the bundled authoring_guide before editing game content. Prefer custom models and persist complete scenes before playtesting. Read scene_explorer_guide for hierarchy organization and folder/object creation, duplication and deletion. Use editor tools for properties, scenes, script scopes, model previews and playtest input."
+ "instructions": "Call workspace_info first. If no game is selected, supply its absolute directory in project_root. Read project instructions with read_agent_file and read the bundled authoring_guide before editing game content. Prefer custom models and persist complete scenes before playtesting. Organize growing scenes with meaningful folders and nested subfolders. Read sc
@@ -38,9 +38,57 @@ Use `scene_list` to discover active/start scenes and nested paths. Scene-managem
Call `texture_guide` and use the `rustic-textures` skill before assigning surface maps. `texture_inspect` reads direct and resolved maps; `texture_update` patches named slots and UV/intensity controls; `texture_create_child` attaches a Texture child as one undoable edit. Existing project-relative images are decoded before assignment. All 17 slots are optional. Do not invent a runtime material scripting API or treat a sky panorama as a complete PBR material. Inspect `viewport_capture`, save with `scene_save`, and verify the material in Play.
+## Decide when to create a new scene
+
+Use this workflow whenever a request adds a screen, level, map, mode or major world area. Inspect `scene_list`, `editor_status`, project instructions and existing transition scripts before deciding. Reuse a suitable existing scene instead of creating duplicates. State a brief decision and the intended entry/exit flow; do not expose private chain-of-thought or turn routine scene choices into approval requests. Follow the user's requested scope and existing project conventions.
+
+A scene is a separately
@@ -1,6 +1,6 @@
---
name: rustic-scene-explorer
-description: Organize the Rustic scene explorer, create folders, parent objects, and add, duplicate or delete scene objects and folder subtrees through plugin tools. Use for hierarchy layout, scene cleanup and grouped scene authoring.
+description: Organize the Rustic scene explorer, create folders, parent objects, and add, duplicate or delete scene objects and folder subtrees through plugin tools. Use whenever building or expanding scenes, organizing nested folders, cleaning up hierarchy or deciding whether content belongs in a folder or a separate scene.
---
# Lay out the scene explorer
@@ -14,6 +14,53 @@ The scene explorer (Hierarchy panel) represents the active scene's objects and p
3. Use short, descriptive names and shallow nesting. Preserve existing naming conventions and keep asset filenames, object names and folder purpose understandable. Work with UUIDs from the tools; names need not be unique. Keep objects from different scenes separate and refresh IDs after switching scenes.
4. Folders organize the hierarchy and contribute NO transform to their descendants: changing a folder's translation, rotation or scale does n
@@ -304,7 +304,7 @@ Use `workspace_info` to confirm the project root, then `read_agent_file` with pa
})).expect("plugin marketplace is serializable");
write_agent_default(files, &marketplace_file, &marketplace)?;
let instructions = format!(
- "# {project_name} agent workspace\n\nThese instructions apply to the Rustic game project at `{root}`. Confirm the game root with `workspace_info`. Make gameplay, scene, asset, shader, material, prefab, plugin, and configuration changes inside that project root. Agent information lives in editor app data; use `list_agent_files`, `read_agent_file`, and `write_agent_file` to access it. Do not edit the Rustic engine source repository unless the user explicitly requests engine work. Use the `rustic-workspace` MCP server to inspect scenes and locate documentation.\n"
+ "# {project_name} agent workspace\n\nThese instructions apply to the Rustic game project at `{root}`. Confirm the game root with `workspace_info`. Make gameplay, scene, asset, shader, material, prefab, plugin, and configuration changes inside that project root. Agent information lives in editor app data; use `list_agent_files`, `read_agent_file`, and `writ
@@ -205,6 +205,54 @@ whole component value. Read their exact JSON structure from `editor_status`.
A null camera/light removes it. Invalid batches fail without partial object edits.
`editor_undo` and `editor_redo` handle object edits. Save with `scene_save`.
+## Decide when to create a new scene
+
+Use this workflow whenever a request adds a screen, level, map, mode or major world area. Inspect `scene_list`, `editor_status`, project instructions and existing transition scripts before deciding. Reuse a suitable existing scene instead of creating duplicates. State a brief decision and the intended entry/exit flow; do not expose private chain-of-thought or turn routine scene choices into approval requests. Follow the user's requested scope and existing project conventions.
+
+A scene is a separately saved world with its own authored objects and scene/object script lifetime. A hierarchy folder groups objects inside one world. Choose a new scene when content needs an independent entry point, camera/UI composition, rules, reset boundary or load/unload lifetime. Choose folders when content belongs to the same active world and should remain available together. A large object count alone
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
docs: teach agents scene organization and scene boundaries
Download RusticGameEngine-Setup-0.1.0-x64-20261102-055934.exe
Release · All changed files and full diff · Download patch
Files changed
Engine/apps/agent-backend/src/editor_tools.rs— modified, +2 / -2Diff preview
@@ -17,7 +17,7 @@ pub fn tools() -> Vec<Value> { ), ( "scene_create", - "Create an empty persisted scene; does not switch or overwrite. Path is relative to the scenes folder.", + "Create an empty persisted scene for an independent screen/map or lifetime boundary; read authoring_guide for menu/loading/map decisions. Inspect scene_list first. Does not switch or overwrite. Path is relative to the scenes folder, e.g. maps/map1.scene.", json!({"type":"object","required":["path","name"],"properties":{"path":{"type":"string"},"name":{"type":"string"}}}), ), ( @@ -42,7 +42,7 @@ pub fn tools() -> Vec<Value> { ), ( "object_create", - "Create an authored folder, empty object, camera or light, optionally inside parent (null means scene root). Folders organize the scene explorer. For finished meshes use model_create; primitives are for deliberate blockouts/colliders.", + "Create an authored folder, empty object, camera or light, optionally inside parent (null means scene root). Use folders and nested subfolders to organize growing scenes by purpose/area; parenSee the file link for the complete diff.
Engine/apps/agent-backend/src/main.rs— modified, +2 / -2Diff preview
@@ -101,7 +101,7 @@ fn handle(session: &mut WorkspaceSession, request: &Value) -> Option<Value> { "protocolVersion": "2025-06-18", "capabilities": {"tools": {"listChanged": false}}, "serverInfo": {"name": "rustic-workspace", "version": env!("CARGO_PKG_VERSION")}, - "instructions": "Call workspace_info first. If no game is selected, supply its absolute directory in project_root. Read project instructions with read_agent_file and read the bundled authoring_guide before editing game content. Prefer custom models and persist complete scenes before playtesting. Read scene_explorer_guide for hierarchy organization and folder/object creation, duplication and deletion. Use editor tools for properties, scenes, script scopes, model previews and playtest input." + "instructions": "Call workspace_info first. If no game is selected, supply its absolute directory in project_root. Read project instructions with read_agent_file and read the bundled authoring_guide before editing game content. Prefer custom models and persist complete scenes before playtesting. Organize growing scenes with meaningful folders and nested subfolders. Read scSee the file link for the complete diff.
Engine/crates/engine-scripting/src/agent_authoring.md— modified, +49 / -1Diff preview
See the file link for the complete diff.
Engine/crates/engine-scripting/src/scene_explorer_skill.md— modified, +48 / -1Diff preview
See the file link for the complete diff.
Engine/crates/engine-scripting/src/workspace.rs— modified, +1 / -1Diff preview
@@ -304,7 +304,7 @@ Use `workspace_info` to confirm the project root, then `read_agent_file` with pa })).expect("plugin marketplace is serializable"); write_agent_default(files, &marketplace_file, &marketplace)?; let instructions = format!( - "# {project_name} agent workspace\n\nThese instructions apply to the Rustic game project at `{root}`. Confirm the game root with `workspace_info`. Make gameplay, scene, asset, shader, material, prefab, plugin, and configuration changes inside that project root. Agent information lives in editor app data; use `list_agent_files`, `read_agent_file`, and `write_agent_file` to access it. Do not edit the Rustic engine source repository unless the user explicitly requests engine work. Use the `rustic-workspace` MCP server to inspect scenes and locate documentation.\n" + "# {project_name} agent workspace\n\nThese instructions apply to the Rustic game project at `{root}`. Confirm the game root with `workspace_info`. Make gameplay, scene, asset, shader, material, prefab, plugin, and configuration changes inside that project root. Agent information lives in editor app data; use `list_agent_files`, `read_agent_file`, and `writSee the file link for the complete diff.
Engine/docs/AGENT_INTEGRATION.md— modified, +95 / -0Diff preview
See the file link for the complete diff.
All reactions