scriptable-objects

Design Unity gameplay architecture with ScriptableObject data containers and event channels.

3|Updated Jun 27, 2026
One-click install
npx skills add https://github.com/OmerZeyveli/kinglet-unity --skill scriptable-objects-omerzeyveli
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: scriptable-objects
Source: https://github.com/OmerZeyveli/kinglet-unity/tree/main/.claude/skills/core/scriptable-objects
Command: npx skills add https://github.com/OmerZeyveli/kinglet-unity --skill scriptable-objects-omerzeyveli

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps Unity developers organize gameplay data and system communication without tightly coupling components or relying on fragile scene-bound references.

Core Features & Use Cases

  • Data Containers: Define reusable asset-based configurations for weapons, abilities, enemies, levels, UI themes, and other game data.
  • Decoupled Communication: Implement ScriptableObject event channels for communication between publishers and subscribers.
  • Shared Runtime Patterns: Create variable references, runtime sets, and factory configurations for designer-friendly workflows and scalable gameplay architecture.
  • Use Case: Build a weapon system where designers tune weapon definitions in the Inspector, systems communicate through event channels, and active enemies are tracked through a runtime set.

Quick Start

Use the scriptable-objects skill to design a data-driven Unity system with ScriptableObject containers, event channels, variable references, runtime sets, and factory configurations.

Frequently Asked Questions about scriptable-objects

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

FAQPage Schema
How do I decouple Unity components without relying on singletons?▼

ScriptableObject event channels enable decoupled communication between publishers and subscribers in Unity, replacing singletons with serialized asset references that maintain clean separation between gameplay systems without fragile scene-bound dependencies.

What is the best way to organize weapon and ability data in Unity?▼

Use ScriptableObject data containers to create reusable asset-based configurations for weapons, abilities, and enemies, allowing designers to tune gameplay definitions directly in the Inspector while maintaining a scalable data-driven architecture.

How do I track active enemies at runtime in Unity without circular references?▼

Use ScriptableObject runtime sets to track active enemies dynamically. This pattern avoids circular-reference anti-patterns by maintaining a shared serialized list that gameplay systems can query without tightly coupled component dependencies.

Does using ScriptableObjects for game state require handling lifecycle resets?▼

Yes, ScriptableObject runtime state requires lifecycle-safe event subscriptions and explicit state reset handling. Because serialized assets retain values between play sessions, you must manage runtime resets carefully to avoid stale data carrying over.

When should I use ScriptableObject factory configurations in Unity?▼

Use ScriptableObject factory configurations when you need scalable, designer-friendly object spawning workflows. This approach separates spawning logic from data definitions, supporting data-driven architecture for enemies, weapons, and abilities without overextended logic anti-patterns.