Skip to content
View in the app

A better way to browse. Learn more.

LCPDFR.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

AIDispatch (For Policing Redefined) 0.90.1 DEMO

(2 reviews)

5 Screenshots

AI dispatch 0.90.0 header.png

Support Development / AIDispatch 1.0 Supporter Build

This public LCPDFR release is the AIDispatch v0.90.0 ALPHA build.

If you enjoy AIDispatch and want to support continued development, you can follow the project on Patreon. Latest Builds available there.

Patreon: https://www.patreon.com/cw/Boboediting/posts

BIG SHOUTOUT to FK for helping me test my mod!.He makes some good music, go check him out: https://www.youtube.com/watch?v=h5NdHisx0uE&list=PLrm0_QrSnNRIYWixIuWLOPaqZHoZvqtRz

AIDispatch - AI Voice Dispatch for Policing Redefined

AIDispatch is an experimental AI-powered voice dispatch plugin for LSPDFR.

This mod was heavily inspired by Grammar Police. Grammar Police has been one of the most useful LSPDFR plugins for years, but for me personally it was becoming difficult to use because of accent recognition and strict phrase/keyword requirements. I wanted something that felt similar in purpose, but that could understand more natural speech instead of needing very specific commands.

AIDispatch uses AI to listen to your radio request, understand what you are trying to do, and trigger the matching Policing Redefined dispatch action.

The goal is simple:

Talk to dispatch naturally.

Instead of memorizing exact phrases, you can say things in a more normal way and the AI will try to understand the intent. For example, if you ask for medical help, backup, a plate check, a tow truck, a ped check, or say that you are going 10-8, busy, code 6, on scene, on a traffic stop, etc., AIDispatch will try to pick the correct dispatch action.

Current features include(basically everything you can do with Grammar police):

  • Natural voice dispatch requests

  • Gemini AI voice understanding

  • Policing Redefined dispatch integration

  • Plate checks

  • Ped checks

  • Vehicle checks

  • Backup requests

  • Traffic stop backup

  • K9 requests

  • EMS requests

  • Fire department requests

  • Tow requests

  • Coroner requests

  • Animal control requests

  • Traffic control requests

  • Pursuit-related requests

  • 10-code/status commands

  • Set yourself available/unavailable for LSPDFR calls

  • Code 4, code 5, code 6, 10-8, 10-6, 10-7, on scene, responding, traffic stop, transporting, etc.

  • Optional radio key-up/key-down sounds

  • Logs for testing and bug reports

This should help if the Dispatch misshears alot of your commands

Play for a while and let it miss hear you for a bit. Then once you've used most commands a few times, open your plugins folder and find AIDispatch_customphrases.text, put that file somewhere you will remember. In the same folder find AIdispatch folder, open it grab the AIdispatch.log file. Now grab both those files (AIdispatch.log and AIdispatch_customphrases.text.) and go to the AI of your choise (I use chatgpt) and ask the AI to make you a tailored AIdispatch_customphrases.txt based on your log. Replace the Customphrases file in your plugin folder with the one the AI will provide and this should help. Keep updating it every few playthrough and you should have a better experience.

This mod was also inspired by NPCAI 3.0 and the way AI can make LSPDFR feel more natural and immersive. AIDispatch is not connected to NPCAI, but NPCAI helped inspire the idea of using AI to understand what the player is saying instead of relying only on fixed keywords.

Important:

This is a public alpha/test build. Bugs are expected.

Right now AIDispatch is built around Policing Redefined. My goal for the future is to expand compatibility with other popular LSPDFR plugins, including Stop The Ped and Ultimate Backup, so players who do not use Policing Redefined can still benefit from AI-powered dispatch controls.

Requirements:

  • GTA V Legacy

  • RAGE Plugin Hook

  • LSPDFR

  • Policing Redefined installed and working

  • A Gemini API key

  • Microphone

  • Internet connection

You can get a Gemini API key here (free):
https://aistudio.google.com/api-keys

Grammar Police is not required. For testing, I recommend disabling Grammar Police so you know which plugin is responding to your voice commands.

Ped checks:

Ped checks rely on Policing Redefined. In some cases, the ped may need to be identified through Policing Redefined before PR allows a dispatch ped check.

Testing / bug reports:

AIDispatch creates a log file here:

Grand Theft Auto V Legacy\plugins\LSPDFR\AIDispatch\AIDispatch.log

If something does not work, please send the log and include:

  • What you asked dispatch to do

  • What happened

  • What you expected to happen

  • Whether Policing Redefined can do the same action manually

Your Gemini API key is redacted in the log.

This is still early, but the goal is to create a modern AI-powered voice dispatch system for LSPDFR that feels more natural, more flexible, and easier to use during patrol.

Pasted content

What’s New in AIDispatch v0.90.0 ALPHA

AIDispatch v0.90.0 ALPHA is a major gameplay update over the older v0.84.4 public release. This version focuses on making LSPDFR dispatch interaction feel more natural, more responsive, and more immersive during regular patrol, traffic stops, pursuits, and emergency situations.


