Jump to content

LSPDFR 0.4 API Update


LMS

Recommended Posts

  • The topic was pinned

One thing I can think of: It'd be nice to have the ability to stick plugin triggers on the backup and/or interaction menu. What I'm imagining is a function

RegisterBackupType(ResponseType type, string name, Action<Vector3> callback)

This function would append an entry with the given name to the end of the given no-agency backup list (i.e. what you see when "None" is selected). When chosen, this entry would call the callback function with the target position (this would be flexible -- if you have something like responding backup to a waypoint if the user has set one, the fact that you pass in the target location would let addons seamlessly work with that). LSPDFR's role could be limited to calling the callback, with no attempt to manage the response unless the plugin calls additional API functions. That way, something like a coroner or tow truck mod could be integrated into the normal backup menu. I suppose this could be done in a more OO way by passing an object that supports an ICustomBackupPlugin interface, which may fit better with the rest of the API, although I've always kinda preferred function pointers and delegates for this sort of simple largely-stateless thing.

Link to comment
Share on other sites

36 minutes ago, cp702 said:

One thing I can think of: It'd be nice to have the ability to stick plugin triggers on the backup and/or interaction menu. What I'm imagining is a function...

 

That would indeed be nice, especially coupled with access to the info from the various config XML files, as it could allow people to define stuff like coroner, tow truck, and other backup types in the native LSPDFR format and then use them for novel backup types which aren't built in. E.g. boat backup, animal control backup, fire backup, etc. 

[REL] Coastal Callouts: An action-packed mod with new vehicles, maps, capabilities, and callouts in and around the waters of Los Santos

[REL] Police Tape: Make your scenes more realistic while stopping peds and traffic

[REL] Better EMS: Realistic and dynamic EMS response

Join the Parks Benefactor Program to support my work and get early beta access!

Link to comment
Share on other sites

Something I have noticed is that LSPDFR uses Newtonsoft.Json (version 9.0.1.19813) and when I try to serialize objects it doesn't seem to work. Changing it to a more up to date version (I use version 12.0.1.22727 for RPH Plugins, which works fine) seems to block lspdfr from loading completety. 

Link to comment
Share on other sites

I can try to add a few ideas for scenarios for stop checks etc if that will help and i apologise now if its either already been done or if its just silly and something that would never be added. But ideas sometimes create good things 😉

 

I think for variety i would like to see the car occupants maybe react in various ways on a stop. maybe depending on the actions that caused the stop. 

 

For example if a car is swerving about or erratic then it could be due to a few things. Maybe the driver or a passenger in the car is pregnant! They are desperately trying to get to a hospital but clearly struggling to drive correctly. This could then in turn make use of EMS or maybe escort the car to the Hospital, stopping traffic ahead or even call in a Police helicopter to get the person there quicker.

Maybe the driver has medical issues and on stopping the vehicle the driver or a passenger is having a fit or seizure or heart-attack. Again EMS, Coroner ( in that sad moment the driver passes away) or backup can help.

Maybe there are children in the back fighting and the parent got distracted or even kids driving a car they stole.

If the car is speeding the driver would be intoxicated on drink or drugs or maybe sober but the vehicle as a few occupants and it was some kind of dare. 

Maybe a stopcheck could result in it being that the occupants are in fact on their way to a crime and act evasive to questions or nervous. maybe drawn weapons but hidden.

Maybe a stopcheck turns out to be a kidnapping. the officer might hear screaming in the trunk of the car where someone is tied up and gagged, especially if its a van where the person is held in the back. reminds me of Silence of the Lambs movie where he kidnaps girls in his van. lmao

 

Maybe a bachelors party or hen party pre-wedding where the vehicle is just full of noisy excited people and throwing things from a car.

Maybe some vehicle have a dog in the back thats aggressive or even poorly looked after. This could initiate the use of vets or what we have in the Uk, RSPCA officers. ( Royal Society for Prevention of Cruelty to Animals.)

 

I can think up more if it helps 🙂

 

 

Link to comment
Share on other sites

  • Management Team
5 hours ago, NoNameSet said:

Something I have noticed is that LSPDFR uses Newtonsoft.Json (version 9.0.1.19813) and when I try to serialize objects it doesn't seem to work. Changing it to a more up to date version (I use version 12.0.1.22727 for RPH Plugins, which works fine) seems to block lspdfr from loading completety. 

 

