# 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_` 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.... :)