proxycore

Implements ProxyCore event, definition-registry, and unlockable idioms in Unity projects.

Updated Oct 13, 2025
One-click install
npx skills add https://github.com/Darth-Carrotpie/ProxyCore --skill proxycore-darth-carrotpie
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: proxycore
Source: https://github.com/Darth-Carrotpie/ProxyCore/tree/main/.agents/skills/proxycore
Command: npx skills add https://github.com/Darth-Carrotpie/ProxyCore --skill proxycore-darth-carrotpie

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? ProxyCore's event, registry, and unlockable APIs differ from generic Unity patterns and even from its own README, so agents writing code against it produce subtle runtime bugs like null singletons, leaked listeners, and unpersisted definition IDs. This Skill encodes the correct idioms so generated code works at runtime, not just at compile time. ## Core Features & Use Cases - Event system guidance: Trigger and listen via generated TriggerEvent/ListenEvent accessors, compose reusable payloads with .With(), and dispose subscriptions correctly in OnDisable. - Definitions and registries: Create BaseDefinition assets and BaseRegistry singletons keyed by the generic base type, with catalog wrappers for key-based lookup. - Unlockables and progression: Implement IUnlockable, UnlockCondition, GameFlagCollection flags, and save profiles while leaving progression graph wiring to designers. - Use Case: When asked to "add an event" or "unlock this when the boss dies" in a Unity project using ProxyCore, the agent reads the matching reference and writes code that follows the package's singleton, ID persistence, and synchronous-dispatch rules. ## Quick Start Ask the agent to add a new ProxyCore event with a payload and a listener in your Unity project, and it will apply the correct generated-accessor and disposal idioms.

Frequently Asked Questions about proxycore

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

FAQPage Schema
How do I add a new event in ProxyCore for Unity?▼

Create an EventMessage asset via Create > Definitions > Event Message, assign categories, then regenerate accessors with ProxyCore > Regenerate Event Accessors. Trigger it with TriggerEvent.<Category>.<Name>.With(payload).Send() and verify the generated GetDefinition id matches the asset's non-zero ID.

How do I listen to ProxyCore events without leaking subscriptions?▼

ListenEvent.<Category>.<Name>.Do(callback) returns an IDisposable that you must store and dispose in OnDisable. The EventCoordinator holds the delegate, so undisposed listeners survive scene reloads and fire against destroyed objects.

Why does my ProxyCore registry or EventCoordinator return null in a build?▼

ProxyCore singletons derive from SingletonSO, which resolves via Resources.Load, so the asset must live in a Resources folder. Also access registries through BaseRegistry<T>.Instance, not the concrete subclass, because the singleton is keyed by the generic base type.

Does ProxyCore event dispatch run asynchronously or on the next frame?▼

Dispatch is fully synchronous and same-frame: Send() runs every listener inline, and chained events resolve on one call stack. Keep handlers cheap, defer heavy work, and guard against feedback loops since there is no re-entrancy protection.

How do I gate content behind unlock conditions in ProxyCore?▼

Implement IUnlockable and IHasPrerequisites on a BaseDefinition with a unique UnlockKey, create UnlockCondition assets, and register the containing registries on the UnlockManager. The designer then connects the actual unlock chains in the visual Unlock Dependency Graph.