-
-
Notifications
You must be signed in to change notification settings - Fork 26
CLI
Decima Workshop comes with a built-in command-line interface.
To use it, you need to open the terminal application in the root directory and type the following command to get started:
decima-cli.exe --help./bin/decima --helpThis will show the list of available commands. All following examples will assume the usage of Windows.
| Name (click for usage) | Description |
|---|---|
paths |
Dumps all valid file paths |
entry-points |
Dumps all script entry point names and checksums |
file-references |
Dumps all file references |
localization |
Useful for localization commands |
repack |
Adds or overwrites files in archives |
get-oodle |
Downloads Oodle compression library |
For use with the CLI, you can obtain a project in two ways:
- Create a new project following the instructions here, then open its configuration again and grab its identifier from the UUID field.
- Supply the path to the game's directory, for example:
C:\Program Files (x86)\Steam\steamapps\common\Horizon Zero DawnE:\SteamLibrary\steamapps\common\DEATH STRANDING DIRECTORS CUT
Then you can specify the project using the -p/--project option in most commands:
decima-cli.exe ... --project "C:\Program Files (x86)\Steam\steamapps\common\Horizon Zero Dawn"
decima-cli.exe ... --project "64e3402d-132d-48ea-ad2b-b7951ca8a754"decima-cli.exe repack [options] <path to archive to repack> <path to files to add>| Names | Default | Description |
|---|---|---|
-p or --project
|
The working project | |
-b or --backup
|
false |
Create a backup of the destination archive if exists |
-e or --encrypt
|
false |
Encrypt the archive (supported by Death Stranding only) |
-t or --truncate
|
false |
Truncate the archive |
-l or --level
|
FAST |
Compression level |
--rebuild-prefetch |
true |
Rebuild prefetch data. Must be used when files have changed in size; otherwise, the game won't start |
--changed-files-only |
true |
Update only changed files in the prefetch. Must be used together with --rebuild-prefetch
|
Use the following command to get a complete overview of each option:
decima-cli.exe repackYou can utilize CLI's capabilities to repack archives without GUI interactions easily.
Let's say you want to repack the following files from Death Stranding:
ds/artparts/characters/sam_sam/part_sam_body_naked.coreds/artparts/characters/sam_sam/part_sam_body_private.core
You will need to prepare a folder with the hierarchical structure of files that you need to add to the archive:
<source directory>
\--ds
\--artparts
\--characters
\--sam_sam
part_sam_body_naked.core
part_sam_body_private.core
When everything is ready, you can execute the following command in the terminal:
decima-cli.exe repack --backup --project <project> path/to/archive.bin <source directory>Note
It's always recommended to repack the "patch" archive because of how the game loads resources.
-
For Death Stranding, it's
<game directory>/data/59b95a781c9170b0d13773766e27ad90.bin -
For Horizon Zero Dawn, it's
<game directory>/Packed_DX12/Patch.bin, but you can create your own archive calledPatch_YourModName.bin.
- Follow the provided instructions to access the Unreal Engine repository: https://github.com/EpicGames/Signup
- Download the following file: https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Build/Commit.gitdeps.xml
decima-cli.exe get-oodle get-oodle [options] <path to Commit.gitdeps.xml>| Names | Description | Default |
|---|---|---|
-o or --output
|
Output directory | Current working directory |
-d or --default
|
Use default choice or prompt if multiple files were found | true |
-p or --platform
|
The target platform. Valid values: WINDOWS_64, LINUX_64, DARWIN_64
|
WINDOWS_64 |
Decima Workshop will extract localization resources as a JSON file that can be edited using any text editor.
To start localizing the game, you first need to understand the workflow:
- Choose the source and target languages
- Extract the localization resources from the game
- Translate the extracted resources
- Compile the translated resources
- Pack the compiled resources back into the game
The source language is used as a reference for the localization. The target language is the language you want to edit.
Note
You can't add a new language to the game; you can only translate the existing ones.
Languages supported by Horizon Zero Dawn
ArabicChinese_SimplifiedChinese_TraditionalDanishDutchEnglishFinnishFrenchGermanItalianJapaneseKoreanLATAMPORLATAMSPNorwegianPolish-
Portugese(not a typo) RussianSpanishSwedishTurkish
Languages supported by Death Stranding
ArabicChinese_SimplifiedChinese_TraditionalCzechDanishDutchEnglishEnglish_UKFinnishFrenchGermanGreekHungarianItalianJapaneseKoreanLATAMPORLATAMSPNorwegianPolishPortugueseRussianSpanishSwedishTurkish
To extract the localization resources, use the following command:
decima localization export --project <project> --output <output file>.json --source <source language> --target <target language>To compile the localized resources, use the following command:
decima localization import --project <project> --input <output>.json --output <directory for compiled files>To pack the compiled resources back into the game, use the following command:
decima repack --backup --project <project> <target archive>.bin <directory for compiled files>The format is simple and easy to understand:
{
"source": "English",
"target": "Japanese",
"files": {
"localized/sentences/ds_lines_cutscene/sq_cs00_s00100/sentences.core": {
"3e87837d-bb1c-d746-9048-87ff70e79d1b": {
"source": "Once, there was an explosion...",
"target": "昔 爆発があった",
"voice": {
"gender": "Male",
"name": "Sam"
},
"show": "auto"
}
}
}
}Important
You must not change the top-level source and target fields. They are used to identify the source and target
languages specified during the export by the tool to merge changed lines into the game files correctly.
You are interested in objects that have a sequence of random characters as their key.
- The
sourcefield contains the original text that can be used as a reference. You should not edit this field. - The
targetfield contains the translated text. This is the field you will be editing. - The
voicefield is an optional and may not be present for every line. Contains information about the speaker and their gender. Changes don't have any effect. - The
showfield is used to control the visibility of the subtitle in the game. Valid values are: -
-
always- the subtitle will always be shown even if subtitles are turned off in the game settings
-
-
-
never- the subtitle will never be shown even if subtitles are turned on in the game settings
-
-
-
auto- the subtitle will be shown only if subtitles are turned on in the game settings
-
Note
You might want to enforce subtitles to be shown for in-game text written in a foreign language. And vice versa, hide subtitles for in-game text written in the same language.
Let's say you want to correct Death Stranding's localization of several lines in English using the Japanese localization as a reference:
decima localization export --project <project> --output localization.json --source English --target Japanese
... edit localization.json ...
decima localization import --project <project> --input localization.json --output compiled
decima repack --backup --project <project> "<game directory>/data/59b95a781c9170b0d13773766e27ad90.bin" compiled