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.

Safer Chases (Smarter Driving for Cops) 1.5

(46 reviews)

7 Screenshots

No more derbies between cops while in pursuit.

 

So, I have grow tired of seeing people being afraid of calling police Backup because the NPC Cops drive too aggresively. This the result of my frustration.

This script attempts to make chases safer, for both you as well as the suspect, by slowing down police vehicles on certain circumstances, like when you're recovering from a crash and another cop car passes by, or you're near the suspect.

 

RAGEHOOK/LSPDFR VERSION RELEASED.

Special thanks to Guadmaz, who took the time to port the script for me and helped me finetune it.

Delete the original .NET version from your game!

 

Features

  • NPC Cops won't ram the suspects ever again. Despite that statement, you can disable this behavior this mid-pursuit if you change your mind. If you hit the suspect's vehicle yourself, NPC Cops will take it as a sign that the suspect is to be stopped by all means, and will resume HOT COP ACTION behind the suspect like this script never happened. You will be immersively notified of this change on their behavior.
  • NPC Cops will slow down when passing by you, preventing cop-to-player crashes this way. If they're directly behind you, they will brake harder to make sure they don't rear-end you. They ignore you if your vehicle is stopped, however.
  • NPC Cops will allow the player to be the primary unit when he's close to the suspect, leaving some space between them and the suspect's vehicle. They will take primary position again if the player falls too far behind.
  • NPC Cops can now yield to you. Simply honk and all nearby units will slow down.
  • NPC Cops will now try to manage traffic better. They overtake more carefully and brake to avoid running over running pedestrians or crashing into slow-moving vehicles. They even take into account other police vehicles!

 

WARNING

I consider this script resource intensive.

If you experience noticeable frame drops, disable some of the features in the .ini file to lighten the load on the CPU.


Settings
You can change multiple settings inside "SaferChases.ini" to tune the script's behavior to your likings.

  • Finetune how fast cops can pass by you [speed in KM/H]
  • Allow Primary Unit support [enable/disable]
  • Prevent the NPC cops from ramming the suspects[enable/disable]
  • Allow the NPC cops to try and manage traffic better [enable/disable]
  • Allow the player to force other units to yield to him [enable/disable]
  • Debug notifications [enable/disable]

 

Installation
Place "SaferChasesRPH.dll" and "SaferChases.ini" inside the \Grand Theft Auto V\Plugins\LSPDFR\ folder.

How to use

The script should start working automatically. You don't have to do anything.

The script will load its settings from the .ini again for any new pursuits you join, so feel free to tweak it mid-game.


Plans for future updates

  • Experiment on more, better ways to approach the issue this script adresses.
  • Port the script to RageHook if it people like it Done.
  • Let the player toggle the Ram Suspect feature while ingame, mid-pursuit. Done.
  • Let the player make other police vehicles yield, so you don't have to fight for a position in a pursuit. Done.

 

 

Troubleshooting
  • If you experience any kind of crash and you think Safer Chases has something to do with it, upload the RagePluginHook.log file you will find inside your main GTAV folder, detailing the situation you and the suspects where when it crashed.
 

Don't consider this a polished script, but a "cheap" workaround to a frustrating problem until better options are available.

Feedback is what I need to know what to change. Here is the discussion thread, and, if anyone wants the sourceode, you can find it here.

What's New in Version 1.5

Released

Tweaks

  • Updated for LSPD:FR 0.3.1.
  • Improved code optimization, hopefully by a lot.
  • You can now undo PIT authorization by honking near the suspect's vehicle.
  • Removed Primary Unit notifications, as I saw they were confusing people. The cops still allow primary if you're near the suspect.

User Feedback

Recommended Comments

AreYouCola

Members

(edited)

THX FOR PORTING TO RPH THANK YOU SO MUCH!!!

Edited by AreYouCola

PNWParksFan

Insiders

With the latest version I occasionally am getting crashes during pursuits. Here is a sample of the logfile from a time that occurred: 

Spoiler

[1/28/2016 1:44:41 AM.964] LSPD First Response: PlayAction: Failed to find UNIT_RESPONDING_DISPATCH, reverted to random voice
[1/28/2016 1:44:44 AM.633] LSPD First Response: PlayAction: Failed to find UNIT_RESPONDING_DISPATCH, reverted to random voice
[1/28/2016 1:44:45 AM.215] LSPD First Response: 
[1/28/2016 1:44:45 AM.215] LSPD First Response: ==============================
[1/28/2016 1:44:45 AM.215] LSPD First Response: UNHANDLED EXCEPTION DURING GAME THREAD TICK
[1/28/2016 1:44:45 AM.215] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.215] LSPD First Response: Origin: Rage.SleeplessGameFiber
[1/28/2016 1:44:45 AM.215] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.215] LSPD First Response: Exception type: System.AccessViolationException
[1/28/2016 1:44:45 AM.216] LSPD First Response: Exception message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
[1/28/2016 1:44:45 AM.216] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.216] LSPD First Response: Inner exceptions:
[1/28/2016 1:44:45 AM.216] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.216] LSPD First Response: Stack trace:
[1/28/2016 1:44:45 AM.217] LSPD First Response: at CNativeInvocationInfoV.PushArgument<__int64>(CNativeInvocationInfoV* , Int64 )
[1/28/2016 1:44:45 AM.217] at Rage.Native.NativeFunction.CallByAddress(IntPtr address, Type returnType, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.217] at Rage.Native.NativeFunction.CallByHash(UInt64 nativeHash, Type returnType, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.217] at Rage.Native.NativeFunction.CallByHash[ReturnType](UInt64 nativeHash, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.218] at Rage.HitResult.get_HitEntity()
[1/28/2016 1:44:45 AM.218] at RAGEComputer.PursuitHandler.HandleCopCarefulBehavior()
[1/28/2016 1:44:45 AM.218] at RAGEComputer.PursuitHandler.Update()
[1/28/2016 1:44:45 AM.218] at RAGEComputer.PortedAI.FrameRender(Object sender, GraphicsEventArgs graphicsEventArgs)
[1/28/2016 1:44:45 AM.218] at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
[1/28/2016 1:44:45 AM.219] at Rage.Game.RaiseFrameRender(GraphicsEventArgs e)
[1/28/2016 1:44:45 AM.219] at Rage.RemotePlugin.HandleRenderThread()
[1/28/2016 1:44:45 AM.219] at Rage.GameFiber.Main()
[1/28/2016 1:44:45 AM.219] LSPD First Response: ==============================
[1/28/2016 1:44:45 AM.219] LSPD First Response: 
[1/28/2016 1:44:45 AM.484] LSPD First Response: System.Threading.ThreadAbortException: Thread was being aborted.
[1/28/2016 1:44:45 AM.485] at Rage.Native.NativeFunction.CallByHash(UInt64 nativeHash, Type returnType, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.485] at Rage.Native.NativeFunction.CallByHash[ReturnType](UInt64 nativeHash, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.486] at Rage.Game.get_LocalPlayer()
[1/28/2016 1:44:45 AM.486] at MoreJailPoints.EntryPoint.????????????????????????????????????????()
[1/28/2016 1:44:45 AM.487] at MoreJailPoints.EntryPoint.?????????????????????????????????????????()
[1/28/2016 1:44:45 AM.487] at MoreJailPoints.EntryPoint.?????????????????????????????????????????.?????????????????????????????????????????()
[1/28/2016 1:44:45 AM.569] [TRACE] Instance cleaned ( #7)
[1/28/2016 1:44:45 AM.569] LSPD First Response: ANPR Hit callout has ended.
[1/28/2016 1:44:45 AM.571] LSPD First Response: All Owner Wanted entities deleted

 

 

Drewster327

Members

Works great for me now! Thanks for all your hard work!

Eddlm

Members Author

2 hours ago, PNWParksFan said:

With the latest version I occasionally am getting crashes during pursuits. Here is a sample of the logfile from a time that occurred: 

  Reveal hidden contents


[1/28/2016 1:44:41 AM.964] LSPD First Response: PlayAction: Failed to find UNIT_RESPONDING_DISPATCH, reverted to random voice
[1/28/2016 1:44:44 AM.633] LSPD First Response: PlayAction: Failed to find UNIT_RESPONDING_DISPATCH, reverted to random voice
[1/28/2016 1:44:45 AM.215] LSPD First Response: 
[1/28/2016 1:44:45 AM.215] LSPD First Response: ==============================
[1/28/2016 1:44:45 AM.215] LSPD First Response: UNHANDLED EXCEPTION DURING GAME THREAD TICK
[1/28/2016 1:44:45 AM.215] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.215] LSPD First Response: Origin: Rage.SleeplessGameFiber
[1/28/2016 1:44:45 AM.215] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.215] LSPD First Response: Exception type: System.AccessViolationException
[1/28/2016 1:44:45 AM.216] LSPD First Response: Exception message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
[1/28/2016 1:44:45 AM.216] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.216] LSPD First Response: Inner exceptions:
[1/28/2016 1:44:45 AM.216] LSPD First Response: ------------------------------
[1/28/2016 1:44:45 AM.216] LSPD First Response: Stack trace:
[1/28/2016 1:44:45 AM.217] LSPD First Response: at CNativeInvocationInfoV.PushArgument<__int64>(CNativeInvocationInfoV* , Int64 )
[1/28/2016 1:44:45 AM.217] at Rage.Native.NativeFunction.CallByAddress(IntPtr address, Type returnType, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.217] at Rage.Native.NativeFunction.CallByHash(UInt64 nativeHash, Type returnType, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.217] at Rage.Native.NativeFunction.CallByHash[ReturnType](UInt64 nativeHash, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.218] at Rage.HitResult.get_HitEntity()
[1/28/2016 1:44:45 AM.218] at RAGEComputer.PursuitHandler.HandleCopCarefulBehavior()
[1/28/2016 1:44:45 AM.218] at RAGEComputer.PursuitHandler.Update()
[1/28/2016 1:44:45 AM.218] at RAGEComputer.PortedAI.FrameRender(Object sender, GraphicsEventArgs graphicsEventArgs)
[1/28/2016 1:44:45 AM.218] at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
[1/28/2016 1:44:45 AM.219] at Rage.Game.RaiseFrameRender(GraphicsEventArgs e)
[1/28/2016 1:44:45 AM.219] at Rage.RemotePlugin.HandleRenderThread()
[1/28/2016 1:44:45 AM.219] at Rage.GameFiber.Main()
[1/28/2016 1:44:45 AM.219] LSPD First Response: ==============================
[1/28/2016 1:44:45 AM.219] LSPD First Response: 
[1/28/2016 1:44:45 AM.484] LSPD First Response: System.Threading.ThreadAbortException: Thread was being aborted.
[1/28/2016 1:44:45 AM.485] at Rage.Native.NativeFunction.CallByHash(UInt64 nativeHash, Type returnType, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.485] at Rage.Native.NativeFunction.CallByHash[ReturnType](UInt64 nativeHash, NativeArgument[] arguments)
[1/28/2016 1:44:45 AM.486] at Rage.Game.get_LocalPlayer()
[1/28/2016 1:44:45 AM.486] at MoreJailPoints.EntryPoint.????????????????????????????????????????()
[1/28/2016 1:44:45 AM.487] at MoreJailPoints.EntryPoint.?????????????????????????????????????????()
[1/28/2016 1:44:45 AM.487] at MoreJailPoints.EntryPoint.?????????????????????????????????????????.?????????????????????????????????????????()
[1/28/2016 1:44:45 AM.569] [TRACE] Instance cleaned ( #7)
[1/28/2016 1:44:45 AM.569] LSPD First Response: ANPR Hit callout has ended.
[1/28/2016 1:44:45 AM.571] LSPD First Response: All Owner Wanted entities deleted

 

 

Thanks for that log, I now know what's crashing. Looks like one of the "anti cop-to-player crash" checks hasn't a proper failsafe.

Canelo

Members

Does the ported version work with LSPDFR 0.2b + RPH 0.29?

Albo1125

Insiders

(edited)

8 hours ago, Canelo said:

Does the ported version work with LSPDFR 0.2b + RPH 0.29?

Uses LSPDFR API 0.3b

Edited by Albo1125

liberto

Members

On 27/1/2016 at 10:38 PM, Eddlm said:

I am starting to think maybe RDE has something to do about it, as I have seen some reports of the exact same issue.

However, this script of mine runs each tick, so maybe it could be a performance issue too. I'm currently rewriting (and optimizing) it for RPH, we'll see if the correct version stops these weird problems.

... 'cuz the script doesn't even touch vehicles far from the player!

Not related to RDE, I have the issue but don't have RDE ;) (I didn't try with the new RPH-ported version tho)

