
ValheimSagas
Every Viking has a story. Standalone server website with player statistics, a 2D world atlas, character armory, leaderboards and evolving sagas.Valheim Sagas
Every Viking has a story.
Your adventures, remembered: a standalone Valheim mod with a server-hosted website, a living 2D atlas, character armories, leaderboards and optional AI-written sagas. No ValheimWebMap dependency.

Explore your fellowship
- World Atlas: Valheim terrain captured at runtime, textured brown fog of war, personal or combined exploration, named player markers, online/offline filters and separate kill/loot heat maps.
- Vikings: persisted equipped-character portraits, game item icons, detailed hover/focus/tap tooltips, resistances, gear effects and personal statistics. Shared portraits and equipment remain available after logout while the host website is running.
- Leaderboards: boss progression and credited teams, observed fight times, kills and stars, rarity discoveries, carried gold and optional Epic Loot bounties.
- Optional SLS enhancements: host-colored zone squares that follow SLS fog settings, hover levels above 1, current Nemesis scores and distinct Nemesis boss-kill rankings.
- Sagas: persistent personal and server stories with a separate recorded-facts ledger. The host must configure OpenRouter first; no template stories are generated.
- Make it yours: boxed, full-screen or full-screen scrolling scenery. Your personal login can select backgrounds up to your recorded boss progression; everyone sees the saved selection. New browsers default to full-screen scroll.

Statistics support all history, 30 minutes, 1/6/12 hours, 1/3/7 days and custom dates. Live presence and last-known equipment are independent of the selected time window. Drops, verified earned collections and unknown pickups remain distinct; repeat pickups and bonus loot rolls cannot create extra kills.