130+ Custom Dispatch Audio Lines Added

AIDispatch v0.90.0 ALPHA adds over 130 custom dispatch audio lines for a more immersive police radio experience.

Custom audio is included for:

  • Status changes

  • Backup requests

  • Service requests

  • Plate returns

  • Ped returns

  • Traffic stop updates

  • Pursuit updates

  • PIT requests

  • General dispatch responses

Example commands:

  • “Dispatch, show me available.”

  • “Dispatch, can I get a plate check?”

  • “Can I get a ped check?”

  • “Dispatch, send me backup.”

  • “Suspect is on foot.”

  • “Requesting permission to PIT.”


Gemini 2.5 Flash Native Audio Dialog

AIDispatch v0.90.0 uses Gemini 2.5 Flash Native Audio Dialog for voice command recognition.

This helps AIDispatch understand natural radio-style speech instead of forcing players to use exact command wording.

Examples:

  • “Dispatch, can I get a plate check?”

  • “Can I get a play check?”

  • “Show me busy.”

  • “Show me back available.”


Improved Natural Voice Commands

AIDispatch can now understand more casual ways of saying the same command.

Examples:

  • “Can I get a plate check?”

  • “Run the plate.”

  • “Can I get a ped check on this guy?”

  • “Run this person through dispatch.”

  • “Show me available.”

  • “Show me responding.”


Controller-Friendly Gameplay

AIDispatch is designed to help controller players stay focused on driving, moving, and responding instead of constantly reaching for keyboard shortcuts or menus.

Examples:

  • “Show me responding.”

  • “Show me on scene.”

  • “Dispatch, send me backup.”

  • “Can I get EMS?”

  • “Clear on my traffic stop.”


Custom Status Audio

Status changes now include custom dispatch audio responses.

Supported status examples:

  • “Show me available.”

  • “Show me busy.”

  • “Show me responding.”

  • “Show me en route.”

  • “Show me on scene.”

  • “Show me Code 4.”

  • “Show me Code 6.”

Code 6 is treated as investigating, not the same as 10-6 / busy.


Voice Callout Acceptance

AIDispatch can help accept callouts by voice when a callout is available.

Examples:

  • “Show me responding.”

  • “I’ll take that call.”

  • “Dispatch, show me en route.”

  • “Show me responding to that call.”


Backup Requests With Multiple Units

Backup requests have been improved, including support for calling multiple units at once.

You can request up to 3 units in one command.

Examples:

  • “Dispatch, send me backup.”

  • “Send me one additional unit.”

  • “Can I get two additional units?”

  • “Dispatch, send me three units Code 3.”

  • “Send me Code 2 backup.”

  • “Send me Code 3 backup.”

AIDispatch can also handle follow-up answers during backup chains.

Examples:

  • “Yes, send one more.”

  • “Send another unit.”

  • “Negative, no backup needed.”

  • “Cancel that.”

  • “10-4, send another one.”


Service Requests

AIDispatch supports common emergency and police service requests.

Examples:

  • “Can I get EMS?”

  • “Send EMS to my location.”

  • “Requesting air support.”

  • “Can I get a tow truck?”

  • “Requesting transport.”

  • “Send me fire department.”


Plate Check Return Audio

Plate checks now have improved custom return audio support.

Examples:

  • “Dispatch, can I get a plate check?”

  • “Requesting plate check.”

  • “Can I get a play check?”

  • “Run the plate.”

Supported plate return types can include:

  • Clean vehicle return

  • Stolen vehicle return

  • Registration issue

  • Insurance issue

  • Wanted owner

  • Warrant-related vehicle owner return


Ped Check Return Audio

Ped checks now have improved custom return audio support.

Examples:

  • “Can I get a ped check?”

  • “Run this person through dispatch.”

  • “Can I get a check on this subject?”

  • “Dispatch, ped check on this guy.”

Supported ped return types can include:

  • Subject clear

  • License valid

  • Suspended license

  • Wanted subject

  • Subject has warrant


Traffic Stop Voice Support

AIDispatch can now handle traffic stop status updates by voice.

Examples:

  • “Dispatch, show me on a traffic stop.”

  • “Show me on a traffic stop, northbound.”

  • “Traffic stop, southbound.”

  • “Show me on a traffic stop, northbound Power Street.”

  • “Traffic stop with a blue sports car.”

AIDispatch can acknowledge the stop and keep traffic stop context active for clearing later.


Traffic Stop Clearing

Traffic stop clearing has improved handling.

Examples:

  • “Clear on my traffic stop.”

  • “Traffic stop is Code 4.”

  • “Show me back available.”

  • “Not on a traffic stop anymore.”

  • “Latest traffic stop is Code 4.”


Pursuit Updates

AIDispatch now supports several pursuit update commands.

