editor.slate.getWidgetTree
Returns the Slate widget tree for all top-level windows.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
max_depth | int | No | Maximum traversal depth (1–10, default 3) |
Returns:
| Name | Type | Description |
|---|---|---|
windows | array | Widget tree per window (type, visibility, enabled, geometry, children) |
window_count | number | Number of top-level windows |
max_depth | number | Depth used for traversal |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.getWidgetTree", "params": { "max_depth": 2 } } editor.slate.getWidgetState
Searches for widgets matching a type name and returns their state.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
widget_type | string | Yes | Widget type substring to match (e.g. "SButton") |
max_results | int | No | Maximum matches to return (1–100, default 10) |
Returns:
| Name | Type | Description |
|---|---|---|
widget_type | string | The searched type |
matches | array | Matching widgets (each with type, visibility, enabled, geometry) |
match_count | number | Number of matches found |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.getWidgetState", "params": { "widget_type": "SButton", "max_results": 5 } } editor.slate.clickWidget
Finds a button widget by type and optional text, then simulates a click.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
widget_type | string | Yes | Widget type substring to match |
text | string | No | Text substring the widget must contain |
index | int | No | 0-based index among matches (default 0) |
Returns:
| Name | Type | Description |
|---|---|---|
clicked | bool | Whether the click succeeded |
widget_type | string | Actual type of the clicked widget |
text | string | Text extracted from the widget (if any) |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.clickWidget", "params": { "widget_type": "SButton", "text": "Compile" } } editor.slate.findWidgets
Advanced widget search with flexible criteria. Supports matching by type, text, or both. Returns richer data including text content, simplified widget path, and position/size.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
type | string | No* | Widget type substring to match (e.g. "SButton", "SCheckBox") |
text | string | No* | Text substring to match (case-insensitive) |
visible_only | bool | No | Only return visible widgets (default true) |
max_results | int | No | Maximum matches to return (1–100, default 20) |
max_depth | int | No | Maximum traversal depth (1–50, default 10) |
*At least one of type or text must be provided.
Returns:
| Name | Type | Description |
|---|---|---|
matches | array | Matching widgets (type, text, visibility, enabled, size, position, widget_path) |
match_count | number | Number of matches found |
type_filter | string | The type filter used (if provided) |
text_filter | string | The text filter used (if provided) |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.findWidgets", "params": { "type": "SButton", "max_results": 5 } } editor.slate.getPropertyPanel
Reads the Details panel for the current selection. Returns all editable properties organized by category.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
category | string | No | Filter to categories containing this substring (case-insensitive) |
Returns:
| Name | Type | Description |
|---|---|---|
selected_object | string | Class name of the selected object |
categories | array | Property categories, each with name and properties array (name, type, value, is_editable) |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.getPropertyPanel" } editor.slate.getEditorContext
Returns rich context about the current editor state — active editor, mode, tool, foreground tab, window title, language, and locale.
No parameters.
Returns:
| Name | Type | Description |
|---|---|---|
active_editor | string | Name of the most recently activated editor |
editor_mode | string | Current editor mode ("Default", "Placement", "Landscape", etc.) |
active_tool | string | Currently active interactive tool name, or "None" |
foreground_tab | string | Label of the foreground dock tab |
window_title | string | Title of the active top-level window |
language | string | Current editor language (e.g. "en") |
locale | string | Current editor locale (e.g. "en") |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.getEditorContext" } editor.slate.getMenuItems
Enumerates items in a menu or toolbar. When called with no parameters, returns the list of top-level menus. When given a menu_name, returns entries in that menu.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
menu_name | string | No | Menu to enumerate. Shorthand supported: "File", "Edit", "Window", "Tools", "Build", "Help". Full ToolMenu names also accepted. |
toolbar | bool | No | If true, resolve shorthand against toolbar namespace (default false) |
Returns:
| Name | Type | Description |
|---|---|---|
items | array | Menu/toolbar entries (label, tooltip, command_name, is_submenu, is_enabled, is_checked, section) |
item_count | number | Number of entries returned |
menu | string | Full ToolMenu name that was enumerated |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.getMenuItems", "params": { "menu_name": "File" } } editor.slate.invokeMenuItem
Triggers a menu action by matching label text or internal command name.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
label | string | No* | Text substring to match against menu item labels (case-insensitive) |
command | string | No* | Exact internal command/entry name to match |
menu_name | string | No | Restrict search to a specific menu |
*At least one of label or command must be provided.
Returns:
| Name | Type | Description |
|---|---|---|
success | bool | Whether the action was executed |
label | string | Label of the executed menu item |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.invokeMenuItem", "params": { "label": "Save Current Level" } } editor.slate.getTabs
Lists all open dock tabs across all tab wells and windows.
No parameters.
Returns:
| Name | Type | Description |
|---|---|---|
tabs | array | All open dock tabs (label, role, is_foreground, tab_id) |
tab_count | number | Total number of open tabs |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.getTabs" } editor.slate.activateTab
Brings a dock tab to the foreground in its tab well.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
label | string | No* | Text substring to match against tab labels (case-insensitive) |
tab_id | string | No* | Exact tab layout identifier (from getTabs response) |
*At least one of label or tab_id must be provided.
Returns:
| Name | Type | Description |
|---|---|---|
success | bool | Whether the tab was activated |
label | string | Label of the activated tab |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.activateTab", "params": { "label": "Content Browser" } } editor.slate.getDialogs
Lists active modal dialog windows. Returns each dialog's title, type, button labels, and message text. Useful for detecting unexpected dialogs that block editor workflows.
No parameters.
Returns:
| Name | Type | Description |
|---|---|---|
dialogs | array | Active modal dialog windows (title, type, is_modal, buttons, message) |
dialog_count | number | Number of active dialogs |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.getDialogs" } editor.slate.dismissDialog
Clicks a button on the frontmost modal dialog to dismiss it.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
button | string | Yes | Button label substring to match (case-insensitive) |
Returns:
| Name | Type | Description |
|---|---|---|
success | bool | Whether the button was clicked |
dialog_title | string | Title of the dismissed dialog |
button_clicked | string | Actual text of the clicked button |
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.slate.dismissDialog", "params": { "button": "Save Selected" } }