Skip to content

Release notes

Ryan McAfee edited this page Sep 17, 2026 · 6 revisions

Release notes

The full notes for every release are on the releases page. These are the ones that matter for anything written in this wiki.

1.1.0

A second mod site you can turn on, a search box on two halls, and text in any alphabet over RCON.

Also check Hexium

Some mods turn up on Hexium before they turn up on Thunderstore, and a few only ever turn up there. The Upkeep card on the Dashboard has a switch for it now, Also check Hexium, sitting between Update mods at scheduled restarts and Start BakaLoader with Windows. It is off on a fresh install and off after an upgrade, and while it is off BakaLoader does not open a connection to hexium.gg at all: not for the index, not for a download, not to open a page in your browser.

The switch says the whole of what it means, because turning it on is the agreement and there is no second notice to click through. The words under it: Hexium is a second mod site. Whoever runs it is not named on the site, and its accounts are Discord sign-ins, so BakaLoader cannot tell you that an author there is the same person as the author of the same name on Thunderstore. With this on, your machine contacts hexium.gg about four times an hour while BakaLoader is open, and that site says it keeps request logs for up to ninety days. Nothing is installed from Hexium unless you ask for it and accept what it is.

With it on, a scan asks Hexium after Thunderstore and never instead of it. A row whose package Hexium holds at a higher version than both what you have installed and what Thunderstore carries picks up a blue mark on the Latest cell naming that version, and the row menu gains Open on Hexium. Nothing else about the row changes.

Full detail: Hexium.

Nothing is installed from Hexium on its own

There is no automatic Hexium update of any kind. A mod installed from Hexium sits out Update all, is not in the waiting updates count, and is never touched by the scheduled restart or the empty server restart. The mark is an offer and it waits for you.

Choosing to install one opens a dialog that names the owner as Hexium spells it, the package, the version, the size of the download when the site gives one, whether a folder is about to be replaced, and what the package says it needs. It says plainly that this is not Thunderstore and that BakaLoader cannot tell you who published it. Nothing is fetched until you press I accept the risk, install. That answer is good for ten minutes, only for the exact package and version you were shown, and it is spent the moment it is used.

A mod that came from Hexium wears a Hexium chip beside its author. Its Status reads held in amber rather than Current once either site has moved past it, because Current beside a Latest cell showing a higher number read as though the row were level with the world when BakaLoader is deliberately leaving it alone. If Thunderstore moves past it the row says so, and the menu offers Install the Thunderstore build, which asks first and hands the mod back to the ordinary update path.

A download has to come from an address on hexium.gg before the first request, at every redirect and again at the end, and it stops at 600 MiB. When the site named a size and what arrives is not that size, nothing is installed and the copy you already had is left exactly as it was. An existing folder is backed up before it is replaced, and put back if anything fails.

Mods you installed by hand are untouched by all of this. BakaLoader treats a folder as a Hexium install only when it put the files there itself and left its own note inside the folder saying so, and it stops believing that note the moment the folder's version stops matching it.

Full detail: Hexium and How mods are matched and updated.

Pasted links

Add from Thunderstore takes a hexium.gg mod page address as well, once the switch is on. It never installs from the paste: it looks the package up and shows you the same dialog to answer. With the switch off, a pasted hexium.gg address says so and tells you where the switch is. If you never turn it on, nothing anywhere in BakaLoader names Hexium except the switch itself.

Version numbers are compared properly

BakaLoader used to cut a version at the first - and throw the rest away, so 2.0.13-beta.1 and 2.0.13 looked equal. Versions are now compared the way semantic versioning says they should be: a beta ranks below its own release, beta.2 comes before beta.10 rather than after it, 1.0.666 is higher than 1.0.7, anything after a + counts for nothing, and a version that cannot be read at all sorts lowest and is never treated as newer than what you have.

For nearly every mod this changes nothing. The one case it does change is a mod folder sitting on a suffixed version such as 2.0.13-beta.1, where the plain 2.0.13 release is now correctly offered as an update. Before this the two looked equal and the update was never offered.

A search box on the Mods hall

Mods carries a search box in its header, beside the line that counts them. Type and the table narrows as you go. It looks at everything the row shows: the mod's name, its author, the folder it sits in, every version number on the row, and every tag and chip, so patcher, bundled, hexium and update all find what you would expect them to. Capitals do not matter, and every word you type has to match somewhere, so jere world finds JereKuusela's WorldEditCommands whichever order you type the two words in.

