← ClaudeAtlas

cs2-modding-uilisted

The Cities: Skylines II mod UI discipline: the C#-to-JavaScript binding layer and the game's React frontend. Use when a mod needs a panel, button or overlay in the game's UI, when exposing C# state to the frontend or invoking C# from it, when injecting into the game's own component tree, when a UI mod's bundle does not load or its styles do not apply, or when checking what the game's frontend already provides.
CitiesSkylinesModding/agents-plugins · ★ 5 · Web & Frontend · score 74
Install: claude install-skill CitiesSkylinesModding/agents-plugins
# Modding the Cities: Skylines II UI The game's interface is a web page: React components rendered by Coherent Gameface, shipped on disk as one JavaScript bundle beside one stylesheet. A UI mod is a second ES module the page loads at startup and hands the module registry, through which it overrides, extends or appends to the game's own components. Its C# half publishes state and receives calls over the binding layer: every binding is a `group.name` path, pushed, triggered or called across the wire. Verified against game version 1.6.0f1. Each reference below states its own baseline. **IMPORTANT: follow this skill's references on anything they own — or at the very least grep them before acting on a familiar shape, because the frontend diverges from standard web shapes exactly where a prior feels safest, and the guess tends to fail silently.** ## Which source answers what The installed bundle — `Cities2_Data/Content/Game/UI/index.js`, with `index.css` beside it — is first-party and authoritative for the whole frontend: the module registry and its paths, the component tree, every formatter, the wire format a binding arrives in. The decompile answers only for the C# half: the binding types in `Colossal.UI.Binding`, and the `Game.UI.*` systems that register them. The official UI scaffold, which the install carries under `.ModdingToolchain`, answers for the modules a UI mod may import and for the game's TypeScript declarations. A C# grep that finds nothing about a module, an exp