Skip to content

Configuración

Cada bloque de shared/config.lua de Cuxial Abastecimiento y los archivos de datos editables.

Los ajustes generales están en shared/config.lua. Las líneas, los productos, las centrales, los supermercados, las furgonetas y las tareas diarias están en data/. Reinicia el recurso después de editar un archivo.

La mayoría de los datos del mundo también se editan en el juego con /supplyadmin. Lo que guardas ahí se almacena en la base de datos y manda sobre los archivos: líneas, productos, centrales, tiendas, supermercados, furgonetas, posiciones de carga, y los ajustes de posición del npc, market, orders, reward y trade. Para volver a los valores del archivo, restaura la entrada desde el editor.

Las coordenadas, la posición del NPC, las líneas, los trabajos mayoristas y los nombres de ítems que vienen en los archivos son ejemplos. Cámbialos para tu servidor.

General ​

OpciónTipoPor defectoQué hace
debugbooleanfalseMuestra trazas de depuración en la consola. También se activa con setr cuxial_supply_debug 1. El comando fast solo funciona con la depuración activada.
ui.accentstringconfigurableColor de acento de la interfaz, en hexadecimal.
ui.currency.symbolstring'$'Símbolo de moneda que muestra la interfaz.
ui.currency.localestring'en-US'Formato de los importes ('en-US', 'es-ES'...).
logs.convarstring'cuxial_supply_webhook'Nombre de la convar con el webhook de Discord. Con la convar vacía no se envía nada.
admin.auditDaysnumber60Días que se guardan las filas de auditoría.
admin.permissionstring'admin'Permiso del framework del staff del trabajo. Consulta Comandos.
accountstring'cash'Cuenta donde se cobran las partidas y de la que sale la fianza de la furgoneta ('cash', 'bank').
jobstring | table'all'Quién puede hacer el trabajo de abastecimiento. 'all' para todos, un nombre de trabajo o una lista de trabajos.

NPC e interacción ​

Bloque npc.

OpciónTipoPor defectoQué hace
coordsvector4ejemploPosición y rumbo del NPC del trabajo.
vanSpawnsvector4[]ejemploSalidas comunes de la furgoneta junto al NPC. Una línea sin salida propia usa la primera libre.
modelstring'a_m_m_farmer_01'Modelo del ped.
distancenumber2.0Metros desde los que está disponible la opción de interacción.
menuDistancenumber6.0El servidor no abre el panel más lejos de esto.
spawnDistancenumber60.0El NPC solo existe en un cliente dentro de este radio.
bliptablever archivoenabled, sprite, color, scale del blip del trabajo.

Bloque target.

OpciónTipoPor defectoQué hace
distancenumber2.0Metros de las opciones de interacción.
showDistancenumber40.0Distancia a la que se dibujan los marcadores flotantes sobre los puntos de trabajo.
iconstablever archivoIcono de Font Awesome de cada opción de interacción.
markertablever archivoMarcador flotante: type, scale, height, color ({ r, g, b, a }), bob, rotate.

Acciones de trabajo ​

Bloque work. Cada acción de una línea tiene una distancia máxima que comprueba el servidor y una barra de progreso.

OpciónTipoPor defectoQué hace
distance.<acción>numberde 2.0 a 5.5Metros al punto de trabajo para catch, milk, slaughter, pack, bottle, plant, water, harvest, nest, pickup.
ms.<acción>numberde 2500 a 7000Duración de la barra de progreso de cada acción.
slackMsnumber500Margen sobre el tiempo mínimo de cada acción.
animstablever archivoAnimación (dict, clip, flag) o scenario de cada acción. drop es la animación de dejar algo.
propstablever archivoProps durante la barra: en la mano (model, bone, pos, rot), en el suelo delante (ground) o sobre la mesa delante (front, z).
fx.watertablever archivoPartículas de agua al regar.

Las líneas en el mundo ​

OpciónTipoPor defectoQué hace
carrytablever archivoLlevar en las manos: flag de la animación, distancia a la que se ven las cargas de los compañeros (others), controles bloqueados (disable) y animación y posición de box, crate, sack y hen.
animals.catchDistancenumber5.5Metros entre el jugador y la gallina para atraparla. Las gallinas se atrapan lanzándose.
animals.corralMarginnumber3.0Metros fuera del corral que todavía cuentan.
animals.fleeDistance / fleeMs / restMsnumber3.0 / 2200 / 2500Las gallinas huyen al acercarse durante fleeMs y luego descansan.
animals.spawnDistancenumber90.0Radio en el que se crean los animales.
animals.cowScenariostring'WORLD_COW_GRAZING'Escenario de las vacas.
pickup.stacktablever archivoPila de cajas que se dibuja en el almacén de importación.
stations.vanDistancenumber90.0Distancia máxima entre la furgoneta y la mesa de procesado.
stations.propstable{ bottle = 'prop_table_03' }Mesa que se crea por tipo de estación. Sin entrada, el mapa ya tiene una.
plots.growMsnumber90000Tiempo de crecimiento tras regar. Una línea puede tener su propio growMs.
plots.soil / sprout / cropstablever archivoProps de la tierra, el brote y cada cultivo maduro.
neststablever archivoProp del nido, distancia de aparición y marcador.

