Agency Docs

Socios dev

Integrarse con los scripts de Agency

¿Estás creando tu propio script de FiveM y quieres conectarlo con los nuestros? Aquí está cada export y cada evento público, con un fragmento de Lua para copiar.

Los exports permiten que tu script llame a una función del nuestro: exports['script-name']:FunctionName(args), tanto en cliente como en servidor. Los eventos van al revés: se lanzan con TriggerEvent o TriggerServerEvent y se escuchan con RegisterNetEvent.

01Agency-Phone

Teléfono multi-framework completo con SMS, llamadas, feed social, mail, cámara, wallet y pago AgencyPay.

Úsalo en cualquier script de tienda/robo/trabajo cuando quieras un flujo de pago limpio dentro del teléfono en lugar de descontar dinero al instante. También ideal para notificaciones en juego con aceptar/denegar (p. ej. peticiones de taxi, llamadas de dispatch).

Documentación completa

Exports de cliente

IsPhoneOpen()

Devuelve true si la UI del teléfono está abierta actualmente.

Ver ejemplo

Evita abrir un menú propio si el teléfono ya está en pantalla.

RegisterCommand('openmymenu', function() if exports['agency-phone']:IsPhoneOpen() then return end TriggerEvent('myresource:openMenu') end)
IsPhonePoweredOn()

Devuelve true si el teléfono está encendido.

Ver ejemplo

Detiene la sincronización en segundo plano mientras el teléfono está apagado.

CreateThread(function() while true do Wait(2000) if not exports['agency-phone']:IsPhonePoweredOn() then print('Phone off, pausing background sync') end end end)
GetPhoneData()

Devuelve la tabla cruda de datos del teléfono.

Ver ejemplo

Vuelca toda la tabla de datos del teléfono para depurar.

RegisterCommand('phonedebug', function() local data = exports['agency-phone']:GetPhoneData() print(json.encode(data, { indent = true })) end)
GetPhonePropEntity()

Devuelve el handle de la entidad del prop del teléfono sostenido, o 0 si no es visible.

Ver ejemplo

Oculta brevemente el prop del teléfono sin alterar la lógica.

CreateThread(function() Wait(500) local prop = exports['agency-phone']:GetPhonePropEntity() if prop ~= 0 and DoesEntityExist(prop) then SetEntityVisible(prop, false, false) end end)
IsPhoneExpanded()

Devuelve true si el teléfono está expandido en pantalla.

Ver ejemplo

Alias antiguo que bloquea un minijuego mientras el teléfono está abierto.

AddEventHandler('myresource:beforeMinigame', function() if exports['agency-phone']:IsPhoneExpanded() then TriggerEvent('chat:addMessage', { args = { 'Close phone first' } }) return end end)
HasCarrierContract()

Devuelve true cuando el jugador tiene un data plan de operador activo.

Ver ejemplo

Avisa al jugador cuando no hay un plan de datos activo.

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()

Devuelve el objeto completo del estado del teléfono.

Ver ejemplo

Cachea el estado del teléfono solo si está abierto, encendido y sincronizando.

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()

Devuelve true si el jugador tiene un item de teléfono.

Ver ejemplo

Bloquea el comando de emergencia si el jugador no lleva un teléfono.

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)

Registra un terminal de comerciante AgencyPay recurrente.

Ver ejemplo

Crea un terminal Agency Pay en tiempo real para el taller mecánico.

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)

Elimina un terminal AgencyPay registrado previamente.

Ver ejemplo

Elimina el punto de pago registrado al cerrar la tienda por la noche.

AddEventHandler('myresource:onShopClosed', function(shopId) exports['agency-phone']:RemoveAgencyPayPoint('mechanic_main') print('Removed pay point for shop ' .. shopId) end)
StartAgencyPayCheckout(data)

Abre la hoja de checkout de AgencyPay para un pago seguro con tarjeta.

Ver ejemplo

Abre el teléfono e inicia un pequeño pago de propina con 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)

Inicia una llamada pma-voice usando una tabla de contacto.

Ver ejemplo

Inicia una llamada saliente al contacto enviado por el 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)

Muestra una notificación de teléfono con botones aceptar/denegar opcionales.

Ver ejemplo

Muestra una notificación bloqueante de aceptar/rechazar para un contrato de grúa.

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 de servidor

SendMail(identifier, mailData)

Envía un mail a un jugador (en línea o sin conexión).

Ver ejemplo

Envía un correo de recibo a un jugador por su identificador 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)

Publica un mensaje en el feed Pulse (chirper).

Ver ejemplo

Publica un anuncio de recompensa en Chirper desde el servidor.

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 registrado cuando se detecta ESX+ox_inventory; abre el phone al portador del inventario.

Ver ejemplo

Engancha usingItem de ox_inventory para abrir el teléfono.

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 } })

Eventos

agency-phone:client:notify

Muestra una notificación del phone (title, text, icon, color, timeout, silent).

Ver ejemplo

Lanza un toast no bloqueante avisando que el vehículo está listo.

TriggerEvent('agency-phone:client:notify', 'Heads up', 'Vehicle ready for pickup', 'car', '#22cc88', 5000, false)
agency-phone:client:usePhoneItem

Activa el flujo de apertura del phone al usar el ítem de inventario.

Ver ejemplo

Reenvía un evento propio de uso de ítem al flujo de apertura del teléfono.

AddEventHandler('myresource:client:onItemUsed', function(itemName) if itemName == 'phone' then TriggerEvent('agency-phone:client:usePhoneItem') end end)
agency-phone:client:openApp

Solicita al phone navegar a una app personalizada por id (usado por módulos de app).

Ver ejemplo

Salta directo a una app bancaria personalizada por su id.

RegisterCommand('openbank', function() TriggerEvent('agency-phone:client:openApp', 'banking') end)
agency-phone:client:newMailNotify

Notifica al client de un correo recién recibido.

Ver ejemplo

Escucha notificaciones de correo nuevo y las registra para depuración.

AddEventHandler('agency-phone:client:newMailNotify', function(mail) print(('New mail from %s: %s'):format(mail.sender, mail.subject)) end)
agency-phone:server:requestPhoneData

Solicita una sincronización fresca de datos del phone para el jugador llamante.

Ver ejemplo

Pide al servidor un nuevo sync completo de los datos del teléfono.

RegisterCommand('refreshphone', function() TriggerServerEvent('agency-phone:server:requestPhoneData') end)
agency-phone:server:cancelCall

Cancela o finaliza una llamada activa.

Ver ejemplo

Cuelga la llamada activa desde un atajo propio o comando de chat.

RegisterCommand('hangup', function() TriggerServerEvent('agency-phone:server:cancelCall') end)
agency-phone:server:sendMessage

Envía un mensaje SMS (newMsg, targetNumber).

Ver ejemplo

Envía rápido un SMS a un número de destino desde el 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:saveSetting

Persiste una única clave/valor de ajuste del phone para el jugador.

Ver ejemplo

Persiste un ajuste del teléfono cuando el jugador lo cambia en cliente.

AddEventHandler('myresource:client:onSettingChanged', function(key, value) TriggerServerEvent('agency-phone:server:saveSetting', key, value) end)
agency-phone:server:airdropPay

Realiza una transferencia Agency Airdrop a un jugador cercano.

Ver ejemplo

Activa un Agency Airdrop a jugadores cercanos con el importe escrito.

RegisterCommand('airdrop', function(_, args) local amount = tonumber(args[1]) or 0 TriggerServerEvent('agency-phone:server:airdropPay', amount, 'Tip via airdrop') end)
agency-phone:server:buyDataPlan

Compra un data plan de operador para el jugador (price, planName).

Ver ejemplo

Compra un plan de datos después de que el jugador lo elija en una UI propia.

AddEventHandler('myresource:client:onPlanSelected', function(plan) TriggerServerEvent('agency-phone:server:buyDataPlan', plan.price, plan.name) end)
agency-phone:dispatch:create

Crea un dispatch del phone a partir de una llamada/SMS de emergencia.

Ver ejemplo

Genera una entrada de dispatch del teléfono desde una llamada de emergencia.

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

