A cross-platform .scs extractor for both HashFS and ZIP archives. Supports raw dumps, partial extraction, and extracting all .scs files at once.
HashFS v2, introduced with game version 1.50, is supported.
A self-contained binary for Windows is available on the Releases page. On other platforms, install the .NET 8 SDK and run the following:
git clone https://github.com/sk-zk/Extractor.git
cd Extractor
dotnet publish -c Release
extractor path... [options]
Short | Long | Descripton |
-a |
--all |
Extract all .scs archives in the specified directory. |
-d |
--dest |
Sets the output directory. Defaults to ./extracted . |
-p |
--partial |
Limits extraction to the comma-separated list of files and/or directories specified. Examples:-p=/locale -p=/def,/map -p=/def/world/road.sii |
-P |
--paths |
Same as --partial , but expects a text file containing paths to extract, separated by
newlines. |
-s |
--skip-existing |
Don't overwrite existing files. |
-? , -h |
--help |
Prints the extractor's version and usage information. |
Short | Long | Descripton |
--list |
Lists entries and exits. | |
-r |
--raw |
Directly dumps the contained files with their hashed filenames rather than traversing the archive's directory tree. |
--salt |
Ignores the salt specified the archive header and uses the given one instead. | |
--table-at-end |
[v1 only] Ignores what the archive header says and reads the entry table from the end of the file. | |
--tree |
Prints the directory tree and exits. Can be combined with --partial , --paths , and --all . |
Normal extraction:
extractor "path\to\file.scs"
Extract two .scs files at once:
extractor "path\to\file1.scs" "path\to\file2.scs"
Extract all .scs files in a directory:
extractor "path\to\directory" -a
Extract def
and manifest.sii
only:
extractor "path\to\file.scs" -p=/def,/manifest.sii
Extract map
only for all .scs files in a directory:
extractor "path\to\directory" -a -p=/map
Extract locale.scs
:
extractor "path\to\locale.scs" -p=/locale