Examples:

  • “Suspect is on foot.”

  • “Suspect bailed.”

  • “Suspect vehicle is disabled.”

  • “Suspect is ramming cars.”

  • “Lost visual.”

  • “Visual reacquired.”

  • “Suspect last seen northbound.”


Pursuit Direction Updates

You can give general pursuit direction updates during a chase.

Examples:

  • “Suspect heading northbound.”

  • “We’re moving eastbound.”

  • “Suspect last seen southbound.”

  • “Continuing westbound.”

  • “Suspect is heading northeast.”


PIT Request Support

AIDispatch can respond to PIT requests during pursuits.

Examples:

  • “Dispatch, permission to PIT.”

  • “Requesting permission to PIT.”

  • “Do I have permission to PIT?”

  • “Can I PIT the vehicle?”

Dispatch can approve or deny PIT depending on the pursuit situation.


High-Risk Pursuit Updates

Certain pursuit updates can trigger stronger dispatch responses.

Examples:

  • “Suspect is ramming vehicles.”

  • “Suspect struck a pedestrian.”

  • “Suspect is driving on the sidewalk.”

  • “Suspect is going the wrong way.”

  • “Suspect is driving recklessly.”


Panic / Emergency Commands

Emergency commands are supported for urgent situations.

Examples:

  • “Shots fired.”

  • “Officer needs help.”

  • “Panic button.”

  • “Send backup Code 3.”

  • “Dispatch, I need immediate backup.”


Cleaner Audio Folder Layout

AIDispatch audio is now organized into cleaner folders instead of placing every audio file directly in one scanner folder.

Audio folders include:

  • PlateReturns

  • PedReturns

  • Backup

  • Services

  • Status

  • General

  • Checks

  • TrafficStop

  • PursuitLocation


Better Dispatch Audio Timing

Plate and ped return audio timing has been adjusted so AIDispatch fits better around normal LSPDFR / Policing Redefined dispatch readouts.

This helps custom dispatch responses feel more natural during plate checks, ped checks, traffic stops, and pursuit updates.


Main Player-Facing Changes Since v0.84.4

  • 130+ custom dispatch audio lines added

  • Gemini 2.5 Flash Native Audio Dialog support

  • More natural voice command recognition

  • Controller-friendly voice workflow

  • Custom status audio

  • Code 6 / investigating support

  • Voice callout acceptance

  • Backup requests with up to 3 units at once

  • Better backup follow-up answers

  • EMS, fire, tow, transport, and air support requests

  • Custom plate return audio

  • Custom ped return audio

  • Traffic stop voice support

  • Traffic stop clear / Code 4 support

  • Pursuit update support

  • Pursuit direction updates

  • PIT request support

  • High-risk pursuit update handling

  • Panic / emergency command support

  • Cleaner AIDispatch audio folder layout

  • Better plate and ped return audio timing

Could contain: text, font, graphics, screenshot, graphic design, logo, brand, design

Edited by boboediting

What's New in Version 0.90.1 DEMO

Released

What’s New in AIDispatch v0.90.1 DEMO

UPDATE since last build

-AIDispatch_CustomPhrases.txt takes priority over gemini interpretation

this should help people who had trouble with their custom phrases in the last build.

-potential fix for people who had issues with accepting callouts.

some people said accepting callouts was an issue and this honnestly is really had to pin point a fix for all type of thing because most people had no issue with it and some people did but from what I could tell those people had all the right keybind so it's a little confusing as to why it was failing for them but working for others. This potential fix is making the accept callout logic a bit more robust so we will see.


Short Description

AI-powered voice dispatch for LSPDFR that understands natural speech and triggers Policing Redefined dispatch actions.

AI disclosure

The author has disclosed that AI tools were used in creating the following aspects of this file:

  • Description
  • Mod and Mod Content (Substantial)

I'm absolutely terrible at codding. I always use AI to troubleshoot, help me create, give me feedback and ideas on what to upload next and how to keep a pase for the future updates.

User Feedback

Recommended Comments

Jackal1T1

Members

Did this update add any status display by chance?

StiX32

Members

My english is not perfect but holy cow this ai can't understand sh*t, when i say "Dispatch" it understands "This place".

boboediting

Members Author

2 hours ago, Jackal1T1 said:

Did this update add any status display by chance?

yes the update includes Status displayed and custom voices for status change.

1 hour ago, StiX32 said:

My english is not perfect but holy cow this ai can't understand sh*t, when i say "Dispatch" it understands "This place".

Go to your plugin folders and then go to AI Dispatch folder. inside there should be a AI Dispatch.log folder. now copy that and go back to your plugins folder. Inside should be AI dispatch_customphrases.txt. Take that file too and copy it. Open an AI of your choice and send the AI both files and ask it to Make the AIDispatch_customphrase.text custom to you and your pronunciation. This should help. Also the Gemeni 2.5 version of my mod is notorious for being a bit hard of hearing and theres only so much we can do to help it understand. The latest build of the mod is 1.0 and uses Gemeni 3.0 instead which is faster and hears better. You can find that version on my patreon.

6 hours ago, FlyBullx said:

work other language ?? answer other language ?

it does but their is no focused on supporting other language right now. You might need to use your AIDispatch.log and your AIDispatch_customphrases.text files to create a tailored Custom phrases file that will work best for your language. This might help alot.

Jackal1T1

Members

9 minutes ago, boboediting said:

yes the update includes Status displayed and custom voices for status change.

I’ll give it a try thanks!

boboediting

Members Author

7 hours ago, ZORIXQ said:

I fixed it, it was because GTA V was blocked by the Outbound Rule in the Firewall. It works, but how do I improve the hearing for AIDispatch? I do have an accent (Australian) and a minor lisp, the intent is good but sometimes doesn’t hear well. Anything I can do to improve hearing or speech recognition of the ai?

Yes! play for a while and let it miss hear you for a bit. Then once you've used most commands a few times, open your plugins folder and find AIDispatch_customphrases.text, put that file somewhere you will remember. In the same folder find AIdispatch folder, open it grab the AIdispatch.log file. Now grab both those files (AIdispatch.log and AIdispatch_customphrases.text.) and go to the AI of your choise (I use chatgpt) and ask the AI to make you a tailored AIdispatch_customphrases.txt based on your log. Replace the Customphrases file in your plugin folder with the one the AI will provide and this should help. Keep updating it every few playthrough and you should have a better experience. Keep in mind the AI I use for the public release is not the greatest at understandung phrases. The 1.0 release on my patreon use Gemini 3.1 and is much better at understanding. If you like the Public release and enough and want to support my work feel free to head over to my patreon and become a memeber to try the latest most up to date release of the mod.

Sonny Plourde

Members

7 minutes ago, boboediting said:

Yes! play for a while and let it miss hear you for a bit. Then once you've used most commands a few times, open your plugins folder and find AIDispatch_customphrases.text, put that file somewhere you will remember. In the same folder find AIdispatch folder, open it grab the AIdispatch.log file. Now grab both those files (AIdispatch.log and AIdispatch_customphrases.text.) and go to the AI of your choise (I use chatgpt) and ask the AI to make you a tailored AIdispatch_customphrases.txt based on your log. Replace the Customphrases file in your plugin folder with the one the AI will provide and this should help. Keep updating it every few playthrough and you should have a better experience. Keep in mind the AI I use for the public release is not the greatest at understandung phrases. The 1.0 release on my patreon use Gemini 3.1 and is much better at understanding. If you like the Public release and enough and want to support my work feel free to head over to my patreon and become a memeber to try the latest most up to date release of the mod.

Mr Bobo, when is the Stop the Ped version coming out? I am just really hyped for an Ai Dispatch mod compatible with STP thank you

boboediting

Members Author

5 minutes ago, Sonny Plourde said:

Mr Bobo, when is the Stop the Ped version coming out? I am just really hyped for an Ai Dispatch mod compatible with STP thank you

Hey man! I'm starting to work on this today. I really want everyone to have a chance to enjoy the mod. Now keep in mind that the mod pairs really well with NPCAI 3.0 and that mod is unfortunately not available for stop the peds at the moment. But I will still find a way to make my mod work for stop the ped and ultimate backups! so fear not 😁

Sonny Plourde

Members

21 minutes ago, boboediting said:

Hey man! I'm starting to work on this today. I really want everyone to have a chance to enjoy the mod. Now keep in mind that the mod pairs really well with NPCAI 3.0 and that mod is unfortunately not available for stop the peds at the moment. But I will still find a way to make my mod work for stop the ped and ultimate backups! so fear not 😁

Thanks for the answer i trust you! Thanks for the good work you are revolutionizing LSPDFR i'll be waiting for that!

deejaymaxx2k

Members

(edited)

Would it be possible to make a short video showing the advantages of the Patreon version compared to this version, so people can actually see the differences in action?

I checked out the features listed for the 1.0 Patreon version, but I think it would be much more interesting for many people if they could see everything live rather than just reading about it.

I really like the concept with the sound files. It reminds me a lot of how Blueline handles things with the Bluelines upcoming Dispatcher Mod. I also noticed that your mod has those chain commands where dispatch asks things like, "Do you need a Code 2 or Code 3 unit?" That's a feature I really like.

Also, is it correct that the mod can be purchased directly? If so, would future updates be included with the purchase?

Edited by deejaymaxx2k

TrooperBrooks

Members

Doesn't work for me for some reason. None of my speech is picked up at all. I have a gemini API set up and the proper keybinds.

boboediting

Members Author

18 minutes ago, TrooperBrooks said:

Doesn't work for me for some reason. None of my speech is picked up at all. I have a gemini API set up and the proper keybinds.

send the AIdispatch.log please.

Chris B.

Members

