75 lines
2.7 KiB
Markdown
75 lines
2.7 KiB
Markdown
# VoxCaster
|
|
|
|
A [Darktide](https://www.playdarktide.com/) mod (requires the
|
|
[Darktide Mod Framework](https://www.nexusmods.com/warhammer40kdarktide/mods/19))
|
|
that lets you put **any** of your character's on-demand voice lines on the
|
|
communication wheel or on a keybind.
|
|
|
|
98 lines, in five groups:
|
|
|
|
| Group | What | Examples |
|
|
|---|---|---|
|
|
| Com wheel | The vanilla wheel lines + the two the wheel never shows | Yes, No, Thanks, *My Pleasure*, *Take This* |
|
|
| Item | Every item-tag callout | Ammo, Medipack, Stimms, Grimoire, Vacuum Capsule |
|
|
| Enemy | Every enemy-tag callout | Scab Gunner, Trapper, Crusher, Daemonhost (sleeping/awake) |
|
|
| Ability | Class ability lines | **Hive Scum - Missile Launcher**, Voice of Command, Bull Rush, Chorus |
|
|
| Blitz | Grenade / throw lines | Krak, Big Rock, Grenade Box, Tox, Flash |
|
|
|
|
Com wheel, item and enemy lines work on every character. **Ability and blitz
|
|
lines only play on the class/personality that owns them** (the game's dialogue
|
|
rules check your voice profile), and some require enemies nearby.
|
|
|
|
## Install
|
|
|
|
Copy the `VoxCaster/` folder into `Warhammer 40,000 DARKTIDE/mods/` and add
|
|
`VoxCaster` to `mod_load_order.txt`.
|
|
|
|
## Configure
|
|
|
|
Mod Options → VoxCaster:
|
|
|
|
- Eight dropdowns, one per wheel slot. Anything you pick replaces the vanilla
|
|
entry in that slot.
|
|
- Five keybind groups. Bind any line to any key.
|
|
|
|
## Keeping it up to date
|
|
|
|
Fatshark adds classes and lines over time. This repo tracks the
|
|
[decompiled game source](https://github.com/Aussiemon/Darktide-Source-Code) so
|
|
new lines can be added the moment they show up there.
|
|
|
|
```
|
|
python3 tools/check_upstream.py
|
|
```
|
|
|
|
verifies every trigger in the mod still exists in the game and lists any new
|
|
ones the mod doesn't expose yet. A GitHub Action runs it every Monday and opens
|
|
an issue when something changes. To add a line:
|
|
|
|
1. Add one entry to `VoxCaster_commands.lua` (`com`, `item`, `enemy`,
|
|
`ability` or `blitz`) with the next free id.
|
|
2. Add the matching `option_<key>` string to `VoxCaster_localization.lua`.
|
|
3. Re-run the checker until it says `Up to date.`
|
|
|
|
## How it works
|
|
|
|
Each command is a `(concept, trigger)` pair fed to the same `Vo.*` call the
|
|
game itself uses:
|
|
|
|
| Group | Call |
|
|
|---|---|
|
|
| Com wheel / item / enemy | `Vo.on_demand_vo_event(unit, concept, trigger)` |
|
|
| Ability | `Vo.play_combat_ability_event(unit, vo_tag)` |
|
|
| Blitz | `Vo.throwing_item_event(unit, projectile_template)` |
|
|
|
|
Enemy callouts pass the breed name as the tag with no target unit, which the
|
|
game accepts. `Vo.on_demand_vo_event` is hooked so ability/blitz entries on the
|
|
wheel are routed to the right call.
|
|
|
|
Originally based on the "For the Vacuum Capsule" mod.
|
|
|
|
## Rename
|
|
|
|
`tools/rename.sh NewName` renames the folder, files and every reference.
|
|
This is important for......well.... :)
|