A Cities: Skylines II mod that allows players to take and upload screenshots of their city and share them with the community.
Screenshots are uploaded to a server and can be viewed by other players as a background image in the main menu, with information about the creator, the city name and controls to refresh the image, upvote or hide the UI to better see the image, to name a few features.
As of April 2026, Hall of Fame has registered:
- 👥 13K users tried the mod
- ❤️ 120K likes were given
- ⬆️ 12K screenshots were uploaded
- 👀 1.7M image views
See also: 📈 live community statistics
The source code for the server is at toverux/HallOfFameServer
|
|
|
|
|
|
Notable features:
- Supersampling all screenshots you make to 4K resolution even if you play at a lower resolution, and makes better renders than the game’s native screenshot tool.
- Have pictures displayed in the main menu, with various information about the city, author, etc.
- Give a like to the pictures you appreciate and see popular pictures.
- Toggle menu UI visibility to admire the pictures (like a slideshow).
- Fine-tune how the algorithm chooses screenshots that are presented to you (recent screenshots, trending, ancient and forgotten, etc.).
- Make screenshots and upload them via a dedicated interface, all in-game.
- Choose between Full HD and 4K resolution for pictures shown in the main menu.
Roadmap: see our feedback & feature requests board here: feedback.halloffame.cs2.mtq.io
The mod is directly inspired from the homonymous mod for Factorio,
Hall of Fame.
Loading Screen Mod Revisited
for Cities: Skylines 1 also provided a similar feature.
Both mods featured hand-picked screenshots, whereas this mod allows everyone to share their
creations.
Special thanks to:
- The Cities: Skylines Modding Discord community in general for their help and kind support.
- Chamëleon TBN for providing some icons the mod uses and algernon for the Unified Icon Library.
- CloverPie, Danil.V.L, Hendrix, Jojodaisuke, Konsi, Prophedt, TheBusStop, ThemisC2, Tigon Ologdring, for having tested the mod and uploaded the first content, so we have beautiful images on launch.
- ThemisC2 for his hum, relentless support to help me finally finish a personal project.
- Standard CS2 modding toolchain (on Linux, see below instead);
- (Recommended) Install mise-en-place for per-project .NET SDK, Node.js &
Bun version management. Without mise, just match the required versions specified in
mise.toml. For now, Node is still and only needed alongside Bun to run Webpack (oven-sh/bun#10768). bun ito install UI mod dependencies.- Recommended: enable
--developerMode --uiDeveloperModeas game launch options.
On Steam those go in Properties → General → Launch Options, where %command% stands for the game
executable:
%command% --developerMode --uiDeveloperModePoint that at Cities2.exe under your install to also skip the launcher. The modding toolchain
exports the install path as CSII_INSTALLATIONPATH.
The in-game toolchain installer is Windows-only, so mise setup:linux stands in for it. It needs:
- the game installed through Steam, launched once under Proton, and closed while the setup runs;
- Unity Hub (the Flatpak works) signed in with a Personal license, since a licensed editor has to open the toolchain's Unity project once;
- mise, for the pinned .NET SDK.
The mod then builds on native .NET; only the Windows-only post-processor and publisher run under
the game's own Proton. The setup installs the Unity version the game pins twice, about 8 GB of
downloads: a Linux editor to open the Unity project, and the Windows editor into the Proton prefix
for the IL post-processor runner. It writes the CSII_* variables to
~/.config/environment.d/60-cs2-modding.conf, so log out and back in once it is done. Rerun it
after a game update.
The C# tests target net48, which takes Mono on Linux: sudo apt install mono-devel, whose
framework facades the test host needs.
If you develop with Claude Code or Codex CLI, the CS Modding agent plugins are recommended: they give an agent a live line into the running game's UI and its C#/ECS internals, plus knowledge of how the game is built.
claude plugin marketplace add CitiesSkylinesModding/agents-plugins
claude plugin install cs2-modding@csmodding
claude plugin install coherent-gameface@csmodding
claude plugin install unity-devtools@csmoddingThen run /cs2-modding-setup, which provisions the local ground truth for this game: a decompile of
your installed game, the launch options above, the debug patch that lets a debugger attach, a corpus
of community mods to read, and a readable copy of the game's UI bundle. It records what it
provisioned in ~/.cs2-modding/setup.md, which is where this repo's own agent skills read those
paths from, so nothing machine-specific is hardcoded here.
Codex CLI uses the same arguments with codex plugin marketplace add / codex plugin add.
The UI mod will be built automatically with the C# solution.
However, if you are actively working on the UI, you may recompile it on change with mise dev.
You can enable the game's UI live reload on change with --uiDeveloperMode.
Debugging C# code can be done following these steps: https://cs2.paradoxwikis.com/Debugging.
Debugging JS code can be done with the browser's dev tools by opening http://localhost:9444 (sadly not working well on Firefox, Chrome is recommended).
Logs are situated in either:
%appdata%\LocalLow\Colossal Order\Cities Skylines II\Player.log%appdata%\LocalLow\Colossal Order\Cities Skylines II\Logs\UI.log%appdata%\LocalLow\Colossal Order\Cities Skylines II\Logs\HallOfFame.log
- Update
VersionandFileVersioninHallOfFame/HallOfFame.csproj; - Update
ModVersioninHallOfFame/Properties/PublishConfiguration.xml; - Update
versioninHallOfFame/UI/mod.json; - Update
HallOfFame/ChangeLog.mdwith only what's changed since the last version; - Update
HallOfFame/LongDescription.mdif needed; - Run the
PublishNewVersionpublish configuration from the IDE ormise publish; - Tag version in git with
vX.Y.Z.
TypeScript code is formatted and linted by the Oxc toolchain (oxfmt and oxlint).
Run mise check to verify types, lint rules and formatting without writing anything, and mise fix
to apply the auto-fixes it reports (run mise tasks to see more options).
The formatter and linter should run as a pre-commit hook if you have it installed,
which should be done automatically when running bun i (otherwise run bun lefthook install).
I'd suggest using an Oxc plugin for your editor to ease development. Make sure that your plugin is set to type-aware mode if it does not inherit this configuration from the project.
If a rule seems out of place for this project, you can either disable/reconfigure it in the
oxlint.config.ts file or disable it with an annotation comment, but these should be justified and
concerted.
For C#, prefer using Rider, as code style and linting settings are saved in the project. Reformat your code before committing (CTRL+ALT+L with Rider).
At the very least, please ensure your IDE has .editorconfig support enabled.
Commits must follow the Conventional Commits specification and more specifically, the Angular one.






