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

Mrbiker

Members

Hello, just I would like to know that this plugin actually does because LSPDFR 0.4 already modifies the helicopter but this plugin does what "better" thank you.

OJdoesIt

Members Author

(edited)

35 minutes ago, Mrbiker said:

Hello, just I would like to know that this plugin actually does because LSPDFR 0.4 already modifies the helicopter but this plugin does what "better" thank you.

Features:

  • Have backup whenever you want (callouts, pursuit, traffic stop, follow player)
  • Realistic orbital flight pattern (as seen with many California law enforcement agencies)
  • Modify some flight characteristics (speed, orbit radius)
  • Modify heli blip color
  • Change the searchlight color
  • Toggling persistence allows heli to roam the whole map when not helping the player (e.g. you can dismiss the heli and the heli will fly to a random position and orbit for some time, then fly to another random position and orbit, and repeat; this occurs until the player requests the heli again; therefore the heli is never deleted)

Edited by OJdoesIt

MisterM23

Members

(edited)

 

1 hour ago, OJdoesIt said:

Translated: Would be cool if he would also load where I want it. So that I can continue to fly.

What do you mean to load where you want it?

Das man den Heli. auf der Straßen landen lassen könnte. Zur Zeit fliegt er ja nur über einem. 

Edited by MisterM23

John Dartu

Members

Sorry to annoy you again with questions..🙈

 

I really love the persistence option! 

 

So the Heli apparently is not spawned from the game startup, so it does not spawn before you call it the first time right? Once I had a thing, that I called it the first time and it instantly crashed (well I was at Vinewood Boulevard and I think it spawned in the Hills and immediately crashed). The thing is that it wasn´t possible to respawn it via the menu without a game restart. So there is really that only one chopper per session 😄

 

The second thing is: Would it be possible to set a max distance from the player in the Ini while the Heli is on its own "tour of duty"? Cause sometimes it takes really long till it arrives when its somewhere in the north at Paleto Bay or something and you actually you need it in LS. Even with the max 100 mp/h travel speed set. Yes maybe realistic, but some scenarios are by far over before the Heli arrives. 

 

And as a last mention.. Sometimes I call it and before it arrives I get the message that it is 10-8 again and then it stops coming to me.

12Agent12

Members

OJ, Do you plan on updating the felony stop plugin?

OJdoesIt

Members Author

9 hours ago, MisterM23 said:

 

Das man den Heli. auf der Straßen landen lassen könnte. Zur Zeit fliegt er ja nur über einem. 

That will not be added. I can probably do something where you're a passenger.

5 hours ago, John Dartu said:

Sorry to annoy you again with questions..🙈

 

I really love the persistence option! 

 

So the Heli apparently is not spawned from the game startup, so it does not spawn before you call it the first time right? Once I had a thing, that I called it the first time and it instantly crashed (well I was at Vinewood Boulevard and I think it spawned in the Hills and immediately crashed). The thing is that it wasn´t possible to respawn it via the menu without a game restart. So there is really that only one chopper per session 😄

 

The second thing is: Would it be possible to set a max distance from the player in the Ini while the Heli is on its own "tour of duty"? Cause sometimes it takes really long till it arrives when its somewhere in the north at Paleto Bay or something and you actually you need it in LS. Even with the max 100 mp/h travel speed set. Yes maybe realistic, but some scenarios are by far over before the Heli arrives. 

 

And as a last mention.. Sometimes I call it and before it arrives I get the message that it is 10-8 again and then it stops coming to me.

Yes it doesn't spawn upon startup. When the hello crashes, you can toggle the persistence option and it'll remove the heli. You can then request a new heli.

 

I will look into adding the distance option.

 

When it returns 10-8, what target option was selected?

28 minutes ago, AgentAdam12 said:

OJ, Do you plan on updating the felony stop plugin?

Currently being developed. Things are looking very promising.

Deactivated Member

Deactivated

Does this work with UB's Air Support?

John Dartu

Members

5 minutes ago, OJdoesIt said:

Yes it doesn't spawn upon startup. When the hello crashes, you can toggle the persistence option and it'll remove the heli. You can then request a new heli.

Yeah guess thats "lighter" for the anyways "heavy" startup of LSPDFR. But yeah I tried that, did not work sorry.

5 minutes ago, OJdoesIt said:

I will look into adding the distance option.

Nice 🙂

5 minutes ago, OJdoesIt said:

When it returns 10-8, what target option was selected?

