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).
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:notifyMuestra 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:usePhoneItemActiva 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:openAppSolicita 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:newMailNotifyNotifica 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:requestPhoneDataSolicita 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:cancelCallCancela 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:sendMessageEnví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:saveSettingPersiste 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:airdropPayRealiza 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:buyDataPlanCompra 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:createCrea 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.
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:notifyMuestra 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:usePadItemAbre 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:openAppDisparar 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:newMailNotifyNotifica 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:hourlyPaycheckNotifica 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:requestPadDataSolicita 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:sendMessageEnví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:airdropPayRealiza 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:buyDataPlanCompra 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:createCrea 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:createCrea 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:adminCreateEl 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:startMissionInicia 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:applyToListingEnví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:createMechanicInvoiceCrea 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:sendMechanicInvoicePayEnví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:mdtCreateInvoiceEl 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.
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.
Eventos
agency_lifeinvader:showAdMuestra 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:openMenuAbre 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:openRecentMenuAbre 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:notifyMuestra 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:submitAdEnví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.
Eventos
blackmarket:client:openMenuAbre 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:closeMenuCierra 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:openLaunderingMenuAbre 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:showNotificationMuestra 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:checkAccessVerifica 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:completeBuyFinaliza 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:sellItemProcesa 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:completeSellFinaliza 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:launderMoneyManeja 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.
Eventos
agency_minerJob:openSellMenuAbre 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:sellItemsVende 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:requestPlayerItemsDevuelve 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:requestPlayerSkillDevuelve 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:requestDetailedStatsDevuelve 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.
Eventos
agencyrepairkit:client:startRepairInicia 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:useRepairKitAlias 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:useRepairKitAlias 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.
Eventos
simple_carkeys:client:toggleLockAlterna 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:toggleEngineArranca 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:showErrorMuestra 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:showNotificationTextMuestra 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:showErrorTextMuestra 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:forceToggleLockRuta 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:forceToggleEngineRuta 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:checkOwnershipAndLockValida 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:checkOwnershipAndStartValida 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:universalEngineStartPermite 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.
Eventos
agency-vending:notifyDespachador 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:startAgencyPayInicia 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:buyMachineResultResultado 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:machineCreatedBroadcast 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:openManagementVerifiedApertura 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:openOwnedListAbre 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:spawnMachineCreatedBroadcast 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:spawnMachineDeletedBroadcast 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:openSpawnerUIAbre 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:buyMachineEl 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:requestOwnedListEl 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:requestMachinesEl 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:requestManagementApertura 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:requestSpawnedMachinesEl 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:adminSpawnMachineAdmin 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:adminDeleteSpawnedAdmin 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.
Eventos
agency-admin:client:refreshStaffRanksHace 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))
endagency-admin:client:freezeTimeCongela 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:dashboardValueEnvia 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:teleportToCoordsTeletransporta 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:announceMuestra 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:notifyEnví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:freezeCongela 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:healRestaura 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:reviveRevive 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:teleportTeletransporta 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:openMenuAbre 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:openToolsMenuDisparador 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:closeMenuDisparador 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:openClothingMenuDisparador 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:requestPlayersSolicita 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:requestPanelPermissionsSolicita 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:requestStaffRanksSolicita 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:createRankCrea 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:requestMyPermissionsEl 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:requestSyncEl 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:requestDutyRankEl 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:requestSpawnedObjectsEl 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.
Eventos
agency-reports:client:notifyDispara 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:openPlayerUIAbre 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:openAdminUIAbre 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:teleportTeletransporta 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:healSelfCura 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:submitReportEnví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:requestPlayerDataEl 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:requestAdminDataAdmin 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:sendChatMessageEnví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.
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')
endEventos
Agency-HUD:client:applyVehicleSettingsPatchAplica 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:openAdminMenuAbre 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:checkAdminPermissionVerifica 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:saveGlobalSettingsPersistencia 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:requestGlobalSettingsDevuelve 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:requestTimeDevuelve 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.
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)
endIsProgressActive()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:LoadSettingsCarga 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:startInicia 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:stopDetiene 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:useFoodPuente 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:useDrinkPuente 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:SaveSettingsValida 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:startDisparador 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:stopDisparador 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:requestValida 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:applyValida 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.
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:SendIgual 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:LoadSettingsAplica 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:SaveSettingsValida 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.
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)
end16Agency-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.
Eventos
Agency-Elevator:server:requestTravelSolicitud 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:travelCompleteReconoce 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:requestElevatorsSincroniza 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:saveElevatorUpsert 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:loadElevatorGenera/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:saveSettingsPersiste 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:startTravelInicia 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:applySettingsEnví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:openConfiguratorAbre 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:refreshConfiguratorActualiza 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.
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: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.
¿Sigues atascado después de esta página? Nuestro soporte se encarga.