


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.
All table.vfx_, sfx_, or fx_ prefabs when a reward is granted.UsefulRunestones focuses on small world-interaction rewards that make exploration more useful:
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.
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: target ZoneSystem location prefab/name.chance: final weighted chance for this target. Omitted value defaults to 1.pinName: saved map pin name. Omitted value uses the target location discover label, then child teleport enter text, then locationName.pinType: Valheim Minimap.PinType. Omitted value defaults to Icon3.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.
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 to 1.effectPrefab: optional shared visual/audio effect. Must start with vfx_, sfx_, or fx_.Cooldown values:
0: no cooldown0: once per loaded Vegvisir per player0: per-player cooldown in secondsVRS_ClearStatus is a built-in miss reward that clears current status effects and shows the configured clear-status message.
Optional localization fields:
localization:
messageVegvisirEffectReceived: "You have received {name}"
messageVegvisirClearStatus: "You got bamboozled"
messageVegvisirBuffCooldown: "Buff Cooldown {seconds}s"
messageVegvisirAlreadyActive: "Already active {name}"
Supported placeholders:
{name} for status-effect names.{seconds} for cooldown seconds.UsefulRunestones is designed to sit beside the other standalone mods:
If another mod owns the same RuneStone or Vegvisir interaction, disable the overlapping UsefulRunestones feature in the BepInEx config.