Web Analytics Made Easy - Statcounter

Tools / Valheim

Valheim World & Modpack Doctor

One page, two checkups. World: inspect a .fwl world file right in your browser - world name, seed, and stored world-modifier keys - then generate the documented -preset / -modifier / -setkey startup flags. Modpack: paste a Thunderstore profile code or package list and get missing dependencies, deprecated packages, version drift, and server-vs-client relevance.

Honest scope: your .fwl is read with the browser's FileReader and never uploaded. This tool deliberately does not write or edit .fwl bytes - world modifiers are changed in-game or with the officially documented startup flags, which is exactly what it generates. Modpack data comes live from Thunderstore's API; where a package declares no Server-side/Client-side tag the verdict is "verify manually", never a guess.

1 · Inspect a .fwl world file (in your browser)

Find it in worlds_local/ next to the world's .db file (Windows: %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\worlds_local, Linux server: ~/.config/unity3d/IronGate/Valheim/worlds_local).


Parsed locally with FileReader. Your .fwl never leaves your browser.

2 · World-modifier startup flags

Emits the flags documented in Iron Gate's dedicated-server guide, appended to a complete startup command. Reading a .fwl above pre-fills recognized modifiers here.

Do not type your real server password here. The output uses a placeholder.

Generating...

3 · Thunderstore modpack checkup

Text only, max 100 KB and 150 packages. Package data is fetched from thunderstore.io and cached.

Asking Thunderstore...

What's inside a .fwl file

A .fwl is the small metadata companion of the big .db world file. Its layout (little-endian, verified against multiple open-source parsers) is: a 4-byte payload length, the world version, the world name and seed as length-prefixed strings, the numeric seed value, the world's unique ID, the generator version, and - on worlds saved since the Hildir's Request update - the list of world-modifier keys such as combat_hard or nomap. That is what the inspector shows. Editing those bytes by hand is how worlds get corrupted, so this tool reads only, and hands you the equivalent documented startup flags instead.

Documented world-modifier flags

FlagAllowed values
-presetnormal, casual, easy, hard, hardcore, immersive, hammer
-modifier combatveryeasy, easy, hard, veryhard
-modifier deathpenaltycasual, veryeasy, easy, hard, hardcore
-modifier resourcesmuchless, less, more, muchmore, most
-modifier raidsnone, muchless, less, more, muchmore
-modifier portalscasual, hard, veryhard
-setkeynobuildcost, playerevents, passivemobs, nomap

Source: Iron Gate's "A Guide to Dedicated Servers" (valheimgame.com). Order matters: -preset first, then -modifier, then -setkey.

FAQ

Is my .fwl really not uploaded?

Really. The inspector uses the browser's FileReader API; there is no upload form and no network request involving the file. You can verify with the network tab open.

Why won't this tool edit my .fwl?

Because writing world files it can't fully verify is how saves get corrupted. The stored modifier keys are readable, and every one of them has a documented startup-flag equivalent - so the safe path (generate the flags, let the game write the file) loses you nothing.

The inspector shows a modifier key it doesn't recognize.

Worlds can carry keys beyond the documented modifier set (in-game sliders write keys like playerdamage 125). Unrecognized keys are shown verbatim and marked "verify manually" - the flag builder only ever emits documented flags.

My profile code returns "not found".

Profile codes are temporary server-side and expire within hours. Re-export the profile in r2modman / Thunderstore Mod Manager and paste the fresh code, or paste the package list as text.

Does "update available" mean I must update?

No. Pinned versions keep working; the finding is informational. When you do update, update the server and every client together - version drift causes join errors.