Make a mod
Everything you need to write a mod for Ascent of Ashes that works both in the game's own mod system and through the AshForge Hub — a C# API, the game's assemblies to build against, a starter mod that compiles in one command, and documentation for the parts that are not obvious.
What you get
- A starter mod that builds. Copy it, run
dotnet build, and it lands in the game's Mods folder laid out for both install routes. It finds your game install itself — including a Steam library on another drive. - One API on both routes. Player-facing settings, state that survives a save, periodic work, dev commands, and a way to talk to other mods without depending on them — the same calls whether the player installed your mod in the game's Mods folder or through the Hub.
- Harmony, for changing how the game behaves, packaged so that your mod can never be the cause of a mod-list reset, and the game's own assemblies to compile against.
- Documentation — including the mistakes that already cost us real time, written down so they cost you none.
Before you start
You need the .NET 8 SDK or newer and Ascent of Ashes installed. The AshForge Hub is optional: you need it only to test your mod the way Hub players run it. Windows only for now.
Two things that catch people
Patch classes are marked [GamePatch], not [HarmonyPatch]. The game reads every class of every mod before any mod code runs, and a class marked with a Harmony attribute at that moment breaks the game for every player who enables the mod. The SDK's [GamePatch] takes the same arguments, and the build refuses the other one, so you find out at your desk.
Through the Hub, your own build is refused until you allow it. The AshForge loader only runs mods signed by AshForge. To test your work through the Hub, open Manage Mods → Advanced and turn off Require AshForge signatures. A warning stays on screen while it is off, because with it off any mod in your folder runs — turn it back on when you are done. The game's own mod system does not check signatures.
Getting your mod published
Packaging and publishing go through Depot, however you built the mod — it has a local target that just writes the package to a folder for you to keep or share, and a target that pushes it to us for review. Full detail on both, and on what review involves, is on the submit a mod page.
Mods in the library are signed by us, which is how a player knows the code they are running is the code we reviewed. Depot can package and submit but can never sign — the key never ships in any tool.
A signature says we reviewed that exact build and it reached the player unmodified. It is not a certificate that a mod is safe, and we will never describe it as one.
Not writing code?
A mod that only adds or changes content needs no code at all. That path starts at getting started with the Mod Kit.
Stuck?
Check the FAQ first — the common problems are answered there. Otherwise ask on the contribute page; questions from mod authors are welcome and they tell us which docs are failing.
