Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
BetrValheim
Craft from nearby chests and drawers, stations that refill themselves, twelve looks of item drawer, three weightless inventory pages, an equipment page, a portal network, see-through sails and mist and a trash bin. Server synced, all on F11.
By DezzyCode
CHANGELOG
Changelog
4.45.0
Remember the server, then get back to it in one click.
- Passwords typed for multiplayer servers are remembered only after a successful connection and filled in automatically the next time that same server asks for one.
- Remembered passwords are kept out of the normal config and log. Windows protects them with the current user's DPAPI credentials; platforms without DPAPI use a per-install AES key in the BepInEx config directory.
- A rejected remembered password is removed automatically, so the next attempt asks normally instead of retrying a bad secret forever.
- The main menu gets a Quick Connect button for the last successfully joined server. It uses Valheim's last-used character when available; otherwise the normal character selection stays open.
- If the standalone Remember Server Password mod is still installed, BetrValheim leaves this feature off to avoid two mods patching the same connection flow.
4.44.0
The logo under the minimap.
- The BetrValheim logo sits just below the minimap. It hides with the minimap - behind the open large map, in worlds without a map and with the HUD hidden - and takes no clicks.
- Nothing of the game is covered: the status effects line up to the left of the minimap.
- Switch it off under Interface with Logo under the minimap; it is your own setting and on by default.
4.43.1
A roomier F11 window.
- The window is larger (1020 × 760), with a bigger logo top left and more space between it, the status line and the categories.
- Escape (or B on a gamepad) closes the window, without opening the game menu.
- Scrolling in the window and in the portal list is much faster: one wheel notch now moves about one and a half rows instead of barely two pixels.
- Explanations under sliders may use a second line instead of being cut off.
- The trash bin setting moved from Interface to Inventory. Your setting is kept.
- The DezzyCode mark in the top right is replaced by a quiet "by DezzyCode" in the bottom left corner.
Sails.
- See-through sails no longer check every ship every physics step; a ship is only looked at when it loads or the slider moves.
4.43.0
See-through sails and mist.
- New Environment category in F11 with two sliders, each from 100 % (the game as it is) down to 0 %: ship sails and the Mistlands mist. Every ship, only on your screen; each player sets their own.
- Sails switch to a see-through copy of their material below 100 % and get their own back at 100 %. Works on every ship, the trader's included.
- The mist is thinned the way Muted Mist does it. Remove Muted Mist and Muted Sails from your mod list; BetrValheim does both now.
- The sidebar buttons in F11 sit a little closer, so all eleven categories fit.
4.42.0
Portal network, moved over from World Control.
- Walking into a portal opens the map with every other portal in a list and marked on the map; click one to travel there. The list shows the distance to each portal.
- One order for everybody, kept by the server per world. Admins get Edit to move portals up and down. An order World Control kept for the world is taken over.
- The game's rules still apply: no ore through wooden portals, no portals while a boss fight forbids them, E still names a portal. The player cannot walk off while choosing, and scrolling the list does not zoom the map.
- Optional: every portal permanently marked on the large map and the minimap, with or without names. Both are off by default; while they are off the server does not share the portal list.
- New Portals category in F11 with four server-synced admin settings. Picker off: portals link by name as in the normal game.
- BetrValheim and World Control stay independent. With World Control 2.7 to 2.9, which still has its own portal network, BetrValheim leaves portals alone and says so in the log.
4.41.13
New look.
- New package icon.
- The F11 settings window shows the BetrValheim logo top left in place of the written title. The status line sits just below it. Without the logo file the window writes its title as before.
4.41.12
Equipment HUD stays under the map. The rows beside the food squares now sit in the HUD beside the vanilla health panel instead of at the end of it, so the open map covers them like the rest of the vanilla HUD.
Performance pass without changing gameplay behaviour.
- The equipment page keeps its slot key labels and tooltips instead of rebuilding them for all forty cells every frame; they are rebuilt when a slot key or the language changes.
- Read-only queries on the player inventory (counting, "has item", "contains item" and the like) reuse one combined item list instead of creating a new one per call.
- Removing an item from an extra page no longer allocates an argument array on every item removal.
- Movement, stamina and other modifiers of extra worn utilities are read through compiled field getters instead of reflection every frame.
- Auto-pickup capacity checks no longer allocate an enumerator for every item in range.
- The equipment HUD looks up the food squares once per frame instead of once per slot.
- The extra page title is only rebuilt when the page or the language changes.
- Private game methods used for input, inventory notifications and equipment placement are called through delegates instead of reflection.
- The red "refused slot" pass is skipped while nothing is being dragged and no slot is red.
- Replaced TextMeshPro's obsolete
enableWordWrappingwith the equivalenttextWrappingMode.
4.41.11
Diagnostics tuned for long multiplayer sessions.
- Replaced per-pass idle refill spam with compact 30-second summaries.
- Active refill work, ownership changes, blocked/failed claims and short source takes still log immediately.
- Refill passes at 5 ms or more now emit the existing internal timing breakdown: stock, source takes, station groups, material picking, RPC totals and the worst RPC.
- Collector
notReadyresults are now split into orphan, local-owner, remote-owner and invalid-view reasons while diagnostics are enabled. - Container in-use logging now records state changes instead of repeating the same open-chest line every second.
- Normal ownership, RPC, transfer and refill behaviour is unchanged.
4.41.10
Opt-in multiplayer diagnostics.
- The existing local Verbose log toggle now also records structured multiplayer traces with a
[BetrValheim:MP]prefix. - Added session IDs, frame/time stamps and local player IDs so logs from several clients can be correlated after a multiplayer session.
- Refill diagnostics now record per-pass ownership skips, orphan claims, short source takes and compact pass timing summaries.
- Collector diagnostics now record per-pass results, chest claim attempts, in-use chest guards and drawer ownership claims.
- Diagnostics are observational only and do not change ownership, transfer, RPC or ordering behaviour.
4.41.9
Server-safe performance cleanup.
- Dedicated/headless servers now skip the client-only per-frame update loop entirely.
- Reused the collector's temporary ownership-cleanup list instead of allocating a new one.
- Reused an already resolved container
ZNetViewwhile scanning candidates; the live in-use check immediately before an ownership claim remains unchanged.
4.41.8
Performance hardening without changing gameplay behaviour.
- Pre-sized combined extra-inventory item lists to avoid internal list growth while preserving fresh-list semantics.
- Drawer fronts re-resolve item icons on refresh so runtime icon replacements from other mods remain visible.
- Batch crafting keeps reservation state independent between
Begincalls while reusing temporary dictionary storage after warm-up.
4.41.7
Refill diagnostics.
- Slow refill warnings now start at 25 ms; detailed breakdown starts at 50 ms and critical reports at 100 ms.
- Added per-station-type timings, stock/source timings, RPC totals and the slowest individual refill RPC.
4.41.6
Performance pass.
- Reused the equipment figure UI instead of recreating it on every redraw.
- Reduced HUD per-frame allocations and redundant UI writes.
- Cached utility reflection delegates and removed temporary hot-path allocations.
- Precomputed static equipment-slot lookups.
- Reduced repeated drawer ZDO reads and unnecessary drawer-face UI writes.
- Reduced temporary work in batch material payment and extra-inventory payment.
4.41.5
Optimized Models.
- Added 12 redesigned drawer models.
- Reduced drawer textures to 256x256.
- Improved drawer model performance.
Pack and A-Z sit level with the title. They were placed at a number that looked about right in one window; they are now measured off the title itself and centred on it, so they stay level whatever the font size and whatever the window scale.
4.41.4
Pack and A-Z sit level with the title. They were placed at a number that looked about right in one window; they are now measured off the title itself and centred on it, so they stay level whatever the font size and whatever the window scale.
4.41.3
Two buttons in the header of the extra inventory: pack and sort.
Pack takes everything the pages hold and pushes it forward, starting at the first slot of page one. Part stacks of the same thing are poured together on the way, so forty arrows in three places become one stack of forty, and the holes left by whatever you took out during the day close up.
A-Z does the same and puts the items in order by name first — by the name you read on screen, so the order is the one you would sort them in yourself, in whichever language you play.
Neither appears on the equipment page and neither touches it: each of its slots takes one kind of item, they are where they are on purpose, and there is nothing to pack.
Nothing is moved until the whole new layout is worked out and every single item has a place in it, and anything from the pages on your cursor is put down first — pouring stacks together can empty the very stack being held.
4.41.1
The display is back in the black field. On the new models it had wandered off into an ornament in a corner, and 4.41.0 fixed that by looking for the black in the texture instead — which found the wrong black, because one texture sheet holds the whole drawer and half a dozen patches on it are dark.
Measured instead. All twelve models are the same box with a different skin: the field sunk into the front is identical across every one of them, down to a millimetre. So the display is simply put there — centred, square, eight centimetres behind the front, inside the recess and standing clear of its floor.
That is one number measured once rather than a search run per model, and a search that can pick the wrong answer is now a search that no longer happens. Everything that did the looking is out of the code.
4.41.0
Twelve drawers, one for every land. New models and new icons throughout, and three looks more than before: Meadows, Black Forest and Swamp wood, Darkwood, Mossy, Mountain, Plains, Mistlands, Deep North and Ashlands stone, Black Marble and Iron.
Everything you have built stays standing. A world remembers a drawer by its internal name, and those are untouched — nine of them simply wear a different model now. A drawer that was white marble is deep north stone today, in the same place, with the same contents.
The display had to be found a new way. These models have no deep chamber any more: their front is nearly flat and the dark field for the icon and the count is painted into the texture. Asked for the deepest rectangle in that front, the mod picked out an ornament in the top left corner — which is where the icon and the count would have gone. It now measures the painted field first and falls back on the shape only where there is no field to find.
Their names are read from the file names, and those have spaces in them now. Valheim reads a
name up to the first space, so a drawer would have been called $ew_drawer_meadows — found
nowhere — with the rest printed beside it as plain text. The spaces are taken out of the name
the game is asked for.
4.40.1
Two more of the same kind, found by going through everything that touches the network or runs every frame.
Stations were fed by everybody at once — and coal went missing. Valheim simulates a station only on the machine that owns it: a smelter melts, a fire burns and a pot cooks on exactly one client. The refill did not ask. With two players near the same smelter both saw room for one more coal, both took one out of a chest, and the second arrived at a full smelter and was dropped — the chest a coal short with nothing to show for it.
Now the machine that runs a station is the one that feeds it. A station nobody owns is taken on and served from the next pass, since there is no owner to wait for.
Hundreds of drawers no longer cost hundreds of calls per frame. Every drawer had an update of its own, called by the engine across the boundary into this code, almost always only to read the clock and return. One loop over the drawers that exist does the same work for a fraction of it.
Checked and found sound: crafting still reads its sources from a snapshot that is rebuilt at most five times a second, the repair runs on a click rather than on a timer, and every write to a drawer already asked for ownership first.
4.40.0
Shift on a drawer now sees everything you carry. It looked in the backpack only, so with the item lying on an extra page it answered that there was nothing to store — while the mod itself had put it there: taking something out of a drawer fills the extra pages first. The backpack and the extra pages are both searched now. The equipment page is left out on purpose: what lies there was placed slot by slot, and emptying it into a drawer because somebody held shift is not what they asked for.
One machine per dropped item. The console filled up with Valheim's own lines — "Player … wants to pickup CarrotSeeds … but they are already the owner" — every two seconds. The collector asked for ownership of every item it could not yet pick up, and since every player on a server runs this mod, two players kept taking the same seeds from each other, twice a minute each, forever.
Valheim hands ownership of a dropped item to whoever is nearest, so there is already an answer to the question of who is responsible: whoever owns it, collects it. The only item worth asking about is one that belongs to nobody at all — then there is no owner to wait for and somebody has to take it on.
Chests are asked at most once every five seconds. A handover takes a moment, and asking again on the next pass either arrives before the answer or, with two players doing it, pulls the chest back and forth between them.
Fewer requests means less traffic and less work on every machine: on a busy base this was a round trip to the server per item per pass, for items nobody was going to move.
4.39.5
Back to two things: the arrangement and the figure. The fields behind the groups, the names above them and the light along their edges are gone again — with the slots arranged and the empty ones showing what belongs in them, all of that said the same thing a second and a third time. The page is quiet now, and the code for it is out rather than switched off.
What stays: the slots where they belong, the figure in the lane down the middle, and one key per cell where a key reaches it.
4.39.4
All six group names are there now. The strip a name lives in sits above the first row of its group, and above the first row of the page is outside the grid, where it was clipped away — only the quick slots, at the bottom, had room. The whole arrangement now starts a little lower, so every strip is inside the page.
And the cells are quiet again. With the groups named and the empty slots showing what belongs in them, writing the name into every cell as well said the same thing three times. A cell now carries only what it cannot say for itself: the key that reaches it. Everything else is in the group's name above it and in the tooltip.
4.39.3
Two mistakes from 4.39.2, both of them plain to see and both mine.
The dimming tag was printed instead of applied. TextMeshPro has no closing tag for alpha, so "</alpha>" is not a tag at all: it went into the cell letter for letter, next to the key it was supposed to dim. The key is dimmed with a colour tag now, which does have one.
The group names still could not be seen. They are copies of a label of the page, and a copy inherits everything — including being switched off and whatever transparency the label it came from was left at. The copy is now switched on and set to full, and the label it is taken from has to be one that is actually being drawn.
4.39.2
The group names are visible at last. They were drawn above their fields, which is outside the grid — and whatever clips the grid clipped them with it, so every heading existed and none could be seen. Each field now keeps a strip of its own at the top and the name sits inside it, where it cannot fall off anything.
Every slot says the same kind of thing. A cell used to show either its name or its key, so the same corner of the page meant one thing here and another there: "Alt+R" told you which key, never what for. Now the name is always on top and the key underneath it, smaller and dimmer.
The fields have an edge. A hair of light along one side, the way Valheim's own panels are lit — enough to read as something laid on the page rather than a stain in it.
The ghosts in empty slots are a touch stronger, so an empty utility or trinket says what belongs in it without being read.
4.39.1
The extra inventory pages are a grid again. They share their cells with the equipment page, and Valheim only puts those cells in their places when it builds the grid — not when a page changes. So the arrangement of the equipment page stayed on screen for the ordinary pages as well, holes and all.
The cells are now put back the moment another page is shown, by the same reckoning the game itself uses: the middle of the panel, less half the width of the block, then a step per column. Only the equipment page is arranged; everything else looks exactly as it did.
4.39.0
The equipment page is arranged, not gridded. The slots are no longer laid out in the rows and columns of the inventory underneath them. They are placed where they belong on the page: two blocks of three columns, one on each side, a clear lane down the middle for the figure, and the quick slots centred under it all.
- Worn runs down the left edge — helmet, cape, chest — and turns right along the bottom of its block for legs and trinket.
- Utilities fill the corner beside it, two by two.
- Keys, food and ammunition stand in columns of their own on the other side, mirroring the left block.
- Quick slots stay where they were: one row, centred, at the bottom.
Nothing moved in the inventory underneath. Every slot keeps the place it has always had, which is what is saved with your character, counted when you craft and handed to your grave. Only the rectangles on screen moved — and because Valheim finds the slot under the cursor by testing those rectangles, dragging, dropping, splitting and tooltips all follow the picture.
The fields behind the groups and the figure are measured from wherever the slots ended up, so they follow the arrangement by themselves.
4.38.11
The group fields have room around them. They reach further past their cells now — but only on the sides that face nothing. Where the next cell along belongs to the same group the field still reaches exactly half the gap, so the two meet in the middle of it and read as one shape, and where it belongs to another group that same half keeps the two apart instead of laying one over the other.
4.38.10
The figure fills the empty lane in the middle of the page — between the utilities and the keys, from the top row down to the row the leg armour sits in, and not into the quick slots. Its edges are taken from the slots around it rather than from a count of pixels, so it keeps that lane whatever size the window is.
4.38.9
The figure stands in the free lane down the middle of the page, from the middle of the third column to the middle of the fifth and over the full height, cut off at the edges of that strip. Halfway through a column on either side is what keeps it clear of the slots.
4.38.8
The figure fills its block and is cut off at its edges. It covers rows four and five across the first seven columns, at its own proportions, and a frame does the cutting so nothing of it reaches the rest of the page. Fitted inside those two rows it was a thumbnail; given their width it grew taller than the page and left nothing but boots.
4.38.7
The figure is whole again. Given the width of seven columns it became taller than the page, and all that was left to see was a pair of boots across the middle of it. It stands inside its block again, upright and complete.
4.38.6
The figure spans the page now. It is given the width of the block it belongs to — the first seven columns — stands on the bottom edge of it, and what does not fit runs upwards behind the rest of the page. Fitted inside two rows it was a thumbnail in a lot of empty page; stretched to fill them it would simply have been wrong.
4.38.5
The figure stands in the open part of the page, across the bottom two rows and the first seven columns, instead of behind the armour where the cells it stood behind covered half of it.
4.38.4
The groups are drawn cell by cell. A group is not always a rectangle — the worn slots run down one column and reach into the next for the trinket — and one box drawn around all of them covers cells that belong to another group. That is why the fields looked like a smear across the middle of the page: two groups were drawing over each other. Each cell now carries its own field, padded by exactly half the gap between cells, so the cells of one group merge into a single shape and the cells of two groups never touch.
The headings are back. They were there in 4.38.3, at a size nobody could read: the labels of this page size themselves automatically, the copy inherited that, and an inherited automatic size quietly ignores the size asked for. Switched off, they read as intended — and a heading at the right edge of the grid is aligned right, so it stays on the page.
The figure stands behind the armour, over the first three columns and four rows, at its own proportions.
4.38.3
Two mistakes in yesterday's paint, both of them mine.
The fields and the figure sat in the middle of the page. A cell of the grid is anchored to a corner of it and an overlay of ours to its middle, so the same pair of numbers meant two different places. The groups are now measured from the corners of the cells themselves — corners are corners, whatever anything is anchored to.
The headings had no font. A text built from nothing goes looking for a default font the moment it wakes up, that font is not in Valheim, and it says so in the console. The headings are copies of a label of the page already has, so they are born with its font, its material and its outline — the same trick the main menu link uses.
4.38.2
The equipment page reads as an arrangement now. It was a grid of cells with gaps in it, and a grid with gaps in it looks like a mistake: nothing told you that these two cells are keys and those three are food, so the eye had to work it out every time.
Each group now sits on a quiet dark field with a word above it — Worn, Utilities, Keys, Food, Ammunition, Quick slots. The empty cells between them stop looking like something that went wrong and start looking like the space between two things.
A figure stands behind the worn slots, faint, at its own proportions. Armour, cape and legs are no longer four squares in a corner; they are what you are wearing.
The ghosts in empty slots can be seen. They were drawn at 18 percent and vanished into the wood; at a third they say what a slot is for without anybody reading its name.
Nothing moved, and nothing changed about what may go where. This is paint.
4.38.1
The page, rewritten. New screenshots, and the mod explained in the order it is actually used: the drawers first, then crafting out of your storage, the stations, the inventory and the equipment page, and the window that holds all of it. A short list up front says what is included, the subtitle says what it is for.
Nothing changed in the mod itself — this is 4.38.0 with its page in order.
4.38.0
BetrValheim is what Easy Work grew into. Same mod, same work, new name — and it starts at the version Easy Work reached rather than at one, because it is the same thing carried on.
Everything you built stays. The plugin id, the prefab names of the drawers and the keys the saved data hangs on are unchanged. Your drawers stand where they stood, with what is in them; the extra inventory pages, the equipment page and every setting come along. Nothing has to be rebuilt and nothing has to be set again.
That also means this is a replacement, not an addition: BetrValheim and Easy Work carry the same id, so only one of them can be installed. Remove Easy Work when you install this.
Renamed is what you read — the window, its messages, the settings, this page. The console
command is now betrvalheim; easywork still answers and does the same thing, because a
rename is no reason to break what is already in somebody's fingers.
Earlier entries are with Easy Work, under its own name.
What it does
Craft straight from the chests and drawers around you, stations that refill themselves, nine looks of item drawer, three weightless inventory pages, an equipment page with quick slots, food slots and ammunition slots, a trash bin, and a window on F11 that holds all of it. Server synced.