Tablet AgencyOS con un ecosistema completo de apps. Registra tus propias apps mediante config.lua.

Perfecto para dashboards de admin, apps de gestión empresarial, mapas de territorio de gangs o cualquier UI custom que tus jugadores necesiten dentro de GTA, vive en una bonita carcasa de tablet sin trabajo extra.

Documentación completa

Exports de cliente

IsPadOpen()

Devuelve true si la UI del tablet está abierta (comprueba el estado del tablet antes de mostrar UIs).

Ver ejemplo

Evita reabrir la UI de tablet si la tablet en juego ya está abierta.

RegisterCommand('opentablet', function() if exports['agency-pad']:IsPadOpen() then return end TriggerEvent('myresource:openTablet') end)
IsPadPoweredOn()

Devuelve true si la tablet está encendida.

Ver ejemplo

Pausa el sondeo de flota mientras el tablet está apagado.

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()

Devuelve la tabla PadData completa del lado client.

Ver ejemplo

Vuelca toda la tabla de datos del tablet en cliente para inspeccionar.

RegisterCommand('paddebug', function() local data = exports['agency-pad']:GetPadData() print(json.encode(data, { indent = true })) end)
GetPadPropEntity()

Devuelve el handle de la entidad del prop de tablet sostenido, o 0 si no es visible.

Ver ejemplo

Oculta brevemente el prop del tablet durante una cinemática propia.

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() conservado por compatibilidad hacia atrás.

Ver ejemplo

Alias antiguo que bloquea un minijuego mientras el tablet está abierto.

AddEventHandler('myresource:client:beforeMinigame', function() if exports['agency-pad']:IsPadExpanded() then return end TriggerEvent('myresource:client:startMinigame') end)
HasCarrierContract()

Devuelve true cuando el jugador tiene un data plan de operador activo en la tablet.

Ver ejemplo

Avisa al jugador si no hay un plan de datos activo en el tablet.

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()

Devuelve la tabla { isOpen, poweredOn, syncEnabled } que resume el estado actual de la tablet.

Ver ejemplo

Cachea el estado del tablet solo si está abierto y encendido.

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()

Devuelve true si el jugador tiene el ítem tablet configurado en su inventario.

Ver ejemplo

Bloquea el comando del dispatch si el jugador no lleva un tablet.

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)

Registra un terminal Agency Pay en runtime en una coordenada (markers, blip, checkout payload).

Ver ejemplo

Crea un terminal Agency Pay en tiempo real en la recepción del hospital.

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)

Elimina un terminal Agency Pay registrado previamente por id.

Ver ejemplo

Elimina un punto de pago del tablet cuando el local cierra.

AddEventHandler('myresource:onLocationClosed', function(locationId) exports['agency-pad']:RemoveAgencyPayPoint(locationId) end)
StartAgencyPayCheckout(data)

Abre la tablet (si es necesario) y lanza un checkout Agency Pay con el payload de pago dado.

Ver ejemplo

Abre el tablet e inicia un pago Agency Pay del impuesto a la propiedad.

RegisterCommand('paybill', function() exports['agency-pad']:StartAgencyPayCheckout({ amount = 1500, receiver = 'gov_taxes', label = 'Property tax', memo = 'Quarterly tax' }) end)
StartCall(contactData)

Inicia una llamada saliente desde la tablet al contacto suministrado ({ name, number, ... }).

Ver ejemplo

Inicia una llamada saliente del tablet cuando llega un evento de 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)

Muestra una notificación de acción con botones accept/deny; bloquea hasta la respuesta y devuelve true/false.

Ver ejemplo

Muestra una notificación bloqueante en el tablet para iniciar una entrega.

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 de servidor

SendMail(identifier, mailData)

Envía un mail a la bandeja principal del jugador por identifier (devuelve éxito).

Ver ejemplo

Envía un correo de aviso de factura a un jugador por su identificador.

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 registrado al detectar ESX+ox_inventory; abre la tablet al portador del inventario.

Ver ejemplo

Engancha ox_inventory para abrir el tablet a través del 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 para el id legacy del ítem phone; abre la tablet al portador del inventario.

Ver ejemplo

Redirige el ítem antiguo de teléfono para abrir la UI del tablet.

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 } })

Eventos

agency-pad:client:notify

Muestra una notificación de la tablet (title, text, icon, color, timeout, silent).

Ver ejemplo

Lanza un toast no bloqueante en el tablet sobre una misión desbloqueada.

TriggerEvent('agency-pad:client:notify', 'Job update', 'New mission unlocked', 'briefcase', '#22cc88', 5000, false)
agency-pad:client:usePadItem

Abre la tablet cuando se usa el ítem de inventario.

Ver ejemplo

Reenvía un evento propio de uso de ítem al flujo de apertura del tablet.

AddEventHandler('myresource:client:onItemUsed', function(itemName) if itemName == 'tablet' then TriggerEvent('agency-pad:client:usePadItem') end end)
agency-pad:client:openApp

Disparar en el client para abrir una app específica dentro del tablet.

Ver ejemplo

Salta directo a la app personalizada de gestión de flota.

RegisterCommand('openfleet', function() TriggerEvent('agency-pad:client:openApp', 'fleet') end)
agency-pad:client:newMailNotify

Notifica al client de un correo recién recibido.

Ver ejemplo

Escucha notificaciones de correo nuevo del tablet y las registra localmente.

AddEventHandler('agency-pad:client:newMailNotify', function(mail) print(('Tablet mail from %s: %s'):format(mail.sender, mail.subject)) end)
agency-pad:client:hourlyPaycheck

Notifica al client de un evento de paycheck horario del business.

Ver ejemplo

Reacciona a un paycheck horario de empresa desde el tablet.

AddEventHandler('agency-pad:client:hourlyPaycheck', function(payload) print(('Hourly paycheck: $%s from %s'):format(payload.amount, payload.businessName)) end)
agency-pad:server:requestPadData

Solicita una sincronización fresca de datos de la tablet para el jugador llamante.

Ver ejemplo

Pide al servidor un nuevo sync completo de los datos del tablet.

RegisterCommand('refreshpad', function() TriggerServerEvent('agency-pad:server:requestPadData') end)
agency-pad:server:sendMessage

Envía un mensaje SMS (newMsg, targetNumber).

Ver ejemplo

Envía un SMS desde el tablet con un comando propio y número destino.

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:airdropPay

Realiza una transferencia Agency Airdrop a un jugador cercano.

Ver ejemplo

Activa un Agency Airdrop a jugadores cercanos desde el tablet.

RegisterCommand('airdroppad', function(_, args) local amount = tonumber(args[1]) or 0 TriggerServerEvent('agency-pad:server:airdropPay', amount, 'Tablet airdrop') end)
agency-pad:server:buyDataPlan

Compra un data plan de operador para el jugador.

Ver ejemplo

Compra un plan de datos del tablet tras elegirlo en una UI propia.

AddEventHandler('myresource:client:padPlanSelected', function(plan) TriggerServerEvent('agency-pad:server:buyDataPlan', plan.price, plan.name) end)
agency-pad:dispatch:create

Crea un dispatch de la tablet a partir de una llamada/SMS de emergencia.

Ver ejemplo

Genera una entrada de dispatch del tablet desde una llamada de emergencia.

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:create

Crea un nuevo business/organización para el jugador.

Ver ejemplo

Crea una nueva entrada de empresa desde un comando in-game propio.

RegisterCommand('startbiz', function() TriggerServerEvent('agency-pad:server:biz:create', { name = 'Bennys Repair', type = 'mechanic', location = 'sandy_shores' }) end)
agency-pad:server:biz:adminCreate

El admin crea un business en nombre de otro jugador.

Ver ejemplo

Reenvía un comando admin para crear una empresa en nombre de otro jugador.

RegisterNetEvent('myresource:server:adminCreateBiz', function(targetSrc, payload) TriggerEvent('agency-pad:server:biz:adminCreate', targetSrc, payload) end)
agency-pad:server:biz:startMission

Inicia una misión de business configurada para el jugador.

Ver ejemplo

Inicia una misión de empresa configurada para el jugador que llama.

RegisterCommand('bizmission', function() TriggerServerEvent('agency-pad:server:biz:startMission', { bizId = 12, missionId = 'delivery_route_a' }) end)
agency-pad:server:applyToListing

Envía una solicitud de empleo a un listado de business.

Ver ejemplo

Envía una postulación a un anuncio de empleo del tablet por su id.

RegisterCommand('apply', function(_, args) local listingId = tonumber(args[1]) TriggerServerEvent('agency-pad:server:applyToListing', listingId, { coverNote = 'Available immediately' }) end)
agency-pad:server:createMechanicInvoice

Crea un borrador de factura de mecánico.

Ver ejemplo

Crea un borrador de factura del mecánico para una matrícula y monto.

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:sendMechanicInvoicePay

Envía una factura de mecánico a un cliente para su pago.

Ver ejemplo

Envía una factura de mecánico finalizada al cliente para pago.

AddEventHandler('myresource:client:onInvoiceConfirmed', function(invoice) TriggerServerEvent('agency-pad:server:sendMechanicInvoicePay', invoice.id, invoice.targetSrc) end)
agency-pad:server:mdtCreateInvoice

El MDT crea una multa/factura para un ciudadano.

Ver ejemplo

Crea una multa MDT para un ciudadano desde un net event propio.

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.

Documentación completa

Exports de cliente

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 de servidor

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

Sistema de publicidad moderno con precios por niveles, cola de anuncios y aprobación de admin.

Úsalo como reemplazo in-game de Twitter/Instagram. Perfecto para negocios anunciando nuevos productos, gangs reclamando territorio, o el equipo de admin publicando noticias del servidor.

Documentación completa

Eventos

agency_lifeinvader:showAd

Muestra un anuncio al jugador (helper de broadcast).

Ver ejemplo

Transmite un anuncio de evento comunitario a cada jugador del servidor.

-- 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:openMenu

Abre el menú "crear anuncio".

Ver ejemplo

Abre el menu principal de creacion de anuncios tras comprar la app del telefono.

-- Open the ad creation menu when the player buys a phone app TriggerClientEvent('agency_lifeinvader:openMenu', src)
agency_lifeinvader:openRecentMenu

Abre el feed de "anuncios recientes".

Ver ejemplo

Abre el menu de feed de anuncios recientes tras tocar un contacto en la app.

-- Open the recent ads feed after a contact tap in the phone app TriggerClientEvent('agency_lifeinvader:openRecentMenu', src)
agency_lifeinvader:notify

Muestra una notificación del framework en la pantalla del jugador (message, type).

Ver ejemplo

Muestra una notificacion del framework cuando se aprueba el anuncio del jugador.

-- Notify the player when their queued ad gets reviewed by staff TriggerClientEvent('agency_lifeinvader:notify', src, 'Your ad was approved!', 'success')
agency_lifeinvader:submitAd

Envía un nuevo anuncio desde código (usado por la UI, reutilizable).

Ver ejemplo

Envia un anuncio de venta de vehiculo con cinco repeticiones cada 60 segundos.

-- 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

Mercado negro basado en reputación con hackeo, ofertas flash, tráfico de vehículos y blanqueo de dinero.

Conéctalo a tus scripts de robos, atracos o tráfico de drogas, el jugador vende objetos robados aquí o blanquea su dinero sucio antes de que sea limpio.

Documentación completa

Eventos

blackmarket:client:openMenu

Abre el menú principal del mercado negro.

Ver ejemplo

Abre el menu principal del dealer del mercado negro tras un pago de trabajo.

-- Custom dealer NPC opens the black market menu when its job pays out TriggerClientEvent('blackmarket:client:openMenu', src)
blackmarket:client:closeMenu

Cierra cualquier menu del mercado negro abierto para el jugador.

Ver ejemplo

Cierra cualquier menu del mercado negro cuando la policia esposa al jugador.

-- Force-close menu when player gets cuffed by police TriggerClientEvent('blackmarket:client:closeMenu', suspectSrc)
blackmarket:client:openLaunderingMenu

Abre el submenu de blanqueo de dinero.

Ver ejemplo

Abre el submenu de lavado de dinero al jugador tras un atraco exitoso.

-- Heist crew NPC opens money laundering submenu after a successful job TriggerClientEvent('blackmarket:client:openLaunderingMenu', src)
blackmarket:client:showNotification

Muestra una notificacion estilizada del mercado negro (titulo, mensaje, tipo, duracion).

Ver ejemplo

Muestra una notificacion estilizada del mercado negro sobre un nuevo envio.

-- 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:checkAccess

Verifica el nivel de acceso actual del jugador.

Ver ejemplo

Comprueba si el jugador puede acceder al mercado negro y obtiene la reputacion.

-- Storefront NPC checks if player can access the black market before opening TriggerServerEvent('blackmarket:server:checkAccess')
blackmarket:server:completeBuy

Finaliza una compra tras el exito del minijuego en el cliente.

Ver ejemplo

Finaliza una compra del mercado negro tras el exito del minijuego del cliente.

-- Finalise a buy after the lockpick minigame succeeds TriggerServerEvent('blackmarket:server:completeBuy', 'weapon_pistol', 1, 8500)
blackmarket:server:sellItem

Procesa la venta de un objeto.

Ver ejemplo

Inicia el flujo de venta de un rolex robado con minijuego opcional y cooldown.

-- Trigger the sell flow with optional minigame for a stolen item TriggerServerEvent('blackmarket:server:sellItem', 'rolex', 1)
blackmarket:server:completeSell

Finaliza una venta tras el exito del minijuego en el cliente.

Ver ejemplo

Finaliza la venta tras el exito del minijuego de regateo del cliente.

-- Finalise a sale after the haggle minigame succeeds TriggerServerEvent('blackmarket:server:completeSell', 'rolex', 1, 4250)
blackmarket:server:launderMoney

Maneja una transacción de blanqueo de dinero.

Ver ejemplo

Lava dinero sucio del narcotrafico en efectivo limpio con tarifas y extorsion.

-- Launder dirty cash earned from drug trafficking TriggerServerEvent('blackmarket:server:launderMoney', 'dirty_money', 25000)

06Agency-Minerjob

Trabajo de minería multi-framework con progresión de habilidad de 100 niveles, skill checks de ox_lib y 6 tipos de mineral.

Ideal como trabajo de iniciación para jugadores nuevos. Vincula la progresión de XP a la reputación de la banda, trabajos en whitelist, o úsalo como refugio para jugadores desempleados.

Documentación completa

Eventos

agency_minerJob:openSellMenu

Abre el menú de venta en la refinería de mineral.

Ver ejemplo

Abre el menu de venta del comerciante para vender los minerales extraidos.

-- Open the trader sell menu for the local player TriggerEvent('agency_minerJob:openSellMenu')
agency_minerJob:sellItems

Vende todos los minerales a la vez al precio actual del mercado.

Ver ejemplo

Vende todas las unidades del mineral al precio dinamico actual del comerciante.

-- Sell every copper ore in the player's inventory at current price TriggerServerEvent('agency_minerJob:sellItems', 'copper')
agency_minerJob:requestPlayerItems

Devuelve los objetos mineros vendibles del jugador mediante receivePlayerItems.

Ver ejemplo

Solicita al servidor la lista de minerales que el jugador puede vender.

-- Ask server which ores are sellable; reply comes via receivePlayerItems TriggerServerEvent('agency_minerJob:requestPlayerItems')
agency_minerJob:requestPlayerSkill

Devuelve un resumen rápido de la habilidad de minería mediante receiveSkillInfo.

Ver ejemplo

Solicita un resumen rapido de habilidad de mineria via receiveSkillInfo.

-- Refresh the HUD widget with the current mining level/xp TriggerServerEvent('agency_minerJob:requestPlayerSkill')
agency_minerJob:requestDetailedStats

Devuelve las estadísticas detalladas de minería mediante receiveDetailedStats.

Ver ejemplo

Solicita las estadisticas detalladas de mineria y abre el menu via receiveDetailedStats.

-- Open the detailed stats panel after admin command TriggerServerEvent('agency_minerJob:requestDetailedStats')

07Agency-Repairkits

Kit de reparación de vehículos con mecánica de daño progresivo y UI moderna.

Perfecto en trabajos de mecánico, grúa, o como objeto consumible en un inventario general. El sistema de daño progresivo combina perfectamente con un script de chop-shop o seguros.

Documentación completa

Eventos

agencyrepairkit:client:startRepair

Inicia la animación de reparación y la barra de progreso en el vehículo objetivo.

Ver ejemplo

Disparador universal para iniciar el flujo del kit de reparacion en el vehiculo.

-- Universal trigger when player uses a custom 'repair' button TriggerEvent('agencyrepairkit:client:startRepair')
esx-agencyrepairkit:client:useRepairKit

Alias específico de ESX que inicia el flujo de progreso del kit de reparación.

Ver ejemplo

Alias especifico de ESX que inicia el flujo del kit de reparacion del vehiculo.

-- Use this alias from your ESX item handler TriggerEvent('esx-agencyrepairkit:client:useRepairKit')
qb-agencyrepairkit:client:useRepairKit

Alias específico de QBCore que inicia el flujo de progreso del kit de reparación.

Ver ejemplo

Alias especifico de QBCore que inicia el flujo del kit de reparacion del vehiculo.

-- QBCore item callback can use this alias directly TriggerEvent('qb-agencyrepairkit:client:useRepairKit')

08Agency-Vehiclekeys

Llaves de vehículo con bloqueo/desbloqueo, arranque remoto, intermitentes y compartir llaves.

Funciona como el check de "posee este vehículo" para cualquier otro script, grúas, depósitos de incautados, valet parking, minigames de carjacking. El export de validación es seguro de llamar desde cualquier otro recurso.

Documentación completa

Eventos

simple_carkeys:client:toggleLock

Alterna el estado de bloqueo del vehículo (respetando la propiedad).

Ver ejemplo

Conmutador de cerradura en red con animacion de llave, luces y sonido.

-- Sync lock toggle to all clients near a tow truck local vehicle = GetVehiclePedIsIn(PlayerPedId(), false) TriggerEvent('simple_carkeys:client:toggleLock', vehicle)
simple_carkeys:client:toggleEngine

Arranca o detiene de forma remota el motor del vehículo objetivo.

Ver ejemplo

Conmutador de motor encendido/apagado en red para el vehiculo indicado.

-- 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:showError

Muestra en el client una notificacion de error generica 'no es tu coche'.

Ver ejemplo

Muestra una notificacion de error generica 'no es tu auto' al cliente.

-- Show the standard 'not your car' notification on a failed lockpick TriggerEvent('simple_carkeys:client:showError')
simple_carkeys:client:showNotificationText

Muestra en el client una notificacion de exito con texto arbitrario.

Ver ejemplo

Muestra una notificacion de exito con texto arbitrario al cliente.

-- Tell the player the engine started OK after a custom hotwire script TriggerEvent('simple_carkeys:client:showNotificationText', 'Engine started')
simple_carkeys:client:showErrorText

Muestra en el client una notificacion de error con texto arbitrario.

Ver ejemplo

Muestra una notificacion de error con texto arbitrario al cliente.

-- Block engine start when fuel is empty TriggerEvent('simple_carkeys:client:showErrorText', 'Out of fuel')
simple_carkeys:server:forceToggleLock

Ruta job/admin: difunde un toggle de cerradura para un vehiculo sin verificar propiedad.

Ver ejemplo

Ruta empleo/admin: emite el toggle de bloqueo sin verificacion de propiedad.

-- Police impound forces an unlock without ownership checks TriggerServerEvent('simple_carkeys:server:forceToggleLock', VehToNet(vehicle))
simple_carkeys:server:forceToggleEngine

Ruta job/admin: difunde un toggle de motor para un vehiculo sin verificar propiedad.

Ver ejemplo

Ruta empleo/admin: emite el toggle de motor sin verificacion de propiedad.

-- Ambulance script force-starts a parked car for an evac mission TriggerServerEvent('simple_carkeys:server:forceToggleEngine', VehToNet(vehicle))
simple_carkeys:server:checkOwnershipAndLock

Valida propiedad/llaves compartidas para la matricula y difunde un toggle de cerradura si tiene exito.

Ver ejemplo

Valida propiedad/llaves compartidas de la placa y emite el toggle de bloqueo.

-- Player presses L; verify ownership before locking the vehicle TriggerServerEvent('simple_carkeys:server:checkOwnershipAndLock', 'AB12XYZ', VehToNet(vehicle))
simple_carkeys:server:checkOwnershipAndStart

Valida propiedad/llaves compartidas para la matricula y difunde un toggle de motor si tiene exito.

Ver ejemplo

Valida propiedad/llaves compartidas de la placa y emite el toggle de motor.

-- Validate then start engine on the vehicle the player is in TriggerServerEvent('simple_carkeys:server:checkOwnershipAndStart', 'AB12XYZ', VehToNet(vehicle))
simple_carkeys:server:universalEngineStart

Permite a cualquier jugador arrancar cualquier motor cuando Config.AllowUniversalEngineStart esta activo.

Ver ejemplo

Permite a cualquier jugador encender un motor si AllowUniversalEngineStart esta activo.

-- Hotwire mini-game success: any player starts any engine when allowed in config TriggerServerEvent('simple_carkeys:server:universalEngineStart', VehToNet(vehicle))

09Agency-Vending

Máquinas expendedoras con propiedad del jugador, pago en efectivo o con tarjeta AgencyPay.

Combina con el export AgencyPay de Agency-Phone para compras con tarjeta. Úsalo en trabajos donde los jugadores son dueños de ubicaciones de vending (gasolineras, oficinas, apartamentos) para generar ingresos pasivos.

Documentación completa

Eventos

agency-vending:notify

Despachador generico de notificaciones desde el server para la resource vending.

Ver ejemplo

Envia una notificacion generica con tema vending al jugador tras una compra.

-- Plug a vending receipt into a custom logger via notify event TriggerClientEvent('agency-vending:notify', src, 'success', 'Receipt #4821 saved to wallet')
agency-vending:startAgencyPay

Inicia un checkout de AgencyPay mediante la integracion agency-phone con metadatos del comercio.

Ver ejemplo

Inicia un pago Agency Pay por telefono con los datos del comercio del quiosco.

-- 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:buyMachineResult

Resultado de la compra de una maquina, enviado a la NUI para feedback.

Ver ejemplo

Reenvia el resultado de la compra de la maquina a una NUI de tienda personalizada.

-- Forward buy-machine outcome to a custom shop UI TriggerClientEvent('agency-vending:buyMachineResult', src, { success = true, machineId = 102 })
agency-vending:machineCreated

Broadcast de que se creo una nueva maquina del jugador; actualiza la cache local y notifica al propietario.

Ver ejemplo

Transmite una maquina expendedora recien creada por jugador a todos los clientes.

-- Cache new owner-machine instantly when business script registers it TriggerClientEvent('agency-vending:machineCreated', -1, { id = 142, owner = identifier, type = 'sprunk' })
agency-vending:openManagementVerified

Apertura verificada en el server del menu de gestion del propietario con items, ingresos y etiqueta.

Ver ejemplo

Abre la UI de gestion verificada con items, ingresos y etiqueta tras la autorizacion.

-- 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:openOwnedList

Abre la NUI de resumen del propietario que lista todas las maquinas del jugador con nombres de calles.

Ver ejemplo

Abre la NUI de resumen del propietario listando todas las maquinas del jugador.

-- Hotkey opens the owner overview NUI listing all owned machines TriggerClientEvent('agency-vending:openOwnedList', src)
agency-vending:spawnMachineCreated

Broadcast del spawner de admin de que se creo una nueva entidad de maquina.

Ver ejemplo

Notifica a todos los clientes que un admin genero una maquina expendedora.

-- Custom mapping tool tracks newly admin-spawned machine TriggerClientEvent('agency-vending:spawnMachineCreated', -1, { entity = netId, model = 'prop_vend_soda_01', id = 7 })
agency-vending:spawnMachineDeleted

Broadcast del spawner de admin de que se elimino una entidad de maquina spawneada.

Ver ejemplo

Informa a todos los clientes que un admin elimino una maquina ya generada.

-- Mapping tool removes a deleted spawned machine from cache TriggerClientEvent('agency-vending:spawnMachineDeleted', -1, 7)
agency-vending:openSpawnerUI

Abre la NUI del spawner de admin tras pasar la verificacion de permisos en el server.

Ver ejemplo

Abre la NUI del spawner admin para colocar maquinas en el mundo.

-- Custom command opens the admin spawner UI after permission passes TriggerClientEvent('agency-vending:openSpawnerUI', src)
agency-vending:buyMachine

El jugador compra una maquina expendedora de un tipo dado en las coords/heading indicados.

Ver ejemplo

El jugador compra una maquina Sprunk en sus coordenadas actuales a un NPC.

-- Custom NPC sells vending machines via dialog local coords = GetEntityCoords(PlayerPedId()) local heading = GetEntityHeading(PlayerPedId()) TriggerServerEvent('agency-vending:buyMachine', 'sprunk', coords, heading)
agency-vending:requestOwnedList

El llamador solicita la lista de sus maquinas propias para la UI de resumen de propietario.

Ver ejemplo

Solicita al servidor la lista de maquinas expendedoras propiedad del jugador.

-- Refresh owner overview after a balance/restock action elsewhere TriggerServerEvent('agency-vending:requestOwnedList')
agency-vending:requestMachines

El llamador solicita al server una sincronizacion completa de todas las maquinas de jugadores.

Ver ejemplo

Solicita una sincronizacion completa y reciente de todas las maquinas del jugador.

-- Scan for nearby machines after teleport finished TriggerServerEvent('agency-vending:requestMachines')
agency-vending:requestManagement

Apertura verificada en el server de la UI de gestion para una maquina propia.

Ver ejemplo

Solicita la UI de gestion verificada por el servidor para la maquina seleccionada.

-- Owner UI requests verified management menu for a clicked machine TriggerServerEvent('agency-vending:requestManagement', machineId)
agency-vending:requestSpawnedMachines

El llamador solicita la lista de maquinas generadas por admin para la UI del spawner.

Ver ejemplo

Solicita la lista de todas las maquinas generadas por admin para la UI del spawner.

-- Admin spawner UI fetches all currently spawned machines TriggerServerEvent('agency-vending:requestSpawnedMachines')
agency-vending:adminSpawnMachine

Admin coloca un nuevo prop de maquina expendedora en el server tras verificar permisos.

Ver ejemplo

El admin genera una nueva maquina de snacks tras la verificacion de permisos.

-- 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:adminDeleteSpawned

Admin elimina en el server un prop de maquina expendedora previamente generado.

Ver ejemplo

El admin elimina del lado servidor un prop de maquina previamente generado.

-- Admin removes a misplaced machine via map editor button TriggerServerEvent('agency-vending:adminDeleteSpawned', spawnedId)

10Agency-Admin

Panel de administración completo con UI de cristal, chat AgencyAI y más de 60 herramientas.

Los eventos son perfectos como "primitivas" para anti-cheat, bots de moderación o herramientas automáticas, llámalos desde tu script de servidor para freeze/kick/notify sin escribir tu propia UI.

Documentación completa

Eventos

agency-admin:client:refreshStaffRanks

Hace que el client recargue los datos de rangos de staff.

Ver ejemplo

Actualiza la cache de rangos de staff para cada admin en linea tras un ascenso.

-- After auto-promotion, refresh staff ranks for all online admins for _, src in ipairs(GetPlayers()) do TriggerClientEvent('agency-admin:client:refreshStaffRanks', tonumber(src)) end
agency-admin:client:freezeTime

Congela o descongela la hora del mundo en el client a la hora/minuto dados.

Ver ejemplo

El anti-cheat congela el reloj del mundo al mediodia mientras revisa a un jugador.

-- 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:dashboardValue

Envia un unico valor de tarjeta del panel (p. ej. contador en vivo) a la UI del panel.

Ver ejemplo

Envia el conteo de jugadores en linea en vivo a la tarjeta del panel 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:teleportToCoords

Teletransporta al llamador a las coordenadas del mundo indicadas.

Ver ejemplo

Teletransporta a un jugador a las coordenadas guardadas tras un evento de reaparicion.

-- 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:announce

Muestra un banner de anuncio en todo el servidor.

Ver ejemplo

Transmite un banner de anuncio para todo el servidor desde un remitente nombrado.

-- Event bot announces a community contest start TriggerClientEvent('agency-admin:client:announce', -1, 'Event Crew', 'Heist contest starts in 5 minutes!')
agency-admin:client:notify

Envía una notificación a un administrador específico.

Ver ejemplo

Envia una notificacion con estilo al jugador cuando su solicitud es aprobada.

-- Whitelist bot informs a player they passed the application TriggerClientEvent('agency-admin:client:notify', src, 'Whitelist', 'Application approved!', 'success', 8000)
agency-admin:client:freeze

Congela al jugador objetivo en su sitio.

Ver ejemplo

Congela a un jugador sospechoso para que el staff pueda investigar sin que se mueva.

-- Anti-cheat freezes a suspect player while staff investigates TriggerClientEvent('agency-admin:client:freeze', suspectSrc, true)
agency-admin:client:heal

Restaura HP/armadura del objetivo.

Ver ejemplo

Cura por completo al paciente despues de finalizar su tratamiento medico RP.

-- Medic job script fully heals the player after RP treatment ends TriggerClientEvent('agency-admin:client:heal', patientSrc)
agency-admin:client:revive

Revive al jugador objetivo.

Ver ejemplo

Revive a un jugador derribado tras completar con exito el minijuego de SEM.

-- EMS revive minigame succeeds, server marks player alive again TriggerClientEvent('agency-admin:client:revive', downedSrc)
agency-admin:client:teleport

Teletransporta al jugador local al vector de coordenadas indicado.

Ver ejemplo

Teletransporta al jugador local a las coordenadas proporcionadas.

-- 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:openMenu

Abre la UI del panel de administración (requiere permiso ACE).

Ver ejemplo

Abre la UI principal del panel de admin para el staff cuando entra de servicio.

-- Auto-open admin panel for staff right after they switch on duty TriggerClientEvent('agency-admin:client:openMenu', src)
agency-admin:client:openToolsMenu

Disparador desde el server para abrir el submenu de herramientas de admin.

Ver ejemplo

Abre el submenu de herramientas admin cuando se pulsa el atajo del staff.

-- Quick-action keybind opens the admin tools sub-menu TriggerClientEvent('agency-admin:client:openToolsMenu', src)
agency-admin:client:closeMenu

Disparador desde el server para cerrar la UI del panel de admin.

Ver ejemplo

Fuerza el cierre de la UI del panel admin cuando se investiga al propio admin.

-- Force-close the panel when admin gets reported themselves TriggerClientEvent('agency-admin:client:closeMenu', adminSrc)
agency-admin:client:openClothingMenu

Disparador desde el server para abrir el menu de ropa en el juego para el jugador.

Ver ejemplo

Abre el menu de ropa despues de que el jugador compra un atuendo a un sastre.

-- Tailor NPC opens clothing menu after a uniform purchase TriggerClientEvent('agency-admin:client:openClothingMenu', src)
agency-admin:server:requestPlayers

Solicita la lista actual de jugadores conectados para el panel de admin.

Ver ejemplo

Solicita al servidor la lista mas reciente de jugadores en linea para el panel.

-- Custom dashboard widget refreshes its players list TriggerServerEvent('agency-admin:server:requestPlayers')
agency-admin:server:requestPanelPermissions

Solicita la tabla de permisos del panel para el editor de rangos.

Ver ejemplo

Pide al servidor la tabla de permisos del panel usada por el editor de rangos.

-- Permission editor needs the latest panel permission map TriggerServerEvent('agency-admin:server:requestPanelPermissions')
agency-admin:server:requestStaffRanks

Solicita el conjunto de datos de rangos de staff para el panel.

Ver ejemplo

Solicita el conjunto completo de rangos de staff para un widget CRM personalizado.

-- Sync staff ranks dataset into a custom CRM widget TriggerServerEvent('agency-admin:server:requestStaffRanks')
agency-admin:server:createRank

Crea un nuevo rango de staff con metadatos y permisos.

Ver ejemplo

Crea un nuevo rango de staff desde una sincronizacion de portal de RR.HH. externo.

-- 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:requestMyPermissions

El llamador solicita su propio conjunto de permisos del panel ya resuelto.

Ver ejemplo

Solicita el conjunto de permisos del panel del propio llamador al abrir la UI.

-- Fetch caller's resolved permission set before showing dev tools TriggerServerEvent('agency-admin:server:requestMyPermissions')
agency-admin:server:requestSync

El llamador pide al server que envie el payload de sync estandar (servicio/permisos/etc.).

Ver ejemplo

Obliga al servidor a enviar el paquete de sincro duty/perms estandar al llamador.

-- Force a fresh sync after the player reconnects TriggerServerEvent('agency-admin:server:requestSync')
agency-admin:server:requestDutyRank

El llamador solicita su informacion actual de rango admin en servicio.

Ver ejemplo

Solicita el rango de duty admin actual del llamador para un overlay HUD personalizado.

-- Display admin's duty rank on a custom HUD overlay TriggerServerEvent('agency-admin:server:requestDutyRank')
agency-admin:server:requestSpawnedObjects

El llamador solicita la lista de objetos del mundo generados por admin.

Ver ejemplo

Solicita la lista de objetos del mundo generados por admin para el overlay del minimapa.

-- Map editor needs to draw all admin-spawned objects on a minimap TriggerServerEvent('agency-admin:server:requestSpawnedObjects')

11Agency-Reports V2

Sistema de reportes moderno con chat en vivo por reporte y respuestas asistidas por IA.

Úsalo como columna vertebral de "ticket de soporte" para todo tu servidor. Tus scripts pueden abrir reportes automáticamente cuando algo va mal (vehículos atascados, items duplicados, guardados SQL fallidos) para revisión del admin.

Documentación completa

Eventos

agency-reports:client:notify

Dispara una notificación de "nuevo reporte" a un admin específico.

Ver ejemplo

Notificacion del servidor que respeta la preferencia de notificacion UI del jugador.

-- Server tells client a new admin reply landed TriggerClientEvent('agency-reports:client:notify', source, 'New reply on your report', 'info')
agency-reports:client:openPlayerUI

Abre la UI de reportes del lado del jugador.

Ver ejemplo

Abre la UI de reportes con categorias, reportes abiertos y ajustes 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:openAdminUI

Abre la lista de reportes del lado del admin.

Ver ejemplo

Abre el panel admin de reportes con el conjunto de datos completo.

-- Force-open the admin reports dashboard from a staff command TriggerEvent('agency-reports:client:openAdminUI', { reports = {}, total = 0 })
agency-reports:client:teleport

Teletransporta al admin que llama a las coordenadas indicadas (para acciones goto).

Ver ejemplo

Teletransporta al admin a las coordenadas proporcionadas para acciones 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:healSelf

Cura por completo el ped del admin que llama.

Ver ejemplo

Cura completamente el ped del admin tras atender un reporte.

-- Heal admin after a hostile scene to keep them in service TriggerEvent('agency-reports:client:healSelf')
agency-reports:server:submitReport

Envía un nuevo reporte desde fuera de la UI.

Ver ejemplo

El jugador envia un nuevo reporte con titulo, categoria y descripcion.

-- 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:requestPlayerData

El llamador solicita su propio payload de reporte; opcionalmente abre la UI de jugador en la respuesta.

Ver ejemplo

El llamador pide su carga de reportes y opcionalmente abre la UI del jugador.

-- Pull fresh data and (optionally) auto-open the player UI TriggerServerEvent('agency-reports:server:requestPlayerData', true)
agency-reports:server:requestAdminData

Admin solicita el conjunto completo de reportes y abre el dashboard de admin si tiene permiso.

Ver ejemplo

El admin pide el dataset completo y abre el panel de admin si esta autorizado.

-- Admin staff opens the dashboard after going on duty TriggerServerEvent('agency-reports:server:requestAdminData')
agency-reports:server:sendChatMessage

Envía un mensaje de chat a un reporte abierto.

Ver ejemplo

Publica un mensaje de chat en un hilo de reporte especifico para admin o jugador.

-- Player posts a follow-up chat message into report #42 TriggerServerEvent('agency-reports:server:sendChatMessage', 42, 'Still stuck, any ETA?')

12Agency-Hud

HUD animado con tablero de vehículo, barras de estado, velocímetro e integración de cinturón.

Si tienes una economía o sistema de necesidades personalizado, controla el HUD desde tu propio script con estos setters en lugar de hackearlo. El HUD se encarga de la animación y persistencia.

Documentación completa

Exports de cliente

GetVehicleSettings()

Devuelve la tabla actual de ajustes del vehículo.

Ver ejemplo

Lee la tabla de ajustes HUD del vehiculo local para inspeccion o sincronizacion.

local settings = exports['Agency-Hud']:GetVehicleSettings() print('Speed unit:', settings.speedUnit) print('HUD scale:', settings.scale)
SetSpeedUnit(unit: string)

Cambia el velocímetro entre 'mph' y 'kmh'.

Ver ejemplo

Cambia el velocimetro a millas por hora y lo guarda localmente.

RegisterCommand('usemph', function() exports['Agency-Hud']:SetSpeedUnit('mph') end)
SetHunger(value: number)

Establece el valor de la barra de hambre (0-100).

Ver ejemplo

Envia el nivel de hambre actual del jugador al HUD.

AddEventHandler('player:hungerChanged', function(value) exports['Agency-Hud']:SetHunger(value) end)
SetThirst(value: number)

Establece el valor de la barra de sed (0-100).

Ver ejemplo

Envia el nivel de sed actual del jugador al HUD.

AddEventHandler('player:thirstChanged', function(value) exports['Agency-Hud']:SetThirst(value) end)
SetStress(value: number)

Establece el valor de la barra de estrés (0-100).

Ver ejemplo

Actualiza el medidor de estres del HUD desde un sistema de estres personalizado.

AddEventHandler('jobstress:onTick', function(stress) exports['Agency-Hud']:SetStress(stress) end)
SetMoney(value: number)

Establece el saldo de efectivo mostrado.

Ver ejemplo

Actualiza la cantidad de dinero en efectivo mostrada en el HUD.

AddEventHandler('wallet:cashChanged', function(cash) exports['Agency-Hud']:SetMoney(cash) end)
SetBank(value: number)

Establece el saldo bancario mostrado (para scripts de economía personalizados).

Ver ejemplo

Actualiza el saldo bancario mostrado en el HUD.

AddEventHandler('bank:balanceChanged', function(balance) exports['Agency-Hud']:SetBank(balance) end)
SetJob(label: string)

Establece la etiqueta de trabajo mostrada.

Ver ejemplo

Establece la etiqueta de trabajo mostrada cuando el jugador cambia de profesion.

AddEventHandler('job:onChange', function(job) exports['Agency-Hud']:SetJob(job.label) end)
SetRank(rank: string)

Establece el rango/grado de trabajo mostrado.

Ver ejemplo

Actualiza el rango del jugador mostrado junto a la etiqueta de trabajo.

AddEventHandler('job:onGradeChange', function(grade) exports['Agency-Hud']:SetRank(grade.label) end)
GetDetectedFramework()

Devuelve la cadena del framework ("qb", "esx", "standalone") que el HUD detectó automáticamente.

Ver ejemplo

Lee la clave del framework detectado para ramificar logica HUD personalizada.

local fw = exports['Agency-Hud']:GetDetectedFramework() if fw == 'qb' then print('QB-Core detected') end

Eventos

Agency-HUD:client:applyVehicleSettingsPatch

Aplica un parche parcial de configuración de vehículo al HUD de vehículo local.

Ver ejemplo

Aplica un parche parcial de ajustes HUD del vehiculo en el cliente local.

TriggerEvent('Agency-HUD:client:applyVehicleSettingsPatch', { style = 'modern', speedUnit = 'kmh' })
Agency-HUD:client:openAdminMenu

Abre el menú admin del HUD (requiere permiso).

Ver ejemplo

Abre la NUI del menu admin HUD en el cliente receptor.

TriggerEvent('Agency-HUD:client:openAdminMenu')
Agency-HUD:server:checkAdminPermission

Verifica los permisos de admin del solicitante y abre el menú admin si tiene éxito.

Ver ejemplo

Pide al servidor que verifique permisos admin y abra el menu admin HUD.

RegisterCommand('checkhudadmin', function() TriggerServerEvent('Agency-HUD:server:checkAdminPermission') end)
Agency-HUD:server:saveGlobalSettings

Persistencia de ajustes HUD globales solo para admin; transmite sincronización.

Ver ejemplo

Guarda una nueva configuracion HUD global (solo admin) y la difunde.

TriggerServerEvent('Agency-HUD:server:saveGlobalSettings', { style = 'modern', accent = '#ff6b00' })
Agency-HUD:server:requestGlobalSettings

Devuelve los ajustes globales actuales al cliente solicitante.

Ver ejemplo

Solicita los ajustes globales HUD actuales al iniciar el recurso.

AddEventHandler('onClientResourceStart', function(res) if res == GetCurrentResourceName() then TriggerServerEvent('Agency-HUD:server:requestGlobalSettings') end end)
Agency-HUD:server:requestTime

Devuelve la hora actual del servidor al solicitante para el reloj del HUD.

Ver ejemplo

Sondea el reloj del servidor cada minuto para actualizar la hora del HUD.

CreateThread(function() while true do TriggerServerEvent('Agency-HUD:server:requestTime') Wait(60000) end end)

13Agency-Progressbar

Barra de progreso animada con UI de cristal, 4 temas, acciones cancelables y exports client/server.

Úsalo en cualquier lugar donde normalmente mostrarías "haciendo X durante Y segundos". Reemplaza múltiples recursos legacy de progress bar con una UI consistente en todo tu servidor.

Documentación completa

Exports de cliente

StartProgress(data: table)

Inicia una barra de progreso con una tabla de opciones completa. Retorna inmediatamente; los callbacks se disparan al completarse/cancelarse.

Ver ejemplo

Inicia una barra de ganzua de 8 segundos con animacion y 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)

Detiene la barra de progreso actualmente en ejecución. Pasa true para marcarla como cancelada.

Ver ejemplo

Cancela la barra de progreso activa cuando el jugador presiona X.

if IsControlJustPressed(0, 73) then exports['Agency-Progressbar']:StopProgress(false) end
IsProgressActive()

Devuelve true si actualmente se muestra una barra de progreso.

Ver ejemplo

Impide iniciar una nueva accion de crafteo mientras hay una barra activa.

if exports['Agency-Progressbar']:IsProgressActive() then return end startCrafting()
GetProgressPercentage()

Devuelve el porcentaje de llenado actual (0-100).

Ver ejemplo

Activa un tick de minijuego cuando la barra supera el 75 por ciento.

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)

Cambia el tema en tiempo de ejecución: 'modern', 'neon', 'minimal' o 'classic'.

Ver ejemplo

Cambia la apariencia de la barra activa al tema moderno.

RegisterCommand('darkbar', function() exports['Agency-Progressbar']:SetProgressTheme('modern') end)
SetProgressPosition(position: string)

Cambia la posición: 'top', 'bottom', 'center'.

Ver ejemplo

Mueve la barra de progreso activa al centro inferior de la pantalla.

RegisterCommand('barbottom', function() exports['Agency-Progressbar']:SetProgressPosition('bottom-center') end)
TryReload(usedItem?: string)

Reproduce la secuencia de recarga estilo ESX.

Ver ejemplo

Inicia una recarga validada por el servidor con una caja de 9mm.

RegisterKeyMapping('+reload', 'Reload weapon', 'keyboard', 'R') RegisterCommand('+reload', function() exports['Agency-Progressbar']:TryReload('ammo-9') end)
UseConsumable(itemName: string, isDrink: boolean)

Reproduce la animación de comer/beber con barra de progreso.

Ver ejemplo

Reproduce la animacion de beber y aumenta la sed al usar agua.

RegisterNetEvent('inventory:useItem', function(item) if item == 'water_bottle' then exports['Agency-Progressbar']:UseConsumable('water_bottle', true) end end)

Exports de servidor

StartProgressForPlayer(playerId: number, data: table)

Dispara una barra de progreso en un cliente específico desde el servidor.

Ver ejemplo

Inicia una barra de levantar caja de 5 segundos en el jugador solicitante.

RegisterCommand('lift', function(source) exports['Agency-Progressbar']:StartProgressForPlayer(source, { label = 'Lifting crate...', duration = 5000 }) end, false)
StopProgressForPlayer(playerId: number, completed?: boolean)

Cancela remotamente la barra de progreso de un jugador específico.

Ver ejemplo

Cancela la barra de progreso activa de un jugador objetivo desde el servidor.

RegisterNetEvent('admin:cancelProgress', function(targetId) exports['Agency-Progressbar']:StopProgressForPlayer(targetId, false) end)
StartProgressForAllPlayers(data: table)

Difunde una barra de progreso a cada cliente conectado.

Ver ejemplo

Difunde una barra de aviso de tormenta de 30 segundos a todos los jugadores.

RegisterNetEvent('event:weatherWarning', function() exports['Agency-Progressbar']:StartProgressForAllPlayers({ label = 'Storm incoming - take shelter', duration = 30000 }) end)
StopProgressForAllPlayers(completed?: boolean)

Cancela la barra de progreso de cada jugador (p. ej. fin de ronda).

Ver ejemplo

Detiene la barra global de aviso de tormenta en todos los jugadores.

RegisterNetEvent('event:weatherCleared', function() exports['Agency-Progressbar']:StopProgressForAllPlayers(true) end)

Eventos

Agency:Progressbar:LoadSettings

Carga ajustes de UI por jugador (posición, color, escala, estilo) desde la BD al client.

Ver ejemplo

Carga los ajustes UI guardados de la barra de progreso al aparecer.

AddEventHandler('playerSpawned', function() TriggerEvent('Agency:Progressbar:LoadSettings') end)
agency-progressbar:client:start

Inicia la barra de progreso en el client receptor con los datos suministrados.

Ver ejemplo

Inicia una barra de reparacion del motor de 12 segundos, cancelable.

TriggerEvent('agency-progressbar:client:start', { label = 'Repairing engine...', duration = 12000, canCancel = true })
agency-progressbar:client:stop

Detiene la barra de progreso activa con un indicador de finalización.

Ver ejemplo

Aborta la barra de progreso activa cuando esposan al jugador.

RegisterNetEvent('police:cuffed', function() TriggerEvent('agency-progressbar:client:stop', false) end)
agency:consumables:useFood

Puente de inventario para consumir un objeto de comida (animación + aplicación segura del server).

Ver ejemplo

Activa el puente de comida del inventario para consumir un sandwich.

TriggerEvent('agency:consumables:useFood', 'sandwich')
agency:consumables:useDrink

Puente de inventario para consumir una bebida (animación + aplicación segura del server).

Ver ejemplo

Activa el puente de bebida del inventario para consumir una taza de cafe.

TriggerEvent('agency:consumables:useDrink', 'coffee_cup')
Agency:Progressbar:SaveSettings

Valida y persiste los ajustes UI de la barra de progreso del jugador en la BD.

Ver ejemplo

Persiste las preferencias UI de la barra del jugador en la base de datos.

TriggerServerEvent('Agency:Progressbar:SaveSettings', { position = 'top-right', color = '#00aaff', scale = 1.2 })
agency-progressbar:server:start

Disparador del lado server para iniciar una barra de progreso en un objetivo (o uno mismo).

Ver ejemplo

Disparador del servidor para iniciar una barra de carga de caja de 6 s en un objetivo.

RegisterCommand('movecrate', function(source) TriggerEvent('agency-progressbar:server:start', source, { label = 'Loading crate onto truck', duration = 6000 }) end, false)
agency-progressbar:server:stop

Disparador del lado server para detener una barra de progreso en un objetivo (o uno mismo).

Ver ejemplo

