Partenaires dev
S'intégrer aux scripts Agency
Vous développez votre propre script FiveM et voulez le relier aux nôtres ? Chaque export et chaque événement public est listé ici, avec un extrait Lua à copier.
Les exports permettent à votre script d'appeler une fonction dans le nôtre : exports['script-name']:FunctionName(args), côté client comme côté serveur. Les événements font l'inverse : déclenchés avec TriggerEvent ou TriggerServerEvent, écoutés avec RegisterNetEvent.
01Agency-Phone
Téléphone multi-framework complet avec SMS, appels, fil social, mail, caméra, wallet et paiement AgencyPay.
À utiliser dans tout script de shop/braquage/job pour un flux de paiement propre dans le téléphone au lieu de débiter l'argent directement. Idéal aussi pour les notifications en jeu avec accept/deny (p. ex. demandes de taxi, appels dispatch).
Exports client
IsPhoneOpen()Renvoie true si l'UI du téléphone est actuellement ouverte.
Voir l'exemple
Ignore l'ouverture d'un menu si le téléphone est déjà affiché.
RegisterCommand('openmymenu', function()
if exports['agency-phone']:IsPhoneOpen() then
return
end
TriggerEvent('myresource:openMenu')
end)IsPhonePoweredOn()Renvoie true si le téléphone est allumé.
Voir l'exemple
Met en pause la synchro tant que le téléphone est éteint par le joueur.
CreateThread(function()
while true do
Wait(2000)
if not exports['agency-phone']:IsPhonePoweredOn() then
print('Phone off, pausing background sync')
end
end
end)GetPhoneData()Renvoie la table brute des données du téléphone.
Voir l'exemple
Affiche toute la table de données du téléphone pour le debug.
RegisterCommand('phonedebug', function()
local data = exports['agency-phone']:GetPhoneData()
print(json.encode(data, { indent = true }))
end)GetPhonePropEntity()Renvoie le handle de l'entité du prop de téléphone tenu, ou 0 si invisible.
Voir l'exemple
Masque brièvement l'entité du téléphone sans toucher à la logique.
CreateThread(function()
Wait(500)
local prop = exports['agency-phone']:GetPhonePropEntity()
if prop ~= 0 and DoesEntityExist(prop) then
SetEntityVisible(prop, false, false)
end
end)IsPhoneExpanded()Renvoie true si le téléphone est agrandi à l'écran.
Voir l'exemple
Ancien alias qui bloque un mini-jeu tant que le téléphone est ouvert.
AddEventHandler('myresource:beforeMinigame', function()
if exports['agency-phone']:IsPhoneExpanded() then
TriggerEvent('chat:addMessage', { args = { 'Close phone first' } })
return
end
end)HasCarrierContract()Renvoie true si le joueur dispose d'un data plan opérateur actif.
Voir l'exemple
Avertit le joueur quand aucun forfait data n'est actif.
RegisterCommand('checkdata', function()
if not exports['agency-phone']:HasCarrierContract() then
TriggerEvent('chat:addMessage', { args = { 'No data plan, buy one in the store app' } })
end
end)GetPhoneState()Renvoie l'objet complet de l'état du téléphone.
Voir l'exemple
Met l'état du téléphone en cache seulement si ouvert, allumé et synchronisé.
AddEventHandler('myresource:saveProfile', function()
local state = exports['agency-phone']:GetPhoneState()
if state.isOpen and state.poweredOn and state.syncEnabled then
TriggerServerEvent('myresource:server:cachePhoneState', state)
end
end)HasPhone()Renvoie true si le joueur possède un item téléphone.
Voir l'exemple
Bloque la commande d'appel d'urgence sans téléphone dans l'inventaire.
RegisterCommand('callemergency', function()
if not exports['agency-phone']:HasPhone() then
TriggerEvent('chat:addMessage', { args = { 'You need a phone first' } })
return
end
TriggerEvent('myresource:client:openEmergency')
end)RegisterAgencyPayPoint(id, data)Enregistre un terminal marchand AgencyPay récurrent.
Voir l'exemple
Crée un terminal Agency Pay au runtime pour la caisse du garage.
CreateThread(function()
exports['agency-phone']:RegisterAgencyPayPoint('mechanic_main', {
coords = vector3(-211.74, -1314.59, 31.29),
label = 'Mechanic Pay Point',
amount = 250,
receiver = 'mechanic'
})
end)RemoveAgencyPayPoint(id)Supprime un terminal AgencyPay précédemment enregistré.
Voir l'exemple
Retire le point de paiement enregistré quand la boutique ferme.
AddEventHandler('myresource:onShopClosed', function(shopId)
exports['agency-phone']:RemoveAgencyPayPoint('mechanic_main')
print('Removed pay point for shop ' .. shopId)
end)StartAgencyPayCheckout(data)Ouvre la fiche de paiement AgencyPay pour un paiement carte sécurisé.
Voir l'exemple
Ouvre le téléphone et lance un petit paiement de pourboire Agency Pay.
RegisterCommand('paytip', function()
exports['agency-phone']:StartAgencyPayCheckout({
amount = 25,
receiver = 'staff_tip_jar',
label = 'Staff tip',
memo = 'Thanks for great service'
})
end)StartCall(contactData)Démarre un appel pma-voice à partir d'une table de contact.
Voir l'exemple
Lance un appel sortant au contact reçu par dispatch.
RegisterNetEvent('myresource:client:incomingDispatch', function(payload)
exports['agency-phone']:StartCall({
name = payload.callerName or 'Dispatch',
number = payload.callerNumber or '911',
anonymous = false
})
end)PhoneNotification(title, text, icon, color, timeout, acceptIcon, denyIcon)Affiche une notification téléphone avec boutons accept/deny optionnels.
Voir l'exemple
Affiche une notif bloquante d'acceptation/refus pour un contrat de remorquage.
CreateThread(function()
local accepted = exports['agency-phone']:PhoneNotification(
'Tow request', 'Accept the contract?', 'truck', '#FF8800', 15000, 'check', 'x'
)
if accepted then
TriggerServerEvent('myresource:server:acceptTow')
end
end)Exports serveur
SendMail(identifier, mailData)Envoie un mail à un joueur (en ligne ou hors ligne).
Voir l'exemple
Envoie un mail de reçu à un joueur via son identifiant principal.
RegisterNetEvent('myresource:server:sendReceipt', function(targetId)
local identifier = GetPlayerIdentifier(targetId, 0)
exports['agency-phone']:SendMail(identifier, {
sender = '[email protected]',
subject = 'Your receipt',
body = 'Thanks for your purchase!'
})
end)AddChirp(chirpData)Publie un message dans le feed Pulse (chirper).
Voir l'exemple
Publie une annonce de prime sur Chirper côté serveur.
RegisterNetEvent('myresource:server:postBounty', function(targetName)
local src = source
exports['agency-phone']:AddChirp({
identifier = GetPlayerIdentifier(src, 0),
firstName = 'Bounty',
lastName = 'Office',
message = 'Wanted: ' .. targetName,
postId = ('bounty_%s'):format(GetGameTimer())
})
end)usePhone(event, item, inventory, slot, data)Hook ox_inventory enregistré quand ESX+ox_inventory est détecté ; ouvre le phone pour le porteur.
Voir l'exemple
S'accroche à usingItem d'ox_inventory pour ouvrir le téléphone.
exports.ox_inventory:registerHook('usingItem', function(payload)
if payload.item.name ~= 'phone' then return end
return exports['agency-phone']:usePhone('inventory', payload.item, payload.inventory, payload.slot)
end, { itemFilter = { phone = true } })Événements
agency-phone:client:notifyAffiche une notification phone (title, text, icon, color, timeout, silent).
Voir l'exemple
Envoie un toast non bloquant : le véhicule est prêt.
TriggerEvent('agency-phone:client:notify', 'Heads up', 'Vehicle ready for pickup', 'car', '#22cc88', 5000, false)agency-phone:client:usePhoneItemDéclenche l'ouverture du phone quand l'item d'inventaire phone est utilisé.
Voir l'exemple
Transmet un event d'utilisation d'item à l'ouverture du téléphone.
AddEventHandler('myresource:client:onItemUsed', function(itemName)
if itemName == 'phone' then
TriggerEvent('agency-phone:client:usePhoneItem')
end
end)agency-phone:client:openAppDemande au phone de naviguer vers une app personnalisée par id (utilisé par les modules d'apps).
Voir l'exemple
Ouvre directement l'app bancaire personnalisée via son id.
RegisterCommand('openbank', function()
TriggerEvent('agency-phone:client:openApp', 'banking')
end)agency-phone:client:newMailNotifyNotifie le client d'un mail fraîchement reçu.
Voir l'exemple
Écoute les notifs de nouveau mail et les log pour le debug.
AddEventHandler('agency-phone:client:newMailNotify', function(mail)
print(('New mail from %s: %s'):format(mail.sender, mail.subject))
end)agency-phone:server:requestPhoneDataDemande une synchronisation fraîche des données phone pour le joueur appelant.
Voir l'exemple
Demande au serveur une nouvelle synchro complète des données du téléphone.
RegisterCommand('refreshphone', function()
TriggerServerEvent('agency-phone:server:requestPhoneData')
end)agency-phone:server:cancelCallAnnule ou termine un appel actif.
Voir l'exemple
Raccroche l'appel actif via une touche ou commande chat personnalisée.
RegisterCommand('hangup', function()
TriggerServerEvent('agency-phone:server:cancelCall')
end)agency-phone:server:sendMessageEnvoie un SMS (newMsg, targetNumber).
Voir l'exemple
Envoie rapidement un SMS à un numéro cible depuis le chat.
RegisterCommand('quicksms', function(_, args)
local target, msg = args[1], table.concat(args, ' ', 2)
TriggerServerEvent('agency-phone:server:sendMessage', { message = msg }, target)
end)agency-phone:server:saveSettingPersiste une seule paire clé/valeur de réglage phone pour le joueur.
Voir l'exemple
Sauvegarde un paramètre du téléphone dès que le joueur le change.
AddEventHandler('myresource:client:onSettingChanged', function(key, value)
TriggerServerEvent('agency-phone:server:saveSetting', key, value)
end)agency-phone:server:airdropPayEffectue un transfert Agency Airdrop vers un joueur proche.
Voir l'exemple
Déclenche un Agency Airdrop vers les joueurs proches avec le montant saisi.
RegisterCommand('airdrop', function(_, args)
local amount = tonumber(args[1]) or 0
TriggerServerEvent('agency-phone:server:airdropPay', amount, 'Tip via airdrop')
end)agency-phone:server:buyDataPlanAchète un data plan opérateur pour le joueur (price, planName).
Voir l'exemple
Achète un forfait data quand le joueur le sélectionne dans un menu custom.
AddEventHandler('myresource:client:onPlanSelected', function(plan)
TriggerServerEvent('agency-phone:server:buyDataPlan', plan.price, plan.name)
end)agency-phone:dispatch:createCrée un dispatch phone à partir d'un appel/SMS d'urgence.
Voir l'exemple
Crée une entrée dispatch téléphone à partir d'un appel d'urgence entrant.
RegisterNetEvent('myresource:server:dispatchFromCall', function(payload)
TriggerEvent('agency-phone:dispatch:create', {
source = source,
coords = payload.coords,
type = 'robbery',
title = '24/7 Robbery'
})
end)02Agency-Pad
Tablette AgencyOS avec un écosystème d'apps complet. Enregistre tes propres apps via config.lua.
Parfait pour les dashboards admin, les apps de gestion d'entreprise, les cartes de territoire de gang ou toute UI custom dont tes joueurs ont besoin dans GTA, le tout dans un beau shell de tablette sans travail supplémentaire.
Exports client
IsPadOpen()Renvoie true si l'UI de la tablette est ouverte (vérifier l'état de la tablette avant d'afficher des UI).
Voir l'exemple
Évite de rouvrir l'UI tablette si la tablette est déjà ouverte.
RegisterCommand('opentablet', function()
if exports['agency-pad']:IsPadOpen() then
return
end
TriggerEvent('myresource:openTablet')
end)IsPadPoweredOn()Renvoie true si la tablette est allumée.
Voir l'exemple
Met en pause le polling de la flotte si la tablette est éteinte.
CreateThread(function()
while true do
Wait(3000)
if not exports['agency-pad']:IsPadPoweredOn() then
print('Tablet powered down, pausing fleet poll')
end
end
end)GetPadData()Renvoie la table PadData côté client complète.
Voir l'exemple
Affiche toute la table de données tablette côté client.
RegisterCommand('paddebug', function()
local data = exports['agency-pad']:GetPadData()
print(json.encode(data, { indent = true }))
end)GetPadPropEntity()Renvoie le handle de l'entité du prop tablette tenu, ou 0 si invisible.
Voir l'exemple
Masque brièvement le prop tablette pendant une cinématique personnalisée.
CreateThread(function()
Wait(750)
local prop = exports['agency-pad']:GetPadPropEntity()
if prop ~= 0 and DoesEntityExist(prop) then
SetEntityVisible(prop, false, false)
end
end)IsPadExpanded()Alias de IsPadOpen() conservé pour la compatibilité ascendante.
Voir l'exemple
Ancien alias qui bloque un mini-jeu tant que la tablette est ouverte.
AddEventHandler('myresource:client:beforeMinigame', function()
if exports['agency-pad']:IsPadExpanded() then
return
end
TriggerEvent('myresource:client:startMinigame')
end)HasCarrierContract()Renvoie true si le joueur a un data plan opérateur actif sur la tablette.
Voir l'exemple
Avertit le joueur si aucun forfait data n'est actif sur la tablette.
RegisterCommand('checkpaddata', function()
if not exports['agency-pad']:HasCarrierContract() then
TriggerEvent('chat:addMessage', { args = { 'No tablet data plan, buy one in Settings' } })
end
end)GetPadState()Renvoie la table { isOpen, poweredOn, syncEnabled } résumant l'état actuel de la tablette.
Voir l'exemple
Met l'état tablette en cache uniquement si ouverte et allumée.
AddEventHandler('myresource:saveSession', function()
local state = exports['agency-pad']:GetPadState()
if state.isOpen and state.poweredOn then
TriggerServerEvent('myresource:server:cachePadState', state)
end
end)HasPad()Renvoie true si le joueur possède l'item tablette configuré dans son inventaire.
Voir l'exemple
Bloque la commande UI dispatch sans tablette dans l'inventaire.
RegisterCommand('opendispatch', function()
if not exports['agency-pad']:HasPad() then
TriggerEvent('chat:addMessage', { args = { 'You need a tablet first' } })
return
end
TriggerEvent('myresource:client:openDispatch')
end)RegisterAgencyPayPoint(id, data)Enregistre un terminal Agency Pay au runtime à des coordonnées (markers, blip, checkout payload).
Voir l'exemple
Crée un terminal Agency Pay au runtime dans le hall de l'hôpital.
CreateThread(function()
exports['agency-pad']:RegisterAgencyPayPoint('hospital_lobby', {
coords = vector3(307.7, -1433.4, 30.0),
label = 'Hospital Bill',
amount = 500,
receiver = 'medical'
})
end)RemoveAgencyPayPoint(id)Supprime un terminal Agency Pay précédemment enregistré par id.
Voir l'exemple
Retire un point de paiement tablette quand son lieu ferme.
AddEventHandler('myresource:onLocationClosed', function(locationId)
exports['agency-pad']:RemoveAgencyPayPoint(locationId)
end)StartAgencyPayCheckout(data)Ouvre la tablette (si besoin) et lance un checkout Agency Pay avec le payload de paiement fourni.
Voir l'exemple
Ouvre la tablette et lance un paiement Agency Pay pour la taxe foncière.
RegisterCommand('paybill', function()
exports['agency-pad']:StartAgencyPayCheckout({
amount = 1500,
receiver = 'gov_taxes',
label = 'Property tax',
memo = 'Quarterly tax'
})
end)StartCall(contactData)Démarre un appel sortant tablette vers le contact fourni ({ name, number, ... }).
Voir l'exemple
Lance un appel sortant sur la tablette à la réception d'un dispatch.
RegisterNetEvent('myresource:client:dispatchOnTablet', function(payload)
exports['agency-pad']:StartCall({
name = payload.name or 'Field Agent',
number = payload.number,
anonymous = false
})
end)PhoneNotification(title, text, icon, color, timeout, acceptIcon, denyIcon)Affiche une notification d'action avec boutons accept/deny ; bloque jusqu'à la réponse et renvoie true/false.
Voir l'exemple
Affiche une notif tablette bloquante d'accept/refus pour une livraison.
CreateThread(function()
local accepted = exports['agency-pad']:PhoneNotification(
'Mission ready', 'Start the delivery now?', 'box', '#3399ff', 12000, 'check', 'x'
)
if accepted then
TriggerServerEvent('myresource:server:startDelivery')
end
end)Exports serveur
SendMail(identifier, mailData)Envoie un mail à la boîte principale du joueur via identifier (renvoie le succès).
Voir l'exemple
Envoie un mail de notification de facture via l'identifiant du joueur.
RegisterNetEvent('myresource:server:sendInvoiceMail', function(targetId)
local identifier = GetPlayerIdentifier(targetId, 0)
exports['agency-pad']:SendMail(identifier, {
sender = '[email protected]',
subject = 'New invoice available',
body = 'Open the tablet to review your invoice.'
})
end)usePad(event, item, inventory, slot, data)Hook ox_inventory enregistré quand ESX+ox_inventory est détecté ; ouvre la tablette pour le porteur.
Voir l'exemple
S'accroche à ox_inventory pour ouvrir la tablette via le helper.
exports.ox_inventory:registerHook('usingItem', function(payload)
if payload.item.name ~= 'tablet' then return end
return exports['agency-pad']:usePad('inventory', payload.item, payload.inventory, payload.slot)
end, { itemFilter = { tablet = true } })usePhone(event, item, inventory, slot, data)Hook ox_inventory pour l'id legacy de l'item phone ; ouvre la tablette pour le porteur.
Voir l'exemple
Redirige l'ancien item phone pour ouvrir l'UI tablette à la place.
exports.ox_inventory:registerHook('usingItem', function(payload)
if payload.item.name ~= 'phone' then return end
return exports['agency-pad']:usePhone('inventory', payload.item, payload.inventory, payload.slot)
end, { itemFilter = { phone = true } })Événements
agency-pad:client:notifyAffiche une notification tablette (title, text, icon, color, timeout, silent).
Voir l'exemple
Affiche un toast tablette non bloquant pour une mission débloquée.
TriggerEvent('agency-pad:client:notify', 'Job update', 'New mission unlocked', 'briefcase', '#22cc88', 5000, false)agency-pad:client:usePadItemOuvre la tablette quand l'item d'inventaire est utilisé.
Voir l'exemple
Transmet un event d'utilisation d'item à l'ouverture de la tablette.
AddEventHandler('myresource:client:onItemUsed', function(itemName)
if itemName == 'tablet' then
TriggerEvent('agency-pad:client:usePadItem')
end
end)agency-pad:client:openAppÀ déclencher côté client pour ouvrir une app spécifique dans la tablette.
Voir l'exemple
Ouvre directement l'app de gestion de flotte personnalisée.
RegisterCommand('openfleet', function()
TriggerEvent('agency-pad:client:openApp', 'fleet')
end)agency-pad:client:newMailNotifyNotifie le client d'un mail fraîchement reçu.
Voir l'exemple
Écoute les notifs de nouveau mail tablette et les log localement.
AddEventHandler('agency-pad:client:newMailNotify', function(mail)
print(('Tablet mail from %s: %s'):format(mail.sender, mail.subject))
end)agency-pad:client:hourlyPaycheckNotifie le client d'un événement de paye business horaire.
Voir l'exemple
Réagit à un paycheck horaire d'entreprise déclenché par la tablette.
AddEventHandler('agency-pad:client:hourlyPaycheck', function(payload)
print(('Hourly paycheck: $%s from %s'):format(payload.amount, payload.businessName))
end)agency-pad:server:requestPadDataDemande une synchronisation fraîche des données tablette pour le joueur appelant.
Voir l'exemple
Demande au serveur une nouvelle synchro complète des données tablette.
RegisterCommand('refreshpad', function()
TriggerServerEvent('agency-pad:server:requestPadData')
end)agency-pad:server:sendMessageEnvoie un SMS (newMsg, targetNumber).
Voir l'exemple
Envoie un SMS depuis la tablette via une commande et un numéro cible.
RegisterCommand('quicksmsTab', function(_, args)
local target, msg = args[1], table.concat(args, ' ', 2)
TriggerServerEvent('agency-pad:server:sendMessage', { message = msg }, target)
end)agency-pad:server:airdropPayEffectue un transfert Agency Airdrop vers un joueur proche.
Voir l'exemple
Déclenche un Agency Airdrop vers les joueurs proches via la tablette.
RegisterCommand('airdroppad', function(_, args)
local amount = tonumber(args[1]) or 0
TriggerServerEvent('agency-pad:server:airdropPay', amount, 'Tablet airdrop')
end)agency-pad:server:buyDataPlanAchète un data plan opérateur pour le joueur.
Voir l'exemple
Achète un forfait data tablette quand le joueur le choisit dans un UI custom.
AddEventHandler('myresource:client:padPlanSelected', function(plan)
TriggerServerEvent('agency-pad:server:buyDataPlan', plan.price, plan.name)
end)agency-pad:dispatch:createCrée un dispatch tablette à partir d'un appel/SMS d'urgence.
Voir l'exemple
Crée une entrée dispatch tablette à partir d'un appel d'urgence entrant.
RegisterNetEvent('myresource:server:padDispatchFromCall', function(payload)
TriggerEvent('agency-pad:dispatch:create', {
source = source,
coords = payload.coords,
type = 'medical',
title = 'Medical assistance'
})
end)agency-pad:server:biz:createCrée un nouveau business/organisation pour le joueur.
Voir l'exemple
Crée une nouvelle entreprise via une commande in-game personnalisée.
RegisterCommand('startbiz', function()
TriggerServerEvent('agency-pad:server:biz:create', {
name = 'Bennys Repair',
type = 'mechanic',
location = 'sandy_shores'
})
end)agency-pad:server:biz:adminCreateL'admin crée un business pour le compte d'un autre joueur.
Voir l'exemple
Transmet une commande admin pour créer une entreprise pour un autre joueur.
RegisterNetEvent('myresource:server:adminCreateBiz', function(targetSrc, payload)
TriggerEvent('agency-pad:server:biz:adminCreate', targetSrc, payload)
end)agency-pad:server:biz:startMissionLance une mission business configurée pour le joueur.
Voir l'exemple
Lance une mission d'entreprise configurée pour le joueur appelant.
RegisterCommand('bizmission', function()
TriggerServerEvent('agency-pad:server:biz:startMission', {
bizId = 12,
missionId = 'delivery_route_a'
})
end)agency-pad:server:applyToListingEnvoie une candidature à une annonce business.
Voir l'exemple
Postule à une annonce d'emploi tablette via son id.
RegisterCommand('apply', function(_, args)
local listingId = tonumber(args[1])
TriggerServerEvent('agency-pad:server:applyToListing', listingId, {
coverNote = 'Available immediately'
})
end)agency-pad:server:createMechanicInvoiceCrée un brouillon de facture mécanicien.
Voir l'exemple
Crée un brouillon de facture mécanicien pour une plaque et un montant.
RegisterCommand('mechinvoice', function(_, args)
TriggerServerEvent('agency-pad:server:createMechanicInvoice', {
plate = args[1],
amount = tonumber(args[2]) or 250,
notes = 'Brake replacement'
})
end)agency-pad:server:sendMechanicInvoicePayEnvoie une facture mécanicien à un client pour paiement.
Voir l'exemple
Envoie une facture mécanicien finalisée au client pour paiement.
AddEventHandler('myresource:client:onInvoiceConfirmed', function(invoice)
TriggerServerEvent('agency-pad:server:sendMechanicInvoicePay', invoice.id, invoice.targetSrc)
end)agency-pad:server:mdtCreateInvoiceLe MDT crée une amende/facture pour un citoyen.
Voir l'exemple
Crée une amende MDT pour un citoyen via un net event personnalisé.
RegisterNetEvent('myresource:server:mdtFine', function(targetSrc, amount, reason)
TriggerEvent('agency-pad:server:mdtCreateInvoice', {
target = targetSrc,
amount = amount,
reason = reason,
officer = source
})
end)03Agency-Watch
A real smartwatch for FiveM, not a HUD. AgencyOS 26.5 on the wrist: six watch faces, seven cases, activity rings with a daily step goal, stopwatch, timer, alarm, weather, compass, speedometer, a control centre and an app store where players install, reorder and delete apps themselves. Everything listed so far runs on its own, without any other resource. A detected Agency Phone unlocks calls, messages, mail, contacts and Agency Pay on the wrist. That verdict is reached server-side through an HMAC handshake with the genuine phone, so a copied resource cannot fake it. Fall detection brings the watch out by itself after a crash or a long fall and offers an emergency call, with or without a phone. Free, QBCore / Qbox / ESX / standalone with auto-detection, ten languages, and not a single font or icon loaded from the internet.
Exports client
OpenWatch(mitte)Opens the watch. Pass true to open it centred on screen instead of in its configured corner.
CloseWatch()Closes the watch and releases the NUI focus.
ToggleWatch()Closes the watch if it is open, opens it otherwise.
IsWatchOpen()Returns true while the watch UI is on screen.
IsWatchLinked()Returns false when the player switched the link to the Agency Phone off in the control centre.
RunWatchAction()Triggers whatever is bound to the orange action button (Config.ActionButton).
GetWatchSettings()Returns the full settings table the watch UI is built from (theme, face, size, apps, locale).
SetWatchSetting(key, value)Sets a single setting, saves it per character and applies it right away.
SetWatchSettings(table)Sets several settings at once and rebuilds the UI a single time instead of once per value.
RequestWatchPairing()Asks the server for a Companion app pairing code. The answer arrives as an event, not as a return value.
ShowUpdate()Opens the software-update screen of AgencyOS.
HandlesDeath()Returns true when the watch shows the emergency screen on death. The Agency Phone asks this so both devices never show it at once.
GetFitness()Returns the current fitness values: steps, distance, active minutes and calories of the running day.
Exports serveur
IsPremium(src)Returns true when this player's watch runs in the Pro version. The verdict comes from the handshake with the genuine Agency Phone, never from the client.
04Agency-LifeinvaderV3
Système de publicité moderne avec tarifs par paliers, file d'attente et approbation admin.
À utiliser comme remplacement in-game de Twitter/Instagram. Parfait pour les businesses qui font la promo de nouveaux produits, les gangs qui revendiquent un territoire, ou l'équipe admin qui publie les news du serveur.
Événements
agency_lifeinvader:showAdAffiche une annonce au joueur (helper de broadcast).
Voir l'exemple
Diffuse une annonce d'evenement communautaire a tous les joueurs du serveur.
-- Push a server-wide announcement ad to every player on event start
local ad = { author = 'Event Crew', text = 'Drag race at airport in 5min!', category = 'event' }
TriggerClientEvent('agency_lifeinvader:showAd', -1, ad)agency_lifeinvader:openMenuOuvre le menu « créer une annonce ».
Voir l'exemple
Ouvre le menu principal de creation d'annonces apres l'achat de l'app telephone.
-- Open the ad creation menu when the player buys a phone app
TriggerClientEvent('agency_lifeinvader:openMenu', src)agency_lifeinvader:openRecentMenuOuvre le feed « annonces récentes ».
Voir l'exemple
Ouvre le menu du fil d'annonces recentes apres un tap contact dans l'app.
-- Open the recent ads feed after a contact tap in the phone app
TriggerClientEvent('agency_lifeinvader:openRecentMenu', src)agency_lifeinvader:notifyAffiche une notification framework sur l'écran du joueur (message, type).
Voir l'exemple
Affiche une notification framework quand l'annonce du joueur est approuvee.
-- Notify the player when their queued ad gets reviewed by staff
TriggerClientEvent('agency_lifeinvader:notify', src, 'Your ad was approved!', 'success')agency_lifeinvader:submitAdSoumet une nouvelle annonce depuis le code (utilisé par l'UI, réutilisable).
Voir l'exemple
Soumet une annonce de vente de vehicule avec 5 repetitions toutes les 60 secondes.
-- Submit a vehicle sale ad from a custom dealership UI
TriggerServerEvent('agency_lifeinvader:submitAd', '2018 Pegassi Emperor for sale', 5, 60, 'vehicles', { vehicle = 'emperor2' })05Agency-Blackmarket
Marché noir basé sur la réputation avec hacking, ventes flash, trafic de véhicules et blanchiment d'argent.
Branchez-le sur vos scripts de braquages, casses ou trafic de drogue, le joueur vend ses objets volés ici ou blanchit son argent sale avant qu'il ne devienne propre.
Événements
blackmarket:client:openMenuOuvre le menu principal du marché noir.
Voir l'exemple
Ouvre le menu principal du dealer marche noir pour le joueur apres un paiement.
-- Custom dealer NPC opens the black market menu when its job pays out
TriggerClientEvent('blackmarket:client:openMenu', src)blackmarket:client:closeMenuFerme tous les menus du marche noir ouverts pour le joueur.
Voir l'exemple
Ferme les menus marche noir ouverts quand le joueur est menotte par la police.
-- Force-close menu when player gets cuffed by police
TriggerClientEvent('blackmarket:client:closeMenu', suspectSrc)blackmarket:client:openLaunderingMenuOuvre le sous-menu de blanchiment d'argent.
Voir l'exemple
Ouvre le sous-menu blanchiment d'argent au joueur apres un casse reussi.
-- Heist crew NPC opens money laundering submenu after a successful job
TriggerClientEvent('blackmarket:client:openLaunderingMenu', src)blackmarket:client:showNotificationAffiche une notification stylisee du marche noir (titre, message, type, duree).
Voir l'exemple
Affiche une notification stylee marche noir sur une nouvelle livraison en ville.
-- Drop a black-market styled notification when product enters the city
TriggerClientEvent('blackmarket:client:showNotification', -1, 'Dealer', 'New shipment in town', 'info', 6000)blackmarket:server:checkAccessVérifie le niveau d'accès actuel du joueur.
Voir l'exemple
Verifie si le joueur peut acceder au marche noir et recupere la reputation.
-- Storefront NPC checks if player can access the black market before opening
TriggerServerEvent('blackmarket:server:checkAccess')blackmarket:server:completeBuyFinalise un achat apres la reussite du mini-jeu cote client.
Voir l'exemple
Finalise un achat marche noir apres la reussite du mini-jeu cote client.
-- Finalise a buy after the lockpick minigame succeeds
TriggerServerEvent('blackmarket:server:completeBuy', 'weapon_pistol', 1, 8500)blackmarket:server:sellItemTraite la vente d'un objet.
Voir l'exemple
Lance le flux de vente d'une Rolex volee avec mini-jeu optionnel et cooldown.
-- Trigger the sell flow with optional minigame for a stolen item
TriggerServerEvent('blackmarket:server:sellItem', 'rolex', 1)blackmarket:server:completeSellFinalise une vente apres la reussite du mini-jeu cote client.
Voir l'exemple
Finalise la vente apres la reussite du mini-jeu de marchandage cote client.
-- Finalise a sale after the haggle minigame succeeds
TriggerServerEvent('blackmarket:server:completeSell', 'rolex', 1, 4250)blackmarket:server:launderMoneyGère une transaction de blanchiment d'argent.
Voir l'exemple
Blanchit l'argent sale du trafic de drogue en cash propre avec frais et extorsion.
-- Launder dirty cash earned from drug trafficking
TriggerServerEvent('blackmarket:server:launderMoney', 'dirty_money', 25000)06Agency-Minerjob
Job de minage multi-framework avec progression de compétence à 100 niveaux, skill checks ox_lib et 6 types de minerai.
Idéal comme job d'entrée pour les nouveaux joueurs. Liez la progression XP à la réputation de gang, aux jobs whitelist, ou utilisez-le comme refuge pour les joueurs sans emploi.
Événements
agency_minerJob:openSellMenuOuvre le menu de vente à la raffinerie de minerai.
Voir l'exemple
Ouvre le menu de vente du marchand pour que le joueur puisse vendre ses minerais.
-- Open the trader sell menu for the local player
TriggerEvent('agency_minerJob:openSellMenu')agency_minerJob:sellItemsVend tous les minerais d'un coup au prix actuel du marché.
Voir l'exemple
Vend toutes les unites du minerai au prix dynamique actuel du marchand.
-- Sell every copper ore in the player's inventory at current price
TriggerServerEvent('agency_minerJob:sellItems', 'copper')agency_minerJob:requestPlayerItemsRenvoie les objets de minage vendables du joueur via receivePlayerItems.
Voir l'exemple
Demande au serveur la liste des minerais vendables par le joueur.
-- Ask server which ores are sellable; reply comes via receivePlayerItems
TriggerServerEvent('agency_minerJob:requestPlayerItems')agency_minerJob:requestPlayerSkillRenvoie un résumé rapide de la compétence de minage via receiveSkillInfo.
Voir l'exemple
Demande un resume rapide de la competence minage via receiveSkillInfo.
-- Refresh the HUD widget with the current mining level/xp
TriggerServerEvent('agency_minerJob:requestPlayerSkill')agency_minerJob:requestDetailedStatsRenvoie les statistiques de minage détaillées via receiveDetailedStats.
Voir l'exemple
Demande les statistiques detaillees de minage et ouvre le menu via receiveDetailedStats.
-- Open the detailed stats panel after admin command
TriggerServerEvent('agency_minerJob:requestDetailedStats')07Agency-Repairkits
Kit de réparation de véhicule avec mécanique de dégâts progressifs et UI moderne.
Parfait dans les jobs de mécanicien, dépanneuse, ou comme objet consommable dans un inventaire général. Le système de dégâts progressifs s'accorde à merveille avec un script de chop-shop ou d'assurance.
Événements
agencyrepairkit:client:startRepairLance l'animation de réparation et la barre de progression sur le véhicule cible.
Voir l'exemple
Declencheur universel pour lancer le flux de reparation sur le vehicule.
-- Universal trigger when player uses a custom 'repair' button
TriggerEvent('agencyrepairkit:client:startRepair')esx-agencyrepairkit:client:useRepairKitAlias spécifique à ESX qui démarre le flux de progression du kit de réparation.
Voir l'exemple
Alias specifique ESX qui lance le flux de reparation sur le vehicule.
-- Use this alias from your ESX item handler
TriggerEvent('esx-agencyrepairkit:client:useRepairKit')qb-agencyrepairkit:client:useRepairKitAlias spécifique à QBCore qui démarre le flux de progression du kit de réparation.
Voir l'exemple
Alias specifique QBCore qui lance le flux de reparation sur le vehicule.
-- QBCore item callback can use this alias directly
TriggerEvent('qb-agencyrepairkit:client:useRepairKit')08Agency-Vehiclekeys
Clés de véhicule avec verrouillage/déverrouillage, démarrage à distance, clignotants et partage de clés.
Fonctionne comme le check "possède ce véhicule" pour tous vos autres scripts, dépanneuses, fourrières, voiturier, minigames de carjacking. L'export de validation est sûr à appeler depuis n'importe quelle autre ressource.
Événements
simple_carkeys:client:toggleLockBascule l'état de verrouillage du véhicule (en respectant la propriété).
Voir l'exemple
Bascule du verrouillage en reseau avec animation de cle, lumieres et son.
-- Sync lock toggle to all clients near a tow truck
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
TriggerEvent('simple_carkeys:client:toggleLock', vehicle)simple_carkeys:client:toggleEngineDémarre ou arrête à distance le moteur du véhicule ciblé.
Voir l'exemple
Bascule moteur on/off en reseau pour l'entite vehicule fournie.
-- Cut the engine remotely on the vehicle the player just left
local lastVeh = GetVehiclePedIsIn(PlayerPedId(), true)
TriggerEvent('simple_carkeys:client:toggleEngine', lastVeh)simple_carkeys:client:showErrorAffiche cote client une notification d'erreur generique 'ce n'est pas votre voiture'.
Voir l'exemple
Affiche une notification d'erreur generique 'pas votre voiture' au client.
-- Show the standard 'not your car' notification on a failed lockpick
TriggerEvent('simple_carkeys:client:showError')simple_carkeys:client:showNotificationTextAffiche cote client une notification de succes avec un texte libre.
Voir l'exemple
Affiche une notification de succes avec un texte arbitraire au client.
-- Tell the player the engine started OK after a custom hotwire script
TriggerEvent('simple_carkeys:client:showNotificationText', 'Engine started')simple_carkeys:client:showErrorTextAffiche cote client une notification d'erreur avec un texte libre.
Voir l'exemple
Affiche une notification d'erreur avec un texte arbitraire au client.
-- Block engine start when fuel is empty
TriggerEvent('simple_carkeys:client:showErrorText', 'Out of fuel')simple_carkeys:server:forceToggleLockVoie job/admin : diffuse un basculement de verrouillage pour un vehicule sans verification de propriete.
Voir l'exemple
Voie metier/admin: diffuse un toggle de verrouillage sans verification de propriete.
-- Police impound forces an unlock without ownership checks
TriggerServerEvent('simple_carkeys:server:forceToggleLock', VehToNet(vehicle))simple_carkeys:server:forceToggleEngineVoie job/admin : diffuse un basculement moteur pour un vehicule sans verification de propriete.
Voir l'exemple
Voie metier/admin: diffuse un toggle moteur sans verification de propriete.
-- Ambulance script force-starts a parked car for an evac mission
TriggerServerEvent('simple_carkeys:server:forceToggleEngine', VehToNet(vehicle))simple_carkeys:server:checkOwnershipAndLockValide la propriete/cles partagees pour la plaque puis diffuse un toggle de verrou en cas de succes.
Voir l'exemple
Verifie propriete/cles partagees pour la plaque puis diffuse un toggle de verrouillage.
-- Player presses L; verify ownership before locking the vehicle
TriggerServerEvent('simple_carkeys:server:checkOwnershipAndLock', 'AB12XYZ', VehToNet(vehicle))simple_carkeys:server:checkOwnershipAndStartValide la propriete/cles partagees pour la plaque puis diffuse un toggle moteur en cas de succes.
Voir l'exemple
Verifie propriete/cles partagees pour la plaque puis diffuse un toggle moteur.
-- Validate then start engine on the vehicle the player is in
TriggerServerEvent('simple_carkeys:server:checkOwnershipAndStart', 'AB12XYZ', VehToNet(vehicle))simple_carkeys:server:universalEngineStartPermet a tout joueur de demarrer n'importe quel moteur quand Config.AllowUniversalEngineStart est actif.
Voir l'exemple
Permet a tout joueur de demarrer un moteur quand AllowUniversalEngineStart est actif.
-- Hotwire mini-game success: any player starts any engine when allowed in config
TriggerServerEvent('simple_carkeys:server:universalEngineStart', VehToNet(vehicle))09Agency-Vending
Distributeurs automatiques avec propriété par les joueurs, paiement en espèces ou par carte AgencyPay.
Associez à l'export AgencyPay d'Agency-Phone pour les achats par carte. Utilisez dans des jobs où les joueurs possèdent des emplacements de vending (stations-service, bureaux, appartements) pour générer un revenu passif.
Événements
agency-vending:notifyDispatcher generique de notifications cote server pour la resource vending.
Voir l'exemple
Envoie une notification generique vending au joueur apres un achat.
-- Plug a vending receipt into a custom logger via notify event
TriggerClientEvent('agency-vending:notify', src, 'success', 'Receipt #4821 saved to wallet')agency-vending:startAgencyPayLance un checkout AgencyPay via l'integration agency-phone avec les metadonnees marchand.
Voir l'exemple
Lance un paiement Agency Pay via le telephone avec les donnees du kiosque.
-- Pop a phone Agency Pay flow when a player taps a kiosk
TriggerClientEvent('agency-vending:startAgencyPay', src, { merchant = 'Sprunk Co', amount = 4.50, ref = 'flash_sale_01' })agency-vending:buyMachineResultResultat d'un achat de machine, transmis a la NUI pour retour.
Voir l'exemple
Transfere le resultat d'achat de machine vers une NUI shop personnalisee.
-- Forward buy-machine outcome to a custom shop UI
TriggerClientEvent('agency-vending:buyMachineResult', src, { success = true, machineId = 102 })agency-vending:machineCreatedBroadcast indiquant qu'une nouvelle machine du joueur a ete creee; met a jour le cache local et avertit le proprietaire.
Voir l'exemple
Diffuse a tous les clients un distributeur tout juste cree par un joueur.
-- Cache new owner-machine instantly when business script registers it
TriggerClientEvent('agency-vending:machineCreated', -1, { id = 142, owner = identifier, type = 'sprunk' })agency-vending:openManagementVerifiedOuverture verifiee cote server du menu de gestion proprietaire avec items, gains et label.
Voir l'exemple
Ouvre l'interface de gestion verifiee avec articles, gains et libelle apres auth.
-- After server-side ownership check open management menu with stock
TriggerClientEvent('agency-vending:openManagementVerified', src, { items = items, earnings = 1240, label = 'East LS Sprunk' })agency-vending:openOwnedListOuvre la NUI vue d'ensemble proprietaire avec toutes les machines du joueur et noms de rues.
Voir l'exemple
Ouvre la NUI d'apercu proprietaire listant tous les distributeurs du joueur.
-- Hotkey opens the owner overview NUI listing all owned machines
TriggerClientEvent('agency-vending:openOwnedList', src)agency-vending:spawnMachineCreatedBroadcast du spawner admin indiquant qu'une nouvelle entite machine a ete creee.
Voir l'exemple
Notifie tous les clients qu'un admin a fait apparaitre un distributeur.
-- Custom mapping tool tracks newly admin-spawned machine
TriggerClientEvent('agency-vending:spawnMachineCreated', -1, { entity = netId, model = 'prop_vend_soda_01', id = 7 })agency-vending:spawnMachineDeletedBroadcast du spawner admin indiquant qu'une entite machine spawnee a ete supprimee.
Voir l'exemple
Indique a tous les clients qu'un admin a supprime un distributeur deja place.
-- Mapping tool removes a deleted spawned machine from cache
TriggerClientEvent('agency-vending:spawnMachineDeleted', -1, 7)agency-vending:openSpawnerUIOuvre la NUI du spawner admin apres validation cote server des permissions.
Voir l'exemple
Ouvre la NUI de spawn admin pour placer des distributeurs dans le monde.
-- Custom command opens the admin spawner UI after permission passes
TriggerClientEvent('agency-vending:openSpawnerUI', src)agency-vending:buyMachineLe joueur achete un distributeur d'un type donne aux coordonnees et heading fournis.
Voir l'exemple
Le joueur achete un distributeur Sprunk a sa position actuelle aupres d'un PNJ.
-- Custom NPC sells vending machines via dialog
local coords = GetEntityCoords(PlayerPedId())
local heading = GetEntityHeading(PlayerPedId())
TriggerServerEvent('agency-vending:buyMachine', 'sprunk', coords, heading)agency-vending:requestOwnedListL'appelant demande la liste de ses machines pour l'UI de vue d'ensemble proprietaire.
Voir l'exemple
Demande au serveur la liste des distributeurs detenus par le joueur.
-- Refresh owner overview after a balance/restock action elsewhere
TriggerServerEvent('agency-vending:requestOwnedList')agency-vending:requestMachinesL'appelant demande au server une synchronisation complete de toutes les machines de joueurs.
Voir l'exemple
Demande une synchro complete et fraiche des distributeurs des joueurs au serveur.
-- Scan for nearby machines after teleport finished
TriggerServerEvent('agency-vending:requestMachines')agency-vending:requestManagementOuverture verifiee cote server de l'UI de gestion d'une machine possedee.
Voir l'exemple
Demande l'interface de gestion verifiee serveur pour le distributeur clique.
-- Owner UI requests verified management menu for a clicked machine
TriggerServerEvent('agency-vending:requestManagement', machineId)agency-vending:requestSpawnedMachinesL'appelant demande la liste des machines spawnees par admin pour l'UI du spawner.
Voir l'exemple
Demande la liste de tous les distributeurs spawnes par admin pour l'UI spawner.
-- Admin spawner UI fetches all currently spawned machines
TriggerServerEvent('agency-vending:requestSpawnedMachines')agency-vending:adminSpawnMachineL'admin place un nouveau prop de distributeur cote server apres verification des permissions.
Voir l'exemple
L'admin spawn un nouveau distributeur de snacks apres verification des permissions.
-- Admin places a snack machine via custom slash command
TriggerServerEvent('agency-vending:adminSpawnMachine', 'snack', vector3(120.5, -1280.7, 29.3), 90.0)agency-vending:adminDeleteSpawnedL'admin supprime cote server un prop de distributeur precedemment spawne.
Voir l'exemple
L'admin supprime cote serveur un distributeur precedemment place.
-- Admin removes a misplaced machine via map editor button
TriggerServerEvent('agency-vending:adminDeleteSpawned', spawnedId)10Agency-Admin
Panneau admin complet avec UI verre, chat AgencyAI et plus de 60 outils admin.
Les events sont parfaits comme "primitives" pour anti-cheat, bots de modération ou outils automatisés, appelle-les depuis ton script serveur pour freeze/kick/notify sans écrire ta propre UI.
Événements
agency-admin:client:refreshStaffRanksDemande au client de recharger les donnees des rangs du staff.
Voir l'exemple
Rafraichit le cache des grades staff pour chaque admin connecte apres une promotion.
-- After auto-promotion, refresh staff ranks for all online admins
for _, src in ipairs(GetPlayers()) do
TriggerClientEvent('agency-admin:client:refreshStaffRanks', tonumber(src))
endagency-admin:client:freezeTimeFige ou libere l'heure du monde cote client a l'heure et minute donnees.
Voir l'exemple
L'anti-triche fige l'horloge du monde a midi pendant la verification d'un joueur.
-- Anti-cheat halts world time during an investigation
local hour, minute = 12, 0
TriggerClientEvent('agency-admin:client:freezeTime', src, true, hour, minute)agency-admin:client:dashboardValueEnvoie une valeur de carte du tableau de bord (compteur live) vers l'UI du panel.
Voir l'exemple
Envoie le nombre de joueurs en ligne en direct a la carte du tableau de bord admin.
-- Stream live online player count to admin dashboard cards
local count = #GetPlayers()
TriggerClientEvent('agency-admin:client:dashboardValue', adminSrc, 'players_online', count)agency-admin:client:teleportToCoordsTeleporte l'appelant aux coordonnees monde fournies.
Voir l'exemple
Teleporte un joueur aux coordonnees sauvegardees apres un evenement de reapparition.
-- Job script teleports a player back to last save point on respawn
local coords = vector3(-1037.7, -2737.6, 20.16)
TriggerClientEvent('agency-admin:client:teleportToCoords', src, coords)agency-admin:client:announceAffiche une bannière d'annonce pour tout le serveur.
Voir l'exemple
Diffuse une banniere d'annonce a tout le serveur depuis un expediteur systeme nomme.
-- Event bot announces a community contest start
TriggerClientEvent('agency-admin:client:announce', -1, 'Event Crew', 'Heist contest starts in 5 minutes!')agency-admin:client:notifyEnvoie une notification à un admin spécifique.
Voir l'exemple
Envoie une notification stylee au joueur lorsque sa candidature est approuvee.
-- Whitelist bot informs a player they passed the application
TriggerClientEvent('agency-admin:client:notify', src, 'Whitelist', 'Application approved!', 'success', 8000)agency-admin:client:freezeFige le joueur ciblé sur place.
Voir l'exemple
Fige un joueur suspect afin que le staff puisse enqueter sans qu'il bouge.
-- Anti-cheat freezes a suspect player while staff investigates
TriggerClientEvent('agency-admin:client:freeze', suspectSrc, true)agency-admin:client:healRestaure les HP/armure de la cible.
Voir l'exemple
Soigne entierement le patient apres la fin de son traitement medical RP.
-- Medic job script fully heals the player after RP treatment ends
TriggerClientEvent('agency-admin:client:heal', patientSrc)agency-admin:client:reviveRessuscite le joueur ciblé.
Voir l'exemple
Reanime un joueur a terre apres la reussite du mini-jeu des secours.
-- EMS revive minigame succeeds, server marks player alive again
TriggerClientEvent('agency-admin:client:revive', downedSrc)agency-admin:client:teleportTeleporte le joueur local au vecteur de coordonnees fourni.
Voir l'exemple
Teleporte le joueur local aux coordonnees fournies.
-- Tutorial system teleports new player to spawn pad on first join
local coords = vector3(245.7, -871.5, 30.5)
TriggerClientEvent('agency-admin:client:teleport', src, coords)agency-admin:client:openMenuOuvre l'UI du panneau admin (nécessite une permission ACE).
Voir l'exemple
Ouvre l'interface principale du panneau admin pour le staff lors de la prise de service.
-- Auto-open admin panel for staff right after they switch on duty
TriggerClientEvent('agency-admin:client:openMenu', src)agency-admin:client:openToolsMenuDeclencheur cote server pour ouvrir le sous-menu des outils admin.
Voir l'exemple
Ouvre le sous-menu des outils admin lorsque le raccourci staff est presse.
-- Quick-action keybind opens the admin tools sub-menu
TriggerClientEvent('agency-admin:client:openToolsMenu', src)agency-admin:client:closeMenuDeclencheur cote server pour fermer l'UI du panel admin.
Voir l'exemple
Force la fermeture de l'interface du panneau admin lors d'une enquete sur l'admin.
-- Force-close the panel when admin gets reported themselves
TriggerClientEvent('agency-admin:client:closeMenu', adminSrc)agency-admin:client:openClothingMenuDeclencheur cote server pour ouvrir le menu de vetements en jeu pour le joueur.
Voir l'exemple
Ouvre le menu de vetements apres l'achat d'une tenue chez un tailleur.
-- Tailor NPC opens clothing menu after a uniform purchase
TriggerClientEvent('agency-admin:client:openClothingMenu', src)agency-admin:server:requestPlayersDemande la liste actuelle des joueurs en ligne pour le panel admin.
Voir l'exemple
Demande au serveur la derniere liste des joueurs en ligne pour le panneau.
-- Custom dashboard widget refreshes its players list
TriggerServerEvent('agency-admin:server:requestPlayers')agency-admin:server:requestPanelPermissionsDemande la table des permissions du panel pour l'editeur de rangs.
Voir l'exemple
Demande au serveur la table des permissions du panneau pour l'editeur de grades.
-- Permission editor needs the latest panel permission map
TriggerServerEvent('agency-admin:server:requestPanelPermissions')agency-admin:server:requestStaffRanksDemande le jeu de donnees des rangs du staff pour le panel.
Voir l'exemple
Demande le jeu complet de grades staff pour un widget CRM personnalise.
-- Sync staff ranks dataset into a custom CRM widget
TriggerServerEvent('agency-admin:server:requestStaffRanks')agency-admin:server:createRankCree un nouveau rang du staff avec metadonnees et permissions.
Voir l'exemple
Cree un nouveau grade staff depuis une synchronisation de portail RH externe.
-- Sync rank from external HR portal -> create matching staff rank
TriggerServerEvent('agency-admin:server:createRank', { name = 'Senior Mod', color = '#a855f7', priority = 50 })agency-admin:server:requestMyPermissionsL'appelant demande son propre ensemble de permissions de panel resolu.
Voir l'exemple
Demande l'ensemble de permissions resolu du joueur a l'ouverture de l'interface.
-- Fetch caller's resolved permission set before showing dev tools
TriggerServerEvent('agency-admin:server:requestMyPermissions')agency-admin:server:requestSyncL'appelant demande au server d'envoyer la charge utile sync standard (service/permissions/etc.).
Voir l'exemple
Force le serveur a envoyer le paquet de synchro standard duty/perms au joueur.
-- Force a fresh sync after the player reconnects
TriggerServerEvent('agency-admin:server:requestSync')agency-admin:server:requestDutyRankL'appelant demande ses infos de rang admin en service actuel.
Voir l'exemple
Demande le grade de duty admin actuel du joueur pour une superposition HUD.
-- Display admin's duty rank on a custom HUD overlay
TriggerServerEvent('agency-admin:server:requestDutyRank')agency-admin:server:requestSpawnedObjectsL'appelant demande la liste des objets monde spawnes par l'admin.
Voir l'exemple
Demande la liste des objets monde spawnes par admin pour la mini-carte.
-- Map editor needs to draw all admin-spawned objects on a minimap
TriggerServerEvent('agency-admin:server:requestSpawnedObjects')11Agency-Reports V2
Système de rapports moderne avec chat en direct par rapport et réponses assistées par IA.
Utilise-le comme épine dorsale "ticket de support" pour tout ton serveur. Tes scripts peuvent ouvrir automatiquement des rapports en cas de problème (véhicules bloqués, items dupliqués, sauvegardes SQL ratées) pour examen admin.
Événements
agency-reports:client:notifyDéclenche une notification "nouveau rapport" pour un admin spécifique.
Voir l'exemple
Notification piloteee serveur respectant la preference de notification UI du joueur.
-- Server tells client a new admin reply landed
TriggerClientEvent('agency-reports:client:notify', source, 'New reply on your report', 'info')agency-reports:client:openPlayerUIOuvre l'UI de rapport côté joueur.
Voir l'exemple
Ouvre l'UI rapport joueur avec categories, rapports recents et reglages AI/Discord.
-- Open the player report UI on a custom keybind
local categories = { 'Bug', 'Player report', 'Stuck' }
TriggerEvent('agency-reports:client:openPlayerUI', categories, {}, {}, {})agency-reports:client:openAdminUIOuvre la liste des rapports côté admin.
Voir l'exemple
Ouvre le tableau de bord admin avec l'ensemble complet des rapports.
-- Force-open the admin reports dashboard from a staff command
TriggerEvent('agency-reports:client:openAdminUI', { reports = {}, total = 0 })agency-reports:client:teleportTeleporte l'admin appelant aux coordonnees fournies (pour les actions goto).
Voir l'exemple
Teleporte l'admin appelant aux coordonnees fournies pour les actions goto.
-- Goto-action: teleport the responding admin to the report scene
TriggerEvent('agency-reports:client:teleport', vector3(-247.6, -2010.2, 30.1))agency-reports:client:healSelfSoigne entierement le ped de l'admin appelant.
Voir l'exemple
Soigne entierement le ped de l'admin apres avoir traite un rapport.
-- Heal admin after a hostile scene to keep them in service
TriggerEvent('agency-reports:client:healSelf')agency-reports:server:submitReportSoumet un nouveau rapport en dehors de l'UI.
Voir l'exemple
Le joueur soumet un nouveau rapport avec titre, categorie et description.
-- Player submits a quick stuck-at-pier report
TriggerServerEvent('agency-reports:server:submitReport', 'Stuck at pier', 'Stuck', 'Vehicle wedged under pier - cant move')agency-reports:server:requestPlayerDataL'appelant demande sa charge utile de rapport; ouvre eventuellement l'UI joueur en reponse.
Voir l'exemple
L'appelant demande sa charge utile de rapport, ouvre optionnellement l'UI joueur.
-- Pull fresh data and (optionally) auto-open the player UI
TriggerServerEvent('agency-reports:server:requestPlayerData', true)agency-reports:server:requestAdminDataL'admin demande le jeu complet de rapports et ouvre le dashboard admin si autorise.
Voir l'exemple
L'admin demande tout le dataset de rapports et ouvre le tableau de bord si autorise.
-- Admin staff opens the dashboard after going on duty
TriggerServerEvent('agency-reports:server:requestAdminData')agency-reports:server:sendChatMessageEnvoie un message de chat dans un rapport ouvert.
Voir l'exemple
Publie un message chat dans un fil de rapport specifique pour admin ou joueur.
-- Player posts a follow-up chat message into report #42
TriggerServerEvent('agency-reports:server:sendChatMessage', 42, 'Still stuck, any ETA?')12Agency-Hud
HUD animé avec tableau de bord véhicule, barres de statut, compteur de vitesse et intégration ceinture.
Si tu as une économie ou un système de besoins personnalisé, pilote le HUD depuis ton propre script avec ces setters au lieu de bricoler autour. Le HUD gère l'animation et la persistance pour toi.
Exports client
GetVehicleSettings()Renvoie la table des paramètres véhicule actuels.
Voir l'exemple
Lit la table des parametres HUD vehicule local pour inspection ou synchronisation.
local settings = exports['Agency-Hud']:GetVehicleSettings()
print('Speed unit:', settings.speedUnit)
print('HUD scale:', settings.scale)SetSpeedUnit(unit: string)Bascule le compteur entre 'mph' et 'kmh'.
Voir l'exemple
Bascule le compteur de vitesse en miles par heure et enregistre localement.
RegisterCommand('usemph', function()
exports['Agency-Hud']:SetSpeedUnit('mph')
end)SetHunger(value: number)Définit la valeur de la barre de faim (0-100).
Voir l'exemple
Envoie le niveau de faim actuel du joueur dans le HUD.
AddEventHandler('player:hungerChanged', function(value)
exports['Agency-Hud']:SetHunger(value)
end)SetThirst(value: number)Définit la valeur de la barre de soif (0-100).
Voir l'exemple
Envoie le niveau de soif actuel du joueur dans le HUD.
AddEventHandler('player:thirstChanged', function(value)
exports['Agency-Hud']:SetThirst(value)
end)SetStress(value: number)Définit la valeur de la barre de stress (0-100).
Voir l'exemple
Met a jour l'indicateur de stress du HUD depuis un systeme de stress personnalise.
AddEventHandler('jobstress:onTick', function(stress)
exports['Agency-Hud']:SetStress(stress)
end)SetMoney(value: number)Définit le solde en espèces affiché.
Voir l'exemple
Met a jour le montant en especes affiche sur le HUD.
AddEventHandler('wallet:cashChanged', function(cash)
exports['Agency-Hud']:SetMoney(cash)
end)SetBank(value: number)Définit le solde bancaire affiché (pour les scripts d'économie personnalisés).
Voir l'exemple
Met a jour le solde bancaire affiche dans le HUD.
AddEventHandler('bank:balanceChanged', function(balance)
exports['Agency-Hud']:SetBank(balance)
end)SetJob(label: string)Définit le libellé de job affiché.
Voir l'exemple
Definit l'etiquette du metier affichee apres un changement de profession.
AddEventHandler('job:onChange', function(job)
exports['Agency-Hud']:SetJob(job.label)
end)SetRank(rank: string)Définit le rang/grade de job affiché.
Voir l'exemple
Met a jour le rang du joueur affiche a cote de l'etiquette du metier.
AddEventHandler('job:onGradeChange', function(grade)
exports['Agency-Hud']:SetRank(grade.label)
end)GetDetectedFramework()Renvoie la chaîne du framework ("qb", "esx", "standalone") détecté automatiquement par le HUD.
Voir l'exemple
Lit la cle du framework detecte pour brancher une logique HUD personnalisee.
local fw = exports['Agency-Hud']:GetDetectedFramework()
if fw == 'qb' then
print('QB-Core detected')
endÉvénements
Agency-HUD:client:applyVehicleSettingsPatchApplique un correctif partiel des réglages de véhicule au HUD véhicule local.
Voir l'exemple
Applique un patch partiel des parametres HUD vehicule sur le client local.
TriggerEvent('Agency-HUD:client:applyVehicleSettingsPatch', {
style = 'modern',
speedUnit = 'kmh'
})Agency-HUD:client:openAdminMenuOuvre le menu admin du HUD (nécessite une permission).
Voir l'exemple
Ouvre l'interface NUI du menu admin HUD chez le client recepteur.
TriggerEvent('Agency-HUD:client:openAdminMenu')Agency-HUD:server:checkAdminPermissionVérifie les droits admin de l'appelant et ouvre le menu admin en cas de succès.
Voir l'exemple
Demande au serveur de verifier les droits admin et d'ouvrir le menu admin HUD.
RegisterCommand('checkhudadmin', function()
TriggerServerEvent('Agency-HUD:server:checkAdminPermission')
end)Agency-HUD:server:saveGlobalSettingsPersistance des réglages HUD globaux réservée aux admins; diffuse la sync.
Voir l'exemple
Enregistre une nouvelle configuration HUD globale (admin uniquement) et la diffuse.
TriggerServerEvent('Agency-HUD:server:saveGlobalSettings', {
style = 'modern',
accent = '#ff6b00'
})Agency-HUD:server:requestGlobalSettingsRenvoie les réglages globaux actuels au client demandeur.
Voir l'exemple
Demande les parametres HUD globaux actuels au demarrage de la ressource.
AddEventHandler('onClientResourceStart', function(res)
if res == GetCurrentResourceName() then
TriggerServerEvent('Agency-HUD:server:requestGlobalSettings')
end
end)Agency-HUD:server:requestTimeRenvoie l'heure serveur actuelle à l'appelant pour l'horloge HUD.
Voir l'exemple
Interroge l'horloge serveur chaque minute pour actualiser l'affichage HUD.
CreateThread(function()
while true do
TriggerServerEvent('Agency-HUD:server:requestTime')
Wait(60000)
end
end)13Agency-Progressbar
Barre de progression animée avec UI verre, 4 thèmes, actions annulables et exports client/server.
Utilise-le partout où tu afficherais normalement "faire la chose X pendant Y secondes". Remplace plusieurs ressources de progress bar legacy par une seule UI cohérente sur tout ton serveur.
Exports client
StartProgress(data: table)Démarre une barre de progression avec une table d'options complète. Retourne immédiatement; les callbacks se déclenchent à la fin/annulation.
Voir l'exemple
Lance une barre de crochetage de 8s avec animation et callback de fin.
exports['Agency-Progressbar']:StartProgress({
label = 'Picking lock...',
duration = 8000,
animation = { dict = 'anim@heists@fleeca_bank@drilling', clip = 'drill_straight_idle' },
onFinish = function() TriggerServerEvent('garage:lockpicked', vehNet) end,
onCancel = function() print('Lockpick cancelled') end
})StopProgress(completed: boolean)Arrête la barre de progression en cours. Passe true pour marquer comme annulée.
Voir l'exemple
Annule la barre de progression active quand le joueur appuie sur X.
if IsControlJustPressed(0, 73) then
exports['Agency-Progressbar']:StopProgress(false)
endIsProgressActive()Renvoie true si une barre de progression est actuellement affichée.
Voir l'exemple
Empeche de lancer une action d'artisanat tant qu'une barre est active.
if exports['Agency-Progressbar']:IsProgressActive() then
return
end
startCrafting()GetProgressPercentage()Renvoie le pourcentage de remplissage actuel (0-100).
Voir l'exemple
Declenche un tick de mini-jeu une fois la barre remplie a plus de 75 %.
CreateThread(function()
while exports['Agency-Progressbar']:IsProgressActive() do
local pct = exports['Agency-Progressbar']:GetProgressPercentage()
if pct > 75 then SendMinigameTick() end
Wait(100)
end
end)SetProgressTheme(theme: string)Change le thème à l'exécution: 'modern', 'neon', 'minimal' ou 'classic'.
Voir l'exemple
Change l'apparence de la barre de progression active vers le theme moderne.
RegisterCommand('darkbar', function()
exports['Agency-Progressbar']:SetProgressTheme('modern')
end)SetProgressPosition(position: string)Change la position: 'top', 'bottom', 'center'.
Voir l'exemple
Deplace la barre de progression active au centre bas de l'ecran.
RegisterCommand('barbottom', function()
exports['Agency-Progressbar']:SetProgressPosition('bottom-center')
end)TryReload(usedItem?: string)Joue la séquence de rechargement style ESX.
Voir l'exemple
Lance un rechargement valide cote serveur avec une boite de 9mm.
RegisterKeyMapping('+reload', 'Reload weapon', 'keyboard', 'R')
RegisterCommand('+reload', function()
exports['Agency-Progressbar']:TryReload('ammo-9')
end)UseConsumable(itemName: string, isDrink: boolean)Joue l'animation manger/boire avec la barre de progression.
Voir l'exemple
Joue l'animation de boisson et augmente la soif a l'utilisation d'eau.
RegisterNetEvent('inventory:useItem', function(item)
if item == 'water_bottle' then
exports['Agency-Progressbar']:UseConsumable('water_bottle', true)
end
end)Exports serveur
StartProgressForPlayer(playerId: number, data: table)Déclenche une barre de progression sur un client spécifique depuis le serveur.
Voir l'exemple
Lance une barre de soulevement de caisse de 5 s pour le joueur demandant.
RegisterCommand('lift', function(source)
exports['Agency-Progressbar']:StartProgressForPlayer(source, {
label = 'Lifting crate...',
duration = 5000
})
end, false)StopProgressForPlayer(playerId: number, completed?: boolean)Annule à distance la barre de progression d'un joueur spécifique.
Voir l'exemple
Annule la barre de progression active d'un joueur cible depuis le serveur.
RegisterNetEvent('admin:cancelProgress', function(targetId)
exports['Agency-Progressbar']:StopProgressForPlayer(targetId, false)
end)StartProgressForAllPlayers(data: table)Diffuse une barre de progression à tous les clients connectés.
Voir l'exemple
Diffuse une barre d'alerte tempete de 30 s a tous les joueurs.
RegisterNetEvent('event:weatherWarning', function()
exports['Agency-Progressbar']:StartProgressForAllPlayers({
label = 'Storm incoming - take shelter',
duration = 30000
})
end)StopProgressForAllPlayers(completed?: boolean)Annule la barre de progression de chaque joueur (ex. fin de round).
Voir l'exemple
Arrete la barre globale d'alerte tempete chez tous les joueurs.
RegisterNetEvent('event:weatherCleared', function()
exports['Agency-Progressbar']:StopProgressForAllPlayers(true)
end)Événements
Agency:Progressbar:LoadSettingsCharge les réglages UI par joueur (position, couleur, échelle, style) depuis la BD vers le client.
Voir l'exemple
Charge les parametres UI sauvegardes de la barre lors de l'apparition.
AddEventHandler('playerSpawned', function()
TriggerEvent('Agency:Progressbar:LoadSettings')
end)agency-progressbar:client:startDémarre la barre de progression sur le client récepteur avec les données fournies.
Voir l'exemple
Lance une barre de reparation moteur de 12 s, annulable.
TriggerEvent('agency-progressbar:client:start', {
label = 'Repairing engine...',
duration = 12000,
canCancel = true
})agency-progressbar:client:stopArrête la barre de progression active avec un drapeau de complétion.
Voir l'exemple
Interrompt la barre active lorsque le joueur est menotte.
RegisterNetEvent('police:cuffed', function()
TriggerEvent('agency-progressbar:client:stop', false)
end)agency:consumables:useFoodPont inventaire pour consommer un aliment (animation + application serveur sécurisée).
Voir l'exemple
Declenche le pont nourriture de l'inventaire pour consommer un sandwich.
TriggerEvent('agency:consumables:useFood', 'sandwich')agency:consumables:useDrinkPont inventaire pour consommer une boisson (animation + application serveur sécurisée).
Voir l'exemple
Declenche le pont boisson de l'inventaire pour consommer un cafe.
TriggerEvent('agency:consumables:useDrink', 'coffee_cup')Agency:Progressbar:SaveSettingsValide et persiste les réglages UI de la barre de progression du joueur en BD.
Voir l'exemple
Sauvegarde les preferences UI de la barre de progression dans la base.
TriggerServerEvent('Agency:Progressbar:SaveSettings', {
position = 'top-right',
color = '#00aaff',
scale = 1.2
})agency-progressbar:server:startDéclencheur côté serveur pour démarrer une barre de progression sur une cible (ou soi-même).
Voir l'exemple
Trigger serveur pour lancer une barre de chargement de caisse de 6 s sur la cible.
RegisterCommand('movecrate', function(source)
TriggerEvent('agency-progressbar:server:start', source, {
label = 'Loading crate onto truck',
duration = 6000
})
end, false)agency-progressbar:server:stopDéclencheur côté serveur pour arrêter une barre de progression sur une cible (ou soi-même).
Voir l'exemple
Trigger serveur pour stopper la barre d'une cible avec etat annule.
RegisterNetEvent('admin:abortJob', function(targetId)
TriggerEvent('agency-progressbar:server:stop', targetId, false)
end)agency:reload:requestValide munitions/arme/objet avant d'accorder un rechargement au joueur demandeur.
Voir l'exemple
Demande au serveur de valider les munitions et autoriser le rechargement d'un pistolet.
TriggerServerEvent('agency:reload:request', 'WEAPON_PISTOL', 'ammo-9')agency:consumables:applyValide l'inventaire, retire un objet et applique les gains de faim/soif.
Voir l'exemple
Demande au serveur de retirer l'aliment et d'appliquer le gain de faim.
RegisterNetEvent('food:onEatStart', function(itemName)
TriggerServerEvent('agency:consumables:apply', itemName)
end)14Agency-Notify
Systeme de notifications avec styles V1/V2, priorite intelligente AgencyAI, protection anti-spam et persistance en base de donnees.
Remplace toutes les autres ressources de notification de ton serveur (qb-notify, esx_notify, mythic_notify, okok-notify, etc.) par un design coherent. Le systeme de priorite AgencyAI limite automatiquement le debit des notifications spammy.
Exports client
Notify(data: { title, text, type, duration, ... })Affiche une notification. Accepte { type, title, text, duration, icon, color }.
Voir l'exemple
Envoie une notification de reussite de 6 s annoncant un objectif de braquage.
exports['Agency-Notify']:Notify({
title = 'Bank Heist',
text = 'Vault drilled, grab the loot!',
type = 'success',
duration = 6000
})Événements
Agency:Notify:SendIdentique a l'export, permet d'utiliser le pattern Trigger classique.
Voir l'exemple
Evenement client legacy v1 affichant le meme payload que l'export.
TriggerEvent('Agency:Notify:Send', {
title = 'Old Notify',
text = 'Legacy v1 entry point still works',
type = 'info'
})Agency:Notify:LoadSettingsApplique les réglages UI sauvegardés par joueur (position, couleur, échelle, style) depuis le serveur.
Voir l'exemple
Charge les parametres UI de notification sauvegardes par joueur a l'apparition.
AddEventHandler('playerSpawned', function()
TriggerEvent('Agency:Notify:LoadSettings')
end)Agency:Notify:SaveSettingsValide et persiste les réglages de notification du joueur (position, accent, échelle, style).
Voir l'exemple
Sauvegarde la position, l'accent et l'echelle des notifications dans la base.
TriggerServerEvent('Agency:Notify:SaveSettings', {
position = 'top-right',
accent = '#ff8800',
scale = 1.1,
style = 'modern'
})15Agency-Seatbelt
Ceinture de securite avec physique d'ejection, sons 3D, support multi-occupants et integration HUD.
Branche l'etat sur ton propre HUD, ou force l'activation au debut d'une course-poursuite / fuite de braquage. Les exports force-enable/disable sont parfaits pour les moments RP.
Exports client
enableSeatbelt()Force la mise de la ceinture (par ex. lors d'une arrestation par la police).
Voir l'exemple
Boucle la ceinture du joueur local avec retour HUD et sonore.
RegisterNetEvent('vehicle:autoBuckle', function()
if IsPedInAnyVehicle(PlayerPedId(), false) then
exports['Agency-Seatbelt']:enableSeatbelt()
end
end)disableSeatbelt()Force le retrait de la ceinture (cinematiques, scenarios RP).
Voir l'exemple
Detache la ceinture du joueur local en sortant d'un vehicule.
RegisterNetEvent('vehicle:onExit', function()
exports['Agency-Seatbelt']:disableSeatbelt()
end)toggleSeatbelt()Bascule l'etat de la ceinture (ce que fait le keybind par defaut).
Voir l'exemple
Bascule la ceinture du joueur local sur appui de touche.
RegisterKeyMapping('+seatbelt', 'Toggle seatbelt', 'keyboard', 'B')
RegisterCommand('+seatbelt', function()
exports['Agency-Seatbelt']:toggleSeatbelt()
end)isSeatbeltOn()Renvoie true si le joueur a actuellement sa ceinture attachee.
Voir l'exemple
Desactive le controle de sortie tant que la ceinture est bouclee.
if exports['Agency-Seatbelt']:isSeatbeltOn() then
DisableControlAction(0, 75, true)
end16Agency-Elevator
Systeme d'ascenseur realiste avec UI Liquid Glass et un configurateur.
Parfait dans les scripts d'appartement/housing, QG de police, hopital ou tout interieur multi-etages. Utilise le configurateur pour placer les ascenseurs visuellement sans toucher aux fichiers de config.
Événements
Agency-Elevator:server:requestTravelRequete validee par le serveur pour se deplacer entre etages.
Voir l'exemple
Demande au serveur de valider l'acces puis de monter a l'etage 3.
TriggerServerEvent('Agency-Elevator:server:requestTravel', 'lspd-tower-1', 3)Agency-Elevator:server:travelCompleteConfirme l'arrivée du client et envoie la notification 'arrivé à l'étage'.
Voir l'exemple
Indique au serveur l'arrivee a l'etage 3 pour envoyer la notification d'arrivee.
TriggerServerEvent('Agency-Elevator:server:travelComplete', 'lspd-tower-1', 3)Agency-Elevator:server:requestElevatorsSynchronise la liste d'ascenseurs chargée depuis la base de données vers le client demandeur.
Voir l'exemple
Demande la liste complete des ascenseurs au serveur a l'initialisation.
AddEventHandler('onClientResourceStart', function(res)
if res == GetCurrentResourceName() then
TriggerServerEvent('Agency-Elevator:server:requestElevators')
end
end)Agency-Elevator:server:saveElevatorUpsert d'un ascenseur (id/label/étages) dans MySQL avec contrôle des permissions.
Voir l'exemple
Upsert admin d'un ascenseur avec une seule entree d'etage Lobby.
TriggerServerEvent('Agency-Elevator:server:saveElevator', {
id = 'lspd-tower-1',
label = 'LSPD HQ',
floors = { { name = 'Lobby', coords = vector3(441.0, -981.5, 30.7) } }
})Agency-Elevator:server:loadElevatorFait apparaitre/charge un ascenseur sauvegarde depuis la base de donnees.
Voir l'exemple
Charge les donnees d'un seul ascenseur dans le NUI du configurateur pour edition.
TriggerServerEvent('Agency-Elevator:server:loadElevator', 'lspd-tower-1')Agency-Elevator:server:saveSettingsPersiste les réglages UI (position/échelle/couleur d'accent) dans MySQL et resynchronise tous les clients.
Voir l'exemple
Sauvegarde la position UI, la couleur d'accent et l'echelle et resync tous les clients.
TriggerServerEvent('Agency-Elevator:server:saveSettings', {
position = 'top-right',
accent = '#22c55e',
scale = 1.0
})Agency-Elevator:client:startTravelDemarre une cinematique de trajet d'ascenseur pour le joueur.
Voir l'exemple
Joue le fondu et l'animation puis teleporte le ped a l'etage 2 du garage.
TriggerEvent('Agency-Elevator:client:startTravel', 'parking-garage', 2)Agency-Elevator:client:applySettingsEnvoie les réglages UI (accent/échelle/position) vers le NUI.
Voir l'exemple
Applique l'accent, l'echelle et la position du NUI ascenseur sur le client local.
TriggerEvent('Agency-Elevator:client:applySettings', {
accent = '#0ea5e9',
scale = 0.9,
position = 'bottom-left'
})Agency-Elevator:client:openConfiguratorOuvre le configurateur d'ascenseur en jeu (admin uniquement).
Voir l'exemple
Ouvre le NUI configurateur admin avec la liste d'ascenseurs actuelle.
TriggerEvent('Agency-Elevator:client:openConfigurator')Agency-Elevator:client:refreshConfiguratorActualise le configurateur ouvert après une sauvegarde/suppression sans le fermer.
Voir l'exemple
Rafraichit le NUI configurateur ouvert apres une sauvegarde sans le fermer.
AddEventHandler('Agency-Elevator:server:elevatorSaved', function()
TriggerEvent('Agency-Elevator:client:refreshConfigurator')
end)17Agency-Housing
Database driven housing system for FiveM with auto-detection for ESX, QBCore and QBox. Houses are created in-game through a liquid-glass creator UI instead of a config file: place the entrance where you stand, mark the property border from the air, pick one of 18 shells or record a custom interior. Buy and sell with configurable refunds and a per-player limit, hand keys to other players, furnish the whole plot with up to 60 props, and lock real MLO doors. Property borders run on PolyZone, everything persists in MySQL.
Exports client
IsInsideHouse()Returns true while the player is inside a house.
GetCurrentHouse()The house the player is currently inside, or nil.
LeaveHouse()Puts the player back outside through the entrance.
GetHouseAtPoint(coords)The first house whose property border owns this ground.
GetHousesAtPoint(coords)Every house owning this ground, for overlapping plots such as an apartment block.
GetCurrentProperty()The plot the player is standing on right now, or nil.
IsOnProperty(houseId)Whether the player stands on the property of that house.
GetHouseZone(houseId)The stored border shape of a house.
GetAccent()The accent colour the player picked in Housing > Settings.
Exports serveur
GetHouses()Every house on the server, keyed by id.
GetPlayerHouses(source)The houses that player owns.
HasHouseAccess(source, houseId)Whether that player owns the house or holds a key to it.
GetHouseAtPoint(coords)The first house whose property border owns this ground.
GetHousesAtPoint(coords)Every house owning this ground, for overlapping plots.
GetHouseZone(houseId)The stored border shape of a house.
Événements
agency-housing:client:enteredZoneFires with (houseId, house) when the player steps onto a property, so a job or robbery script does not have to poll.
agency-housing:client:leftZoneFires with (houseId, house) when the player leaves a property.
Toujours bloqué après cette page ? Notre support prend le relais.