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.

Heli Assistance - Observer Mode, Customizable Searchlight, More Features 2.4.2

(33 reviews)

7 Screenshots

This mod simulates the flight patterns of Southern California (more specifically, Los Angeles area) law enforcement air support helicopters. That is, they will orbit around a target entity or position instead of just hovering above. A spotlight will track the subject when night-time. You may also call for a backup heli anytime while on-duty.

 

 

 

A Must-Have For Realistic Gameplay!

 

 

 

 

Make sure to put HeliAssistance.dll and HeliAssistance.ini and HeliAssistance.pdb into \Plugins\LSPDFR folder.

Make sure you have the latest RageNativeUI installed. And make sure you have Spotlight installed.

 

API for Developers (for usage with v2.4.2)

Spoiler
namespace HeliAssistanceAPI
{
	using LSPD_First_Response.Mod.API;
	using Rage;
    using Functions = HeliAssistance.API.Functions;

    internal static class HeliAssistanceWrapper
	{
		private const string DllPath = @"Plugins\LSPDFR\HeliAssistance.dll";
		private static readonly bool DllExists = System.IO.File.Exists(DllPath);

		/// <summary>
		/// One more wrapper to prevent <see cref="CanBeUsed"/> from trying to load the HeliAssistance assembly.
		/// </summary>
		private static class IsLoadedWrapper
		{
			public static bool IsLoaded => Functions.IsLoaded;
		}

		/// <summary>
		/// Checks if the plugin is loaded within LSPDFR (i.e. LSPDFR is loaded and the player is on duty).
		/// </summary>
		public static bool CanBeUsed => DllExists ? IsLoadedWrapper.IsLoaded : false;

		/// <summary>
		/// Determines whether the menu can be toggled by the player. If set to false, the menu will be closed if it is visible.
		/// </summary>
		public static bool CanPlayerUseMenu
        {
			get => Functions.CanPlayerUseMenu;
			set => Functions.CanPlayerUseMenu = value;
        }

		/// <summary>
		/// Requests the air unit to be created and respond to the <see cref="Entity"/> target. If the air unit is already active and/or alive, then it will merely have the air unit respond to the target.
		/// </summary>
		public static void RequestAirUnit(Entity target) => Functions.RequestAirUnit(target);

		/// <summary>
		/// Requests the air unit to be created and respond to the <see cref="Vector3"/> target. If the air unit is already active and/or alive, then it will merely have the air unit respond to the target.
		/// </summary>
		public static void RequestAirUnit(Vector3 target) => Functions.RequestAirUnit(target);

		/// <summary>
		/// Dismisses the air unit from any active player-requested task.
		/// </summary>
		public static void DismissAirUnit() => Functions.DismissAirUnit();

		/// <summary>
		/// Attaches the active air unit to the <see cref="LHandle"/> pursuit.
		/// </summary>
		public static void AssignAirUnitToPursuit(LHandle pursuit) => Functions.AssignAirUnitToPursuit(pursuit);
		
		/// <summary>
		/// Removes the air unit from the <see cref="LHandle"/> pursuit.
		/// </summary>
		public static void RemoveAirUnitFromPursuit() => Functions.RemoveAirUnitFromPursuit();

		/// <summary>
		/// Checks if the air unit exists, regardless of its current assigned task.
		/// </summary>
		public static bool IsAirUnitAlive() => Functions.IsAirUnitAlive();

		[System.Obsolete("Use IsAirUnitInService()")]
		public static bool IsAirUnitActive() => Functions.IsAirUnitActive();

		/// <summary>
		/// Checks if the air unit exists and is currently assigned to a player-assigned task.
		/// </summary>
		public static bool IsAirUnitInService() => Functions.IsAirUnitInService();

		/// <summary>
		/// Assigns a new <see cref="Entity"/> target to the air unit, if it is active in service.
		/// </summary>
		public static void UpdateTarget(Entity target) => Functions.UpdateTarget(target);

		/// <summary>
		/// Assigns a new <see cref="Vector3"/> target to the air unit, if it is active in service.
		/// </summary>
		public static void UpdateTarget(Vector3 target) => Functions.UpdateTarget(target);

		/// <summary>
		/// Updates the air unit's flight characteristics. Pass a value <= 0 to a parameter to restore the default value of the respective flight behavior.
		/// </summary>
		/// <param name="flightAltitude">The altitude the air unit will fly when responding or following a target.</param>
		/// <param name="flightSpeed">The speed the air unit fly when responding or following a target. Value should be in GTA's default measurement, m/s.</param>
		/// <param name="orbitRadius">The radius the air unit will orbit.</param>
		/// <param name="orbitSpeed">The speed the air unit will orbit. Value should be in GTA's default measurement, m/s.</param>
		public static void UpdateFlightCharacteristics(float flightAltitude = -1f, float flightSpeed = -1f, float orbitRadius = -1f, float orbitSpeed = -1f) => Functions.UpdateFlightCharacteristics(flightAltitude, flightSpeed, orbitRadius, orbitSpeed);

