The extractor is used to extract the data from Songs of Conquest to the JSON files in lib/collections
.
It's required to have Songs of Conquest installed on your computer. This guide is for the Steam version, but should work for other versions too.
Next, you need to install AssetRipper, which is a tool to extract the game data. The latest tested version is v0.2.0.3.
After you extracted the ZIP file, please run AssetRipper.exe
.
Now, open the game folder like C:\Program Files (x86)\Steam\steamapps\common\SongsOfConquest\SongsOfConquest_Data
.
Even if we are interested in some of the files, we will export everything. Click on Export all Files
and select the folder of this README.md file target (extractor
).
Exporting these files will take a while and a new folder called SongsOfConquest
will be created.
You can call it by running AssetRipperConsole.exe
with the path to the game folder and output directory. The output directory should be the same as this README.md file.
AssetRipperConsole.exe "C:\Program Files (x86)\Steam\steamapps\common\SongsOfConquest\SongsOfConquest_Data" --output "__PATH_TO__\soc.gg\extractor"
After the export is done, we can start parsing the data.
First, install dependencies with npm install
. Node v16 is required.
There are three scripts:
cache.mjs
: This script prepares a list of all the files based on their GUID. This is used to increase the execution time of the following scripts. We only need to run this if a new version of Songs of Conquest is released and we run AssetRipper again. The result of this script is a file calledout/cache.json
. Usenpm run cache
to run this script.seed.mjs
: This script is generating thetermMap.json
and parses all manifest files of the game, which includes factions, skills, sprites and more. The results are stored inout
folder as JSON files. Usenpm run seed
to run this script. It will take a while, so grab a cup of coffee ☕.convert.mjs
: The JSON files from theseed.mjs
script have much more information than we need. This script converts the data to a more usable format and copies these files tolib/collections
. In addition, it required image/spritesheet files are copied topublic
. Usenpm run convert
to run this script.
You can call npm start
if you want to run all scripts at once.