Furgoneta ​

Bloque van. Los modelos, fianzas y huecos de cada furgoneta están en data/vehicles.lua.

OpciónTipoPor defectoQué hace
rearDistancenumber2.5Metros a la puerta trasera para cargar y descargar.
minHealthnumber400.0Salud mínima de motor y carrocería para recuperar la fianza.
platestring'SUPL'Prefijo de la matrícula.
spawnFreeRadiusnumber6.0Metros que tienen que estar libres de vehículos alrededor de la salida.
spawnTimeoutMsnumber5000Tiempo que espera el servidor a que aparezca la furgoneta antes de cancelar el inicio.
fuelnumber100.0Combustible al aparecer.
keysbooleantrueDa las llaves a través de cuxial_garages cuando ese recurso está en marcha.
bone / anchor / propDistancever archivoDónde se enganchan las cajas y desde qué distancia se dibujan.

Bloque blips: stage, van, central, plant, warehouse y deliver, cada uno con sprite, color y scale.

Tripulación y partida ​

OpciónTipoPor defectoQué hace
crew.maxPlayersnumber4Tamaño máximo de la tripulación.
crew.inviteDistancenumber8.0Metros entre quien invita y el invitado.
crew.inviteSecondsnumber60Segundos hasta que caduca una invitación.
crew.reconnectSecondsnumber180Segundos que se guarda el puesto a un miembro que se desconecta durante una partida.
crew.splitRewardsbooleantruePermite al dueño de la tripulación repartir el dinero por porcentaje.
run.cooldownHoursnumber0Horas que un jugador espera entre partidas. 0 = sin espera.
run.exclusiveRegionsbooleantruetrue = una sola tripulación por línea a la vez.

Entrega ​

Bloque deliver.

OpciónTipoPor defectoQué hace
radiusnumber3.0Metros al encargado de la central para firmar el albarán.
palletDistancenumber3.0Metros entre el jugador y el palé al descargar.
palletModelstring | false'prop_pallet_02a'Prop del palé. false si el mapa ya tiene uno.
stacktablever archivoCómo se apilan las cajas en el palé.
dockRing / ringColor8.0 / ver archivoTamaño y color del aro del muelle.
showDistancenumber80.0Distancia a la que se dibujan el muelle, el palé y la pila.
demand.high / demand.lownumber0.10 / -0.10Umbrales del indicador de demanda del selector de destino: por encima de high es demanda alta, por debajo de low es saturado.

Guía de entrega ​

Bloque guide. La línea «Siguiente paso» del HUD y los marcadores que la acompañan.

OpciónTipoPor defectoQué hace
enabledbooleantrueMuestra el siguiente paso en el HUD.
routebooleantrueRuta GPS a la furgoneta mientras se lleva algo en las manos.
showDistancenumber250.0Distancia a la que se ve el aro del muelle durante la entrega.
tickMsnumber500Cada cuánto se actualiza la guía.
markertablever archivoMarcador sobre la puerta trasera de la furgoneta y sobre el hueco que hay que reponer: type, scale, color, bob, rotate, distance (metros a los que se dibuja), height (sobre la furgoneta) y slotHeight (sobre el hueco).

Reparto ​

Bloque reward. El dinero de una partida es el valor de la carga, no una cantidad fija.

OpciónTipoPor defectoQué hace
modestring'split''split': el valor × teamMultiplier se divide entre la tripulación. 'team': cada miembro cobra el valor × teamMultiplier. 'flat': cada miembro cobra el valor entero. Quien juega solo cobra siempre el valor entero.
teamMultipliernumber2.0Multiplicador que se aplica con dos o más miembros. De 1 a 3 en el editor.
requireScorebooleantruetrue = los miembros que no hicieron ninguna tarea no cobran ni cuentan para el grupo.
levelBonusnumber0.2Fracción extra del valor por cada nivel del dueño de la tripulación por encima del 1. De 0 a 0,2 en el editor.
itemstable{}Ítems que se dan al cobrar. Cada entrada: { item = 'nombre', count = 1, chance = 50 }.

