About UsefulRunestones
From ThunderstoreExploration rewards for RuneStones and Vegvisirs: reveal weighted global map pins from pinless RuneStones, grant biome-based Vegvisir buffs with cooldowns.
UsefulRunestones
UsefulRunestones turns Valheim's RuneStones and Vegvisirs into configurable exploration rewards.
Runestones have a chance to pin configured locations just like vegvisirs!
Vegvisirs can give players shorttime buff according to biome.
So vegvisir is still a little useful even though you already know boss locations.
Highlights
- Let pinless RuneStones reveal configured world locations as saved map pins.
- Give custom pin names and pin icons per target location.
- Use weighted chances so a RuneStone can reveal one target or reveal nothing.
- Resolve global pins on the dedicated server, then send only the result to the interacting client.
- Restrict or expand valid RuneStone source biomes per target.
- Grant weighted Vegvisir status-effect rewards by biome.
- Combine biome-specific reward tables with an
Alltable. - Keep one selected reward and per-player cooldown state per loaded Vegvisir.
- Play optional shared
vfx_,sfx_, orfx_prefabs when a reward is granted. - Sync YAML to clients with ServerSync and reload while the game is running.
- Support custom biome names through Expand World Data when it is installed.
Why Use UsefulRunestones
UsefulRunestones focuses on small world-interaction rewards that make exploration more useful:
- Existing RuneStones can point players toward configured landmarks without editing location prefabs.
- Server owners can tune target weights and the chance of revealing no pin.
- Vegvisirs can become biome-flavored reward points instead of one-time boss pointers only.
- Cooldowns are tracked per loaded Vegvisir and per player, so shared servers can reward exploration without giving unlimited buffs.
- The YAML stays compact enough to maintain by hand.
Generated Files
The mod creates:
BepInEx/config/UsefulRunestones.yml
BepInEx/config/sighsorry.UsefulRunestones.cfg
Server admins should edit the YAML on the server or host. The full YAML text is synced to clients automatically.
RuneStone Global Pins
runestoneGlobalPins rows use this shorthand:
runestoneGlobalPins:
- Vendor_BlackForest, 0.5, Haldor, Icon3
- SunkenCrypt4, 0.25, Sunken Crypt, Icon3, [Swamp]
Fields:
locationName, chance, pinName, pinType, sourceBiomes
Field behavior:
locationName: targetZoneSystemlocation prefab/name.chance: final weighted chance for this target. Omitted value defaults to1.pinName: saved map pin name. Omitted value uses the target location discover label, then child teleport enter text, thenlocationName.pinType: ValheimMinimap.PinType. Omitted value defaults toIcon3.sourceBiomes: extra RuneStone source biomes that can reveal this target.
If filtered target chances add up to 1 or less, the remaining chance means no pin. If the total is over 1, UsefulRunestones normalizes the target weights so exactly one target can be selected.
When sourceBiomes is omitted or empty, a RuneStone can reveal the target only from the target location's own biome. Add source biomes when you want a RuneStone in one biome to reveal a target in another biome.
Selection lifetime
- Single-player and the host's own interactions keep one result per loaded RuneStone object. Recreating that object (for example, after zone unloading) allows a new roll. Changing the pin definition also allows a new roll.
- Remote clients ask the server. The server derives a repeatable roll from the RuneStone's 16m XZ cell, the pin definition, and a secret that lasts while the plugin remains loaded. Height is not part of the cell. This is not a world-seed-based or saved-world result.
- Nearby RuneStones in one cell share a roll percentile, not necessarily the same target: the server resolves eligible candidates and the nearest location for each request. Changes to available locations can therefore affect the result.
- Pin definition order, names, icons, chances, and source biomes participate in the selection key. Editing display fields can change the roll too. Restarting the game/server creates a new secret; changing worlds without unloading the plugin does not.
Consequently, unloading a zone does not reroll a remote client's percentile while the server plugin remains loaded, but this does not promise a permanent pin or no-pin result at that world position. The local and remote policies are intentionally unchanged.
Vegvisir Global Effects
vegvisirGlobalEffects rows are grouped by biome:
vegvisirGlobalEffects:
- All:
- Rested, 240, 480, 1, vfx_HealthUpgrade
- BlackForest:
- GP_Eikthyr, 120, 600, 0.5
Reward fields:
StatusEffect, durationSeconds, cooldownSeconds, weight, effectPrefab
Field behavior:
StatusEffect: status effect prefab name.durationSeconds: optional override. Omitted value uses the prefab duration.cooldownSeconds: optional cooldown. Omitted value uses the prefab cooldown.weight: optional selection weight. Omitted value defaults to1.effectPrefab: optional shared visual/audio effect. Must start withvfx_,sfx_, orfx_.
Cooldown values:
0: no cooldown- below
0: once per loaded Vegvisir per player - above
0: per-player cooldown in seconds
VRS_ClearStatus is a built-in miss reward that clears current status effects and shows the configured clear-status message.
Rewards and per-player cooldowns belong to each loaded Vegvisir object on the local player's client. Recreating the object allows a new reward selection and fresh cooldowns; rewards are not saved by world position. Changing the ordered candidate keys, weights, effective cooldowns, duration overrides, or FX also resets selection and cooldowns on the next interaction. Localization-only changes do not reset them.
Localization
Optional localization fields:
Highlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 55d ago.
UsefulRunestones on Nxeon
From our catalogue- One-click install
- Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
- Server side
- Optional on the server
- Server type needed
- BepInEx
- Server load
- light
- Smallest plan we suggest
- Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
- Latest build
- 1.0.3, released 2026-09-09
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 4 recorded builds of UsefulRunestones.
Recent builds
| Build | Released | Game versions | Loaders |
|---|---|---|---|
| 1.0.3 | 2026-09-09 | n/a | BepInEx |
| 1.0.2 | 2026-09-08 | n/a | BepInEx |
| 1.0.1 | 2026-08-07 | n/a | BepInEx |
| 1.0.0 | 2026-06-24 | n/a | BepInEx |
Dependencies
- Required: BepInExPack Valheim
Declared by the newest build that lists any. Required ones are installed with it on one-click installs.
Run UsefulRunestones on a Valheim server
Pick a server or deploy a new one above; it is installed in one click.
What kind of mod it is
From the catalogMaps & scenarios
Custom maps, arenas and scenarios to play on.
Works on a server
From source side supportThunderstore lists server-side support for UsefulRunestones as optional: it can run on a server, but isn’t required there.
Compatibility
- Game
- Valheim
- Loaders
- BepInEx
- Runs on
- Serveroptional on the server
- Requires
- One-click install needs a BepInEx server.
Verified at the source
- ✓ThunderstoreOfficial listing, checked 2026-10-02Open ↗
- ✓Authorsighsorry, as published on Thunderstore
- ✓LicenseNot published by the sourceFree






