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.