Eddlm

Members Author

Before you comment, yes, 1.3 had a fairly reliable crash when you entered your vehicle while in a pursuit. 1.3.1, just updated, fixes it.

The Loot

Members

I noticed one video where the suspect making contact with your car authorizes PITs. I assume it's feasible to check if the player is moving slower to avoid that, though I suppose it could be considered a feature.

Eddlm

Members Author

2 minutes ago, The Loot said:

I noticed one video where the suspect making contact with your car authorizes PITs. I assume it's feasible to check if the player is moving slower to avoid that, though I suppose it could be considered a feature.

It is a feature, read above. However it is intended to let you decide when the cops can ram the suspect by ramming it yourself first.

Now that I think of it, suspects hitting you, or you trying to stop them by simply braking-checking them would also work, because the script only checks if your vehicle has damaged the suspect's vehicle, nothing more.

I don't know how to differenciate "you have hit the suspect" from "the suspect has hit you" situations, at least not yet, so we're stuck with that for now.

The Loot

Members

Well, I knew it was a feature, but kind of an unintended effect of it. Other than checking to see if the player is moving slower than the suspect, I suppose there's not much that could be done.

Eddlm

Members Author

(edited)

23 minutes ago, The Loot said:

Well, I knew it was a feature, but kind of an unintended effect of it. Other than checking to see if the player is moving slower than the suspect, I suppose there's not much that could be done.