We ran into issues before with properly handling dynamic Json and ConfuserEx and find that the version shipped works best for us. If you wish to use a different version you can always ship your own dll with a different name or ilmerged into your assembly. We do merge a few dependencies already to remove some clutter and we can look into merging our Json lib into the main assembly in the future too.

22 hours ago, PNWParksFan said:
  • I'm unable to perform traffic stops on boats, whatsoever. Used to be possible in 0.3.1 without having to do anything special, just boat up behind them and hold Shift. 
  • If you have a waypoint set on the map, Code 3 backup responds there. Which is a useful feature to have, but is also really confusing as it's undocumented. Perhaps the backup menu could have a selector for "respond to self" or "respond to waypoint".
  • You can get a call that's far away (like the built in market robbery call for example), respond at reckless speed to get there, and pass 5 ambient patrolling units on your way that are just driving along without a care in the world. Would be nice if there was some API method to request ambient units to respond to a location, with perhaps an optional parameter for max number of ambient units to respond. That way if you initiated a robbery call for example, you could configure ambient units to join the call, so if you approach an ambient unit on your way they'd also go Code 3 and respond to the same location. 
  • Likewise, I've called for Code 3 backup when an ambient unit was driving right by, and rather than respond they just kept driving, and a new backup unit responded elsewhere. Would be nice if ambient units would respond Code 3 when calling backup if they meet the criteria for the backup requested. 

 

As for boats, it is not something we actively support as our logic for traffic stops is focused on vehicles. Would an override per entity to let it be allowed to be pulled over even it is a boat be sufficient? I am not sure if enabling it for all boats is the best idea here.

As for the waypoint, it is something we've had in LCPDFR and found to work well. I've added it to the documentation, however.

 

I don't think I want an option that marks ambient units to respond to a certain location as soon as you encounter them/they spawn. I feel like it would tie in better with your last remark about explicitly requesting ambient units. A plugin could call this function say every second to make sure that an ambient unit, if any, will respond to a certain location. That would give it the greatest flexibility in terms of response instead of duplicating much of that logic.

 

The Interaction Menu locations for fire stations and hospitals are hardcoded.  The police station and jail locations use stations.xml data.  What is it you would be looking to do with these?

 

And yeah, we know that there are a lot of things that aren't in the API just now, but we will see about adding them when we get around to the API update which I think was what we said a little while back.

Please do not PM me unless really necessary (knowing you helps). If you think you need my attention in a topic, tag me.

Link to comment
Share on other sites

I just want to note as well that it'd be a lot better if we could use topics like this on the forums to report development related issues and ask us questions, rather than making uninformed, salty comments on twitter, discord, or wherever else. 

 

If you think there's an issue with something, just let us know about it here.

 

 

"You tell me exactly what you want, and I will very carefully explain to you why it cannot be."

Link to comment
Share on other sites

1 minute ago, Sam said:

I just want to note as well that it'd be a lot better if we could use topics like this on the forums to report development related issues and ask us questions, rather than making uninformed, salty comments on twitter, discord, or wherever else. 

 

If you think there's an issue with something, just let us know about it here.

 

 

Just remember you've done amazing work here Sam, it will always be the minority who decide to make comments like this, they don't represent the bigger population who support you through all the challenges

Link to comment
Share on other sites

6 minutes ago, 1000Phoenix said:

Just remember you've done amazing work here Sam, it will always be the minority who decide to make comments like this, they don't represent the bigger population who support you through all the challenges

 

I understand that, but I think it is particularly disappointing and frankly, disrespectful, when other developers are involved.  Calling us out on twitter and saying that it'd make too much sense for us to keep our dependencies updated, when in actual fact we have good reason (and there are easily solutions available) as @LMS explained above, is ignorant and disrespectful.

 

We are happy to make fixes where necessary.  We have already committed to a fairly substantial API update to leverage the new features in LSPDFR 0.4, and we're here only a day after release answering questions and offering solutions.

"You tell me exactly what you want, and I will very carefully explain to you why it cannot be."

Link to comment
Share on other sites

40 minutes ago, LMS said:

 

We ran into issues before with properly handling dynamic Json and ConfuserEx and find that the version shipped works best for us. If you wish to use a different version you can always ship your own dll with a different name or ilmerged into your assembly. We do merge a few dependencies already to remove some clutter and we can look into merging our Json lib into the main assembly in the future too.

 

As for boats, it is not something we actively support as our logic for traffic stops is focused on vehicles. Would an override per entity to let it be allowed to be pulled over even it is a boat be sufficient? I am not sure if enabling it for all boats is the best idea here.