Disparador del servidor para detener la barra de un objetivo con estado cancelado.

RegisterNetEvent('admin:abortJob', function(targetId) TriggerEvent('agency-progressbar:server:stop', targetId, false) end)
agency:reload:request

Valida munición/arma/objeto antes de conceder una recarga al jugador solicitante.

Ver ejemplo

Pide al servidor validar la municion y autorizar la recarga de la pistola.

TriggerServerEvent('agency:reload:request', 'WEAPON_PISTOL', 'ammo-9')
agency:consumables:apply

Valida el inventario, elimina un objeto y aplica las ganancias de hambre/sed.

Ver ejemplo

Pide al servidor quitar el alimento y aplicar las ganancias de hambre.

RegisterNetEvent('food:onEatStart', function(itemName) TriggerServerEvent('agency:consumables:apply', itemName) end)

14Agency-Notify

Sistema de notificaciones con estilos V1/V2, prioridad inteligente AgencyAI, proteccion antispam y persistencia en base de datos.

Reemplaza cualquier otro recurso de notificaciones en tu servidor (qb-notify, esx_notify, mythic_notify, okok-notify, etc.) con un aspecto coherente. El sistema de prioridad AgencyAI limita automaticamente las notificaciones spam.

Documentación completa

Exports de cliente

Notify(data: { title, text, type, duration, ... })

Muestra una notificacion. Acepta { type, title, text, duration, icon, color }.

Ver ejemplo

Envia una notificacion de exito de 6 segundos anunciando un objetivo del atraco.

exports['Agency-Notify']:Notify({ title = 'Bank Heist', text = 'Vault drilled, grab the loot!', type = 'success', duration = 6000 })

Eventos

Agency:Notify:Send

Igual que el export, permite usar el patron clasico basado en Trigger.

Ver ejemplo

Evento cliente legacy v1 que muestra el mismo payload que el export.

TriggerEvent('Agency:Notify:Send', { title = 'Old Notify', text = 'Legacy v1 entry point still works', type = 'info' })
Agency:Notify:LoadSettings

Aplica los ajustes UI guardados por jugador (posición, color, escala, estilo) desde el server.

Ver ejemplo

Carga los ajustes UI de notify guardados por jugador al aparecer.

AddEventHandler('playerSpawned', function() TriggerEvent('Agency:Notify:LoadSettings') end)
Agency:Notify:SaveSettings

Valida y persiste los ajustes de notify del jugador (posición, color de acento, escala, estilo).

Ver ejemplo

Persiste la posicion, el acento y la escala de notify del jugador en la BD.

TriggerServerEvent('Agency:Notify:SaveSettings', { position = 'top-right', accent = '#ff8800', scale = 1.1, style = 'modern' })

15Agency-Seatbelt

Cinturon de seguridad con fisica de eyeccion, sonidos 3D, soporte multi-ocupante e integracion HUD.

Conecta el estado a tu propio HUD, o forzar la activacion al inicio de una persecucion policial / fuga de atraco. Los exports force-enable/disable son ideales para momentos RP.

Documentación completa

Exports de cliente

enableSeatbelt()

Fuerza la activacion del cinturon (usalo p. ej. en arresto policial).

Ver ejemplo

Abrocha el cinturon del jugador local con retroalimentacion HUD y de sonido.

RegisterNetEvent('vehicle:autoBuckle', function() if IsPedInAnyVehicle(PlayerPedId(), false) then exports['Agency-Seatbelt']:enableSeatbelt() end end)
disableSeatbelt()

Fuerza el desabrochado del cinturon (cinematicas, escenarios RP).

Ver ejemplo

Desabrocha el cinturon del jugador local al salir del vehiculo.

RegisterNetEvent('vehicle:onExit', function() exports['Agency-Seatbelt']:disableSeatbelt() end)
toggleSeatbelt()

Alterna el cinturon (lo que hace la tecla predeterminada).

Ver ejemplo

Alterna el estado del cinturon del jugador local al pulsar una tecla.

RegisterKeyMapping('+seatbelt', 'Toggle seatbelt', 'keyboard', 'B') RegisterCommand('+seatbelt', function() exports['Agency-Seatbelt']:toggleSeatbelt() end)
isSeatbeltOn()

Devuelve true si el jugador tiene actualmente el cinturon puesto.

Ver ejemplo

Deshabilita el control de salida mientras el cinturon esta abrochado.

if exports['Agency-Seatbelt']:isSeatbeltOn() then DisableControlAction(0, 75, true) end

16Agency-Elevator

Sistema de ascensor realista con UI Liquid Glass y un configurador.

Perfecto dentro de scripts de apartamentos/housing, comisaria, hospital o cualquier interior de varios pisos. Usa el configurador para colocar ascensores visualmente sin tocar archivos de config.

Documentación completa

Eventos

Agency-Elevator:server:requestTravel

Solicitud validada por el servidor para viajar entre pisos.

Ver ejemplo

Pide al servidor que valide el acceso y luego viaje al piso 3.

TriggerServerEvent('Agency-Elevator:server:requestTravel', 'lspd-tower-1', 3)
Agency-Elevator:server:travelComplete

Reconoce la llegada del client y envía la notificación 'llegó al piso'.

Ver ejemplo

Indica al servidor que el jugador llego al piso 3 para enviar la notificacion.

TriggerServerEvent('Agency-Elevator:server:travelComplete', 'lspd-tower-1', 3)
Agency-Elevator:server:requestElevators

Sincroniza la lista de ascensores cargada desde la base de datos al client solicitante.

Ver ejemplo

Solicita la lista completa de ascensores al servidor al inicializar el cliente.

AddEventHandler('onClientResourceStart', function(res) if res == GetCurrentResourceName() then TriggerServerEvent('Agency-Elevator:server:requestElevators') end end)
Agency-Elevator:server:saveElevator

Upsert con control de permisos de un ascensor (id/label/floors) en MySQL.

Ver ejemplo

Upsert de admin de un ascensor con una sola entrada de planta 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:loadElevator

Genera/carga un ascensor guardado desde la base de datos.

Ver ejemplo

Carga los datos de un solo ascensor en el NUI del configurador para editar.

TriggerServerEvent('Agency-Elevator:server:loadElevator', 'lspd-tower-1')
Agency-Elevator:server:saveSettings

Persiste los ajustes UI (posición/escala/color de acento) en MySQL y resincroniza todos los clients.

Ver ejemplo

Guarda posicion UI, color de acento y escala y resincroniza a todos los clientes.

TriggerServerEvent('Agency-Elevator:server:saveSettings', { position = 'top-right', accent = '#22c55e', scale = 1.0 })
Agency-Elevator:client:startTravel

Inicia una cinematica de viaje en ascensor para el jugador.

Ver ejemplo

Reproduce el fade y la animacion y teletransporta al ped al piso 2 del garaje.

TriggerEvent('Agency-Elevator:client:startTravel', 'parking-garage', 2)
Agency-Elevator:client:applySettings

Envía los ajustes UI (acento/escala/posición) al NUI.

Ver ejemplo

Aplica el acento, la escala y la posicion del NUI del ascensor en el cliente local.

TriggerEvent('Agency-Elevator:client:applySettings', { accent = '#0ea5e9', scale = 0.9, position = 'bottom-left' })
Agency-Elevator:client:openConfigurator

Abre el configurador de ascensores en el juego (solo admin).

Ver ejemplo

Abre el NUI configurador admin con la lista actual de ascensores.

TriggerEvent('Agency-Elevator:client:openConfigurator')
Agency-Elevator:client:refreshConfigurator

Actualiza el configurador abierto tras un guardado/eliminación sin cerrarlo.

Ver ejemplo

Refresca el NUI configurador abierto tras guardar sin cerrarlo.

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.

Documentación completa

Exports de cliente

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 de servidor

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.

Eventos

agency-housing:client:enteredZone

Fires with (houseId, house) when the player steps onto a property, so a job or robbery script does not have to poll.

agency-housing:client:leftZone

Fires with (houseId, house) when the player leaves a property.

¿Sigues atascado después de esta página? Nuestro soporte se encarga.

¿Sigues atascado después de esta página? Nuestro soporte se encarga.