A set of modding tools for the newest generation of the Bitsquid game engine that powers the game Warhammer 40.000: Darktide.
Find a file
Lucas Schwiderski 036c20bd8c
feat(lib): Implement IdString type
This type is similar to an `Either` between a `Murmur64` hash and a
`String`. This is necessary to be able to retain hash information where
the hash is not in the dictionary, but at the same time allow string
names where they are available.

Up until now, when reading a bundle, all hashes would be converted to
strings, which made sense for displaying those names. But when writing
the same bundle back, those strings ended up being re-hashed, resulting
in incorrect hashes.
2023-02-17 22:51:46 +01:00
crates feat(lib): Implement IdString type 2023-02-17 22:51:46 +01:00
lib feat(lib): Implement IdString type 2023-02-17 22:51:46 +01:00
.fdignore feat: Implement directly loading Oodle library 2022-11-13 23:23:00 +01:00
.gitignore feat: Implement bundle writing and file injecting 2022-11-16 09:36:46 +01:00
.gitmodules chore: Turn project structure into workspace 2022-11-18 10:44:01 +01:00
Cargo.lock feat(dtmt): Add command to print the dictionary 2023-02-17 22:51:46 +01:00
Cargo.toml chore: Turn project structure into workspace 2022-11-18 10:44:01 +01:00
CHANGELOG.adoc feat: Implement command to create mod project from template 2023-01-07 21:53:56 +01:00
LICENSE chore: Initialize project 2022-11-01 12:10:05 +01:00
README.adoc doc: Improve README wording 2023-01-01 23:47:53 +01:00
rust-toolchain.toml chore: Initialize project 2022-11-01 12:10:05 +01:00
rustfmt.toml feat: Implement bundle decompression 2022-11-01 17:35:47 +01:00

Darktide Mod Tools

A set of tools to develop mods for the newest generation of the Bitsquid game engine that powers the game Warhammer 40.000: Darktide.

Quickstart

  1. Download the latest release for your platform.

  2. Place the binary for your system and dictionary.csv next to each other.

  3. Open a command prompt, navigate to the downloaded binary and run dtmt.exe help.

  4. Use the help command (it works for subcommands, too) and the CLI Reference.

Runtime dependencies

The LuaJit decompiler (short "ljd") is used to decompile Lua files. A version tailored specifically to Bitsquid may be found here: https://github.com/Aussiemon/ljd.

A custom executable location may be passed via the --ljd flag during extraction, otherwise decompilation expects ljd to be found via the PATH environmental variable.

Building

  1. Install Rust from rust-lang.org or via the preferred means for your system.

  2. Download or clone this source code. Make sure to include the submodules in lib/.

  3. Run cargo build.