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.
SteadyFrame
Smoother Valheim without changing how it looks or plays: fewer hitches around large bases, less work every frame, fast portal travel. Successor of FastLoading.
By Ivvty
| Date uploaded | 4 days ago |
| Version | 1.0.5 |
| Download link | Ivvty-SteadyFrame-1.0.5.zip |
| Downloads | 2116 |
| Dependency string | Ivvty-SteadyFrame-1.0.5 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2351README
SteadyFrame
SteadyFrame makes Valheim smoother on the CPU side: fewer hitches while you run around large bases, less work every frame, and fast portal travel. It is the successor of FastLoading and contains all of it.
Its benefits are shorter transitions, fewer streaming hitches and a lighter per-frame grass and mist pass. Average FPS depends on what limits the scene: measured with grass drawn to 200 m, about 5.5% higher at a Mistlands base and 2-4.5% at Meadows bases, no measurable change at a mountain base with little grass. Saving time in streaming and rebuilds gives little extra FPS when regular updates and rendering dominate.
The visual world, terrain and building support use the game's own objects and calculations. Shortcuts either check against the game's own answer or leave that work to the game.
What it does
Portals and dungeons (from FastLoading)
- Prepares the destination's terrain as you walk up to a portal and loads it first during the transition.
- Creates the destination faster while the loading screen is up; distant trees and bushes fill in afterwards.
- Removes fixed waits (the 8-second floor on portal travel; 2 seconds between teleports becomes 0.5), with the game's area and floor checks kept.
- Optional short fade into and out of dungeons.
- Multiplayer: with SteadyFrame or FastLoading on the host, the destination's buildings are sent while you walk to the portal, and you arrive once the host confirms they are all with you.
Smoother play around large bases
- Skips the game's object create/remove pass while nothing it looks at has changed, and finds objects to unload by zone instead of checking every loaded object.
- Places the rooms of a dungeon that loads near you over a few frames instead of one long frame.
- Rebuilds grass after the ground changes within a few milliseconds a frame, nearest first, instead of all at once (up to a second at long grass distances). Behind a loading screen it still rebuilds at once.
- Keeps ground meshes when a building streaming in or out asks for a rebuild that would change no height.
- The terrain builder no longer pauses 10 ms after each zone while more are waiting, so new ground appears sooner when flying, sailing or running into new land.
- Remembers which building piece each collider belongs to when pieces check their support.
- Draws grass without asking the engine for the camera and each patch's transform thousands of times a frame.
- Mistlands mist reads each mist area's position once per update instead of once per particle.
- Less garbage from collisions and world-object data.
Fixes
- A loading screen that never lifted after an object near the destination was destroyed without the game knowing.
- An error when a tar pit that had not finished loading was removed; log lines written every frame or on every chest open.
Requirements
- Valheim with BepInEx 5 on Windows.
Install
- Close Valheim.
- Extract this archive into the Valheim game directory. The DLL should end up at
Valheim/BepInEx/plugins/SteadyFrame.dll. - If FastLoading is installed, delete
Valheim/BepInEx/plugins/FastLoading.dll. SteadyFrame contains it and does not run while it is present. FastLoading's settings are carried over on SteadyFrame's first start.
Settings
Valheim/BepInEx/config/ru.ivest.steadyframe.cfg, all changeable with Configuration Manager:
- 1 - General: Enabled.
- 2 - Modules: Transitions, Object streaming, Terrain, Structures, Grass, Housekeeping (restart required); Reuse collision data, Mist emission lookups.
- 3 - Transitions: Dungeon fade, Teleport cooldown, Narrow range while loading, Defer distant nature.
- 4 - Multiplayer: Early object delivery, Send boost.
- 5 - Object streaming: Skip idle passes, Unload by zone, Dungeon spawn budget (milliseconds a frame; 0 places dungeon rooms the game's way, all at once).
- 6 - Grass: Rebuild budget (milliseconds a frame; 0 rebuilds grass the game's way, all at once); Lean draw pass; Reuse grass arrays.
- 7 - Structures: Support lookups.
- 8 - Terrain: Keep unchanged ground meshes.
- 9 - Verification: diagnostics that run the game's own computation beside each shortcut and log any difference. Off for play.
Compatibility
- Replaces FastLoading; do not install both.
- If ValheimCommunityPatch or Valheim Performance Optimizations change the same game code, the overlapping part of SteadyFrame stands down and says so in the log; the rest keeps working.
- With ValheimCommunityPatch 0.35 or later, SteadyFrame uses VCP's API: where both do the same job (object creation and unloading, dungeon placement, building support lookups), SteadyFrame's version runs and VCP's is turned off for the session, and the log says so. VCP keeps its terrain builder; SteadyFrame's destination terrain priority, terrain cache and ghost-zone pause go through VCP's API. With an older VCP, the overlapping parts of SteadyFrame stand down as before.
- Only errors and such stand-downs are logged.
CHANGELOG
Changelog
1.0.5
- ValheimCommunityPatch 0.35 or later: SteadyFrame no longer stands down where both mods do the same job. Through VCP's new API it turns off VCP's version of object creation and unloading, dungeon placement and building support lookups, and keeps its own, including loading only the arrival area under the loading screen. VCP's terrain builder stays, and SteadyFrame's destination terrain priority, terrain cache and ghost-zone pause now work through it. Measured on a local dedicated server with VCP and Network Performance System, three runs each: portal hops 1.86/0.89/1.41/0.84 s instead of 2.28/1.22/1.60/1.08 s (medians); SteadyFrame's unloading matched the game's own on every check.
- The terrain builder no longer pauses 10 ms after each zone while more are waiting (before, only under a loading screen). In a test asking for nine new zones at a time: 141 ms the old way, 93 ms now (medians of 6 each), frame time unchanged. With ValheimCommunityPatch its own builder runs, which already works this way.
1.0.4
- Multiplayer: tamed animals no longer fall out of raised pens after a portal trip. A host with SteadyFrame sent the whole destination ahead, animals included, and could deliver an animal before the floor under it; the player who arrived then ran the animal with nothing to stand on. Only buildings, rocks, trees and ground edits are sent ahead now. Creatures and items come in the game's order, after their floors (as Network Performance System expects). Update SteadyFrame on the server as well: the fix is on the host's side.
- Multiplayer: no more arriving inside walls that were still on their way. A portal trip used to end as soon as there was ground under the exit. It now ends once the host confirms the buildings within 32 m are with you. When you walked up to the portal they are already there, so the trip is as fast as before. A host without this version cannot confirm, so the trip waits until no more buildings arrive nearby (at least a second).
- Grass draw pass: the camera is read once per frame and each grass patch remembers its transform, instead of thousands of engine calls every frame. Same grass, drawn the same way. Largest with long grass distance.
- Mistlands mist reads each mist area's position once per update instead of once per particle. Same mist.
- Building support lookups use a faster cache (less overhead at large bases).
- Measured in one session with the settings switched on and off every 8 seconds, grass drawn to 200 m: about 5.5% higher FPS at a Mistlands base, 2-4.5% at Meadows bases, no measurable change at a mountain base with little grass and no mist.
- Dungeons (crypts, caves) whose zone loads near you are placed a few rooms a frame instead of all in one frame: 40-90 ms hitches became frames of 4-10 ms. Every room is the game's own, in the game's order, and the zone counts as loading until the last room is in, as before. Checked on 26 dungeons: every object identical to the game's. Behind a loading screen they are still placed at once. Setting: Object streaming / Dungeon spawn budget (0 = off).
- Grass patches reuse the 64 KB instance arrays of destroyed patches instead of allocating new ones as you move (cleared, so the game sees the same data). Measured over six passes walking through Meadows bases with grass drawn to 200 m: frames over 33 ms 98 -> 51, garbage collections 22 -> 10. Setting: Grass / Reuse grass arrays.
1.0.3
- Portal hubs: the destination terrain of the portal you are nearest to is prepared first and kept until you step through. Before, every portal within reach was prepared at once, and most of that work was discarded before use.
1.0.2
-
Portal object-creation budgets and ready-zone loading remain active with ValheimCommunityPatch. Conflicting scene, spawn-queue and terrain algorithms still stand down; temporary range narrowing stays off with VCP.
-
Removed patches now reset their applied flags, so diagnostics no longer report them as still installed.
-
Removed sector unload hysteresis after measurements in a large world showed lower average FPS with retention enabled. Objects no longer stay active beyond the required area for a grace period.
1.0.1
- Fixed the error when a tar pit that failed to load is unloaded.
- Grass rebuild no longer stalls with a very small rebuild budget.
- Objects created by other objects while an area loads are unloaded as in the game.
- Safer after game updates and with an unreadable FastLoading config.
1.0.0
- First release. Contains FastLoading 0.6.2; its settings are carried over.
- Fewer hitches around large bases: idle object passes skipped, unloading by zone.
- Grass rebuilds spread over frames instead of freezing the game.
- Ground meshes kept when a rebuild would change nothing.
- Cheaper building support checks and less garbage from collisions and world data.
- Fixed a loading screen that could hang for ever near a destroyed object.
- Fixed an error when unloading a tar pit and log lines written every frame.