This script uses CFX Escrow to secure the code!
Minimum price 4 USD (“Pay What You Want”)
Store Product Link: https://bzn.tebex.io/package/4790235
Preview: https://youtu.be/2_XSo-L5c0s
Documentation: https://development.bzn.dk/
This dos not use any framework and can be integrated with everything (besides encrypted resources)
I know something like this has been done before, but this is my take on how to do it, I got the idea for doing this quite some time ago, and finally got around to actually creating it, instead of just thinking about it.
The way Blips are registered are via exports, why? Because a lot of script got a build in way of doing blips, and converting that to using an export is fairly easy to do, I have made some examples on my discord, and I am more than willing to help you learn how to integrate it in to your scripts.
Everything can be done via exports.
exports.bzn_blip_handler:RegisterBlipGroup('groupName', 'label', 'scale', 'show')
exports.bzn_blip_handler:RemoveBlipGroup('groupName')
exports.bzn_blip_handler:RegisterBlip('groupName', 'label', 'position', 'sprite', 'color')
And yes it’s possible to have blips from different scripts in the same group! If you restart a script that registered blips, they will be auto removed, so it’s ready to get new blip data from your script.
The code is written with performance in mind, and only uses very little CPU usage, when the script loads for the player, or if a resource is restarted, a garbage collection script will be triggered to run after one minute, to ensure the lowest amount of memory is used on the players computer.
The JavaScript is handcrafted to fit this script 100% and key event listeners are ONLY running when UI is open, most other script sadly tends to have listeners for KeyUp, og Mouseclicks active all the time.
The config file is well documented and there is only a few options needed.
Config = {}
Config.EnableDebug = true -- Set to false when you are done integrating to avoid users getting console spam.
Config.UIPosition = 'left' -- Can be 'left' or 'right'
Config.BlipHandlerCommand = 'blipsettings' -- Change the command to open Blip Handler UI default is /blipsettings.
Config.UseKeyMapping = true -- You can select if you want to use key mapping for opening Blip Handler UI, or just command (if you just want command make sure to disable Config.UseESC)
Config.DefaultBlipHandlerKey = 'U' -- Default key to open Blip Handler UI.
-- Rewritten the ESC integration, now supports P to, it adds an alternative Key mapping to FiveM, and a alternative command, CPU usage for listening for the ESC key is gone, only uses CPU when pause menu is active.
-- Users can map there keys like they want to, if they mapped it to something else then ESC ex. U only U will open the UI, and it wont open when in pause menu, freedome to the user!
Config.UseESC = true
Config.ESCWait = 1000 -- Waiting after button press to check if pause menu is active, this is needed for it to open up correct, since there is a delay from pressing esc, until the native checking for pause screen is changed.
Changelog
Changelog v1.0.1
v1.0.1 – Added feature so the UI opens when you open the pause menu via ESC – this adds a bit of CPU usage when activated since it uses a different way for registering key presses.
Changelog v1.0.2
v1.0.2 – In fxmanifest.lua you can now change index_right.html to index_left.html if you want the ui to be on the left side of the screen.
Changelog v1.0.3
v1.0.3 – Rewritten the ESC code to use KeyMapping, removing the CPU usage listening for ESC key, now supports P key to.
So now KeyMapping and Command will work again when ESC feature is enabled.
Added config option to change UI position you can select 'right' or 'left'
Enjoy!
Store Link: https://bzn.tebex.io/