#game #modding #darksiders

app war-cli

A viewer/editor for Darksiders saves, worlds, and scripts

3 unstable releases

0.2.0 Oct 29, 2019
0.1.1 Sep 27, 2019
0.1.0 Sep 26, 2019

#2433 in Parser implementations

AGPL-3.0

175KB
5K SLoC

war

pipeline status

A tool that lets you view/edit Darksiders save files and game assets.

Darksiders Warfinitive Edition - All your save game are belong to us!

You can download the latest version from the releases page.

How to use

You have a couple options:

  1. View the worlds/scripts online. Nothing to download, nothing to install.

  2. Run war --help for the full list of options.

  3. Continue reading below for the guided tour.

Save editing

Which edition of the game do you have?

OG

Your saves should be in a path that looks something like this:

C:\Users\<username>\Documents\My Games\Darksiders\<steam-user-id>\dsauto.dsav
  • Run war dsav decode <path-to-dsav> to decode a save from .dsav to .json.
  • The newly-created .json will have an unpacked version of your save. You can edit this file.
  • Run war dsav encode <path-to-json> to encode back to .dsav.
  • To use the new save, just quit to the main menu and choose "Load Game".
Warmastered

Your saves should be in a path that looks something like this:

C:\Program Files (x86)\Steam\userdata\<steam-user-id>\462780\remote\autocloud\save\keen_savegame_0_0.sav

The file contains all 10 save slots (including the autosave slot), but this tool only reads/writes the autosave slot.

  • Run war sav decode <path-to-sav> to decode the autosave to .json.
  • The newly-created .json will have an unpacked version of your save. You can edit this file.
  • Run war sav encode <path-to-sav> <path-to-json> to write back to the .sav. The autosave slot will be overwritten, and the other save slots will be left alone.
  • If the game is running, you'll need to exit and restart for it to read the new data. Unfortunately, this edition only reads the save file once when the game first loads.

NOTE (both editions): Darksiders will refuse to load a save if the SaveGameInfo's UserId does not match the logged-in Steam user's ID. If you want to use a save on a different account than created it, the UserId property must be changed to match.

Asset extracting

This app can extract the game's various assets to a readable format. It cannot re-pack them into the original format. These command work just as well on files from both OG and Warmastered.

Manifest

Most of the game's assets (meshes, textures, audio, etc.) are stored in resource packages (*.oppc) which are referenced by the manifest (media/pc.mnfst).

To extract these, point the tool at your game directory (either Darksiders or Darksiders Warmastered Edition).

war manifest packages unpack <path-to-Darksiders> <output-dir>

The unpacked files will take up about 17GB (for the Warmastered Edition).

Worlds

The game's worlds are stored in /path/to/Darksiders/media/worlds.mnfst. To extract them, run:

war worlds decode <path-to-worlds.mnfst> <output-dir>

See the browse readme for more info on what exactly these files are.

Scripts

The game's scripts are stored in /path/to/Darksiders/media/scripts.obsp. To extract them, run:

war obsp decode <path-to-scripts.obsp> <output-dir>

Congratulations, you did it! Now you have several thousand more files on your hard drive. 🎉

Development

Install prerequisites

Install the pre-commit hook

pre-commit install

This installs a Git hook that runs a quick sanity check before every commit.

Run the app

cargo run

Run the tests

cargo test

Dependencies

~8–17MB
~264K SLoC