Honestly, I generally like the mod. Its recent integration and updates have added more to it. I've been using it since release, quite a few hours on it. The most annoying issue I have, and it's significant enough to make me want to go back to GP is accepting callouts. Countless callouts come through my CI MDT and I informed dispatch I am responding, and it always says the same error (repeat etc. 10-9, and it will say "attempted to accept callout" "no callout active"). This is despite there literally having been a callout coming through to my system a second earlier. This happens when I try to use the dispatch to accept the callout, or if I am forced to press Y to accept it simply because if I did not, I would never have any callouts to attend, its just a failed loop.

On the plus side, I find the back up response system excellent. The traffic stop piece is also very good.

Thank you

boboediting

Members Author

18 minutes ago, Chris B. said:

Honestly, I generally like the mod. Its recent integration and updates have added more to it. I've been using it since release, quite a few hours on it. The most annoying issue I have, and it's significant enough to make me want to go back to GP is accepting callouts. Countless callouts come through my CI MDT and I informed dispatch I am responding, and it always says the same error (repeat etc. 10-9, and it will say "attempted to accept callout" "no callout active"). This is despite there literally having been a callout coming through to my system a second earlier. This happens when I try to use the dispatch to accept the callout, or if I am forced to press Y to accept it simply because if I did not, I would never have any callouts to attend, its just a failed loop.

On the plus side, I find the back up response system excellent. The traffic stop piece is also very good.

Thank you

I appreciate the feedback. Can you send me your AIDispatch.log please I would like to take a look at that because accepting callouts using dispatch and clearing them using sentences like "latest call is code 4" should be something that works perfectly fine in the 0.90.0 release. I've been working alot on the 1.0+ updates this weekend but if its an actual issue that I can repeat on my end I'd like to fix it. Thank you for your feedback.

GoD5p33d666

Members

Dam this new update can't understand my old custom phrases!! I use NSW Police, so i need highway patrol fot state, i need raptor fro swat, T O U for noose, and it literally can't understand it, keeps saying clarify! Iv added them all in and it lt keeps throwing me a "Request understood, but action could not be completed. Intent: clarify, or if it does it sends something else.

All of my previous custom phrases worked flawlessly. im using the correct command request_swat_code3 etc, just copied and pasted from the last version all of my old phrases and pasted it in. but no new phrases are working now.

boboediting

Members Author

3 hours ago, GoD5p33d666 said:

Dam this new update can't understand my old custom phrases!! I use NSW Police, so i need highway patrol fot state, i need raptor fro swat, T O U for noose, and it literally can't understand it, keeps saying clarify! Iv added them all in and it lt keeps throwing me a "Request understood, but action could not be completed. Intent: clarify, or if it does it sends something else.

All of my previous custom phrases worked flawlessly. im using the correct command request_swat_code3 etc, just copied and pasted from the last version all of my old phrases and pasted it in. but no new phrases are working now.

Send me your log please so I can see why the custom phrases are failing

Lodan341

Members

I have a problem! I downloaded everything and put it all where it has to go, give it my API key but I don't think the thing is recognized by the Rage hook. When i go into plugins for rage hook it isnt there and in game it just doesn't work. like theres no layout or interface or anything.

boboediting

Members Author

4 hours ago, GoD5p33d666 said:

Dam this new update can't understand my old custom phrases!! I use NSW Police, so i need highway patrol fot state, i need raptor fro swat, T O U for noose, and it literally can't understand it, keeps saying clarify! Iv added them all in and it lt keeps throwing me a "Request understood, but action could not be completed. Intent: clarify, or if it does it sends something else.

All of my previous custom phrases worked flawlessly. im using the correct command request_swat_code3 etc, just copied and pasted from the last version all of my old phrases and pasted it in. but no new phrases are working now.

Hey I'm uploading a new version right now that should help with this.

35 minutes ago, Lodan341 said:

I have a problem! I downloaded everything and put it all where it has to go, give it my API key but I don't think the thing is recognized by the Rage hook. When i go into plugins for rage hook it isnt there and in game it just doesn't work. like theres no layout or interface or anything.

when you use CAPS LOCK keybind nothing happens? all the widget might not be on by default so you might not see much on your screen but if you installed it correctly it will be there and work.

data.dll

Members

Does this work with any language?

nova2727

Members

Does not work for me either

boboediting

Members Author

4 minutes ago, nova2727 said:

Does not work for me either

I need specific, did the mod work before? can you reinstall the previous build, 0,90.0 and does that one work? if it dosent work and you go into the AIDispatch folder do you have a log and if so can you send it? I need as much information as you can provide if you want me to find a fix. Log is always needed if you have it available. A screenshot helps too, anything that can queue me in onto what is not working exactly.

57 minutes ago, data.dll said:

Does this work with any language?

My tester uses it in portuguese and it works apparently really well for him. Keep in mind I designed it in english so your experience may vary, but feel free to try it.

data.dll

Members

5 minutes ago, boboediting said:

I need specific, did the mod work before? can you reinstall the previous build, 0,90.0 and does that one work? if it dosent work and you go into the AIDispatch folder do you have a log and if so can you send it? I need as much information as you can provide if you want me to find a fix. Log is always needed if you have it available. A screenshot helps too, anything that can queue me in onto what is not working exactly.

