

vsg_list_player <playerName> — Show the full VSG guidance state of any currently-online player directly from the admin console. Lists fired IDs, max_fires counters, chain progress (step / complete), item-submit progress, and goal-started flags. Works from both listen-server hosts and remote admin clients; results appear asynchronously after the RPC round-trip.vsg_reset_player <playerName> [all | <id>] — Reset a specific online player's guidance state. Mirrors vsg_reset exactly (clears fired IDs, fire counters, chain state, submit progress, goal state, raven flags) but targets another player's character instead of your own. The admin console receives a confirmation message once the target client executes the reset. Both commands are admin-only (onlyAdmin: true) and re-verified server-side.vsg_reset fixed. After vsg_reset (all or single-id), raven entries now correctly re-show when re-triggered. The root cause was that Vanilla's Raven.AddTempText silently no-ops when a RavenText with the same key already exists in its static list, and vsg_reset clearing the seen-flag disabled vanilla's own cleanup for that entry. The fix evicts stale RavenText entries from Raven.m_tempTexts on every reset path and defensively before every re-show.max_fires entries re-fire after vsg_reset. Entries using trigger.max_fires: N (such as player_death tips) were permanently blocked after hitting their cap, even after vsg_reset all. Fire counts are stored in separate VSG.fc.* keys that the old reset code never cleared. vsg_reset all and vsg_reset <id> now also clear these counters.vsg_list surfaces max_fires progress. Entries using max_fires never appeared as "fired" in vsg_list (they don't write VSG.fired). They are now tagged [fired N/max] in the configured-entries list so you can see their counter and confirm it cleared after a reset.skill_level trigger fires on login for skills already above threshold. Previously the skill_level trigger only fired when a skill level actively increased during the session. If a player logged in with a skill already above one or more thresholds, those entries were silently skipped. On login the mod now scans every configured skill_level threshold; any threshold the player already meets that has not yet fired is raised in ascending level order. For chains, this means all qualifying steps cascade automatically — step 1 fires first (advancing the chain), then step 2 fires, and so on.location_entered trigger now detects mod-added locations reliably. The previous implementation read ZoneSystem.m_locationInstances and required m_placed = true, which is only set after the server re-syncs location data to the client. Locations generated after login never received that re-sync, so the trigger was permanently skipped for any zone entered for the first time. Detection now uses Location.s_allLocations (the scene's live spawned Location components) as the primary source, with the ZoneSystem as a fallback for locations lacking a Location component. The fallback also now tries m_name when m_prefabName is empty. Both paths emit LogDebug lines (enable LogLevel = Debug in BepInEx.cfg) so you can confirm the exact prefab names being detected and verify your wildcard patterns.item_acquired triggers. An item_acquired entry can now require several different items at once via a goals: list (each with its own item and count). The entry fires only when every goal is met simultaneously. Items may be collected in any order, and crafted items count toward their goals. Replaces the need to chain several single-item collection steps.FineWood: 18/30, Coal: 12/25, …) — in the HUD Tracker row tooltip and in the Guide Codex body — so the player always knows exactly what is still needed. The Codex badge shows N / M goals completed.current/goal count across all collection displays (chain counter steps, npc_item_submit, and item_acquired goals) for a cleaner, consistent look.progress_goal now displays its current/goal count in the HUD Tracker row.item_acquired entry is only marked complete in the Codex when every goal is currently satisfied, re-checked live against the inventory.vsg_reset clears goal state. vsg_reset all and vsg_reset <id> now also clear the latched goal-started flag.vsg_reset clears the raven queue. vsg_reset all wipes the entire raven display queue and deferred list. vsg_reset <id> removes any pending instance of that specific entry from both queues and cancels it immediately if it is the currently-active raven.item_acquired inventory seeding. When an item_acquired count > 1 entry becomes eligible (on player login or config reload), the mod now immediately reads the player's current inventory and seeds the progress counter from it. Items already carried before the guide entry existed count toward the goal — the player is never penalised for having collected materials early. If the inventory total already meets the goal at that moment, the entry fires right away without requiring another pickup.progress_trigger: { type: item_acquired }, activating the step now seeds the counter from the player's existing inventory instead of starting at zero. If the seeded count already meets progress_goal, the step advances immediately.Trigger-Types, Guide-Chains, and YAML-Configuration pages document the new inventory-seeding behaviour and the count field for standalone item_acquired entries.item_acquired count goal. Add trigger.count: N to any item_acquired entry to require the player to accumulate N of that item in their inventory before the entry fires. Progress is tracked as the current inventory total (all matching stacks summed), so two stacks of 10 count as 20. Both picking up items and crafting them count toward the goal. A current/goal progress bar appears in the HUD Tracker while collecting and disappears once the goal is reached.BepInEx/config/ValheimServerGuide/ folder for *.yaml and *.yml files and merges them into one config. Split your guidance across as many files as you like. Duplicate ids across files: first file (alphabetically) wins. A malformed file is skipped with a log error; other files still load.trigger.type: biome fires when the local player enters a named biome (e.g. biome: BlackForest). Fires once per session entry; resets on spawn so it also fires on first login.trigger.type: distance fires when the local player comes within trigger.radius metres (default 50) of a world location whose prefab name matches trigger.location (trailing * wildcard supported). Fires at most once per location per character.summary:. Add a top-level summary: field to any entry; the Codex shows a "Quest Complete" header + recap once the chain finishes. Falls back to the last step's message if not set.description:. In-progress chain steps now display description: in the Codex body (what the player needs to do), not the completion message: text. Entries without description fall back to message as before.General category. Added General to the list of valid Codex categories.wiki/Display-Modes.md now includes a full recommended-mode table per trigger type (rune for action events, raven for environmental events, message for NPC/minor tips).wiki/Guide-Authoring-Reference.md — comprehensive reference for guide authors covering display mode assignments, chain patterns, and Codex field semantics.once is not set or after vsg_reset. Previously the vanilla Player.m_shownTutorials gate caused the raven to show only once per character save, ignoring VSG's own repeat controls.message: and template support. Raven mode now reads the top-level message: field (same as all other modes). Template tokens ({player_name}, {biome}, etc.) are expanded each time the entry fires.vsg_reset raven fix. vsg_reset (both all and single-entry) now clears the vanilla raven seen-flag so raven entries can re-show after a reset.Initial release.
guidance.yaml that is automatically pushed to all connected clients. No client-side file editing required.once, cooldown, requires, and stop_when give full control over when entries fire.vsg_reset and vsg_list for testing and moderation from the F5 console.guidance.yaml — all connected clients receive the update instantly, no server restart needed.