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.
The latest updated version of RAGE Plugin Hook, required to play LSPDFR, can be found inside the LSPDFR download. It is not currently available on the RAGE Plugin Hook website.

Unhandled exceptions in sub-plugins cause LSPDFR crashes

Featured Replies

LSPDFR doesn't seem to handle exceptions thrown by its sub-plugins gracefully with try-catch, and therefore crashes, although the actual cause of the bug appears to be the sub-plugins themselves.  I'm not sure whether to classify this as a "suggestion" or a "bug report", but stability would definitely improve if exception handling was added to LSPDFR's callout manager.

 

For instance:

(LSPDFR crashed entirely.  This one was caused by SWAT Callouts.)

 

[11/02/2016 01:10:45.529] LSPD First Response: Creating BombSquad


[11/02/2016 01:10:45.529] [TRACE] Callout created:  #2
[11/02/2016 01:10:45.614] LSPD First Response:
[11/02/2016 01:10:45.614] LSPD First Response: ==============================
[11/02/2016 01:10:45.614] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK
[11/02/2016 01:10:45.614] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Origin: Game fiber "CalloutManager".
[11/02/2016 01:10:45.615] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Exception type: System.MissingMethodException
[11/02/2016 01:10:45.615] LSPD First Response: Exception message: Method not found: 'Single Khorio.Common.Generator.GetRandomFloat(Int32, Int32)'.
[11/02/2016 01:10:45.615] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Inner exceptions:
[11/02/2016 01:10:45.615] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Stack trace:
[11/02/2016 01:10:45.615] LSPD First Response: at SWAT_Callouts.Callouts.BombSquad.OnBeforeCalloutDisplayed()
[11/02/2016 01:10:45.616] at ?????????????????????????????????????????.?????????????????????????????????????????(Callout ) in E:\GTA V\LSPD First Response\LSPD First Response\Mod\Callouts\CalloutManager.cs:line 254
[11/02/2016 01:10:45.616] at ?????????????????????????????????????????.?????????????????????????????????????????(Type ) in E:\GTA V\LSPD First Response\LSPD First Response\Mod\Callouts\CalloutManager.cs:line 237
[11/02/2016 01:10:45.616] at ?????????????????????????????????????????.?????????????????????????????????????????() in E:\GTA V\LSPD First Response\LSPD First Response\Mod\Callouts\CalloutManager.cs:line 160
[11/02/2016 01:10:45.616] at Rage.GameFiber.Main()
[11/02/2016 01:10:45.616] LSPD First Response: ==============================
[11/02/2016 01:10:45.616] LSPD First Response:
[11/02/2016 01:10:46.122] LSPD First Response: All signs removed

 

For instance:

(LSPDFR crashed entirely.  The cause on this one is cryptic as I have no idea why it crashed (IIRC I was in the middle of processing a search warrant on a person who fleed from a routine traffic stop).  I'm leaning towards a bug in RPH itself not sanity-checking parameters, but triggered by Wilderness Callouts.)

 

[11/01/2016 23:44:44.597] LSPD First Response: ==============================

 


[11/01/2016 23:44:44.597] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.597] LSPD First Response: Origin: Game fiber "<UNNAMED THREAD>".
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.597] LSPD First Response: Exception type: Rage.Exceptions.InvalidHandleableException
[11/01/2016 23:44:44.597] LSPD First Response: Exception message: Operation is not valid because the specified  Rage.Ped is invalid.
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.597] LSPD First Response: Inner exceptions:
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.598] LSPD First Response: Stack trace:
[11/01/2016 23:44:44.598] LSPD First Response: at Rage.Entity.get_Position()
[11/01/2016 23:44:44.598] at ?????????????????????????????????????????.?????????????????????????????????????????(Entity )
[11/01/2016 23:44:44.598] at ?????????????????????????????????????????.?????????????????????????????????????????()
[11/01/2016 23:44:44.598] at ?????????????????????????????????????????.?????????????????????????????????????????()
[11/01/2016 23:44:44.598] at Rage.GameFiber.Main()
[11/01/2016 23:44:44.598] LSPD First Response: ==============================
[11/01/2016 23:44:44.598] LSPD First Response:
[11/01/2016 23:44:45.094] LSPD First Response: All signs removed
[11/01/2016 23:44:45.802] LSPD First Response: [Wilderness Callouts | IntoxicatedPersonEvent] Cleaned up

 

Edited by jtgibson

8 minutes ago, jtgibson said:

LSPDFR doesn't seem to handle exceptions thrown by its sub-plugins gracefully with try-catch, and therefore crashes, although the actual cause of the bug appears to be the sub-plugins themselves.  I'm not sure whether to classify this as a "suggestion" or a "bug report", but stability would definitely improve if exception handling was added to LSPDFR's callout manager.

 

For instance:

(LSPDFR crashed entirely.  This one was caused by SWAT Callouts.)

  Reveal hidden contents

[11/02/2016 01:10:45.529] LSPD First Response: Creating BombSquad


