I'm not committing to maintaining or updating the google sheet, as I expect more changes to come (likely for the better). I still recommend reviewing the actual code in `./tacspeak/grammar/_readyornot.py` as the best source of truth, but the google sheet can be a useful and potentially easier starting point, even if it's an imperfect one.
Tacspeak v0.2.0 has been released, including an EXPERIMENTAL model trained on Ready or Not commands, and important changes to user_settings.py.
The EXPERIMENTAL model may work better or worse than the base model for your particular setup + voice. I'm releasing it in the hope of some users sharing the results of their testing, by posting test results to this GitHub issue. I'd suggest only using the EXPERIMENTAL model if you're willing to testing both models, otherwise stick with the base model. You can use either the original base model (0.1) or the new EXPERIMENTAL model (0.2) with Tacspeak v0.2.
You may need to adjust the settings in user_settings.py to get it right for you, particularly "USE_NOISE_SINK", though it's equally valid advice for every other setting.
Great mod, but i have some issues. it works perfect with default keybindings but when i change to what i normaly play, it doesnt work. im happy you have linked that https://dragonfly.readthedocs.io/en/latest/actions.html#mouse-specification-format but it doesnt work when i make changes,I want to select red when I scroll up, blue when I scroll down and press gold now it looks like this: "gold": "middle", "blue": "wheeldown", "red": "wheelup", "cmd_default": "y", "cmd_menu": "four",
It always give me the error, and it always give the action hold/resume
on_recognition (INFO): KaldiRule(10, ReadyOrNot::GroundOptions) | red team move over there on_recognition (INFO): KaldiRule(10, ReadyOrNot::GroundOptions) | red team move over there red team go move action.exec (ERROR): Execution failed: Keyboard interface cannot type this character: 'wheelup' (in 'wheelup:down/3.3, wheelup:up') action.exec (ERROR): Execution failed: ['wheelup:down/3.3, wheelup:up']+['four:down/3.3, four:up']+['1:down/3.3, 1:up']
i can't believe i say that but i even asked chatgpt^^ and it told me to do it like this: mouse_wheel_down, mouse_down, wheel_down. and some other things but nothing worked. maybe someone can help me i never did somesthing like this before^^
It would be very helpful if every command was written in new file like commands.json Example: 1. red team stack up 2. blue team move and clear 3. red team open and clear
I know that there is a docs with commands (https://docs.google.com/spreadsheets/d/1jpuR8JHmh0LOOcUQ7JMMzDOmSYYe2uMpy63X238ZySs/edit?usp=sharing), but it says that it is “imperfect, outdated, not maintained, but maybe useful”
Longer version: As an easier starting point for figuring out what commands are available:
the google sheet is available,
there's video demos, and
most of the commands follow a similar pattern to the games voice lines
, however, the single source of truth on what commands are available, is what's defined in your local version of ./tacspeak/grammar/_readyornot.py . If you're interested in customising the commands, you're better off reading the _readyornot.py file. Once you can connect the dots between what the default commands are and what's written in the code (see also the dragonfly docs for guidance), it means you can customise it to how you want, and be able to create and/or understand any other Tacspeak (or dragonfly) grammar module without needing explicit documentation.
That said, there is a way to dump out the active commands specs; in ./tacspeak/user_settings.py set: DEBUG_MODE = True DEBUG_HEAVY_DUMP_GRAMMAR = True , run Tacspeak, then look in the newly created file .debug_grammar_readyornot.txt. If you can understand the commands in this format, it's not a big leap to understanding the code.
Edit: You can also generate a simpler (less comprehensive) version of .debug_grammar_readyornot.txt with: DEBUG_MODE = True DEBUG_HEAVY_DUMP_GRAMMAR = False
**Held Orders** * Command: `[Color] team execute [that held order]` * Options/Notes: None
**Held Orders** * Command: `[Color] team cancel [that held order]` * Options/Notes: None
**Door Interaction** * Command: `[Color] team [Hold] <Door Action> [the door]` * Options/Notes: Door Action: `Mirror`, `Wand`, `Disarm`, `Wedge`, `Cover`, `Open`, `Close`, `Slide`, `Pie`, `Peek`. Add `"trapped"` before `"door"` for trapped doors. Hold: `"on my (mark | order | command)"`
**Remove Wedge** * Command: `[Color] team [Hold] remove [the] wedge [from [the] door]` * Options/Notes: Hold: `"on my (mark | order | command)"`. Add `"trapped"` before `"door"` for trapped doors.
**Wedge It** * Command: `[Color] team [Hold] (wedge | block) it [the] door` * Options/Notes: Hold: `"on my (mark | order | command)"`. Add `"trapped"` before `"door"` for trapped doors.
**Use The Wand** * Command: `[Color] team [Hold] use the (mirror | wand) [on] [the door]` * Options/Notes: Hold: `"on my (mark | order | command)"`. Add `"trapped"` before `"door"` for trapped doors.
**Stack Up** * Command: `[Color] team [Hold] stack <Side> [on the door]` * Options/Notes: Side: `Split`, `Left`, `Right`, `Auto`. Hold: `"on my (mark | order | command)"`
**Breach & Clear** * Command: `[Color] team [Hold] [Tool] [the door] <Grenade> breach and clear` OR `[Color] team [Hold] [Tool] [the door] breach and clear <Grenade>` * Options/Notes: Tool: `Open`, `Kick`, `Shotgun`, `C Two`, `Ram`, `Leader`. Grenade: `Flashbang`, `Stinger`, `Gas`, `Launcher`. Hold: `"on my (mark | order | command)"`. The `<Grenade>` term also supports `"None"` (no grenade).
**Ground Commands** * Command: `[Color] team [Hold] <Ground Action>` * Options/Notes: Ground Action: `Move`, `Cover`, `Halt`, `Resume`, `Search`. Hold: `"on my (mark | order | command)"`. Requires a ground target.
**Fall In** * Command: `[Color] team [Hold] (fall in | regroup | form up) [on me] [Formation]` * Options/Notes: Formation: `Single File`, `Double File`, `Diamond`, `Wedge`.
**Deployable** * Command: `[Color] team [Hold] deploy <Deployable>` * Options/Notes: Deployable: `Flashbang`, `Stinger`, `Gas`, `Chemlight`, `Shield`. Hold: `"on my (mark | order | command)"`. Requires a ground target.
**Interact (Direct)** * Command: `you <Player Action>` * Options/Notes: Player Action: `Move Here`, `Move To My Position`, `Stop`, `Turn Around`, `Move to Exit`. Requires looking at a target.
**Restrain NPC** * Command: `[Color] team restrain [the] target` * Options/Notes: Requires looking at an NPC target.
**Subdue/Use on NPC** * Command: `[Color] team <Action> [the] target` * Options/Notes: Action: `Taser`, `Pepper Spray`, `Pepper Ball`, `Bean Bag`, `Melee`, `Subdue target [(use | with)] [Action]`, `Make target compliant [(use | with)] [Action]`. Requires looking at an NPC target.
**Alpha/Bravo/Etc** * Command: `Alpha`, `Bravo`, `Charlie`, `Delta` * Options/Notes: Requires alpha/bravo etc to be setup in-game keybinding for alpha-delta in-game.
This is the best mod for Ready or Not IMO. If you want another video to show, I've done a cinematic showcase while using Tacspeak here: https://youtu.be/zDwnANwPaeo?si=GH5Fd7wgVraJd2bq
Sorry, on the latest version of RoN and getting "Dragonfly" and no commands are being recived, no good block it says, never reconnects... "2025-01-13 02:55:51,501 engine (WARNING): <dragonfly.engines.backend_kaldi.audio.VADAudio object at 0x0000020CEDC7D790>: no good block received recently, so reconnecting audio"
I was wondering if you may be able to assist or if anyone can assist. I have the mod running and working as intended but I use Voicemeeter Potato, VM Output for Default device and VM Aux Output for default Comms in system settings. Then I have voicemod that I use as my input for voicemeeter so I can use the voicemod voice changer.
I can get the mod working if I change my system directly to my microphone, but I was wondering if there is a way to change the mod to recognize my defaults when I use Voicemeeter.
Experimental 0.2 version does not work on current update for Ready Or Not. Tried every fix and messed with necessary settings but no dice. Guessing it's going to be best to just stick to the older version until all the bugs are worked out. No matter what is tweaked with it will not pick up voice inputs from headset mic regardless of toggle or no toggle settings.
287 comments
I'm not committing to maintaining or updating the google sheet, as I expect more changes to come (likely for the better).
I still recommend reviewing the actual code in `./tacspeak/grammar/_readyornot.py` as the best source of truth, but the google sheet can be a useful and potentially easier starting point, even if it's an imperfect one.
The EXPERIMENTAL model may work better or worse than the base model for your particular setup + voice. I'm releasing it in the hope of some users sharing the results of their testing, by posting test results to this GitHub issue.
I'd suggest only using the EXPERIMENTAL model if you're willing to testing both models, otherwise stick with the base model.
You can use either the original base model (0.1) or the new EXPERIMENTAL model (0.2) with Tacspeak v0.2.
You may need to adjust the settings in user_settings.py to get it right for you, particularly "USE_NOISE_SINK", though it's equally valid advice for every other setting.
More details in this article or release notes on GitHub, + YouTube video. A lot of key info is in the YouTube video.
im happy you have linked that https://dragonfly.readthedocs.io/en/latest/actions.html#mouse-specification-format
but it doesnt work when i make changes,I want to select red when I scroll up, blue when I scroll down and press gold
now it looks like this:
"gold": "middle",
"blue": "wheeldown",
"red": "wheelup",
"cmd_default": "y",
"cmd_menu": "four",
It always give me the error, and it always give the action hold/resume
on_recognition (INFO): KaldiRule(10, ReadyOrNot::GroundOptions) | red team move over there
on_recognition (INFO): KaldiRule(10, ReadyOrNot::GroundOptions) | red team move over there
red team go move
action.exec (ERROR): Execution failed: Keyboard interface cannot type this character: 'wheelup' (in 'wheelup:down/3.3, wheelup:up')
action.exec (ERROR): Execution failed: ['wheelup:down/3.3, wheelup:up']+['four:down/3.3, four:up']+['1:down/3.3, 1:up']
i can't believe i say that but i even asked chatgpt^^ and it told me to do it like this: mouse_wheel_down, mouse_down, wheel_down. and some other things but nothing worked. maybe someone can help me i never did somesthing like this before^^
Example:
1. red team stack up
2. blue team move and clear
3. red team open and clear
I know that there is a docs with commands (https://docs.google.com/spreadsheets/d/1jpuR8JHmh0LOOcUQ7JMMzDOmSYYe2uMpy63X238ZySs/edit?usp=sharing), but it says that it is “imperfect, outdated, not maintained, but maybe useful”
Longer version:
As an easier starting point for figuring out what commands are available:
, however, the single source of truth on what commands are available, is what's defined in your local version of ./tacspeak/grammar/_readyornot.py .
If you're interested in customising the commands, you're better off reading the _readyornot.py file. Once you can connect the dots between what the default commands are and what's written in the code (see also the dragonfly docs for guidance), it means you can customise it to how you want, and be able to create and/or understand any other Tacspeak (or dragonfly) grammar module without needing explicit documentation.
That said, there is a way to dump out the active commands specs; in ./tacspeak/user_settings.py set:
DEBUG_MODE = True
, run Tacspeak, then look in the newly created file .debug_grammar_readyornot.txt.DEBUG_HEAVY_DUMP_GRAMMAR = True
If you can understand the commands in this format, it's not a big leap to understanding the code.
Edit: You can also generate a simpler (less comprehensive) version of .debug_grammar_readyornot.txt with:
DEBUG_MODE = True
DEBUG_HEAVY_DUMP_GRAMMAR = False
* Command: `[Color] team`
* Options/Notes: Color: `Blue`, `Red`, `Gold`
**Team Selection**
* Command: `[Color]`
* Options/Notes: Color: `Blue`, `Red`, `Gold`
**Held Orders**
* Command: `[Color] team execute [that held order]`
* Options/Notes: None
**Held Orders**
* Command: `[Color] team cancel [that held order]`
* Options/Notes: None
**Door Interaction**
* Command: `[Color] team [Hold] <Door Action> [the door]`
* Options/Notes: Door Action: `Mirror`, `Wand`, `Disarm`, `Wedge`, `Cover`, `Open`, `Close`, `Slide`, `Pie`, `Peek`. Add `"trapped"` before `"door"` for trapped doors. Hold: `"on my (mark | order | command)"`
**Remove Wedge**
* Command: `[Color] team [Hold] remove [the] wedge [from [the] door]`
* Options/Notes: Hold: `"on my (mark | order | command)"`. Add `"trapped"` before `"door"` for trapped doors.
**Wedge It**
* Command: `[Color] team [Hold] (wedge | block) it [the] door`
* Options/Notes: Hold: `"on my (mark | order | command)"`. Add `"trapped"` before `"door"` for trapped doors.
**Use The Wand**
* Command: `[Color] team [Hold] use the (mirror | wand) [on] [the door]`
* Options/Notes: Hold: `"on my (mark | order | command)"`. Add `"trapped"` before `"door"` for trapped doors.
**Stack Up**
* Command: `[Color] team [Hold] stack <Side> [on the door]`
* Options/Notes: Side: `Split`, `Left`, `Right`, `Auto`. Hold: `"on my (mark | order | command)"`
**Breach & Clear**
* Command: `[Color] team [Hold] [Tool] [the door] <Grenade> breach and clear` OR `[Color] team [Hold] [Tool] [the door] breach and clear <Grenade>`
* Options/Notes: Tool: `Open`, `Kick`, `Shotgun`, `C Two`, `Ram`, `Leader`. Grenade: `Flashbang`, `Stinger`, `Gas`, `Launcher`. Hold: `"on my (mark | order | command)"`. The `<Grenade>` term also supports `"None"` (no grenade).
**Pick Lock**
* Command: `[Color] team [Hold] pick [the door]`
* Options/Notes: None
**Ground Commands**
* Command: `[Color] team [Hold] <Ground Action>`
* Options/Notes: Ground Action: `Move`, `Cover`, `Halt`, `Resume`, `Search`. Hold: `"on my (mark | order | command)"`. Requires a ground target.
**Fall In**
* Command: `[Color] team [Hold] (fall in | regroup | form up) [on me] [Formation]`
* Options/Notes: Formation: `Single File`, `Double File`, `Diamond`, `Wedge`.
**Deployable**
* Command: `[Color] team [Hold] deploy <Deployable>`
* Options/Notes: Deployable: `Flashbang`, `Stinger`, `Gas`, `Chemlight`, `Shield`. Hold: `"on my (mark | order | command)"`. Requires a ground target.
**Interact (Direct)**
* Command: `you <Player Action>`
* Options/Notes: Player Action: `Move Here`, `Move To My Position`, `Stop`, `Turn Around`, `Move to Exit`. Requires looking at a target.
**Restrain NPC**
* Command: `[Color] team restrain [the] target`
* Options/Notes: Requires looking at an NPC target.
**Subdue/Use on NPC**
* Command: `[Color] team <Action> [the] target`
* Options/Notes: Action: `Taser`, `Pepper Spray`, `Pepper Ball`, `Bean Bag`, `Melee`, `Subdue target [(use | with)] [Action]`, `Make target compliant [(use | with)] [Action]`. Requires looking at an NPC target.
**Alpha/Bravo/Etc**
* Command: `Alpha`, `Bravo`, `Charlie`, `Delta`
* Options/Notes: Requires alpha/bravo etc to be setup in-game keybinding for alpha-delta in-game.
**Yell**
* Command: `Freeze`, `Hands`, `Drop`, `Drop it`, `Police`
* Options/Notes: Triggers the "yell" action in-game.
But is there any way to make a ukraine(or russian)-language version?
https://youtu.be/zDwnANwPaeo?si=GH5Fd7wgVraJd2bq
Awesome mod.
"2025-01-13 02:55:51,501 engine (WARNING): <dragonfly.engines.backend_kaldi.audio.VADAudio object at 0x0000020CEDC7D790>: no good block received recently, so reconnecting audio"
I can get the mod working if I change my system directly to my microphone, but I was wondering if there is a way to change the mod to recognize my defaults when I use Voicemeeter.