# S³ - Seton's Special Sauce An umbrella "everything mod" for [Railroader](https://store.steampowered.com/app/1638770/Railroader/), built on [Unity Mod Manager](https://www.nexusmods.com/site/mods/21). S³ is a thin core that hosts independent, optional **modules**, each disabled by default. Open the S³ settings page in the UMM in-game menu and expand a module's foldout to enable and configure it. Module enable/disable applies on the next game launch. I originally planned on releasing individual mods, but considering my workflow of just making what I want when I want it, I figured a unified platform for all my tweaks and additions would be more convenient for myself (one repo to manage) and the community. ## Modules | Module | What it does | |---|---| | Physics Optimizer | Cuts CPU spent on train physics (LOD fast-path + auto-freeze), with a profiler overlay and debug car tinting. Console: `/rpf` | | Map Popout | Detaches the in-game map into a separate resizable window for a second monitor. Optional MapEnhancer integration. | Both are disabled by default - You must enable them per-module from the S³ settings page, a game restart is required for this to take effect. More modules will follow - S³ is designed to grow. ## Migrating from the standalone mods S³ replaces the separate **Physics Optimizer** (`RailroaderPhysicsOverhaul`) and **PopOut Windows** (`RRPopout`) mods. Uninstall those before installing S³. Settings do not carry over, so re-configure each module from the S³ settings page. If these mods are detected you will be prompted to disable them in the S³ settings page. ## Building Requires the .NET SDK (`dotnet`). The native module additionally needs CMake + the MSVC toolchain. - **Local test install:** `.\dist\build-local.ps1` builds and copies into the game's `Mods\S3\` folder. - **Release zip:** `.\dist\build-release.ps1` produces `dist\SetonsSpecialSauce-.zip` for upload. The game install path is set once in [`Directory.Build.props`](Directory.Build.props) (`GameDir`); override per-build with `/p:GameDir=...` or the build script's `-GameDir` parameter. ## Layout ``` src/ single managed assembly (S3.dll, netstandard2.1) Main.cs UMM entry point Core/ module framework: IModule, registry, settings, settings panel Modules/ one folder per module native/ shared Win32 + D3D11 + Dear ImGui external-window UI engine dist/ build + packaging scripts ```