Agent skill

Gameobject Component Modify

by IvanMurzak in IvanMurzak/Unity-MCP

Modify a specific Component on a GameObject in opened Prefab or in a Scene.

Apache-2.0Auto-check passedGame Development

Install Gameobject Component Modify

skills CLI
$ npx skills add IvanMurzak/Unity-MCP --skill gameobject-component-modify -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install IvanMurzak/Unity-MCP gameobject-component-modify --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/IvanMurzak/Unity-MCP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Unity-MCP-Plugin/.claude/skills/gameobject-component-modify .claude/skills/gameobject-component-modify && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gameobject-component-modify
GitHub stars
4.4k
Token cost
~2.8k tokens
SKILL.md length
292 words
Files
1
Skills in repo
80
Repo updated
First seen
Licence
Apache-2.0

At a glance

Modify a specific Component on a GameObject in opened Prefab or in a Scene.

  • Works in 3 steps: componentDiff — full SerializedMember… → pathPatches — list of {path, value}… → jsonPatch — a JSON Merge Patch (RFC…
  • Game Development work in your project
  • SKILL.md covers Three modification surfaces, Path syntax, How to Call and Input, plus 1 more section
  • Calls npm and npx

What it does

Gameobject Component Modify is an agent skill from IvanMurzak/Unity-MCP. Modify a specific Component on a GameObject in opened Prefab or in a Scene. Allows direct modification of component fields and properties without wrapping in GameObject structure. Use 'gameobject-component-get' first to inspect the component structure before modifying. Three modification surfaces are available (componentDiff, pathPatches, jsonPatch) — see the skill body for details.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Game Development. It works with Model Context Protocol. The repository describes itself as: AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C method may be turned into a… The licence is Apache-2.0.

When your agent uses it

  • Game Development work in your project

Example prompts

  • “gameobject-component-get”
  • “/gameobject-component-modify”

Requirements

  • Node.js

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. componentDiff — full SerializedMember diff (legacy, backwards compatible).
  2. pathPatches — list of {path, value} pairs routed through Reflector.TryModifyAt; atomic per-path modification, multiple entries can target…
  3. jsonPatch — a JSON Merge Patch (RFC 7396, extended with [i]/[key] notation) routed through Reflector.TryPatch; multiple fields at any…

What it can do on your machine

Read from SKILL.md and the folder at commit 4c8056f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gameobject Component Modify loads about 2.8k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 292 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from IvanMurzak/Unity-MCP at commit 4c8056f, republished under its Apache-2.0 licence (© IvanMurzak). 292 words, ~2,776 tokens.

Download SKILL.mdSave it as .claude/skills/gameobject-component-modify/SKILL.md (or your agent's skills folder).
name
gameobject-component-modify
description
Modify a specific Component on a GameObject in opened Prefab or in a Scene. Allows direct modification of component fields and properties without wrapping in GameObject structure. Use 'gameobject-component-get' first to inspect the component structure before modifying. Three modification surfaces are available (componentDiff, pathPatches, jsonPatch) — see the skill body for details.

GameObject / Component / Modify

Three modification surfaces

Use whichever fits the task:

  1. componentDiff — full SerializedMember diff (legacy, backwards compatible).
  2. pathPatches — list of {path, value} pairs routed through Reflector.TryModifyAt; atomic per-path modification, multiple entries can target different depths.
  3. jsonPatch — a JSON Merge Patch (RFC 7396, extended with [i]/[key] notation) routed through Reflector.TryPatch; multiple fields at any depth in a single call.

When more than one is supplied they run in this order: jsonPatch → pathPatches → componentDiff. At least one is required.

Path syntax

fieldName, nested/field, arrayField/[i], dictField/[key]. Leading #/ is stripped.

How to Call

bash
unity-mcp-cli run-tool gameobject-component-modify --input '{
  "gameObjectRef": "string_value",
  "componentRef": "string_value",
  "componentDiff": "string_value",
  "pathPatches": "string_value",
  "jsonPatch": "string_value"
}'

For complex input (multi-line strings, code), save the JSON to a file and use:

bash
unity-mcp-cli run-tool gameobject-component-modify --input-file args.json

Or pipe via stdin (recommended):

bash
unity-mcp-cli run-tool gameobject-component-modify --input-file - <<'EOF'
{"param": "value"}
EOF
Troubleshooting

If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead. Read the /unity-initial-setup skill for detailed installation instructions.

Input

NameTypeRequiredDescription
gameObjectRefanyYesFind GameObject in opened Prefab or in the active Scene.
componentRefanyYesComponent reference. Used to find a Component at GameObject.
componentDiffanyNoOptional. The full component data to apply (legacy path). Should contain 'fields' and/or 'props' with the values to modify.
Only include the fields/properties you want to change.
Any unknown or invalid fields and properties will be reported in the response.
pathPatchesanyNoOptional. List of path-scoped patches routed through Reflector.TryModifyAt. Each entry targets one field/element/entry by path. Path syntax: 'fieldName', 'nested/field', 'arrayField/[i]', 'dictField/[key]'.
jsonPatchanyNoOptional. JSON Merge Patch (RFC 7396, extended with [i]/[key] keys) routed through Reflector.TryPatch. Allows multiple fields at any depth to be updated in a single call. Use '$type' for compatible-subtype replacement.
Input JSON Schema
json
{
  "type": "object",
  "properties": {
    "gameObjectRef": {
      "$ref": "#/$defs/AIGD.GameObjectRef"
    },
    "componentRef": {
      "$ref": "#/$defs/AIGD.ComponentRef"
    },
    "componentDiff": {
      "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
    },
    "pathPatches": {
      "$ref": "#/$defs/System.Collections.Generic.List(AIGD.PathPatch)"
    },
    "jsonPatch": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "additionalProperties": true
        }
      ]
    }
  },
  "$defs": {
    "System.Type": {
      "type": "string"
    },
    "AIGD.GameObjectRef": {
      "type": "object",
      "properties": {
        "instanceID": {
          "type": "integer",
          "description": "instanceID of the UnityEngine.Object. If it is '0' and 'path', 'name', 'assetPath' and 'assetGuid' is not provided, empty or null, then it will be used as 'null'. Priority: 1 (Recommended)"
        },
        "path": {
          "type": "string",
          "description": "Path of a GameObject in the hierarchy Sample 'character/hand/finger/particle'. Priority: 2."
        },
        "name": {
          "type": "string",
          "description": "Name of a GameObject in hierarchy. Priority: 3."
        },
        "assetType": {
          "$ref": "#/$defs/System.Type",
          "description": "Type of the asset."
        },
        "assetPath": {
          "type": "string",
          "description": "Path to the asset within the project. Starts with 'Assets/'"
        },
        "assetGuid": {
          "type": "string",
          "description": "Unique identifier for the asset."
        }
      },
      "required": [
        "instanceID"
      ],
      "description": "Find GameObject in opened Prefab or in the active Scene."
    },
    "AIGD.ComponentRef": {
      "type": "object",
      "properties": {
        "index": {
          "type": "integer",
          "description": "Component 'index' attached to a gameObject. The first index is '0' and that is usually Transform or RectTransform. Priority: 2. Default value is -1."
        },
        "typeName": {
          "type": "string",
          "description": "Component type full name. Sample 'UnityEngine.Transform'. If the gameObject has two components of the same type, the output component is unpredictable. Priority: 3. Default value is null."
        },
        "instanceID": {
          "type": "integer",
          "description": "instanceID of the UnityEngine.Object. If this is '0', then it will be used as 'null'."
        }
      },
      "required": [
        "index",
        "instanceID"
      ],
      "description": "Component reference. Used to find a Component at GameObject."
    },
    "com.IvanMurzak.ReflectorNet.Model.SerializedMemberList": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
      }
    },
    "com.IvanMurzak.ReflectorNet.Model.SerializedMember": {
      "type": "object",
      "properties": {
        "typeName": {
          "type": "string",
          "description": "Full type name. Eg: 'System.String', 'System.Int32', 'UnityEngine.Vector3', etc."
        },
        "name": {
          "type": "string",
          "description": "Object name."
        },
        "value": {
          "description": "Value of the object, serialized as a non stringified JSON element. Can be null if the value is not set. Can be default value if the value is an empty object or array json."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
            "description": "Nested field value."
          },
          "description": "Fields of the object, serialized as a list of 'SerializedMember'."
        },
        "props": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
            "description": "Nested property value."
          },
          "description": "Properties of the object, serialized as a list of 'SerializedMember'."
        }
      },
      "required": [
        "typeName"
      ],
      "additionalProperties": false
    },
    "AIGD.PathPatch": {
      "type": "object",
      "properties": {
        "Path": {
          "type": "string",
          "description": "Slash-delimited path to the target field/element/entry. Plain segment navigates a field or property (e.g. 'admin' or 'admin/name'). Use '[i]' for array/list index (e.g. 'planets/[0]/orbitRadius'). Use '[key]' for dictionary entry (e.g. 'config/[timeout]'). A leading '#/' is stripped automatically. Required."
        },
        "Value": {
          "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
          "description": "The new value to write at the path. Use the standard SerializedMember envelope: 'typeName' + 'value' for primitives, or nested 'fields'/'props' for complex types. Required — omitting it overwrites the target with a default empty SerializedMember."
        }
      }
    },
    "System.Collections.Generic.List(AIGD.PathPatch)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AIGD.PathPatch"
      }
    }
  },
  "required": [
    "gameObjectRef",
    "componentRef"
  ]
}