As for the waypoint, it is something we've had in LCPDFR and found to work well. I've added it to the documentation, however.

 

I don't think I want an option that marks ambient units to respond to a certain location as soon as you encounter them/they spawn. I feel like it would tie in better with your last remark about explicitly requesting ambient units. A plugin could call this function say every second to make sure that an ambient unit, if any, will respond to a certain location. That would give it the greatest flexibility in terms of response instead of duplicating much of that logic.

 

The Interaction Menu locations for fire stations and hospitals are hardcoded.  The police station and jail locations use stations.xml data.  What is it you would be looking to do with these?

 

And yeah, we know that there are a lot of things that aren't in the API just now, but we will see about adding them when we get around to the API update which I think was what we said a little while back.

 

 

  • Regarding the Newtonsoft dependency, quite a number of mods use other versions of it, and some common FiveM mods conflict if a different version of Newtonsoft is in the root GTA V folder too. I think this is a good one to bundle with ILMerge, for both LSPDFR itself and any plugin creators using it too. I'm personally planning to not use it out of the root folder anymore going forward, having seen a number of conflicts with this particular dependency. 
  • With boats, I understand it's not a core/deliberate feature of LSPDFR, but it did work just fine in LSPDFR 0.3.1 without any workarounds, but I know a lot has changed with pullover logic since then. (Congrats btw, cars pull over to the curb much better now, I was impressed with that.) What objections would you have to allowing it on any boat though? I can't envision any situations where it would cause a problem - as long as you can't blip unoccupied vehicles, it shouldn't be a problem with e.g. boats on trailers in traffic or anything like that. I suppose an allow pullover entity override would be useful though... maybe someone someday will think up some scenario where they want to pull over a taxiing plane or something, who knows. 
  • Having a function to call whenever you want to attract ambient patrol units to respond to an area would be nice, especially if you could specify Code 2 or Code 3, and if it returned the Vehicle instance. I could imagine people using that for stuff ranging from traffic stop backups to road blocks to callout responses. 
  • For Hospitals and Fire stations: I can think of several mods, both my own and others, which use this data already. For EMS-related mods (Better EMS and Agency Callouts come to mind), ambulances deliver patients they've picked up to the hospital. Better EMS also spawns the responding vehicles at the Fire Station and/or Hospital. There could also be callout scenarios like e.g. drive an officer with a gunshot wound to the nearest hospital, etc. So being able to customize and then get the position (with that position being a spot a vehicle could spawn/park) would be nice. 

 

Thanks for being receptive to ideas about the upcoming API update!

 

[REL] Coastal Callouts: An action-packed mod with new vehicles, maps, capabilities, and callouts in and around the waters of Los Santos

[REL] Police Tape: Make your scenes more realistic while stopping peds and traffic

[REL] Better EMS: Realistic and dynamic EMS response

Join the Parks Benefactor Program to support my work and get early beta access!

Link to comment
Share on other sites

5 hours ago, PNWParksFan said:
  • With boats, I understand it's not a core/deliberate feature of LSPDFR, but it did work just fine in LSPDFR 0.3.1 without any workarounds, but I know a lot has changed with pullover logic since then. (Congrats btw, cars pull over to the curb much better now, I was impressed with that.) What objections would you have to allowing it on any boat though? I can't envision any situations where it would cause a problem - as long as you can't blip unoccupied vehicles, it shouldn't be a problem with e.g. boats on trailers in traffic or anything like that. I suppose an allow pullover entity override would be useful though... maybe someone someday will think up some scenario where they want to pull over a taxiing plane or something, who knows. 

 

No objections per se, it's just not something that was ever meant to work in the first place as our traffic stops were only designed for vehicles.  How does it work anyway?  Do you do stuff when a boat gets pulled over? 

"You tell me exactly what you want, and I will very carefully explain to you why it cannot be."

Link to comment
Share on other sites

4 hours ago, Sam said:

 

No objections per se, it's just not something that was ever meant to work in the first place as our traffic stops were only designed for vehicles.  How does it work anyway?  Do you do stuff when a boat gets pulled over? 

 

Sure. You pull over a boat for the same reasons you'd pull over a car, just on the water 🙂. Speeding, boating intoxicated, being reckless, smuggling drugs, etc. It's also common to do safety inspections on boats where you stop them, board the boat to make sure they have all the required equipment and permits, then send them on their way. I use API integration with LSPDFR+ to add custom traffic stop questions with boating-specific questions like checking for boating license, fishing license, life jackets, etc. 

 

