davidsv-ShorterLoading icon

ShorterLoading

Up to 16x faster: world loading, respawns, portal trips, teleports, sleep.

By davidsv
Last updated 20 hours ago
Total downloads 111
Total rating 1 
Categories Mods Tweaks Server-side Client-side Utility AI Generated Deep North Update
Dependency string davidsv-ShorterLoading-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
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.2351

README

ShorterLoading

ShorterLoading cuts the waiting in Valheim: starting the game, entering a world and respawning after death. It also shortens portal trips and sleep, and fixes the slow devcommands map teleport.

Timings

Measured on one PC at a large base:

Game ShorterLoading Faster
Entering a world (Start to standing) 32 s 7 s 5×
Dying to standing at your bed 28 s 5 s 5.5×
Portal trip to an unloaded area 22 s 2.5–4 s 5–9×
Devcommands map teleport, unloaded area 23 s 2.5 s 9×
Devcommands map teleport, loaded area 8 s 0.5 s 16×
Dungeon entrance 2 s 0.5 s 4×
Sleep 12.5 s 5.5 s 2×
Sleep with a dream text 12 s 8.5 s 1.4×

Features

Spawning (entering a world, and respawning at your bed)

  • Skip fixed wait: the game always waits at least 8 s before placing you. ShorterLoading places you as soon as the game's own checks pass: the ground and objects around the spawn point are there, and so is your bed. Multiplayer clients also wait until objects stop arriving from the host. At a large base the loading screen when entering a world drops from about 22 s to 2–4 s.
  • Zone rush: the game builds one zone of ground every 0.1 s. Behind the black loading screen, ShorterLoading builds every zone whose terrain is ready, within 50 ms per frame (130 zones in about 1.5 s).
  • Object rush: the game creates at most 100 objects per tick, 30 ticks a second. Behind the black loading screen, ShorterLoading creates as many as fit in about 50 ms per frame.
  • Load less first: only the objects near the spawn point load before you appear; the rest of a large base loads in around you afterwards. The longest frame while it does is about 100 ms instead of about 200 ms.
  • Death delay: you lie dead for 3 s instead of the game's 10 s before the respawn starts, and the fade to black is shortened to fit. Set it to 10 to keep the game's.

Map teleport (devcommands: Ctrl + middle-click on the large map)

  • The game teleports you like a portal, with the loading swirl, but when the area isn't loaded yet it aims below the ground, finds no floor and keeps the swirl up for 15 s. ShorterLoading aims at the ground once it has loaded and ends the teleport as soon as the area is ready instead of after at least 8 s.

World loading

  • Fast lake merge: the game spends most of its river planning merging map points into lakes, searching every point at each step. ShorterLoading searches only nearby points and gets exactly the same lakes. River planning takes 0.7 s instead of 2.2 s.
  • Biome map on all cores: the game computes its 2048 × 2048 biome map on one core (3.2 s). ShorterLoading uses all cores and the same code per point (0.3 s), and starts early, so the world load doesn't wait for it at all.

Menus

  • Skip splash screens: hides the Coffee Stain and Iron Gate logos. The main menu loads behind them either way, so this shows the loading bar instead; it doesn't shorten the wait.
  • Main menu fade-in: 0.3 s instead of the game's longer fade.
  • Menu fade after pressing Start: 0.1 s instead of 1.5 s.

Sleep (needs ShorterLoading on the host, or single player)

  • Faster sleep: from lying down to waking takes about 5.5 s instead of about 12.5 s. The game skips the night in a fixed 12 s and checks only every 2 s whether everyone is in bed and whether the night is over; ShorterLoading skips it in 5.5 s and checks every 0.25 s. Plants, smelters, fermenters and so on end up the same as with the game's skip: they run on the world clock, which reaches the same morning either way.
  • Dream reading time: when a dream text shows, you sleep until it has been readable for 3 s (about 8.5 s in all). Dream cutscenes still play to the end before anyone wakes.
  • Sleep fade: 0.5 s instead of 3 s to black and 1 s back in.
  • Always dream (optional): shows a dream text every night, to try the reading time; the game shows one only by chance.

Portals and streaming (SteadyFrame does these too; each turns itself off while SteadyFrame does the same)

  • Loading hang fix: stops the loading screen hanging forever when an object near the spawn point vanished.
  • No terrain builder pause: skips the game's 10 ms pause after each zone while more are waiting.
  • Terrain cache: keeps the ground of 512 zones instead of 16, so going back doesn't build it again.
  • Dungeon spread: places a dungeon's rooms over several frames instead of one long frame.
  • Grass rebuild budget: rebuilds grass over several frames, nearest first.
  • Portal waits: moves you once the screen is black and ends the trip once the exit is ready, instead of after 2 s and 8 s. On someone else's server it also waits for the objects at the exit. Works with TargetPortal.
  • Portal fade 0.5 s instead of 1 s; portal cooldown 1 s instead of 2 s.
  • Portal loading rush: the spawn rushes also work while a portal trip loads the exit.
  • Portal preload: builds the ground at the other end while you stand near a connected portal (not with TargetPortal, which picks the exit only when you step in).
  • Quick position update (multiplayer): tells the server about a teleport at once instead of within 2 s.
  • Server send boost (host): sends a player who just jumped far their objects up to 4 times as fast for 10 s.

Also always on: a fix for an error the game can throw when you leave a world or quit while a dungeon is still being placed.

If a feature fails, it falls back to the game's own behaviour. Each one can be turned off separately.

Using it with SteadyFrame

I recommend SteadyFrame too, a separate mod that ShorterLoading isn't affiliated with. It makes play around large bases smoother, and it also speeds up portal trips. Where the two do the same thing, ShorterLoading leaves it to SteadyFrame and shows those settings read-only, so they don't get in each other's way. Switch SteadyFrame off and ShorterLoading takes over at once; a SteadyFrame module switched off is taken over at the next game start. ShorterLoading has everything it needs on its own; SteadyFrame adds its smoother play around large bases.

Settings

Settings are in BepInEx/config/davidsv.shorterloading.cfg, or in Configuration Manager. Changes apply at once, except Skip splash screens, which applies at the next game start.

  • 1 - General: Enabled.
  • 2 - Spawn: Skip fixed wait, Client quiet time, Client first wait, Death delay, Zone rush budget, Map teleport.
  • 3 - Objects: Object rush, Object rush budget, Object rush max per tick, Load less first, Load less first radius.
  • 4 - World loading: Skip splash screens, Main menu fade-in time, Menu fade time, Biome map on all cores, Biome map early, Fast lake merge.
  • 5 - Sleep: Faster sleep, Dream reading time, Sleep fade time, Always dream.
  • 6 - Portals and streaming: Loading hang fix, No terrain builder pause, Terrain cache, Dungeon spread, Grass rebuild budget, Portal waits, Portal fade time, Portal cooldown, Portal loading rush, Portal preload, Quick position update, Server send boost. These turn themselves off while SteadyFrame does the same, whatever they are set to.
  • 7 - Diagnostics (optional, all off by default; you don't need them to use the mod): Log timing writes how long loading, respawns, portal trips and sleep took, e.g. for a bug report. Check rivers and Check biome map are for confirming that ShorterLoading's faster river planning and biome map give exactly the game's result. While one of them is on, world loads take longer, because it computes everything both ways.