Centrales de abastos ​

Bloque market.

OpciónTipoPor defectoQué hace
tickMinutesnumber10Minutos entre actualizaciones del mercado.
simulatebooleantrueConsumo simulado del stock en cada actualización.
curvenumber1.6Forma de la curva de precio: lo rápido que baja el precio al llenarse el stock.
resaleMarkupnumber1.35Margen de la central cuando vende.
trendTicksnumber3Actualizaciones que se usan para mostrar la tendencia del precio.
initialFillnumber0.5Stock de una central nueva, como fracción de su tope.
historyHours / historyPointsnumber48 / 36Longitud del historial de precios.
ledgerDaysnumber30Días que se guarda el libro de movimientos.
terminalDistancenumber3.0Metros a la terminal.
jittertable{ min = 0.8, max = 1.2 }Variación aleatoria del consumo.
npcDistance / npcScenario60.0 / 'WORLD_HUMAN_CLIPBOARD'Distancia de aparición y escenario del encargado de la central.

Bloque orders: pedidos automáticos con bonus.

OpciónTipoPor defectoQué hace
thresholdnumber0.35Un producto por debajo de este llenado puede recibir un pedido.
targetFillnumber0.75Llenado que busca alcanzar el pedido.
chancenumber0.35Probabilidad de pedido por actualización.
maxOpennumber3Pedidos abiertos por central.
min / maxnumber10 / 60Cajas por pedido.
bonustable{ min = 0.15, max = 0.40 }Pago extra de las cajas que cubren el pedido.
minutesnumber90Duración de un pedido.
staffMinutestable{ min = 10, max = 240 }Rango de duración de los pedidos que crea el staff.

Venta y mayoristas ​

Bloque trade.

OpciónTipoPor defectoQué hace
wholesaleMarkupnumber1.15Margen sobre el precio de compra de la central para los trabajos mayoristas en su terminal.
centralMarkupnumber1.35Margen para el resto en la terminal de una central.
retailMarkupnumber1.60Margen de las tiendas sin margen propio.
maxCratesnumber50Cajas por compra en una central.
wholesaletableejemploTrabajos que compran a precio mayorista: { job = 'nombre', grade = 0 } por trabajo. También ven el punto de venta al por mayor del supermercado.
categoriestable{}Categorías de producto extra: { id, label, icon }.
shopDistance / shopModel / shopBlipver archivoDistancia, ped y blip de una tienda nueva.
newProduct / newImporttablever archivoValores por defecto de un producto y de una línea de importación creados en el editor.
limitstable{ open = 6, quote = 20, buy = 6 }Límites de peticiones por jugador.
blockedItemstablever archivoÍtems que ningún producto puede dar. Un * al final vale como prefijo.

Supermercado ​

Bloque store. Cada supermercado se define en data/stores.lua; este bloque tiene las reglas comunes a todos.

OpciónTipoPor defectoQué hace
job / societystring'supermarket'Trabajo y cuenta de empresa de un supermercado creado en el editor. El incluido lleva los suyos en data/stores.lua.
gradestable{ restock = 0, cashier = 1, manager = 2, boss = 3 }Grado mínimo de cada puesto. Un grado de jefe del framework vale como encargado y como jefe.
dutybooleantruetrue = reponer y cobrar exige estar de servicio.
slotCratesnumber6Cajas por hueco de palé del almacén.
shelfCapacitynumber12Unidades por defecto de un hueco del lineal.
maxTakenumber5Unidades por toma de una balda.
maxBasketnumber60Unidades por cesta.
distancetablever archivoMetros que comprueba el servidor para huecos, cajas registradoras, clientes, autocobros, expositores de cestas y neveras.
restockMsnumber1500Tiempo mínimo entre dos reposiciones.
zoneMarginnumber6.0Margen de la zona de la tienda cuando se calcula a partir de los huecos.
leavetable{ alarm = true, restock = true, checkMs = 2000 }Salir con la cesta sin pagar: alarma al personal, productos de vuelta a la balda, intervalo de comprobación.
chargeSecondsnumber60Segundos que vale un cobro del cajero.
unitMarkupnumber1.6Precio por defecto de una unidad: precio base de la caja × unitMarkup / unidades por caja.
demandtable{ min = 0.75, max = 1.35, curve = 1.0, retailCap = 0.9 }Lo que paga la tienda por caja entregada: precio base × un multiplicador entre min (tienda llena) y max (tienda vacía), nunca por encima de retailCap × el precio de venta por defecto de la caja. El precio buy de un producto en la tienda manda sobre esto.
recentnumber10Ventas recientes que muestra el panel de gestión.
streamDistancenumber80.0Distancia a la que llegan a un cliente los cambios de los huecos.
limitstablever archivoLímites de peticiones por acción.
boxMsnumber1200Barra de progreso al coger una caja del almacén.
closeMargin / exitWarnnumber2.0 / 3.0Margen antes de que se cierre una caja al alejarse, y metros antes de la salida a los que aparece el aviso de cesta sin pagar.
alarmtable{ seconds = 60, blip = ... }Duración y blip de la alarma de robo.
animstablever archivoAnimaciones al coger una caja, reponer y coger un producto.