showing 2 of 10 stands beside the box while anything is typed, so the table never quietly understates how much is there. Escape empties it. / anywhere on the hall puts the cursor in it, unless you are already typing into something else, in which case a slash is just a slash.

The search narrows what is on screen and nothing else. The loaded count, Update all, the badge in the sidebar, the waiting updates notice and every unattended path all read the whole list. With a search on, Update all says on hover that it updates every mod with an update, not only the ones shown. A row action finds its mod by name rather than by where the row happens to sit, so every action lands on the row you clicked. The box empties itself when you turn the helm to another realm, because a search you typed about one server's mods is not about the next one's.

The waiting updates notice on the condition bar now stays dismissed, keyed to the count. It used to come back on the next redraw of the hall, which meant it came back on every letter typed into the search. A mod that picks up an update afterwards changes the count and raises it again.

A search box on the Configs hall, and a find bar in the file

The file list on Configs has its own search box over it, working the same way: live, several words, showing 1 of 3 beside it, Escape to empty, / to reach it. It matches the file name, the pieces of the file name on their own, so extraslots finds shudnal.ExtraSlots.cfg, and the mod a scan matched to that file, so an author's name finds their config even when the file is named after the plugin.

The open file gained a find bar above the editor. Type and it marks the first match and brings it into view, Enter walks to the one after it, Shift and Enter walks back, the next chip does what Enter does, and the count beside it reads 3 of 12, or no match. The keyboard stays in the find bar the whole way through. It never puts the cursor into the config text, never selects any of it and never writes a letter to it, so nothing you type while you are searching can land in the file. The match is painted on a layer behind the text rather than selected, and editing the file clears the mark, because it no longer stands over the words it was found in. Save, Reload and everything else act on the whole file exactly as it stands, whatever either box happens to be showing.

Configs moved up the sidebar

Configs now sits directly under Mods, so the two halls you move between while fitting a mod out are next to each other. Settings and Map each moved down one. Nothing was renamed and no link changed. The entry simply moved.

Names and messages in any alphabet

BakaLoader and its Commander plugin used to send text to and from the server in a form with no room for anything but the basic Latin letters, so every other letter turned into a question mark on the way. A player named in Cyrillic, Japanese or Chinese came back into the roster as ???, and the name BakaLoader then sent back for a spawn, a teleport or a kick was the question marks, which match nobody, so the action failed. A broadcast or a restart warning written in any of those alphabets reached the world unreadable, and accented Latin letters were losing their accents the same way.

Both ends now speak UTF-8. Long replies are still split across packets, and a split never cuts a letter in half any more. Plain English is byte for byte what it always was, so nothing that worked before changes. The bundled Commander plugin goes from 1.3.0 to 1.3.1 for this, and it is replaced the next time the server starts, the way the other bundled plugins are.

Full detail: The bundled plugins.

1.0.9

Spawning works again on Valheim 1.0.12, item quality and stacks reach the world, and a spawn the server turned down now says so.

Spawning works again on Valheim 1.0.12

Valheim 1.0.12 changed one line inside the game that BakaLoader's two spawn plugins were built to read. They were built before that line moved, so the first thing the server did with them was fail. What a host saw was a spawn that half happened: you asked for six meads and one mead appeared, you asked for a two star boar and a plain boar appeared, every item arrived at base quality, and nothing in the app said anything was wrong. The server log had the reason in it, a "Field not found" error, once per spawn.

Both plugins now ask the running game what that line looks like rather than carrying a reference to it, so this shape of game change cannot take spawning down again. There is nothing to install by hand: the plugins are rebuilt against the current game and go into each server the next time it starts.

Full detail: The bundled plugins and Troubleshooting.

A check that would have caught it

The build now reads the shipped plugin files against the installed game and refuses to pass when one of them names something the game no longer has. A name that still exists but is no longer the same kind of thing fails it too, because that is exactly what happened here. A machine with no dedicated server installed has nothing to read against, so the check says it was skipped rather than passing quietly, since a check that looked at nothing must never look like a check that passed.

Item quality now actually arrives

The spawn window has always offered a Quality box for tools, weapons and armour, and the number you typed into it was thrown away on the way to the server. Every item arrived at quality 1, whatever you asked for.