My tester uses it in portuguese and it works apparently really well for him. Keep in mind I designed it in english so your experience may vary, but feel free to try it.

It barely works for spanish, radio status works, backup works but mostly will not recognize it or do another action, if you say shots fired for example it will put you " one 95 in custody" or a different status/action. Though it works amazing.

10 minutes ago, boboediting said:

I need specific, did the mod work before? can you reinstall the previous build, 0,90.0 and does that one work? if it dosent work and you go into the AIDispatch folder do you have a log and if so can you send it? I need as much information as you can provide if you want me to find a fix. Log is always needed if you have it available. A screenshot helps too, anything that can queue me in onto what is not working exactly.

My tester uses it in portuguese and it works apparently really well for him. Keep in mind I designed it in english so your experience may vary, but feel free to try it.

1 minute ago, data.dll said:

It barely works for spanish, radio status works, backup works but mostly will not recognize it or do another action, if you say shots fired for example it will put you " one 95 in custody" or a different status/action. Though it works amazing.

this is the log:

Pasted content

2026-06-07 18:11:27 | Action result: intent=request_local_code2 success=False reason=No matching/working handler returned success.

2026-06-07 18:11:27 | Failure feedback: 10-9, repeat your last transmission.

2026-06-07 18:11:27 | Played custom scanner WAV: lspdfr\audio\scanner\AIDispatch\General\repeat_last.wav

2026-06-07 18:11:34 | Recording started. requestId=14

2026-06-07 18:11:34 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:11:36 | Recording stopped. ms=2064 bytes=64044

2026-06-07 18:11:36 | Live API connecting endpoint=wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent?key=REDACTED model=models/gemini-2.5-flash-native-audio-preview-12-2025

2026-06-07 18:11:37 | Live API websocket connected.

2026-06-07 18:11:38 | Live API sent PCM bytes=64000

2026-06-07 18:11:39 | Live input transcript: .

2026-06-07 18:11:41 | Live tool call parsed intent=status_one95_custody confidence=1

2026-06-07 18:11:41 | Gemini command: heard='.' intent=status_one95_custody confidence=1.00 source=live_tool_call quantity=1 notes=Live API tool call.

2026-06-07 18:11:41 | TESTER DEBUG | source=live_tool_call | intent=status_one95_custody | confidence=1.00 | quantity=1 | heard='.' | notes='Live API tool call.'

2026-06-07 18:11:41 | Executing intent: status_one95_custody

2026-06-07 18:11:41 | Setting status: One 95 In Custody available=False

2026-06-07 18:11:41 | LSPDFR availability set using SetPlayerAvailableForCalls(False)

2026-06-07 18:11:41 | Action result: intent=status_one95_custody success=True status=INVOKED_UNVERIFIED note=Handler returned success. Some Policing Redefined/LSPDFR requests do not expose a verification result.

2026-06-07 18:11:41 | Context memory updated: scene= lastIntent=status_one95_custody heard='.'

2026-06-07 18:11:43 | Played custom scanner WAV: lspdfr\audio\scanner\AIDispatch\Status\status_one95_custody.wav

2026-06-07 18:11:44 | Recording started. requestId=15

2026-06-07 18:11:44 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:11:44 | Recording stopped. ms=396 bytes=6444

2026-06-07 18:11:44 | Recording ignored, too short.

2026-06-07 18:12:00 | Recording started. requestId=16

2026-06-07 18:12:00 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:12:02 | Recording stopped. ms=2152 bytes=64044

2026-06-07 18:12:02 | Live API connecting endpoint=wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent?key=REDACTED model=models/gemini-2.5-flash-native-audio-preview-12-2025

2026-06-07 18:12:03 | Live API websocket connected.

2026-06-07 18:12:03 | Live API sent PCM bytes=64000

2026-06-07 18:12:05 | Live input transcript: Amb 18 a 24.

2026-06-07 18:12:09 | Live tool call parsed intent=status_responding confidence=0.6

2026-06-07 18:12:09 | Gemini command: heard='Amb 18 a 24.' intent=accept_callout confidence=0.90 source=live_tool_call+callout_accept quantity=1 notes=Voice phrase matched callout acceptance; emulating LSPDFR accept-callout key.

2026-06-07 18:12:09 | TESTER DEBUG | source=live_tool_call+callout_accept | intent=accept_callout | confidence=0.90 | quantity=1 | heard='Amb 18 a 24.' | notes='Voice phrase matched callout acceptance; emulating LSPDFR accept-callout key.'

2026-06-07 18:12:09 | Executing intent: accept_callout

2026-06-07 18:12:09 | GetCalloutAcceptanceState zero-parameter method not found; skipping state verification.

2026-06-07 18:12:09 | Voice accept_callout started. acceptanceStateBefore=''

2026-06-07 18:12:09 | Voice accept_callout: attempting key fallback modifier=None key=REDACTED

