Gaming

Extract .utoc to .uasset in UE5: FModel & UnrealPak Fix

Fix UnrealPak extracting only .uexp/.uheader from UE5 IoStore .utoc containers. Use FModel to reconstruct .uasset files for Until Dawn mods, handle ucas pairs, WwiseAudio, and iostore signature errors.

1 answer 1 view

How to correctly unpack an IoStore container (.utoc) from a Unreal Engine game mod pak using UnrealPak?

I’m working with a mod for Until Dawn (UntildawnTH_P.utoc) that includes localization files I want to customize. The mod has a complex structure involving WwiseAudio references, unlike the original game assets.

The mod works fine, but when I extract it with UnrealPak, I only get .uexp and .uheader files—no .uasset files.

Command used:

C:\Users\Roman>\"C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\Win64\UnrealPak.exe\" \"C:\Program Files (x86)\Until Dawn\Windows\Bates\Content\Paks~mods\UntildawnTH_P.utoc\" -Extract \"C:\Users\Roman\Desktop\ThaiExtracted\"```

How can I properly extract the full assets, including .uasset files, from this IoStore container in Unreal Engine 5.3?

UnrealPak by itself usually won’t rebuild full .uasset packages from UE5 IoStore containers — it commonly produces only the raw .uexp and .uheader. To get usable .uasset files from an IoStore pair like UntildawnTH_P.utoc you need an IoStore-aware extractor (the community standard is FModel) that loads the matching .utoc + .ucas and exports reconstructed .uasset packages; also check for missing .ucas chunks, signature/encryption, and increase virtual memory if exports fail. If you must use UnrealPak, add the platform flag and ensure all container pieces are present, but expect that UnrealPak alone often won’t give you .uasset files for UE5 IoStore archives.


Contents


Why UnrealPak only gives .uexp/.uheader (IoStore basics)

Unreal Engine 5 introduced IoStore packaging: the TOC/metadata (.utoc) is separate from bulk content (.ucas). The exported cooked package that editors expect (.uasset) is essentially a small header that references raw export data (.uexp). When you point UnrealPak at an IoStore container it will often extract the raw pieces—.uexp (export data) and .uheader (metadata)—but it won’t reconstruct the original .uasset package header for you. That reconstruction requires parsing IoStore metadata and rebuilding the package header in the exact format the editor expects, which is why community tools were created to handle it (UnrealPak was designed for .pak workflows and doesn’t always do the header reassembly for IoStore) — see the community discussion for details and examples of this behavior: https://forums.unrealengine.com/t/how-to-extract-ucas-and-utoc-io-store-container-files-in-unreal-engine-5/1359694 and read the packer notes at https://github.com/rm-NoobInCoding/UnrealReZen.

In short: getting .uexp is normal; getting a working .uasset requires an IoStore-aware extractor that reconstructs the header metadata.


Recommended: use FModel to reconstruct .uasset (step‑by‑step)

Why FModel? Community reports and how‑tos show FModel successfully loads a .utoc/.ucas pair and exports fully reconstructed .uasset + .uexp files (the exact action UnrealPak doesn’t perform for IoStore). See community instructions and confirmations at https://forums.unrealengine.com/t/how-to-extract-ucas-and-utoc-io-store-container-files-in-unreal-engine-5/1359694 and https://gbatemp.net/threads/how-to-unpack-pack-utoc-ucas-in-unreal-engine-4-5-games. Follow these steps:

  1. Locate the full container pair(s)
  • Make sure you have the matching .ucas file(s) alongside UntildawnTH_P.utoc (IoStore often splits content across multiple .ucas chunks).
  • Copy the .utoc and all associated .ucas files to a local working folder to avoid permission/path issues.
  1. Get and run FModel
  • Download and run FModel (the community thread above points to FModel as the extractor used by many). Open the tool and point it at the folder or open the .utoc file directly; it will index the container and locate assets.
  1. Find the localization assets
  • Browse the container tree to the localization path you care about (or search by keywords like “Localization”, string tables, or the asset names you saw as .uexp/.uheader).
  • WwiseAudio references typically appear under audio/wwise folders — those are references and may require extra handling (see below).
  1. Export package(s) as .uasset
  • Right‑click a file or folder and choose “Export Raw Data (.uasset)” or “Export Folder Packages Raw Data (.uasset)” (this is the explicit export option community posts recommend).
  • FModel will reconstruct and write the .uasset (and the .uexp) into your chosen export folder.
  1. Open / edit in Unreal Editor
  • To view or edit localization assets, create a temporary UE5.3 project, copy the exported asset folder into its Content folder, then open the Editor — the assets should appear (you may need to fix up redirectors or re-save assets).
  • For localization strings, exporting to CSV or using the Editor’s localization tools may be easier once the .uasset is available.

