VoxCaster: every on-demand Darktide voice line on the com wheel or a keybind
- 98 commands across com wheel, item, enemy, ability and blitz groups - shared command table drives wheel dropdowns, keybinds and localization - tools/check_upstream.py validates triggers against the game source dump - weekly GitHub Action opens an issue when triggers change upstream
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user