IoStoreLoaderMod is a native UE4SS C++ mod that enables loading IoStore-based assets (.pak / .utoc / .ucas) at runtime for Hi-Fi-RUSH, including mods packaged as:
- IoStore-only containers (
.utoc+.ucas*) - Pak-only containers (
.pak) - Full containers (
.pak+.utoc+.ucas*)
It mounts containers once the game's normal pak mounting has run, then (optionally) spawns a Blueprint mod actor for each mounted container when the game's PlayerController begins play (HbkPlayerControllerBP_C.ReceiveBeginPlay).
- ✅ Runtime mounting of IoStore containers (
.utoc/.ucas) - ✅ Runtime mounting of Pak containers, including automatic IoStore environment mounting
- ✅ Priority-based mount order (override control)
- ✅ Supports mods with multiple IoStore containers per folder
- ✅ Blueprint ModActor auto-spawn
- UE4SS 3.0.1 (C++ mods enabled)
- Mods must be properly cooked for the Hi-FI RUSH (i.e. UE 4.27, IoStore enabled)
This mod requires UE4SS version 3.0.1 (⚠ other UE4SS versions are not supported and may not work correctly).
- Download UE4SS v3.0.1 from the official UE4SS releases
- Install UE4SS into the game directory (
C:\Program Files (x86)\Steam\steamapps\common\Hi-Fi RUSH\Hibiki\Binaries\Win64) - Make sure UE4SS is working before continuing
- ❗ Add Hi-Fi RUSH support (if you haven't done it already) by copying
UE4SS_SignaturesandUE4SS-settings.iniinto the game directory.
- Copy the mod folder into:
Mods/IoStoreLoaderMod/
Required structure:
Mods/
IoStoreLoaderMod/
dlls/
main.dll
- Enable the mod in
Mods/mods.txt(put it at the very top):
IoStoreLoaderMod : 1
Make sure the name exactly matches the mod folder name.
Each mod is a folder inside Mods/IoStoreLoaderMod/:
Mods/
IoStoreLoaderMod/
dlls/
main.dll
FooMod/
FooMod.pak
FooMod.utoc
FooMod.ucas
BarMod/
BarMod.pak
BarMod.utoc
BarMod.ucas
- The folder name is used only for sorting / grouping.
- What actually mounts are the container files inside the folder.
IoStoreLoaderMod waits until the game calls Unreal's MountAllPakFiles once.
After that first call completes, it mounts user mods one time.
- It scans all subfolders in
Mods/IoStoreLoaderMod/(excludingdlls/). - It sorts folders alphabetically.
- Each folder is assigned a base mount order
order_base = 200 + folder_index.
- If the folder contains any
.pakfiles: - All
.pakfiles in that folder are mounted (sorted alphabetically by filename) - Each one gets:
order = order_base + pak_index
- Otherwise, if there are no
.pakfiles but there are.utocfiles: - All
.utocfiles are mounted (sorted alphabetically by filename) - Each one gets:
order = order_base + utoc_index
Higher mount order overrides lower mount order.
Practical rule:
- Folders later in the alphabet mount later (higher order) -> override earlier folders.
- Within the same folder, later file names override earlier file names.
Example:
A_Mod\aaa.pakmounts beforeA_Mod\zzz.pakZ_Mod\something.pakmounts after both -> overrides both
IoStoreLoaderMod can auto-spawn a Blueprint entry actor for each mounted container.
Spawning is triggered when HbkPlayerControllerBP_C.ReceiveBeginPlay is called.
For each mounted container, the loader queues a class path:
/Game/Mods/<BaseName>/ModActor.ModActor_C
Where <BaseName> is derived from the container filename, not the folder name:
- For
.pakfiles:SomeName.pak-><BaseName> = SomeName
- For
.utocfiles:- Intended:
SomeName.utoc-><BaseName> = SomeName
- Intended:
So if you ship ExampleMod.pak, the loader will try to spawn:
/Game/Mods/ExampleMod/ModActor.ModActor_C
The mod also "implements" the following custom events (duplicated from BPModLoaderMod):
HbkPrintToModLoader- print to the consoleHbkConstructPersistentObject- create a persistent object
- Check UE4SS logs
- Verify
load_order.txtpath is correct - Ensure the mod is cooked for the same engine version (4.27) with UseIoStore enabled
- Confirm
<BaseName>matches the container filename (e.g.ExampleMod.pak->ExampleMod) - Remember: Live View shows loaded objects; the class won't appear until it's actually loaded/spawned.
This mod performs runtime hooks and memory patching. It is intended for modding and research purposes only.
Use at your own risk.