unity-scriptableobject

Create, edit, find, and serialize Unity ScriptableObject assets via reflection and serialized properties.

Updated Aug 18, 2026
One-click install
npx skills add https://github.com/ethanJPope/Our-Main-Hackathon-Game --skill unity-scriptableobject-ethanjpope
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: unity-scriptableobject
Source: https://github.com/ethanJPope/Our-Main-Hackathon-Game/tree/main/.agents/skills/unity-skills/skills/scriptableobject
Command: npx skills add https://github.com/ethanJPope/Our-Main-Hackathon-Game --skill unity-scriptableobject-ethanjpope

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Managing Unity ScriptableObject data assets by hand through the Inspector is slow and error-prone, especially for nested fields, arrays, object references, and private [SerializeField] members. This Skill exposes programmatic create/read/update/delete, search, and JSON import/export operations for ScriptableObject assets. ## Core Features & Use Cases - Full CRUD and discovery: Create, duplicate, delete, and find ScriptableObject assets by type, and list all available ScriptableObject types in the project. - Two editing paths: Use reflection-based setters for top-level public fields, or serialized-property setters for nested paths, arrays, object references, private [SerializeField] fields, gradients, curves, and [Flags] enums. - JSON round-tripping: Export a ScriptableObject to JSON (inline or to disk) and import JSON back, with warnings when no serialized field actually changed. - Use Case: Batch-configure a game's item database by exporting a ScriptableObject to JSON, editing values externally, and re-importing, or set an icon reference on dozens of assets with a single batch call. ## Quick Start Ask the AI to create a new ScriptableObject asset of your type at a given path, then set its fields using scriptableobject_set or scriptableobject_set_serialized_property.

Frequently Asked Questions about unity-scriptableobject

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a ScriptableObject asset in Unity programmatically?

Call scriptableobject_create with the ScriptableObject type name and a save path under Assets. To create the ScriptableObject script itself, use the script module with the ScriptableObject template, since scriptableobject_create_type does not exist.

How do I set nested or private fields on a Unity ScriptableObject?

Use scriptableobject_set_serialized_property with a propertyPath like stats.maxHp or items.Array.data[2]. It handles nested fields, arrays, object references, private [SerializeField] fields, gradients, curves, and [Flags] enums that reflection-based setters cannot reach.

What is the difference between scriptableobject_set and scriptableobject_set_serialized_property?

scriptableobject_set uses reflection and only reaches top-level public fields and properties. scriptableobject_set_serialized_property works on Inspector serialized data, supporting nested paths, arrays, object references, and private serialized fields.

Can I export and import Unity ScriptableObject data as JSON?

Yes. scriptableobject_export_json returns JSON inline or writes it to a file when savePath is given, and scriptableobject_import_json applies JSON back to the asset. Import accepts either a bare field object or the MonoBehaviour envelope produced by export.

Why does deleting a ScriptableObject asset return MODE_FORBIDDEN?

scriptableobject_delete is flagged as a high-risk delete operation and is forbidden in Approval and Auto modes. It only executes in Bypass mode or when the call matches an allowlist entry.

Why did my ScriptableObject JSON import report success but change nothing?

The import returns success with a warning when no serialized field changed, usually because field names did not match or values were already equal. Verify field names against scriptableobject_export_json output and retry.