Fast AssetBundle Loader
Faster loading with large size mods by caching asset bundles
About this mod Author’s original text
FastAssetBundleLoader
Game loads faster with large size mods by caching asset bundles.
It speeds up repeated mod startup by caching slow asset bundles into reusable files in a shared folder under Valheim's Unity persistent data path.
The implementation is based on the same general approach as DiFFoZ's BepInExFasterLoadAssetBundles, but is adapted and trimmed for this Valheim-focused project.
What it does
- It checks loaded UnityFS bundles with format version 6 or newer for caching and recompresses eligible bundles into reusable LZ4 files. Eligibility is broader than LZ4HC: the header's compression flags describe the blocks-info table, not necessarily the bundle's data blocks. Recompression that produces identical bytes is recorded so it does not repeat on later loads.
- Install FastAssetBundleLoader.dll in BepInEx/patchers. Both release archives contain the DLL under patchers/ and can be extracted into the BepInEx directory.
Cache behavior
- Cache files are stored under /FastAssetBundleLoader/cache/v1 by default. On Windows this is normally %USERPROFILE%/AppData/LocalLow/IronGate/Valheim/FastAssetBundleLoader/cache/v1.
- Profiles using the same storage root reuse cache entries for identical bundle contents. Changed bundles get separate entries. v1 is the cache format version, not the mod release version.
- In BepInEx/config/sighsorry.fast_asset_bundle_loader.cfg, leave [General] CacheRootDirectory empty for the default location, or set an absolute storage root on another drive. FastAssetBundleLoader/cache/v1 is always appended. Relative paths are not accepted.
- Old CacheDirectory settings and caches under BepInEx/cache are not used or migrated. Existing files are left untouched; the shared cache is populated as eligible bundles load.
- Only one game process can use a given cache directory at a time. If the cache is busy or inaccessible, the other instance uses original bundle loading without caching for that run. An existing.cache.lock file is normal; the open file handle, not the file's presence, determines ownership.
- To reset the shared cache, close all game instances and delete only the dedicated FastAssetBundleLoader/cache/v1 directory. Do not delete the Valheim save-data directory. Resetting the cache affects every profile sharing that location.
- Cache files are created only when eligible asset bundles are actually loaded.
- A single run may not warm every cache entry if the game is closed before the background queue finishes or if some bundles are loaded only in specific scenes. Later runs may therefore become faster.
- For a broader warm-up, enter a world instead of stopping at the lobby and keep the game running until cache activity settles. Different gameplay paths may create additional entries, so caching every installed asset bundle is not guaranteed.
- Cache could take up to few GB of your disk space according to the mods you are using. (More than 3GB in my case)
- The main measured benefit is repeated loading to the lobby. Improvements from lobby to world depend on which eligible bundles are loaded and may not be noticeable in every setup.
Configuration
Settings are stored in BepInEx/config/sighsorry.fast_asset_bundle_loader.cfg. Restart the game after editing the file; the patcher reads its configuration during startup.
| Section | Key | Default | Behavior |
| --- | --- | --- | --- |
| General | Enabled | true | Enable asset bundle caching and redirects. |
| General | CacheRootDirectory | empty | Use Unity's persistent data path, or specify an absolute storage root. The dedicated FastAssetBundleLoader/cache/v1 directory is appended. |
| Cache | MinimumFreeDiskSpaceGb | 10 | Skip creating cache entries below this free-space threshold. |
| Cache | RetentionDays | 0 | Remove cache entries not reused for this many days. 0 disables retention cleanup. |
The Valheim launch argument --ignore-space-check bypasses the fr
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: