[Release] Realistic Axon Body 3 (and OBS version)

Realistic Axon Body 3

About

The most realistic Axon Body 3 script, based on Axon Body Camera.
Available for OBS and other streaming software
img
img

Image 1: a real AB3 overlay
Image 2: this script

TFNRP’s Axon Body 3 script’s goal is to be as realistic as possible, with future plans for more audio files the real Axon Body 3 uses.

Installation

Clone from Git or download manually

git clone https://github.com/TFNRP/axonbody3.git

To be able to use AB3, implement the ab3.user.toggle ace in your server config.

Note: If you don’t need ACL checks, you may disable this ace by setting CommandAccessAce to nil, and implement the client-side logic in CommandAccessHandling.

Features

  • Supports the TFNRP framework to allow use for LEO.
  • Just like the real thing. Beeps every 2 minutes whilst recording, audible to nearby players.
  • Realistic overlay, with the same font used by Axon, ISO-8601 date format and transparent Axon logo.
  • Maximum server performance. Everything that can be done client-side, is.
  • Two commands included:
    • /axon, /axonon, /axonoff - Starts/stops Axon recording
    • /axonhide, /axonshow - Hide/show the first-person overlay

Configuration

The config.lua is shared between the client and server.
Config variables are explained in greater detail in config.lua, but here’s an overview.

Warning
Do not enter server secrets in config.lua.

property type description
CommandBinding = 'u' string|nil Keybind to use for on/off command. May be nil for no keybind
ThirdPersonMode = false boolean Whether the axon overlay is also visible in third person
CommandAccessHandling function Handling used to verify if the client should be able to enable AB3
CommandAccessAce = 'ab3' string|nil Use ACL to determine whether the client should be able to enable AB3
ThrottleServerEvents = false boolean Whether server events should be throttled server-side
ThrottleDropPlayer = true boolean Whether the player should be dropped if the throttle is violated

Screenshots

img

Contributing

Please read Contributing before submitting a pull request.

Credits & Copyright

Licensed under MIT License.


For OBS streamers

TFNRP’s Realistic Axon Body 3 now has an OBS-compat version which works as a on-stream overlay:

Installation

No special installation or dependencies required.
Clone from Git or download manually.

$ git clone https://github.com/TFNRP/axonbody3-obs.git

Usage

  1. Create a new Browser Source Component (Right Click in Preview → AddBrowser).
  2. Check Local file, click Browse and locate index.html from the directory you donwloaded Axon Body 3 OBS.
  3. Set Width and Height to your Canvas resolution (usually 1920 by 1080).
  4. Click OK. Now you should have a functioning AB3 overlay in OBS.

Configuration

We also supply a config.js for further ehancement:

  • CustomCameraId: If you’d like to use a custom id for the overlay. It will replace the randomly generated id.
  • ForceUTCTimeZoneOffset: Can be false or a numebr. Setting this to a number will override the UTC offset instead of using your current UTC offset.
  • CalculateDaylightSavingsTime: Can be true or false. Setting this to true will make the overlay advance an hour ahead during Daylight Saving Time.
  • BeepVolume: Can be a number. This will determine the volume of interval beeps, which occur every two minutes. Set this to 0 if you do not want beeping.
5 Likes

I’m gonna sound like an idiot probably, but what is an “Axon Body 3” ? I see you explaining that this is JUST like one, but What is it? lol.

2 Likes

AB3 is the most recent body camera in production by Axon, the leading company in the police equipment industry.
You can check out their website:

Oh awesome so this is kind of an overlay with sound effects and everything to give that realistic feel to it?

Quite exactly what it is!

1 Like

Awesome, I bet my cops would love this. Thanks for the information, Definitely going to give it a shot right now.

OP has been updated with installation specifications - my bad.

does someone got an esx version?

Nice work :100:

ESX isn’t hard to implement, if you’ve read the documentation.
No one is going to make an ESX version because there’s not much to change. Also, this is a dev-release and therefore no configuration - you just get the source and shape it the way you want.

Contains content from GitHub - RCPisAwesome/FiveMRCPAxonCamera: Axon body camera overlay for FiveM, The Grand Theft Auto 5 Multiplayer Mod

v0.1.0 has been released

Features (new)

  • c158abe config property for allowing third-person hud

Fix

Refactor

Chore

  • 80e0b9d remove character tabulation for space
  • bb5ac53 add repository information
  • 63472fd remove leading timestamp

Documentation (readme)

  • d7eac4e general documentation within readme
  • 26c1e27 include image comparison
  • 51cc03d change header and add ToC
  • 845548d add credits and further details
  • 9e6cddf update readme to document config

For OBS streamers

TFNRP’s Realistic Axon Body 3 now has an OBS-compat version which works as a on-stream overlay:

Installation

No special installation or dependencies required.
Clone from Git or download manually.

$ git clone https://github.com/TFNRP/axonbody3-obs.git

Usage

  1. Create a new Browser Source Component (Right Click in Preview → AddBrowser).
  2. Check Local file, click Browse and locate index.html from the directory you donwloaded Axon Body 3 OBS.
  3. Set Width and Height to your Canvas resolution (usually 1920 by 1080).
  4. Click OK. Now you should have a functioning AB3 overlay in OBS.

Configuration

We also supply a config.js for further ehancement:

  • CustomCameraId: If you’d like to use a custom id for the overlay. It will replace the randomly generated id.
  • ForceUTCTimeZoneOffset: Can be false or a numebr. Setting this to a number will override the UTC offset instead of using your current UTC offset.
  • CalculateDaylightSavingsTime: Can be true or false. Setting this to true will make the overlay advance an hour ahead during Daylight Saving Time.
  • BeepVolume: Can be a number. This will determine the volume of interval beeps, which occur every two minutes. Set this to 0 if you do not want beeping.

Whenever the axon beeps, it plays it for everyone in the server, no matter the distance between the players. Any solution to this?

I wasn’t aware of this until now. I’ll look into it and release a patch asap.
For now, you can disable the beep by commenting out the second line of server.lua.

No worries, i tried fiddling around with it myself, but couldnt come to a solution. If i do, ill be sure to make a PR in Github. Other then that, i love the script, keep up the good work!

I’ve submitted an issue for it. If you have any further information that would be useful, let use know there.

Edit: This issue has been fixed, caused by an apparent OneSync oversight. See commit 82b015

If you want to use this without the framework go into the config.lua and replace

 CommandAccessHandling = function ()
    return exports.framework:GetLocalClientDuty() > 0
  end,

With

CommandAccessHandling = function ()
     return true
  end,

Everything should work fine after that.

1 Like

This has been deprecated as of commit 31953e8. By default, CommandAccessHandling returns true.
We’ve moved away from having TFNRP framework hardcoded. It is now supported at runtime.
If you wish to help support other frameworks, feel free to create a pull request.