sighsorry-UsefulRunestones icon

UsefulRunestones

Exploration rewards for RuneStones and Vegvisirs: reveal weighted global map pins from pinless RuneStones, grant biome-based Vegvisir buffs with cooldowns.

Last updated 21 hours ago
Total downloads 24
Total rating 0 
Categories Mods Misc Server-side Client-side AI Generated
Dependency string sighsorry-UsefulRunestones-1.0.0
Dependants 1 other package depends on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

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 All table.
  • Keep one selected reward and per-player cooldown state per loaded Vegvisir.
  • Play optional shared vfx_, sfx_, or fx_ 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 discovery chance instead of making every interaction deterministic.
  • 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: 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.

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 to 1.
  • effectPrefab: optional shared visual/audio effect. Must start with vfx_, sfx_, or fx_.

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.

Localization

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.

Compatibility

UsefulRunestones is designed to sit beside the other standalone mods:

  • Use DropNSpawn for creature drops, object loot, spawners, and world spawn tables.
  • Use BossRules for boss altars, boss stones, Forsaken Powers, boss despawn, and boss tame pressure.
  • Use UsefulRunestones for pinless RuneStone global pins and Vegvisir rewards.

If another mod owns the same RuneStone or Vegvisir interaction, disable the overlapping UsefulRunestones feature in the BepInEx config.

GitHub

https://github.com/sighsorry1029/UsefulRunestones