Docs
These docs are made to be read by both humans and AI. They are the same docs given to your AI when it runs!
Reads
create_object
Create a world object from the JSON string in object. If parent_id is omitted, the object is created under the root.
| Field | Type | |
|---|---|---|
| object | string | |
| parent_id | number | null |
add_default_material
Create a Material object from one built-in material name by looking up its uploaded texture data ids. The available material names are: {}. Returns the newly created material id.
| Field | Type | |
|---|---|---|
| name | string |
delete_object
Delete an object, recursively removing its children and clearing pointer or ownership links that target it.
| Field | Type | |
|---|---|---|
| object_id | number |
read_dirty_scripts_in_workspace
Read the current dirty script text from the editor workspace, with optional TypeScript diagnostics.
| Field | Type | |
|---|---|---|
| path_substring | string | null | |
| include_text | boolean | null | |
| include_diagnostics | boolean | null | |
| only_files_with_diagnostics | boolean | null |
read_all_script_warnings
Read TypeScript diagnostics for all scripts in the current editor workspace.
{}
read_script_raw_code
Read the stored raw code for one script object.
| Field | Type | |
|---|---|---|
| object_id | number |
ls
List direct children under in, with optional pagination and recursive child expansion up to depth levels.
| Field | Type | |
|---|---|---|
| in | number | |
| offset | number | null | |
| limit | number | null | |
| depth | number | null |
ls_data
List referenced mesh, animation, and texture data ids in the world, with optional mode filtering and pagination.
| Field | Type | |
|---|---|---|
| mode | DataMode | null | |
| offset | number | null | |
| limit | number | null |
inspect
Inspect one object. Returns object summary data plus parent, children, owner, incoming pointers, referenced data ids, optional script code, and info or physics fields based on mode.
| Field | Type | |
|---|---|---|
| object_id | number | |
| mode | InspectMode | null |
inspect_data
Inspect cached mesh, animation, or texture data by data_id. Texture results are metadata-only in this text response, and uncached data returns a failure payload describing the referenced types.
| Field | Type | |
|---|---|---|
| data_id | number |
grep
Search objects by AND-ing all provided filters. Supports name, type, parent, pointer or owner relationships, referenced data ids, and substring search over serialized object info.
| Field | Type | |
|---|---|---|
| name | string | null | |
| type | string | null | |
| parent_id | number | null | |
| object_id_that_points | number | null | |
| object_id_that_owns | number | null | |
| has_data_id | number | null | |
| object_info_string_contains | string | null | |
| offset | number | null | |
| limit | number | null |
get_path
Get the parent path from the root object down to one object, with optional pagination over the path entries.
| Field | Type | |
|---|---|---|
| object_id | number | |
| offset | number | null | |
| limit | number | null |
get_placement_warnings
Get structured placement warning data for colliding or unsupported ball, brick, or cylinder objects across the whole world.
{}
Writes
copy_and_paste
Duplicate an object and its children under the same parent. offset moves the copied subtree in world space, and the copied root name is auto-suffixed with _Copy if clone_name is omitted.
| Field | Type | |
|---|---|---|
| object_id | number | |
| offset | Vec3Args | null | |
| clone_name | string | null |
edit_object
Edit one object at jspath using the JSON string in jsvalue. jspath can be a dot-separated path like a.b.c or a JSON-encoded array of path segments.
| Field | Type | |
|---|---|---|
| object_id | number | |
| jspath | string | |
| jsvalue | string | A JSON string containing the value to write at |
write_script_raw_code
Write raw code for one script object.
| Field | Type | |
|---|---|---|
| object_id | number | |
| script_raw_code | string |
move_by_recursively
Move an object and its physical descendants by translation in world space.
| Field | Type | |
|---|---|---|
| object_id | number | |
| translation |
move_to_recursively
Move an object and its physical descendants so the root object ends up at target_point. This fails if the root object has no direct physics position.
| Field | Type | |
|---|---|---|
| object_id | number | |
| target_point |
scale_recursively
Scale an object and its physical descendants by scale_multiplier around center_point. If center_point is omitted, the tool uses the object's current physics position and fails if the object has no direct physics position.
| Field | Type | |
|---|---|---|
| object_id | number | |
| scale_multiplier | number | |
| center_point | Vec3Args | null |
rotate_recursively
Rotate an object and its physical descendants by rotation_magnitude radians around rotation_axis and center_point. If center_point is omitted, the tool uses the object's current physics position and fails if the object has no direct physics position.
part2
Create a brick from four base points that must form one rectangle on one plane, plus a positive height. Point order can be any order.
| Field | Type | |
|---|---|---|
| parent_id | number | |
| name | string | |
| base_point_1 | ||
| base_point_2 | ||
| base_point_3 | ||
| base_point_4 | ||
| height | number | |
| color | Color3Args | null | |
| opacity | number | null |
part3
Create an axis-aligned brick from opposite corners. normalized_color and normalized_opacity must stay within [0, 1].
| Field | Type | |
|---|---|---|
| parent_id | number | |
| name | string | |
| corner_point_1 | ||
| corner_point_2 | ||
| normalized_color | ||
| normalized_opacity | number |
Meta
report_issue
Report that tool behavior or the current system instructions or tool definitions are missing, conflicting, or unclear for the task. Use this instead of guessing when tool calling does not go to plan.
| Field | Type | |
|---|---|---|
| description | string |
run_parallel
Run multiple tool calls concurrently and return one status per subcall. Each tool_calls[].args value must be a JSON string for that subtool, and timeout_ms applies to the whole batch.
| Field | Type | |
|---|---|---|
| tool_calls | ||
| timeout_ms | number | null |
Input Types
DataMode
"mesh" | "texture" | "all"
InspectMode
"info" | "physics" | "all"
Vec3Args
| Field | Type | |
|---|---|---|
| x | number | |
| y | number | |
| z | number |
Color3Args
| Field | Type | |
|---|---|---|
| r | number | |
| g | number | |
| b | number |
RunParallelToolCallArgs
| Field | Type | |
|---|---|---|
| call_id | string | null | |
| tool_name | ||
| args | string |
ToolName
"create_object" | "serde" | "delete_object" | "read_dirty_scripts_in_workspace" | "read_all_script_warnings" | "read_script_raw_code" | "write_script_raw_code" | "get_placement_warnings" | "ls" | "inspect" | "grep" | "get_path" | "copy_and_paste" | "edit_object" | "ls_data" | "inspect_data" | "move_by_recursively" | "move_to_recursively" | "scale_recursively" | "rotate_recursively" | "part2" | "part3" | "report_issue" | "run_parallel"