Satisfactory's Unreal archives use Oodle compression. This extractor can call Oodle through CUE4Parse, but the Oodle runtime itself is proprietary and is not included in this repository.
Do not commit Oodle DLLs or shared libraries here. .gitignore blocks common Oodle filenames such as oo2core*.dll.
Using the extractor requires a legal local copy of Satisfactory. The tool is designed to read files from the user's own installed game directory.
On Windows, use an Oodle DLL supported by CUE4Parse, usually:
oo2core_9_win64.dll
Then pass it explicitly:
dotnet run --project src\SatisfactoryIconExtractor -- `
--game-dir "C:\Program Files (x86)\Steam\steamapps\common\Satisfactory" `
--docs "C:\Program Files (x86)\Steam\steamapps\common\Satisfactory\CommunityResources\Docs\en-US.json" `
--output ".\output\game-icons" `
--oodle "C:\path\to\oo2core_9_win64.dll"The extractor also looks for oo2core*.dll under the game directory and beside the built executable, and CUE4Parse may attempt its own download path if no local DLL is provided. Passing --oodle is the most predictable option.
- Keep your local Oodle copy outside the repo, or in an ignored local folder.
- If you temporarily place it near the repo while testing, the
oo2core*.dllignore rule prevents accidental commits. - Use a source you trust. Community Unreal tooling sometimes points people to helper releases such as
https://github.com/new-world-tools/go-oodle/releases, but this repo does not redistribute or vendor those binaries. - If extraction fails with an Oodle error, rerun with
--verboseand pass an explicit--oodlepath.
Test-Path "C:\path\to\oo2core_9_win64.dll"Or search a known local folder:
Get-ChildItem "C:\Users\you\Downloads" -Filter "oo2core*.dll" -RecurseOodle is owned by RAD Game Tools / Epic Games. This project does not grant any rights to redistribute Oodle. Users are responsible for obtaining any required runtime files from sources they are allowed to use.