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.
Inferno
Server-side fire control: torches, fires, hearths and hot tubs stay lit with no refuelling, plus burn rate and day/night schedules. Players install nothing, so it works with crossplay (Xbox, PlayStation).
By GrundleLord
| Date uploaded | 2 weeks ago |
| Version | 0.1.0 |
| Download link | GrundleLord-Inferno-0.1.0.zip |
| Downloads | 76 |
| Dependency string | GrundleLord-Inferno-0.1.0 |
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.2351README
Inferno
Server-side control over every fire, torch and fuel-burning station in Valheim. Players install nothing, so it works with Xbox / Game Pass crossplay.
Status: beta (0.1.0). Every feature is implemented and unit-tested. Features marked Available have also been verified in-game on a dedicated server with vanilla PC clients; the others are awaiting in-game testing (see Compatibility).
Features
| Feature | Status | Notes |
|---|---|---|
| Server-only install (clients need nothing, crossplay-safe) | Available (PC clients tested; console clients not yet) | No version check, no new items: vanilla and Xbox clients join as normal |
| Per-item settings for every fuel-burning piece | Available | Found automatically at startup, including pieces added by other mods |
| Always on | Available | Default for all light sources (torches, sconces, fires, hearths, braziers, lanterns, hot tubs, …). Keeps fuel full everywhere, also where nobody is nearby, so bases aren't dark when you arrive. Overrides the schedule |
| Fuel burn rate | Implemented, awaiting in-game test | −10 to +10, 0 = vanilla, each step 10 %: −10 uses no fuel, +10 burns twice as fast |
| Daily on/off schedule | Available | On and off time on the in-game clock (06:00 = sunrise, 18:00 = sunset), one window per day. Equal times (default 00:00/00:00) = no schedule. Fuel is kept while a light is scheduled off. Only used when always on is off |
| Ignore rain | Implemented, awaiting in-game test | Off by default (lights go out in the rain as in vanilla). The server log lists which lights react to rain. See Limits |
| Correct burning while nobody is nearby | Implemented, awaiting in-game test | Vanilla burns all missed time at once when a player arrives, ignoring schedules. Inferno burns it on the server as time passes, following schedule and burn rate |
| Server ownership mode (experimental, off by default) | Implemented, awaiting in-game test | The server keeps ownership of fires, so no player's game burns their fuel or puts them out in rain: fuel only changes when the server says so. Exact burn rate and schedule. See Server ownership mode |
| Commands on signs and in the F5 console | Available | See Commands |
| Commands in chat | Implemented, awaiting in-game test | Needs a second player online |
| Config file with live reload | Available | Edit through your host's web file manager; no restart |
AdminOnly permission switch |
Available | Off by default: anyone may change settings. Anyone can turn it on; only admins can turn it off. Inferno never changes the server's admin list |
| Full audit log and error reporting | Available | Every command, every change (who, old → new) and every config-file edit goes to the BepInEx log |
| Safe uninstall | Implemented, awaiting in-game test | On a normal server shutdown Inferno switches scheduled-off lights back on before the world is saved; fuel stays as it is |
| Optional PC client mod: in-game settings menu | Implemented, awaiting in-game test | Same DLL on a PC client + ConfigurationManager (F1). Shows and edits the server's settings live; read-only for non-admins while AdminOnly is on. See Client mod |
| Per-item smoke toggle | Implemented, awaiting in-game test | Removes smoke for players who have the client mod; everyone else sees vanilla smoke |
| No rain flicker (client mod) | Implemented, awaiting in-game test | With IgnoreRain on, players with the client mod never have their lights put out by rain |
Items that are not light sources (smelters, blast furnaces, ovens, …) keep vanilla behaviour until you change them. Items without fuel (e.g. the charcoal kiln) and fires with infinite fuel are not listed.
Installation (server)
With a mod manager (r2modman, Thunderstore Mod Manager, or your host's Thunderstore mod installer): install GrundleLord-Inferno. BepInExPack Valheim is installed with it.
By hand:
- Install BepInExPack Valheim on the server (most hosts have a one-click option).
- Copy
Inferno.dllandInferno.Core.dll(in the download'spluginsfolder) to the server'sBepInEx/plugins/Inferno/folder. - Restart the server. The log (
BepInEx/LogOutput.log) showsInferno … loadedand lists every item it found. - Settings are in
BepInEx/config/GrundleLord.Inferno.cfg(created on first start). A fully commentedsample-config.cfgcomes with the download.
Players don't install anything.
Commands
Three ways to type the same commands:
| Where | How | Works when | Reply |
|---|---|---|---|
| Chat | !fires <command> |
At least one other player is online. Valheim sends chat directly to other players, so a lone player's chat never reaches the server | On screen, top left |
| Sign | Write !fires <command> on any sign |
Always, including alone and on Xbox. Signs hold 50 characters | On screen, and a short answer replaces the command on the sign |
| F5 console | listkeys fires <command> |
Always. Needs the -console launch option (Steam: Properties → Launch options). Not available on Xbox |
In the console |
The F5 form borrows the vanilla listkeys command because Valheim only forwards built-in server commands to the
server. Without Inferno it just lists world keys, so it is harmless.
| Command | Example |
|---|---|
help |
!fires help |
status |
!fires status (is Inferno running? versions, counts, in-game time) |
list [all|lights|stations] |
!fires list lights |
show <item> |
!fires show hot tub |
alwayson <item> on|off |
!fires alwayson lights off |
smoke <item> on|off |
!fires smoke lights off (client mod players only) |
burnrate <item> <-10..10> |
!fires burnrate all -5 |
schedule <item> <on HH:MM> <off HH:MM> |
!fires schedule lights 18:00 06:00 |
schedule <item> off |
!fires schedule lights off |
reset <item> |
!fires reset all |
adminonly on|off |
!fires adminonly on |
hidecommands on|off |
!fires hidecommands off |
ignorerain on|off |
!fires ignorerain on |
serverownership on|off |
!fires serverownership on |
<item> is the name as shown in game, e.g. hot tub, standing wood torch, campfire (case, spaces and
punctuation don't matter; a name shared by several items changes all of them), or a group: all, lights,
stations. Internal names like piece_bathtub work too. Typos get "did you mean" suggestions.
Replies appear top left for a few seconds and stay in the game's message log (Compendium → Logs). A command written on a sign is replaced by a short answer, so the result stays readable until you write the next command.
Example: torches that light at dusk and never need fuel.
always on overrides the schedule, so switch it off and set the burn rate to −10:
!fires alwayson lights off
!fires burnrate lights -10
!fires schedule lights 18:00 06:00
Configuration
Everything the commands change is stored in BepInEx/config/GrundleLord.Inferno.cfg, and edits to that file
apply live. A fully commented sample-config.cfg comes with the download.
| Section | Setting | Default | Meaning |
|---|---|---|---|
[General] |
AdminOnly |
false |
Only admins may change settings |
HideCommands |
true |
Hide !fires chat lines from other players |
|
IgnoreRain |
false |
Relight lights put out by rain or wind | |
ServerOwnership |
false |
Experimental: server keeps ownership of fires | |
[<item>] |
AlwaysOn |
lights true, stations false |
Keep fuel full; overrides the schedule |
BurnRate |
0 |
−10 … +10, 10 % per step | |
Smoke |
true |
Smoke on/off (client mod players only) | |
OnTimeHour, OnTimeMinute |
0, 0 |
Hour 0–24, minute 0–60 (lights only) | |
OffTimeHour, OffTimeMinute |
0, 0 |
Same; on = off means no schedule |
Optional client mod (PC)
Players don't need anything. PC players may install the same Inferno files (plus
ConfigurationManager, which
many modded setups already have) to get:
- A settings menu: press F1, open Inferno. While connected to a server running Inferno, the menu shows the
server's settings and changes apply to the whole server immediately (they are sent as normal commands, so the
same permissions and logging apply). With
AdminOnlyon, non-admins see the settings read-only. - Smoke toggle: items set to
Smoke = offmake no smoke for this player. - No rain flicker: with
IgnoreRainon, this player's game never puts lights out in the rain.
On a server without Inferno, or in single-player without a world loaded, the client mod does nothing. Version mismatches between client and server are detected; the menu is then disabled with a message.
Server ownership mode (experimental)
Normally the player nearest a fire "owns" it, and their game burns its fuel and switches it off in rain; Inferno
corrects from the server. With ServerOwnership on, the server keeps ownership of every eligible fire instead:
- No player's game burns the fuel, so it changes only when Inferno says so: always-on fires never drop, burn rate and schedule are exact, and there are no update collisions.
- Rain and wind can't switch these fires off.
- Adding fuel and switching on/off are handled by the server, so nothing is lost.
- Deconstructing, repairing or damaging a fire briefly hands it to that player (30 s) so the game handles it normally. The action takes about a second longer than usual; if it doesn't happen, try again.
- Side effects: no sound or flash when adding fuel or switching these fires.
- Excluded (keep normal behaviour): fires that melt Deep North snow or spread fire, and pieces with other player-run parts (smelters, containers, …). The server log lists them.
- Turning it off gives every fire back immediately; Inferno also gives them back on shutdown.
Known limits
These come from how Valheim works and apply to any server-only mod:
- Rain, wind, roofs and water are checked on players' PCs. Some lights (e.g. candles, lanterns) switch
themselves off in the rain; with
IgnoreRainon, Inferno switches them back on within a few seconds, but they may flicker during storms. The server can't tell rain from a player's hand, soIgnoreRainalso relights lights players switched off. Lights blocked by a roof or under water stay out. - Burn rate is close, not exact, while a player is nearby. That player's game burns the fuel; Inferno corrects the amount every 5 seconds. While nobody is nearby, the server burns fuel itself, exactly, following the burn rate and the schedule.
- Chat commands need a second player online (see Commands); signs and the F5 console always work. Console players whose platform privacy settings block text chat can always use signs.
- Smoke can only be removed for players who have the client mod.
- Uninstall: stop the server normally (not a forced kill), then remove the files. Fuel levels stay as they are and burn normally afterwards.
Troubleshooting
- Write
!fires statuson a sign (orlistkeys fires statusin the F5 console). If nothing answers, Inferno isn't running on the server. The last line shows errors since start. - Open the server's
BepInEx/LogOutput.log(most hosts show it in their file manager). Search forInferno:- the startup diagnostics block lists versions, crossplay on/off, other mods, and any other mod that hooks the same game methods as Inferno (the usual cause of conflicts);
- every command, change and reply is logged;
- errors are logged in full the first time and summarised if they repeat. Inferno skips the failing object and keeps running.
- When reporting a problem, include the startup diagnostics block and the first error.
Compatibility
| Valheim version | Inferno version | Tested in-game |
|---|---|---|
| 1.0.17 | 0.1.0 | Yes: local dedicated server, vanilla PC client. Hosted servers, crossplay and console clients: not yet |
Inferno targets the latest stable Valheim release only. New game patches are tested as they ship; older game versions are not supported.
License
MIT © 2026 GrundleLord.
CHANGELOG
Changelog
All notable changes are documented here. Format: Keep a Changelog; versioning: Semantic Versioning.
[Unreleased]
[0.3.2] - 2026-10-11
The preset fix is unit-tested only; not yet checked in-game.
Fixed
!fires preset eternal nearby(ornight) without an item name changed every fuel user around you, so nearby smelters and blast furnaces became always on with free coal. Presets withnearbynow change only lights, as they do withoutnearby; name a station to include it (!fires preset eternal smelter nearby). Already affected stations:!fires reset stations nearby.
Changed
IgnoreRainis no longer advertised: a server-only mod can't keep fires lit in the rain. Uncovered fires and torches smoulder with steam while it rains, as in vanilla; they keep burning and keep their fuel. Use a roof. The setting stays for the PC client mod and is no longer listed inhelp,statusor the README feature list.- README: clock example with 12 torches and a picture;
nearby <metres>is now tested in-game (PC).
[0.3.1] - 2026-10-08
Released without in-game testing (unit-tested only), like 0.3.0.
Added
nearby <metres>(1–100): a plain circle of that size around the sign or player, e.g.!fires schedule nearby 2 13:00 14:00changes only the torch right next to the sign. Ward permission still applies. Without a number,nearbystill means the ward's area, or 20 m.
[0.3.0] - 2026-10-08
Released without in-game testing (unit-tested only). Changes since 0.2.x run on every fire, not only for
players who use nearby. If something misbehaves, go back to 0.2.2 and please report it on GitHub.
Added
- Per-base control with
nearby: addnearbyto an item command to change only the fires around you or the sign, e.g.!fires preset night nearbyor!fires burnrate torches nearby -5. Inside a ward, "nearby" means that ward's area and only players with access to the ward can change its fires (same rule as building); without a ward it means everything within 20 m. Those fires keep their own settings (saved with the fire, also after a restart);!fires reset nearbymakes them follow their item type again;!fires show nearbylists them. - Wrong word order gets a suggestion:
!fires all preset eternal→ "Did you mean: !fires preset eternal all". !fires undosteps back through your last 10 changes (was 1).- Performance line in the server log every 10 minutes (objects tracked, time per pass and sweep, writes, errors).
!fires statusalso counts fires with their own settings and wards.- Link to the GitHub repository on the mod page; README links to the tester guide and sample config work on Thunderstore.
[0.2.2] - 2026-10-07
Changed
- Help is easier to read on screen and in the message log: one command per line with a short description, and
topic pages
!fires help items,!fires help presets,!fires help admin(each fits on screen).
[0.2.1] - 2026-10-07
Changed
- Setting a burn rate or a schedule window on an always-on item now switches always on off, so the setting takes
effect (the reply says so). Turning always on back on keeps the stored burn rate and schedule for later.
schedule … offleaves always on alone.
Fixed
- Commands written with formatting, e.g.
<color=green>!fires statuson a sign, were ignored. Formatting tags are now ignored when reading commands, and the answer on the sign keeps the player's formatting.
[0.2.0] - 2026-10-07
Tested on a local dedicated server (Valheim 1.0.17): presets, word groups, instant sign answers. undo is
unit-tested but not yet tested in-game.
Added
- Presets:
!fires preset eternal|night|vanilla [item](e.g.!fires preset night= lights lit 18:00–06:00 without using fuel). - Word groups:
torches,braziers,fires,lanterns, … select every item with that word in its name; replies list what changed. Schedule wordsnightandday. !fires undoreverts your own last change.
Changed
- New fires are filled and sign commands answered within about a second (previously up to 30 s / 5 s).
!fires torchstyle words now select matching items instead of only suggesting names.
[0.1.0] - 2026-10-07
First public beta. Tested in-game on a local dedicated server (Valheim 1.0.17) with vanilla PC clients.
Added
- Error reporting: each problem is logged once in full (repeats summarised), one failing object never stops
Inferno, startup diagnostics (versions, crossplay, other mods, shared hooks), error count in
!fires status. - Thunderstore package (GrundleLord-Inferno); MIT license.
- Project scaffold: core library, BepInEx plugin, test project with a 100 % coverage gate.
- In-game clock conversion that matches Valheim's own day/night rescaling (06:00 = sunrise, 18:00 = sunset).
- Server-side plugin: discovers every fuel-burning item, keeps light sources (incl. hot tubs) always on by default,
burn rate −10…+10, daily on/off schedule,
IgnoreRain, shutdown restore of scheduled-off lights. - Commands via chat (
!fires …), signs (!fires …) and the F5 console (listkeys fires …); groupsall,lights,stations;AdminOnly/HideCommandssettings. - Server burns fuel itself for fires nobody is near (follows schedule and burn rate; no burst on arrival).
- Reliable server writes for refills and schedule switches; fewer network writes for always-on items.
- Each game hook installs separately (a game update can't take the whole mod down); version-mismatch warning; startup list of lights that react to rain.
- Experimental server ownership mode (
ServerOwnership, off by default): the server owns fires, so fuel only changes when Inferno says so; add-fuel and switch actions are handled on the server; other actions briefly hand the fire to the player. - Optional PC client mod (same DLL): ConfigurationManager (F1) menu that shows and edits the server's settings
live through a private channel vanilla clients never see; per-item smoke toggle; no rain flicker with
IgnoreRain. !fires statusfor remote testing; per-player rate limit, command length cap, batched broadcasts and menu edits; plain-language tester guide for players without mods.- Commands accept in-game item names (
!fires alwayson hot tub on) with suggestions for typos; replies are one combined message, sign commands leave a short answer on the sign, and replies are logged on the server. - BepInEx config file with live reload; audit log of every command, change and config-file edit.
- Release packaging (
dotnet build -c Release→artifacts/Inferno-<version>.zip), sample config, in-game test checklist.