Configuration
La configuracion editable esta en shared/config.lua. shared/config_internal.lua completa defaults, normaliza nombres legacy y transforma la config nueva en la estructura interna que leen cliente y servidor.
Bloque publico actual
Config.Framework = 'auto'
Config.Locale = 'es'
Config.DebugLogs = false
Config.LowPerformanceMode = false
Config.Slots = {
default = 1,
max = 3,
unlockCommand = 'coldaddslot',
ace = 'admin'
}
Config.Appearance = {
preview = 'auto',
qboxCreator = 'auto',
qbcoreCreator = 'auto',
esxCreator = 'auto',
esxPreview = 'users_skin'
}
Config.Intro = {
enabled = true,
backgroundImage = 'assets/gta-v-gtav-gta-gta5-gta-5-gta.jpg',
logoText = 'COLD STORE',
menu = {
{ id = 'play', label = '@ui.intro.default_play', action = 'play' },
{ id = 'rules', label = '@ui.intro.default_rules', action = 'pdf', url = 'assets/normas.pdf' },
{ id = 'store', label = 'COLD STORE', action = 'url', url = 'https://coldhosting.com/' }
}
}
Config.Logout = {
enabled = true,
command = 'logout'
}
Config.DefaultSpawn = vec4(-540.58, -212.02, 37.65, 208.88)
Config.SpawnMode = {
existing = 'cinematic_selector',
new = 'cinematic_selector'
}
Config.CinematicSpawn = {
enabled = true,
includeDefault = true,
locations = {
{
id = 'mission_row',
label = '@client.spawn_mission_row_label',
description = '@client.spawn_mission_row_desc',
coords = vec4(426.55, -978.63, 30.71, 90.0)
}
}
}
Config.Framework, locale y logs
Config.Framework:auto,qbox,qbx,qbx_core,qbcore,qb,qb_core,esx,es_extended.- Con
auto, el orden real esqbox -> qbcore -> esx. Config.Locale:esoen.Config.DebugLogs: imprime logs de spawn, errores de carga y diagnostico.Config.LowPerformanceMode: activa por defecto el modo de rendimiento de la NUI.
Config.Slots
Config.Slots = {
default = 1,
max = 3,
unlockCommand = 'coldaddslot',
ace = 'admin'
}
Puntos importantes:
- El maximo real sigue capado a
3en cliente y servidor. defaultnunca puede quedar por debajo de1.- Si
max < default, el recurso fuerzamax = default. - Si
unlockCommand = false, no se registra el comando admin. - Los slots extra se guardan por identificador (
license2,licenseofivem). - El permiso se comprueba por ACE y tambien por permisos de
qboxoqbcore.
Config.Appearance
Config.Appearance = {
preview = 'auto',
qboxCreator = 'auto',
qbcoreCreator = 'auto',
esxCreator = 'auto',
esxPreview = 'users_skin'
}
Valores soportados en el codigo actual:
preview:auto,illenium,fivem_appearance,custom,noneqboxCreator:auto,illenium,qb_clothes,qb_clothing,custom,noneqbcoreCreator:auto,illenium,qb_clothes,qb_clothing,custom,noneesxCreator:auto,illenium,esx_skin,custom,noneesxPreview:users_skin,custom,none
Si usas custom, shared/config_internal.lua tambien acepta estas subclaves:
customPreviewcustomQboxCreatorcustomQbcoreCreatorcustomEsxCreatoresxPreviewTable
Config.Intro
Config.Intro = {
enabled = true,
backgroundImage = 'assets/gta-v-gtav-gta-gta5-gta-5-gta.jpg',
logoText = 'COLD STORE',
menu = {
{ id = 'play', label = '@ui.intro.default_play', action = 'play' },
{ id = 'rules', label = '@ui.intro.default_rules', action = 'pdf', url = 'assets/normas.pdf' },
{ id = 'store', label = 'COLD STORE', action = 'url', url = 'https://coldhosting.com/' }
}
}
Acciones soportadas por el intro:
playpdfurl
Notas:
- El menu admite un maximo real de
6entradas. pdfusa el visor interno del NUI.urlintenta abrir un enlace externo conwindow.opendesde la NUI.labelydescriptionpueden apuntar a locale keys si empiezan por@.
Config.Logout
Config.Logout = {
enabled = true,
command = 'logout'
}
- Si
enabled ~= false, registra el comando. - El archivo publico actual usa
logout. - Si borras ese bloque y dejas que actue solo el normalizador interno, el fallback es
coldlogout.
Config.DefaultSpawn y Config.SpawnMode
Config.DefaultSpawn: spawn de respaldo.Config.SpawnMode.existingConfig.SpawnMode.new
Modos soportados:
cinematic_selector: abre el selector de spawn propio decold_multichary deja escoger entre las ubicaciones configuradas, el spawn por defecto y, si existe, la ultima posicion.last_location: intenta usar primero la posicion que tenga cargada el framework y, si no existe, busca la ultima posicion guardada del personaje.default: usa directamenteConfig.DefaultSpawnsin intentar recuperar la ultima ubicacion.
Logica real:
- Si el modo es
cinematic_selector, intenta abrir el selector interno. - Si falla, cae a
defaultpara personaje nuevo olast_locationpara personaje existente. - Si
last_locationno tiene posicion util, usaConfig.DefaultSpawn.
Config.CinematicSpawn
Config.CinematicSpawn controla:
enabledincludeDefaultlocations
Cada location puede definir:
idlabeldescriptioncoords
Si includeDefault = true, el selector puede incluir el spawn por defecto ademas de la ultima posicion y las ubicaciones custom.
Escenas, camaras y preview idle
Estos bloques tambien son configurables:
Config.SceneCameraConfig.CreatePreviewCameraConfig.PreviewActionsConfig.SceneLocations
Notas utiles:
SceneCamera: plano principal del selector.CreatePreviewCamera: camara usada al cambiar genero en el modal de creacion.PreviewActions: idle scenarios del ped de preview.SceneLocations: escenas del selector, conped,cam, clima, hora y acciones.- Si
PreviewActionssolo traeshared, el normalizador la duplica enmaleyfemale.
Validaciones de creacion de personaje
No son configurables desde shared/config.lua, pero conviene conocerlas:
firstname,lastnameynationalitysolo aceptan letras, espacios,-y'.- Se rechazan palabras prohibidas definidas internamente.
birthdatedebe estar entre1900-01-01y2006-12-31.
Compatibilidad con config legacy
El recurso todavia entiende nombres antiguos, pero hoy conviene documentar y editar la forma nueva:
Config.CharacterSlots-> se normaliza aConfig.SlotsConfig.LogoutCommand/Config.AllowLogoutCommand-> se normalizan aConfig.LogoutConfig.Spawn-> se normaliza aConfig.SpawnMode