		/// <summary>
		/// Sets the on-scene duration to the given <paramref name="duration"/>. If the air unit is already in the on-scene task, then it will extend the duration to the given <paramref name="duration"/>.
		/// </summary>
		/// <param name="duration">In milliseconds</param>
		public static void UpdateOnsceneDuration(int duration) => Functions.UpdateOnsceneDuration(duration);

		/// <summary>
		/// Checks if the target of the air unit is the given <see cref="Entity"/>. <br/>Note: Make sure to call <see cref="IsAirUnitInService"/> to verify the air unit is active before calling this.
		/// </summary>
		public static bool IsCurrentTarget(Entity pedToCheck) => Functions.IsCurrentTarget(pedToCheck);

		/// <summary>
		/// Checks if the target of the air unit is the given <see cref="Vector3"/>. <br/>Note: Make sure to call <see cref="IsAirUnitInService"/> to verify the air unit is active before calling this.
		/// </summary>
		public static bool IsCurrentTarget(Vector3 posToCheck) => Functions.IsCurrentTarget(posToCheck);

		/// <summary>
		/// Retrieves the <see cref="Entity"/> the air unit is targeting. <br/>Note: Make sure to call <see cref="IsAirUnitInService"/> to verify the air unit is active before calling this.
		/// </summary>
		public static Entity GetCurrentTarget() => Functions.GetCurrentTarget();

		/// <summary>
		/// Retrieves the <see cref="Vector3"/> the air unit is targeting. <br/>Note: Make sure to call <see cref="IsAirUnitInService"/> to verify the air unit is active before calling this.
		/// </summary>
		public static Vector3 GetCurrentTargetPosition() => Functions.GetCurrentTargetPosition();

		/// <summary>
		/// Checks if the air unit is active, but not assigned to the player's request. In other words, is the air unit currently roaming around.
		/// </summary>
		/// <returns></returns>
		public static bool IsCurrentlyRoaming() => Functions.IsCurrentlyRoaming();
	}
}

 

Take a look at the INI at least once to make sure you are satisfied with the settings. 

 

Special Thanks:

@alexguirre

@DiamondTKG

@NorthKing

@Echooo

LSPDFR Developer Discord

Edited by OJdoesIt
Update

What's New in Version 2.4.2

Released

- Added feature to modify the jerk rate and distance (shakiness) of the searchlight
- Improved the accuracy of ETA
- Updated API to allow an Entity object to be targeted instead of just a Ped object
- Made minor updates to the API methods


Short Description

helicopter helicopter helicopter helicopter

User Feedback

Recommended Comments

ziipzaaapM16A4

Insiders

(edited)

i think i can't use LMenu as Menu Modifier!

 

Do you think you could implement 2 air units and every time you request one the nearest free air unit will respond?

Edited by ziipzaaapM16A4

TheUniT

Friends of LSPDFR

I love it, though I've noticed a pretty reliable crash that occurs whenever the pursuit suspect escapes or the vehicle of a traffic stop for whatever reasons despawns (ArgumentException). It'd be great if you could fix that.

travon

Members

Question, how do i turn off the lspdfr helicopter spotlight ?

 

celticcross989

Members

for some reason when I am in a pursuit it can not find the target it just flys away

celticcross989

Members

Also even after having helo follow player it still dissapears

 

Palfy205

Members

On 9/24/2020 at 3:08 PM, celticcross989 said:

Also even after having helo follow player it still dissapears

 

Exact same thing is happening for me, the pursuit helicopter does not follow the suspect, rather it follows me. With Natural Vision Evolved then light is so bright I can't see when I drive which makes it a hazard to use, more then a tool. Would be great to get that fixed @OJdoesIt

  • Community Team

Can confirm, game crashed after a pursuit.

 

[11/12/2020 2:23:39 PM.411] LSPD First Response: ==============================
[11/12/2020 2:23:39 PM.411] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK
[11/12/2020 2:23:39 PM.411] LSPD First Response: ------------------------------
[11/12/2020 2:23:39 PM.411] LSPD First Response: Origin: Game fiber "HeliAssist".
[11/12/2020 2:23:39 PM.411] LSPD First Response: ------------------------------
[11/12/2020 2:23:39 PM.411] LSPD First Response: Exception type: System.ArgumentException
[11/12/2020 2:23:39 PM.411] LSPD First Response: Exception message: The specified vehicle is invalid.
[11/12/2020 2:23:39 PM.411] Parameter name: vehicle
[11/12/2020 2:23:39 PM.411] LSPD First Response: ------------------------------
[11/12/2020 2:23:39 PM.411] LSPD First Response: Inner exceptions:
[11/12/2020 2:23:39 PM.411] LSPD First Response: ------------------------------
[11/12/2020 2:23:39 PM.411] LSPD First Response: Stack trace:
[11/12/2020 2:23:39 PM.411] LSPD First Response: at Rage.Ped.IsInVehicle(Vehicle vehicle, Boolean atGetIn)
[11/12/2020 2:23:39 PM.411] at HeliAssistance.OptionsMenu.ForcePlayerExitObserverMode()
[11/12/2020 2:23:39 PM.411] at HeliAssistance.Main.OnTick()
[11/12/2020 2:23:39 PM.411] at Rage.GameFiber.Main()
[11/12/2020 2:23:39 PM.411] LSPD First Response: ==============================

 

