Overthrow mod architecture patterns, naming conventions, and project structure
Quick reference for Overthrow mod-specific patterns and conventions. For detailed patterns, see resource files below.
Use this skill when:
Singleton components on OVT_OverthrowGameMode managing entire systems. Use GetInstance() pattern with static s_Instance. Init() and PostGameStart() called manually by game mode.
See: managers.md for complete manager patterns
Non-singleton components managing individual entities (bases, towns, camps). Register with manager in constructor. Multiple instances can exist simultaneously.
See: controllers.md for complete controller patterns
Central static class providing easy access to all manager singletons. Use OVT_Global.GetSomething() instead of calling GetInstance() directly. Cleaner and more consistent.
See: global-access.md for access patterns
The modular architecture for client-server communication, and since 2026-08-14 the ONLY one. Each player owns a controller entity carrying 17 specialized components, reached with OVT_ControllerComponent<T>.Get(). The legacy comms monolith it replaced is deleted. Built-in progress tracking support.
See: overthrow-controller.md for complete pattern
Scripts in Scripts/Game/, configs in Configs/, prefabs in Prefabs/. Specific subdirectories for Components, GameMode, Entities, Controllers, UI, UserActions.
See: file-structure.md for directory structure
OVT_ class prefix, m_ member prefix, type prefixes (m_i, m_f, m_s, m_b, m_a, m_m). Doxygen-style comments. Getters/setters for protected members.
See: coding-standards.md for complete conventions
OVT_OverthrowGameMode (entity)
βββ OVT_SomeManagerComponent (singleton)
β βββ Manages multiple controllers
β βββ Global system state
βββ OVT_AnotherManagerComponent (singleton)
βββ Manages different system
Entity in World
βββ OVT_SomeControllerComponent (instance)
βββ Manages this specific entity
βββ Registered with relevant manager
Detailed documentation organized by concern:
Pattern: Start here for quick reference, dive into resource files for implementation details.