CES HeliCam
#CES HeliCam
CES HeliCam is a police helicopter camera for FiveM. The operator flies a helicopter, opens the camera, locks a vehicle, runs a tracking light, and the script narrates the target to ground units in chat. Ground officers can mark targets and ask for the light with /lightme.
It is standalone: no framework, no database, no inventory. It needs OneSync.
#What it can do
- Gimbal camera with smooth zoom (FOV 80 to 4), steady aim when zoomed, light airframe shake.
- Three vision modes: normal, night vision, thermal.
- Target lock on vehicles with aim assist, and an info card (make, plate, colour, speed, heading, distance, street).
- Tracking light in three sizes that other players can see.
- Auto callouts to on-duty units: eyes on, updates every 7 seconds, stopped, moving again, lost visual.
- Target marks: a blip and search radius on unit maps for 120 seconds.
/lightme: a ground officer asks the nearest camera to light them. The operator presses Y or N.- Pilot arrow showing the bearing and distance to the locked target.
/helicamtune: admin tool to fit the camera and light position per helicopter model, saved for everyone.
#What it can not do
- It does not stream the camera picture to other players. Others see the beam and the callouts.
- It has no built-in CAD or radio. A
Config.Callout.Hookis provided so you can forward callouts to yours. - Thermal colour presets (white hot, black hot, amber, green) only appear on server builds that have both
SeethroughSetColorNearandSeethroughSetColorFar. On other builds thermal uses GTA's default look and the preset key is hidden. - Person tracking and evidence snapshots are not in v1.0.
#Install
- Put the
CES_HeliCamfolder in yourresourcesfolder. - Make sure OneSync is on.
- Add to
server.cfg:
ensure CES_HeliCam
add_ace group.police cheli.use allow
add_ace group.police cheli.unit allow
add_ace group.admin cheli.admin allow- Add your players to those groups (for example
add_principal identifier.license:xxxx group.police). - Restart the server, get in a police helicopter and press
Eor type/helicam.
To test with no permissions set, set Config.EnableAceChecks = false in config.lua. The tuner always needs cheli.admin.
#Permissions
| ACE | Who | Gives |
|---|---|---|
cheli.use |
Camera operators | Open the camera. Also counts as cheli.unit. |
cheli.unit |
Ground units | Receive callouts, see marks, send /lightme. |
cheli.admin |
Admins | /helicamtune. |
Use Config.CustomPermissionCheck(src, kind) to hook a framework job check. Return true or false, or nil to fall back to ACE.
#Using the camera
You must be in a listed helicopter (pilot or passenger) at least 3 m above the ground.
| Key | Action |
|---|---|
E or /helicam |
Open / close the camera (rebind in Settings > Key Bindings > FiveM) |
| Mouse | Move the camera |
| Mouse wheel | Zoom |
| Right mouse | Vision: normal, night, thermal |
| Space | Lock / release the vehicle under the crosshair |
| Q | Target info: full, compact, off |
| M | Light: small, medium, large, off |
| G | Mark target for ground units (press again to clear) |
| B | Auto callouts on / off |
| Y / N | Accept / decline a /lightme request |
| Z | Thermal colour preset (only on builds that support it) |
#Callouts
With a target locked, units with cheli.unit get a chat line and a GTA notification, for example:
AIR-1: Eyes on a Karin Sultan, heading east on Vinewood Blvd, 45 mph.
Updates repeat every 7 seconds. Extra lines are posted when the target stops, moves again, or is lost. The server limits each operator to one callout every 2.5 seconds. Turn callouts off with B.
Change the unit name with Config.Callout.UnitName, add the plate with IncludePlate, and forward lines to your own radio with Config.Callout.Hook.
#Target marks
Press G with a locked target or light on the ground. Units see a blip and a search radius for 120 seconds. The server checks that the mark is within range of the camera before accepting it.
#Light requests
A ground officer types /lightme. The nearest active camera within 1500 m gets a prompt for 12 seconds. On Y the camera and beam stay on the officer for 25 seconds. Cooldown is 20 seconds per player.
#Pilot arrow
When the operator locks a target, the pilot sees an arrow and a distance on screen so they can fly to it. Off with Config.Pilot.Enabled = false.
#Offset tuner
Not every helicopter has the camera in the same spot. As an admin, open the camera and type /helicamtune.
| Key | Action |
|---|---|
| Arrow keys, Page Up / Page Down | Move the offset |
| Enter | Switch between camera and light |
| Numpad Enter | Save |
| Shift / Ctrl | Fine / coarse steps |
Saved offsets go to offsets.json and apply to every player on that model.
#Configuration
Everything is in config.lua (not locked by escrow).
| Setting | What it does |
|---|---|
Config.Command, Config.Keybind |
Open command and default key |
Config.Units |
mph or kph |
Config.Helicopters |
Spawn names allowed. Add-on helicopters are fine. |
Config.Models |
Per-model camera and light offsets (ships with Polmav and Annihilator) |
Config.Camera |
Height limit, FOV range, zoom, sensitivity, smoothing, shake |
Config.Vision |
Default mode and thermal presets |
Config.Light |
Colour, three stages, sync range |
Config.Callout |
Interval, stop detection, plate, chat, notify, hook |
Config.Mark |
Duration, cooldown, blip style |
Config.Request |
/lightme command, range, timings |
Config.Controls |
Every key (GTA control ids) |
Config.Strings |
All text, for translation |
#For developers
Client events: ces_helicam:opened, closed, locked, released, calloutPosted, marked.
Server exports: exports.CES_HeliCam:GetOperators(), IsOperator(src), GetMark(src).
#Troubleshooting
Nothing happens when I press E. Check you are in a helicopter listed in Config.Helicopters, at least 3 m up, and that you have cheli.use. Check the key is not rebound.
"You are not authorised." The ACE lines are missing or the player is not in the group. Test with Config.EnableAceChecks = false.
The camera or light comes from the wrong place. Use /helicamtune for that model.
Other players do not see the beam. They must be within 700 m and OneSync must be on.
Thermal has no colour options. Your server build lacks the colour natives. Thermal still works in GTA's default look.
No callouts. Callouts need a locked target and units with cheli.unit. Check B has not turned them off.
Script error after update. Replace the whole resource folder, keep your config.lua values, and restart.
Was this article helpful?