Here's a very short simple video showing some of the very initial testing I did. There's a bit of custom code in use here to facilitate it, but it's using stock LSPDFR 0.3.1 pullovers + LSPDFR+ Traffic Stop menu. 

 

 

 

[REL] Coastal Callouts: An action-packed mod with new vehicles, maps, capabilities, and callouts in and around the waters of Los Santos

[REL] Police Tape: Make your scenes more realistic while stopping peds and traffic

[REL] Better EMS: Realistic and dynamic EMS response

Join the Parks Benefactor Program to support my work and get early beta access!

Link to comment
Share on other sites

On 2/26/2019 at 6:30 AM, PNWParksFan said:

 

 

 

You learn something new every day.  I did not expect pulling over a boat to go that smoothly.

I'm thinking we could allow boats to be blipped again and then simply disable the new logic for boats and just make them stop where they are.

"You tell me exactly what you want, and I will very carefully explain to you why it cannot be."

Link to comment
Share on other sites

1 hour ago, Hunter1976 said:

Is LSPDFR+ going to be updated to v0.4 or when will that be done?

LSPDFR+ is a user made modification, it has nothing to do with this API thread.

 

It’ll be updated when Albo1125 gets around to releasing the latest pull requests:

 

https://github.com/Albo1125/LSPDFRPlus

Link to comment
Share on other sites

