Valheim
Install with App

Details

Latest version
0.12.2
Last Updated
First Uploaded
Downloads
12
Likes
0
Size
216KB
Dependants
ADDatHost Valheim hosting
30% off

Changelog

0.12.2 - Store page

  • Store page only: the README was rewritten to the new layout and is now the same on every store, and the website link now goes to https://ravenirongames.com/.
  • No change to the mod: Alice.dll is the same file as in 0.12.1.

0.12.1 - Valheim 1.0.21

  • Rebuilt and checked against Valheim 1.0.21 (network version 41). No behaviour change; every game hook Alice uses still resolves.
  • Website link moved to https://www.rossgilsonlabs.dev.
  • Needs BepInExPack Valheim 5.4.2360.

0.12.0 - Initial public release

Alice is the optional PC companion for servers running Wonderland. Everything it does is something the server already does for every player; Alice lets the players who install it see and steer it. Nobody is required to install it, and a player without it keeps exactly the experience they have today. The version number follows Wonderland's: Alice 0.12 is built for Wonderland 1.12.

Added

  • The link. Alice talks to Wonderland through two messages the server itself registers, and only after the server has spoken to it first: the server advertises, Alice answers, the server switches the features on. On a server that is not running Wonderland with its Alice link on, in singleplayer, or with Enabled = false, Alice does nothing at all and the game is vanilla. Only the server is believed (a message from anyone else is dropped), every message is parsed defensively, and Alice uses no ServerSync or Jotunn, so Wonderland's vanilla-client enforcement lets it through.

  • Production. Look at a fireplace, smelter or kiln and the hover text gains a line: whether the server's auto-supply is feeding it, which half (fuel, ore) is on, and what it last did - fed, full, no fuel in reach, no ore in reach. H switches the whole station, Shift+H its fuel only, Ctrl+H its ore only (all rebindable). A key press means "make it the opposite of what I am looking at" and is applied as a set, so two players pressing together, or a slightly stale hover, still end where they meant; switching the station back on keeps your fuel and ore choices. A kiln takes only wood and a fire only fuel, so each shows (and answers to) only the half it has. Ctrl+Shift+H switches every station within 20 m off at once and Ctrl+Shift+J back on (BulkRadius, capped by the server).

  • Chests. Player-built chests and ship cargo holds have their full grown size from the first frame, empty or not, instead of waiting for the server to park a stack in the bottom row (heights only ever grow; widths are never touched). A chest that does not answer within 0.6 s of pressing E is handed to you by the server and opened.

  • Crafting and building from chests (switches on when a Wonderland that offers them connects). Crafting, upgrading and placing pieces count the materials in player-built chests near you; requirement numbers that will come from chests are drawn in blue. Nothing is ever added to your inventory: the server holds the missing materials for you, and when the game takes its materials Alice takes only your inventory's share and lets the server use the rest. Crafting reserves when you press craft; building keeps one placement's materials held while a piece is selected, so placing stays instant (a piece must stay selected for half a second first, so scrolling through the hammer menu costs nothing). If a craft is cancelled, the window closed, the piece changed, the hammer put away, the reservation runs out or the connection drops, the materials go back to the chests. Alice never destroys an item.

    • Safety nets. A craft that would take longer than the server holds the materials (a high-quality upgrade on a short hold) is declined up front, with the numbers, instead of running out at the end. A reply that arrives after Alice stopped waiting is handed straight back. Alice checks that the materials the game takes are exactly the cost, and if a game update ever changes how the game takes them, Alice switches crafting and building from chests off for that session and says so in the log, rather than let anything come out wrong.
    • Saving. The chests change the moment you craft, but your character is only written to disk when the game autosaves (every 30 minutes), so a game crash in between would leave the chests short while your character forgets the craft - the same exposure as carrying the items out of the chest by hand. After a craft that used chest materials Alice asks the game to save your character a few seconds later (never more than once every 20 s). SaveAfterChestCraft = false turns that off.
  • The production panel. Ctrl+P (ProductionPanelKey) opens a window listing every fireplace, smelter and kiln within PanelRadius (32 m, capped by the server) with its name, distance, state and the server's last note, three switches per station (station / fuel / ore: the very same idempotent sets the hover keys send) and All off / All on / Kilns off / Kilns on for the list. It reads the list with QueryStations every 2 s while open; stations beyond the server's StationRange are shown but not switchable. Built in the shared gilt-frame IMGUI theme (libs-Tools/SharedUI), modal like the inventory (cursor free, game input stopped through UIFocus), closed by the same key, by the game menu or when the link ends. PanelScale sizes it.

  • Vacuum cooperation (switches on when a Wonderland that offers it connects; VacuumCooperation). Link protocol additions (still version 1): ops 48-51, push events 3-5, param keys 7-9, layouts in docs/M3-VACUUM-WIRE.md.

    • Hand-over. The server offers a ground stack this client owns (Push ReleaseOffer, up to 16 per message); Alice judges each stack in the frame the push is handled and answers once (ReleaseAnswer). Release = ZDO.SetOwner(server) + ForceSendZDO, then both revisions read back for the server's proof; nothing else is touched. Refused with a reason: PlayerOnIt (the stack is within the auto-pickup range plus a 0.75 m collider margin of the player and Player.AutoPickup would claim it - it asks for ownership back BEFORE it looks at bag room, so releasing there only starts a tug of war - or the player pressed E and is waiting for it), Gone, NotOwner, Busy (no loaded object, no player, dead, teleporting, link not ready). If an answer cannot be sent Alice judges nothing. The decision is a pure function (Vacuum/ReleaseRules.cs) swept over every combination in the tests.
    • Nudge. A postfix on ItemDrop.Awake notes ground items this client owns and created in the last 2 s; ids are batched (<= 16, one request per 250 ms, fire and forget) into VacuumNudge. VacuumNudge = false turns it off.
    • Messages. Push VacuumMoved (sent only after a real chest write) becomes Vacuum: +12 Wood, +5 Stone -> Chest (grouped by chest, at most one toast per half second). VacuumToasts = false turns it off.
    • Chest settings (ChestSettingsKey, Ctrl+K, looking at a chest or with its window open): collect on/off, mode (only what it already holds / chosen list / everything nobody else wants), the chest's reach, and the list with "Learn from contents". Read with QueryContainerPrefs when the window opens; each change is one SetContainerPrefs with a field mask, and the window shows what the server answers it stored. A hover line names the key. Settings live on the server, never in the chest.
  • Sharing a few numbers with the server's Discord bot (ShareStats, section 7 - Sharing; switches on only when a Wonderland that offers it connects, and never sends anything without the player's yes). Link protocol additions (still version 1): ops 64-65, param key 10, layouts in docs/R2-REPORTED-STATS-WIRE.md. The first time such a server welcomes Alice a small window asks once (Share on this server / Not on this server / Never share; closing it without an answer asks again next session); the answer is kept per server in the config (ReportedStatsServers, plain text the player can edit). Reported: DELTAS of the game's own raw per-character counters since a baseline taken when the link came up (crafts and upgrades, pieces placed, trees felled, boss last hits, creatures killed, bosses defeated - kills are reported because a server cannot count them: the creature's owner registers its own player's kill locally) plus the best skill (spaced name, floored level) and the sum of all skill levels, at most once per the server's ReportMinSeconds (60 s; never faster than 30 s) and only when something changed. An acknowledged report moves the baseline by exactly what it carried; a counter that goes down rebaselines silently; no single delta exceeds the server's ceiling of 1,000,000. A crash loses at most one interval. Withdrawing (a server's answer set to no, or ShareStats = Never) sends ClearReportedStats once to each server Alice has reported to (ReportedStatsSent). Read-only on the game's side.

Changed

  • SaveAfterChestCraft now skips the save when the game's own free-disk-space check says there is not enough room, exactly as the game's autosave does.
  • Enabled is documented as read once at start-up (a restart is needed to change it).

Compatibility

  • Valheim 1.0 on PC. Wonderland 1.12.0 or newer with AliceLinkEnabled on (config section 20 - Alice Link, off by default).
  • Needs BepInExPack Valheim 5.4.2351.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.