The quality now goes through and is applied the way the game's own spawn command applies it, and the item arrives at the full durability for that quality rather than the base one, so a quality 4 axe no longer turns up visibly worn. A modded item that goes past quality 4 keeps its own ceiling instead of being cut down to 4, and asking for more than an item allows says so in the reply: at quality 4 (the most this item allows). An item that has no quality at all, a mead or a pile of wood or a trophy, is not given one and the reply does not mention it.

Star levels for creatures were never affected by this and behave as before. The fourth number carries both meanings, the way the game's own spawn command does: a star level on a creature, counted from 0, and a quality on an item, counted from 1. The console help says as much now.

Stackable items arrive as stacks

Asking for six meads used to drop six separate meads on the ground, and 150 wood used to drop 150 separate pieces of wood, which is a pile of individual objects for the server to keep track of and a long walk of pickups for the player. Stackable items now arrive stacked: six meads is one pile of six, and 150 wood is three stacks of fifty. Anything that does not stack, and every creature, is spawned one at a time exactly as before.

The app reads what the server actually said

Any reply at all used to count as a success, refusals included. The app now takes the first line the server spoke and counts it as a success only when it opens with Spawned or Queued spawn, which is how both plugins open their success line and nothing else the console can say does. That line is what you see in the toast, so the confirmation names the stack count and the quality it settled on rather than repeating the count you typed. A failure writes a line to the log as well, and the two failures that happen before the command is even sent carry their own sentences, nothing was chosen to spawn and could not find that viking's position, so nothing was spawned. An empty answer reads as no reply from the server.

Full detail: Players (Vikings).

1.0.8

Settings you save while a server is up now go in at the next restart, and the app says so in three places instead of leaving you to guess.

A restart is enough

Every automatic restart, meaning the scheduled one, the empty server one, crash recovery and the one that applies mod updates, used to come back up on the settings the session was started with. So did the Restart button. A change saved while the world was up sat in the file doing nothing until somebody pressed Stop and then Start, or closed and reopened the app. World difficulty was the painful one: a new set of modifiers could be ignored for a whole day of restarts.

A relaunch now reads the profile off disk again in the moment before it launches, so what you saved is what comes back up. It reads the profile belonging to the server being relaunched rather than whichever one you happen to be looking at, so a background realm restarting while you work on another one still gets its own settings. An armed retry refreshes the same way, since a held launch can fire hours after the one it is retrying.

If the settings cannot be read, the relaunch keeps the ones the server is already running and writes a line to the log rather than refusing to restart. A restart that was handed its own settings, which is how a few paths inside the app work, keeps those for that one relaunch and no longer.

Full detail: Running the server and Automatic restarts.

The app says when the running server is behind what you saved

A line sits directly above Save Config on the Settings screen while the server is up: "The server is running. Saved changes apply the next time it starts." The rest of the time it is not there at all.

Saving while a world is up now confirms with "Saved. The running server keeps its current settings until it restarts." rather than a plain "saved", which read as though the change were already in force.

A Restart pending row appears on the condition bar when what is saved differs from what the live server started with. It reads "Saved settings differ from what the running server started with. They apply at the next restart." and its Restart button runs the same warned restart the Hearth button runs, with the countdown that warns players in game, never a bare stop. It sits below every other notice, it can be waved away, and a later change raises it again because the dismissal is keyed to the settings themselves rather than to the row.

The row watches what reaches the server's command line: name, port, world, visibility, save folder, save interval, the three backup values, password, crossplay, the preset or the five modifier dials, world keys and additional launch arguments. The same modifiers saved in a different order are not a difference, because they launch the same server. RCON, the restart rules, writing server logs to file and the server executable path never reach the command line, so changing one of those raises no row, even though the next relaunch does pick it up. What travels from the app to the page is a short hash of the command line and never the line itself, because the line carries your password.

Full detail: The condition bar.

A world difficulty that did not get saved

Save Config only writes the World Modifier dials when the dials on screen belong to the world being saved, which is right: one world's difficulty should never be pushed onto another. When they do not match it used to skip them quietly under a success toast, so a difficulty you had just set looked saved and was not. It now says "World difficulty was not saved for this world. Reopen Settings and save again.", and the rest of the save still goes through.

Full detail: World modifiers.

1.0.7

BakaLoader can tell you a newer BakaLoader is ready, show you what installing it would cost before it does anything, and install it on the spot when no server is running.

You can see when a newer release is ready

Two places light up when a check finds a newer release. A pill in the Server card's button row names the version and ends in ready, beside the Valheim server's own Update available pill and in its own colour so the two are never confused. The version at the foot of the left rail names it as well and glows the same way. Clicking either opens the update dialog, and the sidebar line answers Enter and Space too. With nothing waiting, the version line is plain text and does nothing.

The update dialog says what it will do first

With every server stopped, Update and relaunch now downloads the release, closes BakaLoader, swaps the files and opens the new version. Your profiles, worlds and mods are left alone.

With a world up the only offer is Update on the next restart, which turns on Auto-update BakaLoader so the new version goes in the next time BakaLoader closes. No button in the dialog stops a server. Taking a world down stays your call, on the server controls.

View release notes opens that release's own page on GitHub. Later closes the dialog.

The dialog asks the app for a fresh answer every time it opens, so what it offers is never a stale reading, and when it cannot do what you asked it writes the reason under the body rather than failing in silence: a server or a Steam update still running, update checking switched off in Upkeep, a check less than a minute ago, nothing newer on the other end, or GitHub out of reach. With checking off the button is dimmed from the start, with the reason on it, instead of after a press that could not work.

It checks every six hours while it is open

Update checking used to run at launch and then once a day. It now looks again every six hours while the app is open, on an hourly tick that mostly costs nothing, so a release published while you are hosting turns up the same day. Check for BakaLoader updates in the Upkeep card stops the next one.

An update you ask for in the dialog goes out without waiting for the six hours, with a sixty second floor under that so it cannot be asked over and over. The floor belongs to the whole app, not to one window.

Safer with more than one window open

BakaLoader opens a window for every profile set to start with the app, and both halves of its own update used to think in terms of one window.

The "is a server running" check read only the sessions in the window you clicked in. A second window whose own profile was stopped answered "nothing is running" while the first window had a live world, and the update went ahead on that answer. The check now covers every server in the app, and it counts more than Running: a server that is stopping, one sitting between a restart's stop and its relaunch, a start the launch guard has not answered yet, and a held automatic start with its retry armed. A Valheim server update rewriting any install counts too.

Closing one window is not the same as exiting, either. The app stays up while any window remains, so the window you clicked in closed, the process carried on, and the part that swaps the files wrote the new release over a running install and then failed on the locked executable. Half old, half new, no relaunch. An update now closes every window, stopping each window's server the graceful way with a final save, and ends the application once the last window has gone. The file swap also checks one last time after its two minute wait: if the process is somehow still there it leaves the install completely alone, because a staged update costs nothing to do again and a half written folder costs you the app.

The condition bar row

The BakaLoader update row now reads differently depending on the two Upkeep switches and on whether a world is up. It either installs the next time you close the app, or will not install while a world is up, or will not install on its own, or is waiting for update checking to be turned back on. Its button is Update BakaLoader and it opens the dialog rather than sending you to a browser, which used to skip the part where you find out what updating would cost you. A row you dismiss is not raised again every few hours for the same version: only a newer release asks again.

Full detail: Updating BakaLoader.

1.0.6

World difficulty, explained where you set it and applied fresh on every start. 1.0.5 was never released on its own and everything in it is here.

Every modifier dial explains itself

The five World Modifier dials on the Settings screen, Combat, Death Penalty, Resources, Raids and Portals, now carry a line under them saying what the selected option does. The ? beside a dial's label opens a panel listing every option that dial has, what each one does in plain words, and the game settings it applies in grey under each line. The same dials and the same panel are in the "Found a new realm" dialog, so you can read them while you are making the server rather than after.

All of that wording comes from one table in the app, so the label on the dial, the line under it and the panel cannot drift apart. World modifiers has the full text of every option.

Labels that say what really happens

Death penalty Hard now reads "Hard, unequipped items are deleted", which is what it does: what you are wearing goes into a tombstone you can recover, everything else in your inventory is deleted for good and never reaches the tombstone, and skill loss is one and a half times normal. Hardcore reads "Hardcore, items and skills lost": every item you were carrying is deleted and all of your skills reset to zero, and your character itself is not deleted. The old label called that one permadeath, which was wrong, and it is gone.

BakaLoader applies the difficulty on every start

Valheim keeps these settings in the world rather than in the launch command, so a setting you turned off used to stay behind in the world. Lowering Death penalty from Hard back to Normal left the hidden deathdeleteunequipped key in there, and players went on losing their inventory on a setting that no longer said they would.

Every start now clears the world's difficulty keys and writes back exactly what the dials say. -resetmodifiers goes on the command line first, ahead of the flags that set your choices, because the game reads the reset and those flags in one pass in the order they appear, so a reset sitting after them would wipe what they had just set. One start on 1.0.6 is enough to clear an old key out of a world.

The other side of that: a difficulty change made with the in-game console does not survive a restart, since the next start applies the dials again. Change these settings in BakaLoader. The note under the dials says as much. Only the server option keys are reset, so boss and progression keys are out of its range and stay untouched.

A -resetmodifiers typed into Additional launch arguments is taken back out, with the reason written to the log. Extra arguments go last on the command line, so a second reset down there would clear the settings BakaLoader had just applied.

Removing a mod removes its patcher folder too

A removal now takes the mod's folder under BepInEx\patchers as well as the one under plugins. Before this, a patcher type mod kept loading after it was removed because only half of it was gone. Smoothbrain's StartupAccelerator is the one most people ran into. The patcher folder is backed up under BepInEx\.bakaloader-removed first, the same as the plugin folder.

Patcher mods are in the list now. A mod that ships both parts is one row with its patcher folder attached to it, not two rows. A mod that is only a patcher gets its own row with a patcher tag beside its name. Update mod is greyed on those rows with "Patcher mods are not updated here.", and Remove and Open Thunderstore page work as they do everywhere else. The BepInEx pack and HookGenPatcher are never listed and cannot be removed here, because they are the framework itself.

Worth knowing if you run more than one server: BepInEx\patchers is shared between isolated installs through a junction, while plugins, config and cache are real copies per server. Removing a patcher mod takes it out for every server at once. See Multiple servers.

Full detail: World modifiers and Mods.

1.0.3

Four changes to the Mods screen.

Progress when updating all mods

Update all now shows a bar above the table with the mod it is on and the count, and each row moves through Queued, Updating and then a green ✓ 1.9.5 → 1.9.7 or Failed: with the reason, instead of one spinner and a summary at the end. A mod that fails names the reason in its own row, and the rest carry on. The bar clears and a fresh scan redraws the table when the run ends.

Update one mod

Update mod in a row's right click menu updates just that mod, with the same in row progress. It is greyed with "This mod is already up to date." when the row has nothing newer to fetch.

The "Possibly outdated" column

A new column reads Yes when a mod's newest Thunderstore version came out before Valheim was last updated, so it may not account for the current game version. It is blank the rest of the time, and blank when a mod is not on Thunderstore or the game's update date cannot be read. It is a hint, not proof a mod is broken: right after a game patch it can read Yes for most of your mods, because their authors have not published yet, and a mod can keep working with no new release. Treat it as a shortlist to check, not a verdict. It folds away below 1100 pixels of width. Full detail: How mods are matched and updated.

Removing a mod warns about what depends on it

When you remove a mod, the dialog now lists the installed mods that depend on it and may stop working, and offers to remove them too, off by default. The list follows the dependency chain and comes from the mods you already have installed, not a network lookup. If you do choose to remove them, the dependents go first so none is orphaned partway through.

1.0.2

Upkeep

Three new switches in the Upkeep card on the Dashboard.

Check for BakaLoader updates asks GitHub for a newer release, at launch and again before a scheduled restart, so a machine that never closes the app still finds out. It only checks. Auto-update BakaLoader is what installs one, and it is now dimmed while checking is off, with the reason on the row. The standing update notice reads both switches, so it no longer promises an install that cannot happen.

Update mods at scheduled restarts is the one switch behind both automatic mod update paths: during a scheduled restart, and once the server has sat empty for ten minutes.

Start minimized opens the window minimized to the taskbar. There is no tray icon, so it waits there rather than in the notification area.

Settings

Require a 5 character password sits under the password box. Valheim wants a password of at least 5 characters that does not contain the server name or the world name, and a public server needs one at all. With the switch on BakaLoader stops the start and names the rule that was broken. With it off it starts anyway and leaves the last word to the game.

Deleting a world

Delete world in the World Saves dialog and in the Barrow. It takes the world folder or the legacy pair, any world of the same name in the other worlds folder, and the biome cache the game keeps for it. Also delete its backups is off by default. You have to type the world's name exactly to confirm.

It is refused while a server is running that world, and while any realm still selects it, and the button is greyed with the reason rather than offered and then turned down.

Statistics

Reset statistics clears every counter for every server, since they are all counted in one journal, and sets the old journal aside as analytics.json.bak-<stamp> rather than throwing it away. One copy is kept.

1.0.1

Update the server from the app

When Steam has a Valheim Dedicated Server update queued, the start prompt now offers Update and start. BakaLoader copies your worlds aside, runs the update, then starts the server. The same action sits in the condition bar, on the Dashboard as an Update available pill, and in the command palette.

A server installed through your Steam library is updated by Steam itself: BakaLoader asks Steam to verify the install and watches the download until it is whole. A standalone install is updated with steamcmd, which BakaLoader downloads once, checks for Valve's signature, and runs with its output streamed into the log.

Progress shows in the condition bar with the phase and the download so far. A failed update keeps the server stopped and tells you why.

It never runs steamcmd against a Steam library, never starts the server while a download is pending, and always copies the worlds aside first.

Full detail: Server updates and the launch guard.

Launch guard

An unreadable Steam manifest no longer clears the guard. The binaries are fingerprinted instead.

A server nested under a Steam library no longer borrows a neighbouring install's build id.

A change in how the build is identified is no longer reported as a new build, and the fingerprint of the last launched build is remembered so the comparison always has something to compare against.

The same backup question is no longer asked twice after a real build change. A start you triggered yourself is no longer posted to Discord as an unattended hold.

Two launches can no longer race into one world. Adopted servers record their build.

A backup that copied nothing when worlds exist now stops the start and says so.

Worlds and backups

Backup names are classified with the game's own rules, so a real backup is never listed as a live world and a world whose name ends in a stamp is never hidden.

Copying a world into a folder that already holds one is refused instead of merging two save histories. Deleting a converted world also removes the legacy pair beneath it.

A backup layer that lost its world file is shown as damaged: it cannot be restored, but it can be deleted.

The biome cache is keyed the way the game keys it.

Full detail: Worlds, backups and restore and World file formats.

Map

Ashlands terrain now uses the game's final height formula, with the game's own noise functions, instead of the pregeneration approximation. Coastlines match the world you play in.

Corrupt or oversized saves are rejected before they can exhaust memory. A save that rotated mid read is retried, a genuinely corrupt one is reported as such. Chunk files read faster.

The map explains why it cannot draw: no save yet, a save that exists but could not be read, or the reader's own diagnostic.

Full detail: How the map is drawn.

Players

Live positions in the roster while the server runs with RCON on, refreshed every few seconds, never stale.

Platform names read the same everywhere: Steam, Xbox, PlayStation, Nintendo Switch, Apple Game Center, Crossplay.

Admin, allow and ban lists refuse entries that would split a line or read as a comment, and an upgrade that could not complete is retried instead of being marked done.

Row menu actions that need the player online are greyed out for an offline player with the reason in the tooltip, rather than failing when you press them. Heal, Smite, Teleport and Spawn item want a character in the world and say "Only works while the player is online." Kick only needs them connected and says "Only works while the player is connected." Promote, allow, ban and copy id stay available either way.

Full detail: Players (Vikings).

Mods

The mod row menu gained Open Thunderstore page, which opens that mod's own page in your browser. A mod the scanner could not match to a package shows it greyed with "Not on Thunderstore" rather than opening nothing.

Full detail: Mods.

Interface

Toasts moved to the bottom right in a fixed width column that never covers a dialog's buttons or the status bar.

The BakaLoader update notice now appears when a newer release exists, with a link to what changed.

A plugin that could not be installed is named in the server log and in a condition bar notice.

Resize handling and dialog observers were tightened. Long sessions no longer accumulate detached dialog nodes.

Copy fixes across the app. "Advanced" replaces the Norse only section title.

Plugins

The Max Players count you saved while the old mod was still locked is kept.

The plugin build script builds all five plugins by default and the verify script checks the patched constants.

Spawned items carry the same cheat marking as the game's own spawn command. Kill all spares training dummies. Trinkets are classified as equipment.

From the review round

Start and Restart are refused everywhere while an update is rewriting the install, with one sentence: "An update is running for this install. Wait for it to finish." That covers the automatic restarts too. Steam only flags the manifest well into a run, so the launch guard could not have caught this on its own.

Closing the app during an update is refused until it finishes, and steamcmd now runs outside the job object that ties the server to the app, so a crash of BakaLoader no longer leaves half of one build and half of another.

Stopping an update is honest about what it can stop. Only a wait on the Steam client can be called off; a steamcmd run, a worlds backup and the verify pass refuse. A stopped wait is quiet: the previous notice comes back untouched and one toast says "Update stopped. Steam keeps downloading on its own."

steamcmd's signature is verified with Windows rather than only read, and it runs from its own folder so its bootstrapper unpacks beside itself. The five minute stall clock only counts once bytes have moved, so a queued download is no longer failed while Steam works through its own queue.

The backup manager gained a Backups without a world section. Layers left behind by a world that is gone were on disk but nowhere on screen. Restore one to bring the world back, or delete it to take the space.

A file pair named {world}_{stamp} is a rolling save the game files under the trimmed name and never opens as a world. It is now listed as a layer of that world instead of being offered as an adoptable realm that would never load.

A legacy layer is damaged when either half of its pair is missing, not only when the .fwl is gone.

The condition bar is ordered worst first for real: a held start, then a failed save, a failed backup and a crash, then the update row and a plugin failure, then the two notices.

Max Players refuses cleanly. When it cannot patch this build of the game it keeps the vanilla 10 everywhere, including the advertised and crossplay lobby capacity, rather than advertising slots it would then refuse. It says so on the server's output, and BakaLoader raises that as a warning in the log, so the number in the settings can no longer look like the truth while the server quietly caps at 10. The migration off the old third party mod installs the replacement before removing it. The crossplay lobby was one slot short and is not any more.

Kill all spares the same set from the console as it does over RCON. Arrows and utility items are classified as equipment, so a utility item keeps its quality box.

The access list writer never authors a line starting with #, and can still see and remove one that is already in the file.

Documentation

A full wiki, a reworked README and a complete screenshot set of every screen and dialog.

1.0.0

The app left its 0.x phase alongside Valheim 1.0. This one was about the interface.

Every screen leads with a plain name (Dashboard, Players, Mods, Settings, Map, Configs, Log, Discord, Statistics) with its Norse name as a caption, and a Show Norse names switch hides the captions.

A persistent header on every screen shows the active server, its state, uptime and players online, with one Start or Stop button.

Conditions that stay true moved out of toasts and into a bar above the page, with their action attached. Toasts are kept for confirmations.

Empty areas say what they are waiting for and what to do next.

The roster became a real sortable table with session time, total playtime, last seen, deaths and position, and the actions menu reachable from a button as well as a right click.

The window sizes itself by Windows display scaling, so 125 and 150 percent give the same working area as 100 percent, and the layout stays usable well below the old minimum.

The dashboard flame became a particle fire that changes with the server state.

0.10.0

Valheim 1.0 support. The release that taught BakaLoader the new save format, the new id matching and the new log lines.

1.0 stores each world as a folder rather than a .fwl and .db pair. The world picker, the seed display, the orphan world scan and the backup manager all list both formats side by side. Backups of folder worlds are folders too.

The launch guard arrived: BakaLoader remembers which build it last started, asks before starting on a different one, explains that worlds are upgraded one way, and offers to back up first. Automatic starts hold instead of running unattended.

1.0 only matches Steam ids written as V_<steamid>, and old files with bare ids look like everyone being banned. BakaLoader writes both forms and upgrades existing files.

PlayStation and Nintendo Switch players appear in the roster. The roster shows each player's platform.

The save complete message changed in 1.0, so save timing, the World saves card and everything that waits for a save were fixed against it, and a failed save is reported.

The map reads 1.0 world folders. The terrain generator followed the 1.0 Deep North changes.

The bundled server plugins were rebuilt against 1.0. The item indexer, which feeds the spawn picker with your installed mods' items, shipped for the first time.

Known limit at the time, now fixed in 1.0.1: the Ashlands coastline was drawn from the pregeneration formula, so its shape was approximate.

Clone this wiki locally