The problem here is that the damage check doesn't care about when the damage was done, so, once you have damaged the suspect's vehicle, that check will return TRUE until that pursuit ends.

I can add an additional "player going faster than suspect" requirement in addition to that check, but both would eventually return true if, at any moment (minutes, even hours) after hitting the suspect, you happen go faster than him, which doesn't solve the issue.

When I learn how to add a hotkey, I can make the player toggle this behavior at any given time at the press of a key, however. Buuuut I would prefer not to add even more hotkeys for the player to remember.

 

EDIT: To clarify things, i'm using a game's internal function to do the damage check, so I can't alter its behavior (like adding a speed requirement), only make use of what that function offers.

Edited by Eddlm

joejccva71

Members

Is this compatible with the plugin Protection Squad?

Eddlm

Members Author

3 minutes ago, joejccva71 said:

Is this compatible with the plugin Protection Squad?

Safer Chases won't affect how VIP transport units behave. It only works when you're in a chase.

Spazo

Members

(edited)

Nice work. But I'm still having issue when I call backup, they sit on the road doing nothing. Having the problem with all backup even the helicopter. The issue does not always happens. I can play fine for a bit but when it happens, I have to close and restart the game for the backup work again.

As per other comments here, seem I'm not the only one. I'm using the latest version of the mod

Also tried to remove KeepCalm plugin, didnt help

Edited by Spazo

Eddlm

Members Author

Looks like a memory problem to me. The script cleans up after each pursuit, so it can't be stacking up info or anything like that.

Do you use RDE?

More importantly, can you try to disable traffic & peds vía Trainer (Simple Trainer allows to do that) next time you experience that issue, and tell me if the problem persists in the next chases, while no traffic/peds are loaded?

Andartu

Members

10 minutes ago, Eddlm said:

Looks like a memory problem to me. The script cleans up after each pursuit, so it can't be stacking up info or anything like that.

Do you use RDE?

More importantly, can you try to disable traffic & peds vía Trainer (Simple Trainer allows to do that) next time you experience that issue, and tell me if the problem persists in the next chases, while no traffic/peds are loaded?

Î still have the same problem. Sometimes right in the first pursuit of a session. No RDE. The problem is, that the stucked backup units do not disappear after the pursuit. Even all "clean" commands do not help... only a restart. 

Spazo

Members

31 minutes ago, Andartu said:

Î still have the same problem. Sometimes right in the first pursuit of a session. No RDE. The problem is, that the stucked backup units do not disappear after the pursuit. Even all "clean" commands do not help... only a restart. 

Same thing and I dont have RDE. 

Rootzy

Members

Would be cool if you could toggle whether you wanted other units to pit, because sometimes I accidentally hit the suspects car and then pit is authorised for ever. Great mod though, It really makes pursuits enjoyable!

Newfield

Members

Please help!

I installed it like it's written here (plugins > lspdfr) but when i'm ingame in a chase the other police cars still ram me and the suspect, they dont slow down etc.

How can i make it work?

Trasheater

Members

8 hours ago, Spazo said:

Nice work. But I'm still having issue when I call backup, they sit on the road doing nothing. Having the problem with all backup even the helicopter. The issue does not always happens. I can play fine for a bit but when it happens, I have to close and restart the game for the backup work again.

Im also having this issue, I spawned one unit to help with a chase, then a few minutes later it disappeared and no units came when i called for backup

goincd3

Members

Plugin works most of the time and works great. Unfortunately I am also having the issue of freezing backup units. I am not using RDE.

TheDude

Members

Does this work on .35 or is the file still on .34?

smithyboi96

Members

love the idea BUT when i call for backup in a pursuit they confirm they are responding but they never turn up or show on the map so i never get any backup in pursuits now ?? any ideas please help ?? 

Soppy Pancakes

Members

4 hours ago, smithyboi96 said:

love the idea BUT when i call for backup in a pursuit they confirm they are responding but they never turn up or show on the map so i never get any backup in pursuits now ?? any ideas please help ?? 

Are you using RDE?

Create an account or sign in to comment

Latest Mods

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.