2026-06-07 18:12:09 | Voice accept_callout: key tap sent.

2026-06-07 18:12:10 | GetCalloutAcceptanceState zero-parameter method not found; skipping state verification.

2026-06-07 18:12:10 | Voice accept_callout: first key tap not verified; retrying key fallback once.

2026-06-07 18:12:10 | Voice accept_callout: attempting key fallback modifier=None key=REDACTED

2026-06-07 18:12:10 | Voice accept_callout: key tap sent.

2026-06-07 18:12:11 | GetCalloutAcceptanceState zero-parameter method not found; skipping state verification.

2026-06-07 18:12:11 | Setting status: Responding / En Route available=False

2026-06-07 18:12:11 | LSPDFR availability set using SetPlayerAvailableForCalls(False)

2026-06-07 18:12:11 | Voice accept_callout key sent after fallback attempts; verification unavailable or not yet active. Treating as success.

2026-06-07 18:12:11 | Action result: intent=accept_callout success=True status=INVOKED_UNVERIFIED note=Handler returned success. Some Policing Redefined/LSPDFR requests do not expose a verification result.

2026-06-07 18:12:11 | Context memory updated: scene= lastIntent=accept_callout heard='Amb 18 a 24.'

2026-06-07 18:12:22 | Recording started. requestId=17

2026-06-07 18:12:22 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:12:22 | Recording stopped. ms=450 bytes=12844


it doesn't recognize it, i even spoke slowly to see if it worked but nothing.

it works with backup:

2026-06-07 18:11:22 | Live API websocket connected.

2026-06-07 18:11:23 | Live API sent PCM bytes=102400

2026-06-07 18:11:25 | Live input transcript: envíame refuerzos códigos.

2026-06-07 18:11:26 | Live tool call parsed intent=request_local_code2 confidence=0.9

2026-06-07 18:11:27 | Gemini command: heard='envíame refuerzos códigos.' intent=request_local_code2 confidence=0.90 source=live_tool_call quantity=1 notes=Live API tool call.

2026-06-07 18:11:27 | TESTER DEBUG | source=live_tool_call | intent=request_local_code2 | confidence=0.90 | quantity=1 | heard='envíame refuerzos códigos.' | notes='Live API tool call.'

2026-06-07 18:11:27 | Executing intent: request_local_code2

boboediting

Members Author

1 hour ago, data.dll said:

It barely works for spanish, radio status works, backup works but mostly will not recognize it or do another action, if you say shots fired for example it will put you " one 95 in custody" or a different status/action. Though it works amazing.

this is the log:

Pasted content

2026-06-07 18:11:27 | Action result: intent=request_local_code2 success=False reason=No matching/working handler returned success.

2026-06-07 18:11:27 | Failure feedback: 10-9, repeat your last transmission.

2026-06-07 18:11:27 | Played custom scanner WAV: lspdfr\audio\scanner\AIDispatch\General\repeat_last.wav

2026-06-07 18:11:34 | Recording started. requestId=14

2026-06-07 18:11:34 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:11:36 | Recording stopped. ms=2064 bytes=64044

2026-06-07 18:11:36 | Live API connecting endpoint=wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent?key=REDACTED model=models/gemini-2.5-flash-native-audio-preview-12-2025

2026-06-07 18:11:37 | Live API websocket connected.

2026-06-07 18:11:38 | Live API sent PCM bytes=64000

2026-06-07 18:11:39 | Live input transcript: .

2026-06-07 18:11:41 | Live tool call parsed intent=status_one95_custody confidence=1

2026-06-07 18:11:41 | Gemini command: heard='.' intent=status_one95_custody confidence=1.00 source=live_tool_call quantity=1 notes=Live API tool call.

2026-06-07 18:11:41 | TESTER DEBUG | source=live_tool_call | intent=status_one95_custody | confidence=1.00 | quantity=1 | heard='.' | notes='Live API tool call.'

2026-06-07 18:11:41 | Executing intent: status_one95_custody

2026-06-07 18:11:41 | Setting status: One 95 In Custody available=False

2026-06-07 18:11:41 | LSPDFR availability set using SetPlayerAvailableForCalls(False)

2026-06-07 18:11:41 | Action result: intent=status_one95_custody success=True status=INVOKED_UNVERIFIED note=Handler returned success. Some Policing Redefined/LSPDFR requests do not expose a verification result.

2026-06-07 18:11:41 | Context memory updated: scene= lastIntent=status_one95_custody heard='.'

2026-06-07 18:11:43 | Played custom scanner WAV: lspdfr\audio\scanner\AIDispatch\Status\status_one95_custody.wav

2026-06-07 18:11:44 | Recording started. requestId=15

2026-06-07 18:11:44 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:11:44 | Recording stopped. ms=396 bytes=6444

2026-06-07 18:11:44 | Recording ignored, too short.

2026-06-07 18:12:00 | Recording started. requestId=16

