CustomGauntlet
Build your own wave arena in the Grand Forum - pick the enemies, pick the waves, walk in. Work in progress: only some enemies are spawnable.
About this mod Author’s original text
Custom Gauntlet
A Silksong mod that adds a Custom Gauntlet game mode. Picking it from the New Game
menu skips the opening cutscene and drops you into the Grand Forum with every ability
and tool unlocked, a bench to rest at, and an arena that runs waves you built yourself.
Status — read this first
This is a working toy, not a finished mod. The arena, the wave editor and the
fights all work, and a run you build will play. What isn't done:
- Only some enemies are available. Silksong ships no enemies as loadable prefabs —
they exist only inside rooms — so the mod collects them from rooms you actually load.
The Grand Forum seeds the picker with roughly 37 types on arrival, and Load missing
fetches more by loading rooms from a hand-written list of 32. Anything outside that
reach shows in the picker (the whole Hunter's Journal is listed) but can't be spawned,
and the arena trigger stays off until every enemy in your waves is loaded.
- There's no enemy-to-room index. Load missing works by elimination — load a room,
see whether the missing list shrank — because journal entries store display names that
don't match in-scene object names. Some enemies are simply never found.
- Imported rooms cost memory. Each room that yields an enemy stays loaded for the
session, because its asset bundle owns that enemy's artwork. F9 → Waves shows how
many are being held.
- Rough edges. Choir clappers sometimes stay under the floor (the unstick pass
catches most of it); a few enemies behave oddly in an arena they weren't authored for.
Bosses, per-wave rules, scoring and difficulty tuning don't exist. The dev menu (F9)
exists because you will need it.
Tested against the Silksong build the author had; a game patch can move anything this
reaches into. Nothing here touches a real save — gauntlet runs are their own save slots.
Install
With a mod manager (r2modman, Gale, Mod Manager) — install
CustomGauntlet. BepInEx comes along as a dependency.
By hand — install [BepInEx 5 for Silksong][bepinex], then take
CustomGauntlet-.zip from Releases and merge its plugins
and patchers folders into your BepInEx folder, so you end up with:
BepInEx/plugins/GauntletMod/GauntletMod.dll
BepInEx/patchers/GauntletMod/GauntletMod.Patcher.dll
[bepinex]:
How to use it
- New Game → Custom Gauntlet. You start at the bench at the right-hand end of
the Grand Forum, fully kitted out, with the room's stock fight cleared out.
- Press F7 for the wave editor. Add a wave, then pick enemies for it from the list
on the right. The picker shows the whole Hunter's Journal; greyed-out entries aren't
loaded yet.
- If anything is greyed out, press Load missing and give it a moment — it goes and
fetches those enemies from their own rooms. Some are never found; see Status.
- Close the editor. Your waves are saved and built into the arena straight away.
- Walk into the arena and the fight starts. Dying puts you back at the bench and
resets the run to wave one.
Waves live in BepInEx/config/GauntletMod.waves.txt, which is plain text and fine to
hand-edit.
If the room ever feels like it's holding you in, F9 → Room → Let me out releases the
camera lock and the gates.
Controls
| key | |
| --- | --- |
| F7 | Wave editor |
| F9 | Dev menu (Play / Room / Waves / Debug tabs, draggable, resizable) |
| 1 | Free move — fly with arrows or WASD, shift for speed |
| 2 | Masks/silk readout |
| - / = | Camera zoom out / in |
Build from source
dotnet build -c Release
Builds both projects and copies each into place:
GauntletMod -> BepInEx/plugins/GauntletMod/GauntletMod.dll
GauntletMod.Patcher -> BepInEx/patchers/GauntletMod/GauntletMod.Patcher.dll
The only thing a new machine needs to change is where the game lives. Rather than edit
a tracked file, drop a LocalPaths.props next to Directory.Build.props — it's
gitignored and overrides the default:
C:\Program Files (x86)\St
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: