Dev Partner Integration
Are you building your own FiveM script and want to hook into our resources? This page lists every public export and event for all Agency scripts, with copy-pasteable Lua snippets so you can integrate them in seconds.
00 How exports work in FiveM
Exports let your own scripts call functions defined in Agency scripts, and events let you react to things that happen inside them. On the client side you use exports['script-name']:FunctionName(args); on the server side the same. Events are fired with TriggerEvent or TriggerServerEvent and listened to with RegisterNetEvent. Every example below is copy-pasteable into your own script.
17 Scripts
01 Agency-Phone
Full multi-framework phone with SMS, calls, social feed, mail, camera, wallet and AgencyPay checkout.
Client exports
| Export | Description |
|---|---|
IsPhoneOpen() | Returns true if the phone UI is currently open. |
Skips opening a custom menu while the phone UI is already on screen. | |
IsPhonePoweredOn() | Returns true if the phone is powered on. |
Pauses background sync work while the phone is powered down by the player. | |
GetPhoneData() | Returns the raw phone data table. |
Dumps the full client phone data table for debugging. | |
GetPhonePropEntity() | Returns the entity handle of the held phone prop, or 0 if not visible. |
Hides the phone prop entity briefly without affecting the underlying logic. | |
IsPhoneExpanded() | Returns true if the phone is expanded on screen. |
Legacy alias used to gate a minigame while the phone is open. | |
HasCarrierContract() | Returns true when the player has an active carrier data plan. |
Warns the player when no carrier data plan is currently active. | |
GetPhoneState() | Returns the complete phone state object. |
Caches phone state on the server only when the phone is open, on, and syncing. | |
HasPhone() | Returns true if the player has a phone item. |
Blocks an emergency-call command unless the player carries the phone item. | |
RegisterAgencyPayPoint(id, data) | Registers a recurring AgencyPay merchant terminal. |
Spawns a runtime Agency Pay terminal for a mechanic shop checkout. | |
RemoveAgencyPayPoint(id) | Removes a previously registered AgencyPay terminal. |
Removes the registered pay point when a shop closes for the night. | |
StartAgencyPayCheckout(data) | Opens the AgencyPay checkout sheet for secure card payment. |
Opens the phone and starts a small Agency Pay tip checkout. | |
StartCall(contactData) | Starts a pma-voice call using a contact table. |
Starts an outgoing phone call to a dispatched contact when an event arrives. | |
PhoneNotification(title, text, icon, color, timeout, acceptIcon, denyIcon) | Shows a phone notification with optional accept/deny buttons. |
Shows a blocking accept/deny phone notification for a tow contract. | |
Server exports
| Export | Description |
|---|---|
SendMail(identifier, mailData) | Sends mail to a player (online or offline). |
Sends an order receipt mail to a player by their primary identifier. | |
AddChirp(chirpData) | Posts a message to the Pulse (chirper) feed. |
Posts a bounty announcement to Chirper from a server-side event. | |
usePhone(event, item, inventory, slot, data) | ox_inventory hook registered when ESX+ox_inventory is detected; opens the phone for the inventory holder. |
Hooks ox_inventory's usingItem event to open the phone via the integration helper. | |
Public events
| Event | Side | Description |
|---|---|---|
agency-phone:client:notify | Client | Shows a phone notification (title, text, icon, color, timeout, silent). |
Fires a non-blocking phone toast that the player's vehicle is ready. | ||
agency-phone:client:usePhoneItem | Client | Triggers the phone open flow when the phone inventory item is used. |
Forwards a custom inventory item-use event to the phone open flow. | ||
agency-phone:client:openApp | Client | Asks the phone to navigate to a custom app by id (used by app modules). |
Jumps the phone straight to a custom banking app by app id. | ||
agency-phone:client:newMailNotify | Client | Notifies the client of a freshly received mail. |
Listens for new mail notifications and logs them for debugging. | ||
agency-phone:server:requestPhoneData | Server | Requests a fresh phone data sync for the calling player. |
Asks the server to push a fresh copy of the phone data sync. | ||
agency-phone:server:cancelCall | Server | Cancels or ends an active call. |
Hangs up an active call from a custom keybind or chat command. | ||
agency-phone:server:sendMessage | Server | Sends an SMS message (newMsg, targetNumber). |
Quickly sends an SMS to a target phone number from chat input. | ||
agency-phone:server:saveSetting | Server | Persists a single phone setting key/value for the player. |
Persists a single phone setting whenever the user toggles it client-side. | ||
agency-phone:server:airdropPay | Server | Performs an Agency Airdrop pay-to-nearby-player transfer. |
Triggers an Agency Airdrop pay-to-nearby transfer with the typed amount. | ||
agency-phone:server:buyDataPlan | Server | Buys a carrier data plan for the player (price, planName). |
Buys a chosen carrier data plan after the player picks one in a custom UI. | ||
agency-phone:dispatch:create | Server | Creates a phone dispatch from an emergency call/SMS. |
Generates a phone dispatch entry from an incoming emergency call. | ||
Integration example
-- Send a payment request to the player and handle the result
RegisterCommand('buy_coffee', function()
exports['agency-phone']:StartAgencyPayCheckout({
merchant = 'Joe\'s Corner Shop',
title = 'Agency Pay',
subtitle = 'Checkout ready',
label = 'Premium Coffee',
amount = 24.50,
icon = 'fa-solid fa-mug-hot',
accent = '#ff9f0a',
clientEvent = 'mycoffee:client:paymentResult',
serverEvent = 'mycoffee:server:paymentResult',
metadata = { orderId = 'order_2048' }
})
end)
RegisterNetEvent('mycoffee:client:paymentResult', function(data)
if data.status == 'success' then
TriggerServerEvent('mycoffee:server:giveItem', 'coffee')
end
end)
Use inside any shop/robbery/job script where you want a clean in-phone payment flow instead of instantly deducting money. Also ideal for in-game notifications with accept/deny flows (e.g. taxi ride requests, dispatch calls).
02 Agency-Pad
AgencyOS tablet with a full app ecosystem. Register your own apps via config.lua.
Client exports
| Export | Description |
|---|---|
IsPadOpen() | Returns true if the tablet UI is open (check tablet state before showing UIs). |
Avoids re-opening custom tablet UI if the in-game tablet is already up. | |
IsPadPoweredOn() | Returns true if the tablet is powered on. |
Pauses fleet polling while the tablet is powered off by the player. | |
GetPadData() | Returns the full client-side PadData table. |
Dumps the full client-side tablet data table for inspection. | |
GetPadPropEntity() | Returns the entity handle of the held tablet prop, or 0 if not visible. |
Hides the held tablet prop entity briefly during a custom cutscene. | |
IsPadExpanded() | Alias of IsPadOpen() kept for backward compatibility. |
Legacy alias used to gate a minigame while the tablet is open. | |
HasCarrierContract() | Returns true when the player has an active carrier data plan on the tablet. |
Warns the player if no carrier data plan is currently active on the tablet. | |
GetPadState() | Returns table { isOpen, poweredOn, syncEnabled } summarising current tablet status. |
Caches tablet state on the server only when it is open and powered on. | |
HasPad() | Returns true if the player has the configured tablet item in their inventory. |
Blocks a dispatch UI command unless the player carries the tablet item. | |
RegisterAgencyPayPoint(id, data) | Registers a runtime Agency Pay terminal at a coordinate (markers, blip, checkout payload). |
Spawns a runtime Agency Pay terminal at the hospital lobby for billing. | |
RemoveAgencyPayPoint(id) | Removes a previously registered Agency Pay terminal by id. |
Removes a registered tablet pay point when its location closes. | |
StartAgencyPayCheckout(data) | Opens the tablet (if needed) and launches an Agency Pay checkout flow with the given payment payload. |
Opens the tablet and starts an Agency Pay checkout for property tax. | |
StartCall(contactData) | Starts an outgoing tablet call to the supplied contact ({ name, number, ... }). |
Starts an outgoing tablet call when a dispatch event arrives. | |
PhoneNotification(title, text, icon, color, timeout, acceptIcon, denyIcon) | Shows an action notification with accept/deny buttons; blocks until the user responds and returns true/false. |
Shows a blocking accept/deny tablet notification to start a delivery mission. | |
Server exports
| Export | Description |
|---|---|
SendMail(identifier, mailData) | Sends a mail to the player's primary mailbox by identifier (returns success). |
Sends an invoice notification mail to a player by their identifier. | |
usePad(event, item, inventory, slot, data) | ox_inventory hook registered when ESX+ox_inventory is detected; opens the tablet for the inventory holder. |
Hooks ox_inventory to open the tablet via the integration helper. | |
usePhone(event, item, inventory, slot, data) | ox_inventory hook for the legacy phone item id; opens the tablet for the inventory holder. |
Routes the legacy phone inventory item to open the tablet UI instead. | |
Public events
| Event | Side | Description |
|---|---|---|
agency-pad:client:notify | Client | Shows a tablet notification (title, text, icon, color, timeout, silent). |
Fires a non-blocking tablet toast about a newly unlocked mission. | ||
agency-pad:client:usePadItem | Client | Opens the tablet when the inventory item is used. |
Forwards a custom inventory item-use event to the tablet open flow. | ||
agency-pad:client:openApp | Client | Trigger on the client to open a specific app inside the tablet. |
Jumps the tablet straight to a custom fleet management app. | ||
agency-pad:client:newMailNotify | Client | Notifies the client of a freshly received mail. |
Listens for new tablet mail notifications and logs them locally. | ||
agency-pad:client:hourlyPaycheck | Client | Notifies the client of an hourly business paycheck event. |
Reacts to an hourly business paycheck event from the tablet. | ||
agency-pad:server:requestPadData | Server | Requests a fresh tablet data sync for the calling player. |
Asks the server to push a fresh tablet data sync to the player. | ||
agency-pad:server:sendMessage | Server | Sends an SMS message (newMsg, targetNumber). |
Sends an SMS from the tablet via a custom command and number argument. | ||
agency-pad:server:airdropPay | Server | Performs an Agency Airdrop pay-to-nearby-player transfer. |
Triggers an Agency Airdrop transfer to nearby players from the tablet. | ||
agency-pad:server:buyDataPlan | Server | Buys a carrier data plan for the player. |
Buys a chosen tablet data plan after the player picks one in a custom UI. | ||
agency-pad:dispatch:create | Server | Creates a tablet dispatch from an emergency call/SMS. |
Generates a tablet dispatch entry from an incoming emergency call. | ||
agency-pad:server:biz:create | Server | Creates a new business/organisation for the player. |
Creates a new business entry from a custom in-game command. | ||
agency-pad:server:biz:adminCreate | Server | Admin creates a business on behalf of another player. |
Forwards an admin command to create a business on behalf of another player. | ||
agency-pad:server:biz:startMission | Server | Starts a configured business mission for the player. |
Starts a configured business mission for the calling player. | ||
agency-pad:server:applyToListing | Server | Submits a job application to a business listing. |
Submits a job application to a tablet business listing by id. | ||
agency-pad:server:createMechanicInvoice | Server | Creates a mechanic invoice draft. |
Creates a draft mechanic invoice for a vehicle plate and amount. | ||
agency-pad:server:sendMechanicInvoicePay | Server | Sends a mechanic invoice to a customer for payment. |
Sends a finalized mechanic invoice to the customer for payment. | ||
agency-pad:server:mdtCreateInvoice | Server | MDT creates a fine/invoice for a citizen. |
Creates an MDT fine/invoice for a citizen from a custom net event. | ||
Integration example
-- Register your own tablet app in Agency-Pad config.lua
Config.Apps['myapp'] = {
name = 'My Dashboard',
icon = 'fa-solid fa-chart-line',
color = '#ff9f0a',
nui = 'html/myapp.html',
resource = 'myapp-tablet',
storeDesc = 'A custom dashboard for my server.'
}
-- Then open it from any of your scripts:
TriggerEvent('agency-pad:client:openApp', 'myapp')
Perfect for admin dashboards, business management apps, gang territory maps, or any custom UI your players need inside GTA — it lives inside a beautiful tablet shell with no extra work.
03 Agency-LifeinvaderV3
Modern advertisement system with tiered pricing, ad queue, and admin approval.
Public events
| Event | Side | Description |
|---|---|---|
agency_lifeinvader:showAd | Client | Shows an ad to the player (broadcast helper). |
Broadcasts a community event ad notification to every player on the server. | ||
agency_lifeinvader:openMenu | Client | Opens the "create ad" menu. |
Opens the Lifeinvader main ad creation menu after the phone app is bought. | ||
agency_lifeinvader:openRecentMenu | Client | Opens the "recent ads" feed. |
Opens the recent ads feed menu after a contact tap in the phone app. | ||
agency_lifeinvader:notify | Client | Shows a framework notification on the player's screen (message, type). |
Shows a framework notification when the player's queued ad is approved. | ||
agency_lifeinvader:submitAd | Server | Submit a new ad from code (used by UI, can be re-used). |
Submits a vehicle sale ad with five repetitions every 60 seconds. | ||
Integration example
-- Let a player open the LifeInvader app from a radio click
RegisterCommand('openradio', function()
TriggerEvent('agency_lifeinvader:openMenu')
end)
Use as the in-game replacement for Twitter/Instagram. Perfect for businesses advertising new products, gangs announcing territory, or the admin team posting server news.
04 Agency-Blackmarket
Reputation-based black market with hacking, flash sales, vehicle trading, and money laundering.
Public events
| Event | Side | Description |
|---|---|---|
blackmarket:client:openMenu | Client | Opens the main black market menu. |
Opens the black market dealer main menu for the player after a job payout. | ||
blackmarket:client:closeMenu | Client | Closes any open black market menus for the player. |
Closes any open black market menus when the player gets cuffed by police. | ||
blackmarket:client:openLaunderingMenu | Client | Opens the money laundering submenu. |
Opens the money laundering submenu for the player after a successful heist. | ||
blackmarket:client:showNotification | Client | Displays a styled black market notification (title, message, type, duration). |
Displays a styled black market notification about a new shipment in town. | ||
blackmarket:server:checkAccess | Server | Checks the player's current access level. |
Checks if the calling player can access the black market and gets reputation. | ||
blackmarket:server:completeBuy | Server | Finalises a purchase after the client minigame succeeds. |
Finalises a black market purchase after the client minigame succeeds. | ||
blackmarket:server:sellItem | Server | Processes an item sale. |
Starts the sell flow for a stolen rolex with optional minigame and cooldown. | ||
blackmarket:server:completeSell | Server | Finalises a sale after the client minigame succeeds. |
Finalises the sale after the client haggle minigame succeeds. | ||
blackmarket:server:launderMoney | Server | Handles a money-laundering transaction. |
Launders dirty drug-trafficking money into clean cash with fees and extortion. | ||
Integration example
-- Hook an illegal NPC dealer to the black market menu
exports.qtarget:AddBoxZone('dealer_zone', vector3(100,200,30), 1.5, 1.5, {
options = {{
event = 'blackmarket:client:openMenu',
label = 'Talk to dealer',
icon = 'fa-solid fa-user-secret'
}},
distance = 2.0
})
Plug into your own robbery, heist or drug-dealing scripts — let the player sell stolen items here or launder their dirty cash before it becomes clean money.
05 Agency-Minerjob
Multi-framework mining job with 100-level skill progression, ox_lib skill checks and 6 ore types.
Public events
| Event | Side | Description |
|---|---|---|
agency_minerJob:openSellMenu | Client | Opens the sell menu at the ore refinery. |
Opens the trader sell menu so the player can sell their mined ores. | ||
agency_minerJob:sellItems | Server | Sells all ores at once at current market price. |
Sells every unit of the named ore at the current dynamic trader price. | ||
agency_minerJob:requestPlayerItems | Server | Returns the player's sellable mining items via receivePlayerItems. |
Asks the server for the list of ores the player can sell to the trader. | ||
agency_minerJob:requestPlayerSkill | Server | Returns a quick mining skill summary via receiveSkillInfo. |
Requests a quick mining skill summary returned via receiveSkillInfo. | ||
agency_minerJob:requestDetailedStats | Server | Returns the detailed mining stats payload via receiveDetailedStats. |
Requests the detailed mining stats and opens the stats menu via receiveDetailedStats. | ||
Integration example
-- Tie a "sell ores here" zone on your map to the minerjob sell menu
local zone = CreateThread(function()
while true do
Wait(500)
if #(GetEntityCoords(PlayerPedId()) - vector3(2954.5, 2750.2, 43.3)) < 2.0 then
TriggerEvent('agency_minerJob:openSellMenu')
Wait(3000)
end
end
end)
Great as a low-entry job for fresh players. Tie its XP progression to gang reputation, whitelist jobs, or use it as a sink for unemployed players.
06 Agency-Repairkits
Vehicle repair kit with progressive damage mechanics and modern UI.
Public events
| Event | Side | Description |
|---|---|---|
agencyrepairkit:client:startRepair | Client | Starts the repair animation & progress bar on the target vehicle. |
Universal trigger to start the repair-kit progress flow on the player's vehicle. | ||
esx-agencyrepairkit:client:useRepairKit | Client | ESX-specific alias that starts the repair-kit progress flow. |
ESX-specific alias that starts the repair-kit progress flow on the player's vehicle. | ||
qb-agencyrepairkit:client:useRepairKit | Client | QBCore-specific alias that starts the repair-kit progress flow. |
QBCore-specific alias that starts the repair-kit progress flow on the vehicle. | ||
Integration example
-- Trigger a repair from your own mechanic job script when a player
-- has the "mechanic_kit" item equipped:
TriggerEvent('agencyrepairkit:client:startRepair', vehicleHandle, 'medium')
Perfect inside mechanic jobs, tow-truck jobs, or as a consumable item in a general inventory. The progressive damage system pairs beautifully with a chop-shop or insurance script.
07 Agency-Vehiclekeys
Vehicle keys with lock/unlock, remote engine start, blinkers and key sharing.
Public events
| Event | Side | Description |
|---|---|---|
simple_carkeys:client:toggleLock | Client | Toggles lock state of the vehicle (respecting ownership). |
Networked lock toggle with key-fob animation, lights and sound for the initiator. | ||
simple_carkeys:client:toggleEngine | Client | Remote-starts or stops the targeted vehicle's engine. |
Networked engine on/off toggle for the supplied vehicle entity. | ||
simple_carkeys:client:showError | Client | Shows a generic 'not your car' error notification on the client. |
Shows a generic 'not your car' error notification on the client. | ||
simple_carkeys:client:showNotificationText | Client | Shows a success notification with arbitrary text on the client. |
Shows a success notification with arbitrary text on the client. | ||
simple_carkeys:client:showErrorText | Client | Shows an error notification with arbitrary text on the client. |
Shows an error notification with arbitrary text on the client. | ||
simple_carkeys:server:forceToggleLock | Server | Job/admin path: broadcasts a lock toggle for a vehicle without ownership checks. |
Job/admin path: broadcasts a lock toggle for a vehicle without ownership checks. | ||
simple_carkeys:server:forceToggleEngine | Server | Job/admin path: broadcasts an engine toggle for a vehicle without ownership checks. |
Job/admin path: broadcasts an engine toggle for a vehicle without ownership checks. | ||
simple_carkeys:server:checkOwnershipAndLock | Server | Validates ownership/shared keys for the plate then broadcasts a lock toggle on success. |
Validates ownership/shared keys for the plate then broadcasts a lock toggle on success. | ||
simple_carkeys:server:checkOwnershipAndStart | Server | Validates ownership/shared keys for the plate then broadcasts an engine toggle on success. |
Validates ownership/shared keys for the plate then broadcasts an engine toggle on success. | ||
simple_carkeys:server:universalEngineStart | Server | Allows any player to start any engine when Config.AllowUniversalEngineStart is enabled. |
Allows any player to start any engine when Config.AllowUniversalEngineStart is enabled. | ||
Integration example
-- In your own garage-out script, grant keys to the player before spawn
local plate = GetVehicleNumberPlateText(spawnedVeh)
TriggerServerEvent('simple_carkeys:server:giveKeys', plate)
Works as the "owns this vehicle" check for every other script — tow trucks, impound lots, valet parking, carjacking minigames. The validate export is safe to call from any other resource.
08 Agency-Vending
Vending machines with player ownership, cash or AgencyPay card payment.
Public events
| Event | Side | Description |
|---|---|---|
agency-vending:notify | Client | Generic server-driven notification dispatcher for the vending resource. |
Sends a generic vending-themed notification to the player after a purchase. | ||
agency-vending:startAgencyPay | Client | Initiates an Agency Pay checkout via the agency-phone integration with merchant metadata. |
Initiates an Agency Pay checkout via the phone with the kiosk's merchant data. | ||
agency-vending:buyMachineResult | Client | Result of a buy-machine purchase, forwarded to the NUI for feedback. |
Forwards a buy-machine purchase result to a custom shop NUI for feedback. | ||
agency-vending:machineCreated | Client | Broadcast that a new player-owned machine was created; updates local cache and notifies owner. |
Broadcasts a freshly created player-owned vending machine to all clients. | ||
agency-vending:openManagementVerified | Client | Server-verified open of the owner management menu with items, earnings and label. |
Opens the verified management UI with items, earnings and label after auth. | ||
agency-vending:openOwnedList | Client | Opens the owner overview NUI listing all of the player's machines with street names. |
Opens the owner overview NUI listing all of the player's vending machines. | ||
agency-vending:spawnMachineCreated | Client | Admin-spawner broadcast that a new spawned machine entity was created. |
Notifies all clients that an admin spawned a new vending machine entity. | ||
agency-vending:spawnMachineDeleted | Client | Admin-spawner broadcast that a spawned machine entity was deleted. |
Tells all clients that an admin deleted a previously spawned vending machine. | ||
agency-vending:openSpawnerUI | Client | Opens the admin spawner NUI after server-side permission check passes. |
Opens the admin spawner NUI for placing world vending machines. | ||
agency-vending:buyMachine | Server | Player buys a vending machine of a given type at the supplied coords/heading. |
Player buys a sprunk-type vending machine at their current coords from an NPC. | ||
agency-vending:requestOwnedList | Server | Caller requests the list of their owned machines for the owner overview UI. |
Requests the list of the player's owned vending machines from the server. | ||
agency-vending:requestMachines | Server | Caller requests a full sync of all player-owned machines from the server. |
Requests a fresh full sync of all player-owned vending machines from server. | ||
agency-vending:requestManagement | Server | Server-verified open of the management UI for an owned machine. |
Requests server-verified management UI for the clicked owned vending machine. | ||
agency-vending:requestSpawnedMachines | Server | Caller requests the list of admin-spawned machines for the spawner UI. |
Requests the list of all admin-spawned vending machines for the spawner UI. | ||
agency-vending:adminSpawnMachine | Server | Admin places a new vending machine prop server-side after permission check. |
Admin spawns a new snack-type vending machine prop after a permission check. | ||
agency-vending:adminDeleteSpawned | Server | Admin deletes a previously spawned vending machine prop server-side. |
Admin removes a previously spawned vending machine prop server-side. | ||
Integration example
-- Check nearby vending machines from your own "quick-buy" keybind
RegisterKeyMapping('+buyvending', 'Buy from nearby vending machine', 'keyboard', 'E')
RegisterCommand('+buyvending', function()
TriggerEvent('agency-vending:client:openMenu')
end, false)
Pair with Agency-Phone's AgencyPay export for card-based purchases. Use in jobs where players own vending locations (gas stations, offices, apartments) to generate passive income.
09 Agency-Admin
Full-featured admin panel with glass UI, AgencyAI chat, and 60+ admin tools.
Public events
| Event | Side | Description |
|---|---|---|
agency-admin:client:refreshStaffRanks | Client | Triggers the client to re-pull staff ranks data. |
Refreshes the staff ranks cache for every online admin after a promotion. | ||
agency-admin:client:freezeTime | Client | Freezes / unfreezes the world time on the client at the given hour/minute. |
Anti-cheat freezes the world clock at noon while reviewing a player. | ||
agency-admin:client:dashboardValue | Client | Pushes a single dashboard card value (e.g. live counter) to the panel UI. |
Pushes the live online player count to the admin dashboard card. | ||
agency-admin:client:teleportToCoords | Client | Teleports the caller to the supplied world coordinates. |
Teleports a player to the saved coordinates after a respawn event. | ||
agency-admin:client:announce | Client | Shows a server-wide announcement banner. |
Broadcasts a server-wide announcement banner from a named system sender. | ||
agency-admin:client:notify | Client | Pushes a notification to a specific admin. |
Sends a styled notification to the player when their application is approved. | ||
agency-admin:client:freeze | Client | Freezes the target player in place. |
Freezes a suspect player so staff can investigate without them moving. | ||
agency-admin:client:heal | Client | Restores target's HP/armor. |
Fully heals the patient after their RP medical treatment finishes. | ||
agency-admin:client:revive | Client | Revives the target player. |
Revives a downed player after the EMS minigame is successfully completed. | ||
agency-admin:client:teleport | Client | Teleports the local player to the supplied coords vector. |
Teleports the local player to the supplied coordinates vector. | ||
agency-admin:client:openMenu | Client | Opens the admin panel UI (requires ACE permission). |
Opens the main admin panel UI for the staff member when they go on duty. | ||
agency-admin:client:openToolsMenu | Client | Server-driven trigger to open the admin tools sub-menu. |
Opens the admin tools sub-menu when the staff hotkey is pressed. | ||
agency-admin:client:closeMenu | Client | Server-driven trigger to close the admin panel UI. |
Force-closes the admin panel UI when the admin is being investigated. | ||
agency-admin:client:openClothingMenu | Client | Server-driven trigger to open the in-game clothing menu for the player. |
Opens the clothing menu after the player buys an outfit from a tailor. | ||
agency-admin:server:requestPlayers | Server | Requests the current online players list for the admin panel. |
Requests the latest online players list from the server for the panel. | ||
agency-admin:server:requestPanelPermissions | Server | Requests the panel permission table for the rank editor. |
Asks the server for the panel permission table used by the rank editor. | ||
agency-admin:server:requestStaffRanks | Server | Requests the staff ranks dataset for the panel. |
Requests the full staff ranks dataset for use in a custom CRM widget. | ||
agency-admin:server:createRank | Server | Creates a new staff rank with metadata and permissions. |
Creates a new staff rank from an external HR portal sync. | ||
agency-admin:server:requestMyPermissions | Server | Caller requests their own resolved panel permission set. |
Requests the caller's own resolved panel permission set on UI open. | ||
agency-admin:server:requestSync | Server | Caller asks the server to push the standard sync payload (duty/perms/etc.). |
Forces the server to push the standard duty/perms sync payload to the caller. | ||
agency-admin:server:requestDutyRank | Server | Caller requests their current admin-duty rank info. |
Requests the caller's current admin-duty rank for a custom HUD overlay. | ||
agency-admin:server:requestSpawnedObjects | Server | Caller requests the list of admin-spawned world objects. |
Requests the list of admin-spawned world objects for a minimap overlay. | ||
Integration example
-- In your own anti-cheat script, call the admin panel's freeze event
-- when you detect a cheater:
if detected_cheater then
TriggerClientEvent('agency-admin:client:freeze', suspectSource, true)
TriggerClientEvent('agency-admin:client:notify', -1, 'Cheater detected: ' .. GetPlayerName(suspectSource))
end
The events are perfect as "primitives" for anti-cheat, moderation bots, or automated enforcement tools — call them from your server script to freeze/kick/notify without writing your own UI.
10 Agency-Reports V2
Modern report system with live chat per report and AI-assisted replies.
Public events
| Event | Side | Description |
|---|---|---|
agency-reports:client:notify | Client | Fires a "new report" notification to a specific admin. |
Server-driven notification respecting the player's UI notification preference. | ||
agency-reports:client:openPlayerUI | Client | Opens the player-side report UI. |
Opens the player report UI with categories, open/recent reports and AI/Discord settings. | ||
agency-reports:client:openAdminUI | Client | Opens the admin-side report list. |
Opens the admin reports dashboard with the full reports dataset. | ||
agency-reports:client:teleport | Client | Teleports the calling admin to the supplied coordinates (for goto actions). |
Teleports the calling admin to the supplied coordinates for goto actions. | ||
agency-reports:client:healSelf | Client | Fully heals the calling admin's ped. |
Fully heals the calling admin's ped after responding to a report. | ||
agency-reports:server:submitReport | Server | Submits a new report from outside the UI. |
Player submits a new report with title, category and description to the database. | ||
agency-reports:server:requestPlayerData | Server | Caller requests their own report payload; optionally opens the player UI on response. |
Caller requests their own report payload, optionally opening the player UI in response. | ||
agency-reports:server:requestAdminData | Server | Admin requests the full reports dataset and opens the admin dashboard if permitted. |
Admin requests the full reports dataset and opens the admin dashboard if permitted. | ||
agency-reports:server:sendChatMessage | Server | Sends a chat message to an open report. |
Posts a chat message in a specific report thread for admin or player. | ||
Integration example
-- Auto-create a report when your anti-cheat catches suspicious behavior
if suspicious then
TriggerServerEvent('agency-reports:server:submitReport', {
title = 'Auto: Speedhack detected',
body = 'Player reached 420 km/h on foot at ' .. os.date(),
category = 'cheating'
})
end
Use as a "support ticket" backbone for your whole server. Your custom scripts can auto-open reports when things go wrong (stuck vehicles, duped items, failed SQL saves) for admin review.
11 Agency-Hud
Animated HUD with vehicle dashboard, status bars, speedometer and seatbelt integration.
Client exports
| Export | Description |
|---|---|
GetVehicleSettings() | Returns the current vehicle settings table. |
Reads the local vehicle HUD settings table for inspection or syncing. | |
SetSpeedUnit(unit: string) | Switches speedometer between 'mph' and 'kmh'. |
Switches the vehicle speedometer to miles per hour and saves locally. | |
SetHunger(value: number) | Sets the hunger bar value (0-100). |
Pushes the player's current hunger level into the HUD. | |
SetThirst(value: number) | Sets the thirst bar value (0-100). |
Pushes the player's current thirst level into the HUD. | |
SetStress(value: number) | Sets the stress bar value (0-100). |
Updates the HUD stress meter from a custom stress system. | |
SetMoney(value: number) | Sets the displayed cash balance. |
Updates the cash amount displayed on the HUD wallet panel. | |
SetBank(value: number) | Sets the displayed bank balance (for custom economy scripts). |
Updates the bank balance value rendered in the HUD. | |
SetJob(label: string) | Sets the displayed job label. |
Sets the displayed job label after the player changes occupation. | |
SetRank(rank: string) | Sets the displayed job rank/grade. |
Updates the player rank string shown beside the job label. | |
GetDetectedFramework() | Returns the framework string ("qb", "esx", "standalone") the HUD auto-detected. |
Reads the detected framework key for branching custom HUD logic. | |
Public events
| Event | Side | Description |
|---|---|---|
Agency-HUD:client:applyVehicleSettingsPatch | Client | Applies a partial vehicle-settings patch to local vehicle HUD. |
Applies a partial vehicle HUD settings patch on the local client. | ||
Agency-HUD:client:openAdminMenu | Client | Opens the HUD admin menu (requires permission). |
Opens the admin HUD menu NUI on the receiving client. | ||
Agency-HUD:server:checkAdminPermission | Server | Verifies caller's admin rights and opens the admin menu on success. |
Asks the server to verify admin rights and open the HUD admin menu. | ||
Agency-HUD:server:saveGlobalSettings | Server | Admin-only persistence of global HUD settings; broadcasts sync. |
Saves a new global HUD configuration (admin only) and broadcasts it. | ||
Agency-HUD:server:requestGlobalSettings | Server | Returns current global settings to the requesting client. |
Requests the current global HUD settings on resource start. | ||
Agency-HUD:server:requestTime | Server | Returns current server time to the caller for the HUD clock. |
Polls the server clock every minute to refresh the HUD time display. | ||
Integration example
-- Use SetMoney/SetBank from your custom economy script instead of re-rolling your own HUD:
RegisterNetEvent('myEconomy:sync', function(cash, bank)
exports['Agency-Hud']:SetMoney(cash)
exports['Agency-Hud']:SetBank(bank)
end)
If you have a custom economy or needs-system, drive the HUD from your own script with these setters instead of hacking around it. The HUD handles animation and persistence for you.
12 Agency-Progressbar
Animated progress bar with glass UI, 4 themes, cancellable actions and client/server exports.
Client exports
| Export | Description |
|---|---|
StartProgress(data: table) | Starts a progress bar with a full options table. Returns immediately; callbacks fire on completion/cancel. |
Starts an 8 second lockpick progress with animation and finish callback. | |
StopProgress(completed: boolean) | Stops the currently running progress bar. Pass true to mark as cancelled. |
Cancels the active progress bar when the player presses X. | |
IsProgressActive() | Returns true if a progress bar is currently shown. |
Prevents starting a new crafting action while a progress bar is active. | |
GetProgressPercentage() | Returns the current fill percentage (0-100). |
Triggers a minigame tick once the progress bar is more than 75 percent done. | |
SetProgressTheme(theme: string) | Switches theme at runtime: 'modern', 'neon', 'minimal' or 'classic'. |
Switches the active progress bar appearance to the modern theme. | |
SetProgressPosition(position: string) | Changes position: 'top', 'bottom', 'center'. |
Moves the active progress bar to the bottom-center of the screen. | |
TryReload(usedItem?: string) | Plays the ESX-style reload sequence. |
Initiates a server-validated reload using a 9mm ammo box item. | |
UseConsumable(itemName: string, isDrink: boolean) | Plays the eat/drink animation with progress bar. |
Plays the drink animation and applies thirst gain when using water. | |
Server exports
| Export | Description |
|---|---|
StartProgressForPlayer(playerId: number, data: table) | Trigger a progress bar on a specific client from the server. |
Starts a 5 second lift-crate progress bar on the requesting player. | |
StopProgressForPlayer(playerId: number, completed?: boolean) | Cancels a specific player's progress bar remotely. |
Cancels a target player's active progress bar from the server. | |
StartProgressForAllPlayers(data: table) | Broadcasts a progress bar to every connected client. |
Broadcasts a 30 second storm warning progress bar to every player. | |
StopProgressForAllPlayers(completed?: boolean) | Cancels every player's progress bar (e.g. round end). |
Stops the global storm warning progress bar on every player. | |
Public events
| Event | Side | Description |
|---|---|---|
Agency:Progressbar:LoadSettings | Client | Loads per-player UI settings (position, color, scale, style) from DB into the client. |
Loads the player's saved progress bar UI settings on spawn. | ||
agency-progressbar:client:start | Client | Starts the progress bar on the receiving client with the supplied data. |
Starts a 12 second engine repair progress bar that can be cancelled. | ||
agency-progressbar:client:stop | Client | Stops the active progress bar with a completion flag. |
Aborts the active progress bar when the player gets cuffed. | ||
agency:consumables:useFood | Client | Inventory bridge to consume a food item (animation + secured server apply). |
Triggers the inventory food bridge to consume a sandwich item. | ||
agency:consumables:useDrink | Client | Inventory bridge to consume a drink item (animation + secured server apply). |
Triggers the inventory drink bridge to consume a coffee cup item. | ||
Agency:Progressbar:SaveSettings | Server | Validates and persists the player's progress bar UI settings to the DB. |
Persists the player's progress bar UI preferences to the database. | ||
agency-progressbar:server:start | Server | Server-side trigger to start a progress bar on a target (or self). |
Server-side trigger to start a 6 second crate loading bar on a target. | ||
agency-progressbar:server:stop | Server | Server-side trigger to stop a progress bar on a target (or self). |
Server-side trigger to stop a target's progress bar with cancel state. | ||
agency:reload:request | Server | Validates ammo/weapon/item before granting a reload to the requesting player. |
Asks the server to validate ammo and grant a pistol reload. | ||
agency:consumables:apply | Server | Validates inventory, removes one item and applies hunger/thirst gains. |
Asks the server to remove the food item and apply hunger gains. | ||
Integration example
-- Generic "picking a lock" progress, with full control over styling
exports['Agency-Progressbar']:StartProgress({
label = 'Picking lock...',
duration = 6000,
icon = 'fa-solid fa-key',
theme = 'neon',
cancellable = true,
onComplete = function() TriggerServerEvent('myheist:server:lockpicked', doorId) end,
onCancel = function() print('Player cancelled') end
})
Use anywhere you would normally show "doing thing X for Y seconds". Replaces multiple legacy progress-bar resources with a single consistent UI across your whole server.
13 Agency-Notify
Notification system with V1/V2 styles, AgencyAI smart priority, spam protection and database persistence.
Client exports
| Export | Description |
|---|---|
Notify(data: { title, text, type, duration, ... }) | Shows a notification. Accepts { type, title, text, duration, icon, color }. |
Sends a 6 second success notification announcing a heist objective. | |
Public events
| Event | Side | Description |
|---|---|---|
Agency:Notify:Send | Client | Same as the export — lets you use the legacy Trigger-based pattern. |
Legacy v1 client event that displays the same payload as the export. | ||
Agency:Notify:LoadSettings | Client | Applies per-player saved UI settings (position, color, scale, style) from the server. |
Loads saved per-player notify UI settings on spawn. | ||
Agency:Notify:SaveSettings | Server | Validates and persists the player's notify settings (position, accent, scale, style). |
Persists the player's notify position, accent and scale to the database. | ||
Integration example
-- From anywhere in your code, show a toast:
exports['Agency-Notify']:Notify({
type = 'success',
title = 'Item received',
text = 'You picked up 5x cola',
duration = 3000
})
-- Server-side push to one player:
TriggerClientEvent('Agency:Notify:Send', targetSource, {
type = 'error', title = 'Action failed', text = 'Not enough money'
})
Replace every other notification resource on your server (qb-notify, esx_notify, mythic_notify, okok-notify, etc.) with one consistent look. The AgencyAI priority system auto-rate-limits spammy notifications.
14 Agency-Seatbelt
Seatbelt with ejection physics, 3D sounds, multi-occupant support and HUD integration.
Client exports
| Export | Description |
|---|---|
enableSeatbelt() | Forces the seatbelt on (use e.g. on police arrest). |
Buckles the local player's seatbelt with HUD and sound feedback. | |
disableSeatbelt() | Forces the seatbelt off (cutscenes, rp scenarios). |
Unbuckles the local player's seatbelt when leaving a vehicle. | |
toggleSeatbelt() | Toggles the seatbelt (what the default keybind does). |
Toggles the local player's seatbelt buckled state on key press. | |
isSeatbeltOn() | Returns true if the player currently has their seatbelt on. |
Disables the exit-vehicle control while the seatbelt is buckled. | |
Integration example
-- In your custom HUD (or any script), drive the seatbelt icon from the export:
CreateThread(function()
while true do
Wait(500)
local on = exports['Agency-Seatbelt']:isSeatbeltOn()
SendNUIMessage({ action = 'seatbelt', state = on })
end
end)
Plug the state into your own HUD, or force-enable at the start of a police chase / heist escape. The force-enable/disable exports are great for RP moments.
15 Agency-Elevator
Realistic elevator system with Liquid Glass UI and a configurator.
Public events
| Event | Side | Description |
|---|---|---|
Agency-Elevator:server:requestTravel | Server | Server-validated request to travel between floors. |
Asks the server to validate access then travel to floor 3 of an elevator. | ||
Agency-Elevator:server:travelComplete | Server | Acknowledges client arrival and pushes the 'arrived at floor' notification. |
Tells the server the player arrived at floor 3 to push the arrival notification. | ||
Agency-Elevator:server:requestElevators | Server | Syncs the loaded elevator list from the database to the requesting client. |
Requests the full elevator list from the server on client init. | ||
Agency-Elevator:server:saveElevator | Server | Permission-gated upsert of an elevator (id/label/floors) into MySQL. |
Admin upsert of an elevator with a single Lobby floor entry. | ||
Agency-Elevator:server:loadElevator | Server | Spawns/loads a saved elevator from the database. |
Loads a single elevator's data into the configurator NUI for editing. | ||
Agency-Elevator:server:saveSettings | Server | Persists UI settings (position/scale/accent color) to MySQL and re-syncs all clients. |
Saves elevator UI position, accent color and scale and re-syncs all clients. | ||
Agency-Elevator:client:startTravel | Client | Starts an elevator travel cutscene for the player. |
Plays fade and animation, then teleports the ped to floor 2 of the garage. | ||
Agency-Elevator:client:applySettings | Client | Pushes UI settings (accent/scale/position) into the NUI. |
Applies elevator NUI accent, scale and position on the local client. | ||
Agency-Elevator:client:openConfigurator | Client | Opens the in-game elevator configurator (admin only). |
Opens the admin configurator NUI with the current elevator list. | ||
Agency-Elevator:client:refreshConfigurator | Client | Refreshes the open configurator after a save/delete without closing it. |
Refreshes the open configurator NUI after a save without closing it. | ||
Integration example
-- In your house/apartment script, start an elevator travel when player reaches the "go to penthouse" zone
TriggerEvent('Agency-Elevator:client:startTravel', {
from = 'lobby',
to = 'penthouse_42'
})
Perfect inside apartment/housing scripts, police HQ, hospital, or any multi-floor interior. Use the configurator to place elevators visually without touching config files.
16 Agency-Loadingscreen
Glassmorphism loading screen with YouTube/MP4 video, tips, progress animations and framework detection.
Integration example
-- Customize dynamically: set the logo and video via config.lua
-- Override tips translation via the translations.lua file
-- No code events needed — it's a drop-in resource
ensure Agency-Loadingscreen
Replace any existing loading screen resource. Point config.lua to your own MP4 or a YouTube video ID and you're done — the "waits for player-loaded event" feature means the loading screen disappears exactly when the server is ready.
17 Agency-Sit
Sit on any chair in the GTA world with automatic prop detection and smart angle matching.
Integration example
-- Bind "sit down" to a roleplay-command or menu entry
RegisterCommand('sit', function() TriggerEvent('agency-sit:client:sitDown') end, false)
RegisterCommand('stand', function() TriggerEvent('agency-sit:client:standUp') end, false)
Tie sit/stand into your RP menu, police interrogation script, or restaurant/bar job for seated animations with zero configuration.