Featured product
Common Game System Framework
A headless C# foundation for Unity 6.3 LTS PC single-player projects. Twenty-three production services wired by a single Bootstrap.Run(). No DI container, no scene singletons, no setup code in your game scripts.
23 production services
Service Locator, Logger, Event Bus, Save/Load, Configuration, Input, Time, Object Pool, Audio, UI Panel Stack, Scene Flow (+additive), Localization, Achievements, Scheduler, Tween, Asset Provider, Random, FSM, Pushdown Stack, Tween Sequencing, Addressable Scene, Deferred Event Queue, Command Registry — wired together by a single Bootstrap.Run().
7 runtime assemblies
Core holds 18 services with zero package dependencies; Input, UI, Localization, Assets, AddressableScene and Bootstrap layer on top. Remove an unused UPM package and the dependent assemblies self-exclude — Bootstrap falls back instead of breaking your build.
0 third-party dependencies
Only Unity Engine + first-party Input System / UGUI / Addressables — each one optional. Permissively licensed (MIT / Apache / BSD only — no GPL family).
AI-tool integration
Ships with AGENT.md spec + 5 task skills (cgs-init / cgs-panel / cgs-event / cgs-config / cgs-test) for Claude Code, Cursor, and GitHub Copilot. Drop into .claude/skills/, .cursorrules, or .github/copilot-instructions.md.
IL2CPP-verified + URP-agnostic
Mono and IL2CPP scripting backends both verified. Works with URP / HDRP / Built-in / Custom RP — contains zero rendering code.
2,600+ automated tests passing
EditMode + PlayMode coverage. The full suite ships inside the package (hidden by default) — import it with one click and run it against your own Unity version.
A playable demo + 6 samples
The Motion Lab demo scene is visible right after import - open it and press Play. Six more samples import with one click from the Welcome window: UI Panel Stack menu flow, Save/Load + Seeded Random determinism proof, a working in-game Command Console, and three script templates. Plus Welcome and Service Debugger editor windows.
Pluggable Null-escape pattern
Every service ships a no-op 'Null' implementation. ServiceLocator.Replace<T>(new NullX()) mutes a subsystem across your whole game with zero caller-side changes.