UsefulRunestones
Exploration rewards for RuneStones and Vegvisirs: reveal weighted global map pins from pinless RuneStones, grant biome-based Vegvisir buffs with cooldowns.
截圖 共 2 張
模組介紹 作者原文
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 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: 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.
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 wor
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。 多人連線時,主機與所有用戶端需要安裝一致的模組。
下面這些內容需要先安裝,否則該模組不會生效: