Valheim
Install with App

Details

Latest version
1.0.5
Last Updated
First Uploaded
Downloads
158
Likes
2
Size
156KB
Dependants
ADDatHost Valheim hosting
30% off

Ultimate Server

Server tools: ground item cleanup, live server monitoring, blocked commands, less smoke, connection tuning and a performance-first design.

Press F3

⌨️ PRESS F3 IN THE GAME TO OPEN THE SETTINGS PANEL ⌨️

Every feature of this mod is turned on and tuned in the in-game panel.
Can't use F3? Open the console with F5 and type ultimateqol_config.

Settings panel (F3)

⌨️ How to use

  1. Install and start the game.
  2. Press F3 to open the settings panel.
  3. Find the Server options in the sidebar (or type in the search box at the top) and turn on what you want.

Everything is off by default, so the game stays vanilla until you turn something on.

🔑 To change settings you need admin access with devcommands: be listed in the server's adminlist.txt (on a dedicated server) or be the host of the world. Changes are synchronized to all players in real time.

Features

Optimization and monitoring

  • Optimization – removes items that stayed on the ground too long, to keep the world light and keep frames high. Off by default. Time on the ground (default 6 h, 0.1–720) counts server running time; an item a player picks up and drops again starts a new timer. Items are removed bases included when their area loads and while it stays loaded (a few per frame, never all at once). Clean when the server starts (default on, only with the cleanup on) removes old items right after the server starts, so the world loads clean. The button Clean the world now (admins, two clicks) scans the whole world in small slices – one chunk per frame and a limited number of removals per frame, even in areas nobody has loaded – and removes every item older than the limit. It never touches items inside chests, carts, boats or inventories, placed pieces or fish, and items whose age is unknown are kept. Nothing is logged.
  • Monitoring – admins see how the server is doing: frame time (average and worst), CPU and memory of the server, world objects, players, loaded items/creatures/containers, the mod's own cost per system (devices, animals, stations, cleanup, sweep) and its share of the frame, queue sizes, the adaptive budget, a green/yellow/red verdict, and the state of the world cleanup. The server measures and sends this only while the page is open (every 2 seconds).
  • Blocked commands – a list of console commands that players cannot use even without devcommands (the admin types a name, clicks Add, and removes entries with the x button). The list starts with printseeds (shows the world seed) and lodbias. Admins and the host are never blocked; blocked commands also disappear from the help and auto-complete. The block runs in each player's game, so players need the mod. An empty list blocks nothing. You can also add yesiuseddevcommandsbutiwantmyachievementsanyway to stop players from using that command.

Less smoke (visual lag)

Panel page Optimization (config section 135 - Visual lag), off by default: removes the smoke of fires, hearths, braziers, smelters, kilns and ovens, or keeps it only within a distance of the player (0 = none). Fire, heat, fuel and cooking are not touched.

Connection (network)

A Connection page with three switches, all off by default and only changed by admins. The top of the page shows, detected automatically, whether the world is local or dedicated and whether it runs on Steamworks or PlayFab (Crossplay).

  • Adaptive send capacity (Steamworks only; PlayFab is never touched). The game sends at a fixed 150 KB/s per connection and hands world data to a connection only while less than 10 KB wait in its queue (about 200 KB/s at most, whatever Steam allows). With this switch on, every Steam connection gets its own limits, so one slow player never holds the others back:
    • a new connection starts with a maximum of 256 KB/s and a world-data queue sized for it (100 ms of its maximum, at most 50 KB);
    • a connection that shows packet loss (quality under 95 %), a send queue above 64 KB, or data waiting while the link takes less than half of the allowed speed is lowered one step of 25 % at a time: first back to the game's value (and the game's 10 KB queue), then its minimum down to 64 KB/s, so a weak link gets less at once instead of falling behind;
    • after 30 s of good quality it climbs back slowly; a connection that really needs more (sending at 85 % of its maximum with a full queue and good quality) goes up in 25 % steps, never above 512 KB/s;
    • it reads the real values first and steps aside if something else already changed them; turning it off gives every connection the game's values back. The log says which mode is in use (Steam send capacity mode = ...).
  • World data compression (Steamworks only): world-sync messages of 512 bytes or more are compressed between two machines that both run Ultimate QOL, only when the result is at least 10 % smaller. Negotiated first: players without the mod, PlayFab sessions and consoles keep the normal messages. Every frame is checked (length and checksum) before it reaches the game.
  • Smart monster management: every player gets a health from 0 to 1, the worst of the connection (ping and jitter, packet quality, silence) and the performance of their game (players with the mod report it: average FPS 60+ = 1, 30 = 0.6, 20 = 0.3, 15 or less = 0, halved by frequent hitches; a few bytes, only when it changes). When the owner of nearby monsters stays under 0.45 for 10 s (about 25 FPS, frequent hitches or a bad connection), the monsters go to a nearby player with health 0.8 or more, at least 0.3 better, within 48 m, already up to date and with at most 15 monsters; the healthiest wins. A stable 30 FPS player with a good connection is fine and keeps them (monsters are simulated at a fixed rate, so moving them would only cost an AI restart). Monsters that are fighting move only when the owner is really bad (under 0.3 for 10 s, or 8 s without a game ping). Never bosses or tamed animals; a monster changes owner at most once every 30 s; a player who just received monsters is not judged on performance for 30 s; loading, teleporting and the first seconds after spawning are never graded (a game in the background IS graded: if it runs slowly there, its monsters really lag for the others). Only the machine that runs the world decides; players without the mod are judged by connection only. The players list shows each player's FPS and performance grade.
  • Players list (admins only). The page lists every connected player, best connection first, with a bar from green (excellent) to red (very weak), ping, packet quality, silence (seconds without a game ping), send queue, the Steam send limit in force for that player and the speed it is sending at. It is read only while the page is open (about every 4 s); with the page closed nothing is measured or sent.
  • Each switch steps aside when another networking mod already patches the same game methods (written to the log). ultimateqol_stats prints what each part actually did, so you can compare with the switch off and on.
  • What it does not fix: the FPS of each player's own computer (rendering, huge bases), the CPU of the server and the size of the world. On a quiet server with few players the vanilla limits are not reached and the gain is small.
  • Server upload: raising the limit only lets this machine send faster. Several players at a high rate need a matching upload on the server's line (10 players at 256 KB/s ≈ 20 Mbit/s); on a weak home connection the system sees the packet loss and lowers itself, but the gain is small.
  • Do not combine with other network mods (better networking, compression, send-rate or ownership mods): Ultimate QOL steps aside when it detects their patches, but two of them on the same connection is never a good idea.

Performance

  • No polling scans: containers and ground items register themselves when they load (the ground sweep and cleanup work from that list, with a time budget and back-off); the only whole-world pass is the optional, sliced world cleanup. Containers register themselves when loaded and searches are a distance check over that list, only when an action needs it.
  • Nearby material totals are cached and invalidated by container changes.
  • Settings: one snapshot on join, then only the changed value.
  • Hooks that run every frame only read a flag while their option is off; every feature that is off costs practically nothing.
  • Main multiplayer lag sources and what covers them: send limits and queue of the network (adaptive send capacity), uncompressed world data (compression), monsters owned by a player with a weak connection or computer (smart monster management), save hitches (save without freezing), items piling up on the ground (cleanup), animal overpopulation (animal limits), support calculation of big bases (no collapse), idle stations (event scheduler).

⚠️ Experimental

This mod is still experimental and may contain bugs. Back up your world and your character, and turn features on a few at a time.

💬 Bugs and suggestions

Join the Discord: discord.gg/aMkN89Cuas

Powered by Ultimate QOL, installed automatically as a dependency. The F3 panel also shows its other options, all off by default.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.