2026-06-07 18:12:00 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:12:02 | Recording stopped. ms=2152 bytes=64044

2026-06-07 18:12:02 | Live API connecting endpoint=wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent?key=REDACTED model=models/gemini-2.5-flash-native-audio-preview-12-2025

2026-06-07 18:12:03 | Live API websocket connected.

2026-06-07 18:12:03 | Live API sent PCM bytes=64000

2026-06-07 18:12:05 | Live input transcript: Amb 18 a 24.

2026-06-07 18:12:09 | Live tool call parsed intent=status_responding confidence=0.6

2026-06-07 18:12:09 | Gemini command: heard='Amb 18 a 24.' intent=accept_callout confidence=0.90 source=live_tool_call+callout_accept quantity=1 notes=Voice phrase matched callout acceptance; emulating LSPDFR accept-callout key.

2026-06-07 18:12:09 | TESTER DEBUG | source=live_tool_call+callout_accept | intent=accept_callout | confidence=0.90 | quantity=1 | heard='Amb 18 a 24.' | notes='Voice phrase matched callout acceptance; emulating LSPDFR accept-callout key.'

2026-06-07 18:12:09 | Executing intent: accept_callout

2026-06-07 18:12:09 | GetCalloutAcceptanceState zero-parameter method not found; skipping state verification.

2026-06-07 18:12:09 | Voice accept_callout started. acceptanceStateBefore=''

2026-06-07 18:12:09 | Voice accept_callout: attempting key fallback modifier=None key=REDACTED

2026-06-07 18:12:09 | Voice accept_callout: key tap sent.

2026-06-07 18:12:10 | GetCalloutAcceptanceState zero-parameter method not found; skipping state verification.

2026-06-07 18:12:10 | Voice accept_callout: first key tap not verified; retrying key fallback once.

2026-06-07 18:12:10 | Voice accept_callout: attempting key fallback modifier=None key=REDACTED

2026-06-07 18:12:10 | Voice accept_callout: key tap sent.

2026-06-07 18:12:11 | GetCalloutAcceptanceState zero-parameter method not found; skipping state verification.

2026-06-07 18:12:11 | Setting status: Responding / En Route available=False

2026-06-07 18:12:11 | LSPDFR availability set using SetPlayerAvailableForCalls(False)

2026-06-07 18:12:11 | Voice accept_callout key sent after fallback attempts; verification unavailable or not yet active. Treating as success.

2026-06-07 18:12:11 | Action result: intent=accept_callout success=True status=INVOKED_UNVERIFIED note=Handler returned success. Some Policing Redefined/LSPDFR requests do not expose a verification result.

2026-06-07 18:12:11 | Context memory updated: scene= lastIntent=accept_callout heard='Amb 18 a 24.'

2026-06-07 18:12:22 | Recording started. requestId=17

2026-06-07 18:12:22 | Radio animation started: mode=shouldermic dict=random@arrests anim=generic_radio_chatter prop=0

2026-06-07 18:12:22 | Recording stopped. ms=450 bytes=12844


it doesn't recognize it, i even spoke slowly to see if it worked but nothing.

it works with backup:

2026-06-07 18:11:22 | Live API websocket connected.

2026-06-07 18:11:23 | Live API sent PCM bytes=102400

2026-06-07 18:11:25 | Live input transcript: envíame refuerzos códigos.

2026-06-07 18:11:26 | Live tool call parsed intent=request_local_code2 confidence=0.9

2026-06-07 18:11:27 | Gemini command: heard='envíame refuerzos códigos.' intent=request_local_code2 confidence=0.90 source=live_tool_call quantity=1 notes=Live API tool call.

2026-06-07 18:11:27 | TESTER DEBUG | source=live_tool_call | intent=request_local_code2 | confidence=0.90 | quantity=1 | heard='envíame refuerzos códigos.' | notes='Live API tool call.'

2026-06-07 18:11:27 | Executing intent: request_local_code2

have you tried the custom phrases that I suggest in the mod description? you should try to make one for yourself with your log. See how much it helps. Becasue right now from your log there is quite a bit of spanish miss understanding and keep in mind this is using gemini 2.5 which even in english struggles to translate speech to text reliably. Try to make A AIDispatch_customphrases.txt based on your log and if theres still alot of errors come back to me with the log again. You can also just upload the full log file instead of pasting it. Iis actually helps me alot so I can make sure you're using the latest build too.

data.dll

Members

23 minutes ago, boboediting said:

have you tried the custom phrases that I suggest in the mod description? you should try to make one for yourself with your log. See how much it helps. Becasue right now from your log there is quite a bit of spanish miss understanding and keep in mind this is using gemini 2.5 which even in english struggles to translate speech to text reliably. Try to make A AIDispatch_customphrases.txt based on your log and if theres still alot of errors come back to me with the log again. You can also just upload the full log file instead of pasting it. Iis actually helps me alot so I can make sure you're using the latest build too.

I figured how to make it to understand but you have to talk very slowly

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.