kalelmcgrif

Members

Does anyone know how I can get the helicopter Spotlight to show up in Rockstar Editor? It woks fine in game. But the moment I want to Use the editor, it doesn't show up

celticcross989

Members

I have an issue when in a pursuit the helicopter wont track the suspect. it gets called in then just flys off

rhino331

Members

(edited)

No problem when I use this plugin, but when the helicopter moves away, the game crashes

i using the latest version of this plugin & RageNativeUI & RPH.

 

 

 

RagePluginHook.log

Edited by rhino331

1000Phoenix

Members

Got a crash using mod

 

Spoiler

[12/24/2020 5:26:06 PM.828] LSPD First Response: ==============================
[12/24/2020 5:26:06 PM.828] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK
[12/24/2020 5:26:06 PM.828] LSPD First Response: ------------------------------
[12/24/2020 5:26:06 PM.828] LSPD First Response: Origin: Game fiber "HeliAssist".
[12/24/2020 5:26:06 PM.828] LSPD First Response: ------------------------------
[12/24/2020 5:26:06 PM.828] LSPD First Response: Exception type: System.NullReferenceException
[12/24/2020 5:26:06 PM.828] LSPD First Response: Exception message: Object reference not set to an instance of an object.
[12/24/2020 5:26:06 PM.828] LSPD First Response: ------------------------------
[12/24/2020 5:26:06 PM.828] LSPD First Response: Inner exceptions:
[12/24/2020 5:26:06 PM.828] LSPD First Response: ------------------------------
[12/24/2020 5:26:06 PM.828] LSPD First Response: Stack trace:
[12/24/2020 5:26:06 PM.828] LSPD First Response: at HeliUnit.ProcessSearchlight()
[12/24/2020 5:26:06 PM.828] at HeliAssistance.Main.OnTick()
[12/24/2020 5:26:06 PM.828] at Rage.GameFiber.Main()
[12/24/2020 5:26:06 PM.828] LSPD First Response: ==============================

 

dylanlive

Members

What's the max "TimeToRemainOnscene" that can be set? I tried setting 300 seconds (5 minutes) but that didn't seem to work. In game, I can only set up to 90 seconds.

 

Would be amazing if you could increase this. Honestly, I want it to remain on scene until I dismiss it (though I'm willing to set a timeout incase I forgot for some reason).

 

Great mod, will write a review soon! Thanks!

SomeponyNopony

Members

(edited)

Can't open the menu.

Edited by SomeponyNopony

CouthOcean82166

Members

Menu won't open (even though I'm pressing the specified key bind), same with when I try to spawn a chopper in, any recommendations on what to do?

On 9/3/2020 at 4:57 PM, travon said:

Question, how do i turn off the lspdfr helicopter spotlight ?

 

open the heli assistance config settings, and find the spotlight operation, and change it from true to false

For some reason, whenever I try to open the menu, it doesn't open. I've kept the setting in it's default settings. Any way to fix this?

AmaanZeb

Members

Sounds dumb but how do i use this. Everything works but i can't get the actual menu to show up only the returning to base notifications in the bottom left.

carpless

Members

I'm not sure, if needs an update, but when using with ambient AI callouts, it crashes too frequently, will try and stop Ambient AI assigning the helicopter from the.ini's if possible, and only request it when i want it, real shame as its the prefect addon to make the realism. 

Absolutely love this mod, great mod.

celticcross989

Members

is there any way that when you call for a helo it can have the livery of the area you are in?

1XERO1

Members

I'm having a bit of trouble with the air unit during pursuits. It constantly lags behind and is only able to catch up and provide a spotlight when the suspect stops moving, even after setting it to the highest speed I can allow it to travel at. Anyt ideas why this is?

John Lead

Members

Is there anyway to change the helicopter model to use something other than Polmav? 

AdderFTW888

Members

This plugin would be great if the helicopter actually kept up with the suspect instead of losing him when he goes just a little faster...

ziipzaaapM16A4

Insiders

(edited)

Did anyone else had this shadow bug?
https://streamable.com/mbpbx3   At   1:16

i had 3 light sources. LSPDFRs flashlight, Spotlight by alexguirre and HeliAssistance.
The bug appeared only when the Helicopter arrived.

Edited by ziipzaaapM16A4

Luke1243

Members

the plugin doesnt work for me dose any1 know y?

 

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.