uloop-execute-dynamic-code
Task
Execute the following request using uloop execute-dynamic-code: $ARGUMENTS
For basic selected GameObject discovery or property inspection, use find-game-objects --search-mode Selected before this tool. Use this tool after the built-in inspection tools are not enough or when you need to modify Unity state.
Workflow
- Read the relevant reference file(s) from the Code Examples section below
- Construct C# code based on the reference examples
- Execute via Bash:
uloop execute-dynamic-code --code '<code>' - If execution fails, adjust code and retry
- Report the execution result
Parameters
--code '<code>'(required): Inline C# statements to execute. Use direct statements only;returnis optional, andusingdirectives may appear at the top of the snippet.- Shell quoting: bash/zsh uses single quotes, for example
uloop execute-dynamic-code --code 'using UnityEngine; return Mathf.PI;'. PowerShell doubles inner quotes ('Debug.Log(""Hello!"");'). --parameters {}(advanced, optional): Pass an object when reusing a snippet with varying data or when keeping values outside the code. Values are exposed asparameters["param0"],parameters["param1"], and so on. Omit this flag for most snippets, and pass an object instead of a JSON string.--compile-only true(optional): Compile the snippet without executing it. Use this when you want Roslyn diagnostics before running new code.
Code Rules
Write direct statements only — no class/namespace/method wrappers. Return is optional.
using UnityEngine;
float x = Mathf.PI;
return x;
Forbidden — these will be rejected at compile time: System.IO.*, AssetDatabase.CreateFolder, creating/editing .cs/.asmdef files. Use terminal commands for file operations instead.
Output
Returns JSON:
Success: boolean — overall execution successResult: string — value of the snippet'sreturnstatement (empty when omitted)Logs: string[] —Debug.Log/Debug.LogWarning/Debug.LogErrormessages emitted during the runCompilationErrors: object[] — Roslyn diagnostics withMessage,Line,Column,ErrorCode, optionalHintandSuggestionsErrorMessage: string — top-level failure summary (empty on success)Error: string — alias ofErrorMessageSecurityLevel: string — dynamic-code security level active for the requestUpdatedCode: string|null — the wrapped form actually compiled (handy when debugging using-statement reordering)DiagnosticsSummary: string|null — compact summary when diagnostics are availableDiagnostics: object[] — structured diagnostics; same shape asCompilationErrors, usually populated together with it
On Success: false, inspect CompilationErrors first. If empty, read ErrorMessage (and Logs for extra context) — the failure may be a runtime exception, security violation, cancellation, or an "execution in progress" rejection, all of which return empty CompilationErrors. Both EditMode and PlayMode are supported targets — the snippet runs in whichever mode the Editor is currently in.
Code Examples by Category
For detailed code examples, refer to these files:
- Prefab operations: See references/prefab-operations.md
- Create prefabs, instantiate, add components, modify properties
- Material operations: See references/material-operations.md
- Create materials, set shaders/textures, modify properties
- Asset operations: See references/asset-operations.md
- Find/search assets, duplicate, move, rename, load
- ScriptableObject: See references/scriptableobject.md
- Create ScriptableObjects, modify with SerializedObject
- Scene operations: See references/scene-operations.md
- Create/modify GameObjects, set parents, wire references, load scenes
- Batch operations: See references/batch-operations.md
- Bulk modify objects, batch add/remove components, rename, layer/tag/material replacement
- Cleanup operations: See references/cleanup-operations.md
- Detect broken scripts, missing references, unused materials, empty GameObjects
- Undo operations: See references/undo-operations.md
- Undo-aware operations: RecordObject, AddComponent, SetParent, grouping
- Selection operations: See references/selection-operations.md
- Get/set selection, multi-select, filter by type/editability
- PlayMode automation (zsh): See references/playmode-automation-zsh.md
- Click UI buttons, invoke methods, set fields, tool combination workflows for zsh users
- PlayMode automation (PowerShell): See references/playmode-automation-powershell.md
- Click UI buttons, invoke methods, set fields, tool combination workflows for PowerShell users
- PlayMode UI controls: See references/playmode-ui-controls.md
- InputField, Slider, Toggle, Dropdown, drag & drop simulation, list all UI controls
- PlayMode inspection: See references/playmode-inspection.md
- Scene info, game state via reflection, physics state, raycast checks, GameObject search, position/rotation
More from hatayama/uloopmcp
uloop-screenshot
Capture screenshots of Unity Editor windows as PNG files. Use when you need to: (1) Screenshot Game View, Scene View, Console, Inspector, or other windows, (2) Capture current visual state for debugging or documentation, (3) Save editor window appearance as image files.
38uloop-find-game-objects
Use first when the user asks about the currently selected GameObject in the Unity Hierarchy. Inspect selected object details with `--search-mode Selected` before using `execute-dynamic-code`. Use when you need to: (1) Get details and component properties for selected GameObject(s), (2) Search for objects by name, regex, or path, (3) Find objects with specific components, tags, or layers. Use get-hierarchy when the child tree under the selection is needed. Returns hierarchy paths, active state, tags, layers, and components (or writes to a file when multiple GameObjects are selected).
37uloop-unity-search
Search Unity project assets using Unity Search engine. Use when you need to: (1) Find scenes, prefabs, scripts, materials, or other assets, (2) Filter assets by file extension or type, (3) Search with Unity Search query syntax and specific providers. Returns asset paths and metadata.
36uloop-clear-console
Clear all Unity Console log entries. Use when you need to: (1) Clear console before running tests or compilation, (2) Start a fresh debugging session, (3) Remove noisy logs to isolate specific output.
36uloop-run-tests
Execute Unity Test Runner and get detailed results. Use when you need to: (1) Run EditMode or PlayMode unit tests, (2) Verify code changes pass all tests, (3) Diagnose test failures with error messages and stack traces. Single-flight only — never run multiple `uloop run-tests` in parallel.
35uloop-launch
Launch Unity project with matching Editor version via uloop CLI. Use when you need to: (1) Open a Unity project with the correct Editor version, (2) Restart Unity to apply changes, (3) Switch build target when launching.
35