Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ivanmurzak/script-execute
Compiles and executes C# code dynamically using Roslyn. Supports a full-code mode (default) and a body-only mode — see the skill body for the difference and for how to pass Unity object references as parameters.
Passed 19 of 22 test cases with the skill, and 4 of 22 without it.
and 19 more in the full report
15 fixed4 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/18/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 15 test cases the skill fixed. Same model, same prompt, with and without the skill.
Can you prepare the tool input JSON for `script-execute` to run code that accepts a target Unity GameObject parameter (instance ID 8912) and sets its layer index to 5?
| Checked | Without skill | With skill |
|---|---|---|
| The JSON payload defines parameter objects inside an array under the 'parameters' key. | Missed | Passed |
| The parameter item sets 'typeName' to 'UnityEngine.GameObject'. | Missed | Passed |
| The parameter item sets 'instanceID' to 8912 inside its value map. | Missed | Passed |
The instructions your model reads when the skill loads.
isMethodBody=false): the csharpCode argument must define a complete class with a static method (no top-level statements).isMethodBody=true): provide only the method body statements. The tool auto-generates the usings, class, and method header.Unity objects (GameObject, Component, etc.) can be passed as parameters using their Ref types (GameObjectRef, ComponentRef, etc.) or directly by type:
UnityEngine.GameObject — resolves an actual GameObject from value {"instanceID": N}, {"name": "..."}, or {"path": "..."}.UnityEngine.Component (or any component subtype) — resolves from {"instanceID": N}.AIGD.GameObjectRef — passes a GameObjectRef POCO directly; the method body calls goRef.FindGameObject() to resolve it.AIGD.ComponentRef — passes a ComponentRef POCO.AIGD.ObjectRef — passes a base ObjectRef POCO.unity-mcp-cli run-tool script-execute --input '{
"csharpCode": "string_value",
"className": "string_value",
"methodName": "string_value",
"parameters": "string_value",
"isMethodBody": false
}'
For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool script-execute --input-file args.jsonOr pipe via stdin (recommended):
unity-mcp-cli run-tool script-execute --input-file - <<'EOF' {"param": "value"} EOF
test cases passed, vs 4 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.