Configuration
La configuracion editable esta en config.lua. Los textos de la interfaz estan en locales/es.lua y locales/en.lua.
Idioma
Config.Locale = 'es'
El valor debe corresponder con un archivo dentro de locales/.
Framework
Config.Framework = 'auto' -- auto, qbx, qbcore, esx, standalone
Con auto, cold_garages detecta automaticamente QBX, QBCore o ESX. Si ninguno esta iniciado, utiliza el modo standalone.
Interaccion y markers
Config.DrawDistance = 25.0
Config.InteractDistance = 3.0
Config.StoreDistance = 6.0
Config.MarkerType = 36
Config.MarkerScale = vec3(0.8, 0.8, 0.8)
Config.MarkerColor = { r = 40, g = 170, b = 255, a = 160 }
Config.OpenKey = 38 -- E
DrawDistance— distancia a la que empiezan a dibujarse los markers.InteractDistance— distancia maxima para abrir un garaje o deposito.StoreDistance— distancia maxima para guardar un vehiculo.OpenKey— control de FiveM utilizado para interactuar.38corresponde normalmente aE.
Comportamiento de vehiculos
Config.TrimPlate = true
Config.SpawnInVehicle = true
Config.ModelLoadTimeoutMs = 8000
Config.TakeOutFromAnyGarage = false
TrimPlateelimina espacios de la matricula antes de compararla.SpawnInVehiclecoloca al jugador dentro del vehiculo al sacarlo.ModelLoadTimeoutMscancela el spawn si un modelo no consigue cargar a tiempo.TakeOutFromAnyGarage = falseobliga a trasladar primero un vehiculo que esta guardado en otro garaje.
Traslado entre garajes
Config.VehicleTransfer = {
enabled = true,
fee = 500,
account = 'bank'
}
Si el vehiculo esta guardado en otro garaje, el jugador puede trasladarlo pagando fee desde la cuenta indicada.
Si prefieres permitir sacar cualquier vehiculo directamente desde cualquier garaje:
Config.TakeOutFromAnyGarage = true
Tarifa al guardar
Config.StoreFee = 0
Config.StoreFeeAccount = 'bank'
StoreFee permite cobrar al guardar un vehiculo. Con 0, guardar es gratis.
Parking persistente y vehiculos perdidos
Config.PersistentParking = {
enabled = true,
deposit = 'city',
restrictToDeposit = true,
importExternalUnstored = true
}
enabledactiva la gestion persistente de vehiculos que quedaron fuera.deposites el ID exacto del deposito al que iran los vehiculos perdidos.restrictToDeposit = truehace que solo puedan recuperarse en ese deposito.importExternalUnstored = trueenvia al deposito los vehiculos externos importados que aparecen como no guardados.
El ID configurado en deposit debe existir en la tabla cold_garage_points como tipo deposit.
Config.LostVehicleCheckMs = 2500
Config.ImportIntervalMs = 30000
LostVehicleCheckMscontrola cada cuanto se comprueba si un vehiculo que estaba fuera ha desaparecido o ha sido destruido.ImportIntervalMslimita la frecuencia con la que se vuelven a importar vehiculos externos por jugador.
Sistema de combustible
Config.Fuel = {
system = 'ox_fuel',
default = 100.0,
stateBagKey = 'fuel'
}
Valores soportados por system:
autonativestatebagLegacyFuelox_fuelps-fuellj-fuelcdn-fuelqs-fuel
default es el combustible utilizado cuando no existe un valor valido. stateBagKey se usa si seleccionas el modo statebag.
Validacion y seguridad
Config.Security = {
interactionDistance = 6.0,
storeDistance = 10.0,
maxVehiclePayloadBytes = 65536,
pendingSpawnTimeoutMs = 15000
}
Config.Validation = {
maxFuel = 100.0,
maxHealth = 1000.0,
minHealth = 0.0
}
Estas opciones establecen limites server-side para distancias, payloads, spawns pendientes, combustible y estado del vehiculo.
Rate limit
Config.RateLimit = {
enabled = true,
intervalMs = 350
}
Reduce peticiones repetidas demasiado rapido al servidor. En produccion es recomendable mantenerlo activado.
Blips de garajes
Config.Blips = {
enabled = true,
group = true,
category = 10,
sprite = 357,
color = 3,
scale = 0.72,
shortRange = true,
label = 'Garaje'
}
group = true agrupa los garajes en una misma categoria de la leyenda del mapa.
Blips de depositos
Config.DepositBlips = {
enabled = true,
sprite = 67,
color = 1,
scale = 0.76,
shortRange = true,
label = 'Deposito'
}
Puedes desactivar independientemente los blips de garajes o depositos con enabled = false.
Creador de garajes
Config.Creator = {
command = 'creategarage',
allowEveryone = false,
acePermission = 'cold_garages.creator',
groups = { 'admin', 'god', 'superadmin' },
identifiers = {},
defaultGarageLabel = 'Nuevo garaje',
defaultDepositLabel = 'Nuevo deposito',
defaultDepositFee = 750,
defaultDepositAccount = 'bank'
}
Formas de autorizar el comando
Puedes usar una o varias:
- ACE
cold_garages.creator. - Grupos ACE como
group.admin,group.godogroup.superadmin. - Identificadores concretos en
Config.Creator.identifiers. allowEveryone = truepara abrir el creador a todos los jugadores.
Ejemplo ACE:
add_ace group.admin cold_garages.creator allow
Garajes y depositos
Config.Garages = {}
Config.Deposits = {}
Estas tablas se mantienen vacias intencionadamente. Los puntos se gestionan en MySQL mediante cold_garage_points, no escribiendolos manualmente en config.lua.
La forma recomendada de crearlos es:
/creategarage
Tambien puedes editar directamente cold_garage_points en la base de datos.
Tipos de vehiculo
Cada punto tiene un vehicle_type. Los valores reconocidos son:
landboatair
Un vehiculo solo puede utilizar puntos compatibles con su tipo.
Logs de Discord
Config.Logs = {
enabled = false,
webhook = '',
botName = 'cold_garages',
actions = {
store = true,
takeOut = true,
recover = true,
createPoint = true,
deletePoint = true
}
}
Para activarlos:
- Pon
enabled = true. - Introduce el webhook en
webhook. - Desactiva individualmente las acciones que no quieras registrar poniendolas en
false.
No publiques tu webhook de Discord ni lo compartas en capturas o repositorios publicos.
Imagenes de vehiculos addon
Para usar una imagen personalizada, coloca un .png en:
html/vehicles/
El archivo debe llamarse exactamente como el spawn name del vehiculo en minusculas. Ejemplo:
html/vehicles/mycustomcar.png
No es necesario modificar el fxmanifest.lua.
Para vehiculos sin imagen local se utilizan estas URLs como fallback:
Config.VehicleImageBaseUrl = 'https://docs.fivem.net/vehicles/%s.webp'
Config.VehicleImageFallbackBaseUrl = 'https://docs.fivem.net/vehicles/%s.png'