Skip to content

Configuración

Todas las opciones de Cuxial Gardener en shared/config.lua y los archivos de datos editables.

Todos los ajustes están en shared/config.lua. Las regiones, las tareas diarias, los niveles y la ropa están en data/. Reinicia el recurso después de cualquier cambio.

La posición del NPC, los puntos de salida de los camiones, el punto de entrega y las regiones que vienen en los archivos son ejemplos. Cámbialos para que encajen con tu mapa.

General ​

OpciónTipoPor defectoQué hace
debugbooleanfalseMuestra trazas de depuración en la consola. También se activa con setr cuxial_gardener_debug 1. El comando fast solo funciona con la depuración activa.
ui.accentstringconfigurableColor de acento del panel, en hexadecimal.
ui.currency.symbolstring'$'Símbolo de moneda que muestra el panel.
ui.currency.localestring'en-US'Formato numérico de las cantidades ('en-US', 'es-ES'...).
logs.convarstring'cuxial_gardener_webhook'Nombre de la convar que guarda el webhook de Discord. Con la convar vacía no se envía nada.
admin.auditDaysnumber60Días que se conservan las filas de auditoría. Las más antiguas se borran una vez al día.
accountstring'bank'Cuenta que recibe los pagos del trabajo y los premios diarios ('bank', 'cash').
jobstring | table'all'Quién puede hacer el trabajo. 'all' para todos, el nombre de un trabajo, o una lista como { 'gardener' }.

NPC ​

Bloque npc.

OpciónTipoPor defectoQué hace
coordsvector4ejemploPosición y orientación del NPC del trabajo.
modelstring's_m_m_gardener_01'Modelo del ped.
distancenumber2.0Metros desde los que aparece la opción de interacción.
menuDistancenumber6.0El servidor rechaza abrir el panel más lejos de esta distancia.
spawnDistancenumber60.0El NPC solo existe en un cliente dentro de este radio.
blip.enabledbooleantrueMuestra el blip del trabajo en el mapa.
blip.sprite / color / scalenumber631 / 2 / 0.55Aspecto del blip.

Interacción y marcadores ​

Bloque target.

OpciónTipoPor defectoQué hace
distancenumber2.0Metros de las opciones sobre arbustos, flores y ramas en el suelo.
trimDistancenumber5.0Metros de la opción «cortar rama» desde la escalera. 5 es el máximo.
truckDistancenumber3.5Metros de las opciones del camión y del cortacésped.
showDistancenumber25.0Distancia a la que se dibuja el marcador flotante sobre arbustos, ramas y flores. 0 lo oculta.
markertablever archivoMarcador flotante: type, scale, height, color ({ r, g, b, a }), bob, rotate.
ringtablever archivoAnillo dibujado en el suelo en cada hierba: type, scale, color.
iconstablever archivoIcono de Font Awesome de cada opción de interacción.

Blips ​

Bloque blips. Cada entrada lleva sprite, color y scale.

OpciónPor defectoQué marca
mow570 / 25 / 0.6Malas hierbas
prune570 / 24 / 0.6Arbustos
trim836 / 52 / 0.8Ramas
plant570 / 43 / 0.6Zona de flores
truck67 / 0 / 0.8Camiones del trabajo
mower559 / 0 / 0.6Un cortacésped desenganchado
deliver38 / 29 / 0.8Punto de entrega
OpciónTipoPor defectoQué hace
areaAlphanumber90Opacidad del radio de la zona de flores en el mapa.
routeColornumber25Color de la ruta del GPS.
routeMsnumber5000Cada cuánto se recalcula la ruta al punto pendiente más cercano.

Mundo ​

Bloque world.

OpciónTipoPor defectoQué hace
viewDistancenumber150.0Radio en el que se crean hierbas, arbustos, ramas y flores en cada cliente.
handDistancenumber50.0Radio en el que se ve la herramienta que llevan otros jugadores.
fadeMsnumber800Fundido de un arbusto al podarlo y de una hierba al cortarla.
fallMsnumber2500Duración de la caída de una rama cortada.

Tripulación ​

Bloque crew.

OpciónTipoPor defectoQué hace
maxPlayersnumber4Tamaño máximo de la tripulación.
inviteDistancenumber8.0Metros entre quien invita y el invitado.
inviteSecondsnumber60Segundos hasta que caduca una invitación.
reconnectSecondsnumber180Segundos que se guarda el puesto de un miembro que se desconecta durante un trabajo.
splitRewardsbooleantruePermite al dueño de la tripulación repartir el dinero por porcentaje. false = todos cobran lo mismo.

Trabajo ​

Bloque run.

OpciónTipoPor defectoQué hace
cooldownHoursnumber0Horas que un jugador debe esperar entre trabajos. 0 = sin espera.
exclusiveRegionsbooleanfalsetrue = una sola tripulación por región a la vez.
spawnFreeRadiusnumber6.0Metros que deben estar libres de vehículos alrededor de cada punto de salida.
deathSweepMsnumber1000Cada cuánto comprueba el servidor si hay jugadores muertos, que sueltan su herramienta y su escalera.

Vehículos ​