Cajas ​

Bloque store.till. Cajas con pantalla sobre el cristal del terminal.

OpciónTipoPor defectoQué hace
enabledbooleantruefalse = puntos de caja sencillos con un panel en pantalla en lugar de las pantallas del terminal.
stafftable{ grade = 'cashier', zone = true }Quién cuenta como cajero de servicio: puesto mínimo y estar dentro de la tienda.
selfWhenStaffedbooleanfalsetrue = los clientes pueden cobrarse solos aunque haya un cajero en la tienda.
distancetable{ operator = 2.0, customer = 2.5, margin = 1.5 }Metros al puesto del cajero y al del cliente.
scanMsnumber250Tiempo mínimo entre dos productos escaneados.
callSecondsnumber20Cada cuánto se avisa al personal de un cliente esperando.
commissionnumber0.0Fracción de la venta que la tienda paga al cajero.
renderDistance / maxDuis / ttlMs14.0 / 4 / 15000Distancia y número de pantallas que se dibujan a la vez.
camera / paidSeconds / animver archivoCámara frente a la pantalla, segundos que se ve el ticket, gestos.
adjusttable{}Posición fina del cristal de cada pantalla, tal como la imprime /supplytill.

Venta al por mayor ​

Bloque store.wholesale.

OpciónTipoPor defectoQué hace
enabledbooleantruefalse = sin venta al por mayor.
factornumber0.85Precio de la caja = precio de balda de la unidad × unidades por caja × factor.
maxCratesnumber20Cajas por compra.
distancenumber3.0Metros al encargado del almacén.
modelstring's_m_m_dockwork_01'Ped por defecto del encargado.
pointstableejemploPosición del encargado por tienda. Se mueve por tienda en el editor.

Cesta ​

Bloque store.basket.

OpciónTipoPor defectoQué hace
requiredbooleantrueHace falta una cesta del expositor para coger de las baldas (solo en tiendas con expositores).
keepAfterPaybooleanfalseSeguir con la cesta después de pagar.
modelstablever archivoModelos de cesta por orden de preferencia: se usa el primero que exista en el juego.
showtablever archivoProductos que se dibujan dentro de la cesta.
others / ticknumber30.0 / 500Distancia a la que se dibujan las cestas de otros jugadores e intervalo de actualización.
stand / standstablever archivoPila de cestas de cada expositor y posiciones de los expositores por tienda.
droptable{ vehicle = true, dead = true }La cesta se suelta al subir a un vehículo o al morir; sus productos vuelven a la balda.

Huecos, neveras y props ​

OpciónTipoPor defectoQué hace
slotCategoriestablever archivoCategorías de producto que admite cada tipo de hueco (y cada sección de balda). Sin entrada, cualquiera.
interacttablever archivoAlcance de las opciones del lineal y del almacén, cuántos huecos cercanos tienen opción y qué muestra la etiqueta (image, price).
fridgetablever archivoNeveras con puerta animada: distancia de aproximación, tiempo que una puerta queda ocupada, colocación fina del jugador, posición en la mano, puertas activadas o desactivadas por nevera.
zonestablever archivoCarga de props por zonas: al acercarse a la tienda se crean todos sus props por tandas, hasta max por tienda. enabled = false los carga por distancia.
propstablever archivoModelos de cada producto, palés y carga del almacén, colisión, distancias y límites, giro por modelo (yaw) y modelos de arcón lleno y vacío.

Editor ​

Bloque editor: pasos de movimiento y giro del fantasma de colocación (normal y con Mayús), límites del radio del corral, repetición de tecla, opacidad del fantasma, modelos de reserva y las teclas para añadir (keys.insert, por defecto Insert) y quitar (keys.delete, por defecto Supr) puntos.

Perfil y panel ​

OpciónTipoPor defectoQué hace
outfit.modestring'none'Conjunto de ropa de data/outfits.lua que se pone durante la partida. 'none' deja la ropa del jugador.
leaderboard.size / cacheSecondsnumber10 / 60Filas del ranking y tiempo de caché.
history.sizenumber10Partidas del historial personal.
profile.flushMsnumber30000Cada cuánto se guardan la XP y el progreso diario.
tips.secondsnumber12Segundos que se ve una pista de primera vez.
finish.secondsnumber15Segundos que se ve el resumen al terminar la partida.

