This module installs, configures, starts, stops, monitors, imports, and backs up a Valheim dedicated server.
NEEDS LIVE TEST. Current official launch options, optional PlayFab crossplay, adjacent ports, and module-local saves are implemented. Joining, discovery, graceful stop, and restore still need live testing.
WindowsGSH anonymously installs Steam app 896660 and launches valheim_server.exe. Import Valheim.mod, add a server, install, configure, and start it.
Import accepts a direct installation or WindowsGSM root containing serverfiles. Preview verifies the executable and reads supported arguments from start_headless_server.bat. Existing saves outside WindowsGSHData are intentionally not guessed or moved: copy the vendor save directory into the managed data folder before adopting, or start a new world. Preview never changes the source.
WindowsGSH builds the command line from server/world name, password, public visibility, base port, automatic-save settings, and the crossplay choice. Saves, permission lists, and automatic backups use WindowsGSHData; logs use WindowsGSHData\server.log. Additional arguments are trusted raw text.
| Mode | Ports | Protocol | Exposure |
|---|---|---|---|
| Steam backend (Crossplay off) | 2456-2457 |
UDP | Forward both; eligible for opt-in UPnP. |
| PlayFab (Crossplay on) | 2456-2457 locally |
UDP | Relay-backed; router forwarding is not required. |
The host currently cannot conditionally suppress UPnP declarations, so leave automatic forwarding off for crossplay-only servers. Crossplay supports join codes and other platforms but does not allow loopback/local-IP connections.
Status remains process-based until current Steam-backend A2S/player counts are captured. No RCON or GSLT is claimed. Administration uses adminlist.txt, bannedlist.txt, and permittedlist.txt under the save directory plus the in-game console.
| Purpose | Path |
|---|---|
| Executable | valheim_server.exe |
| Worlds, permissions, automatic backups | WindowsGSHData |
| Log | WindowsGSHData\server.log |
- Existing vendor-profile saves require an explicit copy into
WindowsGSHData. - Conditional UPnP suppression for PlayFab is not available in the host yet.
- Query/player counts and graceful shutdown are not live-certified.
- The vendor command line contains the password; protect process/config diagnostics.
- Test fresh install, Steam-only join/discovery, UDP
2456-2457, and UPnP. - Test PlayFab joining from Steam and another platform, join codes, and no-forwarding operation.
- Import direct and WindowsGSM layouts using Copy and Adopt; migrate an existing world explicitly.
- Test password/public settings, automatic saves/backups, Stop, app exit, session ending, reattachment, update, Verify Files, backup, and restore.
Report issues at https://github.com/WindowsGSH/WindowsGSH.Valheim with versions and redacted diagnostics.
If you like the work I do and would like to support continued WindowsGSH and module development, you can contribute here:
Modules run with WindowsGSH's permissions. Review the manifest, C# source, SECURITY.md, and THIRD_PARTY_NOTICES.md. Behavior follows Valheim's official dedicated-server guide.