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

GunnDawg

Members

Downloaded and don't see an .ini file. I only have a HeliOrbitPlugin.dll in the HeliOrbitPlugin v1.3.8.zip file

OJdoesIt

Members Author

49 minutes ago, GunnDawg said:

Downloaded and don't see an .ini file. I only have a HeliOrbitPlugin.dll in the HeliOrbitPlugin v1.3.8.zip file

Download v1.3.6 (update) and then install v1.3.8 (hotfix).

SGT SOUZA

Members

please,where do i find this skin ???

SilentEagle

Members

Love the Plugin!

There's any way to change the light of the heli to be less white?

OJdoesIt

Members Author

7 hours ago, Dorian138 said:

Love the Plugin!

There's any way to change the light of the heli to be less white?

No option yet.

Officer ufo1

Members

For some reason this plugin always works correctly when I call for "Air Support" from the default backup menu (Down on the Right Stick) . And by work correctly I mean the "Air Support" unit only follows the suspect with the spotlight. However, when I call for "Air Support" from Albo1125's Police Smart Radio the "Air Support" unit follows either the suspect or me with the spotlight, depending on who's closer to the "Air Support" unit. When the "Air Support" unit follows me with the spotlight rather than the suspect the Plugin does not seem to be working correctly.

OJdoesIt

Members Author

On 11/25/2017 at 12:58 PM, ufo1galaxy said:

For some reason this plugin always works correctly when I call for "Air Support" from the default backup menu (Down on the Right Stick) . And by work correctly I mean the "Air Support" unit only follows the suspect with the spotlight. However, when I call for "Air Support" from Albo1125's Police Smart Radio the "Air Support" unit follows either the suspect or me with the spotlight, depending on who's closer to the "Air Support" unit. When the "Air Support" unit follows me with the spotlight rather than the suspect the Plugin does not seem to be working correctly.

Sometimes there's difficulty in finding a suspect outside of a pursuit/pullover. There is not universal method or memory that holds the suspect handles.

ShottyGunny

Members

no .INI file?  no Readme? only lower versions

 

OfficerJoseph

Members

there's no INI in the download. 

OJdoesIt

Members Author

14 hours ago, OfficerJoseph said:

there's no INI in the download. 

That's because it's a minor update. So use INI from previous version.

OfficerJoseph

Members

(edited)

cool, thanks

 

Edited by OfficerJoseph

BlueLine Vibes

Members

On 1/22/2018 at 9:11 AM, OfficerJoseph said:

there's no INI in the download. 


After downloading a few of these I found the ini.  It's in version  v1.3.6    not sure why it would not be in the latest version of a download.  But there you have it.

Reffie1997

Members

Please add an option in the ini file where I can configure the spotlight color. I want to set my heli spotlight to white!

Vampyre

Members

@OJdoesIt Just encountered an issue where if you are in a helicopter yourself during a pursuit, the script will take control of your helicopter to use it for the script.... It will also not release control once the suspect is caught by AI.

CptLuckyStar

Members

(edited)

I used to have a request  a Air Support button on Police Smart Radio, I think it was tied in with Heli Orbit also can you tie in Heli Orbit with request Air Support with Vocal Dispatch?, anyone know what I'm talking about?

Thanks

Edited by CptLuckyStar

Officer ufo1

Members

Your latest versions don't include all the original necessary files, why is that? I don't care I already have them I'm just trying to help others

Tha Mexikan

Members

(edited)

this mod is great !!!

 

Edited by THUNDERBUTT2017

PliskinYT

Members

Will you be adding compatibility for Custom Backup?

HiJack0512

Members

(edited)

I can download it and install it fine and call helicopters in game, however the ini is empty and can therefore not use the plugin. Any help would be appreciated. 

 

Edit: nvm should have been smart and read some of the recent comments but great plugin

 

Edited by HiJack0512

FoxTrot999

Members

@OJdoesIt does this still work? As when I call for heli via the radio in a pursuit the heli only seems to circle around me and then leave after a few secs even tho there is a threat active, the vanilla one works fine 

pcGAMEZguy

Members

(edited)

Is there a way this would work without Arrest Manager?

 

Edited by pcGAMEZguy

OfficerBlackOut

Members

(edited)

I'm not sure if I'm just an idiot and am missing something with the download, but the plugin after a pursuit ends for me the helicopter says it's going 10-8 and then just hovers there indefinitely or until I get about 5 miles away. Also, I found that the ini file is empty, so did I install everything correctly?

Edited by OfficerBlackOut

Ofc Johnson

Members

Downloaded but no INI?

dracuslayer

Members

I have re-downloaded this script 3 times thinking a error in the download. Their is no ini. I don't know if i am blind of what. I looked everywhere on the page and do not see it any where.

SAS994

Members

I hope that you can separate the chase speed and the hovering speed of the helicopter, because when I use the helicopter view, the helicopter hover speed makes me dizzy. When I lower the OrbitSpeed, the helicopter can't catch up with the target.

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.