Comandos y teclas ​

OpciónTipoPor defectoQué hace
commands.<id>.namestring | falsever ComandosNombre del comando. false lo desactiva.
commands.<id>.restrictedstring'group.admin' en list, close, fast, adminGrupo ACE que puede usar el comando.
keystablever ComandosTeclas por defecto. Cada jugador puede reasignarlas en los ajustes del juego.

Archivos de datos ​

ArchivoQué editas ahí
data/regions.luaLíneas de producción: tipo, nivel mínimo, XP, salida de la furgoneta, tareas y cantidades, animales, parcelas y cultivos, estaciones, nidos, almacén, productos y rendimiento.
data/products.luaCategorías y productos: precios, tope, consumo, prop de la caja y cómo se lleva, ítem del inventario, unidades por caja, origen.
data/stores.luaSupermercados: trabajo, cuenta de empresa, factores de precio, muelle, palé, zona de la tienda, zonas de props, huecos de almacén, baldas, cajas, precios, límites y formas de pago.
data/centrals.luaCentrales: terminal, muelle, palé, zona, factores de precio, productos que admite. Todas vienen con enabled = false.
data/vehicles.luaFurgonetas por nivel: modelo, nivel mínimo, fianza, huecos de cajas y de gallinas.
data/daily.luaTareas diarias: runs, money, team, crates (cajas descargadas en un palé) y hens (gallinas metidas en la furgoneta).
data/levels.luaXP necesaria para cada nivel.
data/guide.luaTarjetas de la pestaña de guía.
data/outfits.luaRopa de trabajo por modo y sexo.
data/seed/Huecos de las baldas, neveras y cajas del supermercado incluido. Se copian a la base de datos cuando cambia el archivo. No borres esta carpeta.

Productos ​

Cada entrada de list en data/products.lua:

CampoQué hace
idClave estable que se guarda en la base de datos. No la reutilices ni la renombres.
label / category / imageClave de idioma con el nombre, id de categoría e imagen que muestra la interfaz.
unit'crate' o 'sack'.
basePrice / minPrice / maxPricePrecio de referencia de una caja y el rango que paga una central.
capStock de referencia por central (× el capFactor de la central).
consume.perHourConsumo simulado.
item / unitsÍtem del inventario y unidades por caja. Sin item el producto no se vende.
origin'production' (líneas de producción), 'import' (líneas de importación) o 'auto' (lo repone la actualización del mercado).
crateProp de la caja y cómo se lleva (box, crate, sack).

Supermercado ​

Cada entrada de data/stores.lua:

CampoQué hace
idClave estable. No la reutilices.
labelClave de idioma o texto. La tienda incluida es supply_store_paleto, «Supermarket · Paleto Bay».
job / societyTrabajo del framework del personal y cuenta de empresa de cuxial_banking. Ambos 'supermarket' en la tienda incluida.
priceFactor / capFactorMultiplicador de lo que paga por caja y del stock de referencia de cada producto.
dock / palletDonde aparca la furgoneta y donde se dejan las cajas y se firma el albarán.
zone / zonesZona de la tienda (salir de ella con la cesta cuenta como salir sin pagar) y las zonas de carga de props.
backroom / shelves / registers / selfcheckoutHuecos del almacén, huecos del lineal y puntos de caja. La tienda incluida los toma de data/seed/.
acceptsProductos que admite. Sin él, todos los productos con ítem.
buyPrecio fijo por caja que paga a los proveedores por un producto.
prices / limitsPrecios del lineal que pone el jefe, y límites por producto que pone el staff (minPrice, maxPrice, maxPerSale).
payFormas de pago: 'cash', 'bank', 'card'.
blipBlip del mapa.

Cambios habituales ​

Cobrar las partidas en el banco

shared/config.lua
lua
account = 'bank',

Limitar el abastecimiento a un trabajo del framework

shared/config.lua
lua
job = { 'supplier' },

Dejar que un restaurante compre al por mayor

shared/config.lua
lua
trade = {
    -- deja el resto del bloque
    wholesale = { { job = 'restaurant', grade = 0 } },
},

Permitir el autocobro aunque haya un cajero trabajando

shared/config.lua
lua
till = {
    -- deja el resto del bloque
    selfWhenStaffed = true,
},

Reponer y cobrar sin entrar de servicio

shared/config.lua
lua
store = {
    -- deja el resto del bloque
    duty = false,
},

© Cuxial