Output

Output JSON Schema
json
{
  "type": "object",
  "properties": {
    "result": {
      "$ref": "#/$defs/AIGD.ModifyComponentResponse"
    }
  },
  "$defs": {
    "AIGD.ComponentRef": {
      "type": "object",
      "properties": {
        "index": {
          "type": "integer",
          "description": "Component 'index' attached to a gameObject. The first index is '0' and that is usually Transform or RectTransform. Priority: 2. Default value is -1."
        },
        "typeName": {
          "type": "string",
          "description": "Component type full name. Sample 'UnityEngine.Transform'. If the gameObject has two components of the same type, the output component is unpredictable. Priority: 3. Default value is null."
        },
        "instanceID": {
          "type": "integer",
          "description": "instanceID of the UnityEngine.Object. If this is '0', then it will be used as 'null'."
        }
      },
      "required": [
        "index",
        "instanceID"
      ],
      "description": "Component reference. Used to find a Component at GameObject."
    },
    "AIGD.ComponentDataShallow": {
      "type": "object",
      "properties": {
        "instanceID": {
          "type": "integer"
        },
        "typeName": {
          "type": "string"
        },
        "isEnabled": {
          "type": "string",
          "enum": [
            "False",
            "True",
            "NA"
          ]
        }
      },
      "required": [
        "instanceID",
        "isEnabled"
      ]
    },
    "System.String-1": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "AIGD.ModifyComponentResponse": {
      "type": "object",
      "properties": {
        "Success": {
          "type": "boolean",
          "description": "Whether the modification was successful."
        },
        "Reference": {
          "$ref": "#/$defs/AIGD.ComponentRef",
          "description": "Reference to the modified component."
        },
        "Index": {
          "type": "integer",
          "description": "Index of the component in the GameObject's component list."
        },
        "Component": {
          "$ref": "#/$defs/AIGD.ComponentDataShallow",
          "description": "Updated component information after modification."
        },
        "Logs": {
          "$ref": "#/$defs/System.String-1",
          "description": "Log of modifications made and any warnings/errors encountered."
        }
      },
      "required": [
        "Success",
        "Index"
      ]
    }
  },
  "required": [
    "result"
  ]
}

