Skip to main content

Technical Reference

Archivos clave

  • fxmanifest.lua
  • shared/config.lua
  • shared/locales/es.lua
  • shared/locales/en.lua
  • client/main.lua
  • server/main.lua
  • server/adapters/qbx.lua
  • server/adapters/qb.lua
  • server/adapters/esx.lua
  • html/index.html
  • html/style.css
  • html/app.js

Comandos

ComandoConfigFuncion
coldchatfijo en client/main.luaAbre la NUI del chat
coldhudConfig.HudToggleCommandAlterna HUD automatico y fijado
coldhideConfig.HudHideCommandOculta o recupera el HUD
/me <texto>Config.ProximityRange, Config.Show3DMensaje de proximidad con opcion de 3D
/do <texto>Config.ProximityRange, Config.Show3DMensaje de proximidad con opcion de 3D
/ooc <texto>Config.EnableOOC, Config.OOCMensaje OOC explicito
/idsin bloque dedicadoDevuelve tu id
/clearsin bloque dedicadoLimpia tu historial local
/pm <id> <texto>Config.PrivateMessagesEnvia mensaje privado
/reply <texto>Config.PrivateMessagesResponde al ultimo PM
/pd <texto>Config.Announcements.policeAnuncio policial
/ems <texto>Config.Announcements.emsAnuncio EMS
/mec <texto>Config.Announcements.mechanicAnuncio mecanico
mutechatConfig.Moderation.commands.muteMute manual
unmutechatConfig.Moderation.commands.unmuteQuita mute manual
clearchatallConfig.Moderation.commands.clearAllLimpia chat a todos

Eventos

Server

  • cold_chat:server:requestPlayers
  • cold_chat:server:send

Client

  • cold_chat:client:players
  • cold_chat:client:push
  • cold_chat:client:clear

Compatibilidad

  • chat:addMessage
  • chat:clear
  • chat:addSuggestion
  • chat:addSuggestions
  • chat:removeSuggestion
  • chat:toggleChat

NUI callbacks

  • close
  • layout
  • send
  • hudToggle
  • hudHide
  • hudSetMode

Tipos de payload que mueve el chat

En la practica, server/main.lua emite payloads de este estilo:

  • sys
  • announce
  • ooc
  • ic
  • me
  • do
  • pm_in
  • pm_out

Persistencia local

En html/app.js se guardan estas claves:

  • cold_chat_layout_v1
  • cold_chat_opacity_v1
  • cold_chat_prefs_v1

Eso cubre layout, opacidad y preferencias del panel.

Estado en memoria del servidor

server/main.lua mantiene:

  • lastSent: cooldown simple por jugador
  • lastPmFrom: ultimo objetivo para /reply
  • spamState: contador y auto mute anti-spam
  • manualMuteUntil: mute manual activo
  • annLast: cooldown de anuncios por categoria

Todo eso se limpia al parar el recurso.

Menciones

El flujo real de menciones hace esto:

  1. Extrae tokens que empiecen por @.
  2. Si byId esta activo, acepta ids numericos.
  3. Si byName esta activo, compara contra nombre visible y nombre de jugador normalizados.
  4. Adjunta payload.mentions si encontro destinatarios.

Detalles tecnicos utiles

  • clampMsg elimina saltos de linea y recorta a Config.MaxMessageLen.
  • El chat desactiva visualmente el recurso chat, pero sigue usando su capa de compatibilidad.
  • /clear solo limpia al cliente que lo ejecuta.
  • clearchatall dispara cold_chat:client:clear para toda la sesion.
  • Los anuncios tienen cooldown independiente de Config.CooldownMs.
  • No hay exports documentables en esta version.