Comandos#
Interface registra sus teclas como asignaciones de teclas de FiveM, así que cada jugador puede reasignarlas en Settings → Key Bindings → FiveM. Los nombres de los comandos del editor, de restablecer, de reportes y de ajustes, y las teclas por defecto del editor y del chat, se definen en /interfaceconfig → Commands and keys; las tablas de abajo usan los valores por defecto.
Jugadores#
Comando | Tecla por defecto | Descripción |
|---|---|---|
| F9 | Abre el editor del HUD. No existe cuando el editor del HUD está desactivado. |
| — | Devuelve cada widget a su posición por defecto. |
| B | Abrocha o desabrocha el cinturón de seguridad. |
| X | Cancela la barra de progreso en curso, si permite cancelarla. |
| L | Alterna el chat: mostrar cuando está activo → siempre visible → oculto. |
| — | Muestra u oculta el HUD, para capturas y grabaciones. |
| — | Chat de roleplay. Consulta Uso para saber quién lee cada uno. |
| — | Mensaje privado a un jugador. |
| — | Envía un reporte a todos los administradores conectados. Desactívalo si otro recurso ya usa |
| — | Canjea una compra de Tebex como etiqueta VIP. Requiere |
Comandos de canales de trabajo | — | Lo que crees en /chatadmin → Job Channels. |
Staff y consola#
Comando | Dónde | Descripción |
|---|---|---|
| En el juego | Abre los ajustes del servidor. Requiere el ace |
| En el juego | Abre el panel de administración del chat. Administradores del framework. |
| En el juego | Mensaje de administrador, visible para todos. |
| Juego · consola | Da una etiqueta VIP: |
| Juego · consola | Quita la etiqueta VIP. |
| Juego · consola | Vuelve a leer una etiqueta de la base de datos después de editar |
| Consola F8 | Imprime por qué el marco del minimapa se muestra u oculta en este momento. |
Solo depuración#
Solo se registran mientras Config.Debug = true en config/config.lua — y entonces están disponibles para todos, por eso la depuración debe estar desactivada en un servidor en producción.
Comando | Descripción |
|---|---|
| Borra tu HUD guardado; la configuración inicial se vuelve a ejecutar en la siguiente carga. |
| Una notificación de ejemplo y una barra de progreso de ejemplo con props. |
| Inicia y detiene la cámara orbital. |
| Restaura la cámara y el minimapa si el editor quedó abierto a medias. |
Exports del cliente#
Para mostrar notificaciones y barras de progreso desde tus propios scripts, ocultar el HUD durante una cinemática o iniciar Interface desde un multicharacter personalizado.
AddNotify
Muestra una notificación con el estilo que eligió el jugador. Todos los argumentos después del texto son opcionales.
exports['qs-interface']:AddNotify(text, header, time, icon)
-- Example
exports['qs-interface']:AddNotify('Your car is ready.', 'Garage', 5000, 'fas fa-car')
-- header defaults to 'Notification', time to 5000 ms, icon to 'fas fa-inbox'El icono es cualquier clase de Font Awesome. Desde el servidor, envía la misma notificación con un evento:
TriggerClientEvent('interface:notification', source, 'Your car is ready.', 'Garage', 5000, 'fas fa-car')ProgressBar
Ejecuta una barra de progreso y la espera. Devuelve true cuando se completa y false cuando se cancela o se interrumpe. progress es el mismo export con otro nombre. Las opciones siguen las de ox_lib, así que la mayoría de los scripts se adaptan sin cambios.
local done = exports['qs-interface']:ProgressBar({
label = 'Repairing',
duration = 5000, -- ms
canCancel = true, -- X cancels it
useWhileDead = false, -- the allow* options default to false:
allowRagdoll = false, -- dying, ragdolling, falling, swimming
allowFalling = false, -- or being cuffed interrupts the bar
allowSwimming = false,
allowCuffed = false,
disable = { move = true, sprint = true, car = true, combat = true, mouse = false },
anim = { dict = 'mini@repair', clip = 'fixing_a_ped', flag = 49 },
-- or: anim = { scenario = 'WORLD_HUMAN_WELDING' },
prop = { -- one prop, or a list of them
model = 'prop_tool_spanner01',
bone = 60309,
pos = vec3(0.0, 0.0, 0.0),
rot = vec3(0.0, 0.0, 0.0),
},
})
if done then
-- finished
endLos props los ven todos los jugadores cercanos. Mientras una barra está en curso, LocalPlayer.state.invBusy es true, algo que la mayoría de los inventarios respetan.
CancelProgress · ProgressActive
exports['qs-interface']:CancelProgress() -- true if a cancellable bar was stopped
exports['qs-interface']:ProgressActive() -- true while a bar is running
-- From anywhere (client or server), the same as pressing X:
TriggerEvent('interface:cancelProgress')ToggleHud
Muestra u oculta el HUD de estado, el HUD del vehículo, el panel de información, el minimapa y la brújula. Las notificaciones y las barras de progreso siguen funcionando.
exports['qs-interface']:ToggleHud(false) -- hide, e.g. for a cutscene
exports['qs-interface']:ToggleHud(true) -- show againInitialize · HasHudConfigured
Initialize inicia Interface: la configuración inicial o el HUD. Se ejecuta solo con el evento de jugador cargado del framework y con qs-multicharacter; llámalo desde un multicharacter que haga aparecer al jugador de otra forma.
exports['qs-interface']:Initialize()
-- Waits until the Interface knows, then returns true once the player
-- has finished the first-time setup:
local configured = exports['qs-interface']:HasHudConfigured()SetMapBorderVisible
Fuerza el marco del minimapa, y el minimapa 3D, a mostrarse u ocultarse, para un script que oculta o muestra el radar por su cuenta. nil devuelve el control.
exports['qs-interface']:SetMapBorderVisible(false)
exports['qs-interface']:SetMapBorderVisible(nil)RefreshMinimap
Vuelve a aplicar la forma de minimapa guardada del jugador: círculo, cuadrado o 3D. Interface ya lo hace solo después de que el jugador aparece y después de los eventos de jugador cargado de ESX, QBCore y Qbox; llámalo cuando otro script haya restablecido o movido el radar, por ejemplo tras una cinemática, una aparición personalizada o un teletransporte.
exports['qs-interface']:RefreshMinimap()La primera pasada se ejecuta de inmediato y le siguen dos más unos segundos después mientras el HUD se asienta; una nueva llamada reemplaza a una que siga en curso. No pasa nada mientras el jugador tiene abierto el editor del HUD.
Eventos del cliente
Eventos que lanza Interface y que tus scripts pueden escuchar:
AddEventHandler('interface:vehicleEntered', function(vehicle) end)
AddEventHandler('interface:vehicleLeft', function() end)
AddEventHandler('interface:gameScreenReady', function() end) -- HUD on screen
AddEventHandler('seatbelt:client:ToggleSeatbelt', function(on) end)
AddEventHandler('qs-interface:settingsApplied', function() end) -- /interfaceconfig values changed (client and server)Exports del servidor#
Para tiendas, bots y scripts de chat que funcionan junto a Interface.
refreshVip
Vuelve a leer una etiqueta VIP de chat_vip_tags y actualiza la insignia al instante. Llámalo después de tu propio INSERT, UPDATE o DELETE; si no, las etiquetas se guardan en caché hasta una hora. Acepta un server ID o un identificador license:; devuelve true si se recargó un jugador conectado.
exports['qs-interface']:refreshVip('license:1a2b3c...')
-- or, without depending on the export:
TriggerEvent('qs-interface:chatvip:refresh', 'license:1a2b3c...')getPlayerVipTag · getVipTiers
local tag = exports['qs-interface']:getPlayerVipTag(source)
-- nil, or { id, label, nameColor, tagColor, tagGradient, glowColor, animation }
local tiers = exports['qs-interface']:getVipTiers()
-- the five tiers, in orderisCommandEnabled · getChatAdminSettings
Leen lo que el staff configuró en el panel de administración del chat.
exports['qs-interface']:isCommandEnabled('ooc') -- me, do, ooc, anon, admin, report, dice, rps, pm
exports['qs-interface']:getChatAdminSettings() -- { commands, badwords, draw3d, jobchannels, categorytabs, ... }checkFloodProtection
Aplica las reglas antispam del chat a tu propio comando de chat. Devuelve false (y se lo indica al jugador) cuando el mensaje debe descartarse.
RegisterCommand('twt', function(source, args)
if not exports['qs-interface']:checkFloodProtection(source) then return end
-- ...
end)Eventos de estrés
Compatibles con los eventos que usa qb-hud, así que los scripts escritos para él funcionan sin cambios. Se envían desde el cliente:
TriggerServerEvent('hud:server:GainStress', 5) -- needs stress switched on, skips jobs without stress
TriggerServerEvent('hud:server:RelieveStress', 10) -- always appliesqs-chat#
qs-chat mantiene la API estándar del chat de FiveM, así que todos los scripts que ya se comunican con el chat por defecto funcionan sin cambios.
-- client or server, the classic events
TriggerClientEvent('chat:addMessage', -1, { args = { 'SYSTEM', 'Restart in 5 minutes' } })
TriggerEvent('chat:addSuggestion', '/mycmd', 'What it does', { { name = 'id', help = 'Player ID' } })
TriggerEvent('chat:removeSuggestion', '/mycmd')
-- server exports
exports['qs-chat']:addMessage(target, message)
exports['qs-chat']:registerMessageHook(function(source, outMessage, hookRef) end)
exports['qs-chat']:registerMode({ name = 'police', displayName = 'Police', color = '#3b82f6', seObject = 'group.police', cb = function() end })Un modo registrado con registerMode se convierte en una pestaña del chat para los jugadores a los que se les permite su ace (seObject).



