SydMontague / DSCSTools

Modding tools for Digimon Story: Cyber Sleuth
BSD 3-Clause "New" or "Revised" License
38 stars 9 forks source link

DSCSTools

DSCSTools are tools to extract and repack the game files for the Steam release of "Digimon Story Cyber Sleuth: Complete Edition". They should work with other releases of the game as well as potentially other games based on the same engine, with some caveats.

A library version to be linked by other tools is also available.

Current Features

Usage

The tool itself is command line only. The MBE functionality requires you to have the structures folder relative from where you're calling the tool from. Hence it's recommended to navigate to the folder containing the DSCSTools binary first.

Pherakki's SimpleDSCSModManager provides an easy to use GUI for the tools, while also serving as a general mod manager.

Do not use Microsoft Excel to modify extracted CSV files, it does not create RFC 4180 compliant CSV. Use LibreOffice/OpenOffice as an alternative.

Extract:      DSCSTools --extract <sourceFile> <targetDirectory>
File Extract: DSCSTools --extractFile <sourceFile> <targetDirectory> <fileName>
Repack:       DSCSTools --pack <sourceDirectory> <targetFile> [--disable-compression|--advanced-compression]
MBE Extract:  DSCSTools --mbeextract <source> <targetFolder>
MBE Repack:   DSCSTools --mbepack <sourceFolder> <targetFile>
AFS2 Extract: DSCSTools --afs2extract <source> <targetFolder>
AFS2 Repackk: DSCSTools --afs2pack <sourceFolder> <targetFile>
En/Decrypt:   DSCSTools --crypt <sourceFile> <targetFile>
Save Decrypt: DSCSTools --savedecrypt <sourceFile> <targetFile>
Save Encrypt: DSCSTools --saveencrypt <sourceFile> <targetFile>

MBE Structure files

In order for the MBE functions to work it needs to assume a data structure. For this a structure.json must be present in the structures folder of the tool or whereever you're calling it from. It contains simple regexPattern: structureDefinition.json associations. The tool match the currently handled file path with the patterns in the structure.json and pick the first match. You may need to maintain the folder structure of the files (most notably text and message files) for the tool to detect them properly.

The structure definition is another JSON file following this format: Currently supported field types are byte (int8), short (int16), int (int32), float, int array and string.

{
    tableName1: {
        fieldName1: fieldType1,
        fieldName2: fieldType2,
        fieldNameN: fieldTypeN
    },
    tableName2: {
        fieldName1: "string",
        fieldName2: "int",
        fieldNameN: "int"
    },
    tableNameN: {
        fieldName1: fieldType1,
        fieldName2: fieldType2,
        fieldNameN: fieldTypeN
    }
}

Library

The tool can also be used as a library by other software. You can find the shared library+documented headers in the downloads.

You can also use the library as Python module. Simply install the shared library in a place your Python program searchs for modules and you should be able to import it via import DSCSTools. Note, on Windows you'll have to rename the DSCSTools.dll to DSCSTools.pyd.

Please note, the currently prebuild binaries only work on Python 3.8. Other Python versions require the library to be recompiled.

For Python documentation head to the Wiki Entry

Build

The project uses CMake. On Windows you can use Visual Studio's CMake integration.

On *nix systems compiling should be a simple

$ git clone git@github.com:SydMontague/DSCSTools.git
$ cd <project dir>
$ cmake .
$ make install

With the binary being located in /DSCSTools/

Requirements

The tool uses:

Contact

Other DSCS Modding Projects/Tools