[11/02/2016 01:10:45.529] [TRACE] Callout created:  #2
[11/02/2016 01:10:45.614] LSPD First Response:
[11/02/2016 01:10:45.614] LSPD First Response: ==============================
[11/02/2016 01:10:45.614] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK
[11/02/2016 01:10:45.614] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Origin: Game fiber "CalloutManager".
[11/02/2016 01:10:45.615] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Exception type: System.MissingMethodException
[11/02/2016 01:10:45.615] LSPD First Response: Exception message: Method not found: 'Single Khorio.Common.Generator.GetRandomFloat(Int32, Int32)'.
[11/02/2016 01:10:45.615] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Inner exceptions:
[11/02/2016 01:10:45.615] LSPD First Response: ------------------------------
[11/02/2016 01:10:45.615] LSPD First Response: Stack trace:
[11/02/2016 01:10:45.615] LSPD First Response: at SWAT_Callouts.Callouts.BombSquad.OnBeforeCalloutDisplayed()
[11/02/2016 01:10:45.616] at ?????????????????????????????????????????.?????????????????????????????????????????(Callout ) in E:\GTA V\LSPD First Response\LSPD First Response\Mod\Callouts\CalloutManager.cs:line 254
[11/02/2016 01:10:45.616] at ?????????????????????????????????????????.?????????????????????????????????????????(Type ) in E:\GTA V\LSPD First Response\LSPD First Response\Mod\Callouts\CalloutManager.cs:line 237
[11/02/2016 01:10:45.616] at ?????????????????????????????????????????.?????????????????????????????????????????() in E:\GTA V\LSPD First Response\LSPD First Response\Mod\Callouts\CalloutManager.cs:line 160
[11/02/2016 01:10:45.616] at Rage.GameFiber.Main()
[11/02/2016 01:10:45.616] LSPD First Response: ==============================
[11/02/2016 01:10:45.616] LSPD First Response:
[11/02/2016 01:10:46.122] LSPD First Response: All signs removed

 

For instance:

(LSPDFR crashed entirely.  The cause on this one is cryptic as I have no idea why it crashed (IIRC I was in the middle of processing a search warrant on a person who fleed from a routine traffic stop).  I'm leaning towards a bug in RPH itself not sanity-checking parameters, but triggered by Wilderness Callouts.)

  Reveal hidden contents

[11/01/2016 23:44:44.597] LSPD First Response: ==============================

 


[11/01/2016 23:44:44.597] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.597] LSPD First Response: Origin: Game fiber "<UNNAMED THREAD>".
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.597] LSPD First Response: Exception type: Rage.Exceptions.InvalidHandleableException
[11/01/2016 23:44:44.597] LSPD First Response: Exception message: Operation is not valid because the specified  Rage.Ped is invalid.
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.597] LSPD First Response: Inner exceptions:
[11/01/2016 23:44:44.597] LSPD First Response: ------------------------------
[11/01/2016 23:44:44.598] LSPD First Response: Stack trace:
[11/01/2016 23:44:44.598] LSPD First Response: at Rage.Entity.get_Position()
[11/01/2016 23:44:44.598] at ?????????????????????????????????????????.?????????????????????????????????????????(Entity )
[11/01/2016 23:44:44.598] at ?????????????????????????????????????????.?????????????????????????????????????????()
[11/01/2016 23:44:44.598] at ?????????????????????????????????????????.?????????????????????????????????????????()
[11/01/2016 23:44:44.598] at Rage.GameFiber.Main()
[11/01/2016 23:44:44.598] LSPD First Response: ==============================
[11/01/2016 23:44:44.598] LSPD First Response:
[11/01/2016 23:44:45.094] LSPD First Response: All signs removed
[11/01/2016 23:44:45.802] LSPD First Response: [Wilderness Callouts | IntoxicatedPersonEvent] Cleaned up

 

 

 It'd be nice if callout authors added measures to prevent full LSPDFR crashes since it is their plugin that is going to cause it, and not LSPDFR itself.  .  One of the callout packs I use has implemented this, and has saved me so many times from a full LSPDFR crash.

I need donations to help fund my food addiction. DM for details 😂

Speaking as a sub-plugin developer, and not with any knowledge of the 'official' LSPDFR position on this:

 

This is a limtiation with how LSPDFR is architected. I take great pains to try/catch everything in my code that might behave unexpectedly, and fall back to a default behaviour or bail out of just that thing that I'm doing because the alternative is the disruption that an LSPDFR crash causes to gameplay. I feel really bad when an LSPDFR crash turns out to be my fault, so I'd rather spend that extra time during the development process!

 

It's likely that the onus will remain on sub-plugin developers to write code that is resilient to error conditions — there are some places within LSPDFR itself that appear to try/catch the sub-plugin code, but my understanding is that it would not be possible for the LSPDFR developers to do this for everything. (From a technical perspective, this is because LSPDFR sub-plugins can start their own RPH GameFibers. I don't see how there'd be an opportunity for LSPDFR core itself to inject exception handling into Fibers it isn't responsible for!)

 

What we need to focus on then is supporting developers to write resilient code that degrades gracefully. None of this is very sexy, but a "glitched callout" is a lot less annoying than reloading LSPDFR and having untidy entities/blips hanging around until you restart the whole game!

As you might guess, I make PeterUCallouts. I love working to bring LSPDFR players the kind of callouts that strike a good balance between realism and fun and are stable & varied!

Unfortunately I cannot offer support via PM -- please use the forums, so that others may benefit from your solutions!

Recently Browsing 0

  • No registered users viewing this page.

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.