Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
TimegatedProgression
Locks boss summons until a real-world date and time chosen by the server, so nobody can rush ahead of the group.
| Date uploaded | 3 weeks ago |
| Version | 0.7.5 |
| Download link | JDawg_Valheim-TimegatedProgression-0.7.5.zip |
| Downloads | 127 |
| Dependency string | JDawg_Valheim-TimegatedProgression-0.7.5 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2350README
TimegatedProgression
A Valheim BepInEx mod that locks each boss until a real-world date and time. Until a boss unlocks, its altar refuses the offering and shows a message you write yourself.
What it does
- Unlocks on a real date. Each boss has its own unlock date and time.
- Nothing is wasted. A blocked attempt consumes no offering and spawns no boss.
- The server decides. The server works out what is unlocked and tells players' games. Changing your own PC clock does nothing.
- Your own words. Each boss has its own locked message and its own unlock announcement.
- Required on both sides. Players without the mod, or on the wrong version, can't join.
- Optional Discord. The server can post announcements and advance reminders to a webhook. The webhook is read by the server only and is never sent to players.
- Live reload. Editing the config on the server applies without a restart.
- Mod Guard (experimental, off by default). Optionally refuses players whose mod list doesn't match the server's. See below.
How it decides which boss an altar belongs to
The game itself records, on every altar, which boss it summons, and on every boss, its intended kill order and the "defeated" flag its death sets. This mod reads those, so it needs no internal names of altars, items or bosses, so it keeps working when a game update renames things.
A boss that has already been killed on that world is never locked again.
Requirements
- Valheim 1.0 (built and tested against 1.0.12, network version 40)
- BepInExPack Valheim 5.4.2350
- Installed on the server and every player
ServerSync v1.20 is merged into the mod's own file, so there is nothing else to install.
Configuration
Config file: BepInEx/config/TimegatedProgression.cfg, created on first run.
1 - General
| Setting | Default | Meaning |
|---|---|---|
Lock Configuration |
true |
Only server admins can change these settings. |
TimeZone |
Central Standard Time |
Time zone the unlock times are written in. The Windows name (Central Standard Time) and the Linux name (America/Chicago) both work on either host, so a Linux server and Windows players can share one value. Handles daylight saving. Supported pairs: Central, Eastern, Mountain, Pacific and UTC. |
UtcOffsetHours |
-6 |
Hours ahead of UTC. Used only when TimeZone is empty or the host doesn't know that name. No daylight saving, so unlocks land an hour late during CDT. |
TimeZoneLabel |
CST |
Written in brackets after a time. Empty shows no label. Only a label — the times come from TimeZone. |
CheckIntervalSeconds |
60 |
How often the server re-checks the schedule, and so how late an announcement can be. |
BlockUnlistedBosses |
false |
Also block bosses that have no section below, such as bosses added by other mods. |
BlockSiteGates |
true |
Also lock any second altar a boss site requires before its boss can be summoned, so both follow that boss's schedule. |
MessageLineLength |
52 |
Messages are wrapped to about this many characters per line, since the game does not wrap them. Write a literal backslash-n in a message to force your own break. |
MessageSizeAdjust |
-8 |
Points added to or taken off the font size of this mod's messages only. Negative is smaller, 0 uses the game default. |
AnnouncementHoldSeconds |
6 |
How long an unlock announcement stays on screen. The game fades centre messages after four seconds, so longer is held by redrawing. |
DiscordWebhookURL |
(empty) | Server-only. Never sent to players. |
DiscordNotifyMinutesBefore |
30 |
Post a reminder this many minutes before an unlock. 0 turns it off. |
1 - Mod Guard
Untested on a live dedicated server. It compiles and follows the same connection handshake ServerSync uses, but it has not been run against real players yet. If anyone has trouble connecting, set
Enabled = falseon the server — the config reloads live, no restart needed.
Mod Guard compares each connecting player's installed mods against the server's. The server's own
mod list is the required list: a player is refused if they are missing one of those mods, run a
mod that is not on the server and not listed as allowed, or have a different version of a mod
whose version is checked — every mod when StrictVersions is on, or only the mods listed in
VersionLockedMods when it is off.
A refused player sees the reason and the names of the mods involved.
With Enabled = false it still checks every connection and writes what it would have refused to
the server log, without refusing anyone. Run it that way first and read the log before turning it on.
| Setting | Default | Meaning |
|---|---|---|
Enabled |
false |
Actually refuse mismatched players. Off means log only. |
StrictVersions |
true |
Require every mod's version to match the server's. Off means versions are checked only for VersionLockedMods. |
VersionLockedMods |
(empty) | Mods whose version must match even when StrictVersions is off. Every other mod only has to be present. |
ServerOnlyMods |
(empty) | Mods the server runs that players don't need. |
ClientOnlyMods |
(empty) | Mods players may run that the server doesn't, such as UI mods. |
RejectMessage |
(generic text) | Shown to a refused player above the list of what's wrong. |
All three lists take comma-separated plugin GUIDs, which are usually not the folder or package name.
The quickest way to find one: BepInEx names each mod's config file <GUID>.cfg. The log from a
Enabled = false run also prints the GUIDs.
Per boss
Sections are numbered by the game's own kill order and named after the biome, for example
2 - Meadows boss.
| Setting | Meaning |
|---|---|
Enabled |
Whether this boss is locked at all. |
UnlockAt |
yyyy-MM-dd HH:mm[:ss] in the configured time zone. Empty means it stays locked. |
LockedMessage |
Shown to a player who tries too early. {time} becomes the unlock time, {biome} the biome name. |
UnlockedAnnouncement |
Shown to everyone online when it unlocks. {biome} becomes the biome name. |
Example: UnlockAt = 2026-10-03 20:00 unlocks that boss at 8pm on 3 October, in your configured
time zone.