Player and Traffic Stop. The Helo returns before it arrives. Sometimes it orbits a bit further away from my position after I called it (to player) and does not actually come to me but I can see the Chopper. Then I dismiss it and immediately call it back again, then it comes properly.

OJdoesIt

Members Author

(edited)

1 hour ago, skyred50 said:

Does this work with UB's Air Support?

Nope.

1 hour ago, John Dartu said:

Yeah guess thats "lighter" for the anyways "heavy" startup of LSPDFR. But yeah I tried that, did not work sorry.

Nice 🙂

Player and Traffic Stop. The Helo returns before it arrives. Sometimes it orbits a bit further away from my position after I called it (to player) and does not actually come to me but I can see the Chopper. Then I dismiss it and immediately call it back again, then it comes properly.

I'll test it out right now.

Update: I tested the Player and Traffic Stop targets and they work fine. I'm thinking that a plugin may be deleting the original traffic stop ped and recreates it, thus the heli returning. @John Dartu

Edited by OJdoesIt

12Agent12

Members

1 hour ago, OJdoesIt said:

That will not be added. I can probably do something where you're a passenger.

Yes it doesn't spawn upon startup. When the hello crashes, you can toggle the persistence option and it'll remove the heli. You can then request a new heli.

 

I will look into adding the distance option.

 

When it returns 10-8, what target option was selected?

Currently being developed. Things are looking very promising.

Beautiful.

Do you have any plans with your callouts?

OJdoesIt

Members Author

45 minutes ago, AgentAdam12 said:

Beautiful.

Do you have any plans with your callouts?

I will do a quick update just to get it working with 0.4.6 without bugs/crashes. Then if I have the energy, I'll rework the callout pack from scratch.

John Dartu

Members

1 hour ago, OJdoesIt said:

Update: I tested the Player and Traffic Stop targets and they work fine. I'm thinking that a plugin may be deleting the original traffic stop ped and recreates it, thus the heli returning.

Yeah, well it is not that bad or annoying though 🙂

55 minutes ago, OJdoesIt said:

I will do a quick update just to get it working with 0.4.6 without bugs/crashes. Then if I have the energy, I'll rework the callout pack from scratch.

Great! Very appreciated to have your stuff back  🙂

Cyanotic

Members

Man, during the heli orbit days there was a hotkey option in the ini for the helibackup. Would be great to have that or have this respond to UB/vocal dispatch for heli assistance

OJdoesIt

Members Author

6 hours ago, Cyanotic said:

Man, during the heli orbit days there was a hotkey option in the ini for the helibackup. Would be great to have that or have this respond to UB/vocal dispatch for heli assistance

I'll look to add it on next update.

OfficerMod

Members

Does this mean our lord and savior OJ is working on OJcallouts and search warrant!?!?!?! Glad you’re back!

OJdoesIt

Members Author

9 hours ago, OfficerMod said:

Does this mean our lord and savior OJ is working on OJcallouts and search warrant!?!?!?! Glad you’re back!

I have two more plugins I am currently working on. One of them is being finalized. I will then do a quick update on the callouts to have them work for 0.4.6 with no bugs/crashes. Once I get the time, I will recode the callouts to have them better than ever.

Be on the lookout for my next released plugin though 😉

KnightHawkOne

Members

1 hour ago, OJdoesIt said:

I have two more plugins I am currently working on. One of them is being finalized. I will then do a quick update on the callouts to have them work for 0.4.6 with no bugs/crashes. Once I get the time, I will recode the callouts to have them better than ever.

Be on the lookout for my next released plugin though 😉

How I  feel after reading this...... giphy.gif

OfficerMod

Members

It's good to have you back. Your plugins changed the game.

OJdoesIt

Members Author

22 minutes ago, OfficerMod said:

It's good to have you back. Your plugins changed the game.

Appreciate that!

how did you use the heli camera.? And Nice Graphics.!

 

OJdoesIt

Members Author

4 hours ago, PeoplezHernandez said:

how did you use the heli camera.? And Nice Graphics.!

 

The camera is disabled in the latest update.

John Dartu

Members

On 3/12/2020 at 3:48 AM, OJdoesIt said:

I will look into adding the distance option.

And now you did it!!

 

Thank you very much, love this plug in! 🙂

Deactivated Member

Deactivated

What Type Of Graphics Mod Was That????

LtRob

Members

Is there a way to have the heli roam indefinitely until I press again the button used to spawn it?

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.