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

BenOrton

Members

any plans to update some of your older plugins?

 

OJdoesIt

Members Author

2 hours ago, BenOrton said:

any plans to update some of your older plugins?

 

Which ones? I already updated several ones.

BenOrton

Members

(edited)

On 6/1/2020 at 1:43 AM, OJdoesIt said:

Which ones? I already updated several ones.

OJScenarios,OJCallouts,OJManhunt @OJdoesIt

Edited by BenOrton

KhanofLegend

Members

image.thumb.png.c61c7bb7420ac3f2367413dcbc75b7c7.pngRepeatable bug after dismissing helicopter backup, causes crash

OJdoesIt

Members Author

2 hours ago, KhanofLegend said:

image.thumb.png.c61c7bb7420ac3f2367413dcbc75b7c7.pngRepeatable bug after dismissing helicopter backup, causes crash

I'm assuming this is while you were in Observer mode?

Someone else reported this crash. I will have a fix for it in next update.

CptLuckyStar

Members

(edited)

Thanks for adding Observer Mode it's what makes this plugin so immersive. If it's not too much trouble could you consider adding a button for SmartRadio in an update. Thanks.

Edited by CptLuckyStar

billc5123

Members

(edited)

On 5/31/2020 at 8:43 PM, OJdoesIt said:

 

Oj, i  try to go to observer mode and its not working , is there a criteria to teleport to helicopter??

 

Edited by billc5123

OJdoesIt

Members Author

5 hours ago, billc5123 said:

Oj, i  try to go to observer mode and its not working , is there a criteria to teleport to helicopter??

 

The heli has to be active. You need to request the heli first.

billc5123

Members

On 6/8/2020 at 3:58 PM, OJdoesIt said:

The heli has to be active. You need to request the heli first.

Ya its flying around over the scene  and I open the menu and go to observer mode and nothin happens

OJdoesIt

Members Author

8 hours ago, billc5123 said:

Ya its flying around over the scene  and I open the menu and go to observer mode and nothin happens

Show me a video if you can.

Dongas

Members

I have a problem that Menu is not coming up. Apparently I think it's working somehow - when I requested heli support, the heli had been hovering around and gave spotlight, like the function of this plugin - but I can't toggle the Menu.

noob master0613

Members

On 6/13/2020 at 3:56 PM, geunhyeong said:

I have a problem that Menu is not coming up. Apparently I think it's working somehow - when I requested heli support, the heli had been hovering around and gave spotlight, like the function of this plugin - but I can't toggle the Menu.

i am having the same issue at the moment 

 

OJdoesIt

Members Author

On 6/13/2020 at 7:56 AM, geunhyeong said:

I have a problem that Menu is not coming up. Apparently I think it's working somehow - when I requested heli support, the heli had been hovering around and gave spotlight, like the function of this plugin - but I can't toggle the Menu.

 

On 6/20/2020 at 10:46 AM, noob master0613 said:

i am having the same issue at the moment 

 

Make sure to have RageNativeUI installed. Make sure you are pressing both of the ToggleMenu and ToggleMenuModifier keys.

LtRob

Members

(edited)

Is there a way to have the heli observe indefinitely? Not just for 90 secs I mean

Edited by LtRob

OJdoesIt

Members Author

5 hours ago, LtRob said:

Is there a way to have the heli observe indefinitely? Not just for 90 secs I mean

Set Player as the target to have it indefinitely follow the player. Or before the 90s, use Update Heli.

JBin818

Members

Can the Menu be brought up by using the Function Keys?  I wanted to bring up the Menu by pressing F9.  F9 number is 120 if I remember.  I don't have a modifier key.  Tried changing it in the ini. but the menu doesn't pop up. 

OJdoesIt

Members Author

7 hours ago, JBin818 said:

Can the Menu be brought up by using the Function Keys?  I wanted to bring up the Menu by pressing F9.  F9 number is 120 if I remember.  I don't have a modifier key.  Tried changing it in the ini. but the menu doesn't pop up. 

Set the modifier key in the INI to the same number as the regular key. So:

ToggleMenu=120

ToggleMenuModifier=120

Master Yoda

Members

Hey there, i wanted to let you know of a bug i found which can be recreated following the steps in bold below. When requesting for a helicopter, and sending it back to base the heli refuses to return despite it saying its returning to base. It only leaves once you leave the area, and until then it just orbits around the last thing you set it to orbit, eg. your last location.

To recreate the bug just ask for a helicopter, let it roam around for a minute or two, then send it back to HQ through the menu.

Mikkerix

Members

10 hours ago, OJdoesIt said:

The crash is from Heli Assistance mod. Are you using the latest version of that mod?

Can't remember, I deleted it after the crash. I only had it for abt 3 days, so I assume I used the latest version. 

ichigohatake

Members

My game crashed even though I did not have an assist helicopter, I was just doing a regular pursuit.

RagePluginHook.log

Si954RR

Members

Anyway to get the menu to work with a controller?

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.