From 619fd17bcf6392d24b722a80652d7caefef1e7db Mon Sep 17 00:00:00 2001 From: Joseph Ibrahim Date: Thu, 2 Jul 2026 10:52:07 -0400 Subject: [PATCH 1/2] feat(m3): Epic MCP scaffold + live capability probe -> retirement matrix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/EPIC_MCP_MATRIX.md: the retirement contract-of-record. Live-probed Epic official Unreal MCP (UE 5.8.0, AllToolsets): 52 toolsets / 830 tools, full schemas captured. Verdicts for all 58 of our tools: 36 RETIRE (behind legacy flag), 17 KEEP, 5 KEEP-PARTIAL — every claim cites exact probe tool names; absences verified by whole-probe search. Key facts: Tool Search Mode is default (tools/list = 3 meta-tools), execute_tool_script is a sandboxed batcher (no unreal import — our ue_execute_python stays unique), no console exec / undo / lighting / cloner / continuous-perception anywhere in the surface. - docs/epic_mcp/: raw probe captures (AllToolsets + blank-default) and the Programmatic exec-sandbox environment record. - scripts/probe_epic_mcp.py: repeatable prober (rerun per engine version; the diff is the drift report). - .mcp.json: two-server config — our stdio bridge + Epic http :8000. - .uproject: ModelContextProtocol + AllToolsets as Optional:true (no-ops on 5.7, self-enables when the project opens in 5.8). Co-Authored-By: Claude Fable 5 --- .mcp.json | 13 + UnrealEngine_Bridge.uproject | 10 + docs/EPIC_MCP_MATRIX.md | 179 + .../epic_mcp/probe_raw_5.8.0_alltoolsets.json | 57797 ++++++++++++++++ docs/epic_mcp/probe_raw_5.8.0_default.json | 123 + .../programmatic_exec_environment.json | 1 + scripts/probe_epic_mcp.py | 77 + 7 files changed, 58200 insertions(+) create mode 100644 .mcp.json create mode 100644 docs/EPIC_MCP_MATRIX.md create mode 100644 docs/epic_mcp/probe_raw_5.8.0_alltoolsets.json create mode 100644 docs/epic_mcp/probe_raw_5.8.0_default.json create mode 100644 docs/epic_mcp/programmatic_exec_environment.json create mode 100644 scripts/probe_epic_mcp.py diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 0000000..fe9759d --- /dev/null +++ b/.mcp.json @@ -0,0 +1,13 @@ +{ + "mcpServers": { + "unreal": { + "command": "python", + "args": ["-m", "ue_mcp.mcp_server"], + "env": { "UE_MCP_PROFILE": "full" } + }, + "unreal-epic": { + "type": "http", + "url": "http://127.0.0.1:8000/mcp" + } + } +} diff --git a/UnrealEngine_Bridge.uproject b/UnrealEngine_Bridge.uproject index 46f682b..1c7d264 100644 --- a/UnrealEngine_Bridge.uproject +++ b/UnrealEngine_Bridge.uproject @@ -139,6 +139,16 @@ { "Name": "MLAdapter", "Enabled": true + }, + { + "Name": "ModelContextProtocol", + "Enabled": true, + "Optional": true + }, + { + "Name": "AllToolsets", + "Enabled": true, + "Optional": true } ], "TargetPlatforms": [ diff --git a/docs/EPIC_MCP_MATRIX.md b/docs/EPIC_MCP_MATRIX.md new file mode 100644 index 0000000..0e4da32 --- /dev/null +++ b/docs/EPIC_MCP_MATRIX.md @@ -0,0 +1,179 @@ +# EPIC_MCP_MATRIX.md — Retirement Contract of Record + +**UnrealEngine_Bridge `ue_mcp` (58 tools) vs Epic's official Unreal MCP surface (UE 5.8)** + +## 1. Provenance + +| Field | Value | +|---|---| +| Probe date | 2026-07-02 (live capture) | +| Engine | Unreal Engine 5.8.0 | +| Server | Built-in **Experimental** plugin `ModelContextProtocol` (MCP server only — ships **zero** tools) + `ToolsetRegistry` + **AllToolsets** aggregate plugin enabled | +| Endpoint | `http://127.0.0.1:8000/mcp`, HTTP + SSE, MCP protocol `2025-11-25` | +| Capture files | `docs/epic_mcp/probe_raw_5.8.0_alltoolsets.json` (full surface), `docs/epic_mcp/probe_raw_5.8.0_default.json` (blank-project default), `docs/epic_mcp/programmatic_exec_environment.json` (exec sandbox) | +| Probed surface | **52 toolsets / 830 tools** (authoritative, per the server's own toolset list). The capture's raw parse recorded 55 candidate toolset names; 3 of them — `GetAssetDiscoveryInfo`, `FindNiagaraScripts`, `GetNiagaraScriptDigest` — are description bullets of `NiagaraToolsets.NiagaraToolset_Assets` mis-parsed as toolset names and rejected by `describe_toolset`. All 830 tools live in the 52 real toolsets. | +| Our surface | 58 tools: 56 `@server.tool` registrations across 14 modules in `ue_mcp/tools/`, plus `ue_status` / `ue_health_check` in `ue_mcp/mcp_server.py` | + +**How to regenerate**: enable `ModelContextProtocol` + `AllToolsets`, start the editor (console: `ModelContextProtocol.StartServer`), then `python scripts/probe_epic_mcp.py docs/epic_mcp/probe_raw_.json`. Rerun per engine version and diff. + +### Enablement story + +- **Blank default** (plugin enabled, nothing else): the only registered toolset is `ToolsetRegistry.AgentSkillToolset` (4 skill-CRUD tools: `CreateSkill`, `UpdateSkill`, `ListSkills`, `GetSkills`). Everything else is opt-in. +- **AllToolsets** plugin enabled: the full probed surface of 52 toolsets / 830 tools. Individual `Toolsets/*` plugins can be enabled piecemeal instead. + +### Tool Search Mode (default **ON**) + +- With `bEnableToolSearch=true` (default), `tools/list` exposes **only 3 meta-tools** — `list_toolsets`, `describe_toolset`, `call_tool` — and every concrete tool is reached via `call_tool` meta-dispatch. Confirmed in this capture: `tools/list` returned exactly those 3. +- `bEnableToolSearch=false` flips all 830 tools to first-class `tools/list` entries. +- Settings live in `[/Script/ModelContextProtocolEngine.ModelContextProtocolSettings]` in `EditorPerProjectUserSettings.ini`: `ServerPortNumber`, `ServerUrlPath`, `bAutoStartServer`, `bEnableToolSearch`. CLI override: `-ModelContextProtocolPort=N`. +- Ergonomics implication used in verdicts below: under search mode, every concrete call pays the `call_tool` dispatch indirection, and **all tool execution is serialized onto the game thread** — multi-call compositions are materially slower than a single purpose-built tool. + +### Transport / security facts + +- Loopback HTTP+SSE with Origin checking; **no authentication**. Same localhost trust model we disclose in our own SECURITY.md. +- Serial game-thread execution of tool calls. +- **EULA §6(e)**: Epic warns about sending project data to LLMs — adopting this surface means scene/asset data flows to the connected model; flag in project onboarding. + +--- + +## 2. Our-tools disposition table + +Naming legend — Epic tools are cited by exact registered name, with these prefixes abbreviated: + +| Abbreviation | Full registered prefix | +|---|---| +| `ActorTools.*` | `editor_toolset.toolsets.actor.ActorTools.*` | +| `SceneTools.*` | `editor_toolset.toolsets.scene.SceneTools.*` | +| `ObjectTools.*` | `editor_toolset.toolsets.object.ObjectTools.*` | +| `AssetTools.*` | `editor_toolset.toolsets.asset.AssetTools.*` | +| `BlueprintTools.*` | `editor_toolset.toolsets.blueprint.BlueprintTools.*` | +| `MaterialTools.*` | `editor_toolset.toolsets.material.MaterialTools.*` | +| `MaterialInstanceTools.*` | `editor_toolset.toolsets.material_instance.MaterialInstanceTools.*` | +| `StaticMeshTools.*` / `SkeletalMeshTools.*` | `editor_toolset.toolsets.static_mesh.*` / `editor_toolset.toolsets.skeletal_mesh.*` | +| `SequencerTools.*` | `animation_toolset.toolsets.sequencer.SequencerTools.*` | +| `KeyframingTools.*` | `animation_toolset.toolsets.keyframing.SequencerKeyframingTools.*` | +| `EditorApp.*` | `EditorToolset.EditorAppToolset.*` | +| `NiagaraSystem.*` | `NiagaraToolsets.NiagaraToolset_System.*` | +| `PCG.*` | `PCGToolset.PCGToolset.*` | +| `Programmatic.*` | `editor_toolset.toolsets.programmatic.ProgrammaticToolset.*` | + +| Module | Our tool | Epic equivalent(s) (probe-verified) | Coverage | Verdict | Notes / reopen condition | +|---|---|---|---|---|---| +| actors.py | `ue_spawn_actor` | `SceneTools.add_to_scene_from_class` (+ `PrimitiveTools.add_cube/add_sphere/add_cylinder/add_cone` for shape components) | FULL | RETIRE | Spawns any Actor class at a transform with optional name. | +| actors.py | `ue_delete_actor` | `SceneTools.remove_from_scene` | FULL | RETIRE | — | +| actors.py | `ue_list_actors` | `SceneTools.find_actors` | FULL | RETIRE | Filters: name substring, `actor_type`, tag, AABB bounds, subtree root. | +| actors.py | `ue_set_transform` | `ActorTools.set_actor_transform` (read side: `ActorTools.get_actor_transform`) | FULL | RETIRE | Epic adds `ActorTools.look_at` we never had. | +| actors.py | `ue_duplicate_actor` | none — whole-probe search: `AssetTools.duplicate` is assets/folders only; no level-actor duplication tool exists | NONE | KEEP | Reopen if Epic adds an actor-duplicate/clipboard tool to SceneTools. | +| actors.py | `ue_get_actor_bounds` | `ActorTools.get_actor_bounds` | FULL | RETIRE | World-space AABB, exact match. | +| assets.py | `ue_find_assets` | `AssetTools.find_assets`; bonus: `SemanticSearchToolset.SemanticSearchToolset.Search` | FULL | RETIRE | Epic side is strictly stronger (semantic + registry search). | +| assets.py | `ue_create_material` | `MaterialTools.create_material` + `MaterialTools.add_expression` + `MaterialTools.connect_to_output` | FULL (composition) | RETIRE | Our base-color/roughness/metallic bootstrap is reproducible; Epic also edits full expression graphs (see §3). | +| assets.py | `ue_delete_asset` | `AssetTools.delete` | FULL | RETIRE | — | +| blueprints.py | `ue_create_blueprint` | `BlueprintTools.create` | FULL | RETIRE | — | +| blueprints.py | `ue_add_component` | `ActorTools.add_component` | FULL | RETIRE | Epic's works on "actor instance or blueprint" — superset of our live-actor-only tool. | +| blueprints.py | `ue_set_component_property` | `ObjectTools.set_properties` | FULL | RETIRE | Component resolved via `ActorTools.get_components`. | +| blueprints.py | `ue_set_blueprint_defaults` | `BlueprintTools.get_default_object` + `ObjectTools.set_properties` | FULL (composition) | RETIRE | Same CDO-write semantics. | +| blueprints.py | `ue_compile_blueprint` | `BlueprintTools.compile_blueprint` | FULL | RETIRE | — | +| blueprints.py | `ue_get_actor_components` | `ActorTools.get_components` | FULL | RETIRE | Supports `component_type` filter. | +| blueprints.py | `ue_spawn_blueprint` | `SceneTools.add_to_scene_from_asset` | FULL | RETIRE | — | +| editor.py | `ue_console_command` | **none** — verified across all 830 tools: only `EditorApp.SearchCVars` (CVar *lookup*, not exec) and `EditorToolset.LogsToolset.SetVerbosity/GetVerbosity`; no general console-command execution exists | NONE | KEEP | Our blocklist-guarded exec + structured output parsing has no Epic counterpart. Reopen if Epic ships an exec tool. | +| editor.py | `ue_undo` | none — no undo/redo/transaction tool in the probe | NONE | KEEP | Honest not-implemented since M1 (no editor-transaction route in the UE Python API either); slot reserved for a verified implementation. | +| editor.py | `ue_redo` | none (same search) | NONE | KEEP | Same as `ue_undo`. | +| editor.py | `ue_focus_actor` | `EditorApp.FocusOnActors` | FULL | RETIRE | Epic caveat: cannot be called while PIE is active. | +| editor.py | `ue_select_actors` | `EditorApp.SelectActors` (read side: `EditorApp.GetSelectedActors`) | FULL | RETIRE | — | +| level.py | `ue_save_level` | `AssetTools.save_assets` (empty list = save all dirty) + `SceneTools.save_actor` (OFPA actors) | FULL | RETIRE | — | +| level.py | `ue_get_level_info` | `SceneTools.get_current_level` + `SceneTools.find_actors` (count client-side) | FULL (composition) | RETIRE | — | +| level.py | `ue_load_level` | `SceneTools.load_level` | FULL | RETIRE | — | +| level.py | `ue_get_world_info` | partial: `ObjectTools.get_properties` on WorldSettings (game mode, settings); **no streaming-levels enumeration tool anywhere in the probe** | PARTIAL | KEEP-PARTIAL | Keep for streaming-level + world-composition reporting; defer game-mode/world-settings reads to `ObjectTools.get_properties`. | +| lighting.py | `ue_setup_sky_atmosphere` | none — whole-probe search for atmosphere/sky/fog/cloud/sun tooling: zero hits. Raw primitives only (`SceneTools.add_to_scene_from_class` + `ObjectTools.set_properties`) | NONE | KEEP | Our find-or-spawn idempotent sky rig is an orchestration Epic doesn't offer. | +| lighting.py | `ue_set_time_of_day` | none (same search) | NONE | KEEP | Sun elevation/azimuth/K-temperature model is ours alone. | +| lighting.py | `ue_list_mood_presets` | none | NONE | KEEP | Preset catalog is our IP. | +| lighting.py | `ue_apply_mood_preset` | none | NONE | KEEP | Coordinated sun+fog+cloud+post-process grade package. | +| lighting.py | `ue_blend_mood_presets` | none | NONE | KEEP | Preset interpolation, no Epic counterpart. | +| materials.py | `ue_create_material_instance` | `MaterialInstanceTools.create` | FULL | RETIRE | — | +| materials.py | `ue_set_material_parameter` | `MaterialInstanceTools.set_scalar_parameter` / `set_vector_parameter` / `set_texture_parameter` (+ `set_static_switch_parameter`, which we lack) | FULL | RETIRE | — | +| materials.py | `ue_get_material_parameters` | `MaterialInstanceTools.list_parameters` (+ `get_scalar_parameter` / `get_vector_parameter` / `get_texture_parameter`) | FULL | RETIRE | — | +| materials.py | `ue_assign_material` | `StaticMeshTools.set_material` / `SkeletalMeshTools.set_material` (asset-level slots, affects all instances) + `ObjectTools.set_properties` on a component's `OverrideMaterials` (per-instance) | PARTIAL | RETIRE | No dedicated per-instance-slot tool, but the two paths jointly cover it. Reopen if `OverrideMaterials` writes via `ObjectTools.set_properties` prove unreliable in practice. | +| mograph.py | `ue_create_cloner` | none — whole-probe search for cloner/effector: zero hits (ClonerEffector plugin has no Epic MCP toolset) | NONE | KEEP | Reopen if a ClonerEffector toolset ships. | +| mograph.py | `ue_create_niagara_system` | `NiagaraSystem.CreateNiagaraSystem` (template-based asset creation) + `SceneTools.add_to_scene_from_asset` (spawn in level) | FULL (composition) | RETIRE | Epic's Niagara surface (56 tools) then goes far deeper — emitters, modules, renderers, stack I/O. | +| mograph.py | `ue_create_pcg_graph` | `PCG.CreateGraph` + `PCG.SpawnGraphInstance` | FULL | RETIRE | Epic adds full node-graph editing + `PCG.ExecuteGraphInstance` (see §3). | +| perception.py | `ue_viewport_percept` | `EditorApp.CaptureViewport` (with world-grid + label annotations) + `EditorApp.GetCameraTransform` + `EditorApp.GetSelectedActors` + `EditorApp.GetVisibleActors` (frustum) | PARTIAL | KEEP-PARTIAL | Epic covers the single-shot capture + metadata bundle; our continuous-watch integration, structural diffing, and game-state correlation are not covered. Defer one-off captures to Epic; keep the correlated-perception path. | +| perception.py | `ue_viewport_watch` | none — no continuous/streaming capture tool in the probe | NONE | KEEP | — | +| perception.py | `ue_viewport_config` | none — configures **our** perception subsystem (resolution/format/rate), which stays | NONE | KEEP | Retire only if the whole perception subsystem retires. | +| perception.py | `ue_viewport_diff` | none — no snapshot-diff tool in the probe | NONE | KEEP | Structural scene-diff verification is a differentiator. | +| properties.py | `ue_get_property` | `ObjectTools.get_properties` (+ `ObjectTools.list_properties`, `ObjectTools.get_class`) | FULL | RETIRE | — | +| properties.py | `ue_set_property` | `ObjectTools.set_properties` (+ `ObjectTools.reset_properties`, which we lack) | FULL | RETIRE | — | +| python_exec.py | `ue_execute_python` | **not equivalent**: `Programmatic.execute_tool_script` is a **sandboxed batch runner** — module allowlist `json/math/datetime/copy/re/time`, **no `unreal` import**, must define `run()->dict`, can only call `execute_tool(tool_name, json_input)` over registered tools (per `Programmatic.get_execution_environment`) | NONE | KEEP | Our arbitrary editor-Python with full `unreal` API access has no Epic counterpart. This is the escape hatch for everything Epic hasn't tooled. | +| scene.py | `ue_get_actor_details` | `SceneTools.find_actors` + `ActorTools.get_actor_transform` + `ActorTools.get_components` + `ActorTools.get_tags` + `ObjectTools.get_properties` | FULL (composition) | RETIRE | ~4 serial calls vs 1, but complete. | +| scene.py | `ue_query_scene` | `SceneTools.find_actors` (name substring, `actor_type`, tag, world-space AABB `bounds`, optional physics `collision_channels`) | PARTIAL | RETIRE | Our radius-proximity mode maps to an AABB `bounds` query (sphere-vs-box refinement is trivial client-side). Everything else is covered outright. | +| scene.py | `ue_get_component_details` | `ActorTools.get_components` + `ObjectTools.get_properties` (+ `StaticMeshTools.get_material_slots` where relevant) | FULL (composition) | RETIRE | — | +| scene.py | `ue_get_actor_hierarchy` | partial: `SceneTools.find_actors` (`root` = subtree, flat), `ActorTools.get_parent_component`, `ActorTools.get_root_component`, `ActorTools.get_component_actor` | PARTIAL | KEEP-PARTIAL | Epic offers per-hop primitives, no one-shot recursive attachment tree; N-call reconstruction is expensive under serial game-thread + `call_tool` dispatch. Reopen if Epic ships a scene-outliner tree query (its `get_outliner_tree` is Sequencer-only). | +| sequencer.py | `ue_create_level_sequence` | `SequencerTools.create_level_sequence` | FULL | RETIRE | — | +| sequencer.py | `ue_play_sequence` | `SequencerTools.play`, `pause`, `play_to`, `set_playhead_frame`, `set_playback_speed`, `is_playing` | FULL | RETIRE | Epic scrubbing is real playhead control, superior to our rate-0 hack. | +| sequencer.py | `ue_add_actor_to_sequence` | `SequencerTools.add_actors` / `add_actors_by_name` (+ `add_spawnable_from_class`, `add_spawnable_from_instance`) | FULL | RETIRE | — | +| sequencer.py | `ue_add_keyframe` | `SequencerTools.add_track_to_binding` + `SequencerTools.set_property_name_and_path` + `KeyframingTools.add_key_float` / `add_key_bool` / `add_key_integer` / `add_key_string` | FULL | RETIRE | Epic's 140-tool SequencerTools + 22-tool KeyframingTools (curve editor, key baking, defaults) dwarf our 4. | +| spatial.py | `ue_ground_trace` | `SceneTools.trace_world` | PARTIAL | KEEP-PARTIAL | Probe-verified schema: `trace_world` returns **distance only** — no hit point, no surface normal, no hit actor. Our normal + hit-actor payload is required for placement reasoning. Defer plain distance checks to Epic. | +| spatial.py | `ue_snap_to_ground` | none — no snap tool; faithful composition impossible because slope-alignment needs the surface normal `trace_world` doesn't return | NONE | KEEP | Reopen if `trace_world` gains normal/hit-actor output. | +| spatial.py | `ue_spatial_query` | partial: `box_contents` mode ≈ `SceneTools.find_actors` (`bounds`); `nearest` / `overlap` / `combined_bounds` require client-side math over `ActorTools.get_actor_bounds` per actor | PARTIAL | KEEP-PARTIAL | Defer box-contents to `find_actors`; keep nearest/overlap/union modes (O(N) Epic calls otherwise). | +| spatial.py | `ue_measure` | `ActorTools.get_actor_transform` + `ActorTools.get_actor_bounds` (distance/extent arithmetic client-side) | PARTIAL | RETIRE | Pure convenience arithmetic over two probe-verified reads; not worth a legacy tool. | +| mcp_server.py | `ue_status` | none applicable — checks **our** editor/Remote Control reachability, not Epic's server | NONE | KEEP | Bridge self-monitoring; MCP-level ping is not a substitute for RC-API liveness. | +| mcp_server.py | `ue_health_check` | none — reports **our** bridge version, uptime, circuit-breaker state, request metrics | NONE | KEEP | Monitors infrastructure Epic knows nothing about. | + +### Verification notes (whole-probe negative searches) + +Grounded claims of absence, each from a full-text search over all 830 names + descriptions: + +- **General console-command execution**: absent. Only `EditorApp.SearchCVars` (find CVars by name) and `LogsToolset.SetVerbosity`/`GetVerbosity`. `ConfigSettingsToolset` writes settings sections, not console exec. +- **Undo/redo/transactions**: absent. +- **Sky/atmosphere/fog/cloud/sun/time-of-day**: absent. +- **Level-actor duplication**: absent (`AssetTools.duplicate` is content-browser only). +- **Snap-to-ground / surface alignment**: absent. +- **Cloner/Effector**: absent. +- **Continuous viewport capture / snapshot diff**: absent (single-shot `CaptureViewport`/`CaptureEditorImage`/`CaptureAssetImage` only). +- **Arbitrary editor Python**: absent — `Programmatic.execute_tool_script` sandbox confirmed as described in the header. +- **MCPClientToolset**: not present in this capture; not claimed. + +--- + +## 3. Epic-exclusive capabilities (adoption map) + +Surfaces we never had — this is what enabling AllToolsets buys beyond parity: + +- **Blueprint graph editing** (`BlueprintTools`, 53): full node create/wire/arrange (`create_node`, `connect_pins`, `break_pins`), a **graph DSL** (`read_graph_dsl` / `write_graph_dsl` / `get_graph_dsl_docs`), functions/params/events/dispatchers, variables incl. replication. Closes our #4 agentic gap outright. +- **Material expression graphs** (`MaterialTools`, 22): `add_expression`, `connect_expressions`, `connect_to_output`, `layout_expressions`, `recompile`, `create_function`, `create_parameter_collection`. +- **Animation stack**: `ControlRigTools` (44) + `SequencerControlRigTools` (72, anim layers, control snapping) + `SequencerOutlinerTools` (18, incl. `get_outliner_tree`) + conditions (9) + custom bindings (8) + FBX/anim `import_fbx`/`export_fbx` (6). +- **Niagara deep editing** (56 across 5 toolsets): emitters, modules, renderers, stack input schema/values, compile state, issue fixes. +- **PCG graph authoring** (31): node-level graph editing, `ExecuteGraphInstance`, `DrawSpline` (interactive user-in-the-loop spline capture), `PCGSpatialToolset.RunPCGInstantGraph`. +- **GAS** (14): GameplayCues, AttributeSets, live AbilitySystem inspection. +- **UMG** (23) and **Slate inspection** (14): widget-tree authoring and accessibility-snapshot reading of the live editor UI. +- **Dataflow** (22), **PhysicsAsset** (17), **StaticMesh/SkeletalMesh asset pipelines** (16 + 22: import, LODs, Nanite, collision, sockets, material slots), **Texture** (2). +- **Plugin management** (`PluginToolset`, 17): create/enable plugins, dependency graphs — partially addresses our #8 gap. +- **Editor app control** (`EditorApp`, 21): **PIE start/stop**, camera get/set, screen↔world projection, content-browser navigation, `GetVisibleActors` frustum queries, annotated viewport capture. +- **Logs** (4): session log tail + per-category verbosity. +- **AgentSkills** (4): in-project skill CRUD — the only default-on toolset. +- **Semantic search** (2): embedding search over indexed Content Browser assets. +- **Data assets**: CurveTable (9), DataTable (10), StringTable (8), DataAsset (1), DataRegistry (7). +- **Gameplay frameworks**: StateTree (9), BehaviorTree (7), Conversation graphs (7, read-only), GameFeatures (7), GameplayTags (6), WorldConditions (2). +- **Automation testing** (7) and **ConfigSettings** (8): run automation tests; read/write project settings sections. +- **Programmatic batching** (2): `execute_tool_script` amortizes round-trips across registered tools (sandboxed; not a Python replacement). + +--- + +## 4. Headline numbers + +| Metric | Value | +|---|---| +| Epic surface (AllToolsets, UE 5.8.0) | 52 toolsets / **830 tools** | +| Our surface | 14 modules + server / **58 tools** | +| Coverage: FULL (incl. by-composition) | **33** | +| Coverage: PARTIAL | **8** | +| Coverage: NONE | **17** | + +### Retirement arithmetic + +| Verdict | Count | Tools | +|---|---|---| +| **RETIRE** (behind legacy flag) | **36** | all of actors.py except `ue_duplicate_actor` (5); all assets.py (3); all blueprints.py (7); `ue_focus_actor`, `ue_select_actors` (2); level.py except `ue_get_world_info` (3); all materials.py (4); mograph niagara+pcg (2); both properties.py (2); scene.py except `ue_get_actor_hierarchy` (3); all sequencer.py (4); `ue_measure` (1) | +| **KEEP-PARTIAL** | **5** | `ue_get_world_info`, `ue_viewport_percept`, `ue_get_actor_hierarchy`, `ue_ground_trace`, `ue_spatial_query` | +| **KEEP** | **17** | `ue_duplicate_actor`; `ue_console_command`, `ue_undo`, `ue_redo`; all 5 lighting.py; `ue_create_cloner`; `ue_viewport_watch`, `ue_viewport_config`, `ue_viewport_diff`; `ue_execute_python`; `ue_snap_to_ground`; `ue_status`, `ue_health_check` | + +**Bottom line**: 36 of 58 tools (62%) retire behind the legacy flag. What survives is exactly our differentiated surface: arbitrary editor Python, guarded console exec, the undo/redo capability slots, the lighting/mood orchestration layer, ClonerEffector mograph, continuous perception with structural diffing, normal-aware spatial reasoning, and bridge self-monitoring — plus five partial keeps whose reopen conditions are written into their rows. diff --git a/docs/epic_mcp/probe_raw_5.8.0_alltoolsets.json b/docs/epic_mcp/probe_raw_5.8.0_alltoolsets.json new file mode 100644 index 0000000..222085b --- /dev/null +++ b/docs/epic_mcp/probe_raw_5.8.0_alltoolsets.json @@ -0,0 +1,57797 @@ +{ + "url": "http://127.0.0.1:8000/mcp", + "protocol_version": "2025-11-25", + "tools_list": [ + { + "name": "list_toolsets", + "title": null, + "description": "List all available toolsets with names and descriptions.", + "inputSchema": { + "type": "object", + "properties": {} + }, + "outputSchema": null, + "icons": null, + "annotations": null, + "meta": null, + "execution": null + }, + { + "name": "describe_toolset", + "title": null, + "description": "Get detailed information about a toolset including all tool names, descriptions, and input schemas.", + "inputSchema": { + "type": "object", + "properties": { + "toolset_name": { + "type": "string", + "description": "Name of the toolset to describe. Use list_toolsets to see available names." + } + }, + "required": [ + "toolset_name" + ] + }, + "outputSchema": null, + "icons": null, + "annotations": null, + "meta": null, + "execution": null + }, + { + "name": "call_tool", + "title": null, + "description": "Call a tool by name. Provide toolset_name to call a toolset tool, or omit it to call a top-level MCP tool. Use list_toolsets and describe_toolset to discover available tools and their input schemas.", + "inputSchema": { + "type": "object", + "properties": { + "toolset_name": { + "type": "string", + "description": "Optional. Name of the toolset containing the tool. Omit to call a top-level MCP tool. Use list_toolsets to discover toolset names." + }, + "tool_name": { + "type": "string", + "description": "Name of the tool to call, without toolset prefix. Use describe_toolset to discover tool names and input schemas." + }, + "arguments": { + "type": "object", + "description": "Arguments to pass to the tool. Must match the tool's input schema. Defaults to an empty object." + } + }, + "required": [ + "tool_name" + ] + }, + "outputSchema": null, + "icons": null, + "annotations": null, + "meta": null, + "execution": null + } + ], + "list_toolsets_raw": "- ToolsetRegistry.AgentSkillToolset: Provides tools for listing, reading, and creating/updating skills.\n- ConfigSettingsToolset.ConfigSettingsToolset: Tools for listing, inspecting, and editing Config Settings sections\n- EditorToolset.EditorAppToolset: Tools for querying and modifying Unreal Editor state: console variables, asset imaging,\nactor and asset selection, viewport camera, content browser navigation, and Play-In-Editor\nsession control.\n- EditorToolset.LogsToolset: Provides tools for reading the Unreal Engine output log and controlling\nlog category verbosity.\n- DataflowAgent.DataflowAgentToolset: Dataflow Agent Toolset - exposes Dataflow graph editing operations as AI agent tools.\n- DataRegistryToolset.DataRegistryTools: Provides tools for querying and inspecting Data Registries.\n- NiagaraToolsets.NiagaraToolset_Info: Niagara Toolset for general Niagara information and guidance.\n\nProvides:\n- Enum value lookups\n- General usage information\n\nCall these functions when you need context about Niagara types.\n- NiagaraToolsets.NiagaraToolset_Component: Niagara Toolset for Niagara Component operations.\n\nUse this toolset when working with:\n- Niagara Components on actors\n- Runtime Niagara system manipulation\n- User variable overrides on component instances\n- FX-related operations in levels or blueprints\n\nThis is the primary toolset for runtime Niagara operations.\n- NiagaraToolsets.NiagaraToolset_Blueprint: Niagara Toolset for Niagara and Blueprint integration.\n\nProvides utilities for creating Blueprint wrappers around Niagara Systems,\nmaking it easier to expose Niagara effects as reusable Blueprint actors.\n\nUse this toolset when you need to create Blueprint-based FX actors from Niagara systems.\n- NiagaraToolsets.NiagaraToolset_System: Niagara Toolset for Niagara System operations.\n\nProvides comprehensive access to Niagara System editing, including:\n- System, emitter, and module creation and modification\n- Schema discovery for understanding structure\n- Topology and Summary inspection for viewing current configuration\n- Data access for reading and writing properties\n- Dependency rollups via GetSystemDependencies\n- Dynamic-input chain traversal via GetDynamicInputChain\n\nThis is the primary toolset for working with Niagara Systems in the editor.\n- NiagaraToolsets.NiagaraToolset_Assets: Niagara Toolset for discovery of Niagara script assets.\n\nProvides:\n- GetAssetDiscoveryInfo: project-configured asset discovery groups\n- FindNiagaraScripts: asset registry search filtered by usage, visibility, name, and module usage bitmask\n- GetNiagaraScriptDigest: decoded asset-registry tags for a single script\n\nAll functions read from the asset registry without LoadObject. Pair with\nNiagaraToolset_System.AddModule to drop discovered modules into a stack.\n\nNote: FAssetData JSON serialization does not include the TagsAndValues map (it\nis not a UPROPERTY), so callers wanting decoded metadata for a result row from\nFindNiagaraScripts must round-trip through GetNiagaraScriptDigest.\n- GASToolsets.GameplayCueToolset: Provides tools for inspecting, executing, and managing gameplay cues and their notify assets.\n- GASToolsets.AttributeSetToolset: Provides tools for discovering AttributeSet classes and their gameplay attributes.\n- GASToolsets.AbilitySystemInspectorToolset: Provides tools for inspecting the runtime state of an AbilitySystemComponent.\nEach function takes a direct actor pointer and raises a script error if the\nactor is null or has no AbilitySystemComponent.\n- PCGToolset.PCGToolset: Toolset for building and modifying PCG graphs\n- PCGToolset.PCGSpatialToolset: PCGSpatial Toolset\n- GameFeaturesToolset.GameFeaturesToolset: Provides tools for listing, activating, and deactivating Game Feature Plugins.\n- GameplayTagsToolset.GameplayTagsToolset: Provides tools for reading and managing gameplay tags in the project's GameplayTagsManager.\n- AutomationTestToolset.AutomationTestToolset: Automation test discovery and execution toolset.\n\nWraps the IAutomationControllerManager API (the same backend the Session\nFrontend uses) to let MCP clients list available tests, run them, and\nretrieve results.\n\nTypical workflow:\n 1. DiscoverTests() once per session to initialize workers and load the test list.\n 2. ListTests() to find tests by name or tag.\n 3. RunTests() with the desired test names.\n 4. GetTestStatus() / GetTestResults() to monitor and retrieve results.\n 5. StopTests() to abort if needed.\n- WorldConditionsToolset.WorldConditionTools: Inspect WorldCondition (FWorldConditionQueryDefinition, FWorldConditionBase) structs.\n- PluginToolset.PluginToolset: Tools for creating, editing, enabling, and querying Unreal plugins\n- PhysicsToolsets.PhysicsAssetToolset: Provides tools for creating and managing Physics Assets.\n- SemanticSearchToolset.SemanticSearchToolset: Toolset exposing the SemanticSearch plugin's hybrid vector + BM25 asset search\nto the AI Toolset Registry.\n- SlateInspectorToolset.SlateInspectorToolset: Playwright-style Slate UI automation toolset.\n\nExposes snapshot, screenshot, and interaction tools for driving the\nUnreal Editor UI programmatically. Registered via UToolsetRegistry\nso the ModelContextProtocol plugin picks them up automatically.\n\nA shallow root observer (depth 0) continuously tracks top-level\nwindows. Before working with a specific window or panel, call\nObserve() on it to get deep widget coverage, then Unobserve() when\ndone. Observers walk their subtree every ~100ms, assigning refs to\nnewly appeared widgets and keeping the ref cache current.\n\nInput simulation uses direct Slate event APIs (ProcessKeyCharEvent,\nProcessMouseButtonDownEvent, etc.) rather than the AutomationDriver,\nbecause AutomationDriver's synchronous API deadlocks when called from\nthe game thread (which is where MCP tool calls execute).\n- UMGToolSet.UMGToolSet: UMG widget toolset for AI-driven widget creation and tree manipulation.\n\nIMPORTANT WORKFLOW - for every widget and slot returned by this toolset:\n 1. Call ObjectTools.list_properties(widget) to discover exact property names.\n 2. Call ObjectTools.get_properties(widget, [...]) with those exact names.\n 3. Call ObjectTools.set_properties(widget, {...}) with those exact names.\nProperty names vary per widget class and CANNOT be guessed - list_properties is required.\nSkipping step 1 causes set_properties to silently fail or set wrong properties.\n\nReturns UObject pointers - ToolsetRegistry serializes them as {\"refPath\": \"...\"} automatically.\nPass returned Widget, Slot, and Parent pointers directly to ObjectTools or back to this toolset.\n- conversation_toolset.toolsets.conversation.ConversationTools: Inspect Conversation Graph (UConversationDatabase) dialogue assets.\n- state_tree_toolset.toolsets.state_tree.StateTreeTools: Inspect StateTree (ST) assets.\n- editor_toolset.toolsets.actor.ActorTools: Provides tools for inspecting and modifying actors, including\n their transforms, labels, parent-child relationships, and components.\n- editor_toolset.toolsets.asset.AssetTools: Provides tools for interacting with assets in the Unreal project and files on disk.\n- editor_toolset.toolsets.blueprint.BlueprintTools: Provides tools for working with Blueprints.\n- editor_toolset.toolsets.curve_table.CurveTableTools: Provides tools for creating and editing CurveTable assets.\n- editor_toolset.toolsets.data_asset.DataAssetTools: Provides tools for working with Data Assets.\n- editor_toolset.toolsets.data_table.DataTableTools: Provides tools for creating and editing DataTable assets.\n- editor_toolset.toolsets.material.MaterialTools: Provides tools for creating and editing Material and MaterialFunction assets.\n- editor_toolset.toolsets.material_instance.MaterialInstanceTools: Provides tools for creating and modifying MaterialInstanceConstant assets.\n- editor_toolset.toolsets.object.ObjectTools: Provides tools for inspecting and modifying the properties of\n Unreal Objects and Unreal Classes, including those in Blueprints.\n Also use this toolset to discover available classes and subclasses.\n- editor_toolset.toolsets.primitive.PrimitiveTools: Provides tools for adding primitive geometry components to actors.\n- editor_toolset.toolsets.scene.SceneTools: Provides tools for working with the currently loaded level, including\n loading levels, placing and removing actors, controlling the level camera,\n and organizing actors in the outliner.\n- editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools: Provides tools for inspecting and modifying skeletal mesh assets, including\n the mesh/materials, bone hierarchies, and sockets.\n- editor_toolset.toolsets.static_mesh.StaticMeshTools: Provides tools for inspecting and modifying static mesh assets.\n- editor_toolset.toolsets.string_table.StringTableTools: Provides tools for creating and editing StringTable assets.\n- editor_toolset.toolsets.programmatic.ProgrammaticToolset: Batches calls to other registered tools through a small sandboxed Python\n script that glues them together with custom logic. The script's purpose is\n tool orchestration, not general Python execution.\n- editor_toolset.toolsets.texture.TextureTools: Provides tools for working with Texture assets.\n- animation_toolset.toolsets.controlrig.ControlRigTools: Tools for creating and editing Control Rig assets, including hierarchy\n management, graph operations, and node/pin manipulation.\n- animation_toolset.toolsets.sequencer.SequencerTools: Core tools for creating and editing Level Sequences in Sequencer. Use\n whenever working with Sequencer - covers sequence lifecycle (create, open,\n close), playback control (play, pause, scrub, speed, loop), sequence\n properties (display rate, frame ranges, marked frames, tick resolution),\n actor bindings (add actors, spawnables, cameras, find and manage bindings),\n tracks (add, find, remove any track type), sections (range, easing, blend\n type, completion mode), selection state, folder organization, sub-sequence\n navigation, event tracks, track filters, and sequence locking. For\n keyframing use SequencerKeyframingTools. For Control Rig use\n SequencerControlRigTools. For outliner inspection use\n SequencerOutlinerTools.\n- animation_toolset.toolsets.keyframing.SequencerKeyframingTools: Tools for keyframing and animating properties on the Sequencer\n timeline. Use when adding, querying, or removing keyframes on channels,\n setting default values, evaluating channels at specific times, working\n with the Curve Editor, or managing channel selection. Covers float, bool,\n integer, and string key types with configurable interpolation.\n- animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools: Tools for animating with Control Rig inside Sequencer. Use when adding\n Control Rig tracks to bindings, getting or setting control values (bool,\n float, int, position, rotator, scale, euler transform, transform), keying\n controls, baking animation to Control Rig, managing layered rigs and\n priority, masking controls per section, space switching (world, parent,\n control, bone), tweening and blending between keys, snapping controls to\n actors, mirroring poses, zeroing transforms, or managing animation layers\n (add, delete, duplicate, reorder, merge, collapse).\n- animation_toolset.toolsets.outliner.SequencerOutlinerTools: Tools for inspecting and managing the Sequencer outliner tree. Use when\n getting a snapshot of the outliner hierarchy, querying node children,\n managing outliner selection, expanding or collapsing nodes, or toggling\n node states like mute, solo, deactivate, lock, and pin. Also useful for\n test verification of Sequencer UI state.\n- animation_toolset.toolsets.conditions.SequencerConditionTools: Tools for managing runtime conditions on Sequencer tracks, sections, and\n track rows. Use when setting up dynamic conditions that control whether\n tracks or sections evaluate at runtime based on platform, gameplay state,\n or custom logic. Supports MovieScenePlatformCondition,\n MovieSceneDirectorBlueprintCondition, and MovieSceneGroupCondition types.\n- animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools: Tools for converting and managing custom binding types in Sequencer. Use\n when converting between possessable, spawnable, and custom/replaceable\n bindings, querying what custom binding type a binding uses, accessing\n custom binding objects for property inspection, or changing the actor\n template class on spawnables/replaceables.\n- animation_toolset.toolsets.import_export.SequencerImportExportTools: Tools for importing and exporting animation data to and from Sequencer.\n Use when exporting bindings or Control Rig animation to FBX files,\n importing FBX animation onto bindings or Control Rig tracks, exporting\n animation to AnimSequence assets, or linking AnimSequences for\n auto-updates.\n- aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools: Inspect BehaviorTree (BT) assets.\n", + "toolset_names": [ + "ToolsetRegistry.AgentSkillToolset", + "ConfigSettingsToolset.ConfigSettingsToolset", + "EditorToolset.EditorAppToolset", + "EditorToolset.LogsToolset", + "DataflowAgent.DataflowAgentToolset", + "DataRegistryToolset.DataRegistryTools", + "NiagaraToolsets.NiagaraToolset_Info", + "NiagaraToolsets.NiagaraToolset_Component", + "NiagaraToolsets.NiagaraToolset_Blueprint", + "NiagaraToolsets.NiagaraToolset_System", + "NiagaraToolsets.NiagaraToolset_Assets", + "GetAssetDiscoveryInfo", + "FindNiagaraScripts", + "GetNiagaraScriptDigest", + "GASToolsets.GameplayCueToolset", + "GASToolsets.AttributeSetToolset", + "GASToolsets.AbilitySystemInspectorToolset", + "PCGToolset.PCGToolset", + "PCGToolset.PCGSpatialToolset", + "GameFeaturesToolset.GameFeaturesToolset", + "GameplayTagsToolset.GameplayTagsToolset", + "AutomationTestToolset.AutomationTestToolset", + "WorldConditionsToolset.WorldConditionTools", + "PluginToolset.PluginToolset", + "PhysicsToolsets.PhysicsAssetToolset", + "SemanticSearchToolset.SemanticSearchToolset", + "SlateInspectorToolset.SlateInspectorToolset", + "UMGToolSet.UMGToolSet", + "conversation_toolset.toolsets.conversation.ConversationTools", + "state_tree_toolset.toolsets.state_tree.StateTreeTools", + "editor_toolset.toolsets.actor.ActorTools", + "editor_toolset.toolsets.asset.AssetTools", + "editor_toolset.toolsets.blueprint.BlueprintTools", + "editor_toolset.toolsets.curve_table.CurveTableTools", + "editor_toolset.toolsets.data_asset.DataAssetTools", + "editor_toolset.toolsets.data_table.DataTableTools", + "editor_toolset.toolsets.material.MaterialTools", + "editor_toolset.toolsets.material_instance.MaterialInstanceTools", + "editor_toolset.toolsets.object.ObjectTools", + "editor_toolset.toolsets.primitive.PrimitiveTools", + "editor_toolset.toolsets.scene.SceneTools", + "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools", + "editor_toolset.toolsets.static_mesh.StaticMeshTools", + "editor_toolset.toolsets.string_table.StringTableTools", + "editor_toolset.toolsets.programmatic.ProgrammaticToolset", + "editor_toolset.toolsets.texture.TextureTools", + "animation_toolset.toolsets.controlrig.ControlRigTools", + "animation_toolset.toolsets.sequencer.SequencerTools", + "animation_toolset.toolsets.keyframing.SequencerKeyframingTools", + "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools", + "animation_toolset.toolsets.outliner.SequencerOutlinerTools", + "animation_toolset.toolsets.conditions.SequencerConditionTools", + "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools", + "animation_toolset.toolsets.import_export.SequencerImportExportTools", + "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools" + ], + "toolsets": { + "ToolsetRegistry.AgentSkillToolset": { + "name": "ToolsetRegistry.AgentSkillToolset", + "version": "1.0", + "description": "Provides tools for listing, reading, and creating/updating skills.", + "tools": [ + { + "description": "Updates an existing AgentSkill.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "ToolsetRegistry.AgentSkillToolset.UpdateSkill", + "inputSchema": { + "type": "object", + "properties": { + "skillPath": { + "type": "string", + "description": "The full path to the skill to modify i.e. /Game/Skills/MySkill.MySkill_C." + }, + "description": { + "type": "string", + "description": "The brief description of the skill." + }, + "details": { + "title": "AgentSkillDetails", + "description": "Detailed information about how to use the skill.", + "type": "object", + "properties": { + "instructions": { + "type": "string", + "description": "Detailed information about how to use the skill." + } + }, + "required": [ + "instructions" + ] + } + }, + "required": [ + "skillPath", + "description", + "details" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the skill was updated." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets a summary of all AgentSkills in the project.", + "name": "ToolsetRegistry.AgentSkillToolset.ListSkills", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A dictionary where the key is the Skill path and the value is a description." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns detailed information about a specific set of AgentSkills.", + "name": "ToolsetRegistry.AgentSkillToolset.GetSkills", + "inputSchema": { + "type": "object", + "properties": { + "skillPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of paths to the AgentSkills to retrieve." + } + }, + "required": [ + "skillPaths" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "additionalProperties": { + "title": "AgentSkillDetails", + "type": "object", + "properties": { + "instructions": { + "type": "string", + "description": "Detailed information about how to use the skill." + } + }, + "required": [ + "instructions" + ] + }, + "description": "A dictionary where the key is the Skill path and the value is detailed info." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new AgentSkill.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "ToolsetRegistry.AgentSkillToolset.CreateSkill", + "inputSchema": { + "type": "object", + "properties": { + "folderPath": { + "type": "string", + "description": "The folder in which to create the skill. i.e. /Game/Skills/." + }, + "assetName": { + "type": "string", + "description": "The name of the skill to create i.e. MySkill." + }, + "description": { + "type": "string", + "description": "The brief description of the skill." + }, + "details": { + "title": "AgentSkillDetails", + "description": "Detailed information about how to use the skill.", + "type": "object", + "properties": { + "instructions": { + "type": "string", + "description": "Detailed information about how to use the skill." + } + }, + "required": [ + "instructions" + ] + } + }, + "required": [ + "folderPath", + "assetName", + "description", + "details" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The path for the created Skill class. Empty if unsuccessful." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "ConfigSettingsToolset.ConfigSettingsToolset": { + "name": "ConfigSettingsToolset.ConfigSettingsToolset", + "version": "1.0", + "description": "Tools for listing, inspecting, and editing Config Settings sections", + "tools": [ + { + "description": "Sets one or more properties on a settings section from a JSON object and saves.\nPropertiesJson must be a JSON object mapping property names to new values,\nin the same format returned by GetSectionPropertyValues.\nRaises an error if the section does not exist, cannot be edited, has no settings\nobject, the default config file is not writable, or any property cannot be set.", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.SetSectionProperties", + "inputSchema": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "description": "The name of the container (e.g. \"Project\")." + }, + "categoryName": { + "type": "string", + "description": "The name of the category (e.g. \"Engine\")." + }, + "sectionName": { + "type": "string", + "description": "The name of the section (e.g. \"General\")." + }, + "propertiesJson": { + "type": "string", + "description": "JSON object with property name to new value pairs." + } + }, + "required": [ + "containerName", + "categoryName", + "sectionName", + "propertiesJson" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if all properties successfully set." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Saves the settings in a section.\nRaises an error if the section does not exist or saving is not supported.", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.SaveSection", + "inputSchema": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "description": "The name of the container (e.g. \"Project\")." + }, + "categoryName": { + "type": "string", + "description": "The name of the category (e.g. \"Engine\")." + }, + "sectionName": { + "type": "string", + "description": "The name of the section (e.g. \"General\")." + } + }, + "required": [ + "containerName", + "categoryName", + "sectionName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True on success." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Resets the settings in a section to their default values.\nRaises an error if the section does not exist or reset is not supported.", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.ResetSectionToDefaults", + "inputSchema": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "description": "The name of the container (e.g. \"Project\")." + }, + "categoryName": { + "type": "string", + "description": "The name of the category (e.g. \"Engine\")." + }, + "sectionName": { + "type": "string", + "description": "The name of the section (e.g. \"General\")." + } + }, + "required": [ + "containerName", + "categoryName", + "sectionName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True on success." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists the names of all sections within a settings category, sorted alphabetically.\nRaises an error if the container or category does not exist.", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.ListSections", + "inputSchema": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "description": "The name of the container (e.g. \"Project\")." + }, + "categoryName": { + "type": "string", + "description": "The name of the category (e.g. \"Engine\")." + } + }, + "required": [ + "containerName", + "categoryName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted array of section names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists the names of all known settings containers, sorted alphabetically.\nCommon containers are \"Editor\" and \"Project\".", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.ListContainers", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted array of container names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists the names of all categories within a settings container, sorted alphabetically.\nRaises an error if the container does not exist.", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.ListCategories", + "inputSchema": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "description": "The name of the container (e.g. \"Project\")." + } + }, + "required": [ + "containerName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted array of category names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a JSON Schema describing the user-visible properties of a settings section.\nThe schema maps each property name to its type, description, and constraints.\nRaises an error if the section does not exist or has no backing settings object\n(e.g. uses a custom widget instead).", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.GetSectionSchema", + "inputSchema": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "description": "The name of the container (e.g. \"Project\")." + }, + "categoryName": { + "type": "string", + "description": "The name of the category (e.g. \"Engine\")." + }, + "sectionName": { + "type": "string", + "description": "The name of the section (e.g. \"General\")." + } + }, + "required": [ + "containerName", + "categoryName", + "sectionName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON Schema string describing the section's properties, or empty string on failure." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the current values of the specified properties as a JSON object.\nRaises an error if the section does not exist, has no settings object, or any\nrequested property cannot be read.", + "name": "ConfigSettingsToolset.ConfigSettingsToolset.GetSectionPropertyValues", + "inputSchema": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "description": "The name of the container (e.g. \"Project\")." + }, + "categoryName": { + "type": "string", + "description": "The name of the category (e.g. \"Engine\")." + }, + "sectionName": { + "type": "string", + "description": "The name of the section (e.g. \"General\")." + }, + "propertyNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The names of the properties to read." + } + }, + "required": [ + "containerName", + "categoryName", + "sectionName", + "propertyNames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON object mapping property names to their current values, or empty string on failure." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "EditorToolset.EditorAppToolset": { + "name": "EditorToolset.EditorAppToolset", + "version": "1.0", + "description": "Tools for querying and modifying Unreal Editor state: console variables, asset imaging,\nactor and asset selection, viewport camera, content browser navigation, and Play-In-Editor\nsession control.", + "tools": [ + { + "description": "Converts a world-space position into normalized screen space based on the editor viewport camera.", + "name": "EditorToolset.EditorAppToolset.WorldPosToScreenCoords", + "inputSchema": { + "type": "object", + "properties": { + "position": { + "title": "Vector", + "description": "The world space position to convert.", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + }, + "required": [ + "position" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "Vector2D", + "description": "The normalized screen-space coordinates for the position if it is in view.", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Stops the currently running play session (PIE or Simulate).\nRaises an error if no play session is running.", + "name": "EditorToolset.EditorAppToolset.StopPIE", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "description": "Always null", + "type": "null" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Starts a Play-In-Editor or Simulate-In-Editor session using the current level.\nCompletes after the engine fires PostPIEStarted (session fully started,\nBeginPlay called) and Options.WarmupSeconds have elapsed, giving project-\nspecific initialization (services, authentication, plugin warmup) time to\nsettle before the agent inspects state or logs.\nRaises an error if a play session is already running.", + "name": "EditorToolset.EditorAppToolset.StartPIE", + "inputSchema": { + "type": "object", + "properties": { + "options": { + "title": "PIESessionOptions", + "description": "Session configuration: PIE vs Simulate, play mode, optional spawn transform override, warmup duration. See FPIESessionOptions.", + "type": "object", + "properties": { + "bSimulate": { + "type": "boolean", + "description": "If true, starts Simulate-In-Editor: the world ticks and AI / physics /\nsubsystems run, but no player pawn is spawned or possessed. Useful for\nobserving initialization, autonomous agents, and physics state\nindependently of player input.\nIf false (default), starts standard PIE with the player pawn possessed." + }, + "playMode": { + "type": "string", + "title": "EPlayModeType", + "enum": [ + "PlayMode_InViewPort", + "PlayMode_InEditorFloating", + "PlayMode_InMobilePreview", + "PlayMode_InTargetedMobilePreview", + "PlayMode_InVulkanPreview", + "PlayMode_InNewProcess", + "PlayMode_InVR", + "PlayMode_Simulate", + "PlayMode_QuickLaunch", + "PlayMode_Count" + ], + "description": "Editor play mode (in-viewport, floating window, etc.). Out-of-process\nmodes (NewProcess, MobilePreview, VR, QuickLaunch) are downgraded to\nPlayMode_InViewPort with a log warning since this tool requires\nin-process PIE for delegate-based completion tracking." + }, + "startTransform": { + "description": "Optional spawn override. When set, the player pawn (PIE) or simulation\nreference (Simulate) spawns at this transform instead of the level's\nPlayerStart / GameMode default. To spawn at the editor viewport camera,\nretrieve the current editor camera properties and use the result here.", + "type": "object", + "title": "ToolsetTransform", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "warmupSeconds": { + "type": "number", + "description": "Seconds to wait after the engine fires PostPIEStarted (BeginPlay called)\nbefore this call completes. Heuristic for project-specific initialization\n(services, authentication, plugin warmup) to settle before the agent\ninspects state or logs. Pass 0 to complete as soon as PIE is up." + } + }, + "required": [ + "bSimulate", + "playMode", + "warmupSeconds" + ] + } + }, + "required": [ + "options" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "description": "Always null", + "type": "null" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Navigates the active content browser to the specified folder path.", + "name": "EditorToolset.EditorAppToolset.SetContentBrowserPath", + "inputSchema": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The internal path to navigate to, e.g. '/Game/Meshes'." + } + }, + "required": [ + "path" + ] + } + }, + { + "description": "Sets the position and rotation of the level viewport camera.", + "name": "EditorToolset.EditorAppToolset.SetCameraTransform", + "inputSchema": { + "type": "object", + "properties": { + "transform": { + "type": "object", + "title": "ToolsetTransform", + "description": "The transform to apply to the viewport camera.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "transform" + ] + } + }, + { + "description": "Selects the specified assets in the content browser.\nCompletes once the content browser has applied the selection.", + "name": "EditorToolset.EditorAppToolset.SelectAssets", + "inputSchema": { + "type": "object", + "properties": { + "assetPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The package paths of the assets to select." + } + }, + "required": [ + "assetPaths" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "description": "Always null", + "type": "null" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Selects the specified actors in the current scene.", + "name": "EditorToolset.EditorAppToolset.SelectActors", + "inputSchema": { + "type": "object", + "properties": { + "actors": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "The actors to select." + } + }, + "required": [ + "actors" + ] + } + }, + { + "description": "Finds all console variables that contain a given name.", + "name": "EditorToolset.EditorAppToolset.SearchCVars", + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The partial or full name to search for." + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "A JSON dict with info about matching cvars." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Finds the world position of the nearest solid object at a given set of normalized view space coords.", + "name": "EditorToolset.EditorAppToolset.ScreenCoordsToWorld", + "inputSchema": { + "type": "object", + "properties": { + "coords": { + "title": "Vector2D", + "description": "The normalized screen-space coordinates to trace from.", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + "traceDistance": { + "type": "number", + "description": "The maximum distance to trace within the scene.", + "default": 100000 + } + }, + "required": [ + "coords" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "Vector", + "description": "The world-space coordinates of the intersection point.", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Opens an asset editor for the specified asset.", + "name": "EditorToolset.EditorAppToolset.OpenEditorForAsset", + "inputSchema": { + "type": "object", + "properties": { + "assetPath": { + "type": "string", + "description": "The path to the asset to open, e.g. '/Game/Meshes/SM_Cube'." + } + }, + "required": [ + "assetPath" + ] + } + }, + { + "description": "Returns whether a Play In Editor session is currently running.", + "name": "EditorToolset.EditorAppToolset.IsPIERunning", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if PIE is active, false otherwise." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all actors in the current level whose bounds intersect the viewport frustum.", + "name": "EditorToolset.EditorAppToolset.GetVisibleActors", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "The actors that are at least partially in view." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the list of assets selected in the content browser.", + "name": "EditorToolset.EditorAppToolset.GetSelectedAssets", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of package paths to the assets selected in the content browser." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the currently selected actors in the level editor.", + "name": "EditorToolset.EditorAppToolset.GetSelectedActors", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "A list of the currently selected actors." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the list of assets currently open in asset editors.", + "name": "EditorToolset.EditorAppToolset.GetOpenAssets", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of package paths to the assets open in asset editors." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the current path of the active content browser.", + "name": "EditorToolset.EditorAppToolset.GetContentBrowserPath", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The path to the folder currently shown in the content browser." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the position and rotation of the level viewport camera.", + "name": "EditorToolset.EditorAppToolset.GetCameraTransform", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "ToolsetTransform", + "description": "The transform for the level viewport camera.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Repositions the level editor camera to focus on the specified actors.\nCannot be called while PIE is active.", + "name": "EditorToolset.EditorAppToolset.FocusOnActors", + "inputSchema": { + "type": "object", + "properties": { + "actors": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "The actors to focus the level camera on." + } + }, + "required": [ + "actors" + ] + } + }, + { + "description": "Captures the level viewport with optional annotations.\n\nAnnotations rendering overlays a projected 3D world-space grid plus\nname + position labels on visible actors. The grid is drawn at a configurable\nground-plane Z and projected through the camera, with coordinate numbers at\nintersections (shown in meters). Each labeled actor gets a crosshair at its\nprojected screen position with a leader-line callout placed to avoid overlap. This\ngives a vision-capable agent spatial awareness: it can reference grid\ncoordinates to direct placement and identify scene contents by label.", + "name": "EditorToolset.EditorAppToolset.CaptureViewport", + "inputSchema": { + "type": "object", + "properties": { + "captureTransform": { + "description": "Optional pose to capture from. If unset, uses the viewport's current camera.", + "type": "object", + "title": "ToolsetTransform", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "annotations": { + "description": "Optional annotation overlay configuration. Only use this when you need the information in order to perform spatial actions.", + "title": "ViewportAnnotationConfig", + "type": "object", + "properties": { + "gridSpacing": { + "type": "number", + "description": "World-space distance between grid lines (cm). Pass 0 to disable the grid overlay while still drawing actor labels." + }, + "gridExtent": { + "type": "number", + "description": "How far the grid extends from the origin in each axis (cm)." + }, + "gridHeight": { + "type": "number", + "description": "Height of the ground-plane grid in world space." + }, + "maxLabelDistance": { + "type": "number", + "description": "Maximum distance (cm) for labeling actors and grid coordinates. Pass 0 to disable actor labels while still drawing the grid." + }, + "classFilter": { + "type": "object", + "title": "Class@/Script/Engine.Actor", + "description": "If non-null, only actors of this class (or a subclass) are labeled.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "maxLabels": { + "type": "integer", + "description": "Maximum number of actor labels to draw. Nearest-to-camera wins. Don't draw too many or the image becomes incoherent." + } + }, + "required": [ + "gridSpacing", + "gridExtent", + "gridHeight", + "maxLabelDistance", + "classFilter", + "maxLabels" + ] + }, + "bShowUI": { + "type": "boolean", + "description": "If false (default), editor UI overlays such as transform gizmos and selection outlines are hidden in the captured image. Set true to capture exactly what's on screen, gizmos and all.", + "default": false + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "ViewportCapture", + "description": "The captured image and associated metadata.", + "type": "object", + "properties": { + "image": { + "title": "ToolsetImage", + "description": "The captured screenshot (PNG encoded as base64). Empty on failure. Pixel dimensions are available via FToolsetImage.", + "type": "object", + "properties": { + "mimeType": { + "type": "string", + "description": "The format the image is encoded in." + }, + "data": { + "type": "string", + "description": "The image data encoded as a base64 string." + } + }, + "required": [ + "mimeType", + "data" + ] + }, + "cameraLocation": { + "title": "Vector", + "description": "Level viewport camera location (world space, cm).", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "cameraRotation": { + "title": "Rotator", + "description": "Level viewport camera rotation (world space).", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "cameraFOV": { + "type": "number", + "description": "Level viewport camera field of view, in degrees." + }, + "grid": { + "title": "ViewportGrid", + "description": "Grid parameters used for the annotation. SpacingCm is zero when the grid was disabled.", + "type": "object", + "properties": { + "spacingCm": { + "type": "number", + "description": "World-space distance between grid lines (cm). Zero if the grid was disabled." + }, + "extentCm": { + "type": "number", + "description": "How far the grid extends from the origin in each axis (cm)." + }, + "height": { + "type": "number", + "description": "Height of the ground-plane grid in world space." + } + }, + "required": [ + "spacingCm", + "extentCm", + "height" + ] + }, + "labeledActors": { + "type": "array", + "items": { + "title": "ViewportLabel", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Canonical, level-unique name of the actor (AActor::GetName). Use this to reference the actor later." + }, + "label": { + "type": "string", + "description": "Display label that was drawn on the image (actor label + position in meters). Not guaranteed unique." + }, + "class": { + "type": "object", + "title": "Class@/Script/Engine.Actor", + "description": "Class of the actor.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "screenPosition": { + "title": "IntPoint", + "description": "Screen-space pixel position of the actor origin in the returned image.", + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + }, + "worldLocation": { + "title": "Vector", + "description": "World-space location of the actor origin (cm).", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "distanceCm": { + "type": "number", + "description": "Distance from the camera to the actor origin (cm)." + } + }, + "required": [ + "name", + "label", + "class", + "screenPosition", + "worldLocation", + "distanceCm" + ] + }, + "description": "One entry per labeled actor in the image." + } + }, + "required": [ + "image", + "cameraLocation", + "cameraRotation", + "cameraFOV", + "grid", + "labeledActors" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Captures an image of the entire editor application as the user sees it.", + "name": "EditorToolset.EditorAppToolset.CaptureEditorImage", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "ToolsetImage", + "description": "An image of editor windows as they appear on the users' desktop.", + "type": "object", + "properties": { + "mimeType": { + "type": "string", + "description": "The format the image is encoded in." + }, + "data": { + "type": "string", + "description": "The image data encoded as a base64 string." + } + }, + "required": [ + "mimeType", + "data" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Renders a thumbnail for the specified asset (e.g. static meshes, skeletal meshes,\nskeletons, animations, montages, materials, textures).", + "name": "EditorToolset.EditorAppToolset.CaptureAssetImage", + "inputSchema": { + "type": "object", + "properties": { + "assetPath": { + "type": "string", + "description": "The path to the asset, e.g. '/Game/Meshes/SM_Cube'." + } + }, + "required": [ + "assetPath" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "ToolsetImage", + "description": "An image of the asset.", + "type": "object", + "properties": { + "mimeType": { + "type": "string", + "description": "The format the image is encoded in." + }, + "data": { + "type": "string", + "description": "The image data encoded as a base64 string." + } + }, + "required": [ + "mimeType", + "data" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "EditorToolset.LogsToolset": { + "name": "EditorToolset.LogsToolset", + "version": "1.0", + "description": "Provides tools for reading the Unreal Engine output log and controlling\nlog category verbosity.", + "tools": [ + { + "description": "Sets the verbosity level for a log category.", + "name": "EditorToolset.LogsToolset.SetVerbosity", + "inputSchema": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "The log category name, e.g. \"LogTemp\".", + "default": "LogsToolset" + }, + "verbosity": { + "type": "string", + "description": "The verbosity level: one of \"NoLogging\", \"Fatal\", \"Error\", \"Warning\", \"Display\", \"Log\", \"Verbose\", or \"VeryVerbose\"." + } + }, + "required": [ + "verbosity" + ] + } + }, + { + "description": "Returns the current verbosity level for a log category.", + "name": "EditorToolset.LogsToolset.GetVerbosity", + "inputSchema": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "The log category name, e.g. \"LogTemp\".", + "default": "LogsToolset" + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The verbosity level as a string: one of \"NoLogging\", \"Fatal\", \"Error\", \"Warning\", \"Display\", \"Log\", \"Verbose\", or \"VeryVerbose\". Raises a script error if the category is not found." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns log entries from the current session's log file.", + "name": "EditorToolset.LogsToolset.GetLogEntries", + "inputSchema": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "If non-empty, only returns entries from this log category (e.g. \"LogTemp\").", + "default": "LogsToolset" + }, + "pattern": { + "type": "string", + "description": "If non-empty, only returns entries whose text matches this regular expression." + }, + "maxEntries": { + "type": "integer", + "description": "Maximum number of entries to return, taken from the end of the log. Pass 0 for no limit. Defaults to 1000.", + "default": 1000 + } + }, + "required": [ + "pattern" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of matching log entries in chronological order." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a sorted list of registered log categories.", + "name": "EditorToolset.LogsToolset.GetLogCategories", + "inputSchema": { + "type": "object", + "properties": { + "filter": { + "type": "string", + "description": "If non-empty, only returns categories whose name contains this substring." + } + }, + "required": [ + "filter" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A sorted list of log category names (e.g. [\"LogBlueprint\", \"LogTemp\"])." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "DataflowAgent.DataflowAgentToolset": { + "name": "DataflowAgent.DataflowAgentToolset", + "version": "1.0", + "description": "Dataflow Agent Toolset - exposes Dataflow graph editing operations as AI agent tools.", + "tools": [ + { + "description": "Updates an existing node's editable properties via JSON.", + "name": "DataflowAgent.DataflowAgentToolset.UpdateNode", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The EdNode to modify", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "jsonParams": { + "type": "string", + "description": "JSON object of property overrides (e.g., {\"Value\": 3.14})" + } + }, + "required": [ + "node", + "jsonParams" + ] + } + }, + { + "description": "Sets the value of an existing variable using its serialized string representation.\nThe format depends on the variable's type (e.g., \"3.14\" for float, \"true\" for bool,\n\"42\" for int, \"MyName\" for FName).", + "name": "DataflowAgent.DataflowAgentToolset.SetVariable", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset to modify", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string", + "description": "Name of the variable to set" + }, + "value": { + "type": "string", + "description": "Serialized string value to assign" + } + }, + "required": [ + "graph", + "name", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "true on success, false if the variable is not found or the value cannot be parsed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Moves a node to a new position in the graph editor.", + "name": "DataflowAgent.DataflowAgentToolset.RepositionNode", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The EdNode to reposition", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "x": { + "type": "integer", + "description": "New X position" + }, + "y": { + "type": "integer", + "description": "New Y position" + } + }, + "required": [ + "node", + "x", + "y" + ] + } + }, + { + "description": "Removes a variable from the Dataflow graph.", + "name": "DataflowAgent.DataflowAgentToolset.RemoveVariable", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset to modify", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string", + "description": "Name of the variable to remove" + } + }, + "required": [ + "graph", + "name" + ] + } + }, + { + "description": "Removes a node and all its connections from the Dataflow graph.", + "name": "DataflowAgent.DataflowAgentToolset.RemoveNode", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset containing the node", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The EdNode to remove", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph", + "node" + ] + } + }, + { + "description": "Removes a comment box node from the graph.", + "name": "DataflowAgent.DataflowAgentToolset.RemoveCommentBox", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset containing the comment", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "commentId": { + "type": "string", + "description": "The node GUID string returned by AddCommentBox" + } + }, + "required": [ + "graph", + "commentId" + ] + } + }, + { + "description": "Returns all variables defined on the Dataflow graph as a JSON array.\nEach entry contains \"name\", \"type\", and \"value\" fields.", + "name": "DataflowAgent.DataflowAgentToolset.ListVariables", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset to inspect", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON array of variable descriptors, or empty string on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a JSON list of all registered Dataflow node types.", + "name": "DataflowAgent.DataflowAgentToolset.ListNodeTypes", + "inputSchema": { + "type": "object", + "properties": { + "bCommonOnly": { + "type": "boolean", + "description": "When true, only return non-deprecated non-experimental nodes. Default is true.", + "default": true + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON array of node type names" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a JSON list of Dataflow templates registered for the given asset class.\nTemplates registered for parent classes are included (class hierarchy walk).", + "name": "DataflowAgent.DataflowAgentToolset.ListDataflowTemplatesForAssetClass", + "inputSchema": { + "type": "object", + "properties": { + "className": { + "type": "string", + "description": "Asset class name with or without the \"U\"/\"A\" prefix" + }, + "bIncludeBlank": { + "type": "boolean", + "description": "When true, include a \"Blank\" option (empty graph) at the start", + "default": true + } + }, + "required": [ + "className" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON array of `{ \"templateId\", \"displayName\", \"tooltip\" }` objects. \"templateId\" is opaque - pass it back to AssignDataflowTemplate or CreateDataflowCompatibleAssetFromTemplate." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a JSON list of every UClass that can host an embedded Dataflow graph\n(i.e. implements IDataflowInstanceInterface). Each entry has \"className\",\n\"displayName\", and \"modulePath\" fields.\n\nUse the \"className\" value as input to CreateDataflowCompatibleAsset or\nListDataflowTemplatesForAssetClass.", + "name": "DataflowAgent.DataflowAgentToolset.ListDataflowCompatibleAssetTypes", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON array of compatible asset type descriptors" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the schema for a Dataflow node type including its input/output pins\nand editable UPROPERTY parameters.", + "name": "DataflowAgent.DataflowAgentToolset.GetNodeTypeSchema", + "inputSchema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "The node type name (e.g., \"FAddFloatsDataflowNode\")" + } + }, + "required": [ + "typeName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON object with name, category, tooltip, inputPins, outputPins, and properties" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns information about a node as a JSON object (name, type, position, pins).", + "name": "DataflowAgent.DataflowAgentToolset.GetNodeInfo", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The EdNode to query", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON string with node info, or error message on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the complete structure of a Dataflow graph including all nodes and connections.", + "name": "DataflowAgent.DataflowAgentToolset.GetGraphStructure", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset to inspect", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON string with graph structure (nodes + connections), or error message on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes the connection between two node pins.", + "name": "DataflowAgent.DataflowAgentToolset.DisconnectNodePins", + "inputSchema": { + "type": "object", + "properties": { + "fromNode": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The source EdNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "fromPin": { + "type": "string", + "description": "Name of the output pin on the source node" + }, + "toNode": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The destination EdNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "toPin": { + "type": "string", + "description": "Name of the input pin on the destination node" + } + }, + "required": [ + "fromNode", + "fromPin", + "toNode", + "toPin" + ] + } + }, + { + "description": "Creates a new saved Dataflow graph asset.", + "name": "DataflowAgent.DataflowAgentToolset.CreateGraph", + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name for the new Dataflow asset (e.g., \"DF_Simulation\")" + }, + "path": { + "type": "string", + "description": "Content folder path where the asset should be created. Defaults to \"/Game/Dataflow\"" + } + }, + "required": [ + "name", + "path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The full asset path of the created graph, or empty string on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new Dataflow-compatible asset and initialises its embedded Dataflow graph\nfrom a registered template in one step.", + "name": "DataflowAgent.DataflowAgentToolset.CreateDataflowCompatibleAssetFromTemplate", + "inputSchema": { + "type": "object", + "properties": { + "className": { + "type": "string", + "description": "Asset class name with or without the \"U\"/\"A\" prefix" + }, + "name": { + "type": "string", + "description": "Name for the new asset" + }, + "path": { + "type": "string", + "description": "Content folder path" + }, + "templateId": { + "type": "string", + "description": "Template identifier returned by ListDataflowTemplatesForAssetClass. Pass an empty string to create with an empty embedded graph (equivalent to CreateDataflowCompatibleAsset)." + } + }, + "required": [ + "className", + "name", + "path", + "templateId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The full asset path of the created asset, or empty string on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new Dataflow-compatible asset (e.g. ChaosClothAsset, GeometryCollection,\nFleshAsset, GroomAsset) with an empty embedded Dataflow graph.", + "name": "DataflowAgent.DataflowAgentToolset.CreateDataflowCompatibleAsset", + "inputSchema": { + "type": "object", + "properties": { + "className": { + "type": "string", + "description": "Asset class name with or without the \"U\"/\"A\" prefix (e.g. \"ChaosClothAsset\" or \"UChaosClothAsset\")" + }, + "name": { + "type": "string", + "description": "Name for the new asset" + }, + "path": { + "type": "string", + "description": "Content folder path where the asset should be created. Defaults to \"/Game/Dataflow\"", + "default": "/Game/Dataflow" + } + }, + "required": [ + "className", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The full asset path of the created asset, or empty string on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Connects an output pin of one node to an input pin of another.", + "name": "DataflowAgent.DataflowAgentToolset.ConnectNodePins", + "inputSchema": { + "type": "object", + "properties": { + "fromNode": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The source EdNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "fromPin": { + "type": "string", + "description": "Name of the output pin on the source node" + }, + "toNode": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The destination EdNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "toPin": { + "type": "string", + "description": "Name of the input pin on the destination node" + } + }, + "required": [ + "fromNode", + "fromPin", + "toNode", + "toPin" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "true on success, false on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Assigns a Dataflow template to an existing Dataflow-compatible asset by duplicating\nthe template graph and embedding it. Replaces any existing embedded graph.", + "name": "DataflowAgent.DataflowAgentToolset.AssignDataflowTemplate", + "inputSchema": { + "type": "object", + "properties": { + "asset": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "The target asset (must implement IDataflowInstanceInterface)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "templateId": { + "type": "string", + "description": "Template identifier returned by ListDataflowTemplatesForAssetClass. Pass an empty string to assign a fresh empty graph." + } + }, + "required": [ + "asset", + "templateId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "true on success, false on failure" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a new variable to the Dataflow graph.\n\nSupported type strings:\n Primitives : \"Bool\", \"Int32\", \"Int64\", \"Float\", \"Double\", \"Name\", \"String\"\n Structs : UScriptStruct name with or without the \"F\" prefix\n e.g. \"Vector\", \"FVector\", \"Transform\", \"FTransform\", \"Rotator\", \"LinearColor\"\n Objects : \"Object:\" where ClassName is with or without the \"U\"/\"A\" prefix\n e.g. \"Object:StaticMesh\", \"Object:USkeletalMesh\"", + "name": "DataflowAgent.DataflowAgentToolset.AddVariable", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset to modify", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string", + "description": "Unique name for the new variable" + }, + "type": { + "type": "string", + "description": "Type string as described above" + } + }, + "required": [ + "graph", + "name", + "type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "true on success, false if the variable already exists or the type cannot be resolved" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a node of the given type to the Dataflow graph.", + "name": "DataflowAgent.DataflowAgentToolset.AddNode", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset to add the node to", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "typeName": { + "type": "string", + "description": "The node type name (e.g., \"FAddFloatsDataflowNode\")" + }, + "nodeName": { + "type": "string", + "description": "Unique name for the node within this graph" + }, + "jsonParams": { + "type": "string", + "description": "Optional JSON object of property overrides (e.g., {\"Value\": 3.14})" + }, + "x": { + "type": "integer", + "description": "X position in the graph editor (default 0, typical node width ~200)", + "default": 0 + }, + "y": { + "type": "integer", + "description": "Y position in the graph editor (default 0, typical node height ~100)", + "default": 0 + } + }, + "required": [ + "graph", + "typeName", + "nodeName", + "jsonParams" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "description": "The newly created UDataflowEdNode, or nullptr on failure", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a comment box around the given nodes.", + "name": "DataflowAgent.DataflowAgentToolset.AddCommentBox", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/DataflowEngine.Dataflow", + "description": "The Dataflow asset to add the comment to", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/DataflowEngine.DataflowEdNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "List of EdNodes to surround with the comment box" + }, + "comment": { + "type": "string", + "description": "Text to display on the comment box", + "default": "/**\n\t * Adds a comment box around the given nodes.\n\t *\n\t * @param Graph - The Dataflow asset to add the comment to\n\t * @param Nodes - List of EdNodes to surround with the comment box\n\t * @param Comment - Text to display on the comment box\n\t * @param Color - Background color of the comment box (defaults to White)\n\t * @return Node ID string of the created comment node, or empty string on failure\n\t */" + }, + "color": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "Background color of the comment box (defaults to White)", + "default": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + } + } + }, + "required": [ + "graph", + "nodes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Node ID string of the created comment node, or empty string on failure" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "DataRegistryToolset.DataRegistryTools": { + "name": "DataRegistryToolset.DataRegistryTools", + "version": "1.0", + "description": "Provides tools for querying and inspecting Data Registries.", + "tools": [ + { + "description": "Returns the runtime sources for a Data Registry.\nThis is the expanded list including transient child sources generated from meta sources.\nWill equal ListDataSources when the registry has no meta sources.", + "name": "DataRegistryToolset.DataRegistryTools.ListRuntimeSources", + "inputSchema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "description": "The registry name." + } + }, + "required": [ + "registryName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "DataRegistrySourceSummary", + "type": "object", + "properties": { + "sourceClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class of the source.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "debugString": { + "type": "string", + "description": "Human-readable description of the source." + }, + "sourceAssetPath": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Path to the underlying asset, if any.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "availability": { + "type": "string", + "title": "EDataRegistryAvailability", + "enum": [ + "DoesNotExist", + "Unknown", + "Remote", + "OnDisk", + "LocalAsset", + "PreCached" + ], + "description": "Availability of this source." + }, + "bIsInitialized": { + "type": "boolean", + "description": "Whether the source is initialized." + }, + "bIsTransient": { + "type": "boolean", + "description": "Whether this is a runtime-only (transient) source." + }, + "parentSourceDebugString": { + "type": "string", + "description": "Debug string of the parent (original) source, if this is a transient child. Empty otherwise." + } + }, + "required": [ + "sourceClass", + "debugString", + "sourceAssetPath", + "availability", + "bIsInitialized", + "bIsTransient", + "parentSourceDebugString" + ] + }, + "description": "A list of source summaries, in runtime order." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all registered Data Registries.", + "name": "DataRegistryToolset.DataRegistryTools.ListRegistries", + "inputSchema": { + "type": "object", + "properties": { + "structFilter": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "If non-null, only registries whose item struct inherits from this struct are returned.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ], + "default": null + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of registry names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all item names in a Data Registry.", + "name": "DataRegistryToolset.DataRegistryTools.ListItems", + "inputSchema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "description": "The registry name." + } + }, + "required": [ + "registryName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "All item names defined on the registry, in registry order." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the editor-defined sources configured on a Data Registry.\nThese are the sources as authored on the registry asset, before any runtime expansion\nof meta sources.", + "name": "DataRegistryToolset.DataRegistryTools.ListDataSources", + "inputSchema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "description": "The registry name." + } + }, + "required": [ + "registryName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "DataRegistrySourceSummary", + "type": "object", + "properties": { + "sourceClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class of the source.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "debugString": { + "type": "string", + "description": "Human-readable description of the source." + }, + "sourceAssetPath": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Path to the underlying asset, if any.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "availability": { + "type": "string", + "title": "EDataRegistryAvailability", + "enum": [ + "DoesNotExist", + "Unknown", + "Remote", + "OnDisk", + "LocalAsset", + "PreCached" + ], + "description": "Availability of this source." + }, + "bIsInitialized": { + "type": "boolean", + "description": "Whether the source is initialized." + }, + "bIsTransient": { + "type": "boolean", + "description": "Whether this is a runtime-only (transient) source." + }, + "parentSourceDebugString": { + "type": "string", + "description": "Debug string of the parent (original) source, if this is a transient child. Empty otherwise." + } + }, + "required": [ + "sourceClass", + "debugString", + "sourceAssetPath", + "availability", + "bIsInitialized", + "bIsTransient", + "parentSourceDebugString" + ] + }, + "description": "A list of source summaries, in definition order." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the item struct schema as JSON.", + "name": "DataRegistryToolset.DataRegistryTools.GetSchema", + "inputSchema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "description": "The registry name." + } + }, + "required": [ + "registryName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "A JSON string describing the struct's fields and types." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns detailed information about a specific registry.", + "name": "DataRegistryToolset.DataRegistryTools.GetRegistryInfo", + "inputSchema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "description": "The registry name." + } + }, + "required": [ + "registryName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "DataRegistryInfo", + "description": "Detailed info including description and id format.", + "type": "object", + "properties": { + "registryName": { + "type": "string", + "description": "The registry name." + }, + "description": { + "type": "string", + "description": "Human-readable description." + }, + "itemStruct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The UScriptStruct used for items in this registry. May be null.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "itemCount": { + "type": "integer", + "description": "Number of item IDs known to this registry." + }, + "availability": { + "type": "string", + "title": "EDataRegistryAvailability", + "enum": [ + "DoesNotExist", + "Unknown", + "Remote", + "OnDisk", + "LocalAsset", + "PreCached" + ], + "description": "Lowest availability across all sources on this registry. DoesNotExist indicates the\nregistry has not been initialized." + }, + "idFormat": { + "type": "string", + "description": "Base GameplayTag of the ID format, if any." + } + }, + "required": [ + "registryName", + "description", + "itemStruct", + "itemCount", + "availability", + "idFormat" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns cached item data.\nItems must be loaded in the registry cache to be returned.", + "name": "DataRegistryToolset.DataRegistryTools.GetItems", + "inputSchema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "description": "The registry name." + }, + "itemNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Item names to retrieve." + } + }, + "required": [ + "registryName", + "itemNames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "additionalProperties": { + "type": "object", + "title": "FInstancedStruct", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "description": "A map from item name to its struct data. Names that were not found in the cache are simply omitted from the result." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "NiagaraToolsets.NiagaraToolset_Info": { + "name": "NiagaraToolsets.NiagaraToolset_Info", + "version": "1.0", + "description": "Niagara Toolset for general Niagara information and guidance.\n\nProvides:\n- Enum value lookups\n- General usage information\n\nCall these functions when you need context about Niagara types.", + "tools": [ + { + "description": "Returns information about a UEnum and all its values.\nALWAYS call this when working with a UEnum type to see valid values.", + "name": "NiagaraToolsets.NiagaraToolset_Info.UEnum_Info", + "inputSchema": { + "type": "object", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "enum" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "NiagaraToolsets.NiagaraToolset_Component": { + "name": "NiagaraToolsets.NiagaraToolset_Component", + "version": "1.0", + "description": "Niagara Toolset for Niagara Component operations.\n\nUse this toolset when working with:\n- Niagara Components on actors\n- Runtime Niagara system manipulation\n- User variable overrides on component instances\n- FX-related operations in levels or blueprints\n\nThis is the primary toolset for runtime Niagara operations.", + "tools": [ + { + "description": "Sets the value of a user variable on the component.\nThis overrides the default value of a user-exposed parameter on a specific component instance.", + "name": "NiagaraToolsets.NiagaraToolset_Component.SetVariable", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Niagara.NiagaraComponent", + "description": "The Niagara component to set the variable on", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variable": { + "title": "NiagaraExt_VariableInst", + "description": "The variable instance containing the name and new value to set", + "type": "object", + "properties": { + "value": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "value", + "name", + "type" + ] + } + }, + "required": [ + "component", + "variable" + ] + } + }, + { + "description": "Sets the Niagara System for a component.\nUse this instead of setting the Asset property directly to ensure proper initialization.", + "name": "NiagaraToolsets.NiagaraToolset_Component.SetSystem", + "inputSchema": { + "type": "object", + "properties": { + "niagaraComponent": { + "type": "object", + "title": "/Script/Niagara.NiagaraComponent", + "description": "The Niagara component to set the system on", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara system asset to assign to the component", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bResetExistingOverrideParameters": { + "type": "boolean", + "description": "If true, reset all user variables to system defaults; if false, preserve matching overrides" + } + }, + "required": [ + "niagaraComponent", + "system", + "bResetExistingOverrideParameters" + ] + } + }, + { + "description": "Gets the current value of a specific user variable on the component.\nThis retrieves the current value of a user-exposed parameter, including any component-level overrides.", + "name": "NiagaraToolsets.NiagaraToolset_Component.GetVariable", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Niagara.NiagaraComponent", + "description": "The Niagara component to retrieve the variable from", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "var": { + "title": "NiagaraExt_Variable", + "description": "The variable definition (name and type) to look up", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "component", + "var" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_VariableInst", + "description": "The variable instance containing the current value", + "type": "object", + "properties": { + "value": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "value", + "name", + "type" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all user variable values currently set on the component.\nThis retrieves the current values of all user-exposed parameters that can be overridden at the component level.", + "name": "NiagaraToolsets.NiagaraToolset_Component.GetUserVariables", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Niagara.NiagaraComponent", + "description": "The Niagara component to retrieve user variables from", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "NiagaraExt_VariableInst", + "type": "object", + "properties": { + "value": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "value", + "name", + "type" + ] + }, + "description": "Array of user variable instances with their current values" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "NiagaraToolsets.NiagaraToolset_Blueprint": { + "name": "NiagaraToolsets.NiagaraToolset_Blueprint", + "version": "1.0", + "description": "Niagara Toolset for Niagara and Blueprint integration.\n\nProvides utilities for creating Blueprint wrappers around Niagara Systems,\nmaking it easier to expose Niagara effects as reusable Blueprint actors.\n\nUse this toolset when you need to create Blueprint-based FX actors from Niagara systems.", + "tools": [ + { + "description": "Creates a Blueprint actor wrapper around a Niagara System.\nThis generates a new Blueprint actor with a Niagara component configured to use the specified system.\n\nNaming convention: NS_MyEffect -> B_MyEffect", + "name": "NiagaraToolsets.NiagaraToolset_Blueprint.ConstructNiagaraBPWrapperFromSystem", + "inputSchema": { + "type": "object", + "properties": { + "newAssetPath": { + "type": "string", + "description": "Full path for the new Blueprint asset (prefer same directory as System)" + }, + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to wrap in the Blueprint", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parentClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The parent Actor class for the Blueprint (e.g., AActor)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "newAssetPath", + "system", + "parentClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "The newly created Blueprint actor asset", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a Blueprint actor wrapper from a Niagara Component.\nThis generates a new Blueprint actor and preserves all component property values and user variable overrides.\n\nNaming convention: NS_MyEffect -> B_MyEffect", + "name": "NiagaraToolsets.NiagaraToolset_Blueprint.ConstructNiagaraBPWrapperFromComponent", + "inputSchema": { + "type": "object", + "properties": { + "newAssetPath": { + "type": "string", + "description": "Full path for the new Blueprint asset (prefer same directory as System)" + }, + "component": { + "type": "object", + "title": "/Script/Niagara.NiagaraComponent", + "description": "The Niagara Component with configured properties and overrides to preserve", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parentClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The parent Actor class for the Blueprint (e.g., AActor)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "newAssetPath", + "component", + "parentClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "The newly created Blueprint actor asset", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "NiagaraToolsets.NiagaraToolset_System": { + "name": "NiagaraToolsets.NiagaraToolset_System", + "version": "1.0", + "description": "Niagara Toolset for Niagara System operations.\n\nProvides comprehensive access to Niagara System editing, including:\n- System, emitter, and module creation and modification\n- Schema discovery for understanding structure\n- Topology and Summary inspection for viewing current configuration\n- Data access for reading and writing properties\n- Dependency rollups via GetSystemDependencies\n- Dynamic-input chain traversal via GetDynamicInputChain\n\nThis is the primary toolset for working with Niagara Systems in the editor.", + "tools": [ + { + "description": "Sets property values on a Niagara System.\nApplies new values to system-level properties based on the provided data structure.", + "name": "NiagaraToolsets.NiagaraToolset_System.SetSystemData", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to modify", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "systemData": { + "title": "NiagaraExt_SystemData", + "description": "Data structure containing the property values to set", + "type": "object", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for a Niagara System." + } + }, + "required": [ + "propertyValues" + ] + } + }, + "required": [ + "system", + "systemData" + ] + } + }, + { + "description": "Sets the value of a stack module input and returns the resulting stored value.\nUpdates the value and configuration for a specific module input parameter.", + "name": "NiagaraToolsets.NiagaraToolset_System.SetStackInputData", + "inputSchema": { + "type": "object", + "properties": { + "stackInputRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the stack input to modify", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "inputData": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "The new value and configuration to apply to the input", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Enum", + "description": "A special case of Local input that stores an Enum value as a string rather than it's raw int.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Linked", + "description": "Niagara Ext Stack Input Data Linked", + "properties": { + "linkedVariable": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "linkedVariable" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_HlslExpression", + "description": "Niagara Ext Stack Input Data Hlsl Expression", + "properties": { + "hlslExpression": { + "type": "string", + "description": "A single rvalue hlsl expression defining the value of this input. MUST be a single rvalue with no variable definitions or return statements etc. For example a color could use the expression \"float4(1.0, 0.0, 0.0, 1.0)\"" + } + }, + "required": [ + "hlslExpression" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DataInterface", + "description": "Niagara Ext Stack Input Data Data Interface", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for this data interface." + } + }, + "required": [ + "propertyValues" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DynamicInput", + "description": "Stack input for a dynamic input.", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input asset defining this dynamic input.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Unsupported", + "description": "An unsupported input type" + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector3f", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2f", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4f", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat4f", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 17 types defined by Struct. The first 6 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "stackInputRef", + "inputData" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "The value now stored on the input after the operation", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Enum", + "description": "A special case of Local input that stores an Enum value as a string rather than it's raw int.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Linked", + "description": "Niagara Ext Stack Input Data Linked", + "properties": { + "linkedVariable": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "linkedVariable" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_HlslExpression", + "description": "Niagara Ext Stack Input Data Hlsl Expression", + "properties": { + "hlslExpression": { + "type": "string", + "description": "A single rvalue hlsl expression defining the value of this input. MUST be a single rvalue with no variable definitions or return statements etc. For example a color could use the expression \"float4(1.0, 0.0, 0.0, 1.0)\"" + } + }, + "required": [ + "hlslExpression" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DataInterface", + "description": "Niagara Ext Stack Input Data Data Interface", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for this data interface." + } + }, + "required": [ + "propertyValues" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DynamicInput", + "description": "Stack input for a dynamic input.", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input asset defining this dynamic input.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Unsupported", + "description": "An unsupported input type" + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector3f", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2f", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4f", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat4f", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 17 types defined by Struct. The first 6 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets property values on a Niagara Renderer.\nApplies new values to renderer properties based on the provided data structure.\nPayload shape varies with the concrete renderer class; call GetRendererSchema for the\nrenderer's class to inspect valid properties before writing.", + "name": "NiagaraToolsets.NiagaraToolset_System.SetRendererData", + "inputSchema": { + "type": "object", + "properties": { + "renderer": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the renderer to modify", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "rendererData": { + "title": "NiagaraExt_RendererData", + "description": "Data structure containing the property values to set", + "type": "object", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for a Niagara Renderer." + } + }, + "required": [ + "propertyValues" + ] + } + }, + "required": [ + "renderer", + "rendererData" + ] + } + }, + { + "description": "Sets whether a module is enabled.\nDisabled modules remain in the stack but don't execute. Current state is visible in module topology.", + "name": "NiagaraToolsets.NiagaraToolset_System.SetModuleEnabled", + "inputSchema": { + "type": "object", + "properties": { + "moduleRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the module to enable or disable", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "bEnabled": { + "type": "boolean", + "description": "True to enable the module, false to disable it" + } + }, + "required": [ + "moduleRef", + "bEnabled" + ] + } + }, + { + "description": "Sets property values on a Niagara Emitter.\nApplies new values to emitter-level properties based on the provided data structure.", + "name": "NiagaraToolsets.NiagaraToolset_System.SetEmitterData", + "inputSchema": { + "type": "object", + "properties": { + "emitter": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the emitter to modify", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "emitterData": { + "title": "NiagaraExt_EmitterData", + "description": "Data structure containing the property values to set", + "type": "object", + "properties": { + "propertyValues": { + "type": "string", + "description": "JSON blob matching the emitter property schema. Fields use C++ PascalCase (SimTarget, RandomSeed, \u2026). Parse to read individual fields." + } + }, + "required": [ + "propertyValues" + ] + } + }, + "required": [ + "emitter", + "emitterData" + ] + } + }, + { + "description": "Removes user variables from a system.\nDeletes the specified user variables from the system's user parameter collection.", + "name": "NiagaraToolsets.NiagaraToolset_System.RemoveUserVariables", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to remove variables from", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variablesToRemove": { + "type": "array", + "items": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + }, + "description": "Array of variable definitions identifying which variables to remove" + } + }, + "required": [ + "system", + "variablesToRemove" + ] + } + }, + { + "description": "Removes a parameter from an existing SetParameters module by name.\nThe module referenced by ModuleRef must be a SetParameters (UNiagaraNodeAssignment) module.\nUse bIsSetParametersModule in the module topology to confirm before calling.", + "name": "NiagaraToolsets.NiagaraToolset_System.RemoveSetParameterEntry", + "inputSchema": { + "type": "object", + "properties": { + "moduleRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the existing SetParameters module", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "parameterName": { + "type": "string", + "description": "Name of the parameter to remove" + } + }, + "required": [ + "moduleRef", + "parameterName" + ] + } + }, + { + "description": "Removes a renderer from an emitter.\nDeletes the specified renderer from the emitter's renderer list.", + "name": "NiagaraToolsets.NiagaraToolset_System.RemoveRenderer", + "inputSchema": { + "type": "object", + "properties": { + "rendererToRemove": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the renderer to remove", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "rendererToRemove" + ] + } + }, + { + "description": "Removes a module from a script stack.\nDeletes the specified module and all its inputs from the script's execution stack.", + "name": "NiagaraToolsets.NiagaraToolset_System.RemoveModule", + "inputSchema": { + "type": "object", + "properties": { + "moduleToRemove": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the module to remove from the stack", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "moduleToRemove" + ] + } + }, + { + "description": "Removes an emitter from a system.\nDeletes the specified emitter and all its associated scripts, modules, and renderers.", + "name": "NiagaraToolsets.NiagaraToolset_System.RemoveEmitter", + "inputSchema": { + "type": "object", + "properties": { + "emitterToRemove": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the emitter to remove from the system", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "emitterToRemove" + ] + } + }, + { + "description": "Returns all user variables defined on the system.\nUser variables are parameters exposed for external control and can be overridden per component instance.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetUserVariables", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to retrieve user variables from", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "system" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_UserVariables", + "description": "Collection of all user variables with their names, types, and default values", + "type": "object", + "properties": { + "userVariables": { + "type": "array", + "items": { + "title": "NiagaraExt_UserVariable", + "type": "object", + "properties": { + "defaultValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "defaultValue", + "description", + "name", + "type" + ] + } + } + }, + "required": [ + "userVariables" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns lightweight system metadata: name, user variables, and one summary entry per emitter.\nUse this for first contact with an unfamiliar system. For full structural detail call GetEmitterTopology per emitter.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetSystemSummary", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to summarise.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "system" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_SystemSummary", + "description": "Summary containing system name, user variables, and per-emitter metadata.", + "type": "object", + "properties": { + "systemName": { + "type": "string", + "description": "The system asset name." + }, + "userVariables": { + "type": "array", + "items": { + "title": "NiagaraExt_UserVariable", + "type": "object", + "properties": { + "defaultValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "defaultValue", + "description", + "name", + "type" + ] + }, + "description": "User-exposed parameters on the system (User.* namespace)." + }, + "emitters": { + "type": "array", + "items": { + "title": "NiagaraExt_EmitterSummary", + "type": "object", + "properties": { + "emitterName": { + "type": "string", + "description": "Use as EmitterName in FNiagaraExt_StackItemReference." + }, + "bEnabled": { + "type": "boolean", + "description": "Disabled emitters still exist but produce no particles." + }, + "simTarget": { + "type": "string", + "title": "ENiagaraSimTarget", + "enum": [ + "CPUSim", + "GPUComputeSim" + ], + "description": "CPUSim or GPUComputeSim." + }, + "rendererClasses": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct renderer classes on this emitter (de-duplicated set)." + } + }, + "required": [ + "emitterName", + "bEnabled", + "simTarget", + "rendererClasses" + ] + }, + "description": "One entry per emitter, in handle order." + } + }, + "required": [ + "systemName", + "userVariables", + "emitters" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns property schema for Niagara System.\nDescribes all available properties and their types that can be set on a Niagara System.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetSystemSchema", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_SystemSchema", + "description": "Schema describing all system-level properties", + "type": "object", + "properties": { + "propertySchema": { + "type": "string", + "description": "Json Schema describing editable properties of a Niagara System." + } + }, + "required": [ + "propertySchema" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the four Used* sets (renderers, data interfaces, modules, dynamic inputs)\ngathered across all emitters and system scripts.\nThese sets are not included in topology structs; call this endpoint separately when needed.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetSystemDependencies", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to scan", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "system" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_SystemDependencies", + "description": "Dependency rollup with four distinct asset sets", + "type": "object", + "properties": { + "usedRenderers": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct renderer classes used across all emitters in this system." + }, + "usedDataInterfaces": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct Data Interface classes referenced by any module or dynamic input in this system." + }, + "usedModules": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct module script assets used across all emitters." + }, + "usedDynamicInputs": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct dynamic-input script assets used across all module inputs." + } + }, + "required": [ + "usedRenderers", + "usedDataInterfaces", + "usedModules", + "usedDynamicInputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns system property values.\nRetrieves the current values of all configurable system-level properties.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetSystemData", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to retrieve data from", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "system" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_SystemData", + "description": "Data structure containing all system property values", + "type": "object", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for a Niagara System." + } + }, + "required": [ + "propertyValues" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the current compile state of a Niagara System: aggregate status, per-script compile\nevents, and summary flags. Waits for any in-flight compile to complete before collecting.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetSystemCompileState", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "system" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_SystemCompileState", + "type": "object", + "properties": { + "aggregateStatus": { + "type": "string", + "title": "ENiagaraExt_ScriptCompileStatus", + "enum": [ + "Unknown", + "Dirty", + "Error", + "UpToDate", + "BeingCreated", + "UpToDateWithWarnings", + "ComputeUpToDateWithWarnings" + ], + "description": "Aggregate compile status across all scripts (worst-case union)." + }, + "bIsCompiling": { + "type": "boolean", + "description": "True if the system currently has active or pending compile requests." + }, + "bIsStale": { + "type": "boolean", + "description": "True if bIsCompiling is true or any per-script status is Dirty." + }, + "bHasErrors": { + "type": "boolean", + "description": "True if any script status is Error or any CompileEvent has Severity == Error." + }, + "bHasWarnings": { + "type": "boolean", + "description": "True if any CompileEvent has Severity == Warning." + }, + "scripts": { + "type": "array", + "items": { + "title": "NiagaraExt_ScriptCompileInfo", + "type": "object", + "properties": { + "emitterName": { + "type": "string", + "description": "Name of the emitter that owns this script, or NAME_None for system-level scripts." + }, + "scriptName": { + "type": "string", + "description": "Script role name from ENiagaraScriptUsage (e.g. SystemSpawnScript, ParticleUpdateScript).\nMatches the ScriptName carried on FNiagaraExt_StackIssue::Location so compile events and\nstack issues can be cross-referenced by script. NAME_None if the usage could not be named." + }, + "lastCompileStatus": { + "type": "string", + "title": "ENiagaraExt_ScriptCompileStatus", + "enum": [ + "Unknown", + "Dirty", + "Error", + "UpToDate", + "BeingCreated", + "UpToDateWithWarnings", + "ComputeUpToDateWithWarnings" + ], + "description": "Last known compile status of this script." + }, + "errorSummary": { + "type": "string", + "description": "Error message string from the last compile attempt (empty if no error)." + }, + "compileEvents": { + "type": "array", + "items": { + "title": "NiagaraExt_CompileEvent", + "type": "object", + "properties": { + "severity": { + "type": "string", + "title": "ENiagaraExt_CompileEventSeverity", + "enum": [ + "Log", + "Display", + "Warning", + "Error" + ] + }, + "message": { + "type": "string", + "description": "The compile event message." + }, + "shortDescription": { + "type": "string", + "description": "Optional short description for the event." + }, + "nodeGuid": { + "type": "string", + "description": "Guid of the node that produced this event (may be zero if not associated with a node).", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "pinGuid": { + "type": "string", + "description": "Guid of the pin that produced this event (may be zero).", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "bFromScriptDependency": { + "type": "boolean", + "description": "True if this event originated on a dependency script and propagated to this one, rather\nthan being raised directly by this script's own compile. When true, the fix for the\nunderlying problem is typically in a different script \u2014 inspect the referenced scripts\nbefore editing this one." + } + }, + "required": [ + "severity", + "message", + "shortDescription", + "nodeGuid", + "pinGuid", + "bFromScriptDependency" + ] + }, + "description": "All compile events (errors, warnings, log messages) from the last compile of this script." + } + }, + "required": [ + "emitterName", + "scriptName", + "lastCompileStatus", + "errorSummary", + "compileEvents" + ] + }, + "description": "Per-script compile info. Order: SystemSpawn, SystemUpdate, then each emitter's scripts\nin handle order (ParticleSpawn, ParticleUpdate, ParticleGPUCompute, event handlers,\nsimulation stages \u2014 whatever the emitter has). EmitterSpawn/EmitterUpdate scripts are\nintentionally omitted because their bodies are inlined into SystemSpawn/SystemUpdate at\ncompile time and they never carry their own compile status; any errors from their\ncontents appear on the corresponding system-level script." + } + }, + "required": [ + "aggregateStatus", + "bIsCompiling", + "bIsStale", + "bHasErrors", + "bHasWarnings", + "scripts" + ], + "description": "Async result whose Value carries aggregate and per-script compile state." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all stack issues (errors, warnings, info) from the Niagara module stack, including\ndismissed ones. Waits for any in-flight compile to complete before collecting.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetStackIssues", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "system" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_StackIssues", + "type": "object", + "properties": { + "numErrors": { + "type": "integer", + "description": "Count of issues with Severity == Error." + }, + "numWarnings": { + "type": "integer", + "description": "Count of issues with Severity == Warning." + }, + "numInfos": { + "type": "integer", + "description": "Count of issues with Severity == Info." + }, + "issues": { + "type": "array", + "items": { + "title": "NiagaraExt_StackIssue", + "type": "object", + "properties": { + "issueId": { + "type": "string", + "description": "Unique identifier for this issue, used as the IssueId parameter in ApplyStackIssueFix." + }, + "severity": { + "type": "string", + "title": "ENiagaraExt_StackIssueSeverity", + "enum": [ + "Error", + "Warning", + "Info", + "None" + ], + "description": "Severity of this issue." + }, + "shortDescription": { + "type": "string", + "description": "Short description of the issue (e.g. \"Missing required input\")." + }, + "longDescription": { + "type": "string", + "description": "Detailed description of the issue with context." + }, + "bCanBeDismissed": { + "type": "boolean", + "description": "True if the user is able to dismiss this issue in the UI." + }, + "bIsDismissed": { + "type": "boolean", + "description": "True if this issue has been dismissed by the user and is hidden in the UI." + }, + "location": { + "title": "NiagaraExt_StackItemReference", + "description": "Structured reference to the emitter/script/module that owns this issue.\nEmitterName, ScriptName, and ModuleName may be NAME_None if the issue is above that level.", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "stackDisplayPath": { + "type": "string", + "description": "Human-readable breadcrumb path from the stack root to the entry that owns this issue,\njoined with '/'. Example: \"FireEmitter/ParticleUpdate/AddVelocity\"." + }, + "fixes": { + "type": "array", + "items": { + "title": "NiagaraExt_StackIssueFix", + "type": "object", + "properties": { + "fixId": { + "type": "string", + "description": "Unique identifier for this fix, used as the FixId parameter in ApplyStackIssueFix." + }, + "description": { + "type": "string", + "description": "Human-readable description of what this fix does." + }, + "style": { + "type": "string", + "title": "ENiagaraExt_StackIssueFixStyle", + "enum": [ + "Fix", + "Link" + ], + "description": "Fix = can be applied programmatically via ApplyStackIssueFix. You should prefer acting on\n Fix-style entries yourself rather than surfacing them to a human.\nLink = navigation hint intended for a human user. Cannot be applied by tool calls \u2014\n ApplyStackIssueFix will reject Link-style fixes." + } + }, + "required": [ + "fixId", + "description", + "style" + ] + }, + "description": "Available auto-fix actions for this issue. May be empty." + } + }, + "required": [ + "issueId", + "severity", + "shortDescription", + "longDescription", + "bCanBeDismissed", + "bIsDismissed", + "location", + "stackDisplayPath", + "fixes" + ] + }, + "description": "All stack issues across the system (both dismissed and undismissed)." + } + }, + "required": [ + "numErrors", + "numWarnings", + "numInfos", + "issues" + ], + "description": "Async result whose Value carries all stack issues across the system and its emitters." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns stack input topology: name, type, visibility, editability. No value payload.\nFor the resolved value call GetStackInputData. For a dynamic-input chain call GetDynamicInputChain.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetStackInputTopology", + "inputSchema": { + "type": "object", + "properties": { + "stackInputRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the stack input to describe.", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "stackInputRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_StackInputTopology", + "description": "Input topology with structural metadata only.", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns schema for a single module input in the stack.\nDescribes the type, metadata, and configuration options for a specific input parameter.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetStackInputSchema", + "inputSchema": { + "type": "object", + "properties": { + "inputReference": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the stack input to get the schema for", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "inputReference" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_StackInputSchema", + "description": "Schema describing the input's type and available configuration", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + }, + "category": { + "type": "string" + }, + "bSupportsExpressions": { + "type": "boolean", + "description": "True if this input can be set with a hlsl expression." + }, + "metaData": { + "title": "NiagaraVariableMetaData", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayUnit": { + "type": "string", + "title": "EUnit", + "enum": [ + "Micrometers", + "Millimeters", + "Centimeters", + "Meters", + "Kilometers", + "Inches", + "Feet", + "Yards", + "Miles", + "Lightyears", + "Degrees", + "Radians", + "CentimetersPerSecond", + "MetersPerSecond", + "KilometersPerHour", + "MilesPerHour", + "DegreesPerSecond", + "RadiansPerSecond", + "CentimetersPerSecondSquared", + "MetersPerSecondSquared", + "Celsius", + "Farenheit", + "Kelvin", + "Micrograms", + "Milligrams", + "Grams", + "Kilograms", + "MetricTons", + "Ounces", + "Pounds", + "Stones", + "GramsPerCubicCentimeter", + "GramsPerCubicMeter", + "KilogramsPerCubicCentimeter", + "KilogramsPerCubicMeter", + "Newtons", + "PoundsForce", + "KilogramsForce", + "KilogramCentimetersPerSecondSquared", + "NewtonMeters", + "KilogramCentimetersSquaredPerSecondSquared", + "NewtonSeconds", + "KilogramCentimeters", + "KilogramMeters", + "Hertz", + "Kilohertz", + "Megahertz", + "Gigahertz", + "RevolutionsPerMinute", + "Bytes", + "Kilobytes", + "Megabytes", + "Gigabytes", + "Terabytes", + "Lumens", + "Candela", + "Lux", + "CandelaPerMeter2", + "ExposureValue", + "Nanoseconds", + "Microseconds", + "Milliseconds", + "Seconds", + "Minutes", + "Hours", + "Days", + "Months", + "Years", + "PixelsPerInch", + "Percentage", + "Multiplier", + "Pascals", + "KiloPascals", + "MegaPascals", + "GigaPascals", + "Unspecified" + ], + "description": "The unit to display next to input fields for this parameter - note that this is only a visual indicator and does not change any of the calculations." + }, + "bAdvancedDisplay": { + "type": "boolean", + "description": "Declares that this input is advanced and should only be visible if expanded inputs have been expanded." + }, + "bDisplayInOverviewStack": { + "type": "boolean", + "description": "Declares that this parameter's value will be shown in the overview node if it's set to a local value." + }, + "inlineParameterSortPriority": { + "type": "integer", + "description": "Affects the sort order for parameters shown inline in the overview. Use a smaller number to push it to the top. Defaults to zero." + }, + "bOverrideColor": { + "type": "boolean", + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterColorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterEnumOverrides": { + "type": "array", + "items": { + "title": "NiagaraEnumParameterMetaData", + "type": "object", + "properties": { + "overrideName": { + "type": "string", + "description": "If specified, this name will be used for the given enum entry. Useful for shortening names." + }, + "iconOverride": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given enum entry. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bUseColorOverride": { + "type": "boolean" + }, + "colorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "overrideName", + "iconOverride", + "bUseColorOverride", + "colorOverride" + ] + }, + "description": "The index of the entry maps to the index of an enum value. Useful for overriding how an enum parameter is displayed in the overview." + }, + "bEnableBoolOverride": { + "type": "boolean", + "description": "Useful to override inline bool visualization in the overview." + }, + "inlineParameterBoolOverride": { + "title": "NiagaraBoolParameterMetaData", + "description": "Useful to override inline bool visualization in the overview.", + "type": "object", + "properties": { + "displayMode": { + "type": "string", + "title": "ENiagaraBoolDisplayMode", + "enum": [ + "DisplayAlways", + "DisplayIfTrue", + "DisplayIfFalse" + ], + "description": "The mode used determines the cases in which a bool parameter is displayed.\nIf set to DisplayAlways, both True and False cases will display.\nIf set to DisplayIfTrue, it will only display if the bool evaluates to True." + }, + "overrideNameTrue": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to True." + }, + "overrideNameFalse": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to False." + }, + "iconOverrideTrue": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to True. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iconOverrideFalse": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to False. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "displayMode", + "overrideNameTrue", + "overrideNameFalse", + "iconOverrideTrue", + "iconOverrideFalse" + ] + }, + "bInlineEditConditionToggle": { + "type": "boolean", + "description": "Declares the associated input is used as an inline edit condition toggle, so it should be hidden and edited as a\n checkbox inline with the input which was designated as its edit condition." + }, + "editCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally editable based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "visibleCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally visible based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "propertyMetaData": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Property Metadata" + }, + "alternateAliases": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of alternate/previous names for this variable. Note that this is not normally needed if you rename through the UX. However, if you delete and then add a different variable, intending for it to match, you will likely want to add the prior name here.\n\nYou may need to restart and reload assets after making this change to have it take effect on already loaded assets." + }, + "widgetCustomization": { + "title": "NiagaraInputParameterCustomization", + "description": "Changes how the input is displayed.", + "type": "object", + "properties": { + "widgetType": { + "type": "string", + "title": "ENiagaraInputWidgetType", + "enum": [ + "Default", + "Slider", + "Volume", + "NumericDropdown", + "EnumStyle", + "SegmentedButtons" + ], + "description": "Changes the widget implementation used for the input" + }, + "bHasMinValue": { + "type": "boolean" + }, + "minValue": { + "type": "number", + "description": "min ui value (float and int types only)" + }, + "bHasMaxValue": { + "type": "boolean" + }, + "maxValue": { + "type": "number", + "description": "max ui value (float and int types only)" + }, + "bHasStepWidth": { + "type": "boolean" + }, + "stepWidth": { + "type": "number", + "description": "Step width used by the input when dragging" + }, + "inputDropdownValues": { + "type": "array", + "items": { + "title": "WidgetNamedInputValue", + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "value", + "displayName", + "tooltip" + ] + } + }, + "enumStyleDropdownValues": { + "type": "array", + "items": { + "title": "NiagaraWidgetNamedIntegerInputValue", + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "displayName", + "tooltip" + ] + } + }, + "maxSegmentsPerRow": { + "type": "integer", + "description": "Limits the number of buttons shown per row, 0 = unlimited" + }, + "segmentValueOverrides": { + "type": "array", + "items": { + "title": "WidgetSegmentValueOverride", + "type": "object", + "properties": { + "enumIndexToOverride": { + "type": "integer" + }, + "bOverrideDisplayName": { + "type": "boolean" + }, + "displayNameOverride": { + "type": "string", + "description": "This will be used as display name instead of the enum value" + }, + "displayIcon": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If set, then this icon will be displayed on the button", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "enumIndexToOverride", + "bOverrideDisplayName", + "displayNameOverride", + "displayIcon" + ] + } + }, + "bBroadcastValueChangesOnCommitOnly": { + "type": "boolean", + "description": "If set to true then values will not be updated while typing, only when committing the input field. This is useful for values that cause big downstream changes and computational overhead, like grid size or spawned particles." + } + }, + "required": [ + "widgetType", + "bHasMinValue", + "minValue", + "bHasMaxValue", + "maxValue", + "bHasStepWidth", + "stepWidth", + "inputDropdownValues", + "enumStyleDropdownValues", + "maxSegmentsPerRow", + "segmentValueOverrides", + "bBroadcastValueChangesOnCommitOnly" + ] + }, + "variableGuid": { + "type": "string", + "description": "A unique identifier for the variable that can be used by function call nodes to find renamed variables.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + }, + "required": [ + "description", + "displayUnit", + "bAdvancedDisplay", + "bDisplayInOverviewStack", + "inlineParameterSortPriority", + "bOverrideColor", + "inlineParameterColorOverride", + "inlineParameterEnumOverrides", + "bEnableBoolOverride", + "inlineParameterBoolOverride", + "bInlineEditConditionToggle", + "editCondition", + "visibleCondition", + "propertyMetaData", + "alternateAliases", + "widgetCustomization", + "variableGuid" + ] + } + }, + "required": [ + "name", + "type", + "category", + "bSupportsExpressions", + "metaData" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the value of a stack module input.\nRetrieves the current value and configuration for a specific module input parameter.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetStackInputData", + "inputSchema": { + "type": "object", + "properties": { + "stackInputRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the stack input to retrieve data from", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "stackInputRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "The current value and configuration of the input", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Enum", + "description": "A special case of Local input that stores an Enum value as a string rather than it's raw int.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Linked", + "description": "Niagara Ext Stack Input Data Linked", + "properties": { + "linkedVariable": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "linkedVariable" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_HlslExpression", + "description": "Niagara Ext Stack Input Data Hlsl Expression", + "properties": { + "hlslExpression": { + "type": "string", + "description": "A single rvalue hlsl expression defining the value of this input. MUST be a single rvalue with no variable definitions or return statements etc. For example a color could use the expression \"float4(1.0, 0.0, 0.0, 1.0)\"" + } + }, + "required": [ + "hlslExpression" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DataInterface", + "description": "Niagara Ext Stack Input Data Data Interface", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for this data interface." + } + }, + "required": [ + "propertyValues" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DynamicInput", + "description": "Stack input for a dynamic input.", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input asset defining this dynamic input.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Unsupported", + "description": "An unsupported input type" + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector3f", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2f", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4f", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat4f", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 17 types defined by Struct. The first 6 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns script stack topology: all modules and their inputs in execution order.\nAll fields always populated.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetScriptStackTopology", + "inputSchema": { + "type": "object", + "properties": { + "scriptRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the script stack to describe.", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "scriptRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Script stack topology with all modules and inputs fully walked.", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all resolved input values for every module in the given script stack.\nOne FNiagaraExt_ModuleInputValues entry per module.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetScriptStackInputValues", + "inputSchema": { + "type": "object", + "properties": { + "scriptRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the script stack", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "scriptRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleInputValues", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "The module name (matches ModuleName in FNiagaraExt_ModuleTopology)." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputValueEntry", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The input parameter name (matches the Name field in FNiagaraExt_StackInputTopology)." + }, + "value": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "The resolved value for this input.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Enum", + "description": "A special case of Local input that stores an Enum value as a string rather than it's raw int.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Linked", + "description": "Niagara Ext Stack Input Data Linked", + "properties": { + "linkedVariable": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "linkedVariable" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_HlslExpression", + "description": "Niagara Ext Stack Input Data Hlsl Expression", + "properties": { + "hlslExpression": { + "type": "string", + "description": "A single rvalue hlsl expression defining the value of this input. MUST be a single rvalue with no variable definitions or return statements etc. For example a color could use the expression \"float4(1.0, 0.0, 0.0, 1.0)\"" + } + }, + "required": [ + "hlslExpression" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DataInterface", + "description": "Niagara Ext Stack Input Data Data Interface", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for this data interface." + } + }, + "required": [ + "propertyValues" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DynamicInput", + "description": "Stack input for a dynamic input.", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input asset defining this dynamic input.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Unsupported", + "description": "An unsupported input type" + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector3f", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2f", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4f", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat4f", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 17 types defined by Struct. The first 6 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "name", + "value" + ] + }, + "description": "One entry per input on this module, in walk order. Mirrors FNiagaraExt_ModuleTopology::Inputs." + } + }, + "required": [ + "moduleName", + "inputs" + ] + }, + "description": "Array of per-module input value bundles in execution order" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns property schema for a specific Renderer class.\nDescribes all available properties and their types for the given renderer type.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetRendererSchema", + "inputSchema": { + "type": "object", + "properties": { + "rendererClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "description": "The renderer class to get the schema for (e.g., UNiagaraSpriteRendererProperties)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "rendererClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_RendererSchema", + "description": "Schema describing all properties for the specified renderer class", + "type": "object", + "properties": { + "rendererClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "propertySchema": { + "type": "string", + "description": "Json Schema describing editable properties of a the Niagara Renderer class." + } + }, + "required": [ + "rendererClass", + "propertySchema" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns renderer property values.\nRetrieves the current values of all configurable renderer properties.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetRendererData", + "inputSchema": { + "type": "object", + "properties": { + "rendererRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the renderer to retrieve data from", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "rendererRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_RendererData", + "description": "Data structure containing all renderer property values", + "type": "object", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for a Niagara Renderer." + } + }, + "required": [ + "propertyValues" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns module topology: metadata and all inputs (name/type/visibility only, no values).\nAll fields always populated.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetModuleTopology", + "inputSchema": { + "type": "object", + "properties": { + "moduleRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the module to describe.", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "moduleRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ModuleTopology", + "description": "Module topology with all inputs in walk order.", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns schema for a module asset.\nStandalone function that doesn't require a system context - useful for browsing available modules.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetModuleSchemaFromAsset", + "inputSchema": { + "type": "object", + "properties": { + "moduleAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The module script asset to get the schema for", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "moduleAsset" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ModuleSchema", + "description": "Schema describing the module's inputs and their types", + "type": "object", + "properties": { + "asset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The script asset this schema describes. Read-only \u2014 populated by GetModuleSchema variants.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputSchema", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + }, + "category": { + "type": "string" + }, + "bSupportsExpressions": { + "type": "boolean", + "description": "True if this input can be set with a hlsl expression." + }, + "metaData": { + "title": "NiagaraVariableMetaData", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayUnit": { + "type": "string", + "title": "EUnit", + "enum": [ + "Micrometers", + "Millimeters", + "Centimeters", + "Meters", + "Kilometers", + "Inches", + "Feet", + "Yards", + "Miles", + "Lightyears", + "Degrees", + "Radians", + "CentimetersPerSecond", + "MetersPerSecond", + "KilometersPerHour", + "MilesPerHour", + "DegreesPerSecond", + "RadiansPerSecond", + "CentimetersPerSecondSquared", + "MetersPerSecondSquared", + "Celsius", + "Farenheit", + "Kelvin", + "Micrograms", + "Milligrams", + "Grams", + "Kilograms", + "MetricTons", + "Ounces", + "Pounds", + "Stones", + "GramsPerCubicCentimeter", + "GramsPerCubicMeter", + "KilogramsPerCubicCentimeter", + "KilogramsPerCubicMeter", + "Newtons", + "PoundsForce", + "KilogramsForce", + "KilogramCentimetersPerSecondSquared", + "NewtonMeters", + "KilogramCentimetersSquaredPerSecondSquared", + "NewtonSeconds", + "KilogramCentimeters", + "KilogramMeters", + "Hertz", + "Kilohertz", + "Megahertz", + "Gigahertz", + "RevolutionsPerMinute", + "Bytes", + "Kilobytes", + "Megabytes", + "Gigabytes", + "Terabytes", + "Lumens", + "Candela", + "Lux", + "CandelaPerMeter2", + "ExposureValue", + "Nanoseconds", + "Microseconds", + "Milliseconds", + "Seconds", + "Minutes", + "Hours", + "Days", + "Months", + "Years", + "PixelsPerInch", + "Percentage", + "Multiplier", + "Pascals", + "KiloPascals", + "MegaPascals", + "GigaPascals", + "Unspecified" + ], + "description": "The unit to display next to input fields for this parameter - note that this is only a visual indicator and does not change any of the calculations." + }, + "bAdvancedDisplay": { + "type": "boolean", + "description": "Declares that this input is advanced and should only be visible if expanded inputs have been expanded." + }, + "bDisplayInOverviewStack": { + "type": "boolean", + "description": "Declares that this parameter's value will be shown in the overview node if it's set to a local value." + }, + "inlineParameterSortPriority": { + "type": "integer", + "description": "Affects the sort order for parameters shown inline in the overview. Use a smaller number to push it to the top. Defaults to zero." + }, + "bOverrideColor": { + "type": "boolean", + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterColorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterEnumOverrides": { + "type": "array", + "items": { + "title": "NiagaraEnumParameterMetaData", + "type": "object", + "properties": { + "overrideName": { + "type": "string", + "description": "If specified, this name will be used for the given enum entry. Useful for shortening names." + }, + "iconOverride": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given enum entry. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bUseColorOverride": { + "type": "boolean" + }, + "colorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "overrideName", + "iconOverride", + "bUseColorOverride", + "colorOverride" + ] + }, + "description": "The index of the entry maps to the index of an enum value. Useful for overriding how an enum parameter is displayed in the overview." + }, + "bEnableBoolOverride": { + "type": "boolean", + "description": "Useful to override inline bool visualization in the overview." + }, + "inlineParameterBoolOverride": { + "title": "NiagaraBoolParameterMetaData", + "description": "Useful to override inline bool visualization in the overview.", + "type": "object", + "properties": { + "displayMode": { + "type": "string", + "title": "ENiagaraBoolDisplayMode", + "enum": [ + "DisplayAlways", + "DisplayIfTrue", + "DisplayIfFalse" + ], + "description": "The mode used determines the cases in which a bool parameter is displayed.\nIf set to DisplayAlways, both True and False cases will display.\nIf set to DisplayIfTrue, it will only display if the bool evaluates to True." + }, + "overrideNameTrue": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to True." + }, + "overrideNameFalse": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to False." + }, + "iconOverrideTrue": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to True. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iconOverrideFalse": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to False. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "displayMode", + "overrideNameTrue", + "overrideNameFalse", + "iconOverrideTrue", + "iconOverrideFalse" + ] + }, + "bInlineEditConditionToggle": { + "type": "boolean", + "description": "Declares the associated input is used as an inline edit condition toggle, so it should be hidden and edited as a\n checkbox inline with the input which was designated as its edit condition." + }, + "editCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally editable based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "visibleCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally visible based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "propertyMetaData": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Property Metadata" + }, + "alternateAliases": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of alternate/previous names for this variable. Note that this is not normally needed if you rename through the UX. However, if you delete and then add a different variable, intending for it to match, you will likely want to add the prior name here.\n\nYou may need to restart and reload assets after making this change to have it take effect on already loaded assets." + }, + "widgetCustomization": { + "title": "NiagaraInputParameterCustomization", + "description": "Changes how the input is displayed.", + "type": "object", + "properties": { + "widgetType": { + "type": "string", + "title": "ENiagaraInputWidgetType", + "enum": [ + "Default", + "Slider", + "Volume", + "NumericDropdown", + "EnumStyle", + "SegmentedButtons" + ], + "description": "Changes the widget implementation used for the input" + }, + "bHasMinValue": { + "type": "boolean" + }, + "minValue": { + "type": "number", + "description": "min ui value (float and int types only)" + }, + "bHasMaxValue": { + "type": "boolean" + }, + "maxValue": { + "type": "number", + "description": "max ui value (float and int types only)" + }, + "bHasStepWidth": { + "type": "boolean" + }, + "stepWidth": { + "type": "number", + "description": "Step width used by the input when dragging" + }, + "inputDropdownValues": { + "type": "array", + "items": { + "title": "WidgetNamedInputValue", + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "value", + "displayName", + "tooltip" + ] + } + }, + "enumStyleDropdownValues": { + "type": "array", + "items": { + "title": "NiagaraWidgetNamedIntegerInputValue", + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "displayName", + "tooltip" + ] + } + }, + "maxSegmentsPerRow": { + "type": "integer", + "description": "Limits the number of buttons shown per row, 0 = unlimited" + }, + "segmentValueOverrides": { + "type": "array", + "items": { + "title": "WidgetSegmentValueOverride", + "type": "object", + "properties": { + "enumIndexToOverride": { + "type": "integer" + }, + "bOverrideDisplayName": { + "type": "boolean" + }, + "displayNameOverride": { + "type": "string", + "description": "This will be used as display name instead of the enum value" + }, + "displayIcon": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If set, then this icon will be displayed on the button", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "enumIndexToOverride", + "bOverrideDisplayName", + "displayNameOverride", + "displayIcon" + ] + } + }, + "bBroadcastValueChangesOnCommitOnly": { + "type": "boolean", + "description": "If set to true then values will not be updated while typing, only when committing the input field. This is useful for values that cause big downstream changes and computational overhead, like grid size or spawned particles." + } + }, + "required": [ + "widgetType", + "bHasMinValue", + "minValue", + "bHasMaxValue", + "maxValue", + "bHasStepWidth", + "stepWidth", + "inputDropdownValues", + "enumStyleDropdownValues", + "maxSegmentsPerRow", + "segmentValueOverrides", + "bBroadcastValueChangesOnCommitOnly" + ] + }, + "variableGuid": { + "type": "string", + "description": "A unique identifier for the variable that can be used by function call nodes to find renamed variables.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + }, + "required": [ + "description", + "displayUnit", + "bAdvancedDisplay", + "bDisplayInOverviewStack", + "inlineParameterSortPriority", + "bOverrideColor", + "inlineParameterColorOverride", + "inlineParameterEnumOverrides", + "bEnableBoolOverride", + "inlineParameterBoolOverride", + "bInlineEditConditionToggle", + "editCondition", + "visibleCondition", + "propertyMetaData", + "alternateAliases", + "widgetCustomization", + "variableGuid" + ] + } + }, + "required": [ + "name", + "type", + "category", + "bSupportsExpressions", + "metaData" + ] + } + }, + "outputs": { + "type": "array", + "items": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + } + }, + "required": [ + "asset", + "inputs", + "outputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns schema for a module and all its inputs.\nCall this after seeing a module in topology to understand what inputs it exposes.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetModuleSchema", + "inputSchema": { + "type": "object", + "properties": { + "moduleReference": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the module to get the schema for", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "moduleReference" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ModuleSchema", + "description": "Schema describing the module's inputs and their types", + "type": "object", + "properties": { + "asset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The script asset this schema describes. Read-only \u2014 populated by GetModuleSchema variants.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputSchema", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + }, + "category": { + "type": "string" + }, + "bSupportsExpressions": { + "type": "boolean", + "description": "True if this input can be set with a hlsl expression." + }, + "metaData": { + "title": "NiagaraVariableMetaData", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayUnit": { + "type": "string", + "title": "EUnit", + "enum": [ + "Micrometers", + "Millimeters", + "Centimeters", + "Meters", + "Kilometers", + "Inches", + "Feet", + "Yards", + "Miles", + "Lightyears", + "Degrees", + "Radians", + "CentimetersPerSecond", + "MetersPerSecond", + "KilometersPerHour", + "MilesPerHour", + "DegreesPerSecond", + "RadiansPerSecond", + "CentimetersPerSecondSquared", + "MetersPerSecondSquared", + "Celsius", + "Farenheit", + "Kelvin", + "Micrograms", + "Milligrams", + "Grams", + "Kilograms", + "MetricTons", + "Ounces", + "Pounds", + "Stones", + "GramsPerCubicCentimeter", + "GramsPerCubicMeter", + "KilogramsPerCubicCentimeter", + "KilogramsPerCubicMeter", + "Newtons", + "PoundsForce", + "KilogramsForce", + "KilogramCentimetersPerSecondSquared", + "NewtonMeters", + "KilogramCentimetersSquaredPerSecondSquared", + "NewtonSeconds", + "KilogramCentimeters", + "KilogramMeters", + "Hertz", + "Kilohertz", + "Megahertz", + "Gigahertz", + "RevolutionsPerMinute", + "Bytes", + "Kilobytes", + "Megabytes", + "Gigabytes", + "Terabytes", + "Lumens", + "Candela", + "Lux", + "CandelaPerMeter2", + "ExposureValue", + "Nanoseconds", + "Microseconds", + "Milliseconds", + "Seconds", + "Minutes", + "Hours", + "Days", + "Months", + "Years", + "PixelsPerInch", + "Percentage", + "Multiplier", + "Pascals", + "KiloPascals", + "MegaPascals", + "GigaPascals", + "Unspecified" + ], + "description": "The unit to display next to input fields for this parameter - note that this is only a visual indicator and does not change any of the calculations." + }, + "bAdvancedDisplay": { + "type": "boolean", + "description": "Declares that this input is advanced and should only be visible if expanded inputs have been expanded." + }, + "bDisplayInOverviewStack": { + "type": "boolean", + "description": "Declares that this parameter's value will be shown in the overview node if it's set to a local value." + }, + "inlineParameterSortPriority": { + "type": "integer", + "description": "Affects the sort order for parameters shown inline in the overview. Use a smaller number to push it to the top. Defaults to zero." + }, + "bOverrideColor": { + "type": "boolean", + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterColorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterEnumOverrides": { + "type": "array", + "items": { + "title": "NiagaraEnumParameterMetaData", + "type": "object", + "properties": { + "overrideName": { + "type": "string", + "description": "If specified, this name will be used for the given enum entry. Useful for shortening names." + }, + "iconOverride": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given enum entry. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bUseColorOverride": { + "type": "boolean" + }, + "colorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "overrideName", + "iconOverride", + "bUseColorOverride", + "colorOverride" + ] + }, + "description": "The index of the entry maps to the index of an enum value. Useful for overriding how an enum parameter is displayed in the overview." + }, + "bEnableBoolOverride": { + "type": "boolean", + "description": "Useful to override inline bool visualization in the overview." + }, + "inlineParameterBoolOverride": { + "title": "NiagaraBoolParameterMetaData", + "description": "Useful to override inline bool visualization in the overview.", + "type": "object", + "properties": { + "displayMode": { + "type": "string", + "title": "ENiagaraBoolDisplayMode", + "enum": [ + "DisplayAlways", + "DisplayIfTrue", + "DisplayIfFalse" + ], + "description": "The mode used determines the cases in which a bool parameter is displayed.\nIf set to DisplayAlways, both True and False cases will display.\nIf set to DisplayIfTrue, it will only display if the bool evaluates to True." + }, + "overrideNameTrue": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to True." + }, + "overrideNameFalse": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to False." + }, + "iconOverrideTrue": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to True. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iconOverrideFalse": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to False. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "displayMode", + "overrideNameTrue", + "overrideNameFalse", + "iconOverrideTrue", + "iconOverrideFalse" + ] + }, + "bInlineEditConditionToggle": { + "type": "boolean", + "description": "Declares the associated input is used as an inline edit condition toggle, so it should be hidden and edited as a\n checkbox inline with the input which was designated as its edit condition." + }, + "editCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally editable based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "visibleCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally visible based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "propertyMetaData": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Property Metadata" + }, + "alternateAliases": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of alternate/previous names for this variable. Note that this is not normally needed if you rename through the UX. However, if you delete and then add a different variable, intending for it to match, you will likely want to add the prior name here.\n\nYou may need to restart and reload assets after making this change to have it take effect on already loaded assets." + }, + "widgetCustomization": { + "title": "NiagaraInputParameterCustomization", + "description": "Changes how the input is displayed.", + "type": "object", + "properties": { + "widgetType": { + "type": "string", + "title": "ENiagaraInputWidgetType", + "enum": [ + "Default", + "Slider", + "Volume", + "NumericDropdown", + "EnumStyle", + "SegmentedButtons" + ], + "description": "Changes the widget implementation used for the input" + }, + "bHasMinValue": { + "type": "boolean" + }, + "minValue": { + "type": "number", + "description": "min ui value (float and int types only)" + }, + "bHasMaxValue": { + "type": "boolean" + }, + "maxValue": { + "type": "number", + "description": "max ui value (float and int types only)" + }, + "bHasStepWidth": { + "type": "boolean" + }, + "stepWidth": { + "type": "number", + "description": "Step width used by the input when dragging" + }, + "inputDropdownValues": { + "type": "array", + "items": { + "title": "WidgetNamedInputValue", + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "value", + "displayName", + "tooltip" + ] + } + }, + "enumStyleDropdownValues": { + "type": "array", + "items": { + "title": "NiagaraWidgetNamedIntegerInputValue", + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "displayName", + "tooltip" + ] + } + }, + "maxSegmentsPerRow": { + "type": "integer", + "description": "Limits the number of buttons shown per row, 0 = unlimited" + }, + "segmentValueOverrides": { + "type": "array", + "items": { + "title": "WidgetSegmentValueOverride", + "type": "object", + "properties": { + "enumIndexToOverride": { + "type": "integer" + }, + "bOverrideDisplayName": { + "type": "boolean" + }, + "displayNameOverride": { + "type": "string", + "description": "This will be used as display name instead of the enum value" + }, + "displayIcon": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If set, then this icon will be displayed on the button", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "enumIndexToOverride", + "bOverrideDisplayName", + "displayNameOverride", + "displayIcon" + ] + } + }, + "bBroadcastValueChangesOnCommitOnly": { + "type": "boolean", + "description": "If set to true then values will not be updated while typing, only when committing the input field. This is useful for values that cause big downstream changes and computational overhead, like grid size or spawned particles." + } + }, + "required": [ + "widgetType", + "bHasMinValue", + "minValue", + "bHasMaxValue", + "maxValue", + "bHasStepWidth", + "stepWidth", + "inputDropdownValues", + "enumStyleDropdownValues", + "maxSegmentsPerRow", + "segmentValueOverrides", + "bBroadcastValueChangesOnCommitOnly" + ] + }, + "variableGuid": { + "type": "string", + "description": "A unique identifier for the variable that can be used by function call nodes to find renamed variables.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + }, + "required": [ + "description", + "displayUnit", + "bAdvancedDisplay", + "bDisplayInOverviewStack", + "inlineParameterSortPriority", + "bOverrideColor", + "inlineParameterColorOverride", + "inlineParameterEnumOverrides", + "bEnableBoolOverride", + "inlineParameterBoolOverride", + "bInlineEditConditionToggle", + "editCondition", + "visibleCondition", + "propertyMetaData", + "alternateAliases", + "widgetCustomization", + "variableGuid" + ] + } + }, + "required": [ + "name", + "type", + "category", + "bSupportsExpressions", + "metaData" + ] + } + }, + "outputs": { + "type": "array", + "items": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + } + }, + "required": [ + "asset", + "inputs", + "outputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns resolved input values for a single module.\nUse when you need values for one specific module without walking the whole emitter.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetModuleInputValues", + "inputSchema": { + "type": "object", + "properties": { + "moduleRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the module", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "moduleRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ModuleInputValues", + "description": "Input value bundle for the module", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "The module name (matches ModuleName in FNiagaraExt_ModuleTopology)." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputValueEntry", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The input parameter name (matches the Name field in FNiagaraExt_StackInputTopology)." + }, + "value": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "The resolved value for this input.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Enum", + "description": "A special case of Local input that stores an Enum value as a string rather than it's raw int.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Linked", + "description": "Niagara Ext Stack Input Data Linked", + "properties": { + "linkedVariable": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "linkedVariable" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_HlslExpression", + "description": "Niagara Ext Stack Input Data Hlsl Expression", + "properties": { + "hlslExpression": { + "type": "string", + "description": "A single rvalue hlsl expression defining the value of this input. MUST be a single rvalue with no variable definitions or return statements etc. For example a color could use the expression \"float4(1.0, 0.0, 0.0, 1.0)\"" + } + }, + "required": [ + "hlslExpression" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DataInterface", + "description": "Niagara Ext Stack Input Data Data Interface", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for this data interface." + } + }, + "required": [ + "propertyValues" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DynamicInput", + "description": "Stack input for a dynamic input.", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input asset defining this dynamic input.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Unsupported", + "description": "An unsupported input type" + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector3f", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2f", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4f", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat4f", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 17 types defined by Struct. The first 6 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "name", + "value" + ] + }, + "description": "One entry per input on this module, in walk order. Mirrors FNiagaraExt_ModuleTopology::Inputs." + } + }, + "required": [ + "moduleName", + "inputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns full emitter topology: four script stacks with all modules and inputs, renderer references.\nAll fields always populated. The returned topology carries no input values; call GetEmitterInputValues in parallel.\nNote: mutation endpoints (AddEmitter, AddModule) also return topology structs \u2014 input values require a separate data call.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetEmitterTopology", + "inputSchema": { + "type": "object", + "properties": { + "emitterRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the emitter to describe.", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "emitterRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_EmitterTopology", + "description": "Emitter topology with all four script stacks and renderer references fully walked.", + "type": "object", + "properties": { + "emitterName": { + "type": "string", + "description": "Use as EmitterName in FNiagaraExt_StackItemReference." + }, + "bEnabled": { + "type": "boolean", + "description": "Disabled emitters still exist but produce no particles." + }, + "simTarget": { + "type": "string", + "title": "ENiagaraSimTarget", + "enum": [ + "CPUSim", + "GPUComputeSim" + ], + "description": "CPUSim or GPUComputeSim. Affects which Data Interfaces and features are available." + }, + "rendererClasses": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct renderer classes on this emitter (de-duplicated set)." + }, + "emitterSpawnScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Emitter Spawn stack: modules run once when the emitter is created.", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "emitterUpdateScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Emitter Update stack: modules run once per frame at emitter scope (spawn rates, bursts, lifecycle).", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "particleSpawnScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Particle Spawn stack: modules run once per newly-spawned particle.", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "particleUpdateScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Particle Update stack: modules run once per particle per frame (forces, velocity, colour-over-life).", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "renderers": { + "type": "array", + "items": { + "title": "NiagaraExt_RendererRef", + "type": "object", + "properties": { + "rendererIndex": { + "type": "integer", + "description": "Index of this renderer within its owning emitter's renderer list. Pair with FNiagaraExt_StackItemReference::RendererIndex." + }, + "rendererClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "rendererIndex", + "rendererClass" + ] + }, + "description": "Renderer references (class + index). For property values call GetRendererData." + } + }, + "required": [ + "emitterName", + "bEnabled", + "simTarget", + "rendererClasses", + "emitterSpawnScript", + "emitterUpdateScript", + "particleSpawnScript", + "particleUpdateScript", + "renderers" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns lightweight emitter metadata: name, enabled state, sim target, renderer classes.\nUse this when you only need to check metadata without walking the full emitter structure.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetEmitterSummary", + "inputSchema": { + "type": "object", + "properties": { + "emitterRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the emitter to summarise.", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "emitterRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_EmitterSummary", + "description": "Summary containing emitter name, enabled, sim target, de-duplicated renderer classes.", + "type": "object", + "properties": { + "emitterName": { + "type": "string", + "description": "Use as EmitterName in FNiagaraExt_StackItemReference." + }, + "bEnabled": { + "type": "boolean", + "description": "Disabled emitters still exist but produce no particles." + }, + "simTarget": { + "type": "string", + "title": "ENiagaraSimTarget", + "enum": [ + "CPUSim", + "GPUComputeSim" + ], + "description": "CPUSim or GPUComputeSim." + }, + "rendererClasses": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct renderer classes on this emitter (de-duplicated set)." + } + }, + "required": [ + "emitterName", + "bEnabled", + "simTarget", + "rendererClasses" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns property schema for Niagara Emitter.\nDescribes all available properties and their types that can be set on a Niagara Emitter.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetEmitterSchema", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_EmitterSchema", + "description": "Schema describing all emitter-level properties", + "type": "object", + "properties": { + "propertySchema": { + "type": "string", + "description": "Json Schema describing editable properties of a Niagara Emitter." + } + }, + "required": [ + "propertySchema" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all resolved input values for every module across all four emitter script stacks.\nOne FNiagaraExt_ModuleInputValues entry per module, each carrying all its resolved input values.\nCall this in parallel with GetEmitterTopology to get both structure and values in two passes.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetEmitterInputValues", + "inputSchema": { + "type": "object", + "properties": { + "emitterRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the emitter to retrieve input values from", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "emitterRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleInputValues", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "The module name (matches ModuleName in FNiagaraExt_ModuleTopology)." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputValueEntry", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The input parameter name (matches the Name field in FNiagaraExt_StackInputTopology)." + }, + "value": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "The resolved value for this input.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Enum", + "description": "A special case of Local input that stores an Enum value as a string rather than it's raw int.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Linked", + "description": "Niagara Ext Stack Input Data Linked", + "properties": { + "linkedVariable": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "linkedVariable" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_HlslExpression", + "description": "Niagara Ext Stack Input Data Hlsl Expression", + "properties": { + "hlslExpression": { + "type": "string", + "description": "A single rvalue hlsl expression defining the value of this input. MUST be a single rvalue with no variable definitions or return statements etc. For example a color could use the expression \"float4(1.0, 0.0, 0.0, 1.0)\"" + } + }, + "required": [ + "hlslExpression" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DataInterface", + "description": "Niagara Ext Stack Input Data Data Interface", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for this data interface." + } + }, + "required": [ + "propertyValues" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DynamicInput", + "description": "Stack input for a dynamic input.", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input asset defining this dynamic input.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Unsupported", + "description": "An unsupported input type" + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector3f", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2f", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4f", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat4f", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 17 types defined by Struct. The first 6 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "name", + "value" + ] + }, + "description": "One entry per input on this module, in walk order. Mirrors FNiagaraExt_ModuleTopology::Inputs." + } + }, + "required": [ + "moduleName", + "inputs" + ] + }, + "description": "Array of per-module input value bundles across all four script stacks" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns emitter property values as a single JSON-string blob in PropertyValues.\nThe blob contains the full FVersionedNiagaraEmitterData (SimTarget, bLocalSpace, RandomSeed,\nFixedBounds, etc.) \u2014 fields use C++ PascalCase, must be parsed to read individual values.\n\nFor typed access to common metadata (SimTarget, EmitterName, bEnabled, RendererClasses) prefer\nGetEmitterSummary \u2014 it returns those as named fields directly and avoids a JSON parse step.\nUse this endpoint when you need the full property set or a less-common field.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetEmitterData", + "inputSchema": { + "type": "object", + "properties": { + "emitterRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the emitter to retrieve data from", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "emitterRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_EmitterData", + "description": "Data structure with PropertyValues set to a JSON blob of all emitter properties", + "type": "object", + "properties": { + "propertyValues": { + "type": "string", + "description": "JSON blob matching the emitter property schema. Fields use C++ PascalCase (SimTarget, RandomSeed, \u2026). Parse to read individual fields." + } + }, + "required": [ + "propertyValues" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns schema for a dynamic input asset.\nStandalone function that doesn't require a system context - useful for browsing available dynamic inputs.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetDynamicInputSchemaFromAsset", + "inputSchema": { + "type": "object", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input script asset to get the schema for", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_DynamicInputSchema", + "description": "Schema describing the dynamic input's parameters and their types", + "type": "object", + "properties": { + "asset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The script asset this schema describes. Read-only \u2014 populated by GetModuleSchema variants.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputSchema", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + }, + "category": { + "type": "string" + }, + "bSupportsExpressions": { + "type": "boolean", + "description": "True if this input can be set with a hlsl expression." + }, + "metaData": { + "title": "NiagaraVariableMetaData", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayUnit": { + "type": "string", + "title": "EUnit", + "enum": [ + "Micrometers", + "Millimeters", + "Centimeters", + "Meters", + "Kilometers", + "Inches", + "Feet", + "Yards", + "Miles", + "Lightyears", + "Degrees", + "Radians", + "CentimetersPerSecond", + "MetersPerSecond", + "KilometersPerHour", + "MilesPerHour", + "DegreesPerSecond", + "RadiansPerSecond", + "CentimetersPerSecondSquared", + "MetersPerSecondSquared", + "Celsius", + "Farenheit", + "Kelvin", + "Micrograms", + "Milligrams", + "Grams", + "Kilograms", + "MetricTons", + "Ounces", + "Pounds", + "Stones", + "GramsPerCubicCentimeter", + "GramsPerCubicMeter", + "KilogramsPerCubicCentimeter", + "KilogramsPerCubicMeter", + "Newtons", + "PoundsForce", + "KilogramsForce", + "KilogramCentimetersPerSecondSquared", + "NewtonMeters", + "KilogramCentimetersSquaredPerSecondSquared", + "NewtonSeconds", + "KilogramCentimeters", + "KilogramMeters", + "Hertz", + "Kilohertz", + "Megahertz", + "Gigahertz", + "RevolutionsPerMinute", + "Bytes", + "Kilobytes", + "Megabytes", + "Gigabytes", + "Terabytes", + "Lumens", + "Candela", + "Lux", + "CandelaPerMeter2", + "ExposureValue", + "Nanoseconds", + "Microseconds", + "Milliseconds", + "Seconds", + "Minutes", + "Hours", + "Days", + "Months", + "Years", + "PixelsPerInch", + "Percentage", + "Multiplier", + "Pascals", + "KiloPascals", + "MegaPascals", + "GigaPascals", + "Unspecified" + ], + "description": "The unit to display next to input fields for this parameter - note that this is only a visual indicator and does not change any of the calculations." + }, + "bAdvancedDisplay": { + "type": "boolean", + "description": "Declares that this input is advanced and should only be visible if expanded inputs have been expanded." + }, + "bDisplayInOverviewStack": { + "type": "boolean", + "description": "Declares that this parameter's value will be shown in the overview node if it's set to a local value." + }, + "inlineParameterSortPriority": { + "type": "integer", + "description": "Affects the sort order for parameters shown inline in the overview. Use a smaller number to push it to the top. Defaults to zero." + }, + "bOverrideColor": { + "type": "boolean", + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterColorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterEnumOverrides": { + "type": "array", + "items": { + "title": "NiagaraEnumParameterMetaData", + "type": "object", + "properties": { + "overrideName": { + "type": "string", + "description": "If specified, this name will be used for the given enum entry. Useful for shortening names." + }, + "iconOverride": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given enum entry. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bUseColorOverride": { + "type": "boolean" + }, + "colorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "overrideName", + "iconOverride", + "bUseColorOverride", + "colorOverride" + ] + }, + "description": "The index of the entry maps to the index of an enum value. Useful for overriding how an enum parameter is displayed in the overview." + }, + "bEnableBoolOverride": { + "type": "boolean", + "description": "Useful to override inline bool visualization in the overview." + }, + "inlineParameterBoolOverride": { + "title": "NiagaraBoolParameterMetaData", + "description": "Useful to override inline bool visualization in the overview.", + "type": "object", + "properties": { + "displayMode": { + "type": "string", + "title": "ENiagaraBoolDisplayMode", + "enum": [ + "DisplayAlways", + "DisplayIfTrue", + "DisplayIfFalse" + ], + "description": "The mode used determines the cases in which a bool parameter is displayed.\nIf set to DisplayAlways, both True and False cases will display.\nIf set to DisplayIfTrue, it will only display if the bool evaluates to True." + }, + "overrideNameTrue": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to True." + }, + "overrideNameFalse": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to False." + }, + "iconOverrideTrue": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to True. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iconOverrideFalse": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to False. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "displayMode", + "overrideNameTrue", + "overrideNameFalse", + "iconOverrideTrue", + "iconOverrideFalse" + ] + }, + "bInlineEditConditionToggle": { + "type": "boolean", + "description": "Declares the associated input is used as an inline edit condition toggle, so it should be hidden and edited as a\n checkbox inline with the input which was designated as its edit condition." + }, + "editCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally editable based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "visibleCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally visible based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "propertyMetaData": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Property Metadata" + }, + "alternateAliases": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of alternate/previous names for this variable. Note that this is not normally needed if you rename through the UX. However, if you delete and then add a different variable, intending for it to match, you will likely want to add the prior name here.\n\nYou may need to restart and reload assets after making this change to have it take effect on already loaded assets." + }, + "widgetCustomization": { + "title": "NiagaraInputParameterCustomization", + "description": "Changes how the input is displayed.", + "type": "object", + "properties": { + "widgetType": { + "type": "string", + "title": "ENiagaraInputWidgetType", + "enum": [ + "Default", + "Slider", + "Volume", + "NumericDropdown", + "EnumStyle", + "SegmentedButtons" + ], + "description": "Changes the widget implementation used for the input" + }, + "bHasMinValue": { + "type": "boolean" + }, + "minValue": { + "type": "number", + "description": "min ui value (float and int types only)" + }, + "bHasMaxValue": { + "type": "boolean" + }, + "maxValue": { + "type": "number", + "description": "max ui value (float and int types only)" + }, + "bHasStepWidth": { + "type": "boolean" + }, + "stepWidth": { + "type": "number", + "description": "Step width used by the input when dragging" + }, + "inputDropdownValues": { + "type": "array", + "items": { + "title": "WidgetNamedInputValue", + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "value", + "displayName", + "tooltip" + ] + } + }, + "enumStyleDropdownValues": { + "type": "array", + "items": { + "title": "NiagaraWidgetNamedIntegerInputValue", + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "displayName", + "tooltip" + ] + } + }, + "maxSegmentsPerRow": { + "type": "integer", + "description": "Limits the number of buttons shown per row, 0 = unlimited" + }, + "segmentValueOverrides": { + "type": "array", + "items": { + "title": "WidgetSegmentValueOverride", + "type": "object", + "properties": { + "enumIndexToOverride": { + "type": "integer" + }, + "bOverrideDisplayName": { + "type": "boolean" + }, + "displayNameOverride": { + "type": "string", + "description": "This will be used as display name instead of the enum value" + }, + "displayIcon": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If set, then this icon will be displayed on the button", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "enumIndexToOverride", + "bOverrideDisplayName", + "displayNameOverride", + "displayIcon" + ] + } + }, + "bBroadcastValueChangesOnCommitOnly": { + "type": "boolean", + "description": "If set to true then values will not be updated while typing, only when committing the input field. This is useful for values that cause big downstream changes and computational overhead, like grid size or spawned particles." + } + }, + "required": [ + "widgetType", + "bHasMinValue", + "minValue", + "bHasMaxValue", + "maxValue", + "bHasStepWidth", + "stepWidth", + "inputDropdownValues", + "enumStyleDropdownValues", + "maxSegmentsPerRow", + "segmentValueOverrides", + "bBroadcastValueChangesOnCommitOnly" + ] + }, + "variableGuid": { + "type": "string", + "description": "A unique identifier for the variable that can be used by function call nodes to find renamed variables.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + }, + "required": [ + "description", + "displayUnit", + "bAdvancedDisplay", + "bDisplayInOverviewStack", + "inlineParameterSortPriority", + "bOverrideColor", + "inlineParameterColorOverride", + "inlineParameterEnumOverrides", + "bEnableBoolOverride", + "inlineParameterBoolOverride", + "bInlineEditConditionToggle", + "editCondition", + "visibleCondition", + "propertyMetaData", + "alternateAliases", + "widgetCustomization", + "variableGuid" + ] + } + }, + "required": [ + "name", + "type", + "category", + "bSupportsExpressions", + "metaData" + ] + } + }, + "outputs": { + "type": "array", + "items": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + } + }, + "required": [ + "asset", + "inputs", + "outputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns schema for a dynamic input module in the stack.\nDescribes the inputs and configuration for a procedural value generator.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetDynamicInputSchema", + "inputSchema": { + "type": "object", + "properties": { + "dynamicInputReference": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the dynamic input to get the schema for", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "dynamicInputReference" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_DynamicInputSchema", + "description": "Schema describing the dynamic input's parameters and their types", + "type": "object", + "properties": { + "asset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The script asset this schema describes. Read-only \u2014 populated by GetModuleSchema variants.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputSchema", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + }, + "category": { + "type": "string" + }, + "bSupportsExpressions": { + "type": "boolean", + "description": "True if this input can be set with a hlsl expression." + }, + "metaData": { + "title": "NiagaraVariableMetaData", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayUnit": { + "type": "string", + "title": "EUnit", + "enum": [ + "Micrometers", + "Millimeters", + "Centimeters", + "Meters", + "Kilometers", + "Inches", + "Feet", + "Yards", + "Miles", + "Lightyears", + "Degrees", + "Radians", + "CentimetersPerSecond", + "MetersPerSecond", + "KilometersPerHour", + "MilesPerHour", + "DegreesPerSecond", + "RadiansPerSecond", + "CentimetersPerSecondSquared", + "MetersPerSecondSquared", + "Celsius", + "Farenheit", + "Kelvin", + "Micrograms", + "Milligrams", + "Grams", + "Kilograms", + "MetricTons", + "Ounces", + "Pounds", + "Stones", + "GramsPerCubicCentimeter", + "GramsPerCubicMeter", + "KilogramsPerCubicCentimeter", + "KilogramsPerCubicMeter", + "Newtons", + "PoundsForce", + "KilogramsForce", + "KilogramCentimetersPerSecondSquared", + "NewtonMeters", + "KilogramCentimetersSquaredPerSecondSquared", + "NewtonSeconds", + "KilogramCentimeters", + "KilogramMeters", + "Hertz", + "Kilohertz", + "Megahertz", + "Gigahertz", + "RevolutionsPerMinute", + "Bytes", + "Kilobytes", + "Megabytes", + "Gigabytes", + "Terabytes", + "Lumens", + "Candela", + "Lux", + "CandelaPerMeter2", + "ExposureValue", + "Nanoseconds", + "Microseconds", + "Milliseconds", + "Seconds", + "Minutes", + "Hours", + "Days", + "Months", + "Years", + "PixelsPerInch", + "Percentage", + "Multiplier", + "Pascals", + "KiloPascals", + "MegaPascals", + "GigaPascals", + "Unspecified" + ], + "description": "The unit to display next to input fields for this parameter - note that this is only a visual indicator and does not change any of the calculations." + }, + "bAdvancedDisplay": { + "type": "boolean", + "description": "Declares that this input is advanced and should only be visible if expanded inputs have been expanded." + }, + "bDisplayInOverviewStack": { + "type": "boolean", + "description": "Declares that this parameter's value will be shown in the overview node if it's set to a local value." + }, + "inlineParameterSortPriority": { + "type": "integer", + "description": "Affects the sort order for parameters shown inline in the overview. Use a smaller number to push it to the top. Defaults to zero." + }, + "bOverrideColor": { + "type": "boolean", + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterColorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "The color used to display a parameter in the overview. If no color is specified, the type color is used." + }, + "inlineParameterEnumOverrides": { + "type": "array", + "items": { + "title": "NiagaraEnumParameterMetaData", + "type": "object", + "properties": { + "overrideName": { + "type": "string", + "description": "If specified, this name will be used for the given enum entry. Useful for shortening names." + }, + "iconOverride": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given enum entry. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bUseColorOverride": { + "type": "boolean" + }, + "colorOverride": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "overrideName", + "iconOverride", + "bUseColorOverride", + "colorOverride" + ] + }, + "description": "The index of the entry maps to the index of an enum value. Useful for overriding how an enum parameter is displayed in the overview." + }, + "bEnableBoolOverride": { + "type": "boolean", + "description": "Useful to override inline bool visualization in the overview." + }, + "inlineParameterBoolOverride": { + "title": "NiagaraBoolParameterMetaData", + "description": "Useful to override inline bool visualization in the overview.", + "type": "object", + "properties": { + "displayMode": { + "type": "string", + "title": "ENiagaraBoolDisplayMode", + "enum": [ + "DisplayAlways", + "DisplayIfTrue", + "DisplayIfFalse" + ], + "description": "The mode used determines the cases in which a bool parameter is displayed.\nIf set to DisplayAlways, both True and False cases will display.\nIf set to DisplayIfTrue, it will only display if the bool evaluates to True." + }, + "overrideNameTrue": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to True." + }, + "overrideNameFalse": { + "type": "string", + "description": "If specified, this name will be used for the given bool if it evaluates to False." + }, + "iconOverrideTrue": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to True. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iconOverrideFalse": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If specified, this icon will be used for the given bool if it evaluates to False. If OverrideName isn't empty, the icon takes priority.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "displayMode", + "overrideNameTrue", + "overrideNameFalse", + "iconOverrideTrue", + "iconOverrideFalse" + ] + }, + "bInlineEditConditionToggle": { + "type": "boolean", + "description": "Declares the associated input is used as an inline edit condition toggle, so it should be hidden and edited as a\n checkbox inline with the input which was designated as its edit condition." + }, + "editCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally editable based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "visibleCondition": { + "title": "NiagaraInputConditionMetadata", + "description": "Declares the associated input should be conditionally visible based on the value of another input.", + "type": "object", + "properties": { + "inputName": { + "type": "string", + "description": "The name of the input to use for matching the target values." + }, + "targetValues": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of target values which will satisfy the input condition. If this is empty it's assumed to be a single value of \"true\" for matching bool inputs." + } + }, + "required": [ + "inputName", + "targetValues" + ] + }, + "propertyMetaData": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Property Metadata" + }, + "alternateAliases": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of alternate/previous names for this variable. Note that this is not normally needed if you rename through the UX. However, if you delete and then add a different variable, intending for it to match, you will likely want to add the prior name here.\n\nYou may need to restart and reload assets after making this change to have it take effect on already loaded assets." + }, + "widgetCustomization": { + "title": "NiagaraInputParameterCustomization", + "description": "Changes how the input is displayed.", + "type": "object", + "properties": { + "widgetType": { + "type": "string", + "title": "ENiagaraInputWidgetType", + "enum": [ + "Default", + "Slider", + "Volume", + "NumericDropdown", + "EnumStyle", + "SegmentedButtons" + ], + "description": "Changes the widget implementation used for the input" + }, + "bHasMinValue": { + "type": "boolean" + }, + "minValue": { + "type": "number", + "description": "min ui value (float and int types only)" + }, + "bHasMaxValue": { + "type": "boolean" + }, + "maxValue": { + "type": "number", + "description": "max ui value (float and int types only)" + }, + "bHasStepWidth": { + "type": "boolean" + }, + "stepWidth": { + "type": "number", + "description": "Step width used by the input when dragging" + }, + "inputDropdownValues": { + "type": "array", + "items": { + "title": "WidgetNamedInputValue", + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "value", + "displayName", + "tooltip" + ] + } + }, + "enumStyleDropdownValues": { + "type": "array", + "items": { + "title": "NiagaraWidgetNamedIntegerInputValue", + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "tooltip": { + "type": "string" + } + }, + "required": [ + "displayName", + "tooltip" + ] + } + }, + "maxSegmentsPerRow": { + "type": "integer", + "description": "Limits the number of buttons shown per row, 0 = unlimited" + }, + "segmentValueOverrides": { + "type": "array", + "items": { + "title": "WidgetSegmentValueOverride", + "type": "object", + "properties": { + "enumIndexToOverride": { + "type": "integer" + }, + "bOverrideDisplayName": { + "type": "boolean" + }, + "displayNameOverride": { + "type": "string", + "description": "This will be used as display name instead of the enum value" + }, + "displayIcon": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "If set, then this icon will be displayed on the button", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "enumIndexToOverride", + "bOverrideDisplayName", + "displayNameOverride", + "displayIcon" + ] + } + }, + "bBroadcastValueChangesOnCommitOnly": { + "type": "boolean", + "description": "If set to true then values will not be updated while typing, only when committing the input field. This is useful for values that cause big downstream changes and computational overhead, like grid size or spawned particles." + } + }, + "required": [ + "widgetType", + "bHasMinValue", + "minValue", + "bHasMaxValue", + "maxValue", + "bHasStepWidth", + "stepWidth", + "inputDropdownValues", + "enumStyleDropdownValues", + "maxSegmentsPerRow", + "segmentValueOverrides", + "bBroadcastValueChangesOnCommitOnly" + ] + }, + "variableGuid": { + "type": "string", + "description": "A unique identifier for the variable that can be used by function call nodes to find renamed variables.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + }, + "required": [ + "description", + "displayUnit", + "bAdvancedDisplay", + "bDisplayInOverviewStack", + "inlineParameterSortPriority", + "bOverrideColor", + "inlineParameterColorOverride", + "inlineParameterEnumOverrides", + "bEnableBoolOverride", + "inlineParameterBoolOverride", + "bInlineEditConditionToggle", + "editCondition", + "visibleCondition", + "propertyMetaData", + "alternateAliases", + "widgetCustomization", + "variableGuid" + ] + } + }, + "required": [ + "name", + "type", + "category", + "bSupportsExpressions", + "metaData" + ] + } + }, + "outputs": { + "type": "array", + "items": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + } + }, + "required": [ + "asset", + "inputs", + "outputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the full recursive chain for a dynamic input: topology metadata and resolved values at every level.\nThe starting input must have value mode Dynamic; an error is surfaced otherwise.\nThe schema expands one full level and emits a typed recursion stub at deeper levels;\nthe wire format recurses to arbitrary depth matching the underlying chain.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetDynamicInputChain", + "inputSchema": { + "type": "object", + "properties": { + "stackInputRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the dynamic input to traverse", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + } + }, + "required": [ + "stackInputRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Recursive chain of entries, each carrying topology metadata and a resolved Value payload", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_DynamicInputChain", + "description": "A single entry in a dynamic-input chain, carrying both topology metadata and the resolved value.\nNested child entries are accessible via Inputs (one per direct input of the dynamic input script).\n\nThe FInstancedStruct wrapper pattern (FNiagaraExt_DynamicInputChainRef declared before this struct)\navoids the UHT \"struct recursion via arrays\" restriction that blocks direct self-reference.\nThe schema generator detects the self-reference and emits a typed stub at the recursion boundary;\nthe wire format itself recurses to arbitrary depth.", + "properties": { + "name": { + "type": "string", + "description": "Input parameter name." + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Niagara type definition for this input.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + }, + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter of the dynamic input script. Same semantics\nas FNiagaraExt_StackInputTopology::bIsStaticSwitch \u2014 changing it recompiles the chain level\nand reshapes which sibling inputs are visible/editable." + }, + "value": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Resolved value for this input.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Enum", + "description": "A special case of Local input that stores an Enum value as a string rather than it's raw int.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Linked", + "description": "Niagara Ext Stack Input Data Linked", + "properties": { + "linkedVariable": { + "title": "NiagaraExt_Variable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "linkedVariable" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_HlslExpression", + "description": "Niagara Ext Stack Input Data Hlsl Expression", + "properties": { + "hlslExpression": { + "type": "string", + "description": "A single rvalue hlsl expression defining the value of this input. MUST be a single rvalue with no variable definitions or return statements etc. For example a color could use the expression \"float4(1.0, 0.0, 0.0, 1.0)\"" + } + }, + "required": [ + "hlslExpression" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DataInterface", + "description": "Niagara Ext Stack Input Data Data Interface", + "properties": { + "propertyValues": { + "type": "string", + "description": "Json values corresponding to the schema for this data interface." + } + }, + "required": [ + "propertyValues" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_DynamicInput", + "description": "Stack input for a dynamic input.", + "properties": { + "dynamicInputAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The dynamic input asset defining this dynamic input.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dynamicInputAsset" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_StackInputData_Unsupported", + "description": "An unsupported input type" + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector3f", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2f", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4f", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat4f", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 17 types defined by Struct. The first 6 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "description": "Recursive reference to NiagaraExt_DynamicInputChain \u2014 same shape repeats to arbitrary depth. Fields: Name, Type, bIsVisible, bIsEditable, bIsStaticSwitch, Value, Inputs.", + "title": "/Script/NiagaraEditor.NiagaraExt_DynamicInputChain" + } + ], + "description": "Value can be one of 1 types defined by Struct." + } + }, + "required": [ + "struct" + ] + }, + "description": "Direct inputs of the dynamic input script at this level, each of which may itself be dynamic." + } + }, + "required": [ + "name", + "type", + "bIsVisible", + "bIsEditable", + "bIsStaticSwitch", + "value", + "inputs" + ] + } + ], + "description": "Value can be one of 1 types defined by Struct." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns property schema for a specific Data Interface class.\nDescribes all available properties and their types for the given data interface type.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetDataInterfaceSchema", + "inputSchema": { + "type": "object", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The data interface class to get the schema for", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_DataInterfaceSchema", + "description": "Schema describing all properties for the specified data interface class", + "type": "object", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "propertySchema": { + "type": "string", + "description": "Json Schema describing editable properties of a the data interface class." + } + }, + "required": [ + "dataInterfaceClass", + "propertySchema" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all available Dynamic Input Module assets compatible with the given type.\nDynamic inputs provide procedural value generation for module parameters.", + "name": "NiagaraToolsets.NiagaraToolset_System.GetAvailableDynamicInputs", + "inputSchema": { + "type": "object", + "properties": { + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "The Niagara type definition to find compatible dynamic inputs for", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Array of dynamic input script assets that can be used with the specified type" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new Niagara System asset.\nThe new system will be based on the template system, inheriting its configuration and emitters.", + "name": "NiagaraToolsets.NiagaraToolset_System.CreateNiagaraSystem", + "inputSchema": { + "type": "object", + "properties": { + "assetName": { + "type": "string", + "description": "Name of the new asset (without path or extension)" + }, + "assetPath": { + "type": "string", + "description": "Directory path where the new asset will be created" + }, + "templateSystem": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Template system to base the new system on (required)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "assetName", + "assetPath", + "templateSystem" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The newly created Niagara System asset if successful, nullptr otherwise", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Applies a Fix-style stack issue fix identified by IssueId and FixId. Link-style fixes are\nrejected. The fix is undoable via the editor undo stack. Applying a fix may trigger a\nrecompile; the result waits for that compile to complete so post-fix state is valid.", + "name": "NiagaraToolsets.NiagaraToolset_System.ApplyStackIssueFix", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to apply the fix to.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "issueId": { + "type": "string", + "description": "IssueId from a prior FNiagaraExt_StackIssue." + }, + "fixId": { + "type": "string", + "description": "FixId from a prior FNiagaraExt_StackIssueFix." + } + }, + "required": [ + "system", + "issueId", + "fixId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraToolset_ApplyStackIssueFixResult", + "type": "object", + "properties": { + "applyResult": { + "title": "NiagaraExt_ApplyStackIssueFixResult", + "description": "Direct outcome of the fix application (bApplied + AppliedFixDescription).", + "type": "object", + "properties": { + "bApplied": { + "type": "boolean", + "description": "True if the fix delegate executed. False on any error path (system null, IssueId or FixId\nnot found, ambiguous match, Link-style fix, or unbound delegate). When false, inspect the\ntoolset context's error list for the specific reason." + }, + "appliedFixDescription": { + "type": "string", + "description": "Human-readable description of the fix that ran, copied from FNiagaraExt_StackIssueFix::Description.\nEmpty when bApplied is false." + } + }, + "required": [ + "bApplied", + "appliedFixDescription" + ] + }, + "postFixIssues": { + "title": "NiagaraExt_StackIssues", + "description": "Stack-issue state observed after the fix's compile completed.", + "type": "object", + "properties": { + "numErrors": { + "type": "integer", + "description": "Count of issues with Severity == Error." + }, + "numWarnings": { + "type": "integer", + "description": "Count of issues with Severity == Warning." + }, + "numInfos": { + "type": "integer", + "description": "Count of issues with Severity == Info." + }, + "issues": { + "type": "array", + "items": { + "title": "NiagaraExt_StackIssue", + "type": "object", + "properties": { + "issueId": { + "type": "string", + "description": "Unique identifier for this issue, used as the IssueId parameter in ApplyStackIssueFix." + }, + "severity": { + "type": "string", + "title": "ENiagaraExt_StackIssueSeverity", + "enum": [ + "Error", + "Warning", + "Info", + "None" + ], + "description": "Severity of this issue." + }, + "shortDescription": { + "type": "string", + "description": "Short description of the issue (e.g. \"Missing required input\")." + }, + "longDescription": { + "type": "string", + "description": "Detailed description of the issue with context." + }, + "bCanBeDismissed": { + "type": "boolean", + "description": "True if the user is able to dismiss this issue in the UI." + }, + "bIsDismissed": { + "type": "boolean", + "description": "True if this issue has been dismissed by the user and is hidden in the UI." + }, + "location": { + "title": "NiagaraExt_StackItemReference", + "description": "Structured reference to the emitter/script/module that owns this issue.\nEmitterName, ScriptName, and ModuleName may be NAME_None if the issue is above that level.", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "stackDisplayPath": { + "type": "string", + "description": "Human-readable breadcrumb path from the stack root to the entry that owns this issue,\njoined with '/'. Example: \"FireEmitter/ParticleUpdate/AddVelocity\"." + }, + "fixes": { + "type": "array", + "items": { + "title": "NiagaraExt_StackIssueFix", + "type": "object", + "properties": { + "fixId": { + "type": "string", + "description": "Unique identifier for this fix, used as the FixId parameter in ApplyStackIssueFix." + }, + "description": { + "type": "string", + "description": "Human-readable description of what this fix does." + }, + "style": { + "type": "string", + "title": "ENiagaraExt_StackIssueFixStyle", + "enum": [ + "Fix", + "Link" + ], + "description": "Fix = can be applied programmatically via ApplyStackIssueFix. You should prefer acting on\n Fix-style entries yourself rather than surfacing them to a human.\nLink = navigation hint intended for a human user. Cannot be applied by tool calls \u2014\n ApplyStackIssueFix will reject Link-style fixes." + } + }, + "required": [ + "fixId", + "description", + "style" + ] + }, + "description": "Available auto-fix actions for this issue. May be empty." + } + }, + "required": [ + "issueId", + "severity", + "shortDescription", + "longDescription", + "bCanBeDismissed", + "bIsDismissed", + "location", + "stackDisplayPath", + "fixes" + ] + }, + "description": "All stack issues across the system (both dismissed and undismissed)." + } + }, + "required": [ + "numErrors", + "numWarnings", + "numInfos", + "issues" + ] + } + }, + "required": [ + "applyResult", + "postFixIssues" + ], + "description": "Async result carrying the fix outcome and a post-fix stack-issues snapshot." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds or updates user variables on a system.\nIf a variable with the same name already exists, it will be replaced with the new definition.", + "name": "NiagaraToolsets.NiagaraToolset_System.AddUserVariables", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to add variables to", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variablesToAdd": { + "type": "array", + "items": { + "title": "NiagaraExt_UserVariable", + "type": "object", + "properties": { + "defaultValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "defaultValue", + "description", + "name", + "type" + ] + }, + "description": "Array of user variables to add or update" + } + }, + "required": [ + "system", + "variablesToAdd" + ] + } + }, + { + "description": "Adds a SetParameters module to a script stack.\nUnlike AddModule which requires a script asset, a SetParameters module dynamically assigns\nvalues to named parameters and generates its own internal script. Use this when you need\nto set one or more particle/emitter/system parameters directly in the stack.", + "name": "NiagaraToolsets.NiagaraToolset_System.AddSetParametersModule", + "inputSchema": { + "type": "object", + "properties": { + "moduleLocationRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference specifying where to add the module", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "parameters": { + "type": "array", + "items": { + "title": "NiagaraExt_SetParameterEntry", + "type": "object", + "properties": { + "variable": { + "title": "NiagaraExt_Variable", + "description": "The variable to assign (name + type).", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + }, + "defaultValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "variable", + "defaultValue" + ] + }, + "description": "Array of parameter entries, each with a variable (name + type) and an optional default value string" + } + }, + "required": [ + "moduleLocationRef", + "parameters" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ModuleTopology", + "description": "Topology of the newly added module, including all its inputs", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a single parameter to an existing SetParameters module.\nThe module referenced by ModuleRef must be a SetParameters (UNiagaraNodeAssignment) module.\nUse bIsSetParametersModule in the module topology to confirm before calling.", + "name": "NiagaraToolsets.NiagaraToolset_System.AddSetParameterEntry", + "inputSchema": { + "type": "object", + "properties": { + "moduleRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference to the existing SetParameters module", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "entry": { + "title": "NiagaraExt_SetParameterEntry", + "description": "The parameter to add (variable name, type, and optional default value string)", + "type": "object", + "properties": { + "variable": { + "title": "NiagaraExt_Variable", + "description": "The variable to assign (name + type).", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "name", + "type" + ] + }, + "defaultValue": { + "type": "object", + "title": "NiagaraToolsetInstancedValue", + "description": "Wrapper struct for FInstancedStruct that simplifies JSON conversion.\n\nRepresents an instanced value that can be one of multiple allowed struct types.\nThe allowed types are determined by BaseStruct metadata (auto-discovered derived types)\nand optional AdditionalTypes metadata (explicitly specified types).\n\nWhen working with this type, check the JSON schema's oneOf array to see all valid types.\nSpecialized types (derived from BaseStruct) are listed first, followed by additional types.", + "properties": { + "struct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "The struct type for this instanced value. Must match one of the allowed types in the schema.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "oneOf": [ + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Enum", + "description": "Wrapper for UEnum references. Use this struct when passing enum values to Niagara variables.", + "properties": { + "enum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "Reference to the UEnum type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enumName": { + "type": "string", + "description": "The enum value name" + }, + "displayName": { + "type": "string", + "description": "Display value for EnumName. Often more descriptive and useful than the internal EnumName. For informational purposes only, the actual set value of the enum is EnumName." + } + }, + "required": [ + "enum", + "enumName", + "displayName" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_DataInterface", + "description": "Wrapper for DataInterface references. Use this struct when passing DataInterface instances to Niagara variables.", + "properties": { + "dataInterfaceClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraDataInterface", + "description": "The class of the DataInterface", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "dataInterface": { + "type": "object", + "title": "/Script/Niagara.NiagaraDataInterface", + "description": "Reference to the DataInterface object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "dataInterfaceClass", + "dataInterface" + ] + }, + { + "type": "object", + "title": "/Script/NiagaraEditor.NiagaraExt_VariableValue_Object", + "description": "Wrapper for UObject references. Use this struct when passing UObject instances (textures, materials, etc.) to Niagara variables.", + "properties": { + "objectClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "The class type constraint for the object reference", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "object": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UObject instance", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "objectClass", + "object" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraFloat", + "description": "float", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraBool", + "description": "bool", + "properties": { + "value": { + "type": "integer", + "description": "Must be either FNiagaraBool::True(-1) or FNiagaraBool::False(0)." + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraInt32", + "description": "int32", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraPosition", + "description": "Position", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/Niagara.NiagaraID", + "description": "Niagara ID", + "properties": { + "index": { + "type": "integer", + "description": "Index in the indirection table for this particle. Allows fast access to this particles data.\nIs always unique among currently living particles but will be reused after the particle dies." + }, + "acquireTag": { + "type": "integer", + "description": "A unique tag for when this ID was acquired.\nAllows us to differentiate between particles when one dies and another reuses it's Index." + } + }, + "required": [ + "index", + "acquireTag" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector", + "description": "A point or direction FVector in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector2D", + "description": "A vector in 2-D space composed of components (X, Y) with floating point precision.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector2D.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Vector4", + "description": "A 4-D homogeneous vector.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Vector4.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Quat", + "description": "Quaternion.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Quat.h", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + }, + "w": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z", + "w" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.LinearColor", + "description": "A linear, 32-bit/component floating point RGBA color.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Color.h", + "properties": { + "r": { + "type": "number" + }, + "g": { + "type": "number" + }, + "b": { + "type": "number" + }, + "a": { + "type": "number" + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + { + "type": "object", + "title": "/Script/CoreUObject.Rotator", + "description": "An orthogonal rotation in 3d space.\n@note The full C++ class is located here: Engine\\Source\\Runtime\\Core\\Public\\Math\\Rotator.h", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + } + ], + "description": "Value can be one of 14 types defined by Struct. The first 3 type(s) are specialized types for this context. Additional types may also be valid depending on usage." + } + }, + "required": [ + "struct" + ] + } + }, + "required": [ + "variable", + "defaultValue" + ] + } + }, + "required": [ + "moduleRef", + "entry" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ModuleTopology", + "description": "Updated topology of the module after the parameter is added", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a renderer to an emitter.\nCreates a new renderer of the specified type and adds it to the emitter's renderer list.\nReturns an FNiagaraExt_RendererRef with the new renderer's Index and RendererClass,\nusable directly with SetRendererData / GetRendererData without a follow-up topology call.", + "name": "NiagaraToolsets.NiagaraToolset_System.AddRenderer", + "inputSchema": { + "type": "object", + "properties": { + "newRendererLocation": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference specifying which emitter to add the renderer to", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "rendererClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "description": "The class of renderer to create (e.g., UNiagaraSpriteRendererProperties)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "newRendererLocation", + "rendererClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_RendererRef", + "description": "Renderer reference (Index + RendererClass) for the newly added renderer.", + "type": "object", + "properties": { + "rendererIndex": { + "type": "integer", + "description": "Index of this renderer within its owning emitter's renderer list. Pair with FNiagaraExt_StackItemReference::RendererIndex." + }, + "rendererClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "rendererIndex", + "rendererClass" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a module to a script stack.\nThe module will be inserted into the specified script's execution stack.\nReturns the module topology with all inputs walked (no input values \u2014 call GetModuleInputValues for values).", + "name": "NiagaraToolsets.NiagaraToolset_System.AddModule", + "inputSchema": { + "type": "object", + "properties": { + "moduleLocationRef": { + "title": "NiagaraExt_StackItemReference", + "description": "Reference specifying where to add the module", + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string" + }, + "scriptName": { + "type": "string" + }, + "moduleName": { + "type": "string", + "description": "Name of the module to reference. Requires a valid ScriptName." + }, + "rendererIndex": { + "type": "integer", + "description": "Index of a renderer to reference. Requires a valid EmitterName." + }, + "inputNameStack": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Input Name stack. Requires a valid ScriptName and ModuleName. For a top level module input this will be a single FName. For a dynamic input this could be a chain of several nested dynamic inputs." + } + }, + "required": [ + "system", + "emitterName", + "scriptName", + "moduleName", + "rendererIndex", + "inputNameStack" + ] + }, + "moduleAsset": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "The module script asset to add to the stack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "moduleLocationRef", + "moduleAsset" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ModuleTopology", + "description": "Topology of the newly added module with all inputs populated", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds an emitter to a Niagara System.\nThe new emitter will be based on the template emitter, inheriting its configuration and modules.\nReturns the full emitter topology (no input values \u2014 call GetEmitterInputValues for values).", + "name": "NiagaraToolsets.NiagaraToolset_System.AddEmitter", + "inputSchema": { + "type": "object", + "properties": { + "system": { + "type": "object", + "title": "/Script/Niagara.NiagaraSystem", + "description": "The Niagara System to add the emitter to", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "templateEmitter": { + "type": "object", + "title": "/Script/Niagara.NiagaraEmitter", + "description": "The emitter asset to use as a template for the new emitter", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "emitterName": { + "type": "string", + "description": "Name for the new emitter instance" + } + }, + "required": [ + "system", + "templateEmitter", + "emitterName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_EmitterTopology", + "description": "Topology of the newly added emitter with all scripts and modules walked", + "type": "object", + "properties": { + "emitterName": { + "type": "string", + "description": "Use as EmitterName in FNiagaraExt_StackItemReference." + }, + "bEnabled": { + "type": "boolean", + "description": "Disabled emitters still exist but produce no particles." + }, + "simTarget": { + "type": "string", + "title": "ENiagaraSimTarget", + "enum": [ + "CPUSim", + "GPUComputeSim" + ], + "description": "CPUSim or GPUComputeSim. Affects which Data Interfaces and features are available." + }, + "rendererClasses": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Distinct renderer classes on this emitter (de-duplicated set)." + }, + "emitterSpawnScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Emitter Spawn stack: modules run once when the emitter is created.", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "emitterUpdateScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Emitter Update stack: modules run once per frame at emitter scope (spawn rates, bursts, lifecycle).", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "particleSpawnScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Particle Spawn stack: modules run once per newly-spawned particle.", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "particleUpdateScript": { + "title": "NiagaraExt_ScriptStackTopology", + "description": "Particle Update stack: modules run once per particle per frame (forces, velocity, colour-over-life).", + "type": "object", + "properties": { + "scriptName": { + "type": "string", + "description": "Which of the six script stacks this represents: SystemSpawnScript, SystemUpdateScript, EmitterSpawnScript, EmitterUpdateScript, ParticleSpawnScript, ParticleUpdateScript." + }, + "modules": { + "type": "array", + "items": { + "title": "NiagaraExt_ModuleTopology", + "type": "object", + "properties": { + "moduleName": { + "type": "string", + "description": "Use as ModuleName in FNiagaraExt_StackItemReference." + }, + "enabled": { + "type": "boolean", + "description": "Disabled modules stay in the stack but don't execute." + }, + "moduleScript": { + "type": "object", + "title": "/Script/Niagara.NiagaraScript", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsSetParametersModule": { + "type": "boolean", + "description": "True if this module is a SetParameters (UNiagaraNodeAssignment) module rather than a regular script module." + }, + "inputs": { + "type": "array", + "items": { + "title": "NiagaraExt_StackInputTopology", + "type": "object", + "properties": { + "bIsVisible": { + "type": "boolean", + "description": "True when visible in the stack UI. False if hidden by static-switch / conditional logic or by a VisibleCondition." + }, + "bIsEditable": { + "type": "boolean", + "description": "True when the user can edit the value. Requires bIsVisible AND a passing EditCondition. SetStackInputData refuses writes when false." + }, + "bIsDynamic": { + "type": "boolean", + "description": "True when this input's value is provided by a dynamic input script. Call GetDynamicInputChain to retrieve the full chain topology and values." + }, + "bIsStaticSwitch": { + "type": "boolean", + "description": "True when this input is a static-switch parameter. Changing it recompiles the module and\nreshapes the visible/editable sub-input set \u2014 previously-hidden sub-inputs may become\nexposed, and vice versa." + }, + "name": { + "type": "string" + }, + "type": { + "type": "object", + "title": "ToolsetNiagaraTypeDefinition", + "description": "Wrapper struct for FNiagaraTypeDefinition that exposes only the UStruct pointer for JSON conversion.\n\nFNiagaraTypeDefinition is a complex struct with internal state. This wrapper simplifies\nJSON conversion by only exposing the Struct field, which is sufficient for reconstruction.", + "properties": { + "classStructOrEnum": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Reference to the UScriptStruct, UEnum, or UClass that defines this Niagara type.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "classStructOrEnum" + ] + } + }, + "required": [ + "bIsVisible", + "bIsEditable", + "bIsDynamic", + "bIsStaticSwitch", + "name", + "type" + ] + }, + "description": "All inputs on this module in walk order. Always populated." + } + }, + "required": [ + "moduleName", + "enabled", + "moduleScript", + "bIsSetParametersModule", + "inputs" + ] + }, + "description": "Modules in the stack, in execution order. Always populated." + } + }, + "required": [ + "scriptName", + "modules" + ] + }, + "renderers": { + "type": "array", + "items": { + "title": "NiagaraExt_RendererRef", + "type": "object", + "properties": { + "rendererIndex": { + "type": "integer", + "description": "Index of this renderer within its owning emitter's renderer list. Pair with FNiagaraExt_StackItemReference::RendererIndex." + }, + "rendererClass": { + "type": "object", + "title": "Class@/Script/Niagara.NiagaraRendererProperties", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "rendererIndex", + "rendererClass" + ] + }, + "description": "Renderer references (class + index). For property values call GetRendererData." + } + }, + "required": [ + "emitterName", + "bEnabled", + "simTarget", + "rendererClasses", + "emitterSpawnScript", + "emitterUpdateScript", + "particleSpawnScript", + "particleUpdateScript", + "renderers" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "NiagaraToolsets.NiagaraToolset_Assets": { + "name": "NiagaraToolsets.NiagaraToolset_Assets", + "version": "1.0", + "description": "Niagara Toolset for discovery of Niagara script assets.\n\nProvides:\n- GetAssetDiscoveryInfo: project-configured asset discovery groups\n- FindNiagaraScripts: asset registry search filtered by usage, visibility, name, and module usage bitmask\n- GetNiagaraScriptDigest: decoded asset-registry tags for a single script\n\nAll functions read from the asset registry without LoadObject. Pair with\nNiagaraToolset_System.AddModule to drop discovered modules into a stack.\n\nNote: FAssetData JSON serialization does not include the TagsAndValues map (it\nis not a UPROPERTY), so callers wanting decoded metadata for a result row from\nFindNiagaraScripts must round-trip through GetNiagaraScriptDigest.", + "tools": [ + { + "description": "Returns the decoded asset-registry tag metadata for a Niagara script asset.\n\nLooks up the asset by object path in the asset registry and reads its tags;\nno LoadObject is performed. Returned fields reflect the exposed (published)\nversion when the script uses FVersionedNiagaraScriptData versioning - the\nregistry never carries non-exposed-version metadata.", + "name": "NiagaraToolsets.NiagaraToolset_Assets.GetNiagaraScriptDigest", + "inputSchema": { + "type": "object", + "properties": { + "objectPath": { + "type": "string", + "description": "Full object path of the script (e.g. \"/Niagara/Modules/Spawn/Initialize Particle.Initialize Particle\")." + } + }, + "required": [ + "objectPath" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NiagaraExt_ScriptDigest", + "description": "Decoded digest. If the path is invalid or not a UNiagaraScript, an error is raised and a default-initialized digest is returned.", + "type": "object", + "properties": { + "objectPath": { + "type": "string", + "description": "Full object path: /Path/To/Package.AssetName" + }, + "packageName": { + "type": "string", + "description": "Long package name: /Path/To/Package" + }, + "assetName": { + "type": "string", + "description": "Asset name without package" + }, + "usage": { + "type": "string", + "title": "ENiagaraScriptUsage", + "enum": [ + "Function", + "Module", + "DynamicInput", + "ParticleSpawnScript", + "ParticleSpawnScriptInterpolated", + "ParticleUpdateScript", + "ParticleEventScript", + "ParticleSimulationStageScript", + "ParticleGPUComputeScript", + "EmitterSpawnScript", + "EmitterUpdateScript", + "SystemSpawnScript", + "SystemUpdateScript" + ], + "description": "Script kind: Module, DynamicInput, Function, or one of the stage scripts" + }, + "libraryVisibility": { + "type": "string", + "title": "ENiagaraScriptLibraryVisibility", + "enum": [ + "Invalid", + "Unexposed", + "Library", + "Hidden" + ], + "description": "Library visibility: Unexposed, Library (= \"Exposed\" in editor UI), or Hidden" + }, + "moduleUsageBitmask": { + "type": "integer", + "description": "Bitmask of stack contexts a Module is compatible with. 0 for non-Module scripts." + }, + "category": { + "type": "string", + "description": "Library category text (empty if unset)" + }, + "description": { + "type": "string", + "description": "Library description text (empty if unset)" + }, + "keywords": { + "type": "string", + "description": "Library search keywords (empty if unset)" + }, + "bDeprecated": { + "type": "boolean", + "description": "True if the script is marked deprecated" + }, + "bSuggested": { + "type": "boolean", + "description": "True if the script is marked suggested" + } + }, + "required": [ + "objectPath", + "packageName", + "assetName", + "usage", + "libraryVisibility", + "moduleUsageBitmask", + "category", + "description", + "keywords", + "bDeprecated", + "bSuggested" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the project's configured asset discovery groups.\nEach group describes a content directory's purpose and paths.", + "name": "NiagaraToolsets.NiagaraToolset_Assets.GetAssetDiscoveryInfo", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "NiagaraToolsetAssetDiscoveryGroup", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of what types of assets are in these paths and when to use them" + }, + "paths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Content directory paths containing assets for this group" + } + }, + "required": [ + "description", + "paths" + ] + }, + "description": "Configured asset discovery groups, or an empty array if none are configured in NiagaraToolsetsSettings." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Searches for UNiagaraScript assets matching the given filters.\n\nReads filterable metadata from asset registry tags only - no LoadObject required.\n\nTags reflect the exposed (published) version of versioned scripts; this\nfunction does not need a version filter and there is no way to discover\nnon-exposed versions through the asset registry.", + "name": "NiagaraToolsets.NiagaraToolset_Assets.FindNiagaraScripts", + "inputSchema": { + "type": "object", + "properties": { + "folderPath": { + "type": "string", + "description": "The folder to search within. Pass an empty string to search the entire project." + }, + "name": { + "type": "string", + "description": "If non-empty, only return assets whose name contains this substring (case-insensitive)." + }, + "usages": { + "type": "array", + "items": { + "type": "string", + "title": "ENiagaraScriptUsage", + "enum": [ + "Function", + "Module", + "DynamicInput", + "ParticleSpawnScript", + "ParticleSpawnScriptInterpolated", + "ParticleUpdateScript", + "ParticleEventScript", + "ParticleSimulationStageScript", + "ParticleGPUComputeScript", + "EmitterSpawnScript", + "EmitterUpdateScript", + "SystemSpawnScript", + "SystemUpdateScript" + ] + }, + "description": "If non-empty, only return assets whose Usage matches one of the listed values. Empty array = all usages allowed." + }, + "visibilities": { + "type": "array", + "items": { + "type": "string", + "title": "ENiagaraScriptLibraryVisibility", + "enum": [ + "Invalid", + "Unexposed", + "Library", + "Hidden" + ] + }, + "description": "If non-empty, only return assets whose LibraryVisibility matches one of the listed values. Empty array defaults to {Library} (the editor's \"Exposed\") - explicit override required to surface Unexposed or Hidden scripts." + }, + "moduleUsageBitmask": { + "type": "integer", + "description": "If non-zero, restricts results to Module scripts whose ModuleUsageBitmask shares at least one bit with this argument (any-match). Non-Module scripts are excluded when this is non-zero. Pass 0 to disable the bitmask gate." + }, + "bRecursive": { + "type": "boolean", + "description": "Whether to search subfolders. Ignored when FolderPath is empty (whole-project scan is always exhaustive)." + }, + "bIncludeDeprecated": { + "type": "boolean", + "description": "If false (default usage), assets whose exposed version has bDeprecated=true are excluded. Pass true only when the caller explicitly wants to surface deprecated assets (e.g. searching for the canonical replacement of a known deprecated module)." + } + }, + "required": [ + "folderPath", + "name", + "usages", + "visibilities", + "moduleUsageBitmask", + "bRecursive", + "bIncludeDeprecated" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "AssetData", + "type": "object", + "properties": { + "objectPath": { + "type": "string" + }, + "packageName": { + "type": "string", + "description": "The name of the package in which the asset is found, this is the full long package name such as /Game/Path/Package" + }, + "packagePath": { + "type": "string", + "description": "The path to the package in which the asset is found, this is /Game/Path with the Package stripped off" + }, + "assetName": { + "type": "string", + "description": "The name of the asset without the package" + }, + "assetClass": { + "type": "string" + }, + "assetClassPath": { + "title": "TopLevelAssetPath", + "description": "The path of the asset's class, e.g. /Script/Engine.StaticMesh", + "type": "object", + "properties": { + "packageName": { + "type": "string", + "description": "Name of the package containing the asset e.g. /Path/To/Package" + }, + "assetName": { + "type": "string", + "description": "Name of the asset within the package e.g. 'AssetName'" + } + }, + "required": [ + "packageName", + "assetName" + ] + } + }, + "required": [ + "objectPath", + "packageName", + "packagePath", + "assetName", + "assetClass", + "assetClassPath" + ] + }, + "description": "Array of AssetData entries for matching scripts. Use GetNiagaraScriptDigest to decode tag metadata for any row." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "GetAssetDiscoveryInfo": { + "error": "Toolset 'GetAssetDiscoveryInfo' not found. Available toolsets: ToolsetRegistry.AgentSkillToolset, ConfigSettingsToolset.ConfigSettingsToolset, EditorToolset.EditorAppToolset, EditorToolset.LogsToolset, DataflowAgent.DataflowAgentToolset, DataRegistryToolset.DataRegistryTools, NiagaraToolsets.NiagaraToolset_Info, NiagaraToolsets.NiagaraToolset_Component, NiagaraToolsets.NiagaraToolset_Blueprint, NiagaraToolsets.NiagaraToolset_System, NiagaraToolsets.NiagaraToolset_Assets, GASToolsets.GameplayCueToolset, GASToolsets.AttributeSetToolset, GASToolsets.AbilitySystemInspectorToolset, PCGToolset.PCGToolset, PCGToolset.PCGSpatialToolset, GameFeaturesToolset.GameFeaturesToolset, GameplayTagsToolset.GameplayTagsToolset, AutomationTestToolset.AutomationTestToolset, WorldConditionsToolset.WorldConditionTools, PluginToolset.PluginToolset, PhysicsToolsets.PhysicsAssetToolset, SemanticSearchToolset.SemanticSearchToolset, SlateInspectorToolset.SlateInspectorToolset, UMGToolSet.UMGToolSet, conversation_toolset.toolsets.conversation.ConversationTools, state_tree_toolset.toolsets.state_tree.StateTreeTools, editor_toolset.toolsets.actor.ActorTools, editor_toolset.toolsets.asset.AssetTools, editor_toolset.toolsets.blueprint.BlueprintTools, editor_toolset.toolsets.curve_table.CurveTableTools, editor_toolset.toolsets.data_asset.DataAssetTools, editor_toolset.toolsets.data_table.DataTableTools, editor_toolset.toolsets.material.MaterialTools, editor_toolset.toolsets.material_instance.MaterialInstanceTools, editor_toolset.toolsets.object.ObjectTools, editor_toolset.toolsets.primitive.PrimitiveTools, editor_toolset.toolsets.scene.SceneTools, editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools, editor_toolset.toolsets.static_mesh.StaticMeshTools, editor_toolset.toolsets.string_table.StringTableTools, editor_toolset.toolsets.programmatic.ProgrammaticToolset, editor_toolset.toolsets.texture.TextureTools, animation_toolset.toolsets.controlrig.ControlRigTools, animation_toolset.toolsets.sequencer.SequencerTools, animation_toolset.toolsets.keyframing.SequencerKeyframingTools, animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools, animation_toolset.toolsets.outliner.SequencerOutlinerTools, animation_toolset.toolsets.conditions.SequencerConditionTools, animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools, animation_toolset.toolsets.import_export.SequencerImportExportTools, aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools" + }, + "FindNiagaraScripts": { + "error": "Toolset 'FindNiagaraScripts' not found. Available toolsets: ToolsetRegistry.AgentSkillToolset, ConfigSettingsToolset.ConfigSettingsToolset, EditorToolset.EditorAppToolset, EditorToolset.LogsToolset, DataflowAgent.DataflowAgentToolset, DataRegistryToolset.DataRegistryTools, NiagaraToolsets.NiagaraToolset_Info, NiagaraToolsets.NiagaraToolset_Component, NiagaraToolsets.NiagaraToolset_Blueprint, NiagaraToolsets.NiagaraToolset_System, NiagaraToolsets.NiagaraToolset_Assets, GASToolsets.GameplayCueToolset, GASToolsets.AttributeSetToolset, GASToolsets.AbilitySystemInspectorToolset, PCGToolset.PCGToolset, PCGToolset.PCGSpatialToolset, GameFeaturesToolset.GameFeaturesToolset, GameplayTagsToolset.GameplayTagsToolset, AutomationTestToolset.AutomationTestToolset, WorldConditionsToolset.WorldConditionTools, PluginToolset.PluginToolset, PhysicsToolsets.PhysicsAssetToolset, SemanticSearchToolset.SemanticSearchToolset, SlateInspectorToolset.SlateInspectorToolset, UMGToolSet.UMGToolSet, conversation_toolset.toolsets.conversation.ConversationTools, state_tree_toolset.toolsets.state_tree.StateTreeTools, editor_toolset.toolsets.actor.ActorTools, editor_toolset.toolsets.asset.AssetTools, editor_toolset.toolsets.blueprint.BlueprintTools, editor_toolset.toolsets.curve_table.CurveTableTools, editor_toolset.toolsets.data_asset.DataAssetTools, editor_toolset.toolsets.data_table.DataTableTools, editor_toolset.toolsets.material.MaterialTools, editor_toolset.toolsets.material_instance.MaterialInstanceTools, editor_toolset.toolsets.object.ObjectTools, editor_toolset.toolsets.primitive.PrimitiveTools, editor_toolset.toolsets.scene.SceneTools, editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools, editor_toolset.toolsets.static_mesh.StaticMeshTools, editor_toolset.toolsets.string_table.StringTableTools, editor_toolset.toolsets.programmatic.ProgrammaticToolset, editor_toolset.toolsets.texture.TextureTools, animation_toolset.toolsets.controlrig.ControlRigTools, animation_toolset.toolsets.sequencer.SequencerTools, animation_toolset.toolsets.keyframing.SequencerKeyframingTools, animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools, animation_toolset.toolsets.outliner.SequencerOutlinerTools, animation_toolset.toolsets.conditions.SequencerConditionTools, animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools, animation_toolset.toolsets.import_export.SequencerImportExportTools, aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools" + }, + "GetNiagaraScriptDigest": { + "error": "Toolset 'GetNiagaraScriptDigest' not found. Available toolsets: ToolsetRegistry.AgentSkillToolset, ConfigSettingsToolset.ConfigSettingsToolset, EditorToolset.EditorAppToolset, EditorToolset.LogsToolset, DataflowAgent.DataflowAgentToolset, DataRegistryToolset.DataRegistryTools, NiagaraToolsets.NiagaraToolset_Info, NiagaraToolsets.NiagaraToolset_Component, NiagaraToolsets.NiagaraToolset_Blueprint, NiagaraToolsets.NiagaraToolset_System, NiagaraToolsets.NiagaraToolset_Assets, GASToolsets.GameplayCueToolset, GASToolsets.AttributeSetToolset, GASToolsets.AbilitySystemInspectorToolset, PCGToolset.PCGToolset, PCGToolset.PCGSpatialToolset, GameFeaturesToolset.GameFeaturesToolset, GameplayTagsToolset.GameplayTagsToolset, AutomationTestToolset.AutomationTestToolset, WorldConditionsToolset.WorldConditionTools, PluginToolset.PluginToolset, PhysicsToolsets.PhysicsAssetToolset, SemanticSearchToolset.SemanticSearchToolset, SlateInspectorToolset.SlateInspectorToolset, UMGToolSet.UMGToolSet, conversation_toolset.toolsets.conversation.ConversationTools, state_tree_toolset.toolsets.state_tree.StateTreeTools, editor_toolset.toolsets.actor.ActorTools, editor_toolset.toolsets.asset.AssetTools, editor_toolset.toolsets.blueprint.BlueprintTools, editor_toolset.toolsets.curve_table.CurveTableTools, editor_toolset.toolsets.data_asset.DataAssetTools, editor_toolset.toolsets.data_table.DataTableTools, editor_toolset.toolsets.material.MaterialTools, editor_toolset.toolsets.material_instance.MaterialInstanceTools, editor_toolset.toolsets.object.ObjectTools, editor_toolset.toolsets.primitive.PrimitiveTools, editor_toolset.toolsets.scene.SceneTools, editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools, editor_toolset.toolsets.static_mesh.StaticMeshTools, editor_toolset.toolsets.string_table.StringTableTools, editor_toolset.toolsets.programmatic.ProgrammaticToolset, editor_toolset.toolsets.texture.TextureTools, animation_toolset.toolsets.controlrig.ControlRigTools, animation_toolset.toolsets.sequencer.SequencerTools, animation_toolset.toolsets.keyframing.SequencerKeyframingTools, animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools, animation_toolset.toolsets.outliner.SequencerOutlinerTools, animation_toolset.toolsets.conditions.SequencerConditionTools, animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools, animation_toolset.toolsets.import_export.SequencerImportExportTools, aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools" + }, + "GASToolsets.GameplayCueToolset": { + "name": "GASToolsets.GameplayCueToolset", + "version": "1.0", + "description": "Provides tools for inspecting, executing, and managing gameplay cues and their notify assets.", + "tools": [ + { + "description": "Removes a gameplay cue tag from the project.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "GASToolsets.GameplayCueToolset.RemoveCueTag", + "inputSchema": { + "type": "object", + "properties": { + "cueTag": { + "type": "string", + "description": "The fully-qualified cue tag to remove (e.g. \"GameplayCue.Character.Death\")." + } + }, + "required": [ + "cueTag" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the tag was removed successfully." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns gameplay cue tags registered in the project.", + "name": "GASToolsets.GameplayCueToolset.ListCues", + "inputSchema": { + "type": "object", + "properties": { + "parentTag": { + "type": "string", + "description": "If non-empty, only cues descending from this tag are returned. For example, passing \"GameplayCue.Character\" returns all cues under that namespace. Pass an empty string to return all tags under the \"GameplayCue\" root." + } + }, + "required": [ + "parentTag" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A sorted list of fully-qualified gameplay cue tag names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns information about a specific gameplay cue, including its notify asset.", + "name": "GASToolsets.GameplayCueToolset.GetCueInfo", + "inputSchema": { + "type": "object", + "properties": { + "cueTag": { + "type": "string", + "description": "The fully-qualified gameplay cue tag, e.g. \"GameplayCue.Character.Death\"." + } + }, + "required": [ + "cueTag" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "GameplayCueInfo", + "description": "The cue's notify asset path and type (\"Static\", \"Actor\", or \"None\"). Raises a script error if the tag does not exist.", + "type": "object", + "properties": { + "tag": { + "type": "string", + "description": "The fully-qualified gameplay cue tag (e.g. \"GameplayCue.Character.Death\")." + }, + "notifyAssetPath": { + "type": "string", + "description": "The object path to the associated GameplayCueNotify asset.\nEmpty if no notify has been found for this tag in the asset registry." + }, + "notifyType": { + "type": "string", + "description": "The notify base class: \"Static\", \"Actor\", or \"None\" if no notify is found." + } + }, + "required": [ + "tag", + "notifyAssetPath", + "notifyType" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns gameplay cue tags that have no corresponding GameplayCueNotify asset in the project.\nTags without notifies produce no visible effect when triggered at runtime.", + "name": "GASToolsets.GameplayCueToolset.FindCueTagsWithoutNotifies", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A sorted list of gameplay cue tag names with no associated notify assets." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all GameplayCueNotify assets found in the project via the asset registry.", + "name": "GASToolsets.GameplayCueToolset.FindCueNotifyAssets", + "inputSchema": { + "type": "object", + "properties": { + "parentTag": { + "type": "string", + "description": "If non-empty, only notifies whose cue tag descends from this tag are returned. Pass an empty string to return all notify assets in the project." + } + }, + "required": [ + "parentTag" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "GameplayCueNotifyInfo", + "type": "object", + "properties": { + "cueTag": { + "type": "string", + "description": "The gameplay cue tag this notify responds to." + }, + "assetPath": { + "type": "string", + "description": "The full object path to the asset (e.g. \"/Game/Effects/GCN_Death.GCN_Death\")." + }, + "assetName": { + "type": "string", + "description": "The asset name without the package path (e.g. \"GCN_Death\")." + }, + "notifyType": { + "type": "string", + "description": "\"Static\" for UGameplayCueNotify_Static subclasses, \"Actor\" for AGameplayCueNotify_Actor subclasses." + } + }, + "required": [ + "cueTag", + "assetPath", + "assetName", + "notifyType" + ] + }, + "description": "A list of notify descriptors, sorted by cue tag." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Executes a gameplay cue non-replicated on the currently selected actor in the editor.\nUseful for previewing cue effects without network replication.\nRequires a PIE session or a configured GameplayCueManager to produce visible results.", + "name": "GASToolsets.GameplayCueToolset.ExecuteCueOnSelectedActor", + "inputSchema": { + "type": "object", + "properties": { + "cueTag": { + "type": "string", + "description": "The fully-qualified tag of the cue to execute, e.g. \"GameplayCue.Character.Death\"." + }, + "normalizedMagnitude": { + "type": "number", + "description": "A normalized (0.0-1.0) magnitude value passed to the cue." + }, + "location": { + "title": "Vector", + "description": "World-space location parameter passed to the cue.", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "normal": { + "title": "Vector", + "description": "World-space direction parameter passed to the cue.", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + }, + "required": [ + "cueTag", + "normalizedMagnitude", + "location", + "normal" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the cue was dispatched. Raises a script error if no actor is selected or the tag does not exist." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new GameplayCueNotify Blueprint asset at the specified content browser location.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "GASToolsets.GameplayCueToolset.CreateCueNotifyAsset", + "inputSchema": { + "type": "object", + "properties": { + "cueTag": { + "type": "string", + "description": "The gameplay cue tag the notify should respond to. The tag must already exist; create it first with AddCueTag if needed." + }, + "packagePath": { + "type": "string", + "description": "The content browser folder for the asset, e.g. \"/Game/Effects/Cues\"." + }, + "assetName": { + "type": "string", + "description": "The file name for the new asset, e.g. \"GCN_CharacterDeath\"." + }, + "bIsActor": { + "type": "boolean", + "description": "If true, creates a GameplayCueNotify_Actor (spawned actor in the world). If false, creates a GameplayCueNotify_Static (instant effect, no spawned actor)." + } + }, + "required": [ + "cueTag", + "packagePath", + "assetName", + "bIsActor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The object path of the created asset, or an empty string on failure." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a new gameplay cue tag to the project.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "GASToolsets.GameplayCueToolset.AddCueTag", + "inputSchema": { + "type": "object", + "properties": { + "cueTag": { + "type": "string", + "description": "The fully-qualified tag to add. Must begin with \"GameplayCue.\" (e.g. \"GameplayCue.Character.Death\")." + }, + "comment": { + "type": "string", + "description": "An optional developer comment describing the cue's purpose.", + "default": "/**\n\t * Adds a new gameplay cue tag to the project.\n\t * This should ONLY be called after getting explicit direction or permission from the user.\n\t * @param CueTag The fully-qualified tag to add. Must begin with \"GameplayCue.\"\n\t * (e.g. \"GameplayCue.Character.Death\").\n\t * @param Comment An optional developer comment describing the cue's purpose.\n\t * @return True if the tag was added successfully.\n\t */" + } + }, + "required": [ + "cueTag" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the tag was added successfully." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "GASToolsets.AttributeSetToolset": { + "name": "GASToolsets.AttributeSetToolset", + "version": "1.0", + "description": "Provides tools for discovering AttributeSet classes and their gameplay attributes.", + "tools": [ + { + "description": "Returns the gameplay attributes defined on a specific AttributeSet class.", + "name": "GASToolsets.AttributeSetToolset.ListAttributes", + "inputSchema": { + "type": "object", + "properties": { + "className": { + "type": "string", + "description": "The UClass name to look up, e.g. \"UMyHealthSet\". Raises a script error if the class is not found or is not an AttributeSet subclass." + } + }, + "required": [ + "className" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "GameplayAttributeInfo", + "type": "object", + "properties": { + "attributeName": { + "type": "string", + "description": "The short attribute name (e.g. \"Health\")." + }, + "fullName": { + "type": "string", + "description": "The fully-qualified attribute name including the set class (e.g. \"UMyHealthSet.Health\")." + }, + "setClassName": { + "type": "string", + "description": "The name of the AttributeSet class that owns this attribute (e.g. \"UMyHealthSet\")." + } + }, + "required": [ + "attributeName", + "fullName", + "setClassName" + ] + }, + "description": "A list of attribute descriptors defined on the class." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all AttributeSet subclasses found in the project, including their attributes.\nCovers both native C++ subclasses and Blueprint subclasses discovered via the asset registry.", + "name": "GASToolsets.AttributeSetToolset.FindAttributeSetClasses", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "AttributeSetClassInfo", + "type": "object", + "properties": { + "className": { + "type": "string", + "description": "The UClass name of the attribute set (e.g. \"UMyHealthSet\")." + }, + "assetPath": { + "type": "string", + "description": "The object path to the Blueprint asset, or empty for native C++ classes." + }, + "attributes": { + "type": "array", + "items": { + "title": "GameplayAttributeInfo", + "type": "object", + "properties": { + "attributeName": { + "type": "string", + "description": "The short attribute name (e.g. \"Health\")." + }, + "fullName": { + "type": "string", + "description": "The fully-qualified attribute name including the set class (e.g. \"UMyHealthSet.Health\")." + }, + "setClassName": { + "type": "string", + "description": "The name of the AttributeSet class that owns this attribute (e.g. \"UMyHealthSet\")." + } + }, + "required": [ + "attributeName", + "fullName", + "setClassName" + ] + }, + "description": "The gameplay attributes defined on this set." + } + }, + "required": [ + "className", + "assetPath", + "attributes" + ] + }, + "description": "A list of attribute set descriptors sorted by class name." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "GASToolsets.AbilitySystemInspectorToolset": { + "name": "GASToolsets.AbilitySystemInspectorToolset", + "version": "1.0", + "description": "Provides tools for inspecting the runtime state of an AbilitySystemComponent.\nEach function takes a direct actor pointer and raises a script error if the\nactor is null or has no AbilitySystemComponent.", + "tools": [ + { + "description": "Returns all abilities granted to the actor's AbilitySystemComponent.", + "name": "GASToolsets.AbilitySystemInspectorToolset.GetGrantedAbilities", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "The target actor.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "GrantedAbilityInfo", + "type": "object", + "properties": { + "abilityName": { + "type": "string", + "description": "The name of the ability class (e.g. \"GA_Sprint\")." + }, + "level": { + "type": "integer", + "description": "The level at which this ability was granted." + }, + "bIsActive": { + "type": "boolean", + "description": "True if the ability is currently executing (at least one active instance)." + } + }, + "required": [ + "abilityName", + "level", + "bIsActive" + ] + }, + "description": "A list of granted ability summaries sorted by ability name. Raises a script error if Actor is null or has no ASC." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the current base and modified values of all gameplay attributes\non the actor's AbilitySystemComponent.", + "name": "GASToolsets.AbilitySystemInspectorToolset.GetAttributeValues", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "The target actor.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RuntimeAttributeValue", + "type": "object", + "properties": { + "attributeName": { + "type": "string", + "description": "The short attribute name (e.g. \"Health\")." + }, + "fullName": { + "type": "string", + "description": "The fully-qualified name including the owning set (e.g. \"UMyHealthSet.Health\")." + }, + "setClassName": { + "type": "string", + "description": "The name of the AttributeSet class that owns this attribute (e.g. \"UMyHealthSet\")." + }, + "baseValue": { + "type": "number", + "description": "The permanent base value, unaffected by temporary modifiers." + }, + "currentValue": { + "type": "number", + "description": "The current value after all active modifiers are applied." + } + }, + "required": [ + "attributeName", + "fullName", + "setClassName", + "baseValue", + "currentValue" + ] + }, + "description": "A list of attribute values sorted by full name. Raises a script error if Actor is null or has no ASC." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the gameplay tags currently owned by the actor's\nAbilitySystemComponent (includes loose tags, effect-granted tags, etc.).", + "name": "GASToolsets.AbilitySystemInspectorToolset.GetActiveTags", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "The target actor.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A sorted list of gameplay tag name strings. Raises a script error if Actor is null or has no ASC." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all gameplay effects currently active on the actor's\nAbilitySystemComponent.", + "name": "GASToolsets.AbilitySystemInspectorToolset.GetActiveEffects", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "The target actor.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "ActiveEffectInfo", + "type": "object", + "properties": { + "effectName": { + "type": "string", + "description": "The name of the GameplayEffect class (e.g. \"GE_Burning\")." + }, + "stackCount": { + "type": "integer", + "description": "Current stack count. 1 for non-stacking effects." + }, + "totalDuration": { + "type": "number", + "description": "Total duration in seconds. -1 means infinite." + }, + "remainingDuration": { + "type": "number", + "description": "Remaining duration in seconds. -1 means infinite." + }, + "grantedTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Tags granted to the owner by this effect." + } + }, + "required": [ + "effectName", + "stackCount", + "totalDuration", + "remainingDuration", + "grantedTags" + ] + }, + "description": "A list of active effect summaries sorted by effect name. Raises a script error if Actor is null or has no ASC." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "PCGToolset.PCGToolset": { + "name": "PCGToolset.PCGToolset", + "version": "1.0", + "description": "Toolset for building and modifying PCG graphs", + "tools": [ + { + "description": "Updates a node by changing its params and/or title.", + "name": "PCGToolset.PCGToolset.UpdateNode", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The node to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "jsonParams": { + "type": "string", + "description": "The Json string representing a dictionary of the params to override. Optional. Default is empty. Only non-default params need be included" + }, + "nodeTitle": { + "type": "string", + "description": "The Display Title of the node. Optional. Default is empty. Empty will keep the old title" + } + }, + "required": [ + "node", + "jsonParams", + "nodeTitle" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Updates an existing comment box with new nodes and value.\n Note: If the bounding box of the nodes include other nodes, they will be included in the comment.", + "name": "PCGToolset.PCGToolset.UpdateCommentBox", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to add comment to.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "commentId": { + "type": "string", + "description": "The unique id of the comment to update." + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "The list of nodes to include in the comment box. If empty, the box will keep its current dimensions." + }, + "comment": { + "type": "string", + "description": "The new comment to put on the comment box. If empty, will keep the same text as it was. Default is empty.", + "default": "/**\n\t * Updates an existing comment box with new nodes and value. \n\t * Note: If the bounding box of the nodes include other nodes, they will be included in the comment.\n\t *\n\t * @param Graph - Graph to add comment to.\n\t * @param CommentId - The unique id of the comment to update.\n\t * @param Nodes - The list of nodes to include in the comment box. If empty, the box will keep its current dimensions.\n\t * @param Comment - The new comment to put on the comment box. If empty, will keep the same text as it was. Default is empty.\n\t * @param Color - The color of the comment box. Defaults to White\n\t * @return boolean representing success/failed\n\t */" + }, + "color": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "The color of the comment box. Defaults to White", + "default": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + } + } + }, + "required": [ + "graph", + "commentId", + "nodes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Spawns a PCG Volume with associated Graph Instance into the scene, optionally with Graph Param overrides.", + "name": "PCGToolset.PCGToolset.SpawnGraphInstance", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "The PCG graph to spawn an instance of", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string", + "description": "The name of the PCGVolume actor to spawn in the scene." + }, + "transform": { + "type": "object", + "title": "ToolsetTransform", + "description": "The transform to use for the new PCGVolume actor. Place at the origin unless there is a reason not to and use default scale3D of {\"x\": 25,\"y\": 25,\"z\": 10}", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "jsonParams": { + "type": "string", + "description": "(Optional) JSON string representing JsonObject for the params to set. MUST be in format: {{\"property_1_name\": \"property_1_value\"}, ...} The default values for the graph params will be used if not set." + } + }, + "required": [ + "graph", + "name", + "transform", + "jsonParams" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PCGGraphInstanceInfo", + "description": "UStruct with information of the created actor and the corresponding graph instance", + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/PCG.PCGVolume", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor", + "graph" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Change the comment on the specified node.", + "name": "PCGToolset.PCGToolset.SetNodeComment", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The node to set the comment on.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "nodeComment": { + "type": "string", + "description": "The comment attached to the node." + } + }, + "required": [ + "node", + "nodeComment" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds one or more graph user parameters to a specific PCG graph, such that they will be overridable in per graph instance.", + "name": "PCGToolset.PCGToolset.SetGraphParams", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to add graph parameter to", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "params": { + "type": "array", + "items": { + "title": "PCGParamDefinition", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "title": "EPCGMetadataTypes", + "enum": [ + "Float", + "Double", + "Integer32", + "Integer64", + "Vector2", + "Vector", + "Vector4", + "Quaternion", + "Transform", + "String", + "Boolean", + "Rotator", + "Name", + "SoftObjectPath", + "SoftClassPath", + "EndLegacyTypes", + "Byte", + "Text", + "Enum", + "Struct", + "Object", + "SoftObject", + "Class", + "SoftClass", + "Count", + "Unknown" + ] + }, + "description": { + "type": "string" + }, + "containerType": { + "type": "string", + "title": "EPropertyBagContainerType", + "enum": [ + "None", + "Array", + "Set", + "Map", + "Count" + ] + }, + "defaultValueJson": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "description", + "containerType", + "defaultValueJson" + ] + }, + "description": "TArray An array of UStruct for Name, Type, Description, ContainerType (optional) and DefaultValueJson (optional). If user explicitly want special default values the DefaultValueJson MUST be set, otherwise OMIT DefaultValueJson for standard UE default values!" + } + }, + "required": [ + "graph", + "params" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the graph instance params of a specific actor, actor MUST have a graph instance", + "name": "PCGToolset.PCGToolset.SetGraphInstanceParams", + "inputSchema": { + "type": "object", + "properties": { + "pCGVolume": { + "type": "object", + "title": "/Script/PCG.PCGVolume", + "description": "The actor to set graph instance params for", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "jsonParams": { + "type": "string", + "description": "JSON string representing JsonObject for the params to set. MUST be in format: {{\"property_1_name\": \"property_1_value\"}, ...}" + } + }, + "required": [ + "pCGVolume", + "jsonParams" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the description of a PCGGraph", + "name": "PCGToolset.PCGToolset.SetGraphDescription", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to set description of.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": { + "type": "string", + "description": "New description of graph" + } + }, + "required": [ + "graph", + "description" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Resets the given graph instance params back to the graph's default values. Actor MUST have a graph instance.", + "name": "PCGToolset.PCGToolset.ResetGraphInstanceParams", + "inputSchema": { + "type": "object", + "properties": { + "pCGVolume": { + "type": "object", + "title": "/Script/PCG.PCGVolume", + "description": "The actor to reset graph instance params for.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "paramNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Names of the parameters to reset." + } + }, + "required": [ + "pCGVolume", + "paramNames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Change the position of node.", + "name": "PCGToolset.PCGToolset.RepositionNode", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The node to modify the position.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "xPositionIdx": { + "type": "integer", + "description": "The X coordinate of the position of the node in the editor." + }, + "yPositionIdx": { + "type": "integer", + "description": "The Y coordinate of the position of the node in the editor." + } + }, + "required": [ + "node", + "xPositionIdx", + "yPositionIdx" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes the node from the graph, will also remove edges connected to the node.", + "name": "PCGToolset.PCGToolset.RemoveNode", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "The graph to remove the node from.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The node to remove.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph", + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes graph parameters to a specific PCG graph, such that they are not overridable anymore.", + "name": "PCGToolset.PCGToolset.RemoveGraphParams", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to remove graph parameter(s) from", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "paramNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of existing param names that will be removed." + } + }, + "required": [ + "graph", + "paramNames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a comment box from the graph. Does not affect the nodes it contains.", + "name": "PCGToolset.PCGToolset.RemoveCommentBox", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to remove the comment from.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "commentId": { + "type": "string", + "description": "The unique id of the comment to remove." + } + }, + "required": [ + "graph", + "commentId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a list of available native PCG node type names.", + "name": "PCGToolset.PCGToolset.ListNativeNodes", + "inputSchema": { + "type": "object", + "properties": { + "bCommonOnly": { + "type": "boolean", + "description": "Whether to only return the commonly used Native nodes. Only use bCommonOnly = false if the user specifically asks for it.", + "default": true + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of native node type names" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets all actors with a PCG graph instance in the scene.", + "name": "PCGToolset.PCGToolset.ListGraphInstances", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "PCGGraphInstanceInfo", + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/PCG.PCGVolume", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor", + "graph" + ] + }, + "description": "Array of FPCGGraphInstanceInfo for all actors with a graph instance" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists the PCG graphs that can be used with the Subgraph native node. Only these graphs should be used with\nthe Subgraph native node.", + "name": "PCGToolset.PCGToolset.ListAvailableSubgraphs", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of graph asset paths that can be used with the Subgraph native node" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns node details including name, position, and all parameter values.", + "name": "PCGToolset.PCGToolset.GetNodeInfo", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The node to get info from.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PCGNodeInfo", + "description": "FPCGNodeInfo with node details including name, position, type, and parameter overrides", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "position": { + "type": "string" + }, + "title": { + "type": "string" + }, + "bEnabled": { + "type": "boolean" + }, + "comment": { + "type": "string" + }, + "nodeType": { + "type": "string" + }, + "paramOverrides": { + "type": "object", + "title": "FInstancedPropertyBag" + } + }, + "required": [ + "name", + "path", + "position", + "title", + "bEnabled", + "comment", + "nodeType", + "paramOverrides" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a JSON Data View of a specific node's output data from the last graph execution.\nOn first call, enables inspection so future ExecuteGraphInstance calls store per-node data.\nIf no inspection data exists, returns an error prompting re-execution.\n\nIMPORTANT: Inspection state is shared at the graph asset level. If multiple actors use the\nsame graph, you MUST call this tool (and ExecuteGraphInstance) on only one actor at a time.\nWait for each call to fully complete before calling on the next actor. Concurrent calls on\nactors sharing the same graph will cause a freeze.", + "name": "PCGToolset.PCGToolset.GetNodeDataView", + "inputSchema": { + "type": "object", + "properties": { + "pCGVolume": { + "type": "object", + "title": "/Script/PCG.PCGVolume", + "description": "The PCG Volume whose graph was executed.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The node whose output to inspect.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "pinLabel": { + "type": "string", + "description": "Output pin label to read. Defaults to \"Out\".", + "default": "Out" + }, + "attributeName": { + "type": "string", + "description": "Filter to a single attribute/property (e.g. \"$Position\", \"$Density\", \"MyCustomAttr\"). Empty = all attributes." + }, + "startIndex": { + "type": "integer", + "description": "Element range start, inclusive, 0-based. Default 0.", + "default": 0 + }, + "endIndex": { + "type": "integer", + "description": "Element range end, exclusive. -1 means all elements (Python slice convention). Default -1.", + "default": -1 + } + }, + "required": [ + "pCGVolume", + "node", + "attributeName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "JSON string with the data view contents" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the schema for a PCG node type including input/output pins,\nparameters, and their types.", + "name": "PCGToolset.PCGToolset.GetNativeNodeSchema", + "inputSchema": { + "type": "object", + "properties": { + "nodeName": { + "type": "string", + "description": "Node name" + } + }, + "required": [ + "nodeName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PCGNativeNodeSchema", + "description": "FPCGNativeNodeSchema with node name, description, properties schema (JSON), input/output pins", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "propertiesSchema": { + "type": "string" + }, + "inputPins": { + "type": "array", + "items": { + "title": "PCGPinInfo", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "description" + ] + } + }, + "outputPins": { + "type": "array", + "items": { + "title": "PCGPinInfo", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "description" + ] + } + } + }, + "required": [ + "name", + "description", + "propertiesSchema", + "inputPins", + "outputPins" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the complete structure of a PCG graph including all nodes,\nconnections, exposed parameters, and comment boxes.", + "name": "PCGToolset.PCGToolset.GetGraphStructure", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to inspect", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PCGGraphStructure", + "description": "FPCGGraphStructure with graph name, description, nodes, and edges", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "nodes": { + "type": "array", + "items": { + "title": "PCGNodeInfo", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "position": { + "type": "string" + }, + "title": { + "type": "string" + }, + "bEnabled": { + "type": "boolean" + }, + "comment": { + "type": "string" + }, + "nodeType": { + "type": "string" + }, + "paramOverrides": { + "type": "object", + "title": "FInstancedPropertyBag" + } + }, + "required": [ + "name", + "path", + "position", + "title", + "bEnabled", + "comment", + "nodeType", + "paramOverrides" + ] + } + }, + "edges": { + "type": "array", + "items": { + "title": "PCGEdgeInfo", + "type": "object", + "properties": { + "srcNode": { + "type": "string" + }, + "srcPin": { + "type": "string" + }, + "destNode": { + "type": "string" + }, + "destPin": { + "type": "string" + } + }, + "required": [ + "srcNode", + "srcPin", + "destNode", + "destPin" + ] + } + } + }, + "required": [ + "name", + "description", + "nodes", + "edges" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the schema for a PCG Graph's graph parameters", + "name": "PCGToolset.PCGToolset.GetGraphSchema", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to get the graph parameters of.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PCGGraphSchema", + "description": "FPCGGraphSchema with graph name, params schema (JSON), input/output pins", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "graphParamsSchema": { + "type": "string" + }, + "inputPins": { + "type": "array", + "items": { + "title": "PCGPinInfo", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "description" + ] + } + }, + "outputPins": { + "type": "array", + "items": { + "title": "PCGPinInfo", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "description" + ] + } + } + }, + "required": [ + "name", + "graphParamsSchema", + "inputPins", + "outputPins" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the graph instance params of a specific actor, actor MUST have a graph instance", + "name": "PCGToolset.PCGToolset.GetGraphInstanceParams", + "inputSchema": { + "type": "object", + "properties": { + "pCGVolume": { + "type": "object", + "title": "/Script/PCG.PCGVolume", + "description": "The actor to get graph instance params from", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "pCGVolume" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "FInstancedPropertyBag", + "description": "FInstancedPropertyBag containing the filtered graph instance parameters" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the description of a PCG graph.", + "name": "PCGToolset.PCGToolset.GetGraphDescription", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to get the description of.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The graph's description text, or empty string if the graph has no description set." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Executes the graph instance and returns any issues encountered during execution.", + "name": "PCGToolset.PCGToolset.ExecuteGraphInstance", + "inputSchema": { + "type": "object", + "properties": { + "pCGVolume": { + "type": "object", + "title": "/Script/PCG.PCGVolume", + "description": "The PCG Volume whose graph instance to execute.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "pCGVolume" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "PCGNodeExecutionMessage", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "reporterNode": { + "type": "string" + } + }, + "required": [ + "message", + "severity", + "reporterNode" + ] + }, + "description": "Array of messages emitted while executing the graph instance (empty on success with no issues)" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Triggers the user to draw a spline in the viewport to be used later in the world building. Waits for the user to be done.", + "name": "PCGToolset.PCGToolset.DrawSpline", + "inputSchema": { + "type": "object", + "properties": { + "actorLabel": { + "type": "string", + "description": "The label of the actor created or if bRedraw, the label of the actor to redraw the spline" + }, + "actorTag": { + "type": "string", + "description": "Tag assigned to the actor" + }, + "bRedraw": { + "type": "boolean", + "description": "false: creates a new actor with the spline. true: find an actor with the label, and replaces its spline." + }, + "bClosedSpline": { + "type": "boolean", + "description": "true: closed spline (region) false: path." + } + }, + "required": [ + "actorLabel", + "actorTag", + "bRedraw", + "bClosedSpline" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "description": "Always null", + "type": "null" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes the edge between two nodes connected to the specified pins.", + "name": "PCGToolset.PCGToolset.DisconnectNodePins", + "inputSchema": { + "type": "object", + "properties": { + "fromNode": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The source node of the edge to add.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "fromPinLabel": { + "type": "string", + "description": "The label of the source pin of the source node." + }, + "toNode": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The destination node of the edge to add.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "toPinLabel": { + "type": "string", + "description": "The label of the destination pin of the destination node." + } + }, + "required": [ + "fromNode", + "fromPinLabel", + "toNode", + "toPinLabel" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "boolean representing success/failed" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new saved PCG graph asset.", + "name": "PCGToolset.PCGToolset.CreateGraph", + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name for the new PCG graph asset (e.g., \"PCG_ForestScatter\")" + }, + "path": { + "type": "string", + "description": "Content folder path where the asset should be created. Defaults to \"/Game/PCG\"", + "default": "/Game/PCG" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "The created PCG graph", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add an edge between two nodes connected to the specified pins.", + "name": "PCGToolset.PCGToolset.ConnectNodePins", + "inputSchema": { + "type": "object", + "properties": { + "fromNode": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The source node of the edge to add.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "fromPinLabel": { + "type": "string", + "description": "The label of the source pin of the source node." + }, + "toNode": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The destination node of the edge to add.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "toPinLabel": { + "type": "string", + "description": "The label of the destination pin of the destination node." + } + }, + "required": [ + "fromNode", + "fromPinLabel", + "toNode", + "toPinLabel" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "The list of nodes (conversions and/or filters) that were added to allow the connection to work." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a subgraph node to the graph.", + "name": "PCGToolset.PCGToolset.AddSubgraphNode", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "subGraphForNode": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "The subgraph to use in the added node.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "nodeName": { + "type": "string", + "description": "The name of the added node. (Must be unique identifier in the graph)" + }, + "jsonParams": { + "type": "string", + "description": "The Json string representing a dictionary of the params to override on the graph. Optional. Default is empty. Only non-default params need be included" + }, + "nodeTitle": { + "type": "string", + "description": "The Display Title of the node. Optional. Default is empty." + }, + "nodeComment": { + "type": "string", + "description": "The comment attached to the node, if needed. Default is empty and will clear the comment." + }, + "xPositionIdx": { + "type": "integer", + "description": "The X coordinate of the position of the node in the editor. Optional. Default is 0. Typical node size X is 200", + "default": 0 + }, + "yPositionIdx": { + "type": "integer", + "description": "The Y coordinate of the position of the node in the editor. Optional. Default is 0. Typical node size Y is 100", + "default": 0 + } + }, + "required": [ + "graph", + "subGraphForNode", + "nodeName", + "jsonParams", + "nodeTitle", + "nodeComment" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The Added Node object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a native node to the graph.", + "name": "PCGToolset.PCGToolset.AddNode", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "nativeNodeType": { + "type": "string", + "description": "The native type of the added node." + }, + "nodeName": { + "type": "string", + "description": "The name of the added node. (Must be unique identifier in the graph)" + }, + "jsonParams": { + "type": "string", + "description": "The Json string representing a dictionary of the params to set on the node. Optional. Default is empty. Only non-default params need be included." + }, + "nodeTitle": { + "type": "string", + "description": "The Display Title of the node. Optional. Default is empty." + }, + "nodeComment": { + "type": "string", + "description": "The comment attached to the node, if needed. Default is empty." + }, + "xPositionIdx": { + "type": "integer", + "description": "The X coordinate of the position of the node in the editor. Optional. Default is 0. Typical node size X is 200", + "default": 0 + }, + "yPositionIdx": { + "type": "integer", + "description": "The Y coordinate of the position of the node in the editor. Optional. Default is 0. Typical node size Y is 100", + "default": 0 + } + }, + "required": [ + "graph", + "nativeNodeType", + "nodeName", + "jsonParams", + "nodeTitle", + "nodeComment" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "description": "The Added Node object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a comment box around the given nodes.\n Note: If the bounding box of the nodes include other nodes, they will be included in the comment.", + "name": "PCGToolset.PCGToolset.AddCommentBox", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "Graph to add comment to.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/PCG.PCGNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "The list of nodes to include in the comment box." + }, + "comment": { + "type": "string", + "description": "The comment to put on the comment box.", + "default": "/**\n\t * Adds a comment box around the given nodes. \n\t * Note: If the bounding box of the nodes include other nodes, they will be included in the comment.\n\t *\n\t * @param Graph - Graph to add comment to.\n\t * @param Nodes - The list of nodes to include in the comment box.\n\t * @param Comment - The comment to put on the comment box.\n\t * @param Color - The color of the comment box. Defaults to White\n\t * @return The unique id of the comment node. (Can be used to edit/remove the comment)\n\t */" + }, + "color": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ], + "description": "The color of the comment box. Defaults to White", + "default": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + } + } + }, + "required": [ + "graph", + "nodes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The unique id of the comment node. (Can be used to edit/remove the comment)" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "PCGToolset.PCGSpatialToolset": { + "name": "PCGToolset.PCGSpatialToolset", + "version": "1.0", + "description": "PCGSpatial Toolset", + "tools": [ + { + "description": "Runs an instant PCG graph with the specified parameters in fire-and-forget mode\n(Should be called directly: Not callable in a python context execution context)", + "name": "PCGToolset.PCGSpatialToolset.RunPCGInstantGraph", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/PCG.PCGGraph", + "description": "The PCG graph to execute", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "params": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value parameters to pass to the graph" + } + }, + "required": [ + "graph", + "params" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "PCGNodeExecutionMessage", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "reporterNode": { + "type": "string" + } + }, + "required": [ + "message", + "severity", + "reporterNode" + ] + }, + "description": "Array of per-node execution messages emitted while running the graph (empty on success with no issues)." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "GameFeaturesToolset.GameFeaturesToolset": { + "name": "GameFeaturesToolset.GameFeaturesToolset", + "version": "1.0", + "description": "Provides tools for listing, activating, and deactivating Game Feature Plugins.", + "tools": [ + { + "description": "Requests deactivation of a Game Feature Plugin.\nReturns true if the deactivation request was submitted successfully. The actual deactivation\nhappens asynchronously -- poll GetGameFeatureState() to confirm completion.\nRaises an error if the subsystem is unavailable or the plugin is not found.", + "name": "GameFeaturesToolset.GameFeaturesToolset.RequestDeactivateGameFeature", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "Name of the GFP." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the request was submitted." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Requests activation of a Game Feature Plugin.\nReturns true if the activation request was submitted successfully. The actual activation\nhappens asynchronously -- poll GetGameFeatureState() or IsGameFeatureActive()\nto confirm completion. Raises an error if the subsystem is unavailable\nor the plugin is not found.", + "name": "GameFeaturesToolset.GameFeaturesToolset.RequestActivateGameFeature", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "Name of the GFP." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the request was submitted." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists all enabled Game Feature Plugins sorted by name. Enabled plugins are the only plugins\nknown by the Game Features system beyond identifying if a plugin is a Game Feature Plugin.\nUse the Plugins toolset to do general plugin enable/disable tasks.", + "name": "GameFeaturesToolset.GameFeaturesToolset.ListEnabledGameFeaturePlugins", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted names of all enabled Game Feature Plugins." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists all discovered Game Feature Plugins sorted by name. This includes enabled and disabled\nplugins. Only enabled plugins are known by the Game Features system beyond identifying if a\nplugin is a Game Feature Plugin.\nUse the Plugins toolset to do general plugin enable/disable tasks.", + "name": "GameFeaturesToolset.GameFeaturesToolset.ListDiscoveredGameFeaturePlugins", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted names of all discovered Game Feature Plugins." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Return whether or not a plugin is a Game Feature Plugin. Will error if no plugin of this\nname can be found by the Plugin Manager.", + "name": "GameFeaturesToolset.GameFeaturesToolset.IsGameFeaturePlugin", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "Name of the plugin" + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the plugin is a Game Feature Plugin" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether a Game Feature Plugin is active. Raises an error if the subsystem is unavailable\nor the plugin is not found.\nUse GetGameFeatureState if you need the current state when the plugin is not active.", + "name": "GameFeaturesToolset.GameFeaturesToolset.IsGameFeatureActive", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "Name of the Game Feature Plugin." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the Game Feature Plugin is active." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the current state of a Game Feature Plugin.", + "name": "GameFeaturesToolset.GameFeaturesToolset.GetGameFeatureState", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "Name of the Game Feature Plugin." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "title": "EPluginToolsetGFPState", + "enum": [ + "Uninitialized", + "Installed", + "Registered", + "Loaded", + "Active", + "Unknown" + ], + "description": "Simplified state enum. Raises an error if the subsystem is unavailable or the plugin is not found." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "GameplayTagsToolset.GameplayTagsToolset": { + "name": "GameplayTagsToolset.GameplayTagsToolset", + "version": "1.0", + "description": "Provides tools for reading and managing gameplay tags in the project's GameplayTagsManager.", + "tools": [ + { + "description": "Renames a gameplay tag, updating all references in the project.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "GameplayTagsToolset.GameplayTagsToolset.RenameTag", + "inputSchema": { + "type": "object", + "properties": { + "oldTagName": { + "type": "string", + "description": "The fully-qualified name of the tag to rename." + }, + "newTagName": { + "type": "string", + "description": "The new fully-qualified name for the tag." + } + }, + "required": [ + "oldTagName", + "newTagName" + ] + } + }, + { + "description": "Removes a gameplay tag from the project.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "GameplayTagsToolset.GameplayTagsToolset.RemoveTag", + "inputSchema": { + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "The fully-qualified name of the tag to remove, e.g. \"Character.State.Dead\"." + } + }, + "required": [ + "tagName" + ] + } + }, + { + "description": "Returns gameplay tags registered in the project.", + "name": "GameplayTagsToolset.GameplayTagsToolset.ListTags", + "inputSchema": { + "type": "object", + "properties": { + "parentTag": { + "type": "string", + "description": "If non-empty, only tags that are descendants of this tag are returned. For example, passing \"Character.State\" returns \"Character.State.Dead\", \"Character.State.Stunned\", etc. Pass an empty string to return all tags." + } + }, + "required": [ + "parentTag" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A sorted list of fully-qualified tag names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns detailed information about a specific gameplay tag.", + "name": "GameplayTagsToolset.GameplayTagsToolset.GetTagInfo", + "inputSchema": { + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "The fully-qualified name of the tag, e.g. \"Character.State.Dead\"." + } + }, + "required": [ + "tagName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "GameplayTagInfo", + "description": "The tag's developer comment, source INI file, and immediate children. Raises a script error if the tag does not exist.", + "type": "object", + "properties": { + "comment": { + "type": "string", + "description": "The developer comment describing the tag's purpose." + }, + "source": { + "type": "string", + "description": "The name of the INI source file that defines this tag (e.g. \"DefaultGameplayTags.ini\")." + }, + "children": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The fully-qualified names of this tag's immediate children." + } + }, + "required": [ + "comment", + "source", + "children" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns assets that reference a gameplay tag.", + "name": "GameplayTagsToolset.GameplayTagsToolset.FindReferencersByTag", + "inputSchema": { + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "The fully-qualified gameplay tag to search for, e.g. \"Character.State.Dead\"." + } + }, + "required": [ + "tagName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of package paths that reference the tag." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a new gameplay tag to the project.\nThis should ONLY be called after getting explicit direction or permission from the user.", + "name": "GameplayTagsToolset.GameplayTagsToolset.AddTag", + "inputSchema": { + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "The fully-qualified name of the tag to add, e.g. \"Character.State.Dead\"." + }, + "comment": { + "type": "string", + "description": "An optional developer comment describing the tag's purpose.", + "default": "/**\n\t * Adds a new gameplay tag to the project.\n\t * This should ONLY be called after getting explicit direction or permission from the user.\n\t * @param TagName The fully-qualified name of the tag to add, e.g. \"Character.State.Dead\".\n\t * @param Comment An optional developer comment describing the tag's purpose.\n\t * @param TagSource The INI source to add the tag to. Uses the default source if empty.\n\t */" + }, + "tagSource": { + "type": "string", + "description": "The INI source to add the tag to. Uses the default source if empty." + } + }, + "required": [ + "tagName", + "tagSource" + ] + } + } + ] + }, + "AutomationTestToolset.AutomationTestToolset": { + "name": "AutomationTestToolset.AutomationTestToolset", + "version": "1.0", + "description": "Automation test discovery and execution toolset.\n\nWraps the IAutomationControllerManager API (the same backend the Session\nFrontend uses) to let MCP clients list available tests, run them, and\nretrieve results.\n\nTypical workflow:\n 1. DiscoverTests() once per session to initialize workers and load the test list.\n 2. ListTests() to find tests by name or tag.\n 3. RunTests() with the desired test names.\n 4. GetTestStatus() / GetTestResults() to monitor and retrieve results.\n 5. StopTests() to abort if needed.", + "tools": [ + { + "description": "Stop all currently running tests. Requires DiscoverTests() to have completed.\nIf a RunTests async result is pending, it will be completed with an error.", + "name": "AutomationTestToolset.AutomationTestToolset.StopTests", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the stop request was issued successfully." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Run automation tests selected by a filter expression. Requires DiscoverTests()\nto have completed. Much faster than RunTests when targeting a large batch\nbecause the engine narrows the report tree in a single pass instead of\nrunning a per-leaf membership check against the requested name list.\n\nFilter syntax (multiple expressions joined by '+'):\n \"StartsWith:System.Engine\" prefix match against the full test path\n \"^Foo\" prefix anchor (equivalent to StartsWith:)\n \"Bar$\" suffix anchor\n \"Substring\" bare token matches anywhere in the path\n \"Group:Smoke\" expand a named group from\n AutomationControllerSettings ini Groups\n\nReturns an async result that completes with the same JSON summary as RunTests.", + "name": "AutomationTestToolset.AutomationTestToolset.RunTestsByFilter", + "inputSchema": { + "type": "object", + "properties": { + "filterExpression": { + "type": "string", + "description": "Filter expression as described above." + } + }, + "required": [ + "filterExpression" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Value of the result." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Run a set of automation tests by name. Requires DiscoverTests() to have completed.\nStarts executing the specified tests and returns an async result that\ncompletes with a JSON summary when all tests finish.", + "name": "AutomationTestToolset.AutomationTestToolset.RunTests", + "inputSchema": { + "type": "object", + "properties": { + "testNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of full test paths as returned by ListTests." + } + }, + "required": [ + "testNames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Value of the result." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "List available automation tests. Requires DiscoverTests() to have completed.\nReturns a JSON object: {\"tests\": [\"path1\", ...], \"total\": N, \"returned\": N}.", + "name": "AutomationTestToolset.AutomationTestToolset.ListTests", + "inputSchema": { + "type": "object", + "properties": { + "nameFilter": { + "type": "string", + "description": "Optional substring filter applied to the test's full path." + }, + "tagFilter": { + "type": "string", + "description": "Optional substring filter applied to the test's tags." + }, + "limit": { + "type": "integer", + "description": "Maximum number of tests to return (0 = unlimited, default 200).", + "default": 200 + } + }, + "required": [ + "nameFilter", + "tagFilter" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a lightweight status snapshot of the automation controller.\nRequires DiscoverTests() to have completed.\nReturns a JSON object with the controller state, enabled test count,\nand completion/pass/fail counts.", + "name": "AutomationTestToolset.AutomationTestToolset.GetTestStatus", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get detailed results for the current or most recent test run.\nRequires DiscoverTests() to have completed.\nReturns a JSON object with per-test state, duration, errors, and warnings.", + "name": "AutomationTestToolset.AutomationTestToolset.GetTestResults", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Initialize automation worker discovery and load the test list.\nMust be called once before ListTests or RunTests. Takes several seconds\nas it discovers the local automation worker and enumerates all registered\ntests. Returns an async result that completes with a JSON status object\nwhen tests are available, or an error if discovery fails.", + "name": "AutomationTestToolset.AutomationTestToolset.DiscoverTests", + "inputSchema": { + "type": "object", + "properties": { + "bForceRediscover": { + "type": "boolean", + "description": "When true, bypass the cached report tree and re-poll workers. Used after reloading Python test modules mid-session.", + "default": false + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Value of the result." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "WorldConditionsToolset.WorldConditionTools": { + "name": "WorldConditionsToolset.WorldConditionTools", + "version": "1.0", + "description": "Inspect WorldCondition (FWorldConditionQueryDefinition, FWorldConditionBase) structs.", + "tools": [ + { + "description": "Returns a human-readable description of a world condition query.", + "name": "WorldConditionsToolset.WorldConditionTools.GetQueryDescription", + "inputSchema": { + "type": "object", + "properties": { + "queryDefinition": { + "type": "object", + "title": "WorldConditionQueryDefinition", + "description": "The query definition to describe.", + "properties": { + "sharedDefinition": { + "title": "SharedStruct", + "description": "The definition used to initialize and execute world conditions.\nCreated from editable conditions during edit via Initialize().", + "type": "object" + }, + "schemaClass": { + "type": "object", + "title": "Class@/Script/WorldConditions.WorldConditionSchema", + "description": "Schema of the definition, also stored in SharedDefinition.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "editableConditions": { + "type": "array", + "items": { + "title": "WorldConditionEditable", + "type": "object", + "properties": { + "expressionDepth": { + "type": "integer", + "description": "Expression depth controlling the parenthesis of the expression." + }, + "operator": { + "type": "string", + "title": "EWorldConditionOperator", + "enum": [ + "And", + "Or", + "Copy" + ], + "description": "Operator describing how the results of the condition is combined with other conditions." + }, + "bInvert": { + "type": "boolean", + "description": "Controls whether the value of the expressions as calculated by IsTrue should be inverted." + }, + "condition": { + "type": "object", + "title": "FInstancedStruct", + "description": "Instance of a world condition.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + } + }, + "required": [ + "expressionDepth", + "operator", + "bInvert", + "condition" + ] + }, + "description": "Conditions used while editing, converted in to Conditions via Initialize().\nThose will be cleared for cooked builds but can still be used by hotfixes." + } + }, + "required": [ + "sharedDefinition", + "schemaClass", + "editableConditions" + ] + } + }, + "required": [ + "queryDefinition" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Text description of all conditions in the query." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a human-readable description of a single world condition.\nThe condition must be passed as an FInstancedStruct containing an FWorldConditionBase-derived struct.", + "name": "WorldConditionsToolset.WorldConditionTools.GetConditionDescription", + "inputSchema": { + "type": "object", + "properties": { + "condition": { + "type": "object", + "title": "FInstancedStruct", + "description": "The instanced struct holding the world condition.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + } + }, + "required": [ + "condition" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Text description of the condition, or empty if invalid." + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "PluginToolset.PluginToolset": { + "name": "PluginToolset.PluginToolset", + "version": "1.0", + "description": "Tools for creating, editing, enabling, and querying Unreal plugins", + "tools": [ + { + "description": "Validates that PluginName and RelativePluginLocation are acceptable for a new plugin.", + "name": "PluginToolset.PluginToolset.ValidateNewPluginNameAndLocation", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The proposed plugin name." + }, + "relativePluginLocation": { + "type": "string", + "description": "Parent directory for the new plugin relative to template's default location. This should be empty unless you wish to specify a subdirectory." + }, + "bPlaceInEngine": { + "type": "boolean", + "description": "Use Engine Plugins directory rather than Game Plugins directory location. Only some Templates allow placing in Engine. See the TemplateInfo's bCanBePlacedInEngine. This should be false unless explicitly requested by the user." + }, + "templateInfo": { + "title": "PluginTemplateDescriptionToolsetInfo", + "description": "The plugin template to potentially create from.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of this template in the GUI" + }, + "description": { + "type": "string", + "description": "Description of this template in the GUI" + }, + "onDiskPath": { + "type": "string", + "description": "Path to the directory containing template files." + }, + "defaultTemplateName": { + "type": "string", + "description": "Default plugin name. Typically a prefix." + }, + "bCanBePlacedInEngine": { + "type": "boolean", + "description": "Whether or not this template can be used for Engine plugins" + } + }, + "required": [ + "name", + "description", + "onDiskPath", + "defaultTemplateName", + "bCanBePlacedInEngine" + ] + } + }, + "required": [ + "pluginName", + "relativePluginLocation", + "bPlaceInEngine", + "templateInfo" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the name and location are valid." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Updates a plugin's descriptor fields and writes them to its .uplugin file.\nChecks out the file via source control if source control is enabled.\nNo-ops if the serialized descriptor is unchanged (file is not touched).", + "name": "PluginToolset.PluginToolset.UpdatePluginDescriptor", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin to update." + }, + "newDescriptor": { + "title": "PluginDescriptorToolsetInfo", + "description": "The new descriptor field values to apply.", + "type": "object", + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the plugin." + }, + "description": { + "type": "string", + "description": "Description of the plugin." + }, + "category": { + "type": "string", + "description": "The name of the category this plugin belongs to." + }, + "versionName": { + "type": "string", + "description": "Name of the version for this plugin. This is the front-facing part of the version number. It doesn't need to\nmatch the version number numerically, but should be updated when the version number is increased accordingly." + }, + "version": { + "type": "integer", + "description": "Version number for the plugin. The version number must increase with every version of the plugin, so that the\nsystem can determine whether one version of a plugin is newer than another, or to enforce other requirements.\nThis version number is not displayed in front-facing UI. Use the VersionName for that." + }, + "createdBy": { + "type": "string", + "description": "The company or individual who created this plugin. This is an optional field that may be displayed in the user interface." + }, + "createdByURL": { + "type": "string", + "description": "Hyperlink URL string for the company or individual who created this plugin. This is optional." + }, + "docsURL": { + "type": "string", + "description": "Documentation URL string." + }, + "marketplaceURL": { + "type": "string", + "description": "Marketplace URL for this plugin. This URL will be embedded into projects that enable this plugin, so we can redirect to the marketplace if a user doesn't have it installed." + }, + "supportURL": { + "type": "string", + "description": "Support URL/email for this plugin." + }, + "bCanContainContent": { + "type": "boolean", + "description": "Can this plugin contain content?" + }, + "bIsBetaVersion": { + "type": "boolean", + "description": "Marks the plugin as beta in the UI." + }, + "bIsExperimentalVersion": { + "type": "boolean", + "description": "Marks the plugin as experimental in the UI." + }, + "bIsSealed": { + "type": "boolean", + "description": "Prevents other plugins from depending on this plugin." + } + }, + "required": [ + "friendlyName", + "description", + "category", + "versionName", + "version", + "createdBy", + "createdByURL", + "docsURL", + "marketplaceURL", + "supportURL", + "bCanContainContent", + "bIsBetaVersion", + "bIsExperimentalVersion", + "bIsSealed" + ] + } + }, + "required": [ + "pluginName", + "newDescriptor" + ] + } + }, + { + "description": "Enables or disables a plugin in the project config. The change takes effect on the next editor restart.", + "name": "PluginToolset.PluginToolset.SetPluginEnabled", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin." + }, + "bEnabled": { + "type": "boolean", + "description": "True to enable, false to disable." + } + }, + "required": [ + "pluginName", + "bEnabled" + ] + } + }, + { + "description": "Removes a dependency entry from a plugin's Plugins array in its .uplugin file.", + "name": "PluginToolset.PluginToolset.RemovePluginDependency", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin to modify." + }, + "dependencyName": { + "type": "string", + "description": "The name of the dependency to remove." + } + }, + "required": [ + "pluginName", + "dependencyName" + ] + } + }, + { + "description": "Lists the names of all enabled plugins, sorted alphabetically.", + "name": "PluginToolset.PluginToolset.ListEnabledPlugins", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted array of enabled plugin names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists the names of all discovered plugins (enabled and disabled), sorted alphabetically.", + "name": "PluginToolset.PluginToolset.ListDiscoveredPlugins", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted array of discovered plugin names." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether the editor settings permit modifying plugins from the plugin browser.", + "name": "PluginToolset.PluginToolset.IsPluginModificationAllowed", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if plugin modification is allowed, false if it is disabled in Editor Settings." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether the editor settings permit plugin creation from the plugin browser.", + "name": "PluginToolset.PluginToolset.IsPluginCreationAllowed", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if plugin creation is allowed, false if it is disabled in Editor Settings." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether a discovered plugin is currently enabled.", + "name": "PluginToolset.PluginToolset.IsEnabled", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the plugin is enabled, false if it is disabled." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the list of available plugin templates. Pass one of the results to CreatePlugin\nto create a new plugin from that template.", + "name": "PluginToolset.PluginToolset.GetPluginTemplateDescriptions", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "PluginTemplateDescriptionToolsetInfo", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of this template in the GUI" + }, + "description": { + "type": "string", + "description": "Description of this template in the GUI" + }, + "onDiskPath": { + "type": "string", + "description": "Path to the directory containing template files." + }, + "defaultTemplateName": { + "type": "string", + "description": "Default plugin name. Typically a prefix." + }, + "bCanBePlacedInEngine": { + "type": "boolean", + "description": "Whether or not this template can be used for Engine plugins" + } + }, + "required": [ + "name", + "description", + "onDiskPath", + "defaultTemplateName", + "bCanBePlacedInEngine" + ] + }, + "description": "Array of available plugin template descriptors." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets metadata for a discovered plugin, including description, version, base directory,\ncontent directory, descriptor path, and mounted asset path.", + "name": "PluginToolset.PluginToolset.GetPluginInfo", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PluginToolsetInfo", + "description": "Metadata for the plugin.", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "version": { + "type": "integer" + }, + "versionName": { + "type": "string" + }, + "baseDir": { + "type": "string" + }, + "contentDir": { + "type": "string" + }, + "descriptorPath": { + "type": "string" + }, + "mountedAssetPath": { + "type": "string" + } + }, + "required": [ + "description", + "version", + "versionName", + "baseDir", + "contentDir", + "descriptorPath", + "mountedAssetPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the name of the enabled plugin whose content mount point contains the given asset path.\nAccepts full asset paths or mount point prefixes (e.g. /PluginName/ or /Game/Path/To/Asset).", + "name": "PluginToolset.PluginToolset.GetPluginForAsset", + "inputSchema": { + "type": "object", + "properties": { + "assetPath": { + "type": "string", + "description": "The asset or mount point path to look up." + } + }, + "required": [ + "assetPath" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "The name of the plugin that owns the asset." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the editable descriptor fields for a discovered plugin.", + "name": "PluginToolset.PluginToolset.GetPluginDescriptor", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PluginDescriptorToolsetInfo", + "description": "The plugin's current editable descriptor fields.", + "type": "object", + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the plugin." + }, + "description": { + "type": "string", + "description": "Description of the plugin." + }, + "category": { + "type": "string", + "description": "The name of the category this plugin belongs to." + }, + "versionName": { + "type": "string", + "description": "Name of the version for this plugin. This is the front-facing part of the version number. It doesn't need to\nmatch the version number numerically, but should be updated when the version number is increased accordingly." + }, + "version": { + "type": "integer", + "description": "Version number for the plugin. The version number must increase with every version of the plugin, so that the\nsystem can determine whether one version of a plugin is newer than another, or to enforce other requirements.\nThis version number is not displayed in front-facing UI. Use the VersionName for that." + }, + "createdBy": { + "type": "string", + "description": "The company or individual who created this plugin. This is an optional field that may be displayed in the user interface." + }, + "createdByURL": { + "type": "string", + "description": "Hyperlink URL string for the company or individual who created this plugin. This is optional." + }, + "docsURL": { + "type": "string", + "description": "Documentation URL string." + }, + "marketplaceURL": { + "type": "string", + "description": "Marketplace URL for this plugin. This URL will be embedded into projects that enable this plugin, so we can redirect to the marketplace if a user doesn't have it installed." + }, + "supportURL": { + "type": "string", + "description": "Support URL/email for this plugin." + }, + "bCanContainContent": { + "type": "boolean", + "description": "Can this plugin contain content?" + }, + "bIsBetaVersion": { + "type": "boolean", + "description": "Marks the plugin as beta in the UI." + }, + "bIsExperimentalVersion": { + "type": "boolean", + "description": "Marks the plugin as experimental in the UI." + }, + "bIsSealed": { + "type": "boolean", + "description": "Prevents other plugins from depending on this plugin." + } + }, + "required": [ + "friendlyName", + "description", + "category", + "versionName", + "version", + "createdBy", + "createdByURL", + "docsURL", + "marketplaceURL", + "supportURL", + "bCanContainContent", + "bIsBetaVersion", + "bIsExperimentalVersion", + "bIsSealed" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all discovered plugins that declare a dependency on the given plugin.", + "name": "PluginToolset.PluginToolset.GetPluginDependents", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin to search for as a dependency target." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sorted array of plugin names that list the given plugin in their Plugins array." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the dependency entries from a plugin's Plugins array in its .uplugin file.", + "name": "PluginToolset.PluginToolset.GetPluginDependencies", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin." + } + }, + "required": [ + "pluginName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "PluginDependencyToolsetInfo", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the dependency plugin." + }, + "bOptional": { + "type": "boolean", + "description": "Whether the dependency is optional." + }, + "bEnabled": { + "type": "boolean", + "description": "Whether the dependency should be enabled." + } + }, + "required": [ + "name", + "bOptional", + "bEnabled" + ] + }, + "description": "Array of dependency entries declared in the plugin's .uplugin file." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new plugin from a template and loads it into the editor.\nUse GetPluginTemplateDescriptions to obtain a valid TemplateInfo.", + "name": "PluginToolset.PluginToolset.CreatePlugin", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "Name for the new plugin." + }, + "relativePluginLocation": { + "type": "string", + "description": "Parent directory for the new plugin relative to template's default location. This should be empty unless you wish to specify a subdirectory." + }, + "bPlaceInEngine": { + "type": "boolean", + "description": "Use Engine Plugins directory rather than Game Plugins directory location. Only some Templates allow placing in Engine. See the TemplateInfo's bCanBePlacedInEngine. This should be false unless explicitly requested by the user." + }, + "templateInfo": { + "title": "PluginTemplateDescriptionToolsetInfo", + "description": "The plugin template to create from.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of this template in the GUI" + }, + "description": { + "type": "string", + "description": "Description of this template in the GUI" + }, + "onDiskPath": { + "type": "string", + "description": "Path to the directory containing template files." + }, + "defaultTemplateName": { + "type": "string", + "description": "Default plugin name. Typically a prefix." + }, + "bCanBePlacedInEngine": { + "type": "boolean", + "description": "Whether or not this template can be used for Engine plugins" + } + }, + "required": [ + "name", + "description", + "onDiskPath", + "defaultTemplateName", + "bCanBePlacedInEngine" + ] + }, + "description": { + "type": "string", + "description": "A description for the new plugin." + } + }, + "required": [ + "pluginName", + "relativePluginLocation", + "bPlaceInEngine", + "templateInfo", + "description" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Created plugin's descriptor filename. Empty on failure." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a dependency entry to a plugin's Plugins array in its .uplugin file.\nNo-ops if a dependency with that name already exists with matching settings.\nThe dependency plugin does not need to be currently discovered.", + "name": "PluginToolset.PluginToolset.AddPluginDependency", + "inputSchema": { + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "The name of the plugin to modify." + }, + "dependencyName": { + "type": "string", + "description": "The name of the plugin to add as a dependency." + }, + "bOptional": { + "type": "boolean", + "description": "Whether the dependency is optional." + }, + "bEnabled": { + "type": "boolean", + "description": "Whether the dependency should be enabled." + } + }, + "required": [ + "pluginName", + "dependencyName", + "bOptional", + "bEnabled" + ] + } + } + ] + }, + "PhysicsToolsets.PhysicsAssetToolset": { + "name": "PhysicsToolsets.PhysicsAssetToolset", + "version": "1.0", + "description": "Provides tools for creating and managing Physics Assets.", + "tools": [ + { + "description": "Adds or replaces a sphere collision primitive on a body.\nIf any shape with the given name already exists on the body it is removed first.", + "name": "PhysicsToolsets.PhysicsAssetToolset.SetSphere", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to modify." + }, + "shapeName": { + "type": "string", + "description": "A name that uniquely identifies this shape on the body." + }, + "center": { + "title": "Vector", + "description": "Center of the sphere in bone-local space (cm).", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "radius": { + "type": "number", + "description": "Radius of the sphere (cm). Must be greater than zero." + } + }, + "required": [ + "physicsAsset", + "boneName", + "shapeName", + "center", + "radius" + ] + } + }, + { + "description": "Updates the angular limits for an existing constraint.", + "name": "PhysicsToolsets.PhysicsAssetToolset.SetConstraintLimits", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "info": { + "title": "PhysicsConstraintInfo", + "description": "Constraint descriptor. Bone1Name and Bone2Name identify the constraint.", + "type": "object", + "properties": { + "bone1Name": { + "type": "string", + "description": "Name of the child bone." + }, + "bone2Name": { + "type": "string", + "description": "Name of the parent bone." + }, + "swing1Motion": { + "type": "string", + "title": "EConstraintMotion", + "enum": [ + "Free", + "Limited", + "Locked" + ], + "description": "Motion type for Swing 1 (rotation around the body-local Y axis)." + }, + "swing1LimitDegrees": { + "type": "number", + "description": "Swing 1 limit in degrees. Used when Swing1Motion is Limited." + }, + "swing2Motion": { + "type": "string", + "title": "EConstraintMotion", + "enum": [ + "Free", + "Limited", + "Locked" + ], + "description": "Motion type for Swing 2 (rotation around the body-local Z axis)." + }, + "swing2LimitDegrees": { + "type": "number", + "description": "Swing 2 limit in degrees. Used when Swing2Motion is Limited." + }, + "twistMotion": { + "type": "string", + "title": "EConstraintMotion", + "enum": [ + "Free", + "Limited", + "Locked" + ], + "description": "Motion type for Twist (rotation around the body-local X axis)." + }, + "twistLimitDegrees": { + "type": "number", + "description": "Twist limit in degrees. Used when TwistMotion is Limited." + } + }, + "required": [ + "bone1Name", + "bone2Name", + "swing1Motion", + "swing1LimitDegrees", + "swing2Motion", + "swing2LimitDegrees", + "twistMotion", + "twistLimitDegrees" + ] + } + }, + "required": [ + "physicsAsset", + "info" + ] + } + }, + { + "description": "Adds or replaces a capsule collision primitive on a body.\nIf any shape with the given name already exists on the body it is removed first.\nThe capsule's long axis is its local Z after applying Rotation.", + "name": "PhysicsToolsets.PhysicsAssetToolset.SetCapsule", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to modify." + }, + "shapeName": { + "type": "string", + "description": "A name that uniquely identifies this shape on the body." + }, + "center": { + "title": "Vector", + "description": "Center of the capsule in bone-local space (cm).", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "title": "Rotator", + "description": "Orientation of the capsule in bone-local space.", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "radius": { + "type": "number", + "description": "Radius of the capsule end-caps (cm). Must be greater than zero." + }, + "length": { + "type": "number", + "description": "Length of the cylindrical section (cm). Must be non-negative. Total capsule height = Length + 2 * Radius." + } + }, + "required": [ + "physicsAsset", + "boneName", + "shapeName", + "center", + "rotation", + "radius", + "length" + ] + } + }, + { + "description": "Adds or replaces a box collision primitive on a body.\nIf any shape with the given name already exists on the body it is removed first.", + "name": "PhysicsToolsets.PhysicsAssetToolset.SetBox", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to modify." + }, + "shapeName": { + "type": "string", + "description": "A name that uniquely identifies this shape on the body." + }, + "center": { + "title": "Vector", + "description": "Center of the box in bone-local space (cm).", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "title": "Rotator", + "description": "Orientation of the box in bone-local space.", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "extentX": { + "type": "number", + "description": "Full extent along local X (cm). Must be greater than zero." + }, + "extentY": { + "type": "number", + "description": "Full extent along local Y (cm). Must be greater than zero." + }, + "extentZ": { + "type": "number", + "description": "Full extent along local Z (cm). Must be greater than zero." + } + }, + "required": [ + "physicsAsset", + "boneName", + "shapeName", + "center", + "rotation", + "extentX", + "extentY", + "extentZ" + ] + } + }, + { + "description": "Sets the physics simulation mode for the given body.", + "name": "PhysicsToolsets.PhysicsAssetToolset.SetBodyPhysicsMode", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to modify." + }, + "mode": { + "type": "string", + "title": "EBodyPhysicsMode", + "enum": [ + "Default", + "Kinematic", + "Simulated" + ], + "description": "The desired simulation mode." + } + }, + "required": [ + "physicsAsset", + "boneName", + "mode" + ] + } + }, + { + "description": "Sets the mass-scale multiplier for the given body.", + "name": "PhysicsToolsets.PhysicsAssetToolset.SetBodyMassScale", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to modify." + }, + "massScale": { + "type": "number", + "description": "Multiplier applied to the computed mass. Must be greater than zero." + } + }, + "required": [ + "physicsAsset", + "boneName", + "massScale" + ] + } + }, + { + "description": "Removes a collision primitive from a body by name.", + "name": "PhysicsToolsets.PhysicsAssetToolset.RemoveShape", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to modify." + }, + "shapeName": { + "type": "string", + "description": "The name of the shape to remove." + } + }, + "required": [ + "physicsAsset", + "boneName", + "shapeName" + ] + } + }, + { + "description": "Removes the constraint between two bodies.", + "name": "PhysicsToolsets.PhysicsAssetToolset.RemoveConstraint", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bone1Name": { + "type": "string", + "description": "Name of the child bone." + }, + "bone2Name": { + "type": "string", + "description": "Name of the parent bone." + } + }, + "required": [ + "physicsAsset", + "bone1Name", + "bone2Name" + ] + } + }, + { + "description": "Removes the body for the given bone along with any constraints that reference it.\nRaises a script error if PhysicsAsset is null or no body exists for BoneName.", + "name": "PhysicsToolsets.PhysicsAssetToolset.RemoveBody", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to remove." + } + }, + "required": [ + "physicsAsset", + "boneName" + ] + } + }, + { + "description": "Returns all constraints in the physics asset with their current angular limits.", + "name": "PhysicsToolsets.PhysicsAssetToolset.GetConstraints", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "physicsAsset" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "PhysicsConstraintInfo", + "type": "object", + "properties": { + "bone1Name": { + "type": "string", + "description": "Name of the child bone." + }, + "bone2Name": { + "type": "string", + "description": "Name of the parent bone." + }, + "swing1Motion": { + "type": "string", + "title": "EConstraintMotion", + "enum": [ + "Free", + "Limited", + "Locked" + ], + "description": "Motion type for Swing 1 (rotation around the body-local Y axis)." + }, + "swing1LimitDegrees": { + "type": "number", + "description": "Swing 1 limit in degrees. Used when Swing1Motion is Limited." + }, + "swing2Motion": { + "type": "string", + "title": "EConstraintMotion", + "enum": [ + "Free", + "Limited", + "Locked" + ], + "description": "Motion type for Swing 2 (rotation around the body-local Z axis)." + }, + "swing2LimitDegrees": { + "type": "number", + "description": "Swing 2 limit in degrees. Used when Swing2Motion is Limited." + }, + "twistMotion": { + "type": "string", + "title": "EConstraintMotion", + "enum": [ + "Free", + "Limited", + "Locked" + ], + "description": "Motion type for Twist (rotation around the body-local X axis)." + }, + "twistLimitDegrees": { + "type": "number", + "description": "Twist limit in degrees. Used when TwistMotion is Limited." + } + }, + "required": [ + "bone1Name", + "bone2Name", + "swing1Motion", + "swing1LimitDegrees", + "swing2Motion", + "swing2LimitDegrees", + "twistMotion", + "twistLimitDegrees" + ] + }, + "description": "A list of constraint descriptors." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all collision shapes assigned to a body.", + "name": "PhysicsToolsets.PhysicsAssetToolset.GetBodyShapes", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body shapes to retrieve." + } + }, + "required": [ + "physicsAsset", + "boneName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "PhysicsShapeInfo", + "type": "object", + "properties": { + "shapeName": { + "type": "string", + "description": "User-defined name that uniquely identifies this shape on the body." + }, + "shapeType": { + "type": "string", + "title": "EPhysicsShapeType", + "enum": [ + "Sphere", + "Capsule", + "Box" + ], + "description": "The type of collision primitive." + }, + "center": { + "title": "Vector", + "description": "Center position in bone-local space (cm).", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "title": "Rotator", + "description": "Orientation in bone-local space.\nFor Capsule, Z is the long axis. Unused for Sphere.", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "radius": { + "type": "number", + "description": "Radius (cm). Used by Sphere and Capsule." + }, + "length": { + "type": "number", + "description": "Cylinder section length (cm). Used by Capsule only.\nTotal capsule height = Length + 2 * Radius." + }, + "extentX": { + "type": "number", + "description": "Full extent along local X (cm). Used by Box only." + }, + "extentY": { + "type": "number", + "description": "Full extent along local Y (cm). Used by Box only." + }, + "extentZ": { + "type": "number", + "description": "Full extent along local Z (cm). Used by Box only." + } + }, + "required": [ + "shapeName", + "shapeType", + "center", + "rotation", + "radius", + "length", + "extentX", + "extentY", + "extentZ" + ] + }, + "description": "A list of shape descriptors. Raises a script error if no body exists for the bone." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the physics simulation mode for the given body.", + "name": "PhysicsToolsets.PhysicsAssetToolset.GetBodyPhysicsMode", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to query." + } + }, + "required": [ + "physicsAsset", + "boneName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "title": "EBodyPhysicsMode", + "enum": [ + "Default", + "Kinematic", + "Simulated" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the bone name for each rigid body in a physics asset.", + "name": "PhysicsToolsets.PhysicsAssetToolset.GetBodyNames", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "physicsAsset" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of bone names, one per body." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the mass-scale multiplier for the given body.", + "name": "PhysicsToolsets.PhysicsAssetToolset.GetBodyMassScale", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone whose body to query." + } + }, + "required": [ + "physicsAsset", + "boneName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "number" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a physics asset from a skeletal mesh, auto-generating collision bodies for\neach bone. The asset is placed in the same folder as the mesh with the suffix\n\"_PhysicsAsset\".", + "name": "PhysicsToolsets.PhysicsAssetToolset.CreateFromMesh", + "inputSchema": { + "type": "object", + "properties": { + "meshPath": { + "type": "string", + "description": "Content-browser path to the skeletal mesh, e.g. '/Game/Characters/SKM_Hero'." + }, + "bAssignToMesh": { + "type": "boolean", + "description": "If true, assigns the new physics asset to the mesh." + } + }, + "required": [ + "meshPath", + "bAssignToMesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The newly created physics asset.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a new constraint between two bodies. Both bodies must already exist.", + "name": "PhysicsToolsets.PhysicsAssetToolset.AddConstraint", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bone1Name": { + "type": "string", + "description": "Name of the child bone." + }, + "bone2Name": { + "type": "string", + "description": "Name of the parent bone." + } + }, + "required": [ + "physicsAsset", + "bone1Name", + "bone2Name" + ] + } + }, + { + "description": "Adds a new empty body for the given bone.", + "name": "PhysicsToolsets.PhysicsAssetToolset.AddBody", + "inputSchema": { + "type": "object", + "properties": { + "physicsAsset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "The physics asset to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "boneName": { + "type": "string", + "description": "The name of the bone to add a body for." + } + }, + "required": [ + "physicsAsset", + "boneName" + ] + } + } + ] + }, + "SemanticSearchToolset.SemanticSearchToolset": { + "name": "SemanticSearchToolset.SemanticSearchToolset", + "version": "1.0", + "description": "Toolset exposing the SemanticSearch plugin's hybrid vector + BM25 asset search\nto the AI Toolset Registry.", + "tools": [ + { + "description": "Run a semantic search over the Content Browser assets indexed by the SemanticSearch plugin.", + "name": "SemanticSearchToolset.SemanticSearchToolset.Search", + "inputSchema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "Natural-language query. Must be non-empty." + }, + "classFilter": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "If non-empty, array of classes to filter by (provide full ref path of the class). Passing a base class covers all its subclasses. The SemanticSearch index currently covers these base classes: Blueprint, StaticMesh, SkeletalMesh, Texture, Material, MaterialInstance. Pass an empty array to consider all indexed classes." + }, + "pathRegexes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "If non-empty, only assets whose soft object path matches at least one of these regular expressions are considered (e.g. \"^/Game/Blueprints/.*\"). Pass an empty array to consider all indexed paths." + }, + "k": { + "type": "integer", + "description": "Maximum number of results to return. Must be >= 1. Defaults to 10.", + "default": 10 + } + }, + "required": [ + "query", + "classFilter", + "pathRegexes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SemanticSearchResult", + "type": "object", + "properties": { + "path": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Full asset path, e.g. \"/Game/Blueprints/BP_Foo.BP_Foo\".", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "class": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class of the asset", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "caption": { + "type": "string", + "description": "Caption produced at index time by the SemanticSearch plugin." + } + }, + "required": [ + "path", + "class", + "caption" + ] + }, + "description": "Array of FSemanticSearchResult sorted by relevance (highest Score first)" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Find assets whose embeddings are semantically similar to the given asset's embedding.\nVector-only (no BM25). The source asset must already be indexed by the SemanticSearch\nplugin.", + "name": "SemanticSearchToolset.SemanticSearchToolset.FindSimilar", + "inputSchema": { + "type": "object", + "properties": { + "assetPath": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "SoftObjectPath of the reference asset.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "classFilter": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "Same semantics as Search::ClassFilter. See Search for the list of currently-indexed base classes. Pass an empty array for no class filter." + }, + "pathRegexes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Same semantics as Search::PathRegexes. Pass an empty array for no path filter." + }, + "k": { + "type": "integer", + "description": "Maximum number of results to return. Must be >= 1. Defaults to 10.", + "default": 10 + } + }, + "required": [ + "assetPath", + "classFilter", + "pathRegexes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SemanticSearchResult", + "type": "object", + "properties": { + "path": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Full asset path, e.g. \"/Game/Blueprints/BP_Foo.BP_Foo\".", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "class": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class of the asset", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "caption": { + "type": "string", + "description": "Caption produced at index time by the SemanticSearch plugin." + } + }, + "required": [ + "path", + "class", + "caption" + ] + }, + "description": "Array of FSemanticSearchResult sorted by relevance (highest Score first)" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "SlateInspectorToolset.SlateInspectorToolset": { + "name": "SlateInspectorToolset.SlateInspectorToolset", + "version": "1.0", + "description": "Playwright-style Slate UI automation toolset.\n\nExposes snapshot, screenshot, and interaction tools for driving the\nUnreal Editor UI programmatically. Registered via UToolsetRegistry\nso the ModelContextProtocol plugin picks them up automatically.\n\nA shallow root observer (depth 0) continuously tracks top-level\nwindows. Before working with a specific window or panel, call\nObserve() on it to get deep widget coverage, then Unobserve() when\ndone. Observers walk their subtree every ~100ms, assigning refs to\nnewly appeared widgets and keeping the ref cache current.\n\nInput simulation uses direct Slate event APIs (ProcessKeyCharEvent,\nProcessMouseButtonDownEvent, etc.) rather than the AutomationDriver,\nbecause AutomationDriver's synchronous API deadlocks when called from\nthe game thread (which is where MCP tool calls execute).", + "tools": [ + { + "description": "List, select, or close top-level Slate editor windows.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Windows", + "inputSchema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "\"list\" returns JSON array, \"select\" brings to front, \"close\" destroys.", + "default": "list" + }, + "index": { + "type": "integer", + "description": "Window index for select/close.", + "default": -1 + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if text is present or absent in the Slate widget tree.\nNon-blocking: checks once and returns immediately. Poll to wait.", + "name": "SlateInspectorToolset.SlateInspectorToolset.WaitFor", + "inputSchema": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Text that must be present (empty = skip)." + }, + "textGone": { + "type": "string", + "description": "Text that must be absent (empty = skip)." + } + }, + "required": [ + "text", + "textGone" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove an observer by its identifier.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Unobserve", + "inputSchema": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "The identifier returned by Observe()." + } + }, + "required": [ + "identifier" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Type text into a Slate text input widget. Focuses the widget first,\nthen sends one key event per character.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Type", + "inputSchema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Slate textbox ref." + }, + "text": { + "type": "string", + "description": "Text to type." + }, + "submit": { + "type": "boolean", + "description": "Press Enter after typing.", + "default": false + } + }, + "required": [ + "ref", + "text" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Capture a Slate UI accessibility snapshot. Use this to read the current\nwidget tree and discover refs for action tools (Click, Type, Hover, etc.).\nA shallow root observer (depth 0) covers top-level windows automatically.\nBefore interacting with a specific window or panel, call Observe() on it\nto get deep coverage, then Snapshot that subtree to see its contents.\nRefs discovered by a previous Snapshot remain usable. You do NOT need to\ncall Snapshot again before every action.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Snapshot", + "inputSchema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Subtree root ref. Empty = all windows." + }, + "maxDepth": { + "type": "integer", + "description": "Maximum depth (default 30).", + "default": 30 + }, + "bIncludeSourceLocations": { + "type": "boolean", + "description": "Include [src=File:Line] tags showing where each widget was created in C++.", + "default": false + } + }, + "required": [ + "ref" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Select an option in a Slate combobox by its text label.\nOpens the dropdown, finds the matching text, and clicks it.", + "name": "SlateInspectorToolset.SlateInspectorToolset.SelectOption", + "inputSchema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Slate combobox ref." + }, + "value": { + "type": "string", + "description": "Exact option text to select." + } + }, + "required": [ + "ref", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Screenshot a Slate widget or the active editor window. Prefer this over\nSceneTools.take_screenshot for Editor UI; use SceneTools only for 3D viewport.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Screenshot", + "inputSchema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Slate widget ref. Empty = active window." + } + }, + "required": [ + "ref" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "ToolsetImage", + "type": "object", + "properties": { + "mimeType": { + "type": "string", + "description": "The format the image is encoded in." + }, + "data": { + "type": "string", + "description": "The image data encoded as a base64 string." + } + }, + "required": [ + "mimeType", + "data" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Press and release a keyboard key on the currently focused Slate widget.\nSupports modifier prefixes: \"Ctrl+C\", \"Shift+1\".", + "name": "SlateInspectorToolset.SlateInspectorToolset.PressKey", + "inputSchema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key name with optional modifiers, e.g. \"Enter\", \"Ctrl+A\", \"Shift+Tab\"." + } + }, + "required": [ + "key" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Register an observer on a widget subtree so its refs are continuously\nkept up to date (~100ms tick). Call this on the window or panel you are\nabout to work with. It ensures new widgets appearing in that subtree\nare assigned refs automatically. Unobserve when you are done.\nA shallow root observer (depth 0) already covers top-level windows.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Observe", + "inputSchema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Root widget ref to observe. Empty = all visible windows." + }, + "maxDepth": { + "type": "integer", + "description": "Maximum depth to walk from the root.", + "default": 30 + } + }, + "required": [ + "ref" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "List all active observers as a JSON array for debugging.\nEach entry includes the observer identifier, whether it is the root observer,\nthe root widget ref (if any), max depth, and cached snapshot size.", + "name": "SlateInspectorToolset.SlateInspectorToolset.ListObservers", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Hover over a Slate widget, triggering any hover state or tooltip.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Hover", + "inputSchema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Slate widget ref." + } + }, + "required": [ + "ref" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Fill multiple Slate form fields at once.", + "name": "SlateInspectorToolset.SlateInspectorToolset.FillForm", + "inputSchema": { + "type": "object", + "properties": { + "fields": { + "type": "array", + "items": { + "title": "SlateInspectorToolsetFormField", + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "The ref identifier of the form field widget." + }, + "value": { + "type": "string", + "description": "The value to set." + }, + "fieldType": { + "type": "string", + "description": "The type of field: \"textbox\", \"checkbox\", or \"combobox\"." + } + }, + "required": [ + "ref", + "value", + "fieldType" + ] + }, + "description": "Array of {Ref, Value, FieldType} where FieldType is \"textbox\", \"checkbox\", or \"combobox\"." + } + }, + "required": [ + "fields" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Drag from one Slate widget to another (mouse down, move, release).", + "name": "SlateInspectorToolset.SlateInspectorToolset.Drag", + "inputSchema": { + "type": "object", + "properties": { + "startRef": { + "type": "string", + "description": "Slate widget ref for the drag source." + }, + "endRef": { + "type": "string", + "description": "Slate widget ref for the drop target." + }, + "modifiers": { + "title": "SlateInspectorToolsetModifierKeys", + "description": "Modifier keys held during the drag.", + "default": { + "bShift": false, + "bCtrl": false, + "bAlt": false, + "bCmd": false + }, + "type": "object", + "properties": { + "bShift": { + "type": "boolean" + }, + "bCtrl": { + "type": "boolean" + }, + "bAlt": { + "type": "boolean" + }, + "bCmd": { + "type": "boolean" + } + }, + "required": [ + "bShift", + "bCtrl", + "bAlt", + "bCmd" + ] + } + }, + "required": [ + "startRef", + "endRef" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Click a Slate widget identified by its ref.", + "name": "SlateInspectorToolset.SlateInspectorToolset.Click", + "inputSchema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Slate widget ref." + }, + "button": { + "type": "string", + "description": "\"left\", \"right\", or \"middle\".", + "default": "left" + }, + "doubleClick": { + "type": "boolean", + "description": "True for double-click.", + "default": false + }, + "modifiers": { + "title": "SlateInspectorToolsetModifierKeys", + "description": "Modifier keys held during the click.", + "default": { + "bShift": false, + "bCtrl": false, + "bAlt": false, + "bCmd": false + }, + "type": "object", + "properties": { + "bShift": { + "type": "boolean" + }, + "bCtrl": { + "type": "boolean" + }, + "bAlt": { + "type": "boolean" + }, + "bCmd": { + "type": "boolean" + } + }, + "required": [ + "bShift", + "bCtrl", + "bAlt", + "bCmd" + ] + } + }, + "required": [ + "ref" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "UMGToolSet.UMGToolSet": { + "name": "UMGToolSet.UMGToolSet", + "version": "1.0", + "description": "UMG widget toolset for AI-driven widget creation and tree manipulation.\n\nIMPORTANT WORKFLOW - for every widget and slot returned by this toolset:\n 1. Call ObjectTools.list_properties(widget) to discover exact property names.\n 2. Call ObjectTools.get_properties(widget, [...]) with those exact names.\n 3. Call ObjectTools.set_properties(widget, {...}) with those exact names.\nProperty names vary per widget class and CANNOT be guessed - list_properties is required.\nSkipping step 1 causes set_properties to silently fail or set wrong properties.\n\nReturns UObject pointers - ToolsetRegistry serializes them as {\"refPath\": \"...\"} automatically.\nPass returned Widget, Slot, and Parent pointers directly to ObjectTools or back to this toolset.", + "tools": [ + { + "description": "Wraps one or more widgets in a new panel widget of the specified class.\nOnly the root-most widgets in the selection are wrapped \u2014 children of other selected widgets\nare skipped because their parent will be wrapped. Returns info for each newly created wrapper.\n\nUse ObjectTools.list_properties on each returned Widget and Slot to discover property names\nbefore calling set_properties (padding, alignment, anchors, etc. vary per panel class).", + "name": "UMGToolSet.UMGToolSet.WrapWidgets", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgets": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/UMG.Widget", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "description": "The widgets to wrap. Must all be in WidgetBlueprint's tree." + }, + "wrapperClass": { + "type": "object", + "title": "Class@/Script/UMG.PanelWidget", + "description": "The panel widget class to wrap with (must be a UPanelWidget subclass).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint", + "widgets", + "wrapperClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "UMGWidgetInfo", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the bIsVariable flag.", + "name": "UMGToolSet.UMGToolSet.ToggleWidgetAsVariable", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget to update.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsVariable": { + "type": "boolean", + "description": "True to expose as a blueprint variable, false to hide it." + } + }, + "required": [ + "widgetBlueprint", + "widget", + "bIsVariable" + ] + } + }, + { + "description": "Sets content for a named slot. Returns full widget info including Slot pointer.", + "name": "UMGToolSet.UMGToolSet.SetNamedSlotContent", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "hostWidget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget that owns the named slot, or null to target the root WidgetTree.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slotName": { + "type": "string", + "description": "Name of the slot to fill (e.g., \"content\", \"header\")." + }, + "widgetClass": { + "type": "object", + "title": "Class@/Script/UMG.Widget", + "description": "The widget class to place in the slot.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Name for the new widget instance." + } + }, + "required": [ + "widgetBlueprint", + "hostWidget", + "slotName", + "widgetClass", + "widgetName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetInfo", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Replaces a widget instance in the blueprint's widget tree with a new instance created from a\ndifferent template widget class. Preserves references for members that exist on both classes\nwith a compatible type/signature: bindings, BP graph variable references, animation\nbindings, and delegate bindings. Members without a compatible counterpart on the new class\nare listed in the returned report; references to those members in the outer blueprint will\nbecome orphaned graph nodes / dangling bindings.", + "name": "UMGToolSet.UMGToolSet.ReplaceWidgetWithTemplate", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint containing the widget to replace.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetToReplace": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance to replace (must be in WidgetBlueprint's tree).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "templateClass": { + "type": "object", + "title": "Class@/Script/UMG.Widget", + "description": "The widget class to create the replacement from.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint", + "widgetToReplace", + "templateClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "WidgetReplacementReport", + "description": "Report whose bSuccess flag indicates whether the replacement happened, MissingReferencesWarning describes warnings that need action, and the Unmatched* arrays list members that have no compatible counterpart on the new class (with the *Referenced* subsets being the ones the blueprint actually uses today).", + "type": "object", + "properties": { + "bSuccess": { + "type": "boolean", + "description": "True if the replacement was performed." + }, + "missingReferencesWarning": { + "type": "string", + "description": "List of referenced properties/functions that are missing from the new class." + }, + "unmatchedProperties": { + "type": "array", + "items": { + "title": "WidgetUnmatchedMember", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the member on the old class." + }, + "reason": { + "type": "string", + "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch)." + } + }, + "required": [ + "name", + "reason" + ] + }, + "description": "Blueprint-visible properties on the old class that are missing or type-incompatible on the new class, with per-member reasons." + }, + "unmatchedReferencedProperties": { + "type": "array", + "items": { + "title": "WidgetUnmatchedMember", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the member on the old class." + }, + "reason": { + "type": "string", + "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch)." + } + }, + "required": [ + "name", + "reason" + ] + }, + "description": "Subset of UnmatchedProperties that the outer blueprint references through this widget (graphs, bindings, animation property tracks)." + }, + "unmatchedFunctions": { + "type": "array", + "items": { + "title": "WidgetUnmatchedMember", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the member on the old class." + }, + "reason": { + "type": "string", + "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch)." + } + }, + "required": [ + "name", + "reason" + ] + }, + "description": "BlueprintCallable / BlueprintEvent functions and multicast delegates on the old class that are missing or signature-incompatible on the new class, with per-member reasons." + }, + "unmatchedReferencedFunctions": { + "type": "array", + "items": { + "title": "WidgetUnmatchedMember", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the member on the old class." + }, + "reason": { + "type": "string", + "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch)." + } + }, + "required": [ + "name", + "reason" + ] + }, + "description": "Subset of UnmatchedFunctions that the outer blueprint's graphs currently reference through this widget." + } + }, + "required": [ + "bSuccess", + "missingReferencesWarning", + "unmatchedProperties", + "unmatchedReferencedProperties", + "unmatchedFunctions", + "unmatchedReferencedFunctions" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Replaces a host widget with the content of one of its named slots. The host must implement\nINamedSlotInterface (e.g., a UUserWidget exposing named slots). The slot's content widget is\nmoved up to take the host's place in the tree.", + "name": "UMGToolSet.UMGToolSet.ReplaceWidgetWithNamedSlot", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint containing the host widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetToReplace": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The host widget to replace.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlot": { + "type": "string", + "description": "The slot whose content replaces WidgetToReplace." + } + }, + "required": [ + "widgetBlueprint", + "widgetToReplace", + "namedSlot" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "true on success, false if validation failed." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Replaces a panel widget with its first child, removing the panel from the tree.\nThe widget to replace must be a UPanelWidget with only one child.", + "name": "UMGToolSet.UMGToolSet.ReplaceWidgetWithChild", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint containing the panel widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetToReplace": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The panel widget to replace with its first child.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint", + "widgetToReplace" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "true on success, false if validation failed." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Renames a widget. Returns updated widget info or empty on failure.", + "name": "UMGToolSet.UMGToolSet.RenameWidget", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget to rename.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "newDisplayName": { + "type": "string", + "description": "The new display name." + } + }, + "required": [ + "widgetBlueprint", + "widget", + "newDisplayName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetInfo", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a widget and its children from the tree.", + "name": "UMGToolSet.UMGToolSet.RemoveWidget", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget to remove (along with its children).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint", + "widget" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a UI component of the given class from the named widget.", + "name": "UMGToolSet.UMGToolSet.RemoveUIComponent", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Name of the widget instance to remove the component from." + }, + "componentClass": { + "type": "object", + "title": "Class@/Script/UMG.UIComponent", + "description": "The UIComponent subclass to remove.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint", + "widgetName", + "componentClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the component was removed, false if it was not found." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Moves a widget to a new parent panel at the specified position. Returns updated widget info with new Slot.", + "name": "UMGToolSet.UMGToolSet.MoveWidget", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget to move.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "newParent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "The destination panel widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "childIndex": { + "type": "integer", + "description": "Position in new parent's child list (0 = first child). -1 (default) appends to end.", + "default": -1 + } + }, + "required": [ + "widgetBlueprint", + "widget", + "newParent" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetInfo", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Moves a UI component before or after another component on the same widget.", + "name": "UMGToolSet.UMGToolSet.MoveUIComponent", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Name of the widget instance whose component to move." + }, + "componentClassToMove": { + "type": "object", + "title": "Class@/Script/UMG.UIComponent", + "description": "The UIComponent subclass to reorder.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "relativeToComponentClass": { + "type": "object", + "title": "Class@/Script/UMG.UIComponent", + "description": "The UIComponent subclass to move relative to.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bMoveAfter": { + "type": "boolean", + "description": "True to place after RelativeToComponentClass, false to place before." + } + }, + "required": [ + "widgetBlueprint", + "widgetName", + "componentClassToMove", + "relativeToComponentClass", + "bMoveAfter" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean", + "description": "True if the component was moved, false if either component was not found." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists available widget classes, optionally filtered by name substring.", + "name": "UMGToolSet.UMGToolSet.ListWidgetClasses", + "inputSchema": { + "type": "object", + "properties": { + "filter": { + "type": "string", + "description": "Substring to match against class names. Pass empty string to return all classes." + } + }, + "required": [ + "filter" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "UMGWidgetClassEntry", + "type": "object", + "properties": { + "widgetClass": { + "type": "object", + "title": "Class@/Script/UMG.Widget", + "description": "The widget class.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsPanel": { + "type": "boolean", + "description": "Whether this class is a panel (can have children)." + }, + "category": { + "type": "string", + "description": "Category for this widget class." + }, + "description": { + "type": "string", + "description": "Description for this widget class that may contain more information on how the Widget is used and when to use it." + } + }, + "required": [ + "widgetClass", + "bIsPanel", + "category", + "description" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists widget blueprints in a content folder.", + "name": "UMGToolSet.UMGToolSet.ListWidgetBlueprints", + "inputSchema": { + "type": "object", + "properties": { + "folderPath": { + "type": "string", + "description": "Content folder to search, e.g. \"/Game/UI\". Searches recursively." + } + }, + "required": [ + "folderPath" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the maximum depth of the widget tree. Depth: root with no children = 0; root + children = 1; etc.", + "name": "UMGToolSet.UMGToolSet.GetWidgetTreeDepth", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "startWidget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ], + "default": null + } + }, + "required": [ + "widgetBlueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer", + "description": "Depth as int32; -1 on error." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns blueprint info and all widgets in depth-first order.\nChildren within each parent are in their panel slot order - this is the hierarchy order shown in the designer.\nInfo contains ParentClass (pass to CreateWidgetBlueprint) and RootWidgetClass.\nUse ObjectTools.list_properties on each returned Widget and Slot to get property names before calling set_properties.", + "name": "UMGToolSet.UMGToolSet.GetWidgets", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint asset (e.g. \"/Game/UI/WBP_MyWidget\"), excluding the \"_C\" suffix.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetTreeInfo", + "type": "object", + "properties": { + "info": { + "title": "UMGWidgetBlueprintInfo", + "description": "Blueprint-level info: parent class, root widget class, counts.", + "type": "object", + "properties": { + "parentClass": { + "type": "object", + "title": "Class@/Script/UMG.UserWidget", + "description": "Parent class of this widget blueprint. Pass directly to CreateWidgetBlueprint's ParentClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "rootWidgetClass": { + "type": "object", + "title": "Class@/Script/UMG.Widget", + "description": "Root widget class.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetCount": { + "type": "integer", + "description": "Total widget count in the tree." + }, + "inheritedWidgetCount": { + "type": "integer", + "description": "Number of inherited widgets (from C++ parent class)." + }, + "namedSlotCount": { + "type": "integer", + "description": "Number of named slot bindings." + } + }, + "required": [ + "parentClass", + "rootWidgetClass", + "widgetCount", + "inheritedWidgetCount", + "namedSlotCount" + ] + }, + "widgets": { + "type": "array", + "items": { + "title": "UMGWidgetInfo", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + }, + "description": "All widgets in depth-first order. Parent pointer indicates hierarchy." + } + }, + "required": [ + "info", + "widgets" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Full property dump of every widget in the tree.\nEach line: [N] Type Name Prop:Value ... slot:(SlotProp:Value ...)\nN is the 0-based index into result.Widgets -- use result.Widgets[N] to get the widget ref without text parsing.\n\nSame indentation format as GetTaggedWidgetDescription; richer per-widget detail.", + "name": "UMGToolSet.UMGToolSet.GetWidgetDescription", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The WBP asset.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "startWidget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "nullptr = full tree from root.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ], + "default": null + }, + "maxDepth": { + "type": "integer", + "description": "1 = no limit; 0 = StartWidget only; N = N levels.", + "default": -1 + } + }, + "required": [ + "widgetBlueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetDescriptionResult", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Human-readable tree. Each line is prefixed [N] where N is the 0-based index into Widgets." + }, + "widgets": { + "type": "array", + "items": { + "title": "UMGWidgetInfo", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + }, + "description": "Flat walk-order list. result.Widgets[N] corresponds to line [N] in Description. Same entries as GetWidgets." + } + }, + "required": [ + "description", + "widgets" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the Category, Description and if it's a Panel for a single widget class.\nSame per-entry data as ListWidgetClasses, but lets callers query a class they already have\nwithout scanning every UClass. Returns an empty entry if WidgetClass is null.\nCan be used to get more information on the class from the Description and Category.", + "name": "UMGToolSet.UMGToolSet.GetWidgetClassInfo", + "inputSchema": { + "type": "object", + "properties": { + "widgetClass": { + "type": "object", + "title": "Class@/Script/UMG.Widget", + "description": "The widget class to inspect.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetClassEntry", + "type": "object", + "properties": { + "widgetClass": { + "type": "object", + "title": "Class@/Script/UMG.Widget", + "description": "The widget class.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bIsPanel": { + "type": "boolean", + "description": "Whether this class is a panel (can have children)." + }, + "category": { + "type": "string", + "description": "Category for this widget class." + }, + "description": { + "type": "string", + "description": "Description for this widget class that may contain more information on how the Widget is used and when to use it." + } + }, + "required": [ + "widgetClass", + "bIsPanel", + "category", + "description" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns named slot bindings (separate from tree hierarchy).", + "name": "UMGToolSet.UMGToolSet.GetNamedSlots", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to query.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "UMGNamedSlotEntry", + "type": "object", + "properties": { + "slotName": { + "type": "string", + "description": "Slot name (e.g., \"content\", \"header\")." + }, + "hostWidget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Host widget that owns the slot. nullptr = inherited from parent class.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "contentWidget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Root widget placed in the slot.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "slotName", + "hostWidget", + "contentWidget" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new Widget Blueprint asset. Returns the blueprint or nullptr on failure.", + "name": "UMGToolSet.UMGToolSet.CreateWidgetBlueprint", + "inputSchema": { + "type": "object", + "properties": { + "folderPath": { + "type": "string", + "description": "Content folder path, e.g. \"/Game/UI/Widgets\"." + }, + "assetName": { + "type": "string", + "description": "Name for the new blueprint asset." + }, + "parentClass": { + "type": "object", + "title": "Class@/Script/UMG.UserWidget", + "description": "The parent UUserWidget class. Get this from GetWidgets Info.ParentClass on the source blueprint.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folderPath", + "assetName", + "parentClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Compiles a widget blueprint. Returns false with error details if compilation fails.\nErrors include missing BindWidget bindings, type mismatches, and graph errors.\nCall after all widgets and properties are set. Save separately via AssetTools.save_asset.", + "name": "UMGToolSet.UMGToolSet.CompileWidgetBlueprint", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to compile.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a Blueprint event handler graph node bound to a widget's multicast delegate event,\n\nTypical events: UButton::OnClicked / OnPressed / OnReleased / OnHovered / OnUnhovered,\nUCheckBox::OnCheckStateChanged, USlider::OnValueChanged. The matching delegate\nUPROPERTY must exist on PropertyClass (or a parent of it).\n\nPreconditions:\n - PropertyName must exist in the blueprint.\n - PropertyClass must be the widget's class (or a parent class) that declares the delegate.", + "name": "UMGToolSet.UMGToolSet.BindToEventProperty", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint that will own the event handler.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "eventName": { + "type": "string", + "description": "Name of the multicast delegate UPROPERTY on PropertyClass (e.g. \"OnClicked\")." + }, + "propertyName": { + "type": "string", + "description": "Name of the blueprint variable owning the event." + }, + "propertyClass": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class declaring the delegate, typically the widget's class (e.g. UButton::StaticClass()).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint", + "eventName", + "propertyName", + "propertyClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a widget to the tree at the specified position. Returns full widget info including Slot pointer.\nWhen ParentWidget is null and no root exists, the new widget becomes the root of the tree.\nUse ObjectTools.list_properties on the returned Widget and Slot to get property names before calling set_properties.", + "name": "UMGToolSet.UMGToolSet.AddWidget", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClass": { + "type": "object", + "title": "Class@/Script/UMG.Widget", + "description": "The widget class to instantiate.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetDisplayName": { + "type": "string", + "description": "Display name for the new widget instance." + }, + "parentWidget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The panel widget to add to. Pass null to add to root, or to make this widget the root if the tree is empty.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ], + "default": null + }, + "childIndex": { + "type": "integer", + "description": "Position in parent's child list (0 = first child). -1 (default) appends to end.", + "default": -1 + } + }, + "required": [ + "widgetBlueprint", + "widgetClass", + "widgetDisplayName" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetInfo", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a UI component of the given class to the named widget.", + "name": "UMGToolSet.UMGToolSet.AddUIComponent", + "inputSchema": { + "type": "object", + "properties": { + "widgetBlueprint": { + "type": "object", + "title": "/Script/UMGEditor.WidgetBlueprint", + "description": "The widget blueprint to modify.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Name of the widget instance to add the component to." + }, + "componentClass": { + "type": "object", + "title": "Class@/Script/UMG.UIComponent", + "description": "The UIComponent subclass to add.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "widgetBlueprint", + "widgetName", + "componentClass" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "UMGWidgetInfo", + "description": "Info for the widget the component was added to, including the populated UIComponents array. Returns an empty info on failure.", + "type": "object", + "properties": { + "widget": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/UMG.PanelWidget", + "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot": { + "type": "object", + "title": "/Script/UMG.PanelSlot", + "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "namedSlotHost": { + "type": "object", + "title": "/Script/UMG.Widget", + "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "widgetName": { + "type": "string", + "description": "Widget instance name." + }, + "bIsVariable": { + "type": "boolean", + "description": "Whether this widget is exposed as a blueprint variable." + }, + "bInherited": { + "type": "boolean", + "description": "True if this widget is inherited from the C++ parent class." + }, + "uIComponents": { + "type": "array", + "items": { + "title": "UMGUIComponentInfo", + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/UMG.UIComponent", + "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n 1. ObjectTools.list_properties(Component) -> get exact property names\n 2. ObjectTools.get_properties(Component, [names]) -> read current values\n 3. ObjectTools.set_properties(Component, {name: value}) -> write values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "componentClassPath": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "componentClassPath" + ] + }, + "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent." + } + }, + "required": [ + "widget", + "parent", + "slot", + "namedSlotHost", + "widgetClassPath", + "widgetName", + "bIsVariable", + "bInherited", + "uIComponents" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "conversation_toolset.toolsets.conversation.ConversationTools": { + "name": "conversation_toolset.toolsets.conversation.ConversationTools", + "version": "1.0", + "description": "Inspect Conversation Graph (UConversationDatabase) dialogue assets.", + "tools": [ + { + "description": "Returns sub-nodes (requirements, choices) attached to a task node.\n\n Args:\n node: The conversation task node to query.\n Returns:\n A list of UConversationSubNode UObjects.", + "name": "conversation_toolset.toolsets.conversation.ConversationTools.get_sub_nodes", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationTaskNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationSubNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns output connection GUIDs for a conversation node.\n\n Args:\n node: The conversation node to query.\n Returns:\n A list of FGuid output connections.", + "name": "conversation_toolset.toolsets.conversation.ConversationTools.get_node_connections", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationNodeWithLinks", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a conversation node by its GUID.\n\n Args:\n conversation: The ConversationDatabase asset.\n guid: The GUID (from get_node_guids or entry_points).\n Returns:\n The UConversationNode.", + "name": "conversation_toolset.toolsets.conversation.ConversationTools.get_node_by_guid", + "inputSchema": { + "type": "object", + "properties": { + "conversation": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationDatabase", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "guid": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + }, + "required": [ + "conversation", + "guid" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns GUIDs of all reachable nodes, in map iteration order.\n\n Use with get_node_by_guid to look up specific nodes.\n\n Args:\n conversation: The ConversationDatabase asset.\n Returns:\n A list of FGuid structs.", + "name": "conversation_toolset.toolsets.conversation.ConversationTools.get_node_guids", + "inputSchema": { + "type": "object", + "properties": { + "conversation": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationDatabase", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "conversation" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all reachable nodes in the conversation.\n\n Use ObjectTools.get_class and get_properties on each node\n to inspect type and properties. Each node's GUID is\n available via its compiled_node_guid attribute.\n\n Args:\n conversation: The ConversationDatabase asset.\n Returns:\n A list of UConversationNode UObjects.", + "name": "conversation_toolset.toolsets.conversation.ConversationTools.get_all_nodes", + "inputSchema": { + "type": "object", + "properties": { + "conversation": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationDatabase", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "conversation" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns speaker/participant information.\n\n Args:\n conversation: The ConversationDatabase asset.\n Returns:\n A list of FCommonDialogueBankParticipant structs.", + "name": "conversation_toolset.toolsets.conversation.ConversationTools.list_speakers", + "inputSchema": { + "type": "object", + "properties": { + "conversation": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationDatabase", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "conversation" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "CommonDialogueBankParticipant", + "type": "object", + "properties": { + "fallbackName": { + "type": "string" + }, + "participantName": { + "title": "GameplayTag", + "description": "Identifier represented by the component", + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "This Tags Name" + } + }, + "required": [ + "tagName" + ] + }, + "nodeTint": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "fallbackName", + "participantName", + "nodeTint" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns entry points (FConversationEntryList structs).\n\n Args:\n conversation: The ConversationDatabase asset.\n Returns:\n A list of FConversationEntryList structs.", + "name": "conversation_toolset.toolsets.conversation.ConversationTools.list_entry_points", + "inputSchema": { + "type": "object", + "properties": { + "conversation": { + "type": "object", + "title": "/Script/CommonConversationRuntime.ConversationDatabase", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "conversation" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "ConversationEntryList", + "type": "object", + "properties": { + "entryTag": { + "title": "GameplayTag", + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "This Tags Name" + } + }, + "required": [ + "tagName" + ] + }, + "destinationList": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + } + }, + "entryIdentifier": { + "type": "string" + } + }, + "required": [ + "entryTag", + "destinationList", + "entryIdentifier" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "state_tree_toolset.toolsets.state_tree.StateTreeTools": { + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools", + "version": "1.0", + "description": "Inspect StateTree (ST) assets.", + "tools": [ + { + "description": "Returns a human-readable description for a node.\n\n Args:\n state_tree: The StateTree asset.\n node: The editor node to describe.\n\n Returns:\n Formatted description string.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_node_description", + "inputSchema": { + "type": "object", + "properties": { + "state_tree": { + "type": "object", + "title": "/Script/StateTreeModule.StateTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "title": "StateTreeEditorNode", + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instance": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instanceObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "executionRuntimeData": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "executionRuntimeDataObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iD": { + "type": "string", + "description": "ID for the node instance.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "expressionIndent": { + "type": "integer" + }, + "expressionOperand": { + "type": "string", + "title": "EStateTreeExpressionOperand", + "enum": [ + "Copy", + "And", + "Or", + "Multiply" + ] + } + }, + "required": [ + "node", + "instance", + "instanceObject", + "executionRuntimeData", + "executionRuntimeDataObject", + "iD", + "expressionIndent", + "expressionOperand" + ] + } + }, + "required": [ + "state_tree", + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns global evaluators.\n\n Args:\n state_tree: The StateTree asset.\n\n Returns:\n Evaluator editor nodes.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_evaluators", + "inputSchema": { + "type": "object", + "properties": { + "state_tree": { + "type": "object", + "title": "/Script/StateTreeModule.StateTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "StateTreeEditorNode", + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instance": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instanceObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "executionRuntimeData": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "executionRuntimeDataObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iD": { + "type": "string", + "description": "ID for the node instance.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "expressionIndent": { + "type": "integer" + }, + "expressionOperand": { + "type": "string", + "title": "EStateTreeExpressionOperand", + "enum": [ + "Copy", + "And", + "Or", + "Multiply" + ] + } + }, + "required": [ + "node", + "instance", + "instanceObject", + "executionRuntimeData", + "executionRuntimeDataObject", + "iD", + "expressionIndent", + "expressionOperand" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns global tasks that run across all states.\n\n Args:\n state_tree: The StateTree asset.\n\n Returns:\n Global task editor nodes.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_global_tasks", + "inputSchema": { + "type": "object", + "properties": { + "state_tree": { + "type": "object", + "title": "/Script/StateTreeModule.StateTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "StateTreeEditorNode", + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instance": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instanceObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "executionRuntimeData": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "executionRuntimeDataObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iD": { + "type": "string", + "description": "ID for the node instance.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "expressionIndent": { + "type": "integer" + }, + "expressionOperand": { + "type": "string", + "title": "EStateTreeExpressionOperand", + "enum": [ + "Copy", + "And", + "Or", + "Multiply" + ] + } + }, + "required": [ + "node", + "instance", + "instanceObject", + "executionRuntimeData", + "executionRuntimeDataObject", + "iD", + "expressionIndent", + "expressionOperand" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns transitions on a state.\n\n Args:\n state: The state to query.\n\n Returns:\n Transitions.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_transitions", + "inputSchema": { + "type": "object", + "properties": { + "state": { + "type": "object", + "title": "/Script/StateTreeEditorModule.StateTreeState", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "StateTreeTransition", + "type": "object", + "properties": { + "trigger": { + "type": "string", + "title": "EStateTreeTransitionTrigger", + "enum": [ + "None", + "OnStateCompleted", + "OnStateSucceeded", + "OnStateFailed", + "OnTick", + "OnEvent", + "OnDelegate", + "MAX" + ], + "description": "When to try trigger the transition." + }, + "requiredEvent": { + "title": "StateTreeEventDesc", + "description": "Defines the event required to be present during state selection for the transition to trigger.", + "type": "object", + "properties": { + "tag": { + "title": "GameplayTag", + "description": "Event Tag.", + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "This Tags Name" + } + }, + "required": [ + "tagName" + ] + }, + "payloadStruct": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "Event Payload Struct.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bConsumeEventOnSelect": { + "type": "boolean", + "description": "If set to true, the event is consumed (later state selection cannot react to it) if state selection can be made." + }, + "temporaryEvent": { + "title": "StateTreeEvent", + "description": "Temporary event used as a source value in bindings.", + "type": "object", + "properties": { + "tag": { + "title": "GameplayTag", + "description": "Tag describing the event", + "type": "object", + "properties": { + "tagName": { + "type": "string", + "description": "This Tags Name" + } + }, + "required": [ + "tagName" + ] + }, + "payload": { + "type": "object", + "title": "FInstancedStruct", + "description": "Optional payload for the event.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "origin": { + "type": "string", + "description": "Optional info to describe who sent the event." + } + }, + "required": [ + "tag", + "payload", + "origin" + ] + } + }, + "required": [ + "tag", + "payloadStruct", + "bConsumeEventOnSelect", + "temporaryEvent" + ] + }, + "state": { + "title": "StateTreeStateLink", + "description": "Transition target state.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the state at the time of linking, used for error reporting." + }, + "iD": { + "type": "string", + "description": "ID of the state linked to.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "linkType": { + "type": "string", + "title": "EStateTreeTransitionType", + "enum": [ + "None", + "Succeeded", + "Failed", + "GotoState", + "Parent", + "NextState", + "NextSelectableState", + "NextParent", + "NextSelectableParent", + "NotSet" + ], + "description": "Type of the transition, used at edit time to describe e.g. next state (which is calculated at compile time)." + }, + "stateHandle": { + "title": "StateTreeStateHandle", + "description": "Handle of the linked state.", + "type": "object", + "properties": { + "index": { + "type": "integer" + } + }, + "required": [ + "index" + ] + }, + "fallback": { + "type": "string", + "title": "EStateTreeSelectionFallback", + "enum": [ + "None", + "NextSelectableSibling" + ], + "description": "Fallback of the transition if it fails to select the target state" + } + }, + "required": [ + "name", + "iD", + "linkType", + "stateHandle", + "fallback" + ] + }, + "iD": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "delegateListener": { + "title": "StateTreeTransitionDelegateListener", + "description": "Listener to the selected delegate dispatcher.", + "type": "object" + }, + "priority": { + "type": "string", + "title": "EStateTreeTransitionPriority", + "enum": [ + "None", + "Low", + "Normal", + "Medium", + "High", + "Critical" + ], + "description": "Transition priority when multiple transitions happen at the same time.\nDuring transition handling, the transitions are visited from leaf to root.\nThe first visited transition, of highest priority, that leads to a state selection, will be activated." + }, + "bDelayTransition": { + "type": "boolean", + "description": "Delay the triggering of the transition." + }, + "delayDuration": { + "type": "number", + "description": "Transition delay duration in seconds.", + "minimum": 0, + "maximum": 25 + }, + "delayRandomVariance": { + "type": "number", + "description": "Transition delay random variance in seconds.", + "minimum": 0, + "maximum": 25 + }, + "conditions": { + "type": "array", + "items": { + "title": "StateTreeEditorNode", + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instance": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instanceObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "executionRuntimeData": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "executionRuntimeDataObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iD": { + "type": "string", + "description": "ID for the node instance.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "expressionIndent": { + "type": "integer" + }, + "expressionOperand": { + "type": "string", + "title": "EStateTreeExpressionOperand", + "enum": [ + "Copy", + "And", + "Or", + "Multiply" + ] + } + }, + "required": [ + "node", + "instance", + "instanceObject", + "executionRuntimeData", + "executionRuntimeDataObject", + "iD", + "expressionIndent", + "expressionOperand" + ] + }, + "description": "Expression of conditions that need to evaluate to true to allow transition to be triggered." + }, + "reactivateTargetState": { + "type": "string", + "title": "EStateTreeTransitionChangeTypeRules", + "enum": [ + "ForceChanged", + "ForceSustained", + "Default" + ], + "description": "The target state and all the following states will be reactivated. Their instance data will be reinstantiated and will receive EnterState.\nNote: Only enabled when target state is within the nested state (Parent or self). As this only changes behavior for nested states." + }, + "bTransitionEnabled": { + "type": "boolean", + "description": "True if the Transition is Enabled (i.e. not explicitly disabled in the asset)." + } + }, + "required": [ + "trigger", + "requiredEvent", + "state", + "iD", + "delegateListener", + "priority", + "bDelayTransition", + "delayDuration", + "delayRandomVariance", + "conditions", + "reactivateTargetState", + "bTransitionEnabled" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns enter conditions on a state.\n\n Args:\n state: The state to query.\n\n Returns:\n Condition editor nodes.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_enter_conditions", + "inputSchema": { + "type": "object", + "properties": { + "state": { + "type": "object", + "title": "/Script/StateTreeEditorModule.StateTreeState", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "StateTreeEditorNode", + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instance": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instanceObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "executionRuntimeData": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "executionRuntimeDataObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iD": { + "type": "string", + "description": "ID for the node instance.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "expressionIndent": { + "type": "integer" + }, + "expressionOperand": { + "type": "string", + "title": "EStateTreeExpressionOperand", + "enum": [ + "Copy", + "And", + "Or", + "Multiply" + ] + } + }, + "required": [ + "node", + "instance", + "instanceObject", + "executionRuntimeData", + "executionRuntimeDataObject", + "iD", + "expressionIndent", + "expressionOperand" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns tasks on a state.\n\n Args:\n state: The state to query.\n\n Returns:\n Task editor nodes.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_tasks", + "inputSchema": { + "type": "object", + "properties": { + "state": { + "type": "object", + "title": "/Script/StateTreeEditorModule.StateTreeState", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "StateTreeEditorNode", + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instance": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "instanceObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "executionRuntimeData": { + "type": "object", + "title": "FInstancedStruct", + "description": "Polymorphic struct. Provide _structType with the UScriptStruct path (e.g. /Script/Module.StructName) to create from scratch.", + "properties": { + "_structType": { + "type": "string", + "description": "UScriptStruct path name for polymorphic type identification (e.g. /Script/Module.StructName)." + } + } + }, + "executionRuntimeDataObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "iD": { + "type": "string", + "description": "ID for the node instance.", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "expressionIndent": { + "type": "integer" + }, + "expressionOperand": { + "type": "string", + "title": "EStateTreeExpressionOperand", + "enum": [ + "Copy", + "And", + "Or", + "Multiply" + ] + } + }, + "required": [ + "node", + "instance", + "instanceObject", + "executionRuntimeData", + "executionRuntimeDataObject", + "iD", + "expressionIndent", + "expressionOperand" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns child states of a state.\n\n Args:\n state: The state to query.\n\n Returns:\n Child states.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_children", + "inputSchema": { + "type": "object", + "properties": { + "state": { + "type": "object", + "title": "/Script/StateTreeEditorModule.StateTreeState", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/StateTreeEditorModule.StateTreeState", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns top-level states of a StateTree.\n\n Args:\n state_tree: The StateTree asset.\n\n Returns:\n Root-level states.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_root_states", + "inputSchema": { + "type": "object", + "properties": { + "state_tree": { + "type": "object", + "title": "/Script/StateTreeModule.StateTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/StateTreeEditorModule.StateTreeState", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the editor data for a StateTree asset.\n\n Args:\n state_tree: The StateTree asset.\n\n Returns:\n The editor data object.", + "name": "state_tree_toolset.toolsets.state_tree.StateTreeTools.get_editor_data", + "inputSchema": { + "type": "object", + "properties": { + "state_tree": { + "type": "object", + "title": "/Script/StateTreeModule.StateTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "state_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/StateTreeEditorModule.StateTreeEditorData", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.actor.ActorTools": { + "name": "editor_toolset.toolsets.actor.ActorTools", + "version": "1.0", + "description": "Provides tools for inspecting and modifying actors, including\n their transforms, labels, parent-child relationships, and components.", + "tools": [ + { + "description": "Removes a component from an actor instance or blueprint.\n\n Args:\n component: The component to remove.\n\n Returns:\n True if the component was successfully removed.", + "name": "editor_toolset.toolsets.actor.ActorTools.remove_component", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Engine.ActorComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a component to an actor instance or blueprint.\n\n Args:\n owner: The actor blueprint, instance, or SceneComponent to add to.\n component_type: The type of component to add.\n name: The name of the new component.\n\n Returns:\n The newly added actor component.", + "name": "editor_toolset.toolsets.actor.ActorTools.add_component", + "inputSchema": { + "type": "object", + "properties": { + "owner": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "component_type": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "owner", + "component_type", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.ActorComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the components that an actor contains.\n\n Args:\n actor: The actor to query.\n component_type: If set, will only return components of this type.\n\n Returns:\n The components in the actor.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_components", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "component_type": { + "default": null, + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.ActorComponent", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the bounding box of an actor.\n\n Args:\n actor: The actor to query.\n\n Returns:\n The world space bounding box for the actor.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_actor_bounds", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "Box", + "type": "object", + "properties": { + "min": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "max": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "isValid": { + "type": "boolean" + } + }, + "required": [ + "min", + "max", + "isValid" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the parent for the specified scene component.\n\n For blueprint actors, passing a component as the parent of the root promotes it\n to the scene root, making the current root a child of it. If the current root is a\n DefaultSceneRoot, Unreal will automatically remove it.\n\n Args:\n component: The scene component to modify.\n parent: The new parent component. None will detach the component from its current parent.\n\n Returns:\n True if the reparent succeeded.", + "name": "editor_toolset.toolsets.actor.ActorTools.set_parent_component", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Engine.SceneComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "default": null, + "type": "object", + "title": "/Script/Engine.SceneComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the parent component that this component is attached to, if any.\n\n Args:\n component: The scene component to query.\n\n Returns:\n The parent SceneComponent if attached to one, otherwise None.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_parent_component", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Engine.SceneComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.SceneComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + } + }, + { + "description": "Returns the actor that owns the specified component.\n\n Args:\n component: The component to query.\n\n Returns:\n The actor that owns this component.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_component_actor", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Engine.ActorComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the root component of an actor, if any.\n\n Args:\n actor: The actor to query.\n\n Returns:\n The actor's root SceneComponent, or None if it has no root component.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_root_component", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.SceneComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + } + }, + { + "description": "Rotates an actor so its forward vector points at a world-space position.\n\n Args:\n actor: The actor to rotate.\n target: The world-space position to face.", + "name": "editor_toolset.toolsets.actor.ActorTools.look_at", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "target": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + }, + "required": [ + "actor", + "target" + ] + } + }, + { + "description": "Updates the position, rotation, and/or scale of an actor.\n\n Args:\n actor: The actor to modify.\n xform: The new transform to apply to this actor.\n worldspace: True means xform is in worldpace. False means relative to parent.\n Has no effect on actors in blueprints, which only have a default\n relative transform.\n\n Returns:\n True if an id matching the actor was found and it's position was set.", + "name": "editor_toolset.toolsets.actor.ActorTools.set_actor_transform", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "xform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "worldspace": { + "type": "boolean", + "default": true + } + }, + "required": [ + "actor", + "xform" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the position, rotation, and scale of an actor.\n\n Args:\n actor: The actor to query.\n\n Returns:\n The world space actor transform.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_actor_transform", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a tag from an actor.\n\n Args:\n actor: The actor to modify.\n tag: The tag to remove.", + "name": "editor_toolset.toolsets.actor.ActorTools.remove_tag", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "tag": { + "type": "string" + } + }, + "required": [ + "actor", + "tag" + ] + } + }, + { + "description": "Adds a tag to an actor.\n\n Args:\n actor: The actor to modify.\n tag: The tag to add.", + "name": "editor_toolset.toolsets.actor.ActorTools.add_tag", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "tag": { + "type": "string" + } + }, + "required": [ + "actor", + "tag" + ] + } + }, + { + "description": "Returns whether an actor has a specific tag.\n\n Args:\n actor: The actor to query.\n tag: The tag to check for.\n\n Returns:\n True if the actor has the tag, False otherwise.", + "name": "editor_toolset.toolsets.actor.ActorTools.has_tag", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "tag": { + "type": "string" + } + }, + "required": [ + "actor", + "tag" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the list of tags on an actor.\n\n Args:\n actor: The actor to query.\n\n Returns:\n The tags on the actor as strings.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_tags", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the human-friendly name of the actor.\n\n Args:\n actor: The actor to modify.\n label: The new name for the actor.\n\n Returns:\n True if the label was updated correctly.", + "name": "editor_toolset.toolsets.actor.ActorTools.set_label", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "label": { + "type": "string" + } + }, + "required": [ + "actor", + "label" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the actor's human friendly name as it appears in the editor.\n\n Args:\n actor: The actor to query.\n\n Returns:\n The label for the actor.", + "name": "editor_toolset.toolsets.actor.ActorTools.get_label", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.asset.AssetTools": { + "name": "editor_toolset.toolsets.asset.AssetTools", + "version": "1.0", + "description": "Provides tools for interacting with assets in the Unreal project and files on disk.", + "tools": [ + { + "description": "Writes text content to a file on disk.\n\n Only files under /Game/, an enabled plugin's Content/ directory, or\n the project Saved/ directory may be written. Only plain text formats\n are supported. Overwrites the file if it already exists.\n\n Args:\n file_path: The path to the file to write.\n content: The text content to write.", + "name": "editor_toolset.toolsets.asset.AssetTools.write_file", + "inputSchema": { + "type": "object", + "properties": { + "file_path": { + "type": "string" + }, + "content": { + "type": "string" + } + }, + "required": [ + "file_path", + "content" + ] + } + }, + { + "description": "Reads a text file from disk and returns its contents.\n\n Only files under /Game/, an enabled plugin's Content/ directory, or\n the project Saved/ directory may be read. Only plain text formats are\n supported.\n\n Args:\n file_path: The path to the file to read.\n\n Returns:\n The text content of the file.", + "name": "editor_toolset.toolsets.asset.AssetTools.read_file", + "inputSchema": { + "type": "object", + "properties": { + "file_path": { + "type": "string" + } + }, + "required": [ + "file_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the root content paths for plugins that have content.\n\n Args:\n include_engine: When True, also includes content plugins under the Engine directory.\n\n Returns:\n A list of virtual content root paths (e.g. ['/PluginName/']) for each\n in-scope plugin that has a content directory.", + "name": "editor_toolset.toolsets.asset.AssetTools.get_plugin_content_paths", + "inputSchema": { + "type": "object", + "properties": { + "include_engine": { + "type": "boolean", + "default": false + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists assets that the specified asset depends on.\n\n Args:\n asset_path: Content path to the asset.\n\n Returns:\n A list of content paths for assets that the given asset depends on.", + "name": "editor_toolset.toolsets.asset.AssetTools.get_dependencies", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists assets that reference the specified asset.\n\n Args:\n asset_path: Content path to the asset.\n\n Returns:\n A list of content paths for assets that reference the given asset.", + "name": "editor_toolset.toolsets.asset.AssetTools.get_referencers", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether an asset is checked out by the current user.\n\n Args:\n asset_path: Content path to the asset.\n\n Returns:\n True if the asset is currently checked out by the current user.", + "name": "editor_toolset.toolsets.asset.AssetTools.is_checked_out", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether an asset can be edited.\n\n Args:\n asset_path: Content path to the asset.\n\n Returns:\n True if the asset can be edited, False if it is checked out\n or locked by another user in source control. Always True\n when source control is not enabled.", + "name": "editor_toolset.toolsets.asset.AssetTools.can_edit_asset", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether an asset has unsaved changes.\n\n Args:\n asset_path: The path to the asset to check.\n\n Returns:\n True if the asset has unsaved changes, False if it is saved.", + "name": "editor_toolset.toolsets.asset.AssetTools.is_dirty", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Saves assets to disk.\n\n Args:\n asset_paths: The paths to the assets to save. Pass an empty list to save\n all dirty assets.\n\n Returns:\n True if all assets were saved successfully.", + "name": "editor_toolset.toolsets.asset.AssetTools.save_assets", + "inputSchema": { + "type": "object", + "properties": { + "asset_paths": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "asset_paths" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Loads an asset from the project.\n\n Args:\n asset_path: The path to the asset to load.\n\n Returns:\n The loaded asset.", + "name": "editor_toolset.toolsets.asset.AssetTools.load_asset", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets or removes metadata tags on an asset.\n\n Args:\n asset_path: Content path to the asset.\n set_tags: Tag names mapped to the values to set.\n remove_tags: Tag names to remove. Removing a tag that does not\n exist is a no-op.", + "name": "editor_toolset.toolsets.asset.AssetTools.update_metadata_tags", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + }, + "set_tags": { + "default": null, + "type": "object", + "additionalProperties": { + "type": "string", + "default": null + } + }, + "remove_tags": { + "default": null, + "type": "array", + "items": { + "type": "string", + "default": null + } + } + }, + "required": [ + "asset_path" + ] + } + }, + { + "description": "Gets the metadata tags for an asset.\n\n Args:\n asset_path: Content path to the asset.\n\n Returns:\n A dict mapping tag names to their string values.", + "name": "editor_toolset.toolsets.asset.AssetTools.get_metadata_tags", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the class of an asset.\n\n Args:\n asset_path: Content path to the asset.\n\n Returns:\n The class name of the asset (e.g. 'StaticMesh', 'Material', 'HeroCharacter_C').", + "name": "editor_toolset.toolsets.asset.AssetTools.get_asset_class", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the asset registry tags for an asset.\n\n Args:\n asset_path: Content path to the asset.\n\n Returns:\n A dict mapping tag names to their string values.", + "name": "editor_toolset.toolsets.asset.AssetTools.get_asset_tags", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + } + }, + "required": [ + "asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Searches the project for assets that match specific criteria.\n\n Args:\n folder_path: The folder to search within. Pass an empty string to search\n the entire project (/Game/ and all plugin content folders including\n project plugins and engine plugins).\n name: If set, will only return assets whose name contains this string\n (case-insensitive).\n asset_type: If set, will only return assets that are of this type.\n recursive: Whether to search subfolders or not.\n tags: If set, will only return assets whose asset registry tags contain\n all specified key-value pairs with exact value matches.\n\n Returns:\n A list of asset paths that match the criteria.", + "name": "editor_toolset.toolsets.asset.AssetTools.find_assets", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "name": { + "type": "string" + }, + "asset_type": { + "default": null, + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "recursive": { + "type": "boolean", + "default": true + }, + "tags": { + "default": null, + "type": "object", + "additionalProperties": { + "type": "string", + "default": null + } + } + }, + "required": [ + "folder_path", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Deletes an asset or folder.\n\n Args:\n path: The current location of the folder or asset.\n\n Returns:\n True if the delete happened successfully. False otherwise.", + "name": "editor_toolset.toolsets.asset.AssetTools.delete", + "inputSchema": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Moves or renames an asset or folder.\n\n Args:\n path: The current location of the folder or asset.\n new_path: The new location and/or name.\n\n Returns:\n True if the rename happened successfully. False otherwise.", + "name": "editor_toolset.toolsets.asset.AssetTools.move", + "inputSchema": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "new_path": { + "type": "string" + } + }, + "required": [ + "path", + "new_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Makes a copy of a folder or asset.\n\n Args:\n path: The current location of folder or asset.\n new_path: The location of the copy.\n\n Returns:\n True if the copy happened successfully. False otherwise.", + "name": "editor_toolset.toolsets.asset.AssetTools.duplicate", + "inputSchema": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "new_path": { + "type": "string" + } + }, + "required": [ + "path", + "new_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Determines if a folder or asset exists.\n\n Args:\n path: The path at which an asset or folder might exist.\n\n Returns:\n True if an asset or folder exists at the path. False otherwise.", + "name": "editor_toolset.toolsets.asset.AssetTools.exists", + "inputSchema": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists the folders contained within a folder.\n\n Args:\n root: The project relative path to the folder to search from.\n recursive: Subfolders will be searched when this is set to true.\n\n Returns:\n A list of paths to folders", + "name": "editor_toolset.toolsets.asset.AssetTools.list_folders", + "inputSchema": { + "type": "object", + "properties": { + "root_path": { + "type": "string" + }, + "recursive": { + "type": "boolean", + "default": true + } + }, + "required": [ + "root_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a folder at the specified path.\n\n Args:\n path: The project relative path at which to create the folder.\n\n Returns:\n True if the folder could be created or already exists.", + "name": "editor_toolset.toolsets.asset.AssetTools.create_folder", + "inputSchema": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.blueprint.BlueprintTools": { + "name": "editor_toolset.toolsets.blueprint.BlueprintTools", + "version": "1.0", + "description": "Provides tools for working with Blueprints.", + "tools": [ + { + "description": "Reads a Blueprint graph and returns a DSL script.\n\n The returned code uses the same syntax that write_graph_dsl accepts and can\n be edited and passed back to write_graph_dsl to modify the graph.\n Call get_graph_dsl_docs() for the full syntax reference.\n\n Args:\n graph: The graph to read.\n\n Returns:\n An S-expression DSL script representing the graph's logic.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.read_graph_dsl", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Populates a Blueprint graph with nodes from a DSL script and compiles the Blueprint.\n\n Call get_graph_dsl_docs() for the full syntax reference and examples.\n\n Args:\n graph: The graph to populate with nodes.\n code: The S-expression DSL script to convert into Blueprint nodes.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.write_graph_dsl", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "code": { + "type": "string" + } + }, + "required": [ + "graph", + "code" + ] + } + }, + { + "description": "Returns the full syntax reference for write_graph_dsl.\n\n Call this before using write_graph_dsl for the first time.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_graph_dsl_docs", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists all event dispatchers defined on a Blueprint.\n\n Args:\n blueprint: The Blueprint to list event dispatchers for.\n\n Returns:\n A list of event dispatcher graphs, one per dispatcher.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.list_event_dispatchers", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds an event dispatcher to a Blueprint.\n\n Args:\n blueprint: The Blueprint to add the dispatcher to.\n name: The name of the new event dispatcher.\n\n Returns:\n The event dispatcher graph.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_event_dispatcher", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "blueprint", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a member or local variable from a Blueprint.\n\n Args:\n blueprint: The Blueprint to remove the variable from.\n name: The name of the variable to remove.\n graph: If provided, removes a local variable from this function graph instead of a\n member variable.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.remove_variable", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "graph": { + "default": null, + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint", + "name" + ] + } + }, + { + "description": "Sets the user-defined category on a Blueprint member variable.\n\n Categories group variables in the My Blueprint panel. Pass an empty string\n to reset to the default (the Blueprint's name).\n\n Args:\n blueprint: The Blueprint containing the variable.\n variable_name: The name of the member variable to modify.\n category: The new category text.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.set_variable_category", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variable_name": { + "type": "string" + }, + "category": { + "type": "string" + } + }, + "required": [ + "blueprint", + "variable_name", + "category" + ] + } + }, + { + "description": "Gets the user-defined category of a Blueprint member variable.\n\n Categories group variables in the My Blueprint panel. Variables with no\n explicit category default to the Blueprint's name in the UI.\n\n Args:\n blueprint: The Blueprint containing the variable.\n variable_name: The name of the member variable to query.\n\n Returns:\n The category as a string. Empty string if the variable has no custom\n category override.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_variable_category", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variable_name": { + "type": "string" + } + }, + "required": [ + "blueprint", + "variable_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the replication mode on a Blueprint member variable.\n\n RepNotify will automatically create an OnRep_ function on the Blueprint if one does not\n already exist.\n\n Args:\n blueprint: The Blueprint containing the variable.\n variable_name: The name of the member variable to modify.\n replication: Replication mode (NONE, REPLICATED, or REP_NOTIFY).", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.set_variable_replication", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variable_name": { + "type": "string" + }, + "replication": { + "type": "string", + "title": "EBlueprintVariableReplication", + "enum": [ + "None", + "Replicated", + "RepNotify" + ] + } + }, + "required": [ + "blueprint", + "variable_name", + "replication" + ] + } + }, + { + "description": "Gets the replication mode of a Blueprint member variable.\n\n Args:\n blueprint: The Blueprint containing the variable.\n variable_name: The name of the member variable to query.\n\n Returns:\n The replication mode (NONE, REPLICATED, or REP_NOTIFY).", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_variable_replication", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variable_name": { + "type": "string" + } + }, + "required": [ + "blueprint", + "variable_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "title": "EBlueprintVariableReplication", + "enum": [ + "None", + "Replicated", + "RepNotify" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets whether a member variable is editable per-instance on actors placed in the level.\n\n Args:\n blueprint: The Blueprint containing the variable.\n variable_name: The name of the member variable to modify.\n instance_editable: True to make the variable editable on instances, False to hide it.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.set_variable_instance_editable", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variable_name": { + "type": "string" + }, + "instance_editable": { + "type": "boolean" + } + }, + "required": [ + "blueprint", + "variable_name", + "instance_editable" + ] + } + }, + { + "description": "Lists member or local variables defined on a Blueprint.\n\n Args:\n blueprint: The Blueprint to list variables for.\n graph: If provided, lists local variables in this function graph instead of\n member variables.\n\n Returns:\n A list of variable names.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.list_variables", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "default": null, + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a member or local variable that holds an object reference to a Blueprint.\n\n Args:\n blueprint: The Blueprint to add the variable to.\n name: The variable name.\n object_class: The class of object this variable will reference.\n graph: If provided, adds a local variable to this function graph instead of a\n member variable.\n container_type: Container type for the variable. MAP uses string as the key type.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_object_variable", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "object_class": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "default": null, + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "container_type": { + "default": null, + "type": "string", + "title": "ContainerType", + "enum": [ + "ARRAY", + "SET", + "MAP" + ] + } + }, + "required": [ + "blueprint", + "name", + "object_class" + ] + } + }, + { + "description": "Adds a member or local variable of a struct type to a Blueprint.\n\n Use this to add variables of any UStruct type, including custom structs and engine\n structs not in the basic list supported by add_variable (e.g. HitResult, GameplayTag).\n\n Args:\n blueprint: The Blueprint to add the variable to.\n name: The variable name.\n struct_type: The struct type for this variable.\n graph: If provided, adds a local variable to this function graph instead of a\n member variable.\n container_type: Container type for the variable. MAP uses string as the key type.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_struct_variable", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "struct_type": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "default": null, + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "container_type": { + "default": null, + "type": "string", + "title": "ContainerType", + "enum": [ + "ARRAY", + "SET", + "MAP" + ] + } + }, + "required": [ + "blueprint", + "name", + "struct_type" + ] + } + }, + { + "description": "Adds a member or local variable to a Blueprint.\n\n Supported type names:\n Primitives: 'bool', 'int', 'float', 'byte', 'string', 'name', 'text'\n Structs: 'Vector', 'Rotator', 'Transform', 'Vector2D', 'LinearColor'\n\n Args:\n blueprint: The Blueprint to add the variable to.\n name: The variable name.\n type_name: The variable type as a string (see above).\n graph: If provided, adds a local variable to this function graph instead of a\n member variable.\n container_type: Container type for the variable. MAP uses string as the key type.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_variable", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "type_name": { + "type": "string" + }, + "graph": { + "default": null, + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "container_type": { + "default": null, + "type": "string", + "title": "ContainerType", + "enum": [ + "ARRAY", + "SET", + "MAP" + ] + } + }, + "required": [ + "blueprint", + "name", + "type_name" + ] + } + }, + { + "description": "Reparents a Blueprint to a new parent class.\n\n The Blueprint must be recompiled after reparenting.\n\n Args:\n blueprint: The Blueprint to reparent.\n parent_class: The new parent class. Must be a UObject subclass.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.set_parent", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent_class": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint", + "parent_class" + ] + } + }, + { + "description": "Returns the parent class of a Blueprint.\n\n Args:\n blueprint: The Blueprint whose parent class to retrieve.\n\n Returns:\n The parent class of the Blueprint's generated class.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_parent", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Gets the value of a Blueprint graph pin.\n\n Args:\n pin: The PinID of the pin to read. Must be an input pin that supports default values.\n\n Returns:\n The value of the pin as a string.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_pin_value", + "inputSchema": { + "type": "object", + "properties": { + "pin": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "pin" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the value of a Blueprint graph pin.\n\n Args:\n pin: The PinID of the pin to modify. Must be an input pin that supports default values.\n value: The value to assign as a string. Format depends on the pin's data type:\n - Numeric pins (int/float): \"42\" or \"3.14\"\n - Boolean pins: \"true\" or \"false\"\n - String/Name/Text pins: \"Hello World\"\n - Object reference pins: \"/Game/Path/To/Asset.Asset\"", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.set_pin_value", + "inputSchema": { + "type": "object", + "properties": { + "pin": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "pin", + "value" + ] + } + }, + { + "description": "Breaks the connection between two pins.\n\n Args:\n output_pin: The PinID of the output pin to disconnect from.\n input_pin: The PinID of the input pin to disconnect from.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.break_pins", + "inputSchema": { + "type": "object", + "properties": { + "output_pin": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "input_pin": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "output_pin", + "input_pin" + ] + } + }, + { + "description": "Makes a connection between source (output) and dest (input) pins.\n\n Args:\n output_pin: The PinID of the output pin to connect from.\n input_pin: The PinID of the input pin to connect to.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.connect_pins", + "inputSchema": { + "type": "object", + "properties": { + "output_pin": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "input_pin": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "output_pin", + "input_pin" + ] + } + }, + { + "description": "Arranges a list of nodes in a readable left-to-right layout.\n\n Organizes nodes into columns based on data/execution flow, with producer nodes to\n the left of the nodes they feed into. Call this after building a graph\n to avoid nodes overlapping. Connections to nodes outside the list are used as anchors\n so the arranged nodes integrate cleanly with the rest of the graph.\n\n Args:\n nodes: The nodes to arrange.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.arrange_nodes", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "nodes" + ] + } + }, + { + "description": "Sets a new position for the node.\n\n Args:\n node: Node to be moved\n pos: New x, y position of the node in the graph", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.set_node_position", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "pos": { + "title": "IntPoint", + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "node", + "pos" + ] + } + }, + { + "description": "Replaces a node's baked-in class reference from old_class to new_class in place.\n\n If the node's current class reference matches old_class it is replaced with\n new_class and the node is reconstructed so its pins reflect the new type.\n If the node already references new_class the call is a no-op.\n\n When a Blueprint is duplicated, nodes in the copied graph retain class references\n pointing to the original Blueprint. Calling this on each node with the original\n and duplicate classes retargets them without manual delete-recreate-rewire cycles.\n\n Handles cast, function call, event, and multicast delegate nodes. The Blueprint\n must be compiled after all retargeting is complete.\n\n Args:\n node: The node to retarget.\n old_class: The class currently baked into the node.\n new_class: The replacement class.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.retarget_node_class", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "old_class": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "new_class": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node", + "old_class", + "new_class" + ] + } + }, + { + "description": "Removes a specific pin from a node that supports dynamic pin removal.\n\n Works for Switch nodes (removes one case pin), Sequence nodes (removes one Then output),\n commutative binary operators like Add/Multiply (removes one input), Make Array nodes, etc.\n\n Args:\n node: The node to remove a pin from. Must support dynamic pin removal.\n pin: The PinID of the pin to remove.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.remove_node_pin", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "pin": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "node", + "pin" + ] + } + }, + { + "description": "Adds a pin to a node that supports dynamic pin addition.\n\n Works for Switch nodes (adds one case pin), Sequence nodes (adds one Then output),\n commutative binary operators like Add/Multiply (adds one input), Make Array nodes, etc.\n\n Args:\n node: The node to add a pin to. Must support dynamic pin addition.\n\n Returns:\n The PinID of the newly added pin.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_node_pin", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Deletes the node from its graph.\n\n Args:\n node: The node to be deleted", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.delete_node", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + } + }, + { + "description": "Adds a new node to the graph.\n\n Args:\n graph: The graph to add a node to\n type_id: The type of the node to add. Eg 'Development|PrintString',\n 'Utilities|Operators|Add', a macro like 'Utilities|FlowControl|ForLoop', a\n dispatcher event handler like 'Default|EventDispatcherOnDamaged', an event\n like 'AddEvent|EventBeginPlay', or a named custom event with\n 'AddEvent|Custom|MyEventName'.\n pos: The x, y position of the created node\n declaring_class: The class that should own the created node. Only set this when you need\n to disambiguate nodes that share the same type_id to ensure the correct one is used.\n\n Returns:\n Returns the new node", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.create_node", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "type_id": { + "type": "string" + }, + "pos": { + "title": "IntPoint", + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + }, + "declaring_class": { + "default": null, + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "graph", + "type_id", + "pos" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a component bound event node in the event graph.\n\n Args:\n component: The component to bind the event to. Must be a component on a Blueprint actor.\n event_name: The name of the delegate event to bind, e.g. 'OnComponentBeginOverlap'.\n graph: The event graph to add the node to.\n\n Returns:\n The created or pre-existing component bound event node.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_component_bound_event", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Engine.ActorComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "event_name": { + "type": "string" + }, + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component", + "event_name", + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists the bindable delegate events available on a component.\n\n Args:\n component: The component to query. Must be a component on a Blueprint actor.\n\n Returns:\n The names of all bindable events on the component, e.g. OnComponentBeginOverlap.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.list_component_events", + "inputSchema": { + "type": "object", + "properties": { + "component": { + "type": "object", + "title": "/Script/Engine.ActorComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "component" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Retrieves a list of available node categories in a Blueprint graph, optionally filtered by compatible input and/or output pin types\n\n Note: Categories are everything before the last | character in a node type id (eg 'Utilities|Operators' in the 'Utilities|Operators|Add' type id)\n\n Args:\n graph: the graph to make the search for\n category_filter: Substring to match against the node categories (case-insensitive). Pass an empty string to return all categories.\n context_pins: If set, only returns categories with nodes whose pin types match those specified in this list\n\n Returns:\n Returns node categories that match the input criteria", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.find_node_categories", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "category_filter": { + "type": "string" + }, + "context_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + } + }, + "required": [ + "graph", + "category_filter", + "context_pins" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the pin names and types for a node type.\n\n Args:\n graph: The graph context used to resolve the node type.\n type_id: A node type_id as returned by find_node_types.\n\n Returns:\n NodeInfo with input_pins and output_pins listing each pin's name and type.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_node_type_pins", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "type_id": { + "type": "string" + } + }, + "required": [ + "graph", + "type_id" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "NodeInfo", + "type": "object", + "properties": { + "output_pins": { + "type": "array", + "items": { + "title": "PinInfo", + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "connected_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "pin_id": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "type_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "connected_pins", + "pin_id", + "type_id", + "name" + ] + } + }, + "input_pins": { + "type": "array", + "items": { + "title": "PinInfo", + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "connected_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "pin_id": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "type_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "connected_pins", + "pin_id", + "type_id", + "name" + ] + } + }, + "position": { + "title": "IntPoint", + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "type_id": { + "type": "string", + "description": "type_id is in the format Category|Title" + } + }, + "required": [ + "output_pins", + "input_pins", + "position", + "node", + "type_id" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Finds node types that can be created in a particular graph meeting the search criteria.\n\n Note: there can be thousands of valid node types in a graph, so type_id_filter should be\n reasonably specific even if that requires multiple searches.\n\n To list all nodes within a category, use a trailing pipe: e.g. 'Utilities|FlowControl|'\n returns every node under that category. Without the trailing pipe, 'Utilities|FlowControl'\n also matches any node whose type_id contains that substring (such as a node with category\n 'Utilities' and title 'FlowControl').\n\n Args:\n graph: the graph to make the search for\n type_id_filter: Substring to match against the node type_id (case-insensitive)\n context_pins: If set, only returns nodes whose pin types match those specified in this list\n\n Returns:\n Returns nodes that match the input criteria", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.find_node_types", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "type_id_filter": { + "type": "string" + }, + "context_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + } + }, + "required": [ + "graph", + "type_id_filter", + "context_pins" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns detailed information for all nodes connected to the given node.\n\n Use this alongside find_nodes to read a single event chain from a large graph\n (like Event Graph) without reading the entire graph.\n\n Args:\n node: The starting node.\n\n Returns:\n Every node reachable from the given node via any connection, including\n the starting node itself.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_connected_subgraph", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "NodeInfo", + "type": "object", + "properties": { + "output_pins": { + "type": "array", + "items": { + "title": "PinInfo", + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "connected_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "pin_id": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "type_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "connected_pins", + "pin_id", + "type_id", + "name" + ] + } + }, + "input_pins": { + "type": "array", + "items": { + "title": "PinInfo", + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "connected_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "pin_id": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "type_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "connected_pins", + "pin_id", + "type_id", + "name" + ] + } + }, + "position": { + "title": "IntPoint", + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "type_id": { + "type": "string", + "description": "type_id is in the format Category|Title" + } + }, + "required": [ + "output_pins", + "input_pins", + "position", + "node", + "type_id" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Finds nodes in a graph by title, class, and/or execution role.\n\n All filters are optional and ANDed together. Useful for locating specific\n event chains in large graphs like EventGraph before reading them with\n get_connected_subgraph.\n\n Args:\n graph: The graph to search.\n title: Case-insensitive substring to match against the node's displayed\n title. Pass an empty string to match any title.\n node_class: If provided, only returns nodes that are instances of this\n class or its subclasses.\n entry_points_only: If True, only returns entry point nodes - nodes with\n an exec output but no exec input (event nodes, function entry nodes,\n macro input tunnels, etc.). Nothing can drive these nodes; they\n start execution themselves.\n\n Returns:\n All nodes in the graph matching the given filters.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.find_nodes", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "title": { + "type": "string" + }, + "node_class": { + "default": null, + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "entry_points_only": { + "type": "boolean", + "default": false + } + }, + "required": [ + "graph", + "title" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists functions that can be bound to a Create Event node.\n\n Args:\n node: The Create Event node.\n\n Returns:\n A list of function names valid for binding.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.list_compatible_event_functions", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/BlueprintGraph.K2Node_CreateDelegate", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Binds a function to a Create Event node.\n\n Use list_compatible_event_functions to find valid function names.\n\n Args:\n node: The Create Event node.\n function_name: The name of the function to bind.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.set_create_event_function", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/BlueprintGraph.K2Node_CreateDelegate", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "function_name": { + "type": "string" + } + }, + "required": [ + "node", + "function_name" + ] + } + }, + { + "description": "Returns the function currently bound to a Create Event node.\n\n Args:\n node: The Create Event node.\n\n Returns:\n The bound function name, or empty string if none is set.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_create_event_function", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/BlueprintGraph.K2Node_CreateDelegate", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Retrieves detailed information for a list of Blueprint graph nodes.\n\n Args:\n nodes: The graph nodes to retrieve information from.\n\n Returns:\n Information about each node, including type, pins, connections, and position.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_node_infos", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "nodes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "NodeInfo", + "type": "object", + "properties": { + "output_pins": { + "type": "array", + "items": { + "title": "PinInfo", + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "connected_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "pin_id": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "type_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "connected_pins", + "pin_id", + "type_id", + "name" + ] + } + }, + "input_pins": { + "type": "array", + "items": { + "title": "PinInfo", + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "connected_pins": { + "type": "array", + "items": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "pin_id": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + }, + "type_id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "connected_pins", + "pin_id", + "type_id", + "name" + ] + } + }, + "position": { + "title": "IntPoint", + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "type_id": { + "type": "string", + "description": "type_id is in the format Category|Title" + } + }, + "required": [ + "output_pins", + "input_pins", + "position", + "node", + "type_id" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds an object reference input or output to a function or event dispatcher.\n\n Note: output params are not supported on event dispatchers.\n\n Args:\n graph: The function or event dispatcher graph to add the param to.\n param_name: The name of the new param.\n object_class: The class of object this param will reference.\n input_param: True to add an input param, false to add an output.\n container_type: Container type for the param. MAP uses string as the key type.\n Returns:\n The PinID of the newly created param.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_object_function_param", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "param_name": { + "type": "string" + }, + "object_class": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "input_param": { + "type": "boolean" + }, + "container_type": { + "default": null, + "type": "string", + "title": "ContainerType", + "enum": [ + "ARRAY", + "SET", + "MAP" + ] + } + }, + "required": [ + "graph", + "param_name", + "object_class", + "input_param" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a struct input or output to a function or event dispatcher.\n\n Note: output params are not supported on event dispatchers.\n\n Use this to add parameters of any UStruct type, including custom structs and engine\n structs not in the basic list supported by add_function_param (e.g. HitResult, GameplayTag).\n\n Args:\n graph: The function or event dispatcher graph to add the parameter to.\n param_name: The name of the new parameter.\n struct_type: The struct type for this parameter.\n input_param: True to add an input param, false to add an output.\n container_type: Container type for the parameter. MAP uses string as the key type.\n\n Returns:\n The PinID of the newly created parameter.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_struct_function_param", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "param_name": { + "type": "string" + }, + "struct_type": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "input_param": { + "type": "boolean" + }, + "container_type": { + "default": null, + "type": "string", + "title": "ContainerType", + "enum": [ + "ARRAY", + "SET", + "MAP" + ] + } + }, + "required": [ + "graph", + "param_name", + "struct_type", + "input_param" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes an input or output from a function or event dispatcher.\n\n Note: output params are not supported on event dispatchers.\n\n Args:\n graph: The function or event dispatcher graph to remove the param from.\n param_name: The name of the param to remove.\n input_param: True to remove an input param, False to remove an output.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.remove_function_param", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "param_name": { + "type": "string" + }, + "input_param": { + "type": "boolean" + } + }, + "required": [ + "graph", + "param_name", + "input_param" + ] + } + }, + { + "description": "Adds an input or output to a function or event dispatcher\n\n Note: output params are not supported on event dispatchers.\n\n Supported parameter types:\n Primitives: 'bool', 'int', 'float', 'byte', 'string', 'name', 'text'\n Structs: 'Vector', 'Rotator', 'Transform', 'Vector2D', 'LinearColor'\n\n Args:\n graph: The function or event dispatcher graph to add the parameter to.\n param_name: The name of the new parameter.\n param_type: The parameter type as a string (see above).\n input_param: True to add an input param, false to add an output.\n container_type: Container type for the parameter. MAP uses string as the key type.\n\n Returns:\n The PinID of the newly created parameter.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_function_param", + "inputSchema": { + "type": "object", + "properties": { + "graph": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "param_name": { + "type": "string" + }, + "param_type": { + "type": "string" + }, + "input_param": { + "type": "boolean" + }, + "container_type": { + "default": null, + "type": "string", + "title": "ContainerType", + "enum": [ + "ARRAY", + "SET", + "MAP" + ] + } + }, + "required": [ + "graph", + "param_name", + "param_type", + "input_param" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "PinID", + "type": "object", + "properties": { + "direction": { + "type": "string", + "title": "EEdGraphPinDirection", + "enum": [ + "EGPD_Input", + "EGPD_Output" + ] + }, + "index_id": { + "type": "integer" + }, + "node": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "direction", + "index_id", + "node" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a function graph or event dispatcher from the Blueprint.\n\n Note: This will close the Blueprint editor window if it is currently open.\n\n Args:\n blueprint: The Blueprint asset to remove the function graph from.\n graph_name: The name of the function or dispatcher to remove.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.remove_function_graph", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph_name": { + "type": "string" + } + }, + "required": [ + "blueprint", + "graph_name" + ] + } + }, + { + "description": "Adds an event node to the Blueprint's event graph.\n\n If event_name matches an inherited overridable event, the new node is an\n override of that event. Otherwise a new custom event with the given name is\n created. Idempotent \u2014 if an event node with that name already exists,\n that node is returned.\n\n Args:\n blueprint: The Blueprint asset to add the event to.\n event_name: The name of an inherited event to override (e.g.\n 'ReceiveAnyDamage') or a name for a new custom event.\n position: Position of the new node in the event graph.\n\n Returns:\n The event node.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_event", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "event_name": { + "type": "string" + }, + "position": { + "title": "IntPoint", + "default": { + "x": 0, + "y": 0 + }, + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "blueprint", + "event_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.EdGraphNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a function graph to the Blueprint.\n\n If graph_name matches an inherited overridable function, the new graph is a\n function-graph override of that function. Idempotent \u2014 if a graph with that\n name already exists, that graph is returned.\n\n Args:\n blueprint: The Blueprint asset to add the function to.\n graph_name: The name of the new function graph.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.add_function_graph", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph_name": { + "type": "string" + } + }, + "required": [ + "blueprint", + "graph_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists all events visible on the Blueprint \u2014 locally defined custom events\n plus inheritable events from the parent class chain and implemented interfaces.\n\n Args:\n blueprint: The Blueprint asset to query.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.list_events", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "BlueprintFunctionInfo", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The function or event's identifier \u2014 the name a caller would use to refer to it." + }, + "description": { + "type": "string", + "description": "Short human-readable description, e.g. the tooltip shown in the editor. Empty if none." + }, + "bIsImplemented": { + "type": "boolean", + "description": "True if this function/event already has a graph or node on the Blueprint; false if it is only available to implement or override." + } + }, + "required": [ + "name", + "description", + "bIsImplemented" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists all functions visible on the Blueprint \u2014 locally defined plus\n inheritable ones from the parent class chain and implemented interfaces.\n\n Args:\n blueprint: The Blueprint asset to query.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.list_functions", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "BlueprintFunctionInfo", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The function or event's identifier \u2014 the name a caller would use to refer to it." + }, + "description": { + "type": "string", + "description": "Short human-readable description, e.g. the tooltip shown in the editor. Empty if none." + }, + "bIsImplemented": { + "type": "boolean", + "description": "True if this function/event already has a graph or node on the Blueprint; false if it is only available to implement or override." + } + }, + "required": [ + "name", + "description", + "bIsImplemented" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Retrieves a specific graph from a Blueprint asset by name.\n\n Args:\n blueprint: The Blueprint asset to search within.\n graph_name: The name of the graph to retrieve (e.g., \"EventGraph\", \"MyFunction\")\n\n Returns:\n The graph object matching the specified name.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_graph", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph_name": { + "type": "string" + } + }, + "required": [ + "blueprint", + "graph_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists all graphs in the Blueprint.\n\n Args:\n blueprint: The Blueprint asset with the graphs to list.\n\n Returns:\n list of graphs in the Blueprint.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.list_graphs", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.EdGraph", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the Class Default Object (CDO) for a Blueprint's.\n\n ObjectTools list/set/get property will get the CDO automatically, so this\n should primarily be used before calling tools that want to operate on the\n object inside the blueprint (like ActorTools).\n\n Note: The Blueprint must be compiled for the CDO to reflect the latest state.\n\n Args:\n blueprint: The Blueprint whose CDO to retrieve.\n\n Returns:\n The Class Default Object for the Blueprint's generated class.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.get_default_object", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "blueprint" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Compiles the given Blueprint.\n\n Blueprints should be compiled after all graph modifications are complete.\n\n Args:\n blueprint: The Blueprint to compile.\n warnings_as_errors: If True, raise on compile warnings as well as errors.\n Defaults to False.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.compile_blueprint", + "inputSchema": { + "type": "object", + "properties": { + "blueprint": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "warnings_as_errors": { + "type": "boolean", + "default": false + } + }, + "required": [ + "blueprint" + ] + } + }, + { + "description": "Creates a new Blueprint asset in the project.\n\n Args:\n folder_path: The path to the folder that will contain the asset.\n asset_name: The name of the asset in the folder.\n asset_type: The specific kind of Blueprint to make.\n\n Returns:\n The Blueprint that was created.", + "name": "editor_toolset.toolsets.blueprint.BlueprintTools.create", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "asset_type": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folder_path", + "asset_name", + "asset_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Blueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.curve_table.CurveTableTools": { + "name": "editor_toolset.toolsets.curve_table.CurveTableTools", + "version": "1.0", + "description": "Provides tools for creating and editing CurveTable assets.", + "tools": [ + { + "description": "Returns all keys for a row.\n\n Args:\n curve_table: The CurveTable to query.\n row_name: The name of the row to query.\n\n Returns:\n A list of SimpleCurveKey objects for the row.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.get_keys", + "inputSchema": { + "type": "object", + "properties": { + "curve_table": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_name": { + "type": "string" + } + }, + "required": [ + "curve_table", + "row_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SimpleCurveKey", + "type": "object", + "properties": { + "time": { + "type": "number", + "description": "Time at this key" + }, + "value": { + "type": "number", + "description": "Value at this key" + } + }, + "required": [ + "time", + "value" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Replaces all keys in a row with the provided list.\n\n Args:\n curve_table: The CurveTable to modify.\n row_name: The name of the row to modify.\n keys: The keys to set in the row.\n\n Returns:\n True if all keys were set successfully.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.set_keys", + "inputSchema": { + "type": "object", + "properties": { + "curve_table": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_name": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "title": "SimpleCurveKey", + "type": "object", + "properties": { + "time": { + "type": "number", + "description": "Time at this key" + }, + "value": { + "type": "number", + "description": "Value at this key" + } + }, + "required": [ + "time", + "value" + ] + } + } + }, + "required": [ + "curve_table", + "row_name", + "keys" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a key to a row.\n\n Args:\n curve_table: The CurveTable to modify.\n row_name: The name of the row to modify.\n key: The key to add, containing the time and value.\n\n Returns:\n True if the key was added successfully.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.add_key", + "inputSchema": { + "type": "object", + "properties": { + "curve_table": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_name": { + "type": "string" + }, + "key": { + "title": "SimpleCurveKey", + "type": "object", + "properties": { + "time": { + "type": "number", + "description": "Time at this key" + }, + "value": { + "type": "number", + "description": "Value at this key" + } + }, + "required": [ + "time", + "value" + ] + } + }, + "required": [ + "curve_table", + "row_name", + "key" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Renames a row in the curve table.\n\n Args:\n curve_table: The CurveTable to modify.\n row_name: The current name of the row.\n new_row_name: The new name for the row.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.rename_row", + "inputSchema": { + "type": "object", + "properties": { + "curve_table": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_name": { + "type": "string" + }, + "new_row_name": { + "type": "string" + } + }, + "required": [ + "curve_table", + "row_name", + "new_row_name" + ] + } + }, + { + "description": "Removes a row from the curve table.\n\n Args:\n curve_table: The CurveTable to modify.\n row_name: The name of the row to remove.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.remove_row", + "inputSchema": { + "type": "object", + "properties": { + "curve_table": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_name": { + "type": "string" + } + }, + "required": [ + "curve_table", + "row_name" + ] + } + }, + { + "description": "Adds a new row to the curve table with an optional default value.\n\n Args:\n curve_table: The CurveTable to modify.\n row_name: The name for the new row.\n default_value: The default value returned when sampling outside the key range.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.add_row", + "inputSchema": { + "type": "object", + "properties": { + "curve_table": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_name": { + "type": "string" + }, + "default_value": { + "default": null, + "type": "number" + } + }, + "required": [ + "curve_table", + "row_name" + ] + } + }, + { + "description": "Lists the names of all rows in the curve table.\n\n Args:\n curve_table: The CurveTable to query.\n\n Returns:\n A list of row names.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.list_rows", + "inputSchema": { + "type": "object", + "properties": { + "curve_table": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "curve_table" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new CurveTable asset.\n\n Args:\n folder_path: The path to the folder that will contain the asset.\n asset_name: The name of the asset.\n\n Returns:\n The created CurveTable.", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.create", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + } + }, + "required": [ + "folder_path", + "asset_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.CurveTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Imports a file from disk as a CurveTable asset.\n\n The file's first column is the row name; subsequent columns are sample\n times and values. interp_mode controls how the imported keys are\n interpolated between samples.\n\n Args:\n folder_path: The content-browser folder to create the asset in.\n asset_name: The name of the new asset.\n source_file: The absolute path to the source file on disk.\n interp_mode: Interpolation mode applied to every imported key.\n Must be RCIM_LINEAR or RCIM_CONSTANT.\n\n Returns:\n The assets produced by the import (typically a single CurveTable).", + "name": "editor_toolset.toolsets.curve_table.CurveTableTools.import_file", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "source_file": { + "type": "string" + }, + "interp_mode": { + "type": "string", + "title": "ERichCurveInterpMode", + "enum": [ + "RCIM_Linear", + "RCIM_Constant", + "RCIM_Cubic", + "RCIM_None" + ] + } + }, + "required": [ + "folder_path", + "asset_name", + "source_file", + "interp_mode" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.data_asset.DataAssetTools": { + "name": "editor_toolset.toolsets.data_asset.DataAssetTools", + "version": "1.0", + "description": "Provides tools for working with Data Assets.", + "tools": [ + { + "description": "Creates a new DataAsset asset in the project.\n\n Args:\n folder_path: The path to the folder that will contain the asset.\n asset_name: The name of the asset in the folder.\n asset_type: The specific kind of DataClass to make.\n\n Returns:\n The DataAsset that was created.", + "name": "editor_toolset.toolsets.data_asset.DataAssetTools.create", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "asset_type": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folder_path", + "asset_name", + "asset_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.DataAsset", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.data_table.DataTableTools": { + "name": "editor_toolset.toolsets.data_table.DataTableTools", + "version": "1.0", + "description": "Provides tools for creating and editing DataTable assets.", + "tools": [ + { + "description": "Sets column values for one or more rows.\n\n Args:\n data_table: The DataTable to modify.\n values: A JSON object mapping row names to objects of camelCase property\n names and values to update. Only specified properties are updated;\n others remain unchanged.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.set_rows", + "inputSchema": { + "type": "object", + "properties": { + "data_table": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "values": { + "type": "string" + } + }, + "required": [ + "data_table", + "values" + ] + } + }, + { + "description": "Returns the column values for one or more rows as a JSON string.\n\n Args:\n data_table: The DataTable to query.\n row_names: The names of the rows to retrieve.\n\n Returns:\n A JSON object mapping each row name to an object of property names and values.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.get_rows", + "inputSchema": { + "type": "object", + "properties": { + "data_table": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "data_table", + "row_names" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Renames one or more rows in the data table.\n\n Args:\n data_table: The DataTable to modify.\n renames: A mapping of existing row names to their new names.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.rename_rows", + "inputSchema": { + "type": "object", + "properties": { + "data_table": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "renames": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "data_table", + "renames" + ] + } + }, + { + "description": "Removes rows from the data table.\n\n Args:\n data_table: The DataTable to modify.\n row_names: The names of the rows to remove.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.remove_rows", + "inputSchema": { + "type": "object", + "properties": { + "data_table": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "data_table", + "row_names" + ] + } + }, + { + "description": "Adds new rows with default values to the data table.\n\n Args:\n data_table: The DataTable to modify.\n row_names: The names for the new rows.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.add_rows", + "inputSchema": { + "type": "object", + "properties": { + "data_table": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "data_table", + "row_names" + ] + } + }, + { + "description": "Lists the names of all rows in the data table.\n\n Args:\n data_table: The DataTable to query.\n\n Returns:\n A list of row names.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.list_rows", + "inputSchema": { + "type": "object", + "properties": { + "data_table": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "data_table" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the column schema of the data table as a JSON string.\n\n Args:\n data_table: The DataTable to query.\n\n Returns:\n A JSON formatted string mapping column names to their type info.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.get_schema", + "inputSchema": { + "type": "object", + "properties": { + "data_table": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "data_table" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new DataTable asset with the specified column schema.\n\n Args:\n folder_path: The path to the folder that will contain the asset.\n asset_name: The name of the asset.\n schema: The struct that defines the columns of the table.\n Must be a subclass of TableRowBase.\n\n Returns:\n The created DataTable.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.create", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "schema": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folder_path", + "asset_name", + "schema" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.DataTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Imports a file from disk as a DataTable asset.\n\n The file's columns must match the property names in schema. Use\n search_row_structs to discover usable schema structs.\n\n Args:\n folder_path: The content-browser folder to create the asset in.\n asset_name: The name of the new asset.\n source_file: The absolute path to the source file on disk.\n schema: The struct that defines the columns of the table. Must be a\n subclass of TableRowBase.\n\n Returns:\n The assets produced by the import (typically a single DataTable).", + "name": "editor_toolset.toolsets.data_table.DataTableTools.import_file", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "source_file": { + "type": "string" + }, + "schema": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folder_path", + "asset_name", + "source_file", + "schema" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Finds structs that can be used as a DataTable schema.\n\n Args:\n struct_name: If set, will filter structs by name using wildcard match.\n\n Returns:\n A list of structs derived from TableRowBase that match the criteria.", + "name": "editor_toolset.toolsets.data_table.DataTableTools.search_row_structs", + "inputSchema": { + "type": "object", + "properties": { + "struct_name": { + "type": "string", + "default": "*" + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.ScriptStruct", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.material.MaterialTools": { + "name": "editor_toolset.toolsets.material.MaterialTools", + "version": "1.0", + "description": "Provides tools for creating and editing Material and MaterialFunction assets.", + "tools": [ + { + "description": "Returns asset data for all Materials that reference this MaterialFunction.\n\n Args:\n material_function: The MaterialFunction to query.\n\n Returns:\n Asset data for each Material that uses this function.", + "name": "editor_toolset.toolsets.material.MaterialTools.get_referencing_materials", + "inputSchema": { + "type": "object", + "properties": { + "material_function": { + "type": "object", + "title": "/Script/Engine.MaterialFunction", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material_function" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "AssetData", + "type": "object", + "properties": { + "objectPath": { + "type": "string" + }, + "packageName": { + "type": "string", + "description": "The name of the package in which the asset is found, this is the full long package name such as /Game/Path/Package" + }, + "packagePath": { + "type": "string", + "description": "The path to the package in which the asset is found, this is /Game/Path with the Package stripped off" + }, + "assetName": { + "type": "string", + "description": "The name of the asset without the package" + }, + "assetClass": { + "type": "string" + }, + "assetClassPath": { + "title": "TopLevelAssetPath", + "description": "The path of the asset's class, e.g. /Script/Engine.StaticMesh", + "type": "object", + "properties": { + "packageName": { + "type": "string", + "description": "Name of the package containing the asset e.g. /Path/To/Package" + }, + "assetName": { + "type": "string", + "description": "Name of the asset within the package e.g. 'AssetName'" + } + }, + "required": [ + "packageName", + "assetName" + ] + } + }, + "required": [ + "objectPath", + "packageName", + "packagePath", + "assetName", + "assetClass", + "assetClassPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Recompiles a Material or MaterialFunction after edits.\n\n For Materials, raises if the shader fails to compile. For MaterialFunctions,\n also recompiles any Materials that reference the function.\n\n Call this once after a set of graph modifications is complete - after adding or\n deleting expressions, making connections, or changing expression properties such as\n parameter names or default values.\n\n Args:\n material_or_function: The Material or MaterialFunction to recompile.", + "name": "editor_toolset.toolsets.material.MaterialTools.recompile", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material_or_function" + ] + } + }, + { + "description": "Deletes all expression nodes not connected to any material output.\n\n Useful for cleaning up a material graph after reorganising or after the AI\n has added experimental nodes that were later abandoned.\n\n Note: triggers no recompile - call recompile() afterwards if needed.\n\n Args:\n material: The Material to clean up.", + "name": "editor_toolset.toolsets.material.MaterialTools.delete_unused_expressions", + "inputSchema": { + "type": "object", + "properties": { + "material": { + "type": "object", + "title": "/Script/Engine.Material", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material" + ] + } + }, + { + "description": "Disconnects the expression currently connected to a material output property.\n\n Args:\n material: The Material to modify.\n material_property: The material output property to disconnect.", + "name": "editor_toolset.toolsets.material.MaterialTools.disconnect_from_output", + "inputSchema": { + "type": "object", + "properties": { + "material": { + "type": "object", + "title": "/Script/Engine.Material", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "material_property": { + "type": "string", + "title": "EMaterialProperty", + "enum": [ + "MP_EmissiveColor", + "MP_Opacity", + "MP_OpacityMask", + "MP_DiffuseColor", + "MP_SpecularColor", + "MP_BaseColor", + "MP_Metallic", + "MP_Specular", + "MP_Roughness", + "MP_Anisotropy", + "MP_Normal", + "MP_Tangent", + "MP_WorldPositionOffset", + "MP_WorldDisplacement_DEPRECATED", + "MP_TessellationMultiplier_DEPRECATED", + "MP_SubsurfaceColor", + "MP_CustomData0", + "MP_CustomData1", + "MP_AmbientOcclusion", + "MP_Refraction", + "MP_CustomizedUVs0", + "MP_CustomizedUVs1", + "MP_CustomizedUVs2", + "MP_CustomizedUVs3", + "MP_CustomizedUVs4", + "MP_CustomizedUVs5", + "MP_CustomizedUVs6", + "MP_CustomizedUVs7", + "MP_PixelDepthOffset", + "MP_ShadingModel", + "MP_FrontMaterial", + "MP_SurfaceThickness", + "MP_Displacement", + "MP_MaterialAttributes", + "MP_CustomOutput", + "MP_LastCustomizedUVs", + "MP_NumCustomizedUVs" + ] + } + }, + "required": [ + "material", + "material_property" + ] + } + }, + { + "description": "Connects an expression node's output to one of the material's output properties.\n\n Args:\n expression: The expression whose output will drive the property.\n output_name: The output pin name. Pass an empty string to use the\n default (first) output.\n material_property: The material output property to connect to.", + "name": "editor_toolset.toolsets.material.MaterialTools.connect_to_output", + "inputSchema": { + "type": "object", + "properties": { + "expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "output_name": { + "type": "string" + }, + "material_property": { + "type": "string", + "title": "EMaterialProperty", + "enum": [ + "MP_EmissiveColor", + "MP_Opacity", + "MP_OpacityMask", + "MP_DiffuseColor", + "MP_SpecularColor", + "MP_BaseColor", + "MP_Metallic", + "MP_Specular", + "MP_Roughness", + "MP_Anisotropy", + "MP_Normal", + "MP_Tangent", + "MP_WorldPositionOffset", + "MP_WorldDisplacement_DEPRECATED", + "MP_TessellationMultiplier_DEPRECATED", + "MP_SubsurfaceColor", + "MP_CustomData0", + "MP_CustomData1", + "MP_AmbientOcclusion", + "MP_Refraction", + "MP_CustomizedUVs0", + "MP_CustomizedUVs1", + "MP_CustomizedUVs2", + "MP_CustomizedUVs3", + "MP_CustomizedUVs4", + "MP_CustomizedUVs5", + "MP_CustomizedUVs6", + "MP_CustomizedUVs7", + "MP_PixelDepthOffset", + "MP_ShadingModel", + "MP_FrontMaterial", + "MP_SurfaceThickness", + "MP_Displacement", + "MP_MaterialAttributes", + "MP_CustomOutput", + "MP_LastCustomizedUVs", + "MP_NumCustomizedUVs" + ] + } + }, + "required": [ + "expression", + "output_name", + "material_property" + ] + } + }, + { + "description": "Returns the expression and output pin feeding a material output property.\n\n Use to inspect what drives MP_EmissiveColor, MP_Opacity, MP_BaseColor, etc.\n\n Args:\n material: The Material to query.\n material_property: The material output property.\n\n Returns:\n A MaterialInputSource with input_name empty. Its expression field is\n None when the output property is disconnected.", + "name": "editor_toolset.toolsets.material.MaterialTools.get_property_input", + "inputSchema": { + "type": "object", + "properties": { + "material": { + "type": "object", + "title": "/Script/Engine.Material", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "material_property": { + "type": "string", + "title": "EMaterialProperty", + "enum": [ + "MP_EmissiveColor", + "MP_Opacity", + "MP_OpacityMask", + "MP_DiffuseColor", + "MP_SpecularColor", + "MP_BaseColor", + "MP_Metallic", + "MP_Specular", + "MP_Roughness", + "MP_Anisotropy", + "MP_Normal", + "MP_Tangent", + "MP_WorldPositionOffset", + "MP_WorldDisplacement_DEPRECATED", + "MP_TessellationMultiplier_DEPRECATED", + "MP_SubsurfaceColor", + "MP_CustomData0", + "MP_CustomData1", + "MP_AmbientOcclusion", + "MP_Refraction", + "MP_CustomizedUVs0", + "MP_CustomizedUVs1", + "MP_CustomizedUVs2", + "MP_CustomizedUVs3", + "MP_CustomizedUVs4", + "MP_CustomizedUVs5", + "MP_CustomizedUVs6", + "MP_CustomizedUVs7", + "MP_PixelDepthOffset", + "MP_ShadingModel", + "MP_FrontMaterial", + "MP_SurfaceThickness", + "MP_Displacement", + "MP_MaterialAttributes", + "MP_CustomOutput", + "MP_LastCustomizedUVs", + "MP_NumCustomizedUVs" + ] + } + }, + "required": [ + "material", + "material_property" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MaterialInputSource", + "type": "object", + "properties": { + "output_name": { + "type": "string" + }, + "expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "input_name": { + "type": "string" + } + }, + "required": [ + "output_name", + "expression", + "input_name" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the current wiring of each input pin on a material expression.\n\n Use after building or modifying a graph to verify the wiring matches\n expectations.\n\n Args:\n material_or_function: The Material or MaterialFunction that owns the expression.\n expression: The expression whose input wiring to read.\n\n Returns:\n One entry per input pin, in declaration order matching\n get_expression_input_names. The expression field is None for\n unwired pins.", + "name": "editor_toolset.toolsets.material.MaterialTools.get_expression_inputs", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material_or_function", + "expression" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MaterialInputSource", + "type": "object", + "properties": { + "output_name": { + "type": "string" + }, + "expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "input_name": { + "type": "string" + } + }, + "required": [ + "output_name", + "expression", + "input_name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Disconnects the input pin of an expression node, removing whatever is connected to it.\n\n Args:\n to_expression: The expression whose input pin should be disconnected.\n to_input_name: The input pin name to disconnect. Use get_expression_input_names\n to discover valid names. Pass an empty string to disconnect the first input.", + "name": "editor_toolset.toolsets.material.MaterialTools.disconnect_expressions", + "inputSchema": { + "type": "object", + "properties": { + "to_expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "to_input_name": { + "type": "string" + } + }, + "required": [ + "to_expression", + "to_input_name" + ] + } + }, + { + "description": "Connects an expression node's output pin to another expression node's input pin.\n\n Args:\n from_expression: The expression providing the output value.\n from_output_name: The output pin name. Pass an empty string to use the\n default (first) output.\n to_expression: The expression receiving the input.\n to_input_name: The input pin name to connect to. Use get_expression_input_names\n to discover valid names.", + "name": "editor_toolset.toolsets.material.MaterialTools.connect_expressions", + "inputSchema": { + "type": "object", + "properties": { + "from_expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "from_output_name": { + "type": "string" + }, + "to_expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "to_input_name": { + "type": "string" + } + }, + "required": [ + "from_expression", + "from_output_name", + "to_expression", + "to_input_name" + ] + } + }, + { + "description": "Returns the names of all output pins on a material expression node.\n\n Use these names as from_output_name when calling connect_expressions or\n connect_to_output. The empty string represents the default (first) output\n of nodes that expose only an unnamed output.\n\n Args:\n expression: The expression node to query.\n\n Returns:\n The output pin names available on the expression.", + "name": "editor_toolset.toolsets.material.MaterialTools.get_expression_output_names", + "inputSchema": { + "type": "object", + "properties": { + "expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "expression" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all input pins on a material expression node.\n\n Use these names as to_input_name when calling connect_expressions.\n\n Args:\n expression: The expression node to query.\n\n Returns:\n The input pin names available on the expression.", + "name": "editor_toolset.toolsets.material.MaterialTools.get_expression_input_names", + "inputSchema": { + "type": "object", + "properties": { + "expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "expression" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a parameter group, ungrouping all parameters that belong to it.\n\n The parameter expressions themselves are not deleted - only their group assignment\n is cleared.\n\n Note: triggers an internal recompile; no separate call to recompile/update is needed.\n\n Args:\n material_or_function: The Material or MaterialFunction to modify.\n group_name: The name of the group to delete.", + "name": "editor_toolset.toolsets.material.MaterialTools.delete_parameter_group", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "group_name": { + "type": "string" + } + }, + "required": [ + "material_or_function", + "group_name" + ] + } + }, + { + "description": "Renames a parameter group across all parameter expressions in a Material or\n MaterialFunction.\n\n All parameters currently in old_name will be moved to new_name. If new_name\n already exists, the parameters are merged into it.\n\n Note: triggers an internal recompile; no separate call to recompile/update is needed.\n\n Args:\n material_or_function: The Material or MaterialFunction to modify.\n old_name: The current name of the group to rename.\n new_name: The new name for the group.", + "name": "editor_toolset.toolsets.material.MaterialTools.rename_parameter_group", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "old_name": { + "type": "string" + }, + "new_name": { + "type": "string" + } + }, + "required": [ + "material_or_function", + "old_name", + "new_name" + ] + } + }, + { + "description": "Returns the unique parameter group names defined in a Material or MaterialFunction.\n\n Parameters are organised into groups in the Material Instance editor. This returns\n the distinct set of group names found across all parameter expressions in the graph.\n The empty string represents parameters that have not been assigned to a named group.\n\n Args:\n material_or_function: The Material or MaterialFunction to query.\n\n Returns:\n A sorted list of unique group names.", + "name": "editor_toolset.toolsets.material.MaterialTools.list_parameter_groups", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material_or_function" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Automatically arranges all expression nodes in a Material or MaterialFunction graph.\n\n Args:\n material_or_function: The Material or MaterialFunction whose graph should be tidied.", + "name": "editor_toolset.toolsets.material.MaterialTools.layout_expressions", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material_or_function" + ] + } + }, + { + "description": "Returns all expression nodes in a Material or MaterialFunction graph.\n\n Args:\n material_or_function: The Material or MaterialFunction to query.\n\n Returns:\n All MaterialExpression nodes in the graph.", + "name": "editor_toolset.toolsets.material.MaterialTools.get_expressions", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material_or_function" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes an expression node from a Material or MaterialFunction graph.\n\n Args:\n material_or_function: The Material or MaterialFunction that owns the expression.\n expression: The expression node to remove.", + "name": "editor_toolset.toolsets.material.MaterialTools.delete_expression", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "expression": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material_or_function", + "expression" + ] + } + }, + { + "description": "Adds a new expression node to a Material or MaterialFunction graph.\n\n Use list_expression_classes to discover available types.\n\n Args:\n material_or_function: The Material or MaterialFunction to add the expression to.\n expression_class: The type of expression node to create.\n x: Horizontal position in the graph editor.\n y: Vertical position in the graph editor.\n\n Returns:\n The newly created MaterialExpression node.", + "name": "editor_toolset.toolsets.material.MaterialTools.add_expression", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "expression_class": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "x": { + "type": "integer", + "default": 0 + }, + "y": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "material_or_function", + "expression_class" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.MaterialExpression", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns MaterialExpression subclasses valid for the given context.\n\n Use the results with add_expression. Pass a search string to filter by name,\n e.g. 'Multiply' or 'Parameter'.\n\n Args:\n material_or_function: The Material or MaterialFunction to filter by context.\n search: Optional case-insensitive substring filter on the class path.\n\n Returns:\n Matching MaterialExpression subclass paths.", + "name": "editor_toolset.toolsets.material.MaterialTools.list_expression_classes", + "inputSchema": { + "type": "object", + "properties": { + "material_or_function": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "search": { + "type": "string" + } + }, + "required": [ + "material_or_function", + "search" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new empty MaterialParameterCollection (MPC) asset.\n\n An MPC holds named Scalar and Vector parameters with default values\n that materials can reference at runtime without recompiling shaders.\n\n Args:\n folder_path: The content-browser path to the folder for the new asset.\n asset_name: The name of the new asset.\n\n Returns:\n The newly created MaterialParameterCollection.", + "name": "editor_toolset.toolsets.material.MaterialTools.create_parameter_collection", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + } + }, + "required": [ + "folder_path", + "asset_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.MaterialParameterCollection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new empty MaterialFunction asset.\n\n Args:\n folder_path: The content-browser path to the folder for the new asset.\n asset_name: The name of the new asset.\n\n Returns:\n The newly created MaterialFunction.", + "name": "editor_toolset.toolsets.material.MaterialTools.create_function", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + } + }, + "required": [ + "folder_path", + "asset_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.MaterialFunction", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new empty Material asset.\n\n Warning: Each new Material increases shader compile times. Prefer creating\n a MaterialInstance from an existing Material where possible.\n\n Args:\n folder_path: The content-browser path to the folder for the new asset.\n asset_name: The name of the new asset.\n\n Returns:\n The newly created Material.", + "name": "editor_toolset.toolsets.material.MaterialTools.create_material", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + } + }, + "required": [ + "folder_path", + "asset_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Material", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.material_instance.MaterialInstanceTools": { + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools", + "version": "1.0", + "description": "Provides tools for creating and modifying MaterialInstanceConstant assets.", + "tools": [ + { + "description": "Enables or disables a parameter override on a material instance.\n\n Enabling sets the override to the current effective value. Disabling reverts\n to the parent. For non-static parameter types, disabling also discards the\n prior override value; re-enabling later restores the parent value, not the\n prior override. Static switches and static component masks preserve their\n value across toggle.\n\n Args:\n instance: The MaterialInstanceConstant to modify.\n name: The parameter name.\n override: True to enable the override, False to clear it.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.set_parameter_override", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "override": { + "type": "boolean" + } + }, + "required": [ + "instance", + "name", + "override" + ] + } + }, + { + "description": "Clears all parameter overrides on a material instance, reverting to parent defaults.\n\n Args:\n instance: The MaterialInstanceConstant to clear.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.clear_parameters", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "instance" + ] + } + }, + { + "description": "Changes the parent of a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to modify.\n parent: The new parent Material or MaterialInstance.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.set_parent", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent": { + "type": "object", + "title": "/Script/Engine.MaterialInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "instance", + "parent" + ] + } + }, + { + "description": "Sets the value of a static switch parameter on a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to modify.\n name: The parameter name.\n value: The new boolean value.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.set_static_switch_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "value": { + "type": "boolean" + } + }, + "required": [ + "instance", + "name", + "value" + ] + } + }, + { + "description": "Gets the value of a static switch parameter on a material instance.\n\n Note: Overriding static switch parameters triggers a shader recompile.\n\n Args:\n instance: The MaterialInstanceConstant to query.\n name: The parameter name.\n\n Returns:\n The effective boolean value, inheriting from the parent if not overridden.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.get_static_switch_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "instance", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Assigns a texture to a texture parameter on a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to modify.\n name: The parameter name.\n value: The Texture asset to assign.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.set_texture_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "value": { + "type": "object", + "title": "/Script/Engine.Texture", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "instance", + "name", + "value" + ] + } + }, + { + "description": "Gets the texture assigned to a texture parameter on a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to query.\n name: The parameter name.\n\n Returns:\n The assigned Texture, or None if the parameter is not overridden on this instance.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.get_texture_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "instance", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Texture", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + } + }, + { + "description": "Sets the value of a vector parameter on a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to modify.\n name: The parameter name.\n value: The new value as a LinearColor (RGBA). Use values in the range 0\u20131\n for standard colors; values above 1 are valid for HDR and emissive.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.set_vector_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "value": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "instance", + "name", + "value" + ] + } + }, + { + "description": "Gets the current value of a vector parameter on a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to query.\n name: The parameter name.\n\n Returns:\n The effective value as a LinearColor (RGBA), inheriting from the parent if\n not overridden.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.get_vector_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "instance", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the value of a scalar parameter on a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to modify.\n name: The parameter name.\n value: The new scalar (float) value.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.set_scalar_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "required": [ + "instance", + "name", + "value" + ] + } + }, + { + "description": "Gets the current value of a scalar parameter on a material instance.\n\n Args:\n instance: The MaterialInstanceConstant to query.\n name: The parameter name.\n\n Returns:\n The effective scalar (float) value, inheriting from the parent if not overridden.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.get_scalar_parameter", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "instance", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "number" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all parameters exposed by a material or instance, with their names and types.\n\n Args:\n material: The Material or MaterialInstance to query.\n\n Returns:\n A list of MaterialParameter entries, each with a name and a type.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.list_parameters", + "inputSchema": { + "type": "object", + "properties": { + "material": { + "type": "object", + "title": "/Script/Engine.MaterialInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "material" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MaterialParameter", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "MaterialParameterType", + "enum": [ + "Scalar", + "Vector", + "Texture", + "StaticSwitch" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new MaterialInstanceConstant asset derived from a parent material.\n\n Material instances expose the parent's parameters without triggering a full\n shader recompile when parameter values change.\n\n Args:\n folder_path: The content-browser path to the folder for the new asset.\n asset_name: The name of the new asset.\n parent: The parent Material or MaterialInstance to derive from.\n\n Returns:\n The newly created MaterialInstanceConstant.", + "name": "editor_toolset.toolsets.material_instance.MaterialInstanceTools.create", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "parent": { + "type": "object", + "title": "/Script/Engine.MaterialInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folder_path", + "asset_name", + "parent" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.MaterialInstanceConstant", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.object.ObjectTools": { + "name": "editor_toolset.toolsets.object.ObjectTools", + "version": "1.0", + "description": "Provides tools for inspecting and modifying the properties of\n Unreal Objects and Unreal Classes, including those in Blueprints.\n Also use this toolset to discover available classes and subclasses.", + "tools": [ + { + "description": "Resets one or more properties on an object to their default values,\n removing any per-instance overrides.\n\n Args:\n instance: The object with the properties to reset.\n properties: The names of the properties to reset to their defaults.\n\n Returns:\n True if all properties were reset. False otherwise.", + "name": "editor_toolset.toolsets.object.ObjectTools.reset_properties", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "instance", + "properties" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the values of properties on an object.\n\n Args:\n instance: The object with the property.\n values: A JSON formatted string of the properties to set and their values.\n For instanced sub-object properties, pass a class path as the instance member.\n\n Returns:\n True if the property was set. False otherwise.", + "name": "editor_toolset.toolsets.object.ObjectTools.set_properties", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "values": { + "type": "string" + } + }, + "required": [ + "instance", + "values" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the values of one or more properties on an object.\n\n Args:\n instance: The the object to query.\n properties: The names of the properties to query.\n\n Returns:\n A JSON formatted string of the properties and their values.", + "name": "editor_toolset.toolsets.object.ObjectTools.get_properties", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "instance", + "properties" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a list of properties that are on the specified object.\n\n Args:\n instance: The object to query.\n\n Returns:\n A list of properties on the object.", + "name": "editor_toolset.toolsets.object.ObjectTools.list_properties", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "instance" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the class of an Unreal object.\n\n Args:\n instance: The object instance to query.\n\n Returns:\n The class of the object.", + "name": "editor_toolset.toolsets.object.ObjectTools.get_class", + "inputSchema": { + "type": "object", + "properties": { + "instance": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "instance" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Finds all subclasses of a given class.\n\n Args:\n base_class: The class to search subclasses of.\n class_name: Optional case-insensitive substring filter on the class path.\n\n Returns:\n A list of subclasses matching the filter.", + "name": "editor_toolset.toolsets.object.ObjectTools.search_subclasses", + "inputSchema": { + "type": "object", + "properties": { + "base_class": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "class_name": { + "type": "string" + } + }, + "required": [ + "base_class", + "class_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "Class@/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.primitive.PrimitiveTools": { + "name": "editor_toolset.toolsets.primitive.PrimitiveTools", + "version": "1.0", + "description": "Provides tools for adding primitive geometry components to actors.", + "tools": [ + { + "description": "Adds a cone-shaped StaticMeshComponent to an actor.\n\n Args:\n actor: The actor to add the component to.\n name: The name of the new component.\n radius: The radius of the cone base.\n height: The height of the cone.\n local_transform: The transform of the component relative to the actor.\n\n Returns:\n The new StaticMeshComponent.", + "name": "editor_toolset.toolsets.primitive.PrimitiveTools.add_cone", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "radius": { + "type": "number", + "default": 50 + }, + "height": { + "type": "number", + "default": 100 + }, + "local_transform": { + "default": null, + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "actor", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.StaticMeshComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a cylinder-shaped StaticMeshComponent to an actor.\n\n Args:\n actor: The actor to add the component to.\n name: The name of the new component.\n radius: The radius of the cylinder.\n height: The height of the cylinder.\n local_transform: The transform of the component relative to the actor.\n\n Returns:\n The new StaticMeshComponent.", + "name": "editor_toolset.toolsets.primitive.PrimitiveTools.add_cylinder", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "radius": { + "type": "number", + "default": 50 + }, + "height": { + "type": "number", + "default": 100 + }, + "local_transform": { + "default": null, + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "actor", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.StaticMeshComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a sphere-shaped StaticMeshComponent to an actor.\n\n Args:\n actor: The actor to add the component to.\n name: The name of the new component.\n radius: The radius of the sphere.\n local_transform: The transform of the component relative to the actor.\n\n Returns:\n The new StaticMeshComponent.", + "name": "editor_toolset.toolsets.primitive.PrimitiveTools.add_sphere", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "radius": { + "type": "number", + "default": 50 + }, + "local_transform": { + "default": null, + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "actor", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.StaticMeshComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a cube-shaped StaticMeshComponent to an actor.\n\n Args:\n actor: The actor to add the component to.\n name: The name of the new component.\n dimensions: The x, y, and z size of the cube.\n local_transform: The transform of the component relative to the actor.\n\n Returns:\n The new StaticMeshComponent.", + "name": "editor_toolset.toolsets.primitive.PrimitiveTools.add_cube", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "dimensions": { + "title": "Vector", + "default": { + "x": 100, + "y": 100, + "z": 100 + }, + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "local_transform": { + "default": null, + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "actor", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.StaticMeshComponent", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.scene.SceneTools": { + "name": "editor_toolset.toolsets.scene.SceneTools", + "version": "1.0", + "description": "Provides tools for working with the currently loaded level, including\n loading levels, placing and removing actors, controlling the level camera,\n and organizing actors in the outliner.", + "tools": [ + { + "description": "Saves the actor to disk.\n\n Args:\n actor: The actor to save.", + "name": "editor_toolset.toolsets.scene.SceneTools.save_actor", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + } + }, + { + "description": "Checks whether an actor is checked out by the current user.\n\n Args:\n actor: The actor to check.\n\n Returns:\n True if the actor is currently checked out by the current user.", + "name": "editor_toolset.toolsets.scene.SceneTools.is_checked_out", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Checks whether an actor can be edited.\n\n Args:\n actor: The actor to check.\n\n Returns:\n True if the actor can be edited, False if it is checked out\n or locked by another user in source control.", + "name": "editor_toolset.toolsets.scene.SceneTools.can_edit", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Saves or discards edits to a level instance and exits edit mode.\n\n Args:\n level_instance: The level instance actor to commit.\n discard: If True, discards all changes without saving. Defaults to False.", + "name": "editor_toolset.toolsets.scene.SceneTools.commit_level_instance", + "inputSchema": { + "type": "object", + "properties": { + "level_instance": { + "type": "object", + "title": "/Script/Engine.LevelInstance", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "discard": { + "type": "boolean", + "default": false + } + }, + "required": [ + "level_instance" + ] + } + }, + { + "description": "Opens a level instance for editing.\n\n While in edit mode, scene tools such as add_to_scene_from_class and\n remove_from_scene operate within the level instance's sub-level. Only one\n level instance can be in edit mode at a time. Call commit_level_instance\n when done to save or discard changes.\n\n Args:\n level_instance: The level instance actor to open for editing.", + "name": "editor_toolset.toolsets.scene.SceneTools.edit_level_instance", + "inputSchema": { + "type": "object", + "properties": { + "level_instance": { + "type": "object", + "title": "/Script/Engine.LevelInstance", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "level_instance" + ] + } + }, + { + "description": "Creates a Level Instance actor in the scene referencing an existing level asset.\n\n Args:\n level_path: The content path to the level asset (e.g. '/Game/Maps/MyLevel').\n name: The label for the new Level Instance actor.\n xform: The transform for the new actor.\n parent: If set, the new actor will be a child of this actor.\n\n Returns:\n The created LevelInstance actor.", + "name": "editor_toolset.toolsets.scene.SceneTools.create_level_instance", + "inputSchema": { + "type": "object", + "properties": { + "level_path": { + "type": "string" + }, + "name": { + "type": "string" + }, + "xform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "parent": { + "default": null, + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "level_path", + "name", + "xform" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.LevelInstance", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Merges multiple StaticMesh actors into a single mesh asset and actor.\n\n Args:\n actors: The StaticMeshActors to merge. All must be in the same level.\n output_path: Content path for the merged mesh asset (e.g. '/Game/Meshes/Merged').\n name: Label for the new merged actor. Defaults to the last segment of output_path.\n destroy_source_actors: If True, removes the source actors after merging.\n\n Returns:\n The merged StaticMeshActor.", + "name": "editor_toolset.toolsets.scene.SceneTools.merge_actors", + "inputSchema": { + "type": "object", + "properties": { + "actors": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.StaticMeshActor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "output_path": { + "type": "string" + }, + "name": { + "type": "string" + }, + "destroy_source_actors": { + "type": "boolean", + "default": false + } + }, + "required": [ + "actors", + "output_path", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.StaticMeshActor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Traces a line through the world and returns the distance to the first hit.\n\n Args:\n start: The start point of the trace in world space.\n end: The end point of the trace in world space.\n\n Returns:\n The distance from start to the hit point, or None if nothing was hit.", + "name": "editor_toolset.toolsets.scene.SceneTools.trace_world", + "inputSchema": { + "type": "object", + "properties": { + "start": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "end": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + }, + "required": [ + "start", + "end" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "number" + } + } + } + }, + { + "description": "Deletes a folder from the outliner.\n\n Actors directly in the folder are moved to the parent folder. Sub-folders and\n their actors are preserved by re-rooting them under the parent. For example,\n deleting 'Lighting' with a sub-folder 'Lighting/Spotlights' leaves 'Spotlights'\n intact under the parent.\n\n Args:\n folder_path: The folder path to delete (e.g. 'Lighting/Spotlights').\n\n Returns:\n The number of actors that were moved.", + "name": "editor_toolset.toolsets.scene.SceneTools.delete_folder", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + } + }, + "required": [ + "folder_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Renames a folder in the outliner.\n\n Updates the folder path for all actors in the folder and any sub-folders.\n For example, renaming 'Lighting' to 'Lights' also updates actors in\n 'Lighting/Spotlights' to 'Lights/Spotlights'. If the new path already\n exists then the affected actors will be merged into it.\n\n Args:\n old_path: The current folder path (e.g. 'Lighting').\n new_path: The new folder path (e.g. 'Lights').\n\n Returns:\n The number of actors whose folder path was updated.", + "name": "editor_toolset.toolsets.scene.SceneTools.rename_folder", + "inputSchema": { + "type": "object", + "properties": { + "old_path": { + "type": "string" + }, + "new_path": { + "type": "string" + } + }, + "required": [ + "old_path", + "new_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Assigns an actor to the specified folder in the outliner.\n\n Creates the folder implicitly if it does not already exist. Pass an empty string\n to move the actor to the root of the outliner.\n\n Args:\n actor: The actor to move.\n folder_path: The folder path to assign (e.g. 'Lighting/Spotlights').\n Pass an empty string to move the actor to the root.", + "name": "editor_toolset.toolsets.scene.SceneTools.set_actor_folder", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "folder_path": { + "type": "string" + } + }, + "required": [ + "actor", + "folder_path" + ] + } + }, + { + "description": "Returns the actors in the specified outliner folder.\n\n Args:\n folder_path: The folder path to query (e.g. 'Lighting/Spotlights').\n recursive: If True, also includes actors in sub-folders.\n\n Returns:\n A list of actors in the specified folder.", + "name": "editor_toolset.toolsets.scene.SceneTools.get_actors_in_folder", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "recursive": { + "type": "boolean", + "default": false + } + }, + "required": [ + "folder_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all folder paths currently in use in the outliner.\n\n Includes all intermediate parent paths. For example, if an actor is assigned to\n 'Lighting/Spotlights', both 'Lighting' and 'Lighting/Spotlights' are returned.\n\n Returns:\n A sorted list of unique folder path strings.", + "name": "editor_toolset.toolsets.scene.SceneTools.get_folders", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Deletes an actor from the scene.\n\n Args:\n actor: The actor to remove.\n\n Returns:\n True if the actor was removed.", + "name": "editor_toolset.toolsets.scene.SceneTools.remove_from_scene", + "inputSchema": { + "type": "object", + "properties": { + "actor": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "actor" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new actor in the scene from an asset.\n\n Args:\n asset_path: The path to the asset to spawn (e.g. '/Game/Blueprints/MyActor').\n name: The name of the actor instance.\n xform: The transform for the new actor. Parent-local when `parent` is set;\n world-space otherwise.\n parent: If set, the new actor will be a child of this actor. If unset the Actor will\n be a child of the world.\n snap_to_ground: If set to true, will attempt to adjust the actors Z position so that\n the bottom of its bounding box is on the ground.\n\n Returns:\n The created actor or nothing if creation was unsuccessful.", + "name": "editor_toolset.toolsets.scene.SceneTools.add_to_scene_from_asset", + "inputSchema": { + "type": "object", + "properties": { + "asset_path": { + "type": "string" + }, + "name": { + "type": "string" + }, + "xform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "parent": { + "default": null, + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "snap_to_ground": { + "type": "boolean", + "default": false + } + }, + "required": [ + "asset_path", + "name", + "xform" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new instance of the specified object at the specified transform.\n\n Args:\n actor_type: The Actor class to instantiate.\n name: The name of the actor instance.\n xform: The transform for the new actor. Parent-local when `parent` is set;\n world-space otherwise.\n parent: If set, the new actor will be a child of this actor. If unset the Actor will\n be a child of the world.\n snap_to_ground: If set to true, will attempt to adjust the actors Z position so that\n the bottom of its bounding box is on the ground.\n\n Returns:\n The created actor or nothing if creation was unsuccessful.", + "name": "editor_toolset.toolsets.scene.SceneTools.add_to_scene_from_class", + "inputSchema": { + "type": "object", + "properties": { + "actor_type": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "xform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "parent": { + "default": null, + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "snap_to_ground": { + "type": "boolean", + "default": false + } + }, + "required": [ + "actor_type", + "name", + "xform" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Searches the scene for actors that match specific criteria.\n\n Args:\n root: If set, will only search this actor and its children.\n name: If set, will only return actors whose label contains this string\n (case-insensitive).\n actor_type: If set, will only return actors that are of this type.\n tag: If set, will only return actors that have this tag.\n bounds: If set, only returns actors whose bounds overlap this world-space AABB.\n collision_channels: If set, bounds checks will uses a native physics overlap query\n restricted to these channels. Non-collision actors will be ignored.\n\n Returns:\n A list of actors that match the criteria.", + "name": "editor_toolset.toolsets.scene.SceneTools.find_actors", + "inputSchema": { + "type": "object", + "properties": { + "root": { + "default": null, + "type": "object", + "title": "/Script/Engine.Actor", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "actor_type": { + "default": null, + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "tag": { + "type": "string" + }, + "bounds": { + "default": null, + "title": "Box", + "type": "object", + "properties": { + "min": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "max": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "isValid": { + "type": "boolean" + } + }, + "required": [ + "min", + "max", + "isValid" + ] + }, + "collision_channels": { + "type": "array", + "items": { + "type": "string", + "title": "EObjectTypeQuery", + "enum": [ + "ObjectTypeQuery1", + "ObjectTypeQuery2", + "ObjectTypeQuery3", + "ObjectTypeQuery4", + "ObjectTypeQuery5", + "ObjectTypeQuery6", + "ObjectTypeQuery7", + "ObjectTypeQuery8", + "ObjectTypeQuery9", + "ObjectTypeQuery10", + "ObjectTypeQuery11", + "ObjectTypeQuery12", + "ObjectTypeQuery13", + "ObjectTypeQuery14", + "ObjectTypeQuery15", + "ObjectTypeQuery16", + "ObjectTypeQuery17", + "ObjectTypeQuery18", + "ObjectTypeQuery19", + "ObjectTypeQuery20", + "ObjectTypeQuery21", + "ObjectTypeQuery22", + "ObjectTypeQuery23", + "ObjectTypeQuery24", + "ObjectTypeQuery25", + "ObjectTypeQuery26", + "ObjectTypeQuery27", + "ObjectTypeQuery28", + "ObjectTypeQuery29", + "ObjectTypeQuery30", + "ObjectTypeQuery31", + "ObjectTypeQuery32", + "ObjectTypeQuery33", + "ObjectTypeQuery34", + "ObjectTypeQuery35", + "ObjectTypeQuery36", + "ObjectTypeQuery37", + "ObjectTypeQuery38", + "ObjectTypeQuery39", + "ObjectTypeQuery40", + "ObjectTypeQuery41", + "ObjectTypeQuery42", + "ObjectTypeQuery43", + "ObjectTypeQuery44", + "ObjectTypeQuery45", + "ObjectTypeQuery46", + "ObjectTypeQuery47", + "ObjectTypeQuery48", + "ObjectTypeQuery49", + "ObjectTypeQuery50", + "ObjectTypeQuery51", + "ObjectTypeQuery52", + "ObjectTypeQuery53", + "ObjectTypeQuery54", + "ObjectTypeQuery55", + "ObjectTypeQuery56", + "ObjectTypeQuery57", + "ObjectTypeQuery58", + "ObjectTypeQuery59", + "ObjectTypeQuery60", + "ObjectTypeQuery61", + "ObjectTypeQuery62", + "ObjectTypeQuery63", + "ObjectTypeQuery64" + ] + } + } + }, + "required": [ + "name", + "tag", + "collision_channels" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns all available collision channels for use with find_actors.\n\n Returns:\n A list of all collision channels.", + "name": "editor_toolset.toolsets.scene.SceneTools.get_collision_channels", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string", + "title": "EObjectTypeQuery", + "enum": [ + "ObjectTypeQuery1", + "ObjectTypeQuery2", + "ObjectTypeQuery3", + "ObjectTypeQuery4", + "ObjectTypeQuery5", + "ObjectTypeQuery6", + "ObjectTypeQuery7", + "ObjectTypeQuery8", + "ObjectTypeQuery9", + "ObjectTypeQuery10", + "ObjectTypeQuery11", + "ObjectTypeQuery12", + "ObjectTypeQuery13", + "ObjectTypeQuery14", + "ObjectTypeQuery15", + "ObjectTypeQuery16", + "ObjectTypeQuery17", + "ObjectTypeQuery18", + "ObjectTypeQuery19", + "ObjectTypeQuery20", + "ObjectTypeQuery21", + "ObjectTypeQuery22", + "ObjectTypeQuery23", + "ObjectTypeQuery24", + "ObjectTypeQuery25", + "ObjectTypeQuery26", + "ObjectTypeQuery27", + "ObjectTypeQuery28", + "ObjectTypeQuery29", + "ObjectTypeQuery30", + "ObjectTypeQuery31", + "ObjectTypeQuery32", + "ObjectTypeQuery33", + "ObjectTypeQuery34", + "ObjectTypeQuery35", + "ObjectTypeQuery36", + "ObjectTypeQuery37", + "ObjectTypeQuery38", + "ObjectTypeQuery39", + "ObjectTypeQuery40", + "ObjectTypeQuery41", + "ObjectTypeQuery42", + "ObjectTypeQuery43", + "ObjectTypeQuery44", + "ObjectTypeQuery45", + "ObjectTypeQuery46", + "ObjectTypeQuery47", + "ObjectTypeQuery48", + "ObjectTypeQuery49", + "ObjectTypeQuery50", + "ObjectTypeQuery51", + "ObjectTypeQuery52", + "ObjectTypeQuery53", + "ObjectTypeQuery54", + "ObjectTypeQuery55", + "ObjectTypeQuery56", + "ObjectTypeQuery57", + "ObjectTypeQuery58", + "ObjectTypeQuery59", + "ObjectTypeQuery60", + "ObjectTypeQuery61", + "ObjectTypeQuery62", + "ObjectTypeQuery63", + "ObjectTypeQuery64" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the path to the current level asset.\n\n Returns:\n The name of the loaded level, if any.", + "name": "editor_toolset.toolsets.scene.SceneTools.get_current_level", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Loads a level in the editor.\n\n Args:\n level_path: The path to the level asset.", + "name": "editor_toolset.toolsets.scene.SceneTools.load_level", + "inputSchema": { + "type": "object", + "properties": { + "level_path": { + "type": "string" + } + }, + "required": [ + "level_path" + ] + } + } + ] + }, + "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools": { + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools", + "version": "1.0", + "description": "Provides tools for inspecting and modifying skeletal mesh assets, including\n the mesh/materials, bone hierarchies, and sockets.", + "tools": [ + { + "description": "Renames a socket on a skeletal mesh.\n\n Args:\n mesh: The skeletal mesh asset to modify.\n old_name: The current name of the socket.\n new_name: The new name to give the socket.\n\n Returns:\n True if the socket was renamed successfully.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.rename_socket", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "old_name": { + "type": "string" + }, + "new_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "old_name", + "new_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes a named socket from a skeletal mesh.\n\n Args:\n mesh: The skeletal mesh asset to modify.\n socket_name: The name of the socket to remove.\n\n Returns:\n True if the socket was removed successfully.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.remove_socket", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "socket_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "socket_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the local transform of a socket relative to its parent bone.\n\n Args:\n mesh: The skeletal mesh asset to modify.\n socket_name: The name of the socket to modify.\n transform: The new local transform for the socket.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.set_socket_transform", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "socket_name": { + "type": "string" + }, + "transform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "mesh", + "socket_name", + "transform" + ] + } + }, + { + "description": "Returns the local transform of a socket relative to its parent bone.\n\n Args:\n mesh: The skeletal mesh asset to query.\n socket_name: The name of the socket to query.\n\n Returns:\n The socket's local transform (translation, rotation, scale).", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_socket_transform", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "socket_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "socket_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the name of the bone that a socket is attached to.\n\n Args:\n mesh: The skeletal mesh asset to query.\n socket_name: The name of the socket to query.\n\n Returns:\n The name of the parent bone.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_socket_bone", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "socket_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "socket_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all sockets on a skeletal mesh.\n\n Sockets are named attachment points parented to bones. They are used to\n attach weapons, accessories, or effects at a consistent location.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n A list of socket names, or an empty list if none exist.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_socket_names", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Adds a named socket to a skeletal mesh attached to a bone.\n\n Sockets are named attachment points used to attach weapons, accessories,\n or effects at a consistent position relative to a bone.\n\n Args:\n mesh: The skeletal mesh asset to modify.\n socket_name: The name to give the new socket.\n bone_name: The name of the bone to attach the socket to.\n\n Returns:\n The newly created socket.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.add_socket", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "socket_name": { + "type": "string" + }, + "bone_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "socket_name", + "bone_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.SkeletalMeshSocket", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all morph targets on a skeletal mesh.\n\n Morph targets (blend shapes) are per-vertex offsets used to deform the mesh,\n commonly used for facial expressions and cloth simulation.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n A list of morph target names, or an empty list if none exist.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_morph_target_names", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Assigns a physics asset to a skeletal mesh.\n\n The physics asset must be compatible with the mesh's skeleton. Use this\n to swap physics assets or assign one to a mesh that has none.\n\n Args:\n mesh: The skeletal mesh asset to modify.\n physics_asset: The physics asset to assign.\n\n Returns:\n True if the physics asset was assigned successfully.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.assign_physics_asset", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "physics_asset": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh", + "physics_asset" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the physics asset assigned to a skeletal mesh.\n\n The physics asset defines the collision bodies and constraints used for\n ragdoll simulation and per-bone physics.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n The physics asset assigned to this mesh.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_physics_asset", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.PhysicsAsset", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Assigns a material to a named slot on a skeletal mesh asset.\n\n This affects all instances of the mesh that do not override the slot material.\n\n Args:\n mesh: The skeletal mesh asset to modify.\n slot_name: The name of the material slot to assign to.\n material: The material to assign.\n\n Returns:\n True if the material was assigned successfully.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.set_material", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot_name": { + "type": "string" + }, + "material": { + "type": "object", + "title": "/Script/Engine.MaterialInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh", + "slot_name", + "material" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the material assigned to a named slot on a skeletal mesh.\n\n Args:\n mesh: The skeletal mesh asset to query.\n slot_name: The name of the material slot to query.\n\n Returns:\n The material assigned to the slot.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_material", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "slot_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.MaterialInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all material slots in a skeletal mesh.\n\n Material slot names are used when assigning materials to specific parts of\n the mesh. Use these names with get_material and set_material.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n A list of material slot names.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_material_slots", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the direct children of a bone.\n\n Args:\n mesh: The skeletal mesh asset to query.\n bone_name: The name of the bone to query.\n\n Returns:\n A list of direct child bone names, or an empty list for leaf bones.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_bone_children", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bone_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "bone_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the name of a bone's parent, or an empty string for the root bone.\n\n Args:\n mesh: The skeletal mesh asset to query.\n bone_name: The name of the bone to query.\n\n Returns:\n The parent bone name, or '' if the bone is the root.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_bone_parent", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bone_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "bone_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all bones in a skeletal mesh in hierarchy order.\n\n Bone names are used to target specific bones for socket attachment, physics\n constraints, and animation retargeting.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n A list of bone names in skeleton order (root first).", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_bone_names", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the skeleton asset associated with a skeletal mesh.\n\n The skeleton defines the bone hierarchy shared across all meshes and\n animations that use it.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n The skeleton asset bound to this mesh.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_skeleton", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.Skeleton", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the local-space bounding volume of a skeletal mesh.\n\n The bounds represent the reference pose and do not account for animation.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n The local-space bounding volume as a combined box and sphere.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_bounds", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "BoxSphereBounds", + "type": "object", + "properties": { + "origin": { + "title": "Vector", + "description": "Holds the origin of the bounding box and sphere.", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "boxExtent": { + "title": "Vector", + "description": "Holds the extent of the bounding box, which is half the size of the box in 3D space", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "sphereRadius": { + "type": "number", + "description": "Holds the radius of the bounding sphere." + } + }, + "required": [ + "origin", + "boxExtent", + "sphereRadius" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the number of sections in a specific LOD of a skeletal mesh.\n\n Sections correspond to individual material slots rendered by a single draw call.\n A mesh may have more sections than material slots if multiple sections share\n the same material.\n\n Args:\n mesh: The skeletal mesh asset to query.\n lod_index: The LOD index to query. Defaults to 0 (highest quality).\n\n Returns:\n The number of sections in the specified LOD.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_section_count", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "lod_index": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the number of vertices in a specific LOD of a skeletal mesh.\n\n Args:\n mesh: The skeletal mesh asset to query.\n lod_index: The LOD index to query. Defaults to 0 (highest quality).\n\n Returns:\n The number of vertices in the specified LOD.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_vertex_count", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "lod_index": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the number of LODs in a skeletal mesh asset.\n\n Args:\n mesh: The skeletal mesh asset to query.\n\n Returns:\n The number of LODs.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.get_lod_count", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Imports a mesh file from disk as a SkeletalMesh asset.\n\n The source file must contain a skeleton hierarchy and skinned mesh data.\n\n Args:\n folder_path: The content-browser folder to create the asset in.\n asset_name: The name of the new asset.\n source_file: The absolute path to the source mesh file on disk.\n skeleton: An existing skeleton to bind the imported mesh to. When\n None, a new Skeleton asset is created alongside the mesh.\n import_materials: When True, create Material assets for any materials\n referenced in the file. When False, the imported mesh has no\n materials assigned.\n import_textures: When True, create Texture2D assets for any textures\n referenced by the imported materials. Only effective when\n import_materials is True.\n import_animations: When True, create AnimSequence assets for any\n animations contained in the file.\n create_physics_asset: When True, create a PhysicsAsset bound to the\n imported mesh's skeleton.\n\n Returns:\n The assets produced by the import. The first entry is the imported\n SkeletalMesh; additional entries may include a newly created\n Skeleton (when none was supplied), a PhysicsAsset, AnimSequences,\n Materials, and Texture2Ds, depending on which options are enabled.", + "name": "editor_toolset.toolsets.skeletal_mesh.SkeletalMeshTools.import_file", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "source_file": { + "type": "string" + }, + "skeleton": { + "default": null, + "type": "object", + "title": "/Script/Engine.Skeleton", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "import_materials": { + "type": "boolean", + "default": false + }, + "import_textures": { + "type": "boolean", + "default": false + }, + "import_animations": { + "type": "boolean", + "default": false + }, + "create_physics_asset": { + "type": "boolean", + "default": false + } + }, + "required": [ + "folder_path", + "asset_name", + "source_file" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.static_mesh.StaticMeshTools": { + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools", + "version": "1.0", + "description": "Provides tools for inspecting and modifying static mesh assets.", + "tools": [ + { + "description": "Enables or disables Nanite for a static mesh.\n\n Changing this setting triggers a mesh rebuild. Nanite is most beneficial for\n high-polygon meshes. Low-polygon meshes may not benefit from Nanite.\n\n Args:\n mesh: The static mesh asset to modify.\n enabled: True to enable Nanite, False to disable it.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.set_nanite_enabled", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enabled": { + "type": "boolean" + } + }, + "required": [ + "mesh", + "enabled" + ] + } + }, + { + "description": "Returns whether Nanite is enabled for a static mesh.\n\n Nanite is Unreal's virtualized geometry system that renders highly detailed\n meshes efficiently. It is most beneficial for meshes with many triangles.\n\n Args:\n mesh: The static mesh asset to query.\n\n Returns:\n True if Nanite is enabled for this mesh.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.is_nanite_enabled", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes all collision shapes from a static mesh.\n\n Args:\n mesh: The static mesh asset to modify.\n\n Returns:\n True if all collision shapes were removed.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.remove_collisions", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Generates convex hull collision shapes for a static mesh.\n\n Convex hulls provide accurate collision for physics simulation. More hulls\n improve accuracy but increase runtime cost. Replaces any existing collision.\n\n Args:\n mesh: The static mesh asset to modify.\n hull_count: The number of convex hulls to generate.\n max_hull_verts: The maximum number of vertices per hull.\n hull_precision: Controls the voxel precision of the decomposition.\n\n Returns:\n True if convex collision was generated successfully.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.generate_convex_collisions", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "hull_count": { + "type": "integer", + "default": 4 + }, + "max_hull_verts": { + "type": "integer", + "default": 16 + }, + "hull_precision": { + "type": "integer", + "default": 100000 + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Removes all auto-generated LODs from a static mesh, keeping only LOD 0.\n\n Args:\n mesh: The static mesh asset to modify.\n\n Returns:\n True if LODs were removed successfully.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.remove_lods", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Auto-generates LODs for a static mesh using triangle reduction.\n\n Each entry in triangle_percents creates one additional LOD. The value is the\n fraction of triangles to keep relative to LOD 0, from just above 0.0 (nearly\n empty) to 1.0 (full detail). For example, [0.5, 0.25] creates LOD1 with 50%\n of the original triangles and LOD2 with 25%.\n\n Args:\n mesh: The static mesh asset to modify.\n triangle_percents: Triangle retention fraction for each generated LOD.\n\n Returns:\n The total number of LODs after the operation, including LOD 0.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.generate_lods", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "triangle_percents": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "mesh", + "triangle_percents" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Sets the screen-size thresholds at which each LOD becomes active.\n\n Screen size is a ratio of the mesh's screen height to the viewport height. A value\n of 1.0 means the mesh fills the full viewport height; values above 1.0 are valid and\n mean the mesh must appear larger than the viewport before the next LOD activates.\n Thresholds must be in strictly descending order (LOD 0 has the largest threshold),\n and there must be exactly one threshold per LOD.\n\n Args:\n mesh: The static mesh asset to modify.\n thresholds: Screen-size threshold values, one per LOD, in descending order.\n\n Returns:\n True if the thresholds were applied successfully.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.set_lod_thresholds", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "thresholds": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "mesh", + "thresholds" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the screen-size thresholds at which each LOD becomes active.\n\n Screen size is a ratio of the mesh's screen height to the viewport height. A value\n of 1.0 means the mesh fills the full viewport height; values above 1.0 are valid and\n mean the mesh must appear larger than the viewport before the next LOD activates.\n Each LOD activates when the mesh appears smaller than its threshold.\n\n Args:\n mesh: The static mesh asset to query.\n\n Returns:\n A list of screen-size threshold values, one per LOD.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.get_lod_thresholds", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Assigns a material to a named slot on a static mesh asset.\n\n This affects all instances of the mesh that do not override the slot material.\n Use set_component_material_override to change materials on a single instance.\n\n Args:\n mesh: The static mesh asset to modify.\n slot_name: The name of the material slot to assign to.\n material: The material to assign.\n\n Returns:\n True if the material was assigned successfully.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.set_material", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot_name": { + "type": "string" + }, + "material": { + "type": "object", + "title": "/Script/Engine.MaterialInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh", + "slot_name", + "material" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the material assigned to a named slot on a static mesh.\n\n Args:\n mesh: The static mesh asset to query.\n slot_name: The name of the material slot to query.\n\n Returns:\n The material assigned to the slot.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.get_material", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "slot_name": { + "type": "string" + } + }, + "required": [ + "mesh", + "slot_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.MaterialInterface", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the names of all material slots in a static mesh.\n\n Material slot names are used when assigning materials to specific parts of\n the mesh. Use these names with get_material and set_material.\n\n Args:\n mesh: The static mesh asset to query.\n\n Returns:\n A list of material slot names.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.get_material_slots", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the local-space bounding box of a static mesh.\n\n Args:\n mesh: The static mesh asset to query.\n\n Returns:\n The local-space axis-aligned bounding box.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.get_bounds", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "Box", + "type": "object", + "properties": { + "min": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "max": { + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "isValid": { + "type": "boolean" + } + }, + "required": [ + "min", + "max", + "isValid" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the number of vertices in a specific LOD of a static mesh.\n\n Args:\n mesh: The static mesh asset to query.\n lod_index: The LOD index to query. Defaults to 0 (highest quality).\n\n Returns:\n The number of vertices in the specified LOD.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.get_vertex_count", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "lod_index": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the number of triangles in a specific LOD of a static mesh.\n\n Args:\n mesh: The static mesh asset to query.\n lod_index: The LOD index to query. Defaults to 0 (highest quality).\n\n Returns:\n The number of triangles in the specified LOD.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.get_triangle_count", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "lod_index": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the number of LODs in a static mesh asset.\n\n Args:\n mesh: The static mesh asset to query.\n\n Returns:\n The number of LODs.", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.get_lod_count", + "inputSchema": { + "type": "object", + "properties": { + "mesh": { + "type": "object", + "title": "/Script/Engine.StaticMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Imports a mesh file from disk as a StaticMesh asset.\n\n Args:\n folder_path: The content-browser folder to create the asset in.\n asset_name: The name of the new asset.\n source_file: The absolute path to the source mesh file on disk.\n import_materials: When True, create Material assets for any materials\n referenced in the file. When False, the imported meshes have no\n materials assigned.\n import_textures: When True, create Texture2D assets for any textures\n referenced by the imported materials. Only effective when\n import_materials is True.\n combine_meshes: When True, all meshes in the file are merged into a\n single StaticMesh. When False, each mesh in the file produces\n its own StaticMesh asset.\n\n Returns:\n The assets produced by the import. The first entry is the primary\n StaticMesh; additional entries may include extra StaticMeshes (when\n combine_meshes is False) and Material/Texture assets (when the\n corresponding import flags are True).", + "name": "editor_toolset.toolsets.static_mesh.StaticMeshTools.import_file", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "source_file": { + "type": "string" + }, + "import_materials": { + "type": "boolean", + "default": false + }, + "import_textures": { + "type": "boolean", + "default": false + }, + "combine_meshes": { + "type": "boolean", + "default": true + } + }, + "required": [ + "folder_path", + "asset_name", + "source_file" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.string_table.StringTableTools": { + "name": "editor_toolset.toolsets.string_table.StringTableTools", + "version": "1.0", + "description": "Provides tools for creating and editing StringTable assets.", + "tools": [ + { + "description": "Removes an entry from the string table.\n\n Args:\n string_table: The StringTable asset to modify.\n key: The key of the entry to remove.", + "name": "editor_toolset.toolsets.string_table.StringTableTools.remove_entry", + "inputSchema": { + "type": "object", + "properties": { + "string_table": { + "type": "object", + "title": "/Script/Engine.StringTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "key": { + "type": "string" + } + }, + "required": [ + "string_table", + "key" + ] + } + }, + { + "description": "Adds or updates an entry in the string table.\n\n If the key already exists its value is replaced; otherwise a new entry\n is created.\n\n Args:\n string_table: The StringTable asset to modify.\n key: The key for the entry.\n value: The source string value for the entry.", + "name": "editor_toolset.toolsets.string_table.StringTableTools.set_entry", + "inputSchema": { + "type": "object", + "properties": { + "string_table": { + "type": "object", + "title": "/Script/Engine.StringTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "string_table", + "key", + "value" + ] + } + }, + { + "description": "Returns the source string for a specific key.\n\n Args:\n string_table: The StringTable asset to query.\n key: The key whose string value to retrieve.\n\n Returns:\n The source string for the key.", + "name": "editor_toolset.toolsets.string_table.StringTableTools.get_entry", + "inputSchema": { + "type": "object", + "properties": { + "string_table": { + "type": "object", + "title": "/Script/Engine.StringTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "key": { + "type": "string" + } + }, + "required": [ + "string_table", + "key" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lists all keys in the string table.\n\n Args:\n string_table: The StringTable asset to query.\n\n Returns:\n A list of key strings.", + "name": "editor_toolset.toolsets.string_table.StringTableTools.list_keys", + "inputSchema": { + "type": "object", + "properties": { + "string_table": { + "type": "object", + "title": "/Script/Engine.StringTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "string_table" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the namespace of a StringTable asset.\n\n Args:\n string_table: The StringTable asset to query.\n\n Returns:\n The namespace string.", + "name": "editor_toolset.toolsets.string_table.StringTableTools.get_namespace", + "inputSchema": { + "type": "object", + "properties": { + "string_table": { + "type": "object", + "title": "/Script/Engine.StringTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "string_table" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the table ID for a StringTable asset.\n\n The table ID is derived from the asset's package path and is used\n to reference the string table in text properties and localisation.\n\n Args:\n string_table: The StringTable asset to query.\n\n Returns:\n The table ID as a string.", + "name": "editor_toolset.toolsets.string_table.StringTableTools.get_table_id", + "inputSchema": { + "type": "object", + "properties": { + "string_table": { + "type": "object", + "title": "/Script/Engine.StringTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "string_table" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new StringTable asset.\n\n Args:\n folder_path: The path to the folder that will contain the asset.\n asset_name: The name of the asset.\n\n Returns:\n The created StringTable.", + "name": "editor_toolset.toolsets.string_table.StringTableTools.create", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + } + }, + "required": [ + "folder_path", + "asset_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/Engine.StringTable", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Imports a file from disk as a StringTable asset.\n\n The file must have a header row with at least 'Key' and 'SourceString'\n columns. Additional meta-data columns are imported but the namespace\n is not - the StringTable's namespace is derived from its asset path.\n\n Args:\n folder_path: The content-browser folder to create the asset in.\n asset_name: The name of the new asset.\n source_file: The absolute path to the source file on disk.\n\n Returns:\n The assets produced by the import (a single StringTable).", + "name": "editor_toolset.toolsets.string_table.StringTableTools.import_file", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "source_file": { + "type": "string" + } + }, + "required": [ + "folder_path", + "asset_name", + "source_file" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.programmatic.ProgrammaticToolset": { + "name": "editor_toolset.toolsets.programmatic.ProgrammaticToolset", + "version": "1.0", + "description": "Batches calls to other registered tools through a small sandboxed Python\n script that glues them together with custom logic. The script's purpose is\n tool orchestration, not general Python execution.", + "tools": [ + { + "description": "Execute a Python script against the toolset APIs.\n\n Use this to batch multiple tool calls into a single script execution,\n reducing round-trips and context usage.\n\n IMPORTANT: Available modules and usage instructions are described by the\n value returned by `get_execution_environment`. You MUST call\n `get_execution_environment` once in the conversation before using this\n tool. Read the value in the `instructions` field in the returned\n environment info prior to calling this function, so that you understand\n what APIs are available and how to use them.\n\n Before writing a script that calls multiple tools, look up the output\n schemas (if available) for any tools you plan to use. This returns the\n JSON schema describing each tool's return value, so you know how to\n parse results and pass data between calls.\n\n Args:\n script: Python script to execute. Must define a `run()` function\n that returns a `Dict[str, Any]`.\n\n Returns:\n JSON-encoded dict returned by the script's `run()` function.\n\n Raises:\n SyntaxError: If the script has invalid syntax.\n ValueError: If the script imports a disallowed module or does not\n define a `run()` function.\n TypeError: If `run()` does not return a dict.\n Exception: Any unhandled exception raised by the script.", + "name": "editor_toolset.toolsets.programmatic.ProgrammaticToolset.execute_tool_script", + "inputSchema": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "required": [ + "script" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string", + "description": "Value of the result." + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get details about execution environment.\n\n This includes instructions on how to write scripts, and constraints,\n such as what modules may be imported and the script entrypoint and\n function signature.\n\n Returns:\n Returns the current execution environment.", + "name": "editor_toolset.toolsets.programmatic.ProgrammaticToolset.get_execution_environment", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "ProgrammaticApiExecutionEnvironmentInfo", + "type": "object", + "properties": { + "instructions": { + "type": "string" + }, + "supported_modules": { + "type": "array", + "items": { + "title": "ProgrammaticApiSupportedModule", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "description", + "name" + ] + } + }, + "language": { + "type": "string" + } + }, + "required": [ + "instructions", + "supported_modules", + "language" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "editor_toolset.toolsets.texture.TextureTools": { + "name": "editor_toolset.toolsets.texture.TextureTools", + "version": "1.0", + "description": "Provides tools for working with Texture assets.", + "tools": [ + { + "description": "Returns the dimensions of a Texture2D in pixels.\n\n Args:\n texture: The Texture2D to query.\n\n Returns:\n A vector x is the width and y is the height, both in pixels.", + "name": "editor_toolset.toolsets.texture.TextureTools.get_size", + "inputSchema": { + "type": "object", + "properties": { + "texture": { + "type": "object", + "title": "/Script/Engine.Texture2D", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "texture" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "IntPoint", + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Imports an image file from disk as a Texture2D asset.\n\n Args:\n folder_path: The content-browser folder to create the asset in.\n asset_name: The name of the new asset.\n source_file: The absolute path to the source image file on disk.\n\n Returns:\n The assets produced by the import (typically a single Texture2D).", + "name": "editor_toolset.toolsets.texture.TextureTools.import_file", + "inputSchema": { + "type": "object", + "properties": { + "folder_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + }, + "source_file": { + "type": "string" + } + }, + "required": [ + "folder_path", + "asset_name", + "source_file" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.controlrig.ControlRigTools": { + "name": "animation_toolset.toolsets.controlrig.ControlRigTools", + "version": "1.0", + "description": "Tools for creating and editing Control Rig assets, including hierarchy\n management, graph operations, and node/pin manipulation.", + "tools": [ + { + "description": "Remove a member variable from the Control Rig.\n\n Args:\n control_rig: The Control Rig to modify.\n name: Variable name to remove.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.remove_variable", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "control_rig", + "name" + ] + } + }, + { + "description": "Change the type of an existing variable.\n\n Args:\n control_rig: The Control Rig containing the variable.\n name: Variable name.\n new_type: New type path (e.g., \"double\", \"float\").", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.change_variable_type", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "new_type": { + "type": "string" + } + }, + "required": [ + "control_rig", + "name", + "new_type" + ] + } + }, + { + "description": "Get a specific variable by name.\n\n Args:\n control_rig: The Control Rig to query.\n name: Variable name.\n\n Returns:\n The variable description.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_variable", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "control_rig", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "RigVMGraphVariableDescription", + "type": "object", + "properties": { + "guid": { + "type": "string", + "description": "The guid of the variable", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "name": { + "type": "string", + "description": "The name of the variable" + }, + "cPPType": { + "type": "string", + "description": "The C++ data type of the variable" + }, + "cPPTypeObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "The Struct of the C++ data type of the variable (or nullptr)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "cPPTypeObjectPath": { + "type": "string" + }, + "defaultValue": { + "type": "string", + "description": "The default value of the variable" + }, + "category": { + "type": "string", + "description": "The category of the variable" + }, + "tooltip": { + "type": "string", + "description": "The tooltip of the variable" + }, + "bExposedOnSpawn": { + "type": "boolean", + "description": "Should this variable be exposed on spawn" + }, + "bExposeToCinematics": { + "type": "boolean", + "description": "Should this variable be exposed on spawn" + }, + "bPublic": { + "type": "boolean", + "description": "Is this variable public" + }, + "bPrivate": { + "type": "boolean", + "description": "This property should soon become deprecated, since it does not make sense for blueprint independent assets\nIs this variable private" + } + }, + "required": [ + "guid", + "name", + "cPPType", + "cPPTypeObject", + "cPPTypeObjectPath", + "defaultValue", + "category", + "tooltip", + "bExposedOnSpawn", + "bExposeToCinematics", + "bPublic", + "bPrivate" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "List all member variables in the Control Rig.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n List of variable descriptions.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.list_variables", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RigVMGraphVariableDescription", + "type": "object", + "properties": { + "guid": { + "type": "string", + "description": "The guid of the variable", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "name": { + "type": "string", + "description": "The name of the variable" + }, + "cPPType": { + "type": "string", + "description": "The C++ data type of the variable" + }, + "cPPTypeObject": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "The Struct of the C++ data type of the variable (or nullptr)", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "cPPTypeObjectPath": { + "type": "string" + }, + "defaultValue": { + "type": "string", + "description": "The default value of the variable" + }, + "category": { + "type": "string", + "description": "The category of the variable" + }, + "tooltip": { + "type": "string", + "description": "The tooltip of the variable" + }, + "bExposedOnSpawn": { + "type": "boolean", + "description": "Should this variable be exposed on spawn" + }, + "bExposeToCinematics": { + "type": "boolean", + "description": "Should this variable be exposed on spawn" + }, + "bPublic": { + "type": "boolean", + "description": "Is this variable public" + }, + "bPrivate": { + "type": "boolean", + "description": "This property should soon become deprecated, since it does not make sense for blueprint independent assets\nIs this variable private" + } + }, + "required": [ + "guid", + "name", + "cPPType", + "cPPTypeObject", + "cPPTypeObjectPath", + "defaultValue", + "category", + "tooltip", + "bExposedOnSpawn", + "bExposeToCinematics", + "bPublic", + "bPrivate" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a member variable to the Control Rig.\n\n Args:\n control_rig: The Control Rig to add the variable to.\n name: Variable name.\n type_path: UE type path (e.g., \"double\", \"float\",\n \"/Script/CoreUObject.Vector\").\n is_public: Whether the variable is exposed publicly.\n is_read_only: Whether the variable is read-only.\n default_value: Default value as string.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_variable", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "type_path": { + "type": "string" + }, + "is_public": { + "type": "boolean", + "default": true + }, + "is_read_only": { + "type": "boolean", + "default": false + }, + "default_value": { + "type": "string" + } + }, + "required": [ + "control_rig", + "name", + "type_path", + "default_value" + ] + } + }, + { + "description": "Get all pins connected to this pin.\n\n Args:\n control_rig: The Control Rig containing the pin.\n pin: The pin to query.\n\n Returns:\n List of connected RigVMPin objects.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_connected_pins", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "pin": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "pin" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Disconnect two pins.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph containing the pins.\n source_pin: The source (output) pin.\n target_pin: The target (input) pin.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.disconnect_pins", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "source_pin": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "target_pin": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "graph", + "source_pin", + "target_pin" + ] + } + }, + { + "description": "Connect two pins together.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph containing the pins.\n source_pin: The source (output) pin.\n target_pin: The target (input) pin.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.connect_pins", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "source_pin": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "target_pin": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "graph", + "source_pin", + "target_pin" + ] + } + }, + { + "description": "Set the default value of a pin.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph containing the pin's node.\n pin: The pin to modify.\n value: The new value as a string. Format depends on pin type:\n - float/double: \"1.0\"\n - int: \"42\"\n - bool: \"true\" or \"false\"\n - Vector: \"(X=1.0,Y=2.0,Z=3.0)\"\n - Rotator: \"(Pitch=0.0,Yaw=90.0,Roll=0.0)\"\n - Transform: \"(Rotation=(X=0,Y=0,Z=0,W=1),Translation=(X=0,Y=0,Z=0),Scale3D=(X=1,Y=1,Z=1))\"\n - Name/String: \"MyValue\"\n - Enum: \"EnumValue\" (without type prefix)", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.set_pin_value", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "pin": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "control_rig", + "graph", + "pin", + "value" + ] + } + }, + { + "description": "Get the default value of a pin.\n\n Args:\n control_rig: The Control Rig containing the pin.\n pin: The pin to query.\n\n Returns:\n The pin's default value as a string.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_pin_value", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "pin": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "pin" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "List all pins on a node.\n\n Args:\n control_rig: The Control Rig containing the node.\n node: The node to query.\n\n Returns:\n List of RigVMPin objects on the node.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.list_pins", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMPin", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a variable getter or setter node.\n\n The variable must already exist (created via add_variable first).\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph to add the node to.\n variable_name: Name of the variable to reference.\n is_getter: True for getter node, False for setter node.\n position: Position in the graph. Uses (0, 0) if None.\n\n Returns:\n The created variable RigVMNode.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_variable_node", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "variable_name": { + "type": "string" + }, + "is_getter": { + "type": "boolean", + "default": true + }, + "position": { + "default": null, + "title": "Vector2D", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "control_rig", + "graph", + "variable_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add an event node to the graph.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph to add the event to.\n event_type: The type of event node.\n position: Position in the graph. Uses (200, 200) if None.\n\n Returns:\n The created event RigVMNode.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_event_node", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "event_type": { + "type": "string", + "title": "EventType", + "enum": [ + "FORWARD_SOLVE", + "BACKWARD_SOLVE", + "INTERACTION" + ] + }, + "position": { + "default": null, + "title": "Vector2D", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "control_rig", + "graph", + "event_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the position of a node in the graph editor.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph containing the node.\n node: The node to move.\n position: The new position.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.set_node_position", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "position": { + "title": "Vector2D", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "control_rig", + "graph", + "node", + "position" + ] + } + }, + { + "description": "Get the position of a node in the graph editor.\n\n Args:\n control_rig: The Control Rig containing the node.\n node: The node to query.\n\n Returns:\n The node's position as Vector2D.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_node_position", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "Vector2D", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Delete a node from the graph.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph containing the node.\n node: The node to delete.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.delete_node", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "graph", + "node" + ] + } + }, + { + "description": "List all nodes in a graph.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph to query.\n\n Returns:\n List of RigVMNode objects in the graph.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.list_nodes", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "graph" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a new RigUnit node in the graph.\n\n Args:\n control_rig: The Control Rig containing the graph.\n graph: The graph to add the node to.\n node_type: RigUnit struct name (e.g., \"RigUnit_MathFloatAdd\") or\n full path (e.g., \"/Script/ControlRig.RigUnit_MathFloatAdd\").\n position: Position in the graph editor. Uses (0, 0) if None.\n node_name: Optional custom name for the node.\n\n Returns:\n The created RigVMNode.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.create_node", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node_type": { + "type": "string" + }, + "position": { + "default": null, + "title": "Vector2D", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ] + }, + "node_name": { + "type": "string" + } + }, + "required": [ + "control_rig", + "graph", + "node_type", + "node_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create an interaction graph with InteractionExecution event.\n\n Args:\n control_rig: The Control Rig to add the graph to.\n name: Optional custom name (default: \"Interaction\").\n\n Returns:\n The newly created RigVMGraph with InteractionExecution event.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_interaction_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "default": null, + "type": "string" + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a backward solve graph with InverseExecution event.\n\n Args:\n control_rig: The Control Rig to add the graph to.\n name: Optional custom name (default: \"Backward Solve\").\n\n Returns:\n The newly created RigVMGraph with InverseExecution event.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_backward_solve_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "default": null, + "type": "string" + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a new graph with the specified event type.\n\n Args:\n control_rig: The Control Rig to add the graph to.\n event_type: The event type to add (BACKWARD_SOLVE or INTERACTION).\n name: Optional custom name for the graph.\n\n Returns:\n The newly created RigVMGraph with the event node.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_event_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "event_type": { + "type": "string", + "title": "EventType", + "enum": [ + "FORWARD_SOLVE", + "BACKWARD_SOLVE", + "INTERACTION" + ] + }, + "name": { + "default": null, + "type": "string" + } + }, + "required": [ + "control_rig", + "event_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the interaction graph.\n\n The interaction graph contains the InteractionExecution event and runs\n during user interaction with controls.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n The interaction RigVMGraph.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_interaction_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the backward solve graph.\n\n The backward solve graph contains the InverseExecution event and runs\n during IK operations.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n The backward solve RigVMGraph.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_backward_solve_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a graph containing the specified event type.\n\n Args:\n control_rig: The Control Rig to query.\n event_type: The event type to search for.\n\n Returns:\n The RigVMGraph containing the specified event.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_event_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "event_type": { + "type": "string", + "title": "EventType", + "enum": [ + "FORWARD_SOLVE", + "BACKWARD_SOLVE", + "INTERACTION" + ] + } + }, + "required": [ + "control_rig", + "event_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the forward solve graph (main execution graph).\n\n This graph contains the BeginExecution event and runs during normal\n animation evaluation.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n The forward solve RigVMGraph.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_forward_solve_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a new empty graph in the Control Rig.\n\n Args:\n control_rig: The Control Rig to add the graph to.\n name: Name for the new graph.\n\n Returns:\n The newly created RigVMGraph.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "control_rig", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "List all graphs in the Control Rig.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n List of RigVMGraph objects (excludes function library).", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.list_graphs", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a specific graph from the Control Rig by name.\n\n Args:\n control_rig: The Control Rig to query.\n graph_name: Name of the graph (e.g., \"RigVMModel\").\n\n Returns:\n The RigVMGraph object.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_graph", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "graph_name": { + "type": "string" + } + }, + "required": [ + "control_rig", + "graph_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/RigVMDeveloper.RigVMGraph", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get children of a hierarchy element.\n\n Args:\n control_rig: The Control Rig to query.\n item: The element to get children of.\n recursive: If True, returns all descendants recursively.\n\n Returns:\n List of child RigElementKeys.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_children", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "item": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "recursive": { + "type": "boolean", + "default": false + } + }, + "required": [ + "control_rig", + "item" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the parent of a hierarchy element.\n\n Args:\n control_rig: The Control Rig to query.\n item: The element to get the parent of.\n\n Returns:\n The parent's RigElementKey, or an invalid key if item is at root.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_parent", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "item": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + }, + "required": [ + "control_rig", + "item" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set local transform of a hierarchy element.\n\n Args:\n control_rig: The Control Rig to modify.\n item: The element to set the transform for.\n transform: The new local transform.\n initial: If True, sets the initial (setup) transform.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.set_local_transform", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "item": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "transform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "initial": { + "type": "boolean", + "default": false + } + }, + "required": [ + "control_rig", + "item", + "transform" + ] + } + }, + { + "description": "Get local transform of a hierarchy element.\n\n Args:\n control_rig: The Control Rig to query.\n item: The element to get the transform for.\n initial: If True, returns the initial (setup) transform.\n\n Returns:\n The element's local transform relative to its parent,\n with translation, rotation (euler), and scale.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_local_transform", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "item": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "initial": { + "type": "boolean", + "default": false + } + }, + "required": [ + "control_rig", + "item" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set global transform of a hierarchy element.\n\n Args:\n control_rig: The Control Rig to modify.\n item: The element to set the transform for.\n transform: The new global transform.\n initial: If True, sets the initial (setup) transform.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.set_global_transform", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "item": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "transform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + }, + "initial": { + "type": "boolean", + "default": false + } + }, + "required": [ + "control_rig", + "item", + "transform" + ] + } + }, + { + "description": "Get global transform of a hierarchy element.\n\n Args:\n control_rig: The Control Rig to query.\n item: The element to get the transform for.\n initial: If True, returns the initial (setup) transform.\n\n Returns:\n The element's global transform with translation, rotation (euler), and scale.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_global_transform", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "item": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "initial": { + "type": "boolean", + "default": false + } + }, + "required": [ + "control_rig", + "item" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a control to the hierarchy.\n\n Args:\n control_rig: The Control Rig to add the control to.\n name: Name for the new control.\n parent: Parent element in the hierarchy. None creates at root level.\n settings: Control settings (shape, color, limits). Uses defaults if None.\n\n Returns:\n The RigElementKey for the newly created control.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_control", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "parent": { + "default": null, + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "settings": { + "default": null, + "title": "RigControlSettings", + "type": "object", + "properties": { + "animationType": { + "type": "string", + "title": "ERigControlAnimationType", + "enum": [ + "AnimationControl", + "AnimationChannel", + "ProxyControl", + "VisualCue" + ] + }, + "controlType": { + "type": "string", + "title": "ERigControlType", + "enum": [ + "Bool", + "Float", + "Integer", + "Vector2D", + "Position", + "Scale", + "Rotator", + "Transform", + "TransformNoScale", + "EulerTransform", + "ScaleFloat" + ] + }, + "displayName": { + "type": "string" + }, + "primaryAxis": { + "type": "string", + "title": "ERigControlAxis", + "enum": [ + "X", + "Y", + "Z" + ], + "description": "the primary axis to use for float controls" + }, + "bIsCurve": { + "type": "boolean", + "description": "If Created from a Curve Container" + }, + "limitEnabled": { + "type": "array", + "items": { + "title": "RigControlLimitEnabled", + "type": "object", + "properties": { + "bMinimum": { + "type": "boolean" + }, + "bMaximum": { + "type": "boolean" + } + }, + "required": [ + "bMinimum", + "bMaximum" + ] + }, + "description": "True if the control has limits." + }, + "bDrawLimits": { + "type": "boolean", + "description": "True if the limits should be drawn in debug.\nFor this to be enabled you need to have at least one min and max limit turned on." + }, + "minimumValue": { + "title": "RigControlValue", + "description": "The minimum limit of the control's value", + "type": "object", + "properties": { + "floatStorage": { + "title": "RigControlValueStorage", + "type": "object", + "properties": { + "float00": { + "type": "number" + }, + "float01": { + "type": "number" + }, + "float02": { + "type": "number" + }, + "float03": { + "type": "number" + }, + "float10": { + "type": "number" + }, + "float11": { + "type": "number" + }, + "float12": { + "type": "number" + }, + "float13": { + "type": "number" + }, + "float20": { + "type": "number" + }, + "float21": { + "type": "number" + }, + "float22": { + "type": "number" + }, + "float23": { + "type": "number" + }, + "float30": { + "type": "number" + }, + "float31": { + "type": "number" + }, + "float32": { + "type": "number" + }, + "float33": { + "type": "number" + }, + "float00_2": { + "type": "number" + }, + "float01_2": { + "type": "number" + }, + "float02_2": { + "type": "number" + }, + "float03_2": { + "type": "number" + }, + "float10_2": { + "type": "number" + }, + "float11_2": { + "type": "number" + }, + "float12_2": { + "type": "number" + }, + "float13_2": { + "type": "number" + }, + "float20_2": { + "type": "number" + }, + "float21_2": { + "type": "number" + }, + "float22_2": { + "type": "number" + }, + "float23_2": { + "type": "number" + }, + "float30_2": { + "type": "number" + }, + "float31_2": { + "type": "number" + }, + "float32_2": { + "type": "number" + }, + "float33_2": { + "type": "number" + }, + "bValid": { + "type": "boolean" + } + }, + "required": [ + "float00", + "float01", + "float02", + "float03", + "float10", + "float11", + "float12", + "float13", + "float20", + "float21", + "float22", + "float23", + "float30", + "float31", + "float32", + "float33", + "float00_2", + "float01_2", + "float02_2", + "float03_2", + "float10_2", + "float11_2", + "float12_2", + "float13_2", + "float20_2", + "float21_2", + "float22_2", + "float23_2", + "float30_2", + "float31_2", + "float32_2", + "float33_2", + "bValid" + ] + } + }, + "required": [ + "floatStorage" + ] + }, + "maximumValue": { + "title": "RigControlValue", + "description": "The maximum limit of the control's value", + "type": "object", + "properties": { + "floatStorage": { + "title": "RigControlValueStorage", + "type": "object", + "properties": { + "float00": { + "type": "number" + }, + "float01": { + "type": "number" + }, + "float02": { + "type": "number" + }, + "float03": { + "type": "number" + }, + "float10": { + "type": "number" + }, + "float11": { + "type": "number" + }, + "float12": { + "type": "number" + }, + "float13": { + "type": "number" + }, + "float20": { + "type": "number" + }, + "float21": { + "type": "number" + }, + "float22": { + "type": "number" + }, + "float23": { + "type": "number" + }, + "float30": { + "type": "number" + }, + "float31": { + "type": "number" + }, + "float32": { + "type": "number" + }, + "float33": { + "type": "number" + }, + "float00_2": { + "type": "number" + }, + "float01_2": { + "type": "number" + }, + "float02_2": { + "type": "number" + }, + "float03_2": { + "type": "number" + }, + "float10_2": { + "type": "number" + }, + "float11_2": { + "type": "number" + }, + "float12_2": { + "type": "number" + }, + "float13_2": { + "type": "number" + }, + "float20_2": { + "type": "number" + }, + "float21_2": { + "type": "number" + }, + "float22_2": { + "type": "number" + }, + "float23_2": { + "type": "number" + }, + "float30_2": { + "type": "number" + }, + "float31_2": { + "type": "number" + }, + "float32_2": { + "type": "number" + }, + "float33_2": { + "type": "number" + }, + "bValid": { + "type": "boolean" + } + }, + "required": [ + "float00", + "float01", + "float02", + "float03", + "float10", + "float11", + "float12", + "float13", + "float20", + "float21", + "float22", + "float23", + "float30", + "float31", + "float32", + "float33", + "float00_2", + "float01_2", + "float02_2", + "float03_2", + "float10_2", + "float11_2", + "float12_2", + "float13_2", + "float20_2", + "float21_2", + "float22_2", + "float23_2", + "float30_2", + "float31_2", + "float32_2", + "float33_2", + "bValid" + ] + } + }, + "required": [ + "floatStorage" + ] + }, + "bShapeVisible": { + "type": "boolean", + "description": "Set to true if the shape is currently visible in 3d" + }, + "shapeVisibility": { + "type": "string", + "title": "ERigControlVisibility", + "enum": [ + "UserDefined", + "BasedOnSelection" + ], + "description": "Defines how the shape visibility should be changed" + }, + "shapeName": { + "type": "string", + "description": "This is optional UI setting - this doesn't mean this is always used, but it is optional for manipulation layer to use this" + }, + "shapeColor": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + "bIsTransientControl": { + "type": "boolean", + "description": "If the control is transient and only visible in the control rig editor" + }, + "controlEnum": { + "type": "object", + "title": "/Script/CoreUObject.Enum", + "description": "If the control is integer it can use this enum to choose values", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "customization": { + "title": "RigControlElementCustomization", + "description": "The User interface customization used for a control\nThis will be used as the default content for the space picker and other widgets", + "type": "object", + "properties": { + "availableSpaces": { + "type": "array", + "items": { + "title": "RigElementKeyWithLabel", + "type": "object", + "properties": { + "key": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "label": { + "type": "string" + } + }, + "required": [ + "key", + "label" + ] + } + }, + "removedSpaces": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "availableSpaces", + "removedSpaces" + ] + }, + "drivenControls": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "description": "The list of driven controls for this proxy control." + }, + "bGroupWithParentControl": { + "type": "boolean", + "description": "If set to true the animation channel will be grouped with the parent control in sequencer" + }, + "bRestrictSpaceSwitching": { + "type": "boolean", + "description": "Allow to space switch only to the available spaces" + }, + "filteredChannels": { + "type": "array", + "items": { + "type": "string", + "title": "ERigControlTransformChannel", + "enum": [ + "TranslationX", + "TranslationY", + "TranslationZ", + "Pitch", + "Yaw", + "Roll", + "ScaleX", + "ScaleY", + "ScaleZ" + ] + }, + "description": "Filtered Visible Transform channels. If this is empty everything is visible" + }, + "preferredRotationOrder": { + "type": "string", + "title": "EEulerRotationOrder", + "enum": [ + "XYZ", + "XZY", + "YXZ", + "YZX", + "ZXY", + "ZYX" + ], + "description": "The euler rotation order this control prefers for animation, if we aren't using default UE rotator" + }, + "bUsePreferredRotationOrder": { + "type": "boolean", + "description": "Whether to use a specified rotation order or just use the default FRotator order and conversion functions" + }, + "shapeTransform": { + "type": "object", + "title": "ToolsetTransform", + "description": "Transient storage for overrides when changing the shape transform", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "animationType", + "controlType", + "displayName", + "primaryAxis", + "bIsCurve", + "limitEnabled", + "bDrawLimits", + "minimumValue", + "maximumValue", + "bShapeVisible", + "shapeVisibility", + "shapeName", + "shapeColor", + "bIsTransientControl", + "controlEnum", + "customization", + "drivenControls", + "bGroupWithParentControl", + "bRestrictSpaceSwitching", + "filteredChannels", + "preferredRotationOrder", + "bUsePreferredRotationOrder", + "shapeTransform" + ] + } + }, + "required": [ + "control_rig", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a null (locator) to the Control Rig hierarchy.\n\n Args:\n control_rig: The Control Rig to add the null to.\n name: Name for the new null.\n parent: Parent element in the hierarchy. None creates at root level.\n transform: Initial world transform. Uses identity if None.\n Only specified fields are applied; unset fields use identity.\n\n Returns:\n The RigElementKey for the newly created null.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_null", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "parent": { + "default": null, + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "transform": { + "default": null, + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "control_rig", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a bone to the Control Rig hierarchy.\n\n Args:\n control_rig: The Control Rig to add the bone to.\n name: Name for the new bone.\n parent: Parent element in the hierarchy. None creates at root level.\n transform: Initial world transform. Uses identity if None.\n Only specified fields are applied; unset fields use identity.\n\n Returns:\n The RigElementKey for the newly created bone.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_bone", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "parent": { + "default": null, + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "transform": { + "default": null, + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "control_rig", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a bone or null element to the Control Rig hierarchy.\n\n Args:\n control_rig: The Control Rig to add the element to.\n name: Name for the new element.\n element_type: Type of element to create: \"bone\" or \"null\".\n parent: Parent element in the hierarchy. None creates at root level.\n transform: Initial world transform. Uses identity if None.\n Only specified fields are applied; unset fields use identity.\n\n Returns:\n The RigElementKey for the newly created element.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.add_element", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + }, + "element_type": { + "type": "string" + }, + "parent": { + "default": null, + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + }, + "transform": { + "default": null, + "type": "object", + "title": "ToolsetTransform", + "description": "Represents a 3D transformation with optional location, rotation, and scale.\nUnset fields mean \"identity\" when creating objects and \"don't change\" when modifying existing ones.", + "properties": { + "location": { + "description": "The world-space location.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + }, + "rotation": { + "description": "The world-space rotation.", + "title": "Rotator", + "type": "object", + "properties": { + "pitch": { + "type": "number", + "description": "Pitch (degrees) around Y axis" + }, + "yaw": { + "type": "number", + "description": "Yaw (degrees) around Z axis" + }, + "roll": { + "type": "number", + "description": "Roll (degrees) around X axis" + } + }, + "required": [ + "pitch", + "yaw", + "roll" + ] + }, + "scale": { + "description": "The scale.", + "title": "Vector", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ] + } + } + } + }, + "required": [ + "control_rig", + "name", + "element_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all controls in the Control Rig hierarchy.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n List of RigElementKeys for all controls.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_all_controls", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all nulls (locators) in the Control Rig hierarchy.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n List of RigElementKeys for all nulls.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_all_nulls", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all bones in the Control Rig hierarchy.\n\n Args:\n control_rig: The Control Rig to query.\n\n Returns:\n List of RigElementKeys for all bones.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_all_bones", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get hierarchy elements of the specified type.\n\n Args:\n control_rig: The Control Rig to query.\n element_type: Type of elements to return, or None for all elements.\n\n Returns:\n List of RigElementKeys matching the specified type.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.get_elements", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "element_type": { + "default": null, + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + } + }, + "required": [ + "control_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Import bones from the given skeletal mesh to the Control Rig hierarchy.\n\n Args:\n control_rig: The Control Rig to import bones into.\n skeletal_mesh: The skeletal mesh to import bones from.\n\n Returns:\n List of RigElementKeys for the imported bones.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.import_bones_from_asset", + "inputSchema": { + "type": "object", + "properties": { + "control_rig": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "skeletal_mesh": { + "type": "object", + "title": "/Script/Engine.SkeletalMesh", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "control_rig", + "skeletal_mesh" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "RigElementKey", + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "ERigElementType", + "enum": [ + "None", + "Bone", + "Null", + "Space", + "Control", + "Curve", + "Physics", + "Reference", + "Connector", + "Socket", + "All", + "First", + "Last", + "ToResetAfterConstructionEvent", + "TransformTypes" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Creates a new Control Rig at the given location.\n\n Args:\n path: The content browser path for the new Control Rig.\n\n Returns:\n The newly created ControlRigBlueprint.", + "name": "animation_toolset.toolsets.controlrig.ControlRigTools.create", + "inputSchema": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/ControlRigDeveloper.ControlRigBlueprint", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.sequencer.SequencerTools": { + "name": "animation_toolset.toolsets.sequencer.SequencerTools", + "version": "1.0", + "description": "Core tools for creating and editing Level Sequences in Sequencer. Use\n whenever working with Sequencer - covers sequence lifecycle (create, open,\n close), playback control (play, pause, scrub, speed, loop), sequence\n properties (display rate, frame ranges, marked frames, tick resolution),\n actor bindings (add actors, spawnables, cameras, find and manage bindings),\n tracks (add, find, remove any track type), sections (range, easing, blend\n type, completion mode), selection state, folder organization, sub-sequence\n navigation, event tracks, track filters, and sequence locking. For\n keyframing use SequencerKeyframingTools. For Control Rig use\n SequencerControlRigTools. For outliner inspection use\n SequencerOutlinerTools.", + "tools": [ + { + "description": "Paste folders from the clipboard into the sequence.\n\n Args:\n paste_token: Token from copy_folders, or empty string.\n sequence: Destination sequence.\n parent_folder: Optional folder to paste into (for nesting).\n\n Returns:\n List of newly-created folders.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.paste_folders", + "inputSchema": { + "type": "object", + "properties": { + "paste_token": { + "type": "string" + }, + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent_folder": { + "default": null, + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "paste_token", + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Copy one or more folders to the Sequencer clipboard.\n\n Args:\n folders: The folders to copy.\n\n Returns:\n The paste token string.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.copy_folders", + "inputSchema": { + "type": "object", + "properties": { + "folders": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "folders" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Paste sections from the clipboard onto the given tracks.\n\n Args:\n paste_token: Token from copy_sections, or empty string.\n target_tracks: Tracks to paste the sections onto.\n paste_frame: Frame at which to start the pasted sections.\n\n Returns:\n List of newly-created sections.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.paste_sections", + "inputSchema": { + "type": "object", + "properties": { + "paste_token": { + "type": "string" + }, + "target_tracks": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "paste_frame": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "paste_token", + "target_tracks" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Copy one or more sections to the Sequencer clipboard.\n\n Args:\n sections: The sections to copy.\n\n Returns:\n The paste token string.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.copy_sections", + "inputSchema": { + "type": "object", + "properties": { + "sections": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "sections" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Paste tracks from the clipboard onto the given bindings.\n\n Args:\n paste_token: Token from copy_tracks, or empty string.\n sequence: Destination sequence.\n target_bindings: Bindings to paste the tracks onto. Pass an empty\n list to paste as sequence-level tracks.\n parent_folder: Optional folder to place the pasted tracks under.\n\n Returns:\n List of newly-created tracks.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.paste_tracks", + "inputSchema": { + "type": "object", + "properties": { + "paste_token": { + "type": "string" + }, + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "target_bindings": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "parent_folder": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ], + "default": null + } + }, + "required": [ + "paste_token", + "sequence", + "target_bindings" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Copy one or more tracks to the Sequencer clipboard.\n\n Args:\n tracks: The tracks to copy.\n\n Returns:\n The paste token string.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.copy_tracks", + "inputSchema": { + "type": "object", + "properties": { + "tracks": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "tracks" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Paste bindings from the clipboard (or a token returned by copy_bindings).\n\n Args:\n paste_token: Token from copy_bindings, or empty string to use the\n editor clipboard.\n sequence: Destination sequence (informational; the subsystem\n pastes into the active sequence).\n parent_folder: Optional folder to paste into.\n\n Returns:\n List of newly-created bindings.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.paste_bindings", + "inputSchema": { + "type": "object", + "properties": { + "paste_token": { + "type": "string" + }, + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "parent_folder": { + "default": null, + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "paste_token", + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Copy one or more bindings to the Sequencer clipboard.\n\n Returns a paste token that can be passed to paste_bindings, or an\n empty string to consume from the clipboard. The token also lands\n in the editor clipboard for interactive use.\n\n Args:\n bindings: The bindings to copy.\n\n Returns:\n The paste token string.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.copy_bindings", + "inputSchema": { + "type": "object", + "properties": { + "bindings": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "bindings" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a tag from the sequence entirely.\n\n Clears the tag from every binding that had it and unregisters the\n tag name from the sequence.\n\n Args:\n sequence: The LevelSequence.\n tag_name: The tag name to remove.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_binding_tag", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "tag_name": { + "type": "string" + } + }, + "required": [ + "sequence", + "tag_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a tag from a binding.\n\n Args:\n binding: The binding to untag.\n tag_name: The tag name to remove.\n\n Returns:\n True on success. No-op if the binding did not have the tag.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.untag_binding", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "tag_name": { + "type": "string" + } + }, + "required": [ + "binding", + "tag_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Attach a tag to a binding.\n\n If the tag has not been seen in the sequence before, it is\n automatically registered.\n\n Args:\n binding: The binding to tag.\n tag_name: The tag name.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.tag_binding", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "tag_name": { + "type": "string" + } + }, + "required": [ + "binding", + "tag_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the tags currently attached to a specific binding.\n\n Args:\n binding: The binding to query.\n\n Returns:\n List of tag name strings.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_binding_tags", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get every tag name registered in the sequence.\n\n Uses the MovieSceneBindingTagExtensions C++ library.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n List of tag name strings.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_all_binding_tags", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Find all bindings with the given tag in the sequence.\n\n Args:\n sequence: The LevelSequence to search.\n tag_name: The tag name to look up.\n\n Returns:\n List of matching FMovieSceneObjectBindingID objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.find_bindings_by_tag", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "tag_name": { + "type": "string" + } + }, + "required": [ + "sequence", + "tag_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneObjectBindingID", + "type": "object", + "properties": { + "guid": { + "type": "string", + "description": "Identifier for the object binding within the sequence", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequenceId": { + "type": "integer", + "description": "Sequence ID stored as an int32 so that it can be used in the blueprint VM" + }, + "resolveParentIndex": { + "type": "integer", + "description": "The parent index to resolve the sequence ID from. 0 signifies the sequence this binding ID is serialized within, -1 signifies the root sequence (previously EMovieSceneObjectBindingSpace::Root)" + } + }, + "required": [ + "guid", + "sequenceId", + "resolveParentIndex" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Find the first binding with the given tag in the sequence.\n\n Tags are authored via tag_binding() in this toolset, or via\n RMB -> Expose on a binding in the Sequencer editor.\n\n Args:\n sequence: The LevelSequence to search.\n tag_name: The tag name to look up.\n\n Returns:\n The first matching FMovieSceneObjectBindingID. When no\n binding carries the tag, a default-constructed (invalid)\n ID is returned - check `.is_valid()` on the result, or call\n find_bindings_by_tag() and test the list length instead.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.find_binding_by_tag", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "tag_name": { + "type": "string" + } + }, + "required": [ + "sequence", + "tag_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneObjectBindingID", + "type": "object", + "properties": { + "guid": { + "type": "string", + "description": "Identifier for the object binding within the sequence", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequenceId": { + "type": "integer", + "description": "Sequence ID stored as an int32 so that it can be used in the blueprint VM" + }, + "resolveParentIndex": { + "type": "integer", + "description": "The parent index to resolve the sequence ID from. 0 signifies the sequence this binding ID is serialized within, -1 signifies the root sequence (previously EMovieSceneObjectBindingSpace::Root)" + } + }, + "required": [ + "guid", + "sequenceId", + "resolveParentIndex" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the number of post-roll frames configured on a section.\n\n Args:\n section: The section to query.\n\n Returns:\n The post-roll frame count.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_post_roll_frames", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the number of frames to post-roll this section after it ends.\n\n Post-roll continues evaluation after the section's real end, useful\n for simulations that need to settle.\n\n Args:\n section: The section to configure.\n frames: Number of frames to post-roll (must be >= 0).\n\n Returns:\n True when set successfully.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_post_roll_frames", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "frames": { + "type": "integer" + } + }, + "required": [ + "section", + "frames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the number of pre-roll frames configured on a section.\n\n Args:\n section: The section to query.\n\n Returns:\n The pre-roll frame count.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_pre_roll_frames", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the number of frames to pre-roll this section before it starts.\n\n Pre-roll evaluates the section before its real start so physics,\n cloth, or simulation state can warm up. The pre-roll frames do not\n affect the rendered output of the section.\n\n Args:\n section: The section to configure.\n frames: Number of frames to pre-roll (must be >= 0).\n\n Returns:\n True when set successfully.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_pre_roll_frames", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "frames": { + "type": "integer" + } + }, + "required": [ + "section", + "frames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the animation asset on a skeletal animation section.\n\n After adding a MovieSceneSkeletalAnimationTrack and section,\n call this to assign which AnimSequence plays in that section.\n\n Args:\n section: The skeletal animation section.\n anim_sequence_path: Content path to the AnimSequence asset.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_animation", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieSceneSkeletalAnimationSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "anim_sequence_path": { + "type": "string" + } + }, + "required": [ + "section", + "anim_sequence_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Configure a byte track to use a specific enum type.\n\n Byte tracks can animate enum properties. Call this after\n adding the track and before setting property_name_and_path.\n\n Args:\n track: The byte track to configure.\n enum_class_path: Path to the enum (e.g. the result of\n unreal.AnimationMode.static_enum()).", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_byte_track_enum", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieSceneByteTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "enum_class_path": { + "type": "string" + } + }, + "required": [ + "track", + "enum_class_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Configure a property track to animate a specific UProperty.\n\n This binds a generic property track (Float, Bool, Byte, etc.)\n to a specific property on the bound object. For nested properties\n use dot notation in the path.\n\n Examples:\n display_name=\"Intensity\", property_path=\"Intensity\"\n display_name=\"Focus Distance\", property_path=\"FocusSettings.ManualFocusDistance\"\n display_name=\"Animation Mode\", property_path=\"AnimationMode\"\n\n Args:\n track: The property track to configure.\n display_name: Human-readable name shown in Sequencer UI.\n property_path: The UProperty path on the bound object.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_property_name_and_path", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieScenePropertyTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "display_name": { + "type": "string" + }, + "property_path": { + "type": "string" + } + }, + "required": [ + "track", + "display_name", + "property_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the active section that receives new keys on a track.\n\n When keying properties, Sequencer writes to a specific section.\n This returns that section, which is usually the first section\n or the one the user has designated.\n\n Args:\n track: The track to query.\n\n Returns:\n The section that receives new keyframes.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_to_key", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the binding ID for a binding proxy.\n\n The binding ID can be used with get_bound_objects to resolve\n what actor or component the binding references at runtime.\n\n Args:\n sequence: The LevelSequence containing the binding.\n binding: The binding to get the ID for.\n\n Returns:\n The MovieSceneObjectBindingID.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_binding_id", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "sequence", + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneObjectBindingID", + "type": "object", + "properties": { + "guid": { + "type": "string", + "description": "Identifier for the object binding within the sequence", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequenceId": { + "type": "integer", + "description": "Sequence ID stored as an int32 so that it can be used in the blueprint VM" + }, + "resolveParentIndex": { + "type": "integer", + "description": "The parent index to resolve the sequence ID from. 0 signifies the sequence this binding ID is serialized within, -1 signifies the root sequence (previously EMovieSceneObjectBindingSpace::Root)" + } + }, + "required": [ + "guid", + "sequenceId", + "resolveParentIndex" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get component bindings under an actor binding.\n\n Actor bindings can own child possessable bindings for their\n components (e.g. SkeletalMeshComponent, CameraComponent).\n Use this to find the component binding when you need to add\n tracks to a specific component rather than the actor.\n\n Args:\n binding: The actor-level binding to query.\n\n Returns:\n List of child component SequencerBindingProxy objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_child_possessables", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Bake transforms for the given bindings at every frame.\n\n Args:\n bindings: List of SequencerBindingProxy objects to bake.\n\n Returns:\n True if the bake succeeded.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.bake_transform", + "inputSchema": { + "type": "object", + "properties": { + "bindings": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "bindings" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lock or unlock the current sequence and its descendants.\n\n Args:\n lock: True to lock, False to unlock.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_sequence_locked", + "inputSchema": { + "type": "object", + "properties": { + "lock": { + "type": "boolean" + } + }, + "required": [ + "lock" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if the current sequence and its descendants are locked.\n\n Returns:\n True if the sequence is locked.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.is_sequence_locked", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Enable or disable a track filter.\n\n Args:\n name: The track filter name.\n active: True to enable, False to disable.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_track_filter_active", + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + } + }, + "required": [ + "name", + "active" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check whether a track filter is currently active.\n\n Args:\n name: The track filter name.\n\n Returns:\n True if the filter is active.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.is_track_filter_active", + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all available track filter names.\n\n Returns:\n List of track filter name strings.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_track_filter_names", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Attempt to auto-fix broken actor references in the current sequence.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.fix_actor_references", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Rebind component bindings to a named component.\n\n Args:\n component_bindings: List of SequencerBindingProxy for the\n component bindings to rebind.\n component_name: Name of the target component.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.rebind_component", + "inputSchema": { + "type": "object", + "properties": { + "component_bindings": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "component_name": { + "type": "string" + } + }, + "required": [ + "component_bindings", + "component_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove missing or broken actor references from a binding.\n\n Args:\n binding: The binding to clean up.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_invalid_bindings", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove all bound actors from a binding.\n\n Args:\n binding: The binding to clear.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_all_bindings", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove specific actors from a binding.\n\n Args:\n actors: List of Actor objects to remove.\n binding: The binding to remove actors from.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_actors_from_binding", + "inputSchema": { + "type": "object", + "properties": { + "actors": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "actors", + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Replace all bound actors on a binding with new ones.\n\n Args:\n actors: List of Actor objects to bind.\n binding: The binding to replace actors on.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.replace_binding_with_actors", + "inputSchema": { + "type": "object", + "properties": { + "actors": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "actors", + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add actors to an existing binding.\n\n Args:\n actors: List of Actor objects to add.\n binding: The binding to add actors to.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_actors_to_binding", + "inputSchema": { + "type": "object", + "properties": { + "actors": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "actors", + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add an event repeater section to an event track.\n\n Args:\n track: The event track.\n\n Returns:\n The new repeater section.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_event_repeater_section", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieSceneEventTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieSceneEventRepeaterSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add an event trigger section to an event track.\n\n Args:\n track: The event track.\n\n Returns:\n The new trigger section.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_event_trigger_section", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieSceneEventTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieSceneEventTriggerSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check whether the current level sequence is locked.\n\n Returns:\n True if the sequence is locked, False otherwise.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_sequence_lock_state", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the current sub-sequence hierarchy path.\n\n Returns a list of sub-sections from the root down to the currently\n focused sub-sequence.\n\n Returns:\n List of sub-section objects in the hierarchy path.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_sub_sequence_hierarchy", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSubSection", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Navigate up one level in the sub-sequence hierarchy.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.focus_parent_sequence", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Navigate into a sub-sequence via its sub-section.\n\n Use get_sections() on a sub-track to find the sub-section, then pass\n it here to focus the sub-sequence it references.\n\n Args:\n sub_section: The sub-section referencing the sub-sequence to focus.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.focus_sub_sequence", + "inputSchema": { + "type": "object", + "properties": { + "sub_section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSubSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sub_section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the tracks and bindings inside a folder.\n\n Args:\n folder: The folder to inspect.\n\n Returns:\n JSON string with 'track_count' and 'binding_count', plus\n 'track_names' and 'binding_names' lists.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_folder_contents", + "inputSchema": { + "type": "object", + "properties": { + "folder": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folder" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a binding into a folder for organization.\n\n Args:\n folder: The folder to add the binding to.\n binding: The binding to organize.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_binding_to_folder", + "inputSchema": { + "type": "object", + "properties": { + "folder": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "folder", + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a track into a folder for organization.\n\n Args:\n folder: The folder to add the track to.\n track: The track to organize.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_track_to_folder", + "inputSchema": { + "type": "object", + "properties": { + "folder": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "folder", + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a root-level folder from the sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n folder: The folder to remove.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_root_folder", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "folder": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence", + "folder" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all root-level folders in the sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n List of root MovieSceneFolder objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_root_folders", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a new root-level folder in the sequence.\n\n Args:\n sequence: The LevelSequence to add the folder to.\n name: The folder name.\n\n Returns:\n The newly created MovieSceneFolder.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_root_folder", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "sequence", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add actors to the sequence by their names in the level.\n\n Finds actors by label in the current level and adds them to the\n currently open sequence as possessable bindings.\n\n Args:\n actor_names: List of actor label strings to find and add.\n\n Returns:\n List of SequencerBindingProxy for the added actors.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_actors_by_name", + "inputSchema": { + "type": "object", + "properties": { + "actor_names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "actor_names" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the selection range (green bar) start and end frames.\n\n Args:\n start_frame: The start frame number.\n end_frame: The end frame number.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_selection_range", + "inputSchema": { + "type": "object", + "properties": { + "start_frame": { + "type": "integer" + }, + "end_frame": { + "type": "integer" + } + }, + "required": [ + "start_frame", + "end_frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the selection range (green bar) start and end frames.\n\n Returns:\n JSON string with 'start' and 'end' frame numbers.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_selection_range", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Play from the current position to a specific frame, then stop.\n\n Args:\n frame: The target frame number in display rate.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.play_to", + "inputSchema": { + "type": "object", + "properties": { + "frame": { + "type": "integer" + } + }, + "required": [ + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if the camera cut is locked to the viewport.\n\n Returns:\n True if the camera is locked to the viewport.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.is_camera_cut_locked", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the folder selection in the Sequencer editor.\n\n Args:\n folders: The folders to select.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.select_folders", + "inputSchema": { + "type": "object", + "properties": { + "folders": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "folders" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lock or unlock the camera cut to the viewport.\n\n Args:\n lock: True to lock the camera to the viewport, False to unlock.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_camera_lock", + "inputSchema": { + "type": "object", + "properties": { + "lock": { + "type": "boolean" + } + }, + "required": [ + "lock" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Force the Sequencer to evaluate and update the viewport.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.force_evaluate", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Clear all selection in the Sequencer editor.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.empty_selection", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the binding selection in the Sequencer editor.\n\n Args:\n bindings: The bindings to select.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.select_bindings", + "inputSchema": { + "type": "object", + "properties": { + "bindings": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "bindings" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the section selection in the Sequencer editor.\n\n Args:\n sections: The sections to select.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.select_sections", + "inputSchema": { + "type": "object", + "properties": { + "sections": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "sections" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the track selection in the Sequencer editor.\n\n Args:\n tracks: The tracks to select.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.select_tracks", + "inputSchema": { + "type": "object", + "properties": { + "tracks": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "tracks" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently selected folders in the Sequencer editor.\n\n Returns:\n List of selected MovieSceneFolder objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_selected_folders", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneFolder", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently selected bindings in the Sequencer editor.\n\n Returns:\n List of selected SequencerBindingProxy objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_selected_bindings", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently selected sections in the Sequencer editor.\n\n Returns:\n List of selected MovieSceneSection objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_selected_sections", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently selected tracks in the Sequencer editor.\n\n Returns:\n List of selected MovieSceneTrack objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_selected_tracks", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all common properties of a section in a single call.\n\n Useful for testing and verification. Returns range, easing, blend\n type, and completion mode.\n\n Args:\n section: The section to query.\n\n Returns:\n JSON string with keys: 'start', 'end', 'ease_in', 'ease_out',\n 'blend_type', 'completion_mode'.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_properties", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the completion mode of a section.\n\n Args:\n section: The section to query.\n\n Returns:\n The completion mode name string.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_completion_mode", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the completion mode of a section.\n\n Valid values: 'KeepState', 'RestoreState', 'ProjectDefault'.\n\n Args:\n section: The section to modify.\n completion_mode: The completion mode name string.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_completion_mode", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "completion_mode": { + "type": "string" + } + }, + "required": [ + "section", + "completion_mode" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the blend type of a section.\n\n Args:\n section: The section to query.\n\n Returns:\n The blend type name string (e.g. 'Absolute', 'Additive').", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_blend_type", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the blend type of a section.\n\n Valid values: 'Absolute', 'Additive', 'Relative', 'Override'.\n\n Args:\n section: The section to modify.\n blend_type: The blend type name string.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_blend_type", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "blend_type": { + "type": "string" + } + }, + "required": [ + "section", + "blend_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the effective ease-out duration of a section in frames.\n\n Args:\n section: The section to query.\n\n Returns:\n The ease-out duration in frames.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_ease_out", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the effective ease-in duration of a section in frames.\n\n Args:\n section: The section to query.\n\n Returns:\n The ease-in duration in frames.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_ease_in", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the ease-out duration of a section in frames.\n\n Enables manual ease override if not already active.\n\n Args:\n section: The section to modify.\n duration: The ease-out duration in frames.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_ease_out", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "duration": { + "type": "integer" + } + }, + "required": [ + "section", + "duration" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the ease-in duration of a section in frames.\n\n Enables manual ease override if not already active.\n\n Args:\n section: The section to modify.\n duration: The ease-in duration in frames.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_ease_in", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "duration": { + "type": "integer" + } + }, + "required": [ + "section", + "duration" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set which camera a camera cut section uses.\n\n Args:\n section: The camera cut section.\n camera_binding_id: The binding ID of the camera (from get_bindings).", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_camera_cut_binding", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieSceneTracks.MovieSceneCameraCutSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "camera_binding_id": { + "type": "string" + } + }, + "required": [ + "section", + "camera_binding_id" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set whether the section end frame is bounded or infinite.\n\n Args:\n section: The section to modify.\n bounded: True for bounded, False for infinite.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_end_bounded", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bounded": { + "type": "boolean" + } + }, + "required": [ + "section", + "bounded" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set whether the section start frame is bounded or infinite.\n\n Args:\n section: The section to modify.\n bounded: True for bounded, False for infinite.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_start_bounded", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bounded": { + "type": "boolean" + } + }, + "required": [ + "section", + "bounded" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if a section has a bounded end frame (vs infinite).\n\n Args:\n section: The section to query.\n\n Returns:\n True if the end frame is bounded.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.has_section_end_frame", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if a section has a bounded start frame (vs infinite).\n\n Args:\n section: The section to query.\n\n Returns:\n True if the start frame is bounded.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.has_section_start_frame", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the frame range of a section.\n\n Args:\n section: The section to query.\n\n Returns:\n JSON string with 'start' and 'end' integer frame numbers.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_section_range", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the frame range of a section.\n\n Args:\n section: The section to modify.\n start_frame: The start frame.\n end_frame: The end frame.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_section_range", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "start_frame": { + "type": "integer" + }, + "end_frame": { + "type": "integer" + } + }, + "required": [ + "section", + "start_frame", + "end_frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a section from a track.\n\n Args:\n track: The track that owns the section.\n section: The section to remove.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_section", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track", + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all sections on a track.\n\n Args:\n track: The track to query.\n\n Returns:\n List of MovieSceneSection objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_sections", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a new section to a track.\n\n Args:\n track: The track to add a section to.\n\n Returns:\n The newly created MovieSceneSection.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_section", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the display name of a track.\n\n Args:\n track: The track to rename.\n name: The new display name.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_track_display_name", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "track", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the display name of a track.\n\n Args:\n track: The track to query.\n\n Returns:\n The track's display name.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_track_display_name", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a sequence-level (master) track.\n\n Args:\n sequence: The LevelSequence to modify.\n track: The track to remove.\n\n Returns:\n True if the track was removed.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_track_from_sequence", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence", + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a track from a binding.\n\n Args:\n binding: The binding that owns the track.\n track: The track to remove.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_track", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "binding", + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Find all tracks of a specific type on a binding.\n\n Args:\n binding: The binding to search.\n track_type: The track class to filter by.\n\n Returns:\n List of matching MovieSceneTrack objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.find_tracks_by_type", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "track_type": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "binding", + "track_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all sequence-level (master) tracks.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n List of MovieSceneTrack objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_tracks_on_sequence", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all tracks on a binding.\n\n Args:\n binding: The binding to query.\n\n Returns:\n List of MovieSceneTrack objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_tracks_on_binding", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a sequence-level (master) track.\n\n Args:\n sequence: The LevelSequence to add the track to.\n track_type: The track class (e.g. unreal.MovieSceneCameraCutTrack).\n\n Returns:\n The newly created MovieSceneTrack.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_track_to_sequence", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "track_type": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence", + "track_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a track of the given type to a binding.\n\n Args:\n binding: The binding to add the track to.\n track_type: The track class (e.g. unreal.MovieSceneSkeletalAnimationTrack).\n\n Returns:\n The newly created MovieSceneTrack.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_track_to_binding", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "track_type": { + "type": "object", + "title": "/Script/CoreUObject.Class", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "binding", + "track_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the objects currently resolved by a binding.\n\n Args:\n binding: The binding to resolve.\n\n Returns:\n List of resolved UObject instances.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_bound_objects", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a binding from the sequence.\n\n Args:\n binding: The binding to remove.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.remove_binding", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the display name of a binding.\n\n Args:\n binding: The binding to rename.\n name: The new display name.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_binding_name", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "binding", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the display name of a binding.\n\n Args:\n binding: The binding to query.\n\n Returns:\n The binding's display name.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_binding_name", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Find a binding by its display name.\n\n Args:\n sequence: The LevelSequence to search.\n name: The display name to match.\n\n Returns:\n The matching SequencerBindingProxy.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.find_binding_by_name", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "sequence", + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all bindings in the sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n List of SequencerBindingProxy objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_bindings", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a new cine camera actor in the sequence.\n\n Args:\n spawnable: If True, creates as a spawnable. If False, creates\n as a possessable placed in the level.\n\n Returns:\n The SequencerBindingProxy for the new camera.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.create_camera", + "inputSchema": { + "type": "object", + "properties": { + "spawnable": { + "type": "boolean", + "default": true + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a spawnable binding from an actor class.\n\n Args:\n sequence: The LevelSequence to add the spawnable to.\n actor_class_path: Full class path, e.g. '/Script/Engine.CameraActor'\n or '/Script/CinematicCamera.CineCameraActor'.\n\n Returns:\n The SequencerBindingProxy for the new spawnable.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_spawnable_from_class", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "actor_class_path": { + "type": "string" + } + }, + "required": [ + "sequence", + "actor_class_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a spawnable binding from an existing object instance.\n\n Args:\n sequence: The LevelSequence to add the spawnable to.\n obj: The object to create a spawnable from.\n\n Returns:\n The SequencerBindingProxy for the new spawnable.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_spawnable_from_instance", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "obj": { + "type": "object", + "title": "/Script/CoreUObject.Object", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence", + "obj" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add actors from the level to the currently open sequence.\n\n Args:\n actors: List of Actors to bind into the sequence.\n\n Returns:\n List of SequencerBindingProxy objects for the new bindings.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_actors", + "inputSchema": { + "type": "object", + "properties": { + "actors": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/Engine.Actor", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "actors" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lock or unlock the playback range.\n\n Args:\n sequence: The LevelSequence to modify.\n locked: True to lock, False to unlock.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_playback_range_locked", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "locked": { + "type": "boolean" + } + }, + "required": [ + "sequence", + "locked" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if the playback range is locked.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n True if the playback range is locked.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.is_playback_range_locked", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the clock source for the sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n clock_source: Clock source string (e.g. 'TICK', 'PLATFORM', 'AUDIO', 'TIMECODE', 'CUSTOM').", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_clock_source", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "clock_source": { + "type": "string" + } + }, + "required": [ + "sequence", + "clock_source" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the clock source for the sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n String representation of the clock source.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_clock_source", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the evaluation type of a sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n eval_type: Evaluation type string (e.g. 'WITH_SUB_FRAMES', 'FRAME_LOCKED').", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_evaluation_type", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "eval_type": { + "type": "string" + } + }, + "required": [ + "sequence", + "eval_type" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the evaluation type of a sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n String representation of the evaluation type.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_evaluation_type", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the internal tick resolution of a sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n numerator: Numerator of the frame rate.\n denominator: Denominator of the frame rate.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_tick_resolution", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "numerator": { + "type": "integer" + }, + "denominator": { + "type": "integer", + "default": 1 + } + }, + "required": [ + "sequence", + "numerator" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the internal tick resolution of a sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n The tick FrameRate.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_tick_resolution", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "FrameRate", + "type": "object", + "properties": { + "numerator": { + "type": "integer", + "description": "The numerator of the framerate represented as a number of frames per second (e.g. 60 for 60 fps)" + }, + "denominator": { + "type": "integer", + "description": "The denominator of the framerate represented as a number of frames per second (e.g. 1 for 60 fps)" + } + }, + "required": [ + "numerator", + "denominator" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Find a marked frame by label.\n\n Args:\n sequence: The LevelSequence to search.\n label: The label to find.\n\n Returns:\n Index of the marked frame, or -1 if not found.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.find_marked_frame_by_label", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "label": { + "type": "string" + } + }, + "required": [ + "sequence", + "label" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Delete all marked frames from the sequence.\n\n Args:\n sequence: The LevelSequence to modify.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.delete_all_marked_frames", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Delete a marked frame by index.\n\n Args:\n sequence: The LevelSequence to modify.\n index: Index of the marked frame to delete.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.delete_marked_frame", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "index": { + "type": "integer" + } + }, + "required": [ + "sequence", + "index" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all marked frames (bookmarks) in the sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n List of MovieSceneMarkedFrame objects.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_marked_frames", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneMarkedFrame", + "type": "object", + "properties": { + "frameNumber": { + "title": "FrameNumber", + "type": "object", + "properties": { + "value": { + "type": "integer" + } + }, + "required": [ + "value" + ] + }, + "label": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "customColor": { + "type": "object", + "title": "LinearColor", + "properties": { + "r": { + "type": "number", + "minimum": 0 + }, + "g": { + "type": "number", + "minimum": 0 + }, + "b": { + "type": "number", + "minimum": 0 + }, + "a": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "r", + "g", + "b", + "a" + ] + }, + "bUseCustomColor": { + "type": "boolean" + }, + "bIsDeterminismFence": { + "type": "boolean", + "description": "When checked, treat this mark as a fence for evaluation purposes. Fences cannot be crossed in a single evaluation, and force the evaluation to be split into 2 separate parts." + }, + "bIsInclusiveTime": { + "type": "boolean", + "description": "Defines how this determinism fence determines the previous and next range: when true, the range will be dissected as (X, Y] -> (Y, Z], when false it will be (X, Y) -> [Y, Z]." + } + }, + "required": [ + "frameNumber", + "label", + "comment", + "customColor", + "bUseCustomColor", + "bIsDeterminismFence", + "bIsInclusiveTime" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a marked frame (bookmark) to the sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n frame: The frame number to mark.\n\n Returns:\n The index of the newly added marked frame.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.add_marked_frame", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the work range of the sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n JSON string with 'start' and 'end' in seconds.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_work_range", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the work range of the sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n start_seconds: The work range start in seconds.\n end_seconds: The work range end in seconds.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_work_range", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "start_seconds": { + "type": "number" + }, + "end_seconds": { + "type": "number" + } + }, + "required": [ + "sequence", + "start_seconds", + "end_seconds" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the visible time range in the Sequencer timeline.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n JSON string with 'start' and 'end' in seconds.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_view_range", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the visible time range in the Sequencer timeline.\n\n Args:\n sequence: The LevelSequence to modify.\n start_seconds: The visible range start in seconds.\n end_seconds: The visible range end in seconds.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_view_range", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "start_seconds": { + "type": "number" + }, + "end_seconds": { + "type": "number" + } + }, + "required": [ + "sequence", + "start_seconds", + "end_seconds" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the playback start and end frames of a sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n start_frame: The start frame.\n end_frame: The end frame.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_playback_range", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "start_frame": { + "type": "integer" + }, + "end_frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "start_frame", + "end_frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the playback start and end frames of a sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n JSON string with 'start' and 'end' integer frame numbers.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_playback_range", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the display frame rate of a sequence.\n\n Args:\n sequence: The LevelSequence to modify.\n numerator: Frame rate numerator (e.g. 30 for 30fps).\n denominator: Frame rate denominator (default 1).", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_display_rate", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "numerator": { + "type": "integer" + }, + "denominator": { + "type": "integer", + "default": 1 + } + }, + "required": [ + "sequence", + "numerator" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the display frame rate of a sequence.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n The display FrameRate.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_display_rate", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "FrameRate", + "type": "object", + "properties": { + "numerator": { + "type": "integer", + "description": "The numerator of the framerate represented as a number of frames per second (e.g. 60 for 60 fps)" + }, + "denominator": { + "type": "integer", + "description": "The denominator of the framerate represented as a number of frames per second (e.g. 1 for 60 fps)" + } + }, + "required": [ + "numerator", + "denominator" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the current loop playback mode.\n\n Returns:\n True if looping is enabled, False otherwise.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_loop_mode", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Enable or disable loop playback.\n\n Args:\n loop: True to enable looping, False to disable.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_loop_mode", + "inputSchema": { + "type": "object", + "properties": { + "loop": { + "type": "boolean" + } + }, + "required": [ + "loop" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the current playback speed multiplier.\n\n Returns:\n The current speed multiplier.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_playback_speed", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "number" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the playback speed multiplier.\n\n Args:\n speed: The speed multiplier (e.g. 1.0 for normal, 2.0 for double).", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_playback_speed", + "inputSchema": { + "type": "object", + "properties": { + "speed": { + "type": "number" + } + }, + "required": [ + "speed" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the current playhead position in display rate frames.\n\n Returns:\n The current playhead frame number.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_playhead_frame", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the playhead position in display rate frames.\n\n Args:\n frame: The frame number to move the playhead to.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.set_playhead_frame", + "inputSchema": { + "type": "object", + "properties": { + "frame": { + "type": "integer" + } + }, + "required": [ + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check whether the sequence is currently playing.\n\n Returns:\n True if the sequence is playing, False otherwise.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.is_playing", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Pause playback of the current sequence.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.pause", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Start playback of the current sequence.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.play", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Force refresh the Sequencer editor UI on the next tick.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.refresh_sequence", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Close the currently open level sequence editor.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.close_sequence", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Open a level sequence asset in the Sequencer editor.\n\n Args:\n sequence: The LevelSequence asset to open.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.open_sequence", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently focused level sequence in the hierarchy.\n\n When navigated into a sub-sequence, this returns the sub-sequence\n rather than the root sequence.\n\n Returns:\n The focused LevelSequence asset, or None if no sequence is open.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_focused_sequence", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the root level sequence currently open in the Sequencer editor.\n\n Returns:\n The root LevelSequence asset, or None if no sequence is open.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.get_current_sequence", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Create a new Level Sequence asset.\n\n If an asset already exists at the given path, it will be deleted\n first to avoid triggering a modal overwrite dialog.\n\n Args:\n package_path: The content browser folder path (e.g. '/Game/Cinematics').\n asset_name: The name for the new sequence asset.\n\n Returns:\n The newly created LevelSequence asset.", + "name": "animation_toolset.toolsets.sequencer.SequencerTools.create_level_sequence", + "inputSchema": { + "type": "object", + "properties": { + "package_path": { + "type": "string" + }, + "asset_name": { + "type": "string" + } + }, + "required": [ + "package_path", + "asset_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.keyframing.SequencerKeyframingTools": { + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools", + "version": "1.0", + "description": "Tools for keyframing and animating properties on the Sequencer\n timeline. Use when adding, querying, or removing keyframes on channels,\n setting default values, evaluating channels at specific times, working\n with the Curve Editor, or managing channel selection. Covers float, bool,\n integer, and string key types with configurable interpolation.", + "tools": [ + { + "description": "Get specific keys on a channel by their indices, returned as JSON.\n\n Useful for resolving the keys behind a Curve Editor selection,\n which provides indices rather than key objects.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n indices: Key indices to look up (0-based).\n\n Returns:\n JSON string with a list of key objects, each with 'frame',\n 'value', and 'index' fields. An entry is emitted for EVERY\n requested index in the input order; out-of-range indices are\n reported with 'frame': None and 'value': None so callers can\n correlate results with the request. Value uses a native JSON\n number for numeric channels and a string for exotic types.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.get_keys_by_index", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "indices": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "section", + "channel_name", + "indices" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Bake a channel's values over a frame range.\n\n Evaluates the channel curve at every frame in the range and\n returns the computed values. Useful for extracting animation\n data or verifying interpolation results.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel (e.g. 'Location.X').\n start_frame: Start of the evaluation range.\n end_frame: End of the evaluation range.\n\n Returns:\n List of float values, one per frame in the range.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.bake_channel_keys", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "start_frame": { + "type": "integer" + }, + "end_frame": { + "type": "integer" + } + }, + "required": [ + "section", + "channel_name", + "start_frame", + "end_frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if a curve is visible in the Curve Editor.\n\n Args:\n channel: The channel proxy to check.\n\n Returns:\n True if the curve is displayed.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.is_curve_shown", + "inputSchema": { + "type": "object", + "properties": { + "channel": { + "title": "SequencerChannelProxy", + "type": "object", + "properties": { + "channelName": { + "type": "string" + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "channelName", + "section" + ] + } + }, + "required": [ + "channel" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Show or hide a curve in the Curve Editor.\n\n Args:\n channel: The channel proxy for the curve.\n show: True to show, False to hide.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.show_curve", + "inputSchema": { + "type": "object", + "properties": { + "channel": { + "title": "SequencerChannelProxy", + "type": "object", + "properties": { + "channelName": { + "type": "string" + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "channelName", + "section" + ] + }, + "show": { + "type": "boolean" + } + }, + "required": [ + "channel", + "show" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Clear all key selection in the Curve Editor.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.curve_editor_empty_selection", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Select keys by index in the Curve Editor.\n\n Args:\n channel: The channel proxy containing the keys.\n indices: List of integer key indices to select.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.curve_editor_select_keys", + "inputSchema": { + "type": "object", + "properties": { + "channel": { + "title": "SequencerChannelProxy", + "type": "object", + "properties": { + "channelName": { + "type": "string" + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "channelName", + "section" + ] + }, + "indices": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "channel", + "indices" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get selected key indices for a channel in the Curve Editor.\n\n Args:\n channel: The channel proxy to query.\n\n Returns:\n List of integer key indices that are selected.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.get_curve_editor_selected_keys", + "inputSchema": { + "type": "object", + "properties": { + "channel": { + "title": "SequencerChannelProxy", + "type": "object", + "properties": { + "channelName": { + "type": "string" + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "channelName", + "section" + ] + } + }, + "required": [ + "channel" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get channels that have selected keys in the Curve Editor.\n\n Returns:\n List of SequencerChannelProxy objects with selected keys.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.get_selected_key_channels", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerChannelProxy", + "type": "object", + "properties": { + "channelName": { + "type": "string" + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "channelName", + "section" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check whether the Curve Editor panel is currently open.\n\n Returns:\n True if the Curve Editor is open.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.is_curve_editor_open", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Close the Sequencer Curve Editor panel.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.close_curve_editor", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Open the Sequencer Curve Editor panel.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.open_curve_editor", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the channel selection in the Sequencer editor.\n\n Args:\n channels: List of SequencerChannelProxy objects to select.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.select_channels", + "inputSchema": { + "type": "object", + "properties": { + "channels": { + "type": "array", + "items": { + "title": "SequencerChannelProxy", + "type": "object", + "properties": { + "channelName": { + "type": "string" + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "channelName", + "section" + ] + } + } + }, + "required": [ + "channels" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently selected channels in the Sequencer editor.\n\n Returns:\n List of selected SequencerChannelProxy objects.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.get_selected_channels", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerChannelProxy", + "type": "object", + "properties": { + "channelName": { + "type": "string" + }, + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "channelName", + "section" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the default value of a float channel.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n\n Returns:\n The default value of the channel.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.get_default_value", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + } + }, + "required": [ + "section", + "channel_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "number" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the default value of a channel.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n value: The default value.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.set_default_value", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "required": [ + "section", + "channel_name", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove a key at a specific frame from a channel.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n frame: The frame number of the key to remove.\n\n Returns:\n True if a key was found and removed, False if no key at that frame.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.remove_key_at_frame", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "section", + "channel_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all keys on a channel, returned as a JSON array.\n\n Each key entry includes its frame number and value.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n\n Returns:\n JSON string with a list of key objects, each with 'frame'\n and 'value' fields. For numeric channels the value is a\n native JSON number; for exotic channel types that don't\n round-trip through JSON natively, the value is stringified.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.get_keys", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + } + }, + "required": [ + "section", + "channel_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a string key to a channel on a section.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n frame: The frame number for the key.\n value: The string value.\n\n Returns:\n True when the key was added successfully.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.add_key_string", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "section", + "channel_name", + "frame", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add an integer key to a channel on a section.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n frame: The frame number for the key.\n value: The integer value.\n\n Returns:\n True when the key was added successfully.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.add_key_integer", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "value": { + "type": "integer" + } + }, + "required": [ + "section", + "channel_name", + "frame", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a bool key to a channel on a section.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel.\n frame: The frame number for the key.\n value: The bool value.\n\n Returns:\n True when the key was added successfully.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.add_key_bool", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "value": { + "type": "boolean" + } + }, + "required": [ + "section", + "channel_name", + "frame", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a float key to a channel on a section.\n\n Args:\n section: The section containing the channel.\n channel_name: Name of the channel (e.g. 'Location.X').\n frame: The frame number for the key.\n value: The float value.\n interpolation: Key interpolation mode as a string:\n \"cubic\", \"linear\", \"constant\", \"break\", or \"\" for default (smart auto).\n\n Returns:\n True when the key was added successfully.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.add_key_float", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "channel_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "value": { + "type": "number" + }, + "interpolation": { + "type": "string" + } + }, + "required": [ + "section", + "channel_name", + "frame", + "value", + "interpolation" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the names of all channels on a section.\n\n For example, a 3D Transform section has channels named\n 'Location.X', 'Location.Y', 'Location.Z', 'Rotation.X', etc.\n\n Args:\n section: The section to query.\n\n Returns:\n List of channel name strings.", + "name": "animation_toolset.toolsets.keyframing.SequencerKeyframingTools.get_channel_names", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools": { + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools", + "version": "1.0", + "description": "Tools for animating with Control Rig inside Sequencer. Use when adding\n Control Rig tracks to bindings, getting or setting control values (bool,\n float, int, position, rotator, scale, euler transform, transform), keying\n controls, baking animation to Control Rig, managing layered rigs and\n priority, masking controls per section, space switching (world, parent,\n control, bone), tweening and blending between keys, snapping controls to\n actors, mirroring poses, zeroing transforms, or managing animation layers\n (add, delete, duplicate, reorder, merge, collapse).", + "tools": [ + { + "description": "Toggle multi-select transforms acting in each control's own space.\n\n When True, transforming multiple selected controls respects each\n control's own local space. When False, all use a shared reference.\n\n Args:\n enabled: True to enable per-control local space.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_anim_mode_local_spaces", + "inputSchema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get whether multi-select transforms act in each control's own space.\n\n Returns:\n True if each selected control transforms in its own local space.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_anim_mode_local_spaces", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Toggle Animation Mode restricting viewport selection to rig controls.\n\n Args:\n only_rig: True to only allow selecting rig controls in viewport.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_anim_mode_only_rig_sel", + "inputSchema": { + "type": "object", + "properties": { + "only_rig": { + "type": "boolean" + } + }, + "required": [ + "only_rig" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get whether Animation Mode restricts viewport selection to rig controls.\n\n Returns:\n True if only rig controls are selectable.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_anim_mode_only_rig_sel", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Toggle whether Animation Mode hides all manipulators.\n\n Args:\n hide: True to hide all controls and gizmos.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_anim_mode_hide_manips", + "inputSchema": { + "type": "object", + "properties": { + "hide": { + "type": "boolean" + } + }, + "required": [ + "hide" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get whether Animation Mode hides all manipulators.\n\n Returns:\n True if manipulators are hidden.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_anim_mode_hide_manips", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Toggle the Animation Mode nulls display.\n\n Args:\n enabled: True to show, False to hide.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_anim_mode_nulls", + "inputSchema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get whether the Animation Mode draws nulls.\n\n Returns:\n True if null display is on.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_anim_mode_nulls", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Toggle the Animation Mode hierarchy lines/dots display.\n\n Args:\n enabled: True to show, False to hide.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_anim_mode_hierarchy", + "inputSchema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get whether the Animation Mode draws hierarchy lines/dots.\n\n Returns:\n True if hierarchy display is on.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_anim_mode_hierarchy", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the editor's transform gizmo size.\n\n Writes UTransformGizmoEditorSettings::TransformGizmoSize. The CR-specific\n gizmo scale was removed in UE 5.8 in favor of this editor-wide setting.\n\n Args:\n scale: Gizmo size offset, clamped to [-10.0, 150.0]. 0.0 is default.\n\n Returns:\n True on success.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_anim_mode_gizmo_scale", + "inputSchema": { + "type": "object", + "properties": { + "scale": { + "type": "number" + } + }, + "required": [ + "scale" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the editor's transform gizmo size.\n\n Reads UTransformGizmoEditorSettings::TransformGizmoSize. The CR-specific\n gizmo scale was removed in UE 5.8 in favor of this editor-wide setting,\n so this affects every transform gizmo (level, sequencer, CR, etc.).\n\n Returns:\n The transform gizmo size offset. Default 0.0; range -10..150.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_anim_mode_gizmo_scale", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "number" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the transform value of a Control Rig control at a frame.\n\n Automatically detects whether the control is a Transform or\n EulerTransform type and uses the appropriate API.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which CR.\n control_name: The control name (e.g. 'body_ctrl').\n frame: The frame number.\n\n Returns:\n JSON string with 'location' and 'rotation' dicts.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_transform", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a transform value on a Control Rig control and optionally key it.\n\n Uses ControlRigSequencerLibrary.set_local_control_rig_transform.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which CR (used to find the rig).\n control_name: The control name (e.g. 'body_ctrl').\n frame: The frame number.\n location_x: X location.\n location_y: Y location.\n location_z: Z location.\n rotation_pitch: Pitch rotation in degrees.\n rotation_yaw: Yaw rotation in degrees.\n rotation_roll: Roll rotation in degrees.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_transform", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "location_x": { + "type": "number", + "default": 0 + }, + "location_y": { + "type": "number", + "default": 0 + }, + "location_z": { + "type": "number", + "default": 0 + }, + "rotation_pitch": { + "type": "number", + "default": 0 + }, + "rotation_yaw": { + "type": "number", + "default": 0 + }, + "rotation_roll": { + "type": "number", + "default": 0 + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all controls on a Control Rig with their names and types.\n\n Returns a list of controls with name and type so the caller can\n find controls of a specific type (e.g. find a Float control to\n use with set_float).\n\n Possible types: Bool, Float, Integer, Vector2D, Position,\n Rotator, Scale, Transform, TransformNoScale, EulerTransform.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n\n Returns:\n JSON string with a list of objects, each with 'name' and 'type'.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_controls_info", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + } + }, + "required": [ + "sequence", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all Control Rigs currently in the sequence.\n\n Returns proxy objects with track and rig references.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n JSON string with list of CR info objects containing\n 'track', 'control_rig_name', and 'is_layered'.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_control_rigs", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add a Control Rig track to a binding using a Control Rig asset.\n\n This is the standard way to add a Control Rig to Sequencer.\n Uses ControlRigSequencerLibrary.find_or_create_control_rig_track.\n\n Args:\n sequence: The LevelSequence.\n binding: The binding to add the CR track to.\n control_rig_asset_path: Path to the CR asset (e.g.\n '/Game/Rigs/CR_Mannequin_Body').\n is_layered: If True, create as a layered Control Rig.\n\n Returns:\n JSON string with 'track' refPath and 'control_rig' info.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.find_or_create_track", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "is_layered": { + "type": "boolean", + "default": false + } + }, + "required": [ + "sequence", + "binding", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Import an FBX file onto a Control Rig track.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n import_file_path: File system path to the FBX file to import.\n selected_controls: Optional list of control names to import onto.\n If provided, only these controls will be affected.\n\n Returns:\n True if the import succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.import_fbx_to_rig", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "import_file_path": { + "type": "string" + }, + "selected_controls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "import_file_path", + "selected_controls" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Export an FBX file from a Control Rig section.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n export_file_path: File system path for the output FBX file.\n ascii: If True, export in ASCII format instead of binary.\n\n Returns:\n True if the export succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.export_fbx_from_rig", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "export_file_path": { + "type": "string" + }, + "ascii": { + "type": "boolean", + "default": false + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "export_file_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Frame the viewport to the current Control Rig control selection.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.frame_selection", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Clear the current Control Rig control selection.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.clear_selection", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Select or deselect a control on a Control Rig.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the control.\n selected: True to select, False to deselect.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.select_control", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "selected": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently selected controls on a Control Rig.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n\n Returns:\n List of selected control names.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_selected_controls", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + } + }, + "required": [ + "sequence", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Reset Control Rig transforms to their default (usually zero) values.\n\n Args:\n selection_only: If True, only reset controls on rigs with\n selected controls. If False, reset all.\n include_channels: If True, include channels in addition to\n parent controls.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.zero_transforms", + "inputSchema": { + "type": "object", + "properties": { + "selection_only": { + "type": "boolean", + "default": true + }, + "include_channels": { + "type": "boolean", + "default": true + } + } + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Apply a mirrored pose to the currently selected controls.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.mirror_selected_controls", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Select the mirrored counterparts of the currently selected controls.\n\n Replaces the current selection with mirrored controls.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.select_mirrored_controls", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Merge specified animation layers into one.\n\n Merges onto the layer with the lowest index.\n\n Args:\n indices: List of layer indices to merge.\n\n Returns:\n True if the merge succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.merge_anim_layers", + "inputSchema": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "indices" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Move an animation layer from one index to another.\n\n Cannot move the base layer (index 0).\n\n Args:\n old_index: Current index of the layer to move.\n new_index: Target index to move the layer to.\n\n Returns:\n True if the reorder succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.reorder_anim_layers", + "inputSchema": { + "type": "object", + "properties": { + "old_index": { + "type": "integer" + }, + "new_index": { + "type": "integer" + } + }, + "required": [ + "old_index", + "new_index" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Duplicate an animation layer at the specified index.\n\n Args:\n index: The index of the layer to duplicate.\n\n Returns:\n The index of the newly created duplicate layer, or -1 on failure.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.duplicate_anim_layer", + "inputSchema": { + "type": "object", + "properties": { + "index": { + "type": "integer" + } + }, + "required": [ + "index" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Delete an animation layer at the specified index.\n\n Args:\n index: The index of the layer to delete.\n\n Returns:\n True if the layer was deleted successfully.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.delete_anim_layer", + "inputSchema": { + "type": "object", + "properties": { + "index": { + "type": "integer" + } + }, + "required": [ + "index" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Add an animation layer from the currently selected objects in Sequencer.\n\n Returns:\n The index of the newly created animation layer.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.add_layer_from_selection", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get all animation layers from the active Sequencer.\n\n Returns:\n JSON string with a list of layer objects, each containing\n 'index' and 'name'.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_anim_layers", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Snap Control Rig controls to a target actor over a frame range.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_names: Names of controls to snap.\n target_actor_name: Name or label of the target actor in the level.\n start_frame: Start frame of the snap range.\n end_frame: End frame of the snap range.\n keep_offset: If True, maintain the initial offset.\n snap_position: If True, snap position.\n snap_rotation: If True, snap rotation.\n snap_scale: If True, snap scale.\n\n Returns:\n True if the snap succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.snap_control_rig", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "target_actor_name": { + "type": "string" + }, + "start_frame": { + "type": "integer" + }, + "end_frame": { + "type": "integer" + }, + "keep_offset": { + "type": "boolean", + "default": false + }, + "snap_position": { + "type": "boolean", + "default": true + }, + "snap_rotation": { + "type": "boolean", + "default": true + }, + "snap_scale": { + "type": "boolean", + "default": false + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_names", + "target_actor_name", + "start_frame", + "end_frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Perform a blend operation on selected keys or controls.\n\n Args:\n sequence: The LevelSequence (must be open in Sequencer).\n operation: The blend operation. One of: 'tween',\n 'blend_to_neighbor', 'push_pull', 'blend_relative',\n 'blend_to_ease', 'smooth_rough'.\n blend_value: Blend value, typically -1.0 to 1.0.\n\n Returns:\n True if the blend succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.blend_values_on_selected", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "operation": { + "type": "string" + }, + "blend_value": { + "type": "number" + } + }, + "required": [ + "sequence", + "operation", + "blend_value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Perform a tween operation on a Control Rig at the current Sequencer time.\n\n The tween blends between the previous and next keyframe values.\n\n Args:\n sequence: The LevelSequence (must be open in Sequencer).\n control_rig_asset_path: Path to identify which Control Rig.\n tween_value: Blend value from -1.0 (previous key) to 1.0 (next key).\n\n Returns:\n True if tween succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.tween_control_rig", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "tween_value": { + "type": "number" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "tween_value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Bake Control Rig controls' space over a frame range.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_names: Names of controls to bake.\n start_frame: Start of the bake range.\n end_frame: End of the bake range.\n reduce_keys: If True, perform key reduction after baking.\n tolerance: Key reduction tolerance.\n\n Returns:\n True if the bake succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.bake_space", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "start_frame": { + "type": "integer" + }, + "end_frame": { + "type": "integer" + }, + "reduce_keys": { + "type": "boolean", + "default": false + }, + "tolerance": { + "type": "number", + "default": 0.001 + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_names", + "start_frame", + "end_frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Delete a space-switch key at a specific frame.\n\n Performs compensation to the new space automatically.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the control.\n frame: Frame of the space key to delete.\n\n Returns:\n True if the deletion succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.delete_space", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Move a space-switch key from one frame to another.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the control.\n old_frame: The current frame of the space key.\n new_frame: The new frame to move the space key to.\n\n Returns:\n True if the move succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.move_space", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "old_frame": { + "type": "integer" + }, + "new_frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "old_frame", + "new_frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the space for a Control Rig control at a given frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the control.\n space_type: One of 'world', 'default_parent', 'control', or 'bone'.\n For 'control' or 'bone', space_target must name the element.\n frame: Frame at which to set the space switch key.\n space_target: For 'control' or 'bone' types, the name of the\n target element. Ignored for 'world' and 'default_parent'.\n\n Returns:\n True if the space key was set successfully.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_space", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "space_type": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "space_target": { + "type": "string" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "space_type", + "frame", + "space_target" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if a Control Rig is an FK Control Rig.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n\n Returns:\n True if the rig is an FK Control Rig.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.is_fk_control_rig", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + } + }, + "required": [ + "sequence", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the evaluation priority order of a Control Rig track.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n order: The priority order value to set.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_priority_order", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "order": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "order" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the evaluation priority order of a Control Rig track.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n\n Returns:\n The priority order integer.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_priority_order", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + } + }, + "required": [ + "sequence", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a Control Rig track to layered or absolute mode.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n is_layered: True for layered, False for absolute.\n\n Returns:\n True if the mode was set successfully.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_layered_mode", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "is_layered": { + "type": "boolean" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "is_layered" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if a Control Rig in the sequence is in layered mode.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n\n Returns:\n True if the rig is in layered mode.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.is_layered_control_rig", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + } + }, + "required": [ + "sequence", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Hide all controls on a Control Rig section (mask everything).\n\n Args:\n section: The Control Rig parameter section.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.hide_all_controls", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Show all controls on a Control Rig section (unmask everything).\n\n Args:\n section: The Control Rig parameter section.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.show_all_controls", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the visibility mask for the specified controls on a section.\n\n Args:\n section: The Control Rig parameter section.\n control_names: List of control names to affect.\n visible: True to show, False to hide.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_controls_mask", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "visible": { + "type": "boolean" + } + }, + "required": [ + "section", + "control_names", + "visible" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check if a control is visible (unmasked) on a section.\n\n Args:\n section: The Control Rig parameter section.\n control_name: The control name to check.\n\n Returns:\n True if the control is visible, False if masked.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_controls_mask", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_name": { + "type": "string" + } + }, + "required": [ + "section", + "control_name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Collapse all sections and layers on a Control Rig track into one section.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n reduce_keys: If True, perform key reduction after collapsing.\n tolerance: Key reduction tolerance.\n\n Returns:\n True if collapsing succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.collapse_anim_layers", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "reduce_keys": { + "type": "boolean", + "default": false + }, + "tolerance": { + "type": "number", + "default": 0.001 + } + }, + "required": [ + "sequence", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Load an animation sequence into a Control Rig section.\n\n Finds the skeletal mesh component from the binding associated with\n the section's track.\n\n Args:\n cr_section: The Control Rig parameter section to load into.\n anim_sequence_path: Content path to the AnimSequence asset.\n start_frame: Frame at which to insert the animation.\n reset_controls: If True, reset controls to initial value per frame.\n key_reduce: If True, perform key reduction.\n tolerance: Key reduction tolerance.\n\n Returns:\n True if the load succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.load_anim_into_rig", + "inputSchema": { + "type": "object", + "properties": { + "cr_section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "anim_sequence_path": { + "type": "string" + }, + "start_frame": { + "type": "integer", + "default": 0 + }, + "reset_controls": { + "type": "boolean", + "default": true + }, + "key_reduce": { + "type": "boolean", + "default": false + }, + "tolerance": { + "type": "number", + "default": 0.001 + } + }, + "required": [ + "cr_section", + "anim_sequence_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Bake existing animation on a binding into a Control Rig track.\n\n Args:\n sequence: The LevelSequence.\n binding: The skeletal mesh binding to bake from.\n control_rig_asset_path: Path to the CR asset to bake into.\n reduce_keys: If True, perform key reduction after baking.\n tolerance: Key reduction tolerance. Smaller values keep more keys.\n reset_controls: If True, reset all controls to initial value per frame.\n\n Returns:\n True if baking succeeded.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.bake_to_control_rig", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "reduce_keys": { + "type": "boolean", + "default": false + }, + "tolerance": { + "type": "number", + "default": 0.001 + }, + "reset_controls": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "binding", + "control_rig_asset_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Key the specified controls at specific frame numbers.\n\n Args:\n section: The Control Rig parameter section.\n control_names: List of control names to key.\n frames: List of frame numbers at which to set keys.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.key_controls_at_frames", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "frames": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "section", + "control_names", + "frames" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Key the specified controls on the section at the current Sequencer time.\n\n Args:\n section: The Control Rig parameter section.\n control_names: List of control names to key.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.key_controls", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "section", + "control_names" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get an actor's world transform at a specific frame.\n\n Finds the actor by name in the current editor world.\n\n Args:\n sequence: The LevelSequence.\n actor_name: The name or label of the actor in the level.\n frame: The frame number.\n\n Returns:\n JSON string with 'location' (x,y,z) and 'rotation' (pitch,yaw,roll).", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_actor_transform_at_frame", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "actor_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "actor_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a control's world-space transform at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the control.\n frame: The frame number.\n location_x: World X location.\n location_y: World Y location.\n location_z: World Z location.\n rotation_pitch: Pitch in degrees.\n rotation_yaw: Yaw in degrees.\n rotation_roll: Roll in degrees.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_world_transform", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "location_x": { + "type": "number", + "default": 0 + }, + "location_y": { + "type": "number", + "default": 0 + }, + "location_z": { + "type": "number", + "default": 0 + }, + "rotation_pitch": { + "type": "number", + "default": 0 + }, + "rotation_yaw": { + "type": "number", + "default": 0 + }, + "rotation_roll": { + "type": "number", + "default": 0 + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a control's world-space transform at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the control.\n frame: The frame number.\n\n Returns:\n JSON string with 'location' (x,y,z) and 'rotation' (pitch,yaw,roll).", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_world_transform", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set an EulerTransform control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the EulerTransform control.\n frame: The frame number.\n location_x: X location.\n location_y: Y location.\n location_z: Z location.\n rotation_pitch: Pitch in degrees.\n rotation_yaw: Yaw in degrees.\n rotation_roll: Roll in degrees.\n scale_x: X scale.\n scale_y: Y scale.\n scale_z: Z scale.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_euler_transform", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "location_x": { + "type": "number", + "default": 0 + }, + "location_y": { + "type": "number", + "default": 0 + }, + "location_z": { + "type": "number", + "default": 0 + }, + "rotation_pitch": { + "type": "number", + "default": 0 + }, + "rotation_yaw": { + "type": "number", + "default": 0 + }, + "rotation_roll": { + "type": "number", + "default": 0 + }, + "scale_x": { + "type": "number", + "default": 1 + }, + "scale_y": { + "type": "number", + "default": 1 + }, + "scale_z": { + "type": "number", + "default": 1 + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get an EulerTransform control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the EulerTransform control.\n frame: The frame number.\n\n Returns:\n JSON string with 'location' (x,y,z), 'rotation' (pitch,yaw,roll),\n and 'scale' (x,y,z) dicts.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_euler_transform", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a scale control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the scale control.\n frame: The frame number.\n x: X scale.\n y: Y scale.\n z: Z scale.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_scale", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "x": { + "type": "number", + "default": 1 + }, + "y": { + "type": "number", + "default": 1 + }, + "z": { + "type": "number", + "default": 1 + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a scale control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the scale control.\n frame: The frame number.\n\n Returns:\n JSON string with 'x', 'y', 'z' fields.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_scale", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a rotator control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the rotator control.\n frame: The frame number.\n pitch: Pitch in degrees.\n yaw: Yaw in degrees.\n roll: Roll in degrees.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_rotator", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "pitch": { + "type": "number", + "default": 0 + }, + "yaw": { + "type": "number", + "default": 0 + }, + "roll": { + "type": "number", + "default": 0 + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a rotator control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the rotator control.\n frame: The frame number.\n\n Returns:\n JSON string with 'pitch', 'yaw', 'roll' fields.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_rotator", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a position control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the position control.\n frame: The frame number.\n x: X component.\n y: Y component.\n z: Z component.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_position", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "x": { + "type": "number", + "default": 0 + }, + "y": { + "type": "number", + "default": 0 + }, + "z": { + "type": "number", + "default": 0 + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a position control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the position control.\n frame: The frame number.\n\n Returns:\n JSON string with 'x', 'y', 'z' fields.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_position", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a Vector2D control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the Vector2D control.\n frame: The frame number.\n x: X component.\n y: Y component.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_vector2d", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "x": { + "type": "number", + "default": 0 + }, + "y": { + "type": "number", + "default": 0 + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a Vector2D control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the Vector2D control.\n frame: The frame number.\n\n Returns:\n JSON string with 'x' and 'y' fields.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_vector2d", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set an integer control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the integer control.\n frame: The frame number.\n value: The integer value to set.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_int", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "value": { + "type": "integer" + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get an integer control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the integer control.\n frame: The frame number.\n\n Returns:\n The integer value at the given frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_int", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a bool control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the bool control.\n frame: The frame number.\n value: The bool value to set.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_bool", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "value": { + "type": "boolean" + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a bool control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the bool control.\n frame: The frame number.\n\n Returns:\n The bool value at the given frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_bool", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a float control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the float control.\n frame: The frame number.\n value: The float value to set.\n set_key: If True, set a keyframe at this frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.set_float", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + }, + "value": { + "type": "number" + }, + "set_key": { + "type": "boolean", + "default": true + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame", + "value" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a float control value at a specific frame.\n\n Args:\n sequence: The LevelSequence.\n control_rig_asset_path: Path to identify which Control Rig.\n control_name: Name of the float control.\n frame: The frame number.\n\n Returns:\n The float value at the given frame.", + "name": "animation_toolset.toolsets.controlrig_sequencer.SequencerControlRigTools.get_float", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "control_rig_asset_path": { + "type": "string" + }, + "control_name": { + "type": "string" + }, + "frame": { + "type": "integer" + } + }, + "required": [ + "sequence", + "control_rig_asset_path", + "control_name", + "frame" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "number" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.outliner.SequencerOutlinerTools": { + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools", + "version": "1.0", + "description": "Tools for inspecting and managing the Sequencer outliner tree. Use when\n getting a snapshot of the outliner hierarchy, querying node children,\n managing outliner selection, expanding or collapsing nodes, or toggling\n node states like mute, solo, deactivate, lock, and pin. Also useful for\n test verification of Sequencer UI state.", + "tools": [ + { + "description": "Get sections associated with the given outliner nodes.\n\n Args:\n nodes: The outliner nodes to query.\n\n Returns:\n List of MovieSceneSection objects associated with the nodes.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_sections_for_nodes", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "nodes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently pinned outliner nodes.\n\n Returns:\n List of pinned nodes.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_pinned_nodes", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Pin or unpin outliner nodes.\n\n Args:\n nodes: List of outliner nodes to modify.\n pinned: True to pin, False to unpin.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.set_node_pinned", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "pinned": { + "type": "boolean" + } + }, + "required": [ + "nodes", + "pinned" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently locked outliner nodes.\n\n Returns:\n List of locked nodes.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_locked_nodes", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Lock or unlock outliner nodes for editing.\n\n Args:\n nodes: List of outliner nodes to modify.\n locked: True to lock, False to unlock.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.set_node_locked", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "locked": { + "type": "boolean" + } + }, + "required": [ + "nodes", + "locked" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently deactivated outliner nodes.\n\n Returns:\n List of deactivated nodes.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_deactivated_nodes", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Deactivate or reactivate outliner nodes.\n\n Args:\n nodes: List of outliner nodes to modify.\n deactivated: True to deactivate, False to reactivate.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.set_node_deactivated", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "deactivated": { + "type": "boolean" + } + }, + "required": [ + "nodes", + "deactivated" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently soloed outliner nodes.\n\n Returns:\n List of soloed nodes.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_soloed_nodes", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently muted outliner nodes.\n\n Returns:\n List of muted nodes.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_muted_nodes", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Solo or unsolo outliner nodes.\n\n Args:\n nodes: The nodes to solo or unsolo.\n soloed: True to solo, False to unsolo.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.set_node_solo", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "soloed": { + "type": "boolean" + } + }, + "required": [ + "nodes", + "soloed" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Mute or unmute outliner nodes.\n\n Args:\n nodes: The nodes to mute or unmute.\n muted: True to mute, False to unmute.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.set_node_muted", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "muted": { + "type": "boolean" + } + }, + "required": [ + "nodes", + "muted" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Check whether an outliner node is expanded.\n\n Args:\n node: The outliner node to query.\n\n Returns:\n True if expanded, False if collapsed.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.is_node_expanded", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Expand or collapse outliner nodes.\n\n Args:\n nodes: The nodes to expand or collapse.\n expanded: True to expand, False to collapse.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.set_node_expanded", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "expanded": { + "type": "boolean" + } + }, + "required": [ + "nodes", + "expanded" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the display label of an outliner node.\n\n Args:\n node: The outliner node to query.\n\n Returns:\n The node's display label text.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_node_label", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the outliner selection.\n\n Args:\n nodes: The nodes to select.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.set_outliner_selection", + "inputSchema": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "nodes" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the currently selected nodes in the outliner.\n\n Returns:\n List of selected SequencerViewModelScriptingStruct objects.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_outliner_selection", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get child nodes of an outliner node.\n\n Args:\n node: The parent outliner node.\n type_filter: Optional node type name to filter by (e.g. \"Track\").\n\n Returns:\n List of child SequencerViewModelScriptingStruct objects.", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_outliner_children", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "type_filter": { + "default": null, + "type": "string" + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "SequencerViewModelScriptingStruct", + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get a full snapshot of the Sequencer outliner tree.\n\n Builds a recursive tree structure from the outliner root nodes.\n Useful for testing and UI verification.\n\n Returns:\n JSON string encoding a list of objects, each with 'label',\n 'type', and 'children' (a recursive list of the same structure).", + "name": "animation_toolset.toolsets.outliner.SequencerOutlinerTools.get_outliner_tree", + "inputSchema": { + "type": "object" + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.conditions.SequencerConditionTools": { + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools", + "version": "1.0", + "description": "Tools for managing runtime conditions on Sequencer tracks, sections, and\n track rows. Use when setting up dynamic conditions that control whether\n tracks or sections evaluate at runtime based on platform, gameplay state,\n or custom logic. Supports MovieScenePlatformCondition,\n MovieSceneDirectorBlueprintCondition, and MovieSceneGroupCondition types.", + "tools": [ + { + "description": "Remove the condition from a specific track row.\n\n Args:\n track: The track to modify.\n row_index: The row index (0-based).", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.clear_track_row_condition", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_index": { + "type": "integer" + } + }, + "required": [ + "track", + "row_index" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a condition on a specific track row.\n\n Args:\n track: The track to modify.\n row_index: The row index (0-based).\n condition_class: Full class path of the condition type.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.set_track_row_condition", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_index": { + "type": "integer" + }, + "condition_class": { + "type": "string" + } + }, + "required": [ + "track", + "row_index", + "condition_class" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the condition on a specific track row.\n\n Args:\n track: The track to query.\n row_index: The row index (0-based).\n\n Returns:\n Class path of the condition, or empty string.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.get_track_row_condition", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "row_index": { + "type": "integer" + } + }, + "required": [ + "track", + "row_index" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove the condition from a track.\n\n Args:\n track: The track to clear the condition from.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.clear_track_condition", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a condition on a track.\n\n Args:\n track: The track to modify.\n condition_class: Full class path of the condition type.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.set_track_condition", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "condition_class": { + "type": "string" + } + }, + "required": [ + "track", + "condition_class" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the track-level condition.\n\n Args:\n track: The track to query.\n\n Returns:\n Class path of the condition, or empty string.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.get_track_condition", + "inputSchema": { + "type": "object", + "properties": { + "track": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneTrack", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "track" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Remove the condition from a section.\n\n Args:\n section: The section to clear the condition from.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.clear_section_condition", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set a condition on a section.\n\n Common condition classes:\n - /Script/MovieSceneTracks.MovieScenePlatformCondition\n - /Script/MovieSceneTracks.MovieSceneDirectorBlueprintCondition\n - /Script/MovieScene.MovieSceneGroupCondition\n\n Args:\n section: The section to modify.\n condition_class: Full class path of the condition type.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.set_section_condition", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "condition_class": { + "type": "string" + } + }, + "required": [ + "section", + "condition_class" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the condition on a section.\n\n Returns the class path of the condition, or an empty string if\n no condition is set.\n\n Args:\n section: The section to query.\n\n Returns:\n Class path of the condition, or empty string.", + "name": "animation_toolset.toolsets.conditions.SequencerConditionTools.get_section_condition", + "inputSchema": { + "type": "object", + "properties": { + "section": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSection", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "section" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools": { + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools", + "version": "1.0", + "description": "Tools for converting and managing custom binding types in Sequencer. Use\n when converting between possessable, spawnable, and custom/replaceable\n bindings, querying what custom binding type a binding uses, accessing\n custom binding objects for property inspection, or changing the actor\n template class on spawnables/replaceables.", + "tools": [ + { + "description": "Save the current state of a spawnable as its default.\n\n Args:\n binding: The spawnable binding to save defaults for.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.save_default_spawnable_state", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Set the actor class for a spawnable or replaceable template.\n\n Args:\n binding: The spawnable/replaceable binding to modify.\n actor_class: Full class path of the new actor class.\n\n Returns:\n True if the class was changed successfully.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.change_actor_template_class", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "actor_class": { + "type": "string" + } + }, + "required": [ + "binding", + "actor_class" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Find all bindings of a given custom type in the current sequence.\n\n Args:\n binding_type_class: Full class path of the custom binding type.\n\n Returns:\n List of matching SequencerBindingProxy objects.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.get_custom_bindings_of_type", + "inputSchema": { + "type": "object", + "properties": { + "binding_type_class": { + "type": "string" + } + }, + "required": [ + "binding_type_class" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the custom binding instances for a binding.\n\n Args:\n binding: The binding to query.\n\n Returns:\n List of UMovieSceneCustomBinding objects.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.get_custom_binding_objects", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneCustomBinding", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get the custom binding class for a binding.\n\n Returns the class path of the custom binding type, or an empty\n string for standard possessable bindings.\n\n Args:\n binding: The binding to query.\n\n Returns:\n Class path string, or empty string.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.get_custom_binding_type", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Convert a binding to a custom binding type.\n\n Args:\n binding: The binding to convert.\n binding_type_class: Full class path of the custom binding type.\n\n Returns:\n The converted SequencerBindingProxy.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.convert_to_custom_binding", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "binding_type_class": { + "type": "string" + } + }, + "required": [ + "binding", + "binding_type_class" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Convert a spawnable binding to a possessable.\n\n Args:\n binding: The spawnable binding to convert.\n\n Returns:\n The new possessable SequencerBindingProxy.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.convert_to_possessable", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Convert a possessable binding to a spawnable.\n\n Args:\n binding: The possessable binding to convert.\n\n Returns:\n List of new spawnable SequencerBindingProxy objects.", + "name": "animation_toolset.toolsets.custom_bindings.SequencerCustomBindingTools.convert_to_spawnable", + "inputSchema": { + "type": "object", + "properties": { + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "animation_toolset.toolsets.import_export.SequencerImportExportTools": { + "name": "animation_toolset.toolsets.import_export.SequencerImportExportTools", + "version": "1.0", + "description": "Tools for importing and exporting animation data to and from Sequencer.\n Use when exporting bindings or Control Rig animation to FBX files,\n importing FBX animation onto bindings or Control Rig tracks, exporting\n animation to AnimSequence assets, or linking AnimSequences for\n auto-updates.", + "tools": [ + { + "description": "Get the content path of the LevelSequence linked to an AnimSequence.\n\n Args:\n anim_sequence: The AnimSequence to query.\n\n Returns:\n Content path of the linked LevelSequence, or empty string if\n no link exists.", + "name": "animation_toolset.toolsets.import_export.SequencerImportExportTools.get_linked_level_sequence", + "inputSchema": { + "type": "object", + "properties": { + "anim_sequence": { + "type": "object", + "title": "/Script/Engine.AnimSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "anim_sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "string" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Get content paths of all AnimSequences linked to a LevelSequence.\n\n Linked AnimSequences auto-update when the LevelSequence changes.\n They are created via export_anim_sequence with create_link=True.\n\n Args:\n sequence: The LevelSequence to query.\n\n Returns:\n List of content paths (e.g. '/Game/Anim/Test_Anim') for each\n linked AnimSequence. Empty list if no links exist.", + "name": "animation_toolset.toolsets.import_export.SequencerImportExportTools.get_linked_anim_sequences", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "sequence" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Link an AnimSequence asset to a level sequence binding.\n\n When the sequence is modified, the linked AnimSequence can be\n automatically updated.\n\n Args:\n sequence: The LevelSequence to link from.\n anim_sequence: The AnimSequence to link to.\n binding: The binding to associate the link with.\n\n Returns:\n True on success. Returns False (via the tool_call decorator) if\n sequence or anim_sequence is None.", + "name": "animation_toolset.toolsets.import_export.SequencerImportExportTools.link_anim_sequence", + "inputSchema": { + "type": "object", + "properties": { + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "anim_sequence": { + "type": "object", + "title": "/Script/Engine.AnimSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "required": [ + "sequence", + "anim_sequence", + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Export animation from a sequence binding to an AnimSequence asset.\n\n Args:\n world: The world context.\n sequence: The source LevelSequence.\n anim_sequence: The destination AnimSequence asset.\n binding: The binding whose animation to export.\n create_link: Whether to create a link between the sequence and\n the exported AnimSequence.\n\n Returns:\n True if the export succeeded, False otherwise.", + "name": "animation_toolset.toolsets.import_export.SequencerImportExportTools.export_anim_sequence", + "inputSchema": { + "type": "object", + "properties": { + "world": { + "type": "object", + "title": "/Script/Engine.World", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "anim_sequence": { + "type": "object", + "title": "/Script/Engine.AnimSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "binding": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + }, + "create_link": { + "type": "boolean", + "default": false + } + }, + "required": [ + "world", + "sequence", + "anim_sequence", + "binding" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Import FBX data into a level sequence.\n\n Args:\n world: The world context.\n sequence: The LevelSequence to import into.\n bindings: The bindings to apply the import to.\n import_settings: The FBX import settings.\n fbx_file_path: The input FBX file path.\n\n Returns:\n True if the import succeeded, False otherwise.", + "name": "animation_toolset.toolsets.import_export.SequencerImportExportTools.import_fbx", + "inputSchema": { + "type": "object", + "properties": { + "world": { + "type": "object", + "title": "/Script/Engine.World", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bindings": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "import_settings": { + "type": "object", + "title": "/Script/MovieSceneTools.MovieSceneUserImportFBXSettings", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "fbx_file_path": { + "type": "string" + } + }, + "required": [ + "world", + "sequence", + "bindings", + "import_settings", + "fbx_file_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Export a level sequence to FBX.\n\n Args:\n world: The world context.\n sequence: The LevelSequence to export.\n bindings: The bindings to include in the export.\n fbx_file_path: The output FBX file path.\n override_options: Optional FBX export options.\n\n Returns:\n True if the export succeeded, False otherwise.", + "name": "animation_toolset.toolsets.import_export.SequencerImportExportTools.export_fbx", + "inputSchema": { + "type": "object", + "properties": { + "world": { + "type": "object", + "title": "/Script/Engine.World", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "sequence": { + "type": "object", + "title": "/Script/LevelSequence.LevelSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "bindings": { + "type": "array", + "items": { + "title": "MovieSceneBindingProxy", + "type": "object", + "properties": { + "bindingId": { + "type": "string", + "description": "Globally unique identifier in 8-4-4-4-12 hyphenated form, e.g. \"E05FCC13-4D37-9D7A-E238-83859F29AD74\".", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" + }, + "sequence": { + "type": "object", + "title": "/Script/MovieScene.MovieSceneSequence", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "bindingId", + "sequence" + ] + } + }, + "fbx_file_path": { + "type": "string" + }, + "override_options": { + "default": null, + "type": "object", + "title": "/Script/UnrealEd.FbxExportOption", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "world", + "sequence", + "bindings", + "fbx_file_path" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "boolean" + } + }, + "required": [ + "returnValue" + ] + } + } + ] + }, + "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools": { + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools", + "version": "1.0", + "description": "Inspect BehaviorTree (BT) assets.", + "tools": [ + { + "description": "Returns the sub-BT asset referenced by a RunBehavior task.\n\n Args:\n node: Any BTNode. Only RunBehavior tasks have a subtree.\n Returns:\n The referenced BehaviorTree asset.\n Raises:\n ValueError: If the node does not reference a subtree.", + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools.get_subtree", + "inputSchema": { + "type": "object", + "properties": { + "node": { + "type": "object", + "title": "/Script/AIModule.BTNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "node" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/AIModule.BehaviorTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns direct child nodes of a composite node.\n\n Args:\n composite: A BTCompositeNode (Selector, Sequence, etc.).\n Returns:\n A list of child BTNode UObjects.", + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools.get_children", + "inputSchema": { + "type": "object", + "properties": { + "composite": { + "type": "object", + "title": "/Script/AIModule.BTCompositeNode", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "composite" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/AIModule.BTNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns tree depths for all nodes, matching list_nodes order.\n\n Args:\n behavior_tree: The BehaviorTree asset.\n Returns:\n A list of depth integers.", + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools.get_node_depths", + "inputSchema": { + "type": "object", + "properties": { + "behavior_tree": { + "type": "object", + "title": "/Script/AIModule.BehaviorTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "behavior_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the tree depth of a node by its list_nodes index.\n\n Args:\n behavior_tree: The BehaviorTree asset.\n node_index: Zero-based index into list_nodes output.\n Returns:\n The tree depth (0 = root level).", + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools.get_node_depth", + "inputSchema": { + "type": "object", + "properties": { + "behavior_tree": { + "type": "object", + "title": "/Script/AIModule.BehaviorTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + }, + "node_index": { + "type": "integer" + } + }, + "required": [ + "behavior_tree", + "node_index" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "integer" + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns a flat list of all node UObjects in tree order.\n\n Order: root decorators, then DFS (composite, services,\n per-child decorators, child node).\n\n Args:\n behavior_tree: The BehaviorTree asset to inspect.\n Returns:\n A list of BTNode UObjects.", + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools.list_nodes", + "inputSchema": { + "type": "object", + "properties": { + "behavior_tree": { + "type": "object", + "title": "/Script/AIModule.BehaviorTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "behavior_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/AIModule.BTNode", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns root-level decorators on this tree.\n\n Args:\n behavior_tree: The BehaviorTree asset to query.\n Returns:\n A list of BTDecorator UObjects.", + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools.get_root_decorators", + "inputSchema": { + "type": "object", + "properties": { + "behavior_tree": { + "type": "object", + "title": "/Script/AIModule.BehaviorTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "behavior_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "array", + "items": { + "type": "object", + "title": "/Script/AIModule.BTDecorator", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + } + }, + "required": [ + "returnValue" + ] + } + }, + { + "description": "Returns the blackboard asset for this behavior tree.\n\n Args:\n behavior_tree: The BehaviorTree asset to query.\n Returns:\n The BlackboardData asset.", + "name": "aimodule_toolset.toolsets.behavior_tree.BehaviorTreeTools.get_blackboard", + "inputSchema": { + "type": "object", + "properties": { + "behavior_tree": { + "type": "object", + "title": "/Script/AIModule.BehaviorTree", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "behavior_tree" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "returnValue": { + "type": "object", + "title": "/Script/AIModule.BlackboardData", + "description": "Represents a reference to a UObject or UClass.", + "properties": { + "refPath": { + "type": "string", + "description": "The reference stored as a soft path string." + } + }, + "required": [ + "refPath" + ] + } + }, + "required": [ + "returnValue" + ] + } + } + ] + } + }, + "tool_total": 830 +} \ No newline at end of file diff --git a/docs/epic_mcp/probe_raw_5.8.0_default.json b/docs/epic_mcp/probe_raw_5.8.0_default.json new file mode 100644 index 0000000..1555751 --- /dev/null +++ b/docs/epic_mcp/probe_raw_5.8.0_default.json @@ -0,0 +1,123 @@ +{ + "url": "http://127.0.0.1:8000/mcp", + "steps": { + "tools_list": "ok", + "list_toolsets": "ok" + }, + "server_info": { + "name": "", + "title": "", + "version": "", + "websiteUrl": null, + "icons": null + }, + "protocol_version": "2025-11-25", + "capabilities": { + "experimental": null, + "logging": null, + "prompts": null, + "resources": { + "subscribe": null, + "listChanged": null + }, + "tools": { + "listChanged": true + }, + "completions": null, + "tasks": null + }, + "tools_list": [ + { + "name": "list_toolsets", + "title": null, + "description": "List all available toolsets with names and descriptions.", + "inputSchema": { + "type": "object", + "properties": {} + }, + "outputSchema": null, + "icons": null, + "annotations": null, + "meta": null, + "execution": null + }, + { + "name": "describe_toolset", + "title": null, + "description": "Get detailed information about a toolset including all tool names, descriptions, and input schemas.", + "inputSchema": { + "type": "object", + "properties": { + "toolset_name": { + "type": "string", + "description": "Name of the toolset to describe. Use list_toolsets to see available names." + } + }, + "required": [ + "toolset_name" + ] + }, + "outputSchema": null, + "icons": null, + "annotations": null, + "meta": null, + "execution": null + }, + { + "name": "call_tool", + "title": null, + "description": "Call a tool by name. Provide toolset_name to call a toolset tool, or omit it to call a top-level MCP tool. Use list_toolsets and describe_toolset to discover available tools and their input schemas.", + "inputSchema": { + "type": "object", + "properties": { + "toolset_name": { + "type": "string", + "description": "Optional. Name of the toolset containing the tool. Omit to call a top-level MCP tool. Use list_toolsets to discover toolset names." + }, + "tool_name": { + "type": "string", + "description": "Name of the tool to call, without toolset prefix. Use describe_toolset to discover tool names and input schemas." + }, + "arguments": { + "type": "object", + "description": "Arguments to pass to the tool. Must match the tool's input schema. Defaults to an empty object." + } + }, + "required": [ + "tool_name" + ] + }, + "outputSchema": null, + "icons": null, + "annotations": null, + "meta": null, + "execution": null + } + ], + "list_toolsets_raw": "- ToolsetRegistry.AgentSkillToolset: Provides tools for listing, reading, and creating/updating skills.\n", + "toolset_names_source": "fallback-docs", + "toolset_names": [ + "ActorTools", + "SceneTools", + "MaterialInstanceTools", + "ObjectTools" + ], + "describe_toolset": { + "ActorTools": { + "arg_key": "toolset_name", + "error": "Toolset 'ActorTools' not found. Available toolsets: ToolsetRegistry.AgentSkillToolset" + }, + "SceneTools": { + "arg_key": "toolset_name", + "error": "Toolset 'SceneTools' not found. Available toolsets: ToolsetRegistry.AgentSkillToolset" + }, + "MaterialInstanceTools": { + "arg_key": "toolset_name", + "error": "Toolset 'MaterialInstanceTools' not found. Available toolsets: ToolsetRegistry.AgentSkillToolset" + }, + "ObjectTools": { + "arg_key": "toolset_name", + "error": "Toolset 'ObjectTools' not found. Available toolsets: ToolsetRegistry.AgentSkillToolset" + } + } +} \ No newline at end of file diff --git a/docs/epic_mcp/programmatic_exec_environment.json b/docs/epic_mcp/programmatic_exec_environment.json new file mode 100644 index 0000000..a53c001 --- /dev/null +++ b/docs/epic_mcp/programmatic_exec_environment.json @@ -0,0 +1 @@ +{"returnValue":{"instructions":"\nUse the function execute_tool(tool_name, json_input) to call any registered\ntool. ``tool_name`` is the tool name exactly as it appears in your tool list.\nIt returns the result directly as a dict-like object. It raises RuntimeError\non failure - no error checking is needed.\n\nThe script must define a `run()` function that returns a `Dict[str, Any]`.\nUnhandled exceptions will be returned when the tool is executed.\n\nSTOP. Before composing the script: the schemas in your tool list describe\neach tool's INPUTS only, not what it returns. To parse return values in the\nscript, look up the output schema (if available) for each tool the script\nwill call, unless you have already received that tool's return value in\nthis conversation.\n\nIMPORTANT: At the top of the script, define short helper functions that wrap\neach execute_tool call you plan to use. This keeps the rest of the script\nreadable and avoids repeating the verbose execute_tool invocation. For example:\n\n import json\n\n def get_selected_actors():\n return execute_tool(\n \"EditorToolset.EditorAppToolset.GetSelectedActors\",\n \"{}\")[\"returnValue\"]\n\n def set_actor_transform(actor, xform, worldspace=True):\n return execute_tool(\n \"editor_toolset.toolsets.actor.ActorTools.set_actor_transform\",\n json.dumps({\"actor\": actor, \"xform\": xform,\n \"worldspace\": worldspace}))\n\n def run():\n for actor in get_selected_actors():\n set_actor_transform(actor, new_xform)\n return {\"moved\": len(get_selected_actors())}\n\nThe scripting environment allows importing a limited set of safe modules:\nfrozenset({'math', 're', 'json', 'datetime', 'time', 'copy'}). The function execute_tool() is available to call\nregistered tools directly.\n","supported_modules":[{"description":"Standard library JSON encoding and decoding.","name":"json"},{"description":"Standard library mathematical functions.","name":"math"},{"description":"Standard library date and time types.","name":"datetime"},{"description":"Standard library shallow and deep copy operations.","name":"copy"},{"description":"Standard library regular expression operations.","name":"re"},{"description":"Standard library for time.","name":"time"}],"language":"python"}} \ No newline at end of file diff --git a/scripts/probe_epic_mcp.py b/scripts/probe_epic_mcp.py new file mode 100644 index 0000000..42814b9 --- /dev/null +++ b/scripts/probe_epic_mcp.py @@ -0,0 +1,77 @@ +"""Full-surface probe of Epic's official Unreal MCP server (UE 5.8+). + +Usage: python scripts/probe_epic_mcp.py [server_url] + +Requires a running editor with the ModelContextProtocol plugin serving +(console: `ModelContextProtocol.StartServer`); enable the AllToolsets plugin +to expose the full shipped surface. list_toolsets returns lines of +`- : `; describe_toolset takes {toolset_name} and +returns that toolset's complete JSON schema. The dump is the authoritative +input for docs/EPIC_MCP_MATRIX.md — rerun per engine version and diff. +""" +import asyncio +import json +import sys + +from mcp import ClientSession +from mcp.client.streamable_http import streamablehttp_client + +URL = sys.argv[2] if len(sys.argv) > 2 else "http://127.0.0.1:8000/mcp" + + +def content_text(res) -> str: + return "\n".join(c.text for c in (getattr(res, "content", []) or []) if getattr(c, "text", None)) + + +async def main(out_path: str) -> None: + out: dict = {"url": URL} + async with streamablehttp_client(URL) as (read, write, _): + async with ClientSession(read, write) as session: + init = await session.initialize() + out["protocol_version"] = init.protocolVersion + tools = await session.list_tools() + out["tools_list"] = [t.model_dump() for t in tools.tools] + + ts = await session.call_tool("list_toolsets", {}) + raw = content_text(ts) + out["list_toolsets_raw"] = raw + + names = [] + for line in raw.splitlines(): + line = line.strip() + if line.startswith("- ") and ":" in line: + names.append(line[2:].split(":", 1)[0].strip()) + out["toolset_names"] = names + print(f"{len(names)} toolsets discovered") + + out["toolsets"] = {} + tool_total = 0 + for name in names: + try: + d = await session.call_tool("describe_toolset", {"toolset_name": name}) + text = content_text(d) + if getattr(d, "isError", False): + out["toolsets"][name] = {"error": text} + continue + try: + schema = json.loads(text) + out["toolsets"][name] = schema + n = len(schema.get("tools", [])) + tool_total += n + print(f" {name}: {n} tools") + except (json.JSONDecodeError, ValueError): + out["toolsets"][name] = {"raw": text} + print(f" {name}: (non-JSON payload, {len(text)} chars)") + except Exception as e: + out["toolsets"][name] = {"exception": str(e)} + print(f" {name}: EXCEPTION {e}") + + out["tool_total"] = tool_total + print("TOTAL concrete tools:", tool_total) + + with open(out_path, "w", encoding="utf-8") as fh: + json.dump(out, fh, indent=2, default=str) + + +if __name__ == "__main__": + asyncio.run(main(sys.argv[1] if len(sys.argv) > 1 else "probe_out_full.json")) From a18ecab37b409cf33634ded6e98d0873b11e0652 Mon Sep 17 00:00:00 2001 From: Joseph Ibrahim Date: Thu, 2 Jul 2026 11:09:34 -0400 Subject: [PATCH 2/2] docs(matrix): precision fixes from adversarial verification - ue_query_scene row: find_actors returns refs only; location-bearing results cost O(N) transform follow-ups (reopen condition added) - snap-to-ground negative claim scoped: spawn-time snap_to_ground args exist; no standalone tool for existing actors, no normal output - legend: add PrimitiveTools prefix Verify wave confirmed: all 26 spot-checked Epic citations exist verbatim, all 4 negative claims independently reproduced, headline arithmetic exact. Co-Authored-By: Claude Fable 5 --- docs/EPIC_MCP_MATRIX.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/EPIC_MCP_MATRIX.md b/docs/EPIC_MCP_MATRIX.md index 0e4da32..167f202 100644 --- a/docs/EPIC_MCP_MATRIX.md +++ b/docs/EPIC_MCP_MATRIX.md @@ -43,6 +43,7 @@ Naming legend — Epic tools are cited by exact registered name, with these pref | Abbreviation | Full registered prefix | |---|---| | `ActorTools.*` | `editor_toolset.toolsets.actor.ActorTools.*` | +| `PrimitiveTools.*` | `editor_toolset.toolsets.primitive.PrimitiveTools.*` | | `SceneTools.*` | `editor_toolset.toolsets.scene.SceneTools.*` | | `ObjectTools.*` | `editor_toolset.toolsets.object.ObjectTools.*` | | `AssetTools.*` | `editor_toolset.toolsets.asset.AssetTools.*` | @@ -104,7 +105,7 @@ Naming legend — Epic tools are cited by exact registered name, with these pref | properties.py | `ue_set_property` | `ObjectTools.set_properties` (+ `ObjectTools.reset_properties`, which we lack) | FULL | RETIRE | — | | python_exec.py | `ue_execute_python` | **not equivalent**: `Programmatic.execute_tool_script` is a **sandboxed batch runner** — module allowlist `json/math/datetime/copy/re/time`, **no `unreal` import**, must define `run()->dict`, can only call `execute_tool(tool_name, json_input)` over registered tools (per `Programmatic.get_execution_environment`) | NONE | KEEP | Our arbitrary editor-Python with full `unreal` API access has no Epic counterpart. This is the escape hatch for everything Epic hasn't tooled. | | scene.py | `ue_get_actor_details` | `SceneTools.find_actors` + `ActorTools.get_actor_transform` + `ActorTools.get_components` + `ActorTools.get_tags` + `ObjectTools.get_properties` | FULL (composition) | RETIRE | ~4 serial calls vs 1, but complete. | -| scene.py | `ue_query_scene` | `SceneTools.find_actors` (name substring, `actor_type`, tag, world-space AABB `bounds`, optional physics `collision_channels`) | PARTIAL | RETIRE | Our radius-proximity mode maps to an AABB `bounds` query (sphere-vs-box refinement is trivial client-side). Everything else is covered outright. | +| scene.py | `ue_query_scene` | `SceneTools.find_actors` (name substring, `actor_type`, tag, world-space AABB `bounds`, optional physics `collision_channels`) | PARTIAL | RETIRE | Filtered listing is covered outright. Caveat: `find_actors` returns actor refs only — location-bearing results (incl. sphere refinement of the radius mode) cost O(N) `ActorTools.get_actor_transform` follow-ups under serial dispatch. Reopen if that composition proves too slow in practice. | | scene.py | `ue_get_component_details` | `ActorTools.get_components` + `ObjectTools.get_properties` (+ `StaticMeshTools.get_material_slots` where relevant) | FULL (composition) | RETIRE | — | | scene.py | `ue_get_actor_hierarchy` | partial: `SceneTools.find_actors` (`root` = subtree, flat), `ActorTools.get_parent_component`, `ActorTools.get_root_component`, `ActorTools.get_component_actor` | PARTIAL | KEEP-PARTIAL | Epic offers per-hop primitives, no one-shot recursive attachment tree; N-call reconstruction is expensive under serial game-thread + `call_tool` dispatch. Reopen if Epic ships a scene-outliner tree query (its `get_outliner_tree` is Sequencer-only). | | sequencer.py | `ue_create_level_sequence` | `SequencerTools.create_level_sequence` | FULL | RETIRE | — | @@ -126,7 +127,7 @@ Grounded claims of absence, each from a full-text search over all 830 names + de - **Undo/redo/transactions**: absent. - **Sky/atmosphere/fog/cloud/sun/time-of-day**: absent. - **Level-actor duplication**: absent (`AssetTools.duplicate` is content-browser only). -- **Snap-to-ground / surface alignment**: absent. +- **Snap-to-ground / surface alignment**: no standalone tool for EXISTING actors, and no surface-normal output anywhere. (A spawn-time `snap_to_ground` argument does exist on `SceneTools.add_to_scene_from_class`/`add_to_scene_from_asset`.) - **Cloner/Effector**: absent. - **Continuous viewport capture / snapshot diff**: absent (single-shot `CaptureViewport`/`CaptureEditorImage`/`CaptureAssetImage` only). - **Arbitrary editor Python**: absent — `Programmatic.execute_tool_script` sandbox confirmed as described in the header.