About ProgressionGater
From ThunderstoreAdmin-controlled server-wide boss unlocks and crafting progression for Valheim.
Progression Gater
A lightweight, server-wide Valheim progression scheduler. Administrators decide when bosses may be summoned; defeating a boss releases its configured crafting tier for everyone.
Created by Catosaur.
Progression Gater is designed for community servers that want a shared release schedule without adopting a large progression overhaul.
Features
- Live admin commands for unlocking and relocking boss summons.
- Server-wide boss-defeat state with immediate client synchronization.
- Independent boss-summon and crafting gates.
- Configurable vanilla or modded bosses.
- Exact-prefab and case-insensitive keyword recipe rules.
- Optional matching against recipe ingredients as well as outputs.
- Optional admin bypass.
- Optional Discord webhook posts when a boss is unlocked or genuinely defeated.
- Config hot reload and server-authoritative rule synchronization.
This initial version gates boss altars and ordinary crafting recipes. It does not yet gate equipment use, building, cooking-station conversions, smelting, loot drops, traders, portals, or biome entry.
Requirements
- Valheim
- BepInEx
- The mod must be installed on the dedicated server and every client. ServerDevcommands is optional; Progression Gater authorizes its own
pg_*commands against the server admin list.
Installation
Copy ProgressionGater.dll into BepInEx/plugins/ on the server and all clients. Start the server once to generate:
BepInEx/config/com.catosaur.progressiongater.cfg
The server's rules and state are synchronized to clients. Client-side copies of the rule configuration do not override the server.
Admin commands
Commands are authenticated against Valheim's server admin list.
pg_status
pg_unlock next
pg_unlock <boss>
pg_lock <boss>
pg_defeat <boss>
pg_undefeat <boss>
pg_reset confirm
pg_webhook_test
pg_unlock next selects the first configured boss that has not been defeated. An explicit boss ID may be used to unlock out of order.
pg_defeat repairs/imports state administratively and intentionally does not send a boss-kill webhook. Only a real RPC_SetGlobalKey boss-defeat event sends that notification.
Default progression
| Defeated boss | Crafting keywords released | |---|---| | Eikthyr | Bronze | | The Elder | Iron | | Bonemass | Silver, Obsidian | | Moder | BlackMetal | | Yagluth | Mistlands material keywords | | The Queen | Ashlands material keywords | | Fader | No default next-biome rule yet |
All seven bosses begin summon-locked and undefeated on a new configuration.
Rule configuration
Boss records use this format:
id|display name|boss prefab|defeat global key|alias,alias
Records are separated with semicolons. Their order controls pg_unlock next. Aliases may be used by commands and prefab lookup; alternate defeat-key aliases must begin with defeated_.
Keyword recipe rules use:
bossId=keyword,keyword;bossId=keyword
Keywords match substrings without case sensitivity. For precise rules—especially modded content—prefer exact-prefab rules:
elder=MyMod_IronWand,MyMod_IronStaff;moder=MyMod_PlainsBlade
When MatchRecipeIngredients = true, both recipe output and ingredient prefab names participate in matching. When false, only the output prefab is checked.
Invalid records and references to unknown boss IDs are ignored with warnings in the BepInEx log. If every boss definition is invalid, the built-in definitions are restored as a safe fallback.
Discord webhook
Set these values in the server config:
[Discord]
WebhookUrl = https://discord.com/api/webhooks/...
ServerLabel = My Valheim Server
PostBossUnlocks = true
PostBossDefeats = true
Messages are configurable:
- Unlock tokens:
{boss},{bossId},{admin},{server} - Defeat tokens:
{boss},{bossId},{server}
The webhook suppresses Discord mentions. By default, only HTTPS Discord hosts are accepted. Compatible third-party endpoints require explicitly enabling AllowNonDiscordWebhookHosts.
Run pg_webhook_test after configuring the URL to verify delivery without changing progression state.
Building
Place the required game/framework references in lib/, or use the 1.0-aware setup script. The game and BepInEx files live in separate directories:
.\scripts\setup-references.ps1 `
-GameManagedDirectory "C:\Program Files (x86)\Steam\steamapps\common\Valheim\valheim_Data\Managed" `
-BepInExCoreDirectory "C:\Program Files (x86)\Steam\steamapps\common\Valheim\BepInEx\core"
.\scripts\build.ps1
For a dedicated server, use its BepInEx core directory and the client game's valheim_Data\Managed directory for the game references. Install BepInExPack Valheim 5.4.2350 on every client and server.
Build output:
src/ProgressionGater/bin/Release/net48/net48/ProgressionGater.dllHighlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 56d ago.
ProgressionGater on Nxeon
From our catalogue- One-click install
- Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
- Server type needed
- BepInEx
- Server load
- light
- Smallest plan we suggest
- Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
- Latest build
- 0.2.3, released 2026-09-09
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 4 recorded builds of ProgressionGater.
Recent builds
| Build | Released | Game versions | Loaders |
|---|---|---|---|
| 0.2.3 | 2026-09-09 | n/a | BepInEx |
| 0.2.2 | 2026-09-09 | n/a | BepInEx |
| 0.1.2 | 2026-09-06 | n/a | BepInEx |
| 0.1.1 | 2026-09-05 | n/a | BepInEx |
Dependencies
- Required: BepInExPack Valheim
Declared by the newest build that lists any. Required ones are installed with it on one-click installs.
Run ProgressionGater on a Valheim server
Pick a server or deploy a new one above; it is installed in one click.
What kind of mod it is
From the catalogAdmin & protection
Permissions, moderation, anti-cheat and land protection for the people running the server.
Compatibility
- Game
- Valheim
- Loaders
- BepInEx
- Requires
- One-click install needs a BepInEx server.
Verified at the source
- ✓ThunderstoreOfficial listing, checked 2026-10-02Open ↗
- ✓Authorcatosaurluna, as published on Thunderstore
- ✓LicenseNot published by the sourceFree