Screenshots show an isolated copy of recorded playtest data, with display names replaced for publication. The atlas includes a last-known player marker and the host's SLS boundaries clipped by exploration. The Nemesis leaderboard is shown honestly with no recorded victories yet. These are website captures, not evidence that every multiplayer integration has been verified.
Install and open
- Install BepInEx 5 and Valheim Sagas on the host and every participating client. Use the same release on each. In a mod manager, install the package; manually, extract its
BepInExfolder into your profile/game installation. Keep the four plugin DLLs andwebfolder together. - Start a world. A dedicated server is optional: a normal hosted or solo world starts the website on that computer. The website stops when the host closes the world/game.
- On the host computer, open http://127.0.0.1:8877/. New configurations allow public viewing without a viewer token. This does not expose a public internet port: the default binding remains loopback.
- Settings are in
BepInEx/config/org.valheimsagas.collector.cfg. Existing saved settings are preserved on upgrade. Restart the host after changing server settings. - For a dedicated host, use its allocated website TCP port and the wildcard listener described below. Visitors open
http://SERVER-IP:PORT/. An HTTPS reverse proxy is optional for a domain and encrypted access; no separate website installation is required.
All participating players need Sagas for full telemetry, portraits and exploration. Epic Loot and Star Level System are optional. Game/Unity assemblies and runtime game assets are not bundled. Biome backgrounds are bundled as responsive WebP images for offline use; unused original PNG artwork is excluded from releases.
Dedicated servers: IP and allocated port
Stop the server and edit the existing [Server] entries in BepInEx/config/org.valheimsagas.collector.cfg. For a hosting panel that allocates port 19908:
[Server]
EnableWebsite = true
ListenPrefix = http://*:19908/
RequireViewerToken = false
DisplayName =
AdvertisedAddress =
Restart the server, then open http://YOUR-SERVER-IP:19908/. Replace 19908 with your allocated website port. Keep the http:// and trailing /; the wildcard * belongs in the configuration, not the browser address. 127.0.0.1 only accepts local requests and will not make the website accessible to remote players. The host must allow TCP on the chosen port; keep the Valheim game/query ports unchanged. You do not need to create a panel reverse proxy for direct IP access.
With DisplayName blank, 0.3.9 reads the host's configured Valheim server name, falling back to its world name. Set DisplayName = Your Fellowship to override it. Set AdvertisedAddress = YOUR-SERVER-IP:GAME-PORT if you want the website to display the address players use to join Valheim. This display-only field does not configure the website listener; the game and website ports are usually different. Neither your public IP nor a panel hostname is discovered automatically. Restart after changing these settings.
Public viewing is enabled by RequireViewerToken = false; existing configurations are preserved on upgrade. For personal login and OpenRouter key submission over the internet, use an HTTPS reverse proxy so credentials are encrypted in transit.
Missing players or stale map positions
A congested game connection can delay player snapshots, exploration and portraits even while the website itself opens normally. Upgrade the host and every Sagas client to 0.3.9 and restart their connections. A server name comes from host configuration, so a wrong name is a separate issue from delayed player uploads. If all website data is blank, check the website/API error and server logs too.
For a live marker, the player needs Sagas installed, [Privacy] SharePosition = true, and Visible to other players enabled on Valheim's in-game map. The website's Online Vikings layer must be enabled and its player selection must include that player. Offline positions require the separate Offline - last known layer. Terrain additionally requires ShareMap = true. Upload pacing cannot override these privacy settings.
Multiplayer upload pacing (0.3.9)
Upgrade both the host and every participating client, then restart their Valheim processes. Version 0.3.9 addresses a reported three-second multiplayer stall with Steam k_EResultLimitExceeded log spam: background transfers now yield to the game send queue, use separate byte allowances and wait 30 seconds before retrying unacknowledged data. Older clients still send bursts, so updating only the host is insufficient.
Maps import gradually and a first high-resolution portrait can take several minutes on a busy connection. Existing saved portraits remain visible while a replacement uploads. The collector logs Sagas uploads paused when the game queue is busy and Sagas slow stage for work exceeding 50 ms, with repeated warnings limited to once per minute. These diagnostics contain timings/queue sizes, not credentials or coordinates. The multiplayer incident still requires an operator retest; automated transport checks are not in-game verification.
Privacy and personal login
[Server] RequireViewerToken = false is the public-viewing default. Set it to true to require the shared ViewerToken for viewing. Public viewers still only receive data permitted by each player's sharing settings.
Map sharing defaults on for new configurations. Profile, portrait and position sharing remain configurable. Live position also follows Valheim's Visible to other players map setting. The atlas only receives permitted exploration; fog is not a client-side substitute for access control.
While playing, press Left Ctrl + F8 to copy a personal login token, then paste it into the website's Login dialog. This replaces the previous token for that character/world. Left Ctrl + F9 revokes it. A personal login enables owner-only scenery and storyteller settings; the shared viewer token does not grant ownership. Tokens are stored in the browser tab session and sent in Authorization headers, never in profile URLs.
Scenery progression follows recorded credit: Meadows initially; Eikthyr unlocks Black Forest, Elder unlocks Swamp, Bonemass unlocks Mountains, Moder unlocks Plains, Yagluth unlocks Mistlands, Queen unlocks Ashlands, and Fader unlocks Deep North. Tracking cannot reconstruct unrecorded boss kills from before installation.
Optional SLS and Epic Loot
Neither mod is required. Without them, statistics, vanilla gear/tooltips, portraits, maps, leaderboards and sagas continue to work. SLS and Epic Loot are independently detected; installing one does not require the other.
When SLS is installed on the host, the atlas mirrors its enabled zone overlay, resolved level palette, transparency and above/below-fog setting. The website adds a zone-level tooltip only above level 1. Below-fog outlines and tooltips follow the selected shared exploration; above-fog mode reveals the zone grid without revealing terrain. Host zone settings refresh about every 15 seconds. The website also offers a local SLS-layer visibility toggle.
With the SLS Nemesis system enabled, a received score appears on the Viking's portrait and map tooltip. It is the latest host-observed replicated score, not a lifetime total; missing scores remain unknown. Profile privacy still applies. Nemesis boss defeats have separate filtered player metrics and a team-credit leaderboard, and can inform saga evidence. Repeated death reports count once. These encounters do not unlock ordinary boss progression/scenery or enter normal boss-speed rankings. Older events lacking the Nemesis flag cannot safely be backfilled.
Epic Loot independently enhances rarity colors, gear effects, bounty tracking and loot presentation. It is never required for SLS features or basic website operation. See integration details.
Enable sagas
On the host, set [Lore] OpenRouterKey or the host process's OPENROUTER_API_KEY environment variable. EnableOpenRouter must be true. An OpenRouter account/key is required, even for free routing; Sagas never accesses an existing browser account automatically.
The host default is openrouter/free, with zero token-price ceilings, a 20-attempt daily budget and no paid fallback. Without a host key, stats, maps, portraits and leaderboards work normally; saga prose waits. Old template chapters are hidden and preserved locally rather than displayed as generated stories.
Signed-in players may optionally save their own OpenRouter key and up to eight named storyteller presets in Login. A preset can select a model or an OpenRouter @preset/name. Paid routing requires the player's explicit checkbox, a per-million-token price ceiling and a daily attempt limit. The host key must still be configured. Personal keys are encrypted on the host and never returned to viewers, but the host administrator controls that machine: only entrust a key to a host you trust. HTTPS is required for remote browser key submission. Host generation always remains free-only.
Story prompts use relevant recorded events, career totals, bosses and credited teammates, notable loot, current equipment/effects, resistances, bounties and shared exploration summaries. Context is bounded and respects sharing consent; it does not transmit raw account/world IDs, precise coordinates or API keys as story content. Fiction is labeled separately from facts. See lore details.
Data and release status
Back up BepInEx/config/ValheimSagas with the host stopped, including sagas.db and personal-lore.key if present. The key file is required to decrypt saved personal OpenRouter credentials. Do not share backups, configs or tokens publicly. Uninstalling the plugin does not delete recorded history.
0.3.8 is a tested preview release. Automated tests use labeled synthetic fixtures; real credentialed OpenRouter generation, two-client multiplayer acceptance and Linux hosting still require testing. Unresolved attackers and uncertain loot provenance stay unattributed rather than being guessed. Fight durations are observed telemetry, and carried gold is a snapshot, not a lifetime earnings counter.
License
Valheim Sagas is released under the MIT License, copyright 2026 Pendulumgames and Valheim Sagas contributors. The license is included in every distribution.
Third-party dependencies retain their own copyrights and license terms; see third-party notices. The Sagas license does not grant rights to Valheim assets or other third-party content shown in runtime captures or screenshots. Valheim belongs to Iron Gate AB. This is an independent community mod.