Alright, tested some of the new API methods tonight. Here's some questions, suggestions, and bugs: 

 

  • Even with "Main.DisableAmbientScriptHooks = true" set in the lspdfr.ini, once I unload LSPDFR I can't reload it without restarting the game. See log below. I have 16 GB of RAM, an i7-6700k, and a GTX 1070, so it's not a matter of shitty specs. I noted it says "Hook encountered low memory environment", but I'm only using about 70% of available RAM and about 60% of available VRAM. This consistently happens, even across reboots, and is quickly driving me crazy. 
     
    Spoiler
    
    [2/28/2019 12:51:14 AM.279] LSPD First Response: [WARN] Failed to resolve CHASE_3
    [2/28/2019 12:51:14 AM.444] LSPD First Response: [WARN] Failed to resolve VEH_2
    [2/28/2019 12:51:14 AM.611] LSPD First Response: [WARN] Failed to resolve VEH_3
    [2/28/2019 12:51:14 AM.767] LSPD First Response: [WARN] Failed to resolve VEH_4
    [2/28/2019 12:51:14 AM.936] LSPD First Response: [WARN] Failed to resolve GLS_1
    [2/28/2019 12:51:15 AM.295] LSPD First Response: [WARN] Failed to resolve STA_1
    [2/28/2019 12:51:16 AM.880] LSPD First Response: [TRACE] Hook encountered low memory environment, forcing manual collection
    [2/28/2019 12:51:16 AM.915] LSPD First Response: [TRACE] Thread CharacterCreation #1 initialized
    [2/28/2019 12:51:19 AM.959] LSPD First Response: 
    [2/28/2019 12:51:19 AM.961] LSPD First Response: ==============================
    [2/28/2019 12:51:19 AM.961] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK
    [2/28/2019 12:51:19 AM.961] LSPD First Response: ------------------------------
    [2/28/2019 12:51:19 AM.962] LSPD First Response: Origin: Game fiber "<UNNAMED THREAD>".
    [2/28/2019 12:51:19 AM.962] LSPD First Response: ------------------------------
    [2/28/2019 12:51:19 AM.962] LSPD First Response: Exception type: System.ArgumentException
    [2/28/2019 12:51:19 AM.963] LSPD First Response: Exception message: STATUS_INVALID_PARAMETER_1: Invalid entry point. (Code: 0)
    [2/28/2019 12:51:19 AM.963] LSPD First Response: ------------------------------
    [2/28/2019 12:51:19 AM.963] LSPD First Response: Inner exceptions:
    [2/28/2019 12:51:19 AM.964] LSPD First Response: ------------------------------
    [2/28/2019 12:51:19 AM.964] LSPD First Response: Stack trace:
    [2/28/2019 12:51:19 AM.964] LSPD First Response: at EasyHook.LocalHook.Create(IntPtr InTargetProc, Delegate InNewProc, Object InCallback)
    [2/28/2019 12:51:19 AM.965] at ?????????????????????????????????????????.?????????????????????????????????????????[](IntPtr ,  , Object , CallingConvention ) in E:\GTA V\LSPD First Response\LSPD First Response\Engine\Unmanaged\Hooking.cs:line 57
    [2/28/2019 12:51:19 AM.965] at ?????????????????????????????????????????.?????????????????????????????????????????[](IntPtr ,  ) in E:\GTA V\LSPD First Response\LSPD First Response\Engine\Unmanaged\Hooking.cs:line 17
    [2/28/2019 12:51:19 AM.965] at ?????????????????????????????????????????.?????????????????????????????????????????() in E:\GTA V\LSPD First Response\LSPD First Response\Engine\Unmanaged\Hooks.cs:line 126
    [2/28/2019 12:51:19 AM.966] at LSPD_First_Response.Mod.LSPDFR.InitializeBackground() in E:\GTA V\LSPD First Response\LSPD First Response\Mod\LSPDFR.cs:line 503
    [2/28/2019 12:51:19 AM.966] at Rage.GameFiber.Main()
    [2/28/2019 12:51:19 AM.966] LSPD First Response: ==============================
    [2/28/2019 12:51:19 AM.967] LSPD First Response: 
    [2/28/2019 12:51:19 AM.981] LSPD First Response: [FATAL] Forced termination
    [2/28/2019 12:51:19 AM.985] LSPD First Response: [TRACE] Released 0 entities from DefaultContentManager
    [2/28/2019 12:51:20 AM.000] LSPD First Response: [INFO] LSPDFR has shut down

     


     

  • The new Events work nicely, and will come in handy for a lot of things. Requests for a couple of new events:

    • OnPulloverOfficerTalkingToSuspect(LHandle pullover, Ped suspect) - Fire whenever the "Press E to talk to Suspect" prompt is shown, i.e. when the traffic stop interaction menu is available. Would be useful for e.g. if you want the ped to do something specific while being talked to, or if you want to add integrations like many mods do for questioning menus, narcotics observations, etc. 

    • OnBackupRequested(Vehicle vehicle, Vector3 position, EBackupResponseType responseType, EBackupUnitType backupUnitType, string agencyScriptName) - Fire this event whenever backup is requested, either through the RequestBackup API Function or through the in-game backup menu. Would be useful for more detailed/specific callouts (think e.g. the bank heist callout), or for mods that wish to customize backup behavior in some way. 
       

  • It appears that when an Event handler is called, it is not called in a separate GameFiber. Therefore, if you sleep, hibernate, or loop/yield in an event handler, it will hold up other LSPDFR processes. For example, putting a Sleep in OnPulloverStarted causes the vehicle to keep driving and not pull over until the sleep ends; putting it in OnCalloutFinished causes no new callouts to come in and callout cleanup not to run. It's easy enough to put my logic inside the event handler in a new GameFiber myself, now that I know, but I foresee this being a major pitfall for any dev who doesn't notice, so I think it'd make sense to have the event invokers invoke each event in a new gamefiber automatically. 
     

  • A few bug reports:

    • An occasional NotImplementedException is being thrown during pursuits:

      Spoiler
      
      [2/28/2019 12:43:29 AM.710] LSPD First Response: [TRACE] [CONSOLE] System.NotImplementedException: The method or operation is not implemented.
      [2/28/2019 12:43:29 AM.711] at ????? in E:\GTA V\LSPD First Response\LSPD First Response\Engine\Scripting\AI\StrictCooldownFail.cs:line 39
      [2/28/2019 12:43:29 AM.712] at ????? in E:\GTA V\LSPD First Response\LSPD First Response\Mod\BackupManager.cs:line 81
      [2/28/2019 12:43:29 AM.712] at ????? in E:\GTA V\LSPD First Response\LSPD First Response\Mod\BackupManager.cs:line 845

       

       

    • Sometimes at the end of a pursuit, cop peds using the MP freemode ped will rapidly flash different hair colors

    • If a matching audio file isn't found for a given police scanner audio string, the remainder of the string won't play after whichever one isn't found

[REL] Coastal Callouts: An action-packed mod with new vehicles, maps, capabilities, and callouts in and around the waters of Los Santos

[REL] Police Tape: Make your scenes more realistic while stopping peds and traffic

[REL] Better EMS: Realistic and dynamic EMS response

Join the Parks Benefactor Program to support my work and get early beta access!

Link to comment
Share on other sites

  • Management Team
5 hours ago, PNWParksFan said:
  • Even with "Main.DisableAmbientScriptHooks = true" set in the lspdfr.ini, once I unload LSPDFR I can't reload it without restarting the game. See log below. I have 16 GB of RAM, an i7-6700k, and a GTX 1070, so it's not a matter of shitty specs. I noted it says "Hook encountered low memory environment", but I'm only using about 70% of available RAM and about 60% of available VRAM. This consistently happens, even across reboots, and is quickly driving me crazy. 

     

  • It appears that when an Event handler is called, it is not called in a separate GameFiber. Therefore, if you sleep, hibernate, or loop/yield in an event handler, it will hold up other LSPDFR processes. For example, putting a Sleep in OnPulloverStarted causes the vehicle to keep driving and not pull over until the sleep ends; putting it in OnCalloutFinished causes no new callouts to come in and callout cleanup not to run. It's easy enough to put my logic inside the event handler in a new GameFiber myself, now that I know, but I foresee this being a major pitfall for any dev who doesn't notice, so I think it'd make sense to have the event invokers invoke each event in a new gamefiber automatically. 

 

 

Could you please attach a full log for the first issue? What happens is that a lot of memory hooks are not freed properly on shutdown for you, corrupting the game state. Depending on how LSPDFR shuts down (unloaded or crash) you should see the following in the log: "Graceful termination/Forced Termination" followed by "LSPDFR has shut down". If you only see the first bit but not the last message, chances a crash happens on cleanup. It might be in the log.

 

I think it is very much expected for any kind of event to be invoked in the context of the thread that fired the event, that is how events usually work in .NET. When an event is invoked on a different thread, it becomes delayed in the sense that the source could be invalid by the time you actually handle the event. Making an event asynchronous by default is hence a very bad idea and I fail to see how it could be desirable. If you need to perform expensive logic in an event handler, chances are the code does not belong there and should be queued up instead. DelayedCaller in LMS.Common provides means to queue up calls for the next tick, in case you do not have your own implementation already. Keep in mind that the event might be invalid at this point though.

Please do not PM me unless really necessary (knowing you helps). If you think you need my attention in a topic, tag me.

Link to comment
Share on other sites

A issue I have found is when concluding a pursuit , The number of suspects apprehended is never correct. E.G I Pursued a baller with 4 occupants, They stopped 2 of them got out , started shooting ,one was killed the other surrendered. The other 2 were ripped out of the vehicle and apprehended. Never the less, In the notification , Suspects Apprehended = 6. 😕 Suspects killed = 1.

Link to comment
Share on other sites

17 hours ago, LMS said:

 

 

Could you please attach a full log for the first issue? What happens is that a lot of memory hooks are not freed properly on shutdown for you, corrupting the game state. Depending on how LSPDFR shuts down (unloaded or crash) you should see the following in the log: "Graceful termination/Forced Termination" followed by "LSPDFR has shut down". If you only see the first bit but not the last message, chances a crash happens on cleanup. It might be in the log.

 

I think it is very much expected for any kind of event to be invoked in the context of the thread that fired the event, that is how events usually work in .NET. When an event is invoked on a different thread, it becomes delayed in the sense that the source could be invalid by the time you actually handle the event. Making an event asynchronous by default is hence a very bad idea and I fail to see how it could be desirable. If you need to perform expensive logic in an event handler, chances are the code does not belong there and should be queued up instead. DelayedCaller in LMS.Common provides means to queue up calls for the next tick, in case you do not have your own implementation already. Keep in mind that the event might be invalid at this point though.

 

Attached log. Loaded, forced on duty, conducted one pursuit (and ultimately terminated because it was taking too long for a simple test lol). Forced off duty, then unloaded. No crashes during unloading. Tried to load again, failed and threw exception. Interestingly, it says "Graceful termination" but never gets to "LSPDFR has shut down" in the first run, but it does say "LSPDFR has shut down" after the crash in the second run. I tested this with all ASI mods removed, no LSPDFR plugins loaded, no other RPH/SHV/SHVDN plugins loaded, and after a fresh reboot.

 

Regarding the events, that's a good point which I hadn't considered. I'll just make sure to start a new fiber if doing anything that won't return promptly. 

 

RagePluginHook.log

Edited by PNWParksFan

[REL] Coastal Callouts: An action-packed mod with new vehicles, maps, capabilities, and callouts in and around the waters of Los Santos

[REL] Police Tape: Make your scenes more realistic while stopping peds and traffic

[REL] Better EMS: Realistic and dynamic EMS response

Join the Parks Benefactor Program to support my work and get early beta access!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...