EnforceScript component patterns, networking, persistence, and memory management for Enfusion engine
Quick reference for EnforceScript development in Arma Reforger. For detailed patterns, see resource files below.
Use this skill when:
Three main component types in Overthrow: Managers (singletons on game mode), Controllers (instance managers), and Components (sub-systems). Each has specific lifecycle and registration patterns.
See: component-patterns.md for detailed patterns and examples
Use RplProp for simple value synchronization, RPC for server/client communication, and JIP for late-join state sync. Never replicate EntityID - use RplId instead.
See: networking.md for comprehensive replication patterns
⚠️ EPF was retired 2026-08-02 — no EPF_* type exists in this project. Component state persists through a ScriptedComponentSerializer subclass overriding Serialize() / Deserialize(), bound by a rule in Configs/Systems/Persistence/Overthrow.conf (a serializer missing from that config is never called). Write version first; binary contexts are positional. No console guards — the vanilla system handles consoles internally.
See: persistence.md for vanilla save/load patterns
All Managed class references must use ref keyword to prevent garbage collection. Store EntityID instead of IEntity for long-term references. Check entity existence before use.
See: memory-management.md for garbage collection patterns
UI contexts extend OVT_UIContext with m_Layout property. Activate contexts via OVT_Global.GetUI().ShowContext(). Each context manages its own .layout file lifecycle.
See: ui-patterns.md for UI context patterns
EnforceScript has unique constraints: no ternary operators, specific replication patterns, strict typing. Knowing these pitfalls saves debugging time.
See: common-pitfalls.md for anti-patterns and solutions
ref keyword for arrays/maps of Managed classesDetailed documentation organized by concern:
ScriptedComponentSerializer, config binding, entity tracking)EnforceScript is a C++ variant with unique characteristics:
Pattern: Start here for quick reference, dive into resource files for implementation details.
npx skills add ArmaOverthrow/enforcescript-patterns下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer