Todo se ajusta en shared/config.lua y en los archivos de data/. Reinicia el recurso tras un cambio. Las opciones marcadas en vivo también se cambian desde el Panel de staff sin reiniciar; el panel las guarda en la base de datos y «Fábrica» vuelve a los valores del archivo.
General
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
debug | boolean | false | true = modo pruebas: el staff no necesita ítems ni trabajo y tiene los comandos de prueba. Déjalo en false en un servidor abierto. |
remoteRange | number | 12.0 | Metros desde los que el dueño (o una medusa pública) maneja la radio desde fuera del coche. |
remoteMargin | number | 3.0 | Metros de más antes de que la tablet se cierre al alejarse. |
ui
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
accent | string | configurable | Color de acento de la interfaz (hex). |
allowAccent | boolean | false | true = cada jugador elige su color. |
allowBackground | boolean | true | true = cada jugador puede poner una imagen de fondo en la tablet. |
allowAcoustics | boolean | false | true = cada jugador puede apagar para sí el audio 3D y la oclusión. |
cameraKey | string | 'Alt' | Tecla que, mantenida, suelta el ratón para mover la cámara (Alt, Control o Shift). |
cameraMove | boolean | true | true = mientras se mantiene esa tecla también se puede andar, correr y conducir. |
commands
Cada comando es una tabla con name. Pon name = '' para no registrar los que lo permiten. Lista completa en Comandos y permisos.
| Opción | Por defecto | Notas |
|---|---|---|
open | { name = 'chipeo', keybind = 'F4' } | keybind = '' no registra tecla. |
repair | repairchipeo | Solo existe con mechanic.enabled = true. |
removeAll, removeNearby, emergency | removeallchipeo, removechipeo, chipeoemergencia | restricted = false comprueba admin.permission; un grupo ACE como 'group.admin' además los restringe con ox_lib. |
workshop | tallerchipeo | |
musicVolume, updateRate | volumenmusica, intervalomusica | Opciones personales. |
admin | chipeoadmin | Panel de staff. |
request | pedircancion | Peticiones de canciones. |
debug | tabla | Nombres de los comandos de prueba, solo con debug = true. |
logs
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
enabled | boolean | false | true = manda registros a Discord. |
convar | string | 'cuxial_chipeo_webhook' | Convar del servidor con la URL del webhook (set, nunca en este archivo). |
delays
Esperas del cliente en milisegundos: boot (tras cargar el personaje, antes de pedir las medusas colocadas), settings (tras arrancar, antes de mandar los ajustes a la interfaz), watch (comprobaciones de distancia con la tablet abierta), control (espera del control de red del coche al tocar puertas y ventanas) y settle (pausa antes de leer cómo quedó una puerta o ventana). Los valores por defecto sirven para casi cualquier servidor.
items
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
install | string | 'chipeo_radio' | Ítem que instala la radio. |
unmount | string | 'chipeo_unmount' | Ítem que la desinstala y devuelve la radio. |
usb | tabla | usb_8 = 8 … usb_128 = 128 | Ítem de USB → número de canciones. |
usbFallback | string | 'usb_8' | Ítem que se devuelve al expulsar si la capacidad guardada no coincide con ninguno. |
debugUsb, debugMedusa | string | 'usb_32', 'chipeo_medusa_l' | Lo que dan los comandos de prueba. |
install
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
timeMs / unmountTimeMs | number | 5000 / 5000 | Duración de instalar y desinstalar. |
ownerOnly | boolean | false | true = solo el dueño del vehículo instala. |
unmountOwnerOnly | boolean | true | true = solo el dueño o quien la instaló desinstala. |
range | number | 4.0 | Metros al vehículo. |
rangeMargin | number | 1.5 | Tolerancia que suma el servidor a range. |
checkGraceMs / checkExpireMs | number | 500 / 60000 | Tolerancia al lag y validez de la comprobación previa a la barra. |
anim | tabla | mini@repair / fixing_a_ped | Animación de instalar, desinstalar y reparar. |
audio
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
defaultDistance | number | 10.0 | Metros a los que se oye un coche sin piezas. |
maxVolumeBoost | number | 5.0 | Tope del mando de volumen (1.0 = normal). |
volumeCap | number | 10.0 | En vivo. Tope de volumen de todo el servidor, por encima del de cada coche. |
defaultVolume / defaultBass | number | 1.0 / 30 | Volumen y bajos con los que arranca una radio. |
proximityMs | number | 250 | Cálculo de distancias en el cliente; también la actualización por defecto. |
rangeMargin | number | 5.0 | Metros de más a los que el cliente ya prepara la fuente. |
maxBass / maxPunch | number | 100 / 100 | Escala de los mandos de bajos y pegada. |
bassHz | tabla | 60–200, 110 | Margen y valor inicial del corte del subwoofer. |
eqBands | tabla | 31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000 | Bandas del ecualizador en Hz. La primera y la última son estanterías. |
eqLegacyBands | tabla | 60, 170, 350, 1000, 3500, 10000 | Bandas de versiones anteriores. Los ecualizadores y presets guardados con ellas se convierten al leerse. |
eqRangeDb | number | 12 | ± dB por banda. |
presetSlots | number | 5 | Presets de ecualizador por jugador. |
musicVolumeMax | number | 2.0 | Tope del volumen personal de música (2.0 = el doble). |
updateOptions | tabla | 100, 250, 500 | Intervalos (ms) que puede elegir el jugador. |
idleSuspendMs | number | 5000 | Ms sin nada sonando antes de dormir el audio de la interfaz. 0 = nunca. |
emergency, social, groups, buckets
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
emergency.removeMedusas | boolean | false | En vivo. true = la emergencia también retira todas las medusas colocadas. |
social.showNames | boolean | false | true = avisos y listas enseñan el nombre del personaje; false = solo el ID. |
social.request.enabled | boolean | true | Peticiones de canciones sí o no. |
social.request.who | string | 'all' | 'all' = cualquiera cerca · 'passengers' = solo dentro del coche · 'list' = solo los trabajos y permisos de list. |
social.request.list | tabla | vacía | Con who = 'list': jobs = { mechanic = 0 } (grado mínimo) y permissions = { 'vip' }. |
social.request.range / notifyRange | number | 25.0 / 60.0 | Metros para pedir, y metros a los que avisa al dueño. |
social.request.maxPending / perPlayer | number | 8 / 1 | Peticiones pendientes por equipo y por jugador. |
social.request.cooldownSec / ttlSec | number | 30 / 300 | Segundos entre peticiones de un jugador, y duración de una petición. |
social.share.enabled / range / ttlSec | true / 4.0 / 30 | Compartir una lista con un jugador cercano. | |
groups.enabled | boolean | true | Grupos sincronizados sí o no. |
groups.maxMembers | number | 6 | Equipos por grupo, contando el maestro. |
groups.maxDistance / inviteRange | number | 150.0 / 60.0 | Metros antes de que un miembro salga, y metros para invitar. |
groups.inviteSec | number | 30 | Segundos que dura una invitación. |
groups.tickMs / refreshMs | number | 2000 / 3000 | Revisiones del grupo y refresco de la app Grupo abierta. |
buckets.enabled | boolean | true | true = cada jugador solo oye su routing bucket. |
buckets.shareDefault | boolean | false | true = el bucket 0 se oye desde todos. |
buckets.pollMs | number | 1000 | Revisiones de bucket de jugadores y coches. |
buckets.max | number | 65535 | Bucket más alto que el staff puede dar a una instalación. |
buckets.staffMove | boolean | true | true = «Ir hasta allí» del panel también mete al staff en ese bucket. |
buckets.movePermission | string/nil | nil | Permiso para ese cambio; nil = admin.permission. |
fixed
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
enabled | boolean | true | Instalaciones fijas sí o no. |
netBase | number | 65536 | Base interna de identificadores. No tocar. |
spawnRange / controlRange | number | 150.0 / 4.0 | Metros a los que se crean los props, y metros al controlador para usarlo. |
placeRange / maxSpread | number | 40.0 / 60.0 | Alcance del gizmo, y distancia máxima del controlador a cada pieza. |
maxPieces / maxInstalls / maxPerOwner | number | 24 / 60 / 2 | Piezas por instalación, instalaciones en el servidor, instalaciones por creador que no es staff. |
usbCapacity | number | 60 | Canciones del USB virtual de cada instalación. |
tickMs | number | 30000 | Revisiones de horario. |
defaultVolume / defaultMaxVolume / defaultMaxRange | number | 1.0 / 3.0 / 120.0 | Valores iniciales de una instalación nueva. |
models | tabla | medusa L y S | Modelos de prop permitidos como controlador. |
zoneRadius | number | 1.6 | Distancia del target de un controlador de tipo zona. |
creators | tabla | todo apagado | Quién más puede crear (solo las suyas): permission (permiso de Cuxial Bridge), jobs ({ club = 2 }) o export ({ resource = 'x', name = 'y' }, recibe el ID del jugador y devuelve boolean). |
session y limits
session guarda tiempos del servidor: alcance y validez del informe de cabina (cabinRange, cabinTtlMs, cabinResendMs), margen de fin de pista (endMarginSec), avance máximo (maxSeekSec), el valor de cabina por debajo del que un coche cuenta como cerrado (closedBelow), pasada de calor y presión (tickMs), limpieza de radios cuyo coche ya no existe (cleanupMs), caché del dueño (ownerCacheMs) y espera mínima entre dos avisos de ventanas bajadas a los demás (windowsPushMs).
limits acota cuántas peticiones de cada tipo puede mandar un jugador: { max = n, windowMs = ms } por acción (control, panel, USB, canciones, instalar, acciones de medusa, grupos, importar, instalaciones fijas, biblioteca, peticiones, tienda, banco de trabajo, facturas, menú de jefe…). Sube un valor solo si jugadores legítimos ven mensajes de espera.
overheat y pressure
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
overheat.enabled | boolean | true | El equipo se puede freír. |
overheat.seconds / bassThreshold | number | 15 / 80 | Sin piezas: segundos por encima de ese nivel de bajos hasta freírse. |
overheat.fireSeconds | number | 20 | Segundos que arde el maletero. |
overheat.cooldownPerSecond | number | 2 | Lo rápido que se enfría. |
overheat.damagedMaxVolume / damagedMaxBass | number | 1.0 / 20 | Topes con el equipo frito. |
overheat.mounted.enabled | boolean | true | En vivo. Con piezas, el calor depende de vatios, volumen, bajos, cajas cerradas y caída de tensión. |
overheat.mounted.refWatts / minRate / enclosed / sagHeat | number | 2500 / 0.3 / 1.2 / 1.0 | Vatios que calientan 1 punto por segundo a tope, ritmo por debajo del que se enfría, extra por cajas cerradas, extra a caída máxima. |
pressure.enabled | boolean | true | Revientan ventanas en un coche cerrado con el volumen alto. |
pressure.volumeThreshold / seconds | number | 0.7 / 10 | Fracción del volumen a tope (sound.fullVolume, o el máximo del coche si es menor) a partir de la que sube, y segundos al máximo hasta reventar una ventana. |
pressure.cooldownPerSecond / breakCooldown | number | 2 / 12 | Bajada, y segundos de gracia tras reventar una ventana. |
pressure.gain | tabla | base 0.6, bass 0.4, punch 0.3, min 0.35 | Peso de cada mando en la subida. |
pressure.cabinRefDb / cabinFactor | 115.0 / 0.3–3.0 | Con piezas: dB de graves dentro de la cabina que equivalen a la presión normal, y topes del multiplicador. |
acoustics, sound y cabin
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
acoustics.spatial | boolean | true | Audio 3D según la cámara. |
acoustics.occlusion | boolean | true | Paredes y edificios apagan el sonido. |
acoustics.occlusionRays / occlusionHeight / occlusionSpread | 3 / 0.6 / 0.6 | Rayos por fuente (1–3), su altura y su apertura lateral. Manda el rayo central; los laterales solo matizan. | |
acoustics.groupRays | number | 1 | Rayos por grupo de emisores (1–3). Más es más fino y cuesta más con muchos coches. |
acoustics.occludeObjects / objectMinSize | false / 3.0 | false = solo tapan paredes y edificios (recomendado) · true = también objetos grandes, desde esa diagonal en metros. | |
acoustics.occlusionSmooth | number | 0.35 | 0–1, rapidez con la que la oclusión va al valor nuevo. Menos es más suave. |
acoustics.interiorFloor | number | 0.35 | 0–1, oclusión mínima entre dos interiores distintos: una puerta o persiana abierta deja pasar el resto. |
acoustics.farFrom / farEvery | 60.0 / 4 | Desde esa distancia en metros, la oclusión de una fuente se recalcula una de cada farEvery pasadas. | |
sound.hearDb | number | 83.0 | Nivel por debajo del que la calle deja de oír el coche; marca el alcance. |
sound.maxRange | number | 250.0 | En vivo. Metros, tope del alcance de cualquier equipo. |
sound.reachTilt | tabla | sub 0, mid -3, high -7 | dB por banda que se restan solo para calcular el alcance. |
sound.interiorSpl / refDb | number | 98.0 / 112.0 | dB de la radio de fábrica, y dB que equivalen a ganancia 1.0. |
sound.closedDb / closedLowpass | -18.0 / 400 | Pérdida y filtro de una pieza desplegable cerrada. | |
sound.trunk | tabla | sub -3, mid -15, high -15 | dB por banda de una pieza dentro del maletero cerrado. |
sound.airAbsorbFrom | number | 30.0 | Metros a partir de los que el aire se come los agudos. |
sound.groupsPerVehicle / groupsTotal | number | 4 / 16 | Grupos de emisores por coche y por jugador. Cada fuente cercana tiene al menos uno. |
sound.fullVolume | number | 2.0 | Volumen de sesión que cuenta como a tope para el consumo, el calor y la presión. |
sound.crossover | tabla | low 120, high 3000 | Hz entre graves, medios y agudos. |
sound.special.muffle | boolean | false | Coches con Proyecto especial: false = sin ahogo de paredes, cabina, maletero, piezas cerradas ni espaldas · true = como los demás. |
sound.special.gainDb | number | 6.0 | dB extra de volumen y de tope por banda de un Proyecto especial. El limitador sigue activo. |
sound.refDistance | number | 2.0 | Metros hasta los que la radio de serie suena entera desde fuera; más lejos baja con la distancia como las piezas. |
sound.hrtf.near / far / sources | 20.0 / 60.0 / 3 | Audio 3D detallado entero hasta near metros, panorama simple desde far, y cuántas de las fuentes más cercanas lo tienen a la vez. | |
sound.bassComp | boolean | true | Compresor suave solo de graves (por debajo de 150 Hz) antes del limitador, para que el bombo no tape las voces. |
sound.filters.enabled | boolean | true | En vivo. Filtros de ambiente (perfiles en data/filters.lua). |
sound.filters.maxStack / fadeMs | number | 3 / 900 | Perfiles combinados por fuente, y fundido entre ellos. |
cabin.door / trunk / window / roof | number | 0.45 / 0.3 / 0.3 / 0.9 | Cuánto abre la cabina cada cosa (0 cerrada, 1 al aire libre). |
cabin.angle | number | 1.5 | Multiplicador del ángulo de la puerta. |
fx y feel
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
fx.tickMs | number | 300 | Pasada de chispas y vibración. |
fx.fire | tabla | boot, partículas de core | Hueso, partículas, tamaños y alcance del fuego del maletero. |
fx.sparkle | tabla | boot, minBass 60 | Chispas con los bajos altos: partícula, tamaño, hueso, umbral, intervalo, alcance. |
fx.shake | tabla | enabled true, 0.5, 40 | Vibración simple de cámara, la que se usa con feel.enabled = false. |
feel.enabled | boolean | true | En vivo. Cámara y carrocería vibran con los graves que le llegan al jugador. |
feel.minDb / fullDb | number | 92.0 / 126.0 | dB de graves donde empieza la vibración y donde llega al máximo. |
feel.camMax | number | 0.3 | En vivo. Tope de la vibración de cámara. |
feel.insideBoost | number | 1.4 | Multiplicador dentro del coche que suena. |
feel.body / bodyForce | true / 0.6 | En vivo. Balanceo de la carrocería por golpe y su fuerza. | |
feel.bodyMaxSpeed / bodyGapMs | number | 1.5 / 180 | Velocidad por encima de la que la carrocería no se mueve, y tiempo mínimo entre golpes. |
feel.tickMs / levelsMs / meterMs | number | 50 / 100 / 250 | Pasada de vibración, envío del nivel de graves, envío del medidor de dB. |
electric
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
enabled | boolean | true | En vivo. false = corriente infinita. |
batteryAh / alternatorA | number | 60.0 / 110.0 | Batería y alternador de serie. |
idleDraw / factoryWatts | number | 3.0 / 60 | Amperios de la radio sin música, vatios de los altavoces de fábrica. |
efficiency / musicLoad | number | 0.75 / 0.2 | Rendimiento de los amplificadores, fracción media de la potencia RMS que pide la música. |
drainMultiplier | number | 1.0 | En vivo. Rapidez de descarga y carga (1 = real, 2 = el doble de rápido). |
wireOhm / batteryOhm | number | 0.0025 / 0.004 | Resistencia del cableado y de la batería (caída = amperios × ohmios). |
restFull / restEmpty / charging | number | 12.7 / 11.6 / 14.2 | Voltios en reposo llena y vacía, y cargando. |
sagFrom / cutVolts | number | 11.8 / 10.5 | Voltios a los que se nota la caída, y a los que se corta la radio. |
resumeSoc | number | 0.15 | Carga para volver a encender con el motor apagado. |
hitVolts / capPerFarad | number | 3.0 / 0.3 | Bajón por golpe que apaga las luces del todo, y parte que quita cada faradio. |
effects | tabla | dropDb 6, bassDb 8, drive 4, lights 0.75 | Efectos a caída máxima. lights es en vivo. |
defaults | tabla | por tipo | Valores de las piezas eléctricas sin campo electric propio en data/components.lua (un alternador sin valor propio da 250 A). |
amps.enabled | boolean | true | Los altavoces necesitan vatios de amplificador. |
amps.builtin / maxDropDb / drive | 600 / 12.0 / 3.0 | Vatios de la radio sola, dB que se pierden sin amplificador, distorsión sin amplificador. | |
fuse.margin / peakShare / tripSec | 1.2 / 0.5 / 4.0 | Margen de sobrecarga, parte de los picos que cuenta, segundos de sobrecarga hasta fundirse. | |
fuse.item | string/false | 'chipeo_fuse' | Ítem que se gasta al reponerlo; false = gratis. |
medusa
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
pairRange / controlRange | number | 15.0 / 4.0 | Metros a un coche para emparejar, y metros a una medusa para manejarla. |
maxPerPlayer | number | 3 | Medusas fuera del inventario por jugador. |
placeRange / pickupRange / targetDistance / panelRange | number | 6.0 / 3.0 / 2.5 / 3.0 | Distancias para dejar, coger, ver las opciones de target y enseñar el panel de la esquina. |
cursorKey | string | 'LMENU' | Tecla que, mantenida, deja usar el panel sin dejar de andar (Alt izquierdo). |
cooldownMs / tickMs / nearbyMs | number | 800 / 1000 / 5000 | Espera entre acciones, revisiones del cable, refresco de coches cercanos. |
cable.enabled | boolean | true | Dibuja el cable de la medusa al maletero. |
cable.length / reconnect | number | 14.0 / 8.0 | Metros de cable, y distancia a la que se vuelve a enchufar. |
cable.vehicleBone / rearHeight | 'boot' / 0.45 | Punto final en el coche, y altura de respaldo. | |
cable.slack / taut / range | number | 0.5 / 0.05 / 60.0 | Holgura, holgura mínima con el cable al máximo, alcance de dibujo. |
cable.rope | tabla | trenzado negro | custom = true usa la textura trenzada de los assets; false usa la cuerda del juego defaultType. |
carry | tabla | Toques de mandos al azar, suavizado, fundidos, alcance de la animación, animación de respaldo. | |
putdown / pickup | tabla | 1600 ms | Duración y animación de respaldo. |
pole.maxPerPlayer | number | 2 | Trípodes por jugador. |
pole.placeRange / moveRange / maxSlope | number | 4.0 / 8.0 / 30.0 | Alcance al colocar, cuánto se puede mover un trípode ya puesto, inclinación máxima del suelo. |
pole.keys | tabla | E, Retroceso, rueda, flechas | Controles al colocar. |
mounts y anim
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
mounts.maxPerVehicle | number | 24 | Piezas de sonido por coche. Las eléctricas cuentan aparte. limits.total en data/vehicles.lua lo cambia por modelo. |
mounts.maxElectric | number | 10 | Piezas eléctricas por coche: amplificadores, baterías, condensadores, portafusibles y alternador. limits.electric lo cambia por modelo. |
mounts.specialMax | number | 60 | Piezas que se dibujan en un coche con Proyecto especial, que no tiene topes por clase ni total. |
mounts.internalMs | number | 5000 | Barra de progreso al instalar una pieza interna (alternador) sin trabajo del taller (0 = sin barra). |
mounts.limits | tabla | sub 6, mid 6, high 6, tower 2, box 2, gate_wall 1, roof_wall 1, cable 1, amp 4, battery 4, capacitor 2, fuse 4, alternator 1 | Piezas por clase. Un modelo puede cambiar cualquiera en data/vehicles.lua. |
mounts.wiring.enabled / range | true / 20.0 | Cables visibles entre piezas eléctricas, y alcance de dibujo. | |
mounts.wiring.perVehicle / total / slack / radius | 8 / 24 / 1.08 / 0.008 | Topes de cables, holgura y grosor. | |
mounts.wiring.diffuse / diffuseNeg / normal | string | trenzado rojo / negro | Texturas de los cables positivo y negativo. |
mounts.editRange / renderRange | number | 6.0 / 80.0 | Metros para abrir el taller, y alcance de dibujo de las piezas. |
mounts.offsetLimit / envelope | 1.5 / 1.6 × 6.5 × 3.5 | Cuánto puede salirse una pieza del coche. | |
mounts.targetDistance / ghostAlpha | 2.5 / 150 | Distancia del target «Taller de sonido», opacidad del fantasma. | |
mounts.removeReturn | string | 'owner' | A dónde va una pieza quitada: 'owner' = al dueño del coche si está cerca y tiene sitio; si no, a quien la quita · 'remover' = siempre a quien la quita. |
mounts.removeOwnerRange | number | 15.0 | Metros del dueño al coche para removeReturn = 'owner'. |
mounts.openCooldownMs | number | 4500 | Espera entre abrir y cerrar una pieza sin duración de animación. |
mounts.auto.default | boolean | true | Los coches empiezan con el Automático encendido. |
mounts.auto.closeDelayMs / pauseCloseMs | number | 8000 / 60000 | Esperas para cerrar sin música y en pausa (0 = la pausa nunca cierra). |
mounts.auto.openMaxSpeed / closeSpeed / speed | 3.0 / 14.0 / true | Reglas de velocidad en m/s; speed = false = solo decide la música. | |
anim.range / maxAnimated | number | 40.0 / 16 | Alcance de la animación de conos y piezas animadas a la vez. |
anim.smooth / minLevel / fallbackHz / waveHz | 0.35 / 0.04 / 2.0 / 9.0 | Suavizado del golpe, nivel mínimo de graves, latido de reserva, vaivén del cono. |
mechanic y admin
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
mechanic.enabled | boolean | true | Reparación del equipo frito. |
mechanic.timeMs / range | number | 30000 / 5.0 | Duración y distancia de la reparación. |
mechanic.jobs | tabla | { mechanic = true, tuner = true, lscustoms = true, taller_chipeo = true } | Trabajos que reparan y que pueden montar piezas en cualquier coche. Añade tus trabajos de mecánico. |
mechanic.requirements | tabla | 4 materiales | { item, amount, label } que se gastan en cada reparación. |
admin.permission | string | 'admin' | Permiso de Cuxial Bridge para los comandos de staff, el panel y el modo pruebas. |
admin.nearbyRadius | number | 30.0 | Radio de /removechipeo. |
admin.blockMinutes | number | 15 | Minutos que un dueño bloqueado desde el panel no puede poner música. |
admin.logSize / refreshMs / gotoLift | 50 / 4000 / 1.0 | Entradas del registro, refresco del panel, altura al teletransportarse. | |
admin.settings | tabla | Mínimo, máximo y paso de los ajustes numéricos en vivo. | |
admin.specialRange | number | 8.0 | Metros al coche más cercano cuando se activa un Proyecto especial sin matrícula. |
shop
El negocio del taller: mostrador, bancos de trabajo, bahías, oficina, órdenes de trabajo, facturas y menú de jefe. Cómo se usa en juego: Negocio del taller.
El precio de venta, la moneda, la etiqueta y el precio de instalación de cada artículo, el precio de reparación y las monedas los pone el staff en el Panel de staff. Los valores de abajo y los de data/shop.lua son los de fábrica, de los que parte el panel.
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
enabled | boolean | true | false = tienda, puntos y taller apagados. |
job.enabled | boolean | true | true = trabajo del taller con bancos, órdenes, facturas y jefe · false = solo mostrador, y cada jugador instala sus propios ítems. |
job.name / label / type | string | 'taller_chipeo' / nombre del taller / 'mechanic' | Trabajo del taller. Cuxial Chipeo no lo crea: pégalo desde install/jobs/ en tu framework. Sin él, el mostrador sigue funcionando. |
job.defaultDuty / offDutyPay | boolean | false / false | De servicio al conectarse (si no, se ficha en la oficina), y sueldo fuera de servicio. |
job.grades | tabla | 3 grados | Grados 0, 1 y 2 con name, payment e isboss. Mantenlos iguales que en install/jobs/. |
ranks | tabla | por grado | Por grado: install ('all' o una tabla de tipos de pieza), repair, charge (facturar) y boss (menú de jefe). Por defecto el grado 0 instala altavoces, cajas y conectores; los grados 1 y 2 instalan todo, reparan y facturan; solo el grado 2 abre el menú de jefe. |
bayOnly | boolean | true | true = los mecánicos solo instalan en coches ajenos dentro de una bahía. |
bayOverridesOwner / ownerRange | true / 15.0 | true = en bahía y de servicio no hace falta el dueño · false = el dueño debe estar a ownerRange metros. | |
installMs | number | 6000 | Barra de progreso al confirmar una instalación con trabajo (0 = sin barra). |
installGraceMs / installExpireMs | number | 800 / 60000 | Tolerancia de lag de esa barra, y cuánto vale una vez acabada. |
currency | string | 'bank' | Moneda (una key de currencies) de un artículo sin moneda propia. |
currencies | tabla | cash, bank, coins (VIP) | Monedas de fábrica: key, label, account (cuenta de dinero del framework) y vip. Las monedas VIP se consumen y nunca van a la sociedad. |
income.society | string/false | 'taller_chipeo' | Cuenta de sociedad que recibe las ventas del mostrador en monedas normales y las facturas pagadas (solo con trabajo). false = a ningún sitio. |
prices.install | tabla | default 250 + por tipo | Precio de instalación de fábrica por tipo de pieza (sub, mid, tower, gate_wall…). |
prices.repair | number | 1500 | Precio de fábrica de una reparación que entra en la orden. |
bench.pickMs / pickExpireMs | number | 2500 / 300000 | Barra de progreso al coger la pieza en el banco, y cuánto vale la pieza cogida antes de instalarla. |
bench.markRange | number | 30.0 | Metros a los que se marcan los bancos mientras el mecánico tiene que ir a uno. |
carry.cancelKey | string | 'X' | Tecla para soltar la pieza (cada jugador puede cambiarla). |
carry.maxDistance / scanRange | number | 40.0 / 6.0 | Metros al coche a partir de los que la pieza se suelta, y metros a los que aparece Instalar en un coche. |
carry.anim / box / self | tabla | Animación de llevar, modelo de la caja embalada con su hueso y ajuste, y hueso y ajuste por defecto de una pieza que se lleva tal cual. | |
carry.types / components / offsets | tabla | Qué se lleva por tipo de pieza ('self' o 'box'), excepciones por pieza y ajustes opcionales por tipo. | |
cart.maxLines / maxQty | number | 20 / 10 | Líneas por compra y unidades por línea. |
points.targetDistance / spawnRange / serverMargin | number | 2.0 / 40.0 / 2.5 | Distancia del target de cada punto, distancia a la que se crean los targets y tolerancia del servidor. |
points.bayRadius | number | 4.0 | Radio de una bahía nueva. |
invoice.range / ownerRange | number | 5.0 / 30.0 | Metros del mecánico a un cliente elegido, y del dueño al coche para facturarle directamente. |
invoice.expireMs | number | 90000 | Tiempo que tiene el cliente para pagar. |
invoice.accounts | tabla | { 'bank', 'cash' } | Monedas normales con las que puede pagar el cliente. |
orders.maxLines / keepDays | number | 40 / 90 | Líneas por orden, y días que se guardan las órdenes pagadas y sus facturas. |
boss.statsDays / hireRange / recent | number | 14 / 5.0 / 20 | Días que cubren las gráficas, metros para contratar a un jugador cercano y facturas impagadas que se listan. |
log.keepDays / recent | number | 30 / 100 | Días que se guardan las ventas del mostrador, y filas que ve el staff en el panel. |
removeRange | number | 12.0 | Metros a cualquier punto del taller a los que el jefe puede quitar piezas fuera de una bahía. |
seed | boolean | true | true = crea los puntos de data/shop.lua si no hay ninguno. |
blip | tabla | enabled, sprite 72, color 1, scale 0.8 | Icono en el mapa sobre el mostrador. |
Si actualizas desde una versión anterior, sustituye el bloque shop entero por el nuevo. Estas opciones ya no existen: storage, takeMs, ranks[].storage, boss.prices, boss.stock, boss.currency, boss.priceMin, boss.priceMax, invoice.enabled, invoice.max y los antiguos carry.model, bone, pos, rot. mounts.removeReturn = 'stock' ahora funciona como 'remover'.
library
| Opción | Tipo | Por defecto | Qué hace |
|---|---|---|---|
autoNext | boolean | true | true = repetir todas al empezar una sesión; false = para al final de la cola. |
fadeSec | number | 3 | Fundido por defecto (0–8). |
normalize | boolean | true | Igualar el volumen de las canciones directas por defecto. |
normalizeTarget / normalizeMaxDb | number | -14.0 / 6.0 | Sonoridad a la que se igualan las canciones (LUFS aproximados; más bajo es más suave), y dB que como mucho se sube o se baja una canción. |
prevRestartSec | number | 4 | Pasado esto, «anterior» vuelve al inicio de la canción. |
queueMax | number | 200 | Canciones en la cola. |
maxNameLength / maxUrlLength | number | 60 / 500 | Largo del nombre y del enlace. |
allowedExtensions | tabla | mp3 wav ogg m4a aac flac opus webm | Archivos de audio directos aceptados. |
allowedHosts | tabla | servicios de alojamiento habituales | Dominios permitidos para enlaces directos, con sus subdominios: Discord, Catbox, Dropbox, GitHub raw y archive.org por defecto. Vacía = cualquier dominio. YouTube, SoundCloud y Spotify no dependen de ella. |
platforms.youtube / soundcloud / spotify | boolean | true | En vivo. Aceptar enlaces de cada plataforma. Spotify necesita la clave de YouTube. |
platformEffects | boolean | false | En vivo. Ecualizador, bajos y 3D en YouTube y SoundCloud para quien lo active. |
streamerForced | boolean | false | En vivo. Modo streamer para todos. |
streamer.unknown | string | 'licensed' | Sin respuesta de YouTube: 'licensed' silencia, 'free' suena. |
streamer.soundcloud / spotify / direct | string | 'unknown' / 'licensed' / 'free' | Cómo cuenta cada fuente para el modo streamer. |
streamer.replacement | string/false | false | Enlace directo a una pista libre que suena en su lugar, o silencio. |
streamer.cacheSec | number | 86400 | Cuánto se recuerda la licencia de un vídeo. |
playlist.enabled | boolean | true | Importar listas de YouTube (necesita la clave). |
playlist.maxTracks / maxPages / maxDurationSec | number | 100 / 6 / 0 | Canciones por importación, páginas de 50, canción más larga (0 = sin tope). |
playlist.dailyUnits | number | 3000 | Unidades de cuota de YouTube al día para importar (0 = sin tope). |
playlist.cacheSec / cacheMax / maxConcurrent / holdSec / queueExtraMax | 600 / 30 / 2 / 300 / 100 | Caché, importaciones a la vez, tiempo para elegir cola o USB, canciones de fuera del USB en una cola. | |
lists.max / maxSongs / nameLength / historyMax | number | 12 / 200 / 32 / 30 | Listas por USB, canciones por lista, largo del nombre, canciones recientes. |
waveBars | number | 96 | Barras de la forma de onda guardada. |
resolve.keyConvar | string | 'chipeo_youtube_key' | Convar con la clave de YouTube. |
resolve.timeoutMs / cacheSec / cacheMax / maxInflight | 6000 / 21600 / 500 / 8 | Lectura de enlaces. | |
resolve.searchResults / durationSlackSec | number | 5 / 12 | Cómo se empareja una canción de Spotify con un vídeo de YouTube. |
Archivos de datos
| Archivo | Qué contiene |
|---|---|
data/components.lua | Catálogo de piezas: ítem, modelo, tipo, punto de montaje, potencia (RMS y pico), sensibilidad y acústica. Cambia aquí ítems o potencias. |
data/medusas.lua | Ítem → modelo, tamaño y color del LED de la medusa, y el ítem del trípode. Añade una entrada para vender una medusa con otro color de LED (red, blue, white). |
data/vehicles.lua | blacklist de modelos que no admiten radio, y por modelo: distance, volume, huesos de fuego y de chispas, spl (dB del equipo de serie), openBed (caja abierta: las piezas de atrás no se ahogan como en un maletero), limits (total, electric o cualquier clase) y mounts (dónde aparece cada pieza al colocarla, por hueco o por pieza, con bone, offset y rot). Los modelos incluidos son ejemplos. |
data/shop.lua | Catálogo de fábrica del mostrador (item, categoría, price, y opcionales currency, label e install) y los puntos que se crean la primera vez (shop, bench, bay, boss, colocados en el mapa del taller). El staff edita los artículos y los puntos desde el panel. |
data/filters.lua | Perfiles de los filtros de ambiente (paso bajo, paso alto, reverberación) y las reglas que los aplican: interiores, salas, túneles, bajo el agua, otro coche, distancia, lluvia. |
Cambios habituales
install = {
ownerOnly = true,
unmountOwnerOnly = true,
-- ...
},