© IvanMurzak, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in Unity-MCP-Plugin/.claude/skills/gameobject-component-modify of IvanMurzak/Unity-MCP.

Open the folder on GitHubat commit 4c8056f

Compare with similar skills

Gameobject Component Modify next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gameobject Component Modify compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gameobject Component Modify this skillIvanMurzak/Unity-MCP4.4k—~2.8kAutomated safety check: PassApache-2.0
Sprite Genaldegad/sprite-gen2.6k—~4.4kAutomated safety check: PassApache-2.0
Multi Account Isolationantibrow/anti-detect-browser-skills9141 repos~2.9kAutomated safety check: PassMIT
Blockbench Pluginsjasonjgardner/blockbench-mcp-plugin488—~2.8kAutomated safety check: PassGPL-3.0
Unreal Blueprint Authoringflopperam/unreal-engine-mcp1.1k—~1.6kAutomated safety check: PassNone
Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills275—~4kAutomated safety check: PassMIT

Similar skills

  • Sprite Gen

    aldegad/sprite-gen

    Generates images and game sprites through GPT or Grok with guided provider choices, separate saved defaults, automatic cleanup and optional curation.

    2.6k GitHub stars~4.4k tokensUpdated today
    Game DevelopmentAuto-check passed
  • Multi Account Isolation

    antibrow/anti-detect-browser-skills

    Verify that browser profiles are actually isolated from one another instead of assuming it - confirm each profile's timezone agrees with its own exit IP, that WebRTC exposes only the proxy, that…

    914 GitHub starsUsed in 1 repo~2.9k tokens
    Game DevelopmentAuto-check passed
  • Blockbench Plugins

    jasonjgardner/blockbench-mcp-plugin

    Blockbench plugin/extension development for the 3D modeling tool.

    488 GitHub stars~2.8k tokensUpdated 5 days ago
    Game DevelopmentAuto-check passed
  • Unreal Blueprint Authoring

    flopperam/unreal-engine-mcp

    Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.

    1.1k GitHub stars~1.6k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • Locus Unity Bridge

    Misaka-Mikoto-Tech/agent-skills

    A skill your agent uses when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, named-pipe discovery is needed, C must be executed, or…

    275 GitHub stars~4k tokensUpdated 16 days ago
    Game DevelopmentAuto-check passed
  • Unreal Material and VFX Workflow

    flopperam/unreal-engine-mcp

    Walks an Unreal Engine MCP agent through building materials, Niagara particle systems, Chaos destruction, and curve assets with inspect-then-edit steps.

    1.1k GitHub stars~927 tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed

More from IvanMurzak/Unity-MCP

All 80 skills in this repo
  • Assets Shader List All

    IvanMurzak/Unity-MCP

    List all shaders available in the project assets and packages, sorted by name.

    4.4k GitHub stars~435 tokensUpdated 3 days ago
    Auto-check passed
  • Gameobject Component List All

    IvanMurzak/Unity-MCP

    List the fully-qualified C type names of every concrete UnityEngine.Component subclass available in the project.

    4.4k GitHub stars~846 tokensUpdated 3 days ago
    Auto-check passed
  • Package Add

    IvanMurzak/Unity-MCP

    Install a Unity package from the registry, a Git URL, or a local path.

    4.4k GitHub stars~665 tokensUpdated 3 days ago
    Auto-check passed
  • Package Remove

    IvanMurzak/Unity-MCP

    Uninstall a UPM package from the Unity project. An agent skill from IvanMurzak/Unity-MCP.

    4.4k GitHub stars~602 tokensUpdated 3 days ago
    Auto-check passed
  • Unity Version Split

    IvanMurzak/Unity-MCP

    Split a C file into Unity 6.5+ and pre-Unity 6.5 variants. An agent skill from IvanMurzak/Unity-MCP.

    4.4k GitHub stars~1.1k tokensUpdated 3 days ago
    Auto-check passed
  • Assets Copy

    IvanMurzak/Unity-MCP

    Copy assets at given paths and store them at new paths. An agent skill from IvanMurzak/Unity-MCP.

    4.4k GitHub stars~1k tokensUpdated 3 days ago
    Auto-check passed

Questions about Gameobject Component Modify

What does Gameobject Component Modify do?

Modify a specific Component on a GameObject in opened Prefab or in a Scene. Gameobject Component Modify is an agent skill from IvanMurzak/Unity-MCP. Modify a specific Component on a GameObject in opened Prefab or in a Scene.

When should I use Gameobject Component Modify?

Gameobject Component Modify fits situations like: game Development work in your project.

How do I install Gameobject Component Modify in Claude Code?

Run `npx skills add IvanMurzak/Unity-MCP --skill gameobject-component-modify -a claude-code`. Or copy the skill folder (Unity-MCP-Plugin/.claude/skills/gameobject-component-modify in IvanMurzak/Unity-MCP) into .claude/skills/gameobject-component-modify in your project. Claude Code loads it when a task matches its description.

How do I install Gameobject Component Modify in Codex?

Run `npx skills add IvanMurzak/Unity-MCP --skill gameobject-component-modify -a codex`. Or copy the skill folder (Unity-MCP-Plugin/.claude/skills/gameobject-component-modify in IvanMurzak/Unity-MCP) into .agents/skills/gameobject-component-modify in your project. Codex loads it when a task matches its description.

Can I use Gameobject Component Modify in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add IvanMurzak/Unity-MCP --skill gameobject-component-modify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gameobject-component-modify, .gemini/skills/gameobject-component-modify, .github/skills/gameobject-component-modify and .opencode/skills/gameobject-component-modify in your project.

What does Gameobject Component Modify need to run?

Going by SKILL.md and its folder, Gameobject Component Modify needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.

Does Gameobject Component Modify access the network?

SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Gameobject Component Modify safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Gameobject Component Modify use?

Gameobject Component Modify is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gameobject Component Modify use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gameobject Component Modify?

Skills that share tags, products or a category with Gameobject Component Modify: Sprite Gen (aldegad/sprite-gen, 2.6k stars), Multi Account Isolation (antibrow/anti-detect-browser-skills, 914 stars), Blockbench Plugins (jasonjgardner/blockbench-mcp-plugin, 488 stars) and Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gameobject Component Modify?

IvanMurzak (a GitHub user) maintains it in IvanMurzak/Unity-MCP, which has 4,392 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on October 4, 2026.

Source: IvanMurzak/Unity-MCP on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.