Technical Reference
Archivos clave
fxmanifest.luashared/config.luashared/locales.luashared/config_internal.luaclient/main.luaclient/modules/validation.luaclient/framework/init.luaclient/framework/qbox.luaclient/framework/qbcore.luaclient/framework/esx.luaserver/framework/init.luaserver/main.luaserver/framework/qbox.luaserver/framework/qbcore.luaserver/framework/esx.luahtml/index.htmlhtml/app.jshtml/modules/*.js
Comandos
| Comando | Config | Funcion |
|---|---|---|
logout | Config.Logout.command en el shared/config.lua actual | Fuerza logout y devuelve al selector si Config.Logout.enabled ~= false |
coldaddslot <id> | Config.Slots.unlockCommand | Desbloquea un slot extra para un jugador |
Notas:
- Si borras
Config.Logouty dejas actuar solo el normalizador interno, el fallback del comando pasa a sercoldlogout. coldaddslotexigeadminpor defecto y comprueba ACE mas permisos deqboxoqbcore.
Exports
Server
exports('IsInMultichar', function(source) -> boolean end)exports('ForceMultichar', function(source) -> boolean end)
Client
exports('IsInMultichar', function() -> boolean end)exports('OpenMultichar', function() end)
Callbacks internos
cold_multichar:server:getSlotAmountcold_multichar:server:shouldAutoOpenSelectorcold_multichar:server:getCharacterscold_multichar:server:getPreviewPedDatacold_multichar:server:getCharacterLastPositioncold_multichar:server:createCharactercold_multichar:server:loadCharacter
Estos callbacks no dependen de ox_lib. El recurso usa un bridge propio con eventos cold_multichar:server:callbackRequest y cold_multichar:client:callbackResponse.
NUI callbacks principales
previewSlotplaySlotcreatePreviewOpencreatePreviewClosecreatePreviewUpdatecreateCharacterdisconnectsaveSettingsspawnPreviewspawnChoosespawnCancelnuiReady
Eventos
Server
cold_multichar:server:setSelectionIsolationcold_multichar:server:disconnectSelf
Client
cold_multichar:client:slotAmountUpdated
Framework listeners
qbx_core:client:playerLoggedOutQBCore:Client:OnPlayerUnloadesx:onPlayerLogout
Estado del jugador y aislamiento
- Usa
LocalPlayer.state.coldMulticharOpenpara marcar selector abierto. - El servidor reacciona a ese statebag y mueve al jugador a un routing bucket aislado.
- Por defecto usa buckets unicos desde base
65000 + source. - Al cerrar el selector lo devuelve al bucket
0salvo que cambies el codigo interno.
Persistencia de slots
Tabla:
cold_multichar_slot_extras
Columnas:
identifierextra_slotscreated_atupdated_at
Fallback legacy:
- KVP
cold_multichar:slotExtra:<identifier>
Persistencia de ajustes locales
- KVP cliente:
<resource>:ui_settings:v1 localStorage:cold_multichar_settings_v1
Validacion de creacion
- Slots validos entre
1yconfiguredSlotAmount. - Textos solo con letras, espacios,
-y'. - Se bloquea la palabra interna
badword. - Fecha valida entre
1900-01-01y2006-12-31. gender:male->0,female->1.
Detalles tecnicos utiles
- Los ajustes del NUI se guardan tanto en
localStoragecomo en KVP del recurso. - El intro admite un maximo real de
6entradas. - El selector intenta refrescar la lista real de personajes incluso si el primer fetch falla.
- El preview de apariencia cae a freemode aleatorio si no puede cargar skin o modelo.
- El selector cinematico usa ubicaciones custom mas ultima posicion y spawn por defecto.
Gaps detectados en el recurso actual
- No hay flujo de borrado de personaje implementado.
- No existe soporte real para mas de
3slots. - Las notificaciones del comando de slots dependen de que alguien escuche
cold_library:notify.