Troubleshooting notes during export:


Practical checks and a corrected UnrealPak attempt

If you still want to use UnrealPak for what it can do, check these items first:

  • Confirm the container pair exists: in Windows Explorer or with a quick dir list make sure UntildawnTH_P.utoc and the matching UntildawnTH_P.ucas (and any other .ucas part) are present and readable.
  • Ensure you have sufficient disk space and run the tool as an elevated user if permissions block access.
  • Try adding the platform flag if the archive is platform‑specific (some users reported that adding a platform flag helps UnrealPak read the container): e.g.
"C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\Win64\UnrealPak.exe" "C:... \UntildawnTH_P.utoc" -Extract "C:\Users\Roman\Desktop\ThaiExtracted" -platform=Windows

(Note: this may still only yield .uexp/.uheader; UnrealPak isn’t guaranteed to reconstruct .uasset headers for IoStore.)

  • If UnrealPak returns errors mentioning signatures or invalid pak/containers, the archive may be signature‑protected or encrypted (see signature section below).

Bottom line: UnrealPak can extract the raw pieces; to rebuild .uasset you want an IoStore parser (FModel) rather than relying on UnrealPak to reconstruct headers.


WwiseAudio, localization assets and special cases

WwiseAudio references and localization often complicate extraction:

  • Wwise references inside .uasset are usually only pointers to external audio banks (.bnk) or engine plugins. Exporting the .uasset will give you the asset that references those banks, but the actual audio may be in separate files or encoded formats (Bink, Wwise, etc.). FModel can export the .uasset metadata, but DEDICATED audio extraction sometimes needs UModel or specialized audio tools. See the gamedev thread for audio caveats: https://gamedev.stackexchange.com/questions/207761/how-to-extract-ucas-and-utoc-io-store-container-files-in-unreal-engine-5.
  • Localization: many games store text in StringTable, DataTable or localization assets (.locres). After exporting .uasset, use the Editor to open and edit string tables; if you only need the string text you can often export strings to CSV from the Editor or use community export tools.
  • If you plan to edit and repackage localization only, you’ll often:
  1. Extract .uasset/.uexp with FModel.
  2. Import those assets into a UE5.3 project.
  3. Edit the strings in the Editor.
  4. Repack as a mod (see alternatives and repacking below).

If you hit audio formats that FModel won’t export, look at UModel or other audio extraction utilities as a follow‑up.


Alternatives, packers and signature issues

  • Pack-only tools: some community tools (for example UnrealReZen) are for packing/creating IoStore archives rather than extraction; they’re not a replacement for FModel when you need to extract or reconstruct .uasset: https://github.com/rm-NoobInCoding/UnrealReZen.
  • ZenTools / community extractors: community documentation and tools (ZenTools, IoStore extractors) are referenced by modders for special cases — see this development note that mentions ZenTools in extraction workflows: https://github.com/satisfactorymodding/Documentation/blob/master/modules/ROOT/pages/Development/ExtractGameFiles.adoc.
  • Signature/verification restrictions: some games enforce IoStore signature checks. In those cases, even correctly reconstructed assets might not load as mods without a signature bypass or hook; there are community patches for specific games (examples listed on Nexus Mods), but those carry legal and compatibility risks — read them carefully and only use tools/patterns allowed by the game’s modding policy: https://www.nexusmods.com/callistoprotocol/mods/14 and https://www.nexusmods.com/site/mods/1416.
  • If you plan to repack your edited localization into a working mod, note that you’ll need to recreate IoStore containers correctly or follow the game’s mod loader process — many modders pack mods into a format the game will accept (which may require signature bypass if the game checks archives).

Sources


Conclusion

UnrealPak on its own often won’t produce full .uasset packages from UE5 IoStore (.utoc/.ucas); what you saw — only .uexp and .uheader — is expected behavior for IoStore containers. The fastest, most reliable path to extract and edit localization from UntildawnTH_P.utoc is to use an IoStore-aware extractor (community standard: FModel) to load the .utoc + matching .ucas and export reconstructed .uasset files, then open them in a UE5.3 project for editing. Check that all .ucas chunks are present, watch for signature/encryption (which blocks loading), and increase virtual memory if exports fail. If you want, paste a directory listing of your Paks~mods folder (the .utoc/.ucas filenames) and I’ll point out the exact pairs and a tailored extraction sequence.

Authors
Verified by moderation
Moderation
Extract .utoc to .uasset in UE5: FModel & UnrealPak Fix