Bloque vehicles. Una tripulación recibe un camión con su cortacésped, o dos parejas a partir de secondFrom miembros.

OpciónTipoPor defectoQué hace
platestring'GARD'Prefijo de la matrícula, hasta 4 caracteres. Se completa con el número de trabajo, una letra y un índice.
fuelnumber100.0Valor que se escribe en el state bag fuel de cada vehículo al crearlo.
keysbooleantrueDa las llaves mediante cuxial_garages cuando ese recurso está en marcha.
secondFromnumber2Tamaño de tripulación a partir del cual sale un segundo camión con cortacésped.
spawnTimeoutMsnumber5000Tiempo que espera el servidor a que aparezca un vehículo antes de cancelar el inicio.
minEnginenumber-3900.0Por debajo de esta salud de motor un vehículo cuenta como destruido.

Herramientas y cortacésped ​

OpciónTipoPor defectoQué hace
tools.truckDistancenumber4.0Metros entre el jugador y el camión para coger o devolver una herramienta y para guardar ramas.
tools.takeMsnumber3300Barra de progreso al coger una herramienta.
tools.returnMsnumber2200Barra de progreso al devolver una herramienta.
mower.hitchDistancenumber4.0Metros entre el cortacésped y su camión para engancharlo.
mower.footDistancenumber3.0Metros desde los que un jugador a pie puede engancharlo o desengancharlo.
mow.radiusnumber1.5Metros entre el cortacésped y una hierba que acepta el servidor.
mow.maxHeightnumber3.0Diferencia de altura admitida entre el cortacésped y la hierba.
mow.minIntervalMsnumber120Tiempo mínimo entre dos cortes del mismo jugador.
mow.scanMsnumber100Cada cuánto busca hierbas el cliente mientras conduce.
mow.clientRadiusnumber0.8Metros a los que el cliente pide cortar una hierba.
mow.sendMsnumber150Separación entre dos peticiones de corte del cliente.

Acciones ​

Cada acción tiene una duración y las distancias que acepta el servidor.

OpciónTipoPor defectoQué hace
work.marginMsnumber500Tolerancia sobre el tiempo mínimo de cada acción.
work.lockSecondsnumber120Segundos que una acción y su objetivo quedan reservados para un jugador.
prune.ms / distancenumber4300 / 2.5Podar: barra de progreso y metros al arbusto.
trim.msnumber4300Cortar rama: barra de progreso tras el minijuego.
trim.reachnumber4.5Metros entre la escalera y la rama.
trim.heightnumber2.0Diferencia de altura entre la rama y el jugador subido a la escalera.
trim.riderSlacknumber5.0Tolerancia en metros entre el jugador y la escalera.
water.ms / distancenumber4000 / 2.5Regar: barra de progreso y metros a la flor.
branch.distance / takeMsnumber2.5 / 900Recoger una rama caída: metros y barra de progreso.

Plantar ​

Bloque plant.

OpciónTipoPor defectoQué hace
msnumber15000Barra de progreso de plantar.
reachnumber2.0Metros entre el jugador y el sitio elegido.
maxHeightnumber1.5Diferencia de altura entre el jugador y el sitio.
spacingnumber0.8Metros mínimos entre dos flores.
truckClearnumber5.0Metros que deben estar libres de camiones del trabajo para entrar en modo colocación.
placeDistancenumber1.9Metros del jugador a la vista previa para que el sitio sea válido.
allowUnknownbooleantruetrue = cualquier superficie vale. false = solo las superficies de materials.
materialstablever archivoHashes de superficie aceptados cuando allowUnknown = false.

Escalera ​

Bloque ladder.

OpciónTipoPor defectoQué hace
placeDistancenumber3.0Metros entre el jugador y el pie del árbol para colocarla.
vehicleClearnumber5.0Metros que deben estar libres de vehículos del trabajo al pie del árbol.
spacingnumber1.0Metros mínimos entre dos escaleras.
boardDistancenumber3.0Metros para subir o para recogerla.
msnumber2500Barra de progreso de colocar y recoger.
viewDistancenumber75.0Radio en el que se ven las escaleras.

Entrega ​

Bloque deliver. El trabajo se paga cuando un miembro de la tripulación, al volante de un camión del trabajo, entrega en el punto de entrega de la región.

OpciónTipoPor defectoQué hace
radiusnumber20.0Metros alrededor del punto de entrega en los que deben estar los camiones.
requireAllbooleantruetrue = todos los camiones deben estar enteros. false = un segundo camión destruido no bloquea la entrega. El camión principal se exige siempre.
requireMowersbooleanfalsetrue = todos los cortacéspedes deben estar enteros y, o enganchados, o dentro del radio.
collectLaddersbooleantruetrue = las escaleras que queden fuera se recogen solas al entregar. false = la tripulación debe devolverlas antes.

Premios ​

Bloque reward. Las cantidades base salen de cada región en data/regions.lua.

OpciónTipoPor defectoQué hace
modestring'team''team': con más de un miembro, cada uno cobra el premio de la región × teamMultiplier. 'flat': cada uno cobra el premio íntegro. 'split': el premio × teamMultiplier se divide entre la tripulación.
teamMultipliernumber0.8Multiplicador que se aplica al premio cuando la tripulación tiene más de un miembro.
bonusMoneynumber0Dinero extra por cada tarea extra hecha por el jugador (regar, guardar ramas).
bonusXpnumber0XP extra por cada tarea extra hecha por el jugador.
itemstable{}Ítems que se dan al cobrar. Cada entrada: { item = 'nombre', count = 1, chance = 50 }, con chance de 1 a 100.

Un jugador en solitario cobra siempre el premio íntegro de la región. La XP no se reparte nunca: cada miembro que cobra recibe la XP íntegra de la región.

Ropa, perfil y panel ​

OpciónTipoPor defectoQué hace
outfit.modestring'none'Conjunto de data/outfits.lua que se pone al empezar el trabajo: 'workwear', 'classic' o 'none' para conservar la ropa del jugador.
leaderboard.sizenumber10Filas del ranking.
leaderboard.cacheSecondsnumber60Segundos que se guarda en caché el ranking.
history.sizenumber10Trabajos que muestra el historial personal.
profile.flushMsnumber30000Cada cuánto se guardan la XP y el progreso diario. El dinero se paga al momento.
tips.secondsnumber12Segundos que una pista de primera vez queda en pantalla.
finish.secondsnumber15Segundos que el resumen final queda en pantalla. Mínimo 3.

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 y fastGrupo que puede usar el comando.
keystablever ComandosTeclas por defecto. Cada jugador puede cambiarlas en los ajustes del juego.

Archivos de datos ​

ArchivoQué se edita ahí
data/regions.luaRegiones: nivel mínimo, premio, cantidades de tareas, puntos de salida, punto de entrega y zona de flores.
data/points.luaCoordenadas de hierbas, arbustos y árboles con sus ramas, por región.
data/daily.luaTareas diarias y cada cuánto se reinician.
data/levels.luaXP necesaria para cada nivel.
data/outfits.luaRopa de trabajo por modo y sexo.
data/games.luaDificultad del minijuego de las ramas.
data/guide.luaTarjetas de la pestaña de guía.
data/models.lua, data/tools.lua, data/vehicles.lua, data/ladder.luaModelos, posiciones de enganche y animaciones. Rara vez hay que tocarlos.

Regiones ​

Cada entrada de data/regions.lua:

CampoTipoQué hace
idnumberNúmero estable. La base de datos lo guarda, así que no reutilices ni renumeres los ids.
labelstringClave de idioma con el nombre (region_* en locales/*.json).
minLevelnumberNivel mínimo de todos los miembros de la tripulación.
rewardtable{ money, xp } por miembro.
taskstableUna entrada por tarea (mow, prune, trim, plant) con min y max. La cantidad es aleatoria entre ambos, con tope en los puntos disponibles en data/points.lua.
trucks / mowersvector4[]Puntos de salida de cada camión y de su cortacésped, en orden.
delivervector3Punto de entrega de los camiones.
flowerstableZona de flores: { center, radius }.

Tareas diarias ​

data/daily.lua tiene resetHours (por defecto 24, contadas desde el último reinicio del jugador) y una lista de tareas:

CampoQué hace
idClave estable que se guarda en la base de datos.
labelClave de idioma con el nombre.
kind'tasks' (tareas propias hechas), 'runs' (trabajos entregados), 'money' (dinero ganado al entregar) o 'team' (trabajos entregados en tripulación de dos o más).
goalCantidad a alcanzar.
xp / moneyPremio al completarla. El dinero va a account.

Niveles ​

data/levels.lua contiene required, la XP necesaria para pasar de cada nivel al siguiente. Los jugadores empiezan en el nivel 1 y el nivel máximo es el número de entradas más uno.

Ropa ​

Cada modo de data/outfits.lua tiene un conjunto male y otro female con components ({ componente, drawable, textura }) y props ({ prop, drawable, textura }; drawable -1 lo quita). snapshot indica qué se guarda antes de cambiar y se restaura al acabar el trabajo.

Los números de drawable dependen de los packs de ropa de cada servidor. Revisa los conjuntos en el juego y sustitúyelos por los tuyos.

Cambios habituales ​

Limitar el trabajo a un trabajo del framework

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

Pagar en efectivo y añadir una espera

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

run = {
    cooldownHours = 1,
    exclusiveRegions = false,
    spawnFreeRadius = 6.0,
    deathSweepMs = 1000,
},

Dividir un premio entre la tripulación y añadir un ítem

shared/config.lua
lua
reward = {
    mode = 'split',
    teamMultiplier = 1.0,
    bonusMoney = 25,
    bonusXp = 10,
    items = { { item = 'water', count = 1, chance = 50 } },
},

Poner la ropa de trabajo

shared/config.lua
lua
outfit = { mode = 'workwear' },

Mover el NPC

shared/config.lua
lua
npc = {
    coords = vec4(0.0, 0.0, 0.0, 0.0), -- tu posición y orientación
    -- conserva el resto del bloque
},

Cuando muevas el NPC, mueve también trucks, mowers y deliver en data/regions.lua para que los vehículos aparezcan a su lado.

© Cuxial