A Rust library designed to work with the classic game Warhammer: Dark Omen. It provides developers with tools to read, manipulate, and write game data, enabling the creation of mods, custom levels, and analysis tools.
The following table shows the game file support in this library:
| Kind | File extension(s) | Read | Write | Notes |
|---|---|---|---|---|
| 3D models | .M3D, .M3X | ✅ | ✅ | |
| Army and save games | .ARM, .AUD, .ARE, .xxx | ✅ | ✅ | |
| Battle tabletops | .BTB | ✅ | ✅ | |
| CTL | .CTL | ❌ | ❌ | |
| Cursors | .ANI, .CUR | ✅ | ❌ | 📦 Read support available for Bevy apps through bevy_cursor_kit crate |
| Fonts | .FNT | ❌ | ❌ | |
| Gameflows | .DOT | ✅ | ✅ | |
| Lights | .LIT | ✅ | ✅ | |
| Movies | .TGQ | ❌ | ❌ | |
| Particle effects | .PLB, .H | ❌ | ❌ | |
| Portrait heads | HEADS.DB | ✅ | ✅ | |
| Portrait keyframes | .KEY | ✅ | ✅ | |
| Portrait sequences | .SEQ | ✅ | ✅ | |
| Projects | .PRJ | ✅ | ✅ | |
| Shadows | .SHD | ✅ | ✅ | |
| Sound effects | .H | ✅ | ❌ | |
| Sound mono audio | .MAD | ✅ | ✅ | |
| Sound scripts | .FSM | ✅ | ✅ | |
| Sound stereo audio | .SAD | ✅ | ✅ | |
| Sprite sheets | .SPR | ✅ | ❌ |
- Install the Rust toolchain, which also installs
cargo, by following the Install Rust guide - Run
cargo add darkomen
darkomen supports Bevy Reflection
through the bevy_reflect feature. To enable it, add the following line to
your Cargo.toml:
darkomen = { version = "0.4.0", features = ["bevy_reflect"] }Example setting the --editor flag on Windows to open the file in Visual Studio
Code and wait for it to close before exiting the command:
darkomen army edit DARKOMEN/GAMEDATA/1PARM/PLYR_ALL.ARM --editor "cmd /C code --wait"Note
This library does not ship with any game assets. You must have a copy of the game to get the most from this library.
Note
This library is not developed by or endorsed by Games Workshop or Electronic Arts.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.