Skip to content

Configuración

Todas las opciones de Cuxial Banking explicadas: dónde viven los ajustes, los archivos de data y shared/config.lua.

El banco se configura en dos sitios: los archivos del recurso, que guardan los valores de partida, y la pestaña Config de /bankadmin, que edita la mayoría en vivo.

Dónde viven los ajustes ​

shared/config.lua construye la configuración. Lee la mayoría de los valores de los archivos de data/ y guarda unos pocos propios.

En el primer arranque, el banco copia once secciones a la base de datos: general, cuentas, tarjetas, préstamos, ahorros, cheques, recompensas, puntuación de crédito, cajeros, admin y logs. Desde ese momento, la copia de la base de datos es la que se usa.

Tras el primer arranque, cambia esas secciones en /bankadmin → Config. Para volver a cargar los valores de un archivo, edítalo, reinicia el recurso y pulsa el botón de restablecer de esa sección en el panel.

Qué quieres cambiarDónde
Cualquier cosa de las once secciones, antes del primer arranquedata/*.lua y shared/config.lua
Cualquier cosa de las once secciones, después/bankadmin → Config
debug, ui, commands, world, wealth, limitsshared/config.lua, y reiniciar el recurso
admin.permission y logs.convarSolo en shared/config.lua; el panel los muestra como solo lectura
Sucursales y puntos de cajero/bankadmin → Puntos

La pestaña Config puede exportar las secciones cambiadas a un texto e importarlas en otro servidor.

General · data/general.lua ​

OpciónTipoPor defectoQué hace
Currencystring'USD'Código de moneda que se muestra en la interfaz y en los logs.
UseCashAsItembooleantruetrue maneja el efectivo como ítem de inventario (general.cashItem). false usa la cuenta de efectivo de tu framework.
LogExternalBankChangesbooleantruetrue anota en el historial cada cambio que otro recurso hace en el dinero de banco de un jugador. false registra solo las operaciones del propio banco. Requiere QBox o QBCore.
AdminMaxAdjustnumber100000000Importe máximo que el staff puede añadir o quitar en un ajuste de saldo.

Estas opciones de la misma sección están en shared/config.lua, dentro de general:

OpciónTipoPor defectoQué hace
cashItemstring'money'Nombre del ítem de efectivo. Solo se usa con UseCashAsItem = true.
bankDistancenumber5.0Metros a una sucursal dentro de los cuales el servidor acepta operaciones de banco.
atmDistancenumber3.0Metros a un cajero dentro de los cuales el servidor acepta operaciones de cajero.
moneyItemsstring[]{ 'money', 'black_money' }Ítems que cuentan como dinero, por su valor nominal, en el informe de riqueza del panel de staff.
valuedItemstable{}Ítems que cuentan en el informe de riqueza con un precio por unidad: { gold_bar = 5000 }.

Cuentas · data/accounts.lua ​

OpciónTipoPor defectoQué hace
PINChangeCostnumber200Comisión por cambiar el PIN de una cuenta.
PrintReceiptPricenumber100Comisión por imprimir un recibo.
NewAccountCostnumber500Comisión que se muestra en la ventana de crear una cuenta compartida. Mantenla igual que CustomAccounts.CreationFee, que es el importe que se cobra.
MaxTransactionsPerPlayernumbernil (50)Movimientos del historial que se muestran al jugador.
ReceiptItemstring'printerdocument'Ítem que se entrega como recibo impreso.
MaxTransferContactsFavoritesnumber3Contactos que un jugador puede marcar como favoritos.
CustomAccounts.Enabledbooleantruefalse quita las cuentas compartidas.
CustomAccounts.MaxAccountsPerPlayernumber3Cuentas compartidas de las que un personaje puede ser titular.
CustomAccounts.CreationFeenumber500Comisión que se cobra al crear una cuenta compartida.

En shared/config.lua, dentro de accounts:

OpciónTipoPor defectoQué hace
transactionRetentionDaysnumber0Días que se conserva un movimiento antes de que la limpieza diaria lo borre. 0 lo conserva todo.
pin.maxAttemptsnumber5PIN de cuenta erróneos permitidos antes del bloqueo.
pin.lockSecondsnumber30Segundos que el PIN de la cuenta queda bloqueado.

Tarjetas · data/cards.lua ​

OpciónTipoPor defectoQué hace
EnableCardsbooleantruefalse desactiva las tarjetas.
RenewCardTimenumber8Años hasta la fecha de caducidad impresa en una tarjeta nueva.
MaxTotalCreditCardsnumber10Tarjetas que un personaje puede tener en total, en cualquier estado.
MaxActiveCreditCardsnumber3Tarjetas activas que un personaje puede tener.
PlayerCanChangeDailyLimitbooleanfalsetrue deja al titular cambiar el límite diario de una tarjeta.
MaxDailyLimitnumber100000Límite diario más alto que puede tener una tarjeta.
CreditCardstable[]tres nivelesNiveles de tarjeta. Cada uno tiene label, dailyLimit, price e item.

Cada nivel es un ítem de inventario propio. item debe ser el nombre de un ítem registrado en tu inventario, con su imagen.

data/cards.lua
lua
CreditCards = {
    { label = 'Standard Card', dailyLimit = 2500,  price = 100, item = 'card_standard' },
    { label = 'Premium Card',  dailyLimit = 5000,  price = 200, item = 'card_premium' },
    { label = 'Gold Card',     dailyLimit = 10000, price = 300, item = 'card_elite' },
},

En shared/config.lua, dentro de cards:

OpciónTipoPor defectoQué hace
posMaxChargenumber10000000Importe máximo que otro recurso puede cobrar o devolver en una tarjeta en una sola llamada.
pin.maxAttemptsnumber5PIN de tarjeta erróneos permitidos antes de que se bloquee.
pin.lockMinutesnumber15Minutos que una tarjeta queda bloqueada.
pin.cooldownMsnumber3000Milisegundos entre dos intentos de PIN.
pin.sessionSecondsnumber300Segundos que una sesión de cajero sigue siendo válida tras el PIN.

Préstamos · data/loans.lua ​

OpciónTipoPor defectoQué hace
EnableLoansbooleantruefalse desactiva los préstamos.
AccountsWithLoanstabletodas trueTipos de cuenta que pueden pedir préstamos: personal, business, custom.
TimeScale.gameMonthRealSecondsnumber86400Segundos reales de un mes de juego. Vence una cuota cada mes de juego.
LoanPlanstablecinco planesPlanes de préstamo. Ver más abajo.
MaxActiveLoansnumber4Préstamos que una cuenta puede tener abiertos a la vez.
LoanSchedulerIntervalnumber1800Segundos entre dos pasadas del proceso de cobro. Mínimo 60.

En shared/config.lua, dentro de loans: minRate (0.5), el interés más bajo con el que puede quedar un préstamo tras aplicar la puntuación de crédito y los descuentos de recompensas.

Planes · LoanPlans ​

Un plan de plazo fijo tiene label, maxAmount, interestRate, months y enabled. Un plan con options deja al jugador elegir el plazo, cada uno con su interés.

data/loans.lua
lua
LoanPlans = {
    starter = { label = 'Starter Loan', maxAmount = 5000, interestRate = 5.5, months = 12, enabled = true },

    custom = {
        label = 'Custom Loan',
        maxAmount = 500000,
        options = {
            { months = 12, interestRate = 8.5 },
            { months = 24, interestRate = 9.0 },
        },
        enabled = true,
    },
},

Pagos · Payments ​

OpciónTipoPor defectoQué hace
graceHoursnumber6Horas tras el vencimiento antes de que una cuota cuente como atrasada.
defaultHoursnumber72Horas de retraso tras las cuales el préstamo entra en mora.
blockNewLoansWhenLatebooleantruetrue rechaza préstamos nuevos mientras haya uno atrasado.
penalty.pctnumber2.0Penalización por intervalo, como porcentaje de lo que queda por pagar.
penalty.scoreLossnumber5Puntos de crédito que se pierden con cada penalización.
penalty.modestring'flat''flat' suma el mismo porcentaje en cada intervalo. 'compounding' lo aplica sobre los anteriores.
penalty.intervalHoursnumber24Horas entre dos penalizaciones.
penalty.capPctnumber30.0Tope de las penalizaciones acumuladas, como porcentaje del total del préstamo.

Capacidad de endeudamiento · Capacity ​

Lo máximo que puede pedir un jugador es el menor de dos límites, nunca por debajo de cero: uno por el saldo de la cuenta y otro por los ingresos.

OpciónTipoPor defectoQué hace
equityMultipliernumber3.0Límite por saldo: (saldo de la cuenta − deuda pendiente) × este valor.
income.enabledbooleantruetrue añade el límite por ingresos en las cuentas personales. Las de empresa y las compartidas solo usan el límite por saldo.
income.recentPaychecksnumber5Nóminas cobradas que se promedian para calcular los ingresos.
income.factornumber8.0Límite por ingresos: ingreso medio × este valor × multiplicador de puntuación − deuda pendiente.
scoreMultiplierstable[]seis tramosMultiplicador del límite por ingresos según la puntuación de crédito. Cada entrada tiene min y mult.

Embargo · Garnishment ​

OpciónTipoPor defectoQué hace
enabledbooleantruefalse impide que el banco retenga ingresos.
pctnumber25.0Porcentaje retenido de cada nómina mientras un préstamo está atrasado o en mora.
statusestablelos dos trueEstados del préstamo que lo activan: [1] atrasado, [2] en mora.
sourcestable{ paycheck = true }Ingresos a los que se aplica la retención.

Puntuación de crédito · data/creditscore.lua ​

OpciónTipoPor defectoQué hace
Enablebooleantruefalse desactiva la puntuación de crédito.
defaultnumber500Puntuación de una cuenta nueva.
min / maxnumber300 / 850Límites de la puntuación.
bandstable[]seis tramosCada tramo tiene min, label y modifier: puntos que se suman al interés de un préstamo. En negativo lo rebaja.
deltastableonTime = 5, late = -10, defaulted = -60Puntos que se ganan o se pierden con cada evento.

En shared/config.lua, dentro de creditScore: onTimeCooldownHours (0), las horas que deben pasar para que otro pago a tiempo vuelva a sumar puntos. 0 significa que cuenta cada pago.

Ahorros · data/savings.lua ​

OpciónTipoPor defectoQué hace
EnableSavingsbooleantruefalse desactiva los ahorros.
SavingsWeekEquivalentnumber8Horas reales de una semana de ahorro. El interés se paga una vez por semana de ahorro.
SavingsInterestRatenumber2.5Porcentaje de interés de las metas personales.
MaxActiveGoalsnumber4Metas que puede tener una cuenta personal.
BusinessSavingsInterestRatenumber3.0Porcentaje de interés de las metas de empresa.
BusinessMaxActiveGoalsnumber5Metas que puede tener una cuenta de empresa.
CustomSavingsInterestRatenumber2.5Porcentaje de interés de las metas de cuentas compartidas.
CustomMaxActiveGoalsnumber5Metas que puede tener una cuenta compartida.
AccountsWithSavingstabletodas trueTipos de cuenta que pueden ahorrar: personal, business, custom.

Cheques · data/cheques.lua ​

OpciónTipoPor defectoQué hace
Itemstring'bank_cheque'Ítem que se entrega como cheque.
BookItemstring'bank_chequebook'Ítem con el que los jefes emiten cheques de empresa.
BookSecondsnumber30Segundos que la opción de emitir un cheque permanece sobre los jugadores cercanos tras usar el talonario.

En shared/config.lua, dentro de cheques: maxAmount (100000000), el importe máximo de un cheque.

Los cambios en los ítems de cheque necesitan reiniciar el recurso, también cuando se hacen desde el panel.

Recompensas · data/rewards.lua ​

OpciónTipoPor defectoQué hace
Enabledbooleantruefalse desactiva las recompensas.
EarnRatestablecinco accionesPuntos por acción: base puntos fijos más 1 punto por cada per del importe. per = 0 da solo la base. Acciones: deposit, withdraw, transfer, atm_use, loan_payment.
ActionLabelstablecinco etiquetasNombre de cada acción en el historial de puntos.
AntiFarm.Enabledbooleantruefalse desactiva las tres protecciones.
AntiFarm.ActionCooldowntablede 0 a 60Segundos entre dos concesiones de la misma acción, por jugador. 0 = sin espera.
AntiFarm.DailyPointsCapnumber500Puntos que un jugador puede ganar al día. 0 = sin tope.
AntiFarm.RoundTrip.windowSecondsnumber300Ventana en la que la acción contraria anula los puntos.
AntiFarm.RoundTrip.amountTolerancenumber0.25Cuánto deben parecerse los dos importes para contar como el mismo dinero: 0.25 = ±25 %.
AntiFarm.RoundTrip.pairstabledepósito ↔ retiroQué acción es la contraria de cuál.
Categoriestable[]cincoPestañas del catálogo: key y label.
Catalogtable[]diez recompensasRecompensas disponibles. Ver más abajo.

Cada recompensa tiene id (único), name, description, cost en puntos, icon, category y type:

typeQué recibe el jugadorCampos
'cash'value ingresado en el banco al momento.value
'fee_waiver'La próxima comisión bancaria es gratis.uses, durationDays
'interest_boost'value % más de interés en los ahorros personales.value, durationDays
'loan_discount'value % menos en el interés del próximo préstamo.value, uses, durationDays

Cajeros · data/atms.lua ​

OpciónTipoPor defectoQué hace
ATMDistancenumber1.5Distancia de target de un cajero, en metros.
ATMtable[]cuatro modelosModelos de prop que funcionan como cajero. Cada entrada es { model = hash }, con el hash en número.

Sucursales · data/banks.lua ​

OpciónTipoPor defectoQué hace
ShowBankBlipsbooleantruefalse oculta todos los blips del banco. Forma parte de la sección general: tras el primer arranque, cámbialo en el panel.
DebugTargetZonesbooleanfalsetrue dibuja las zonas de target de las sucursales.
BankLocationstable[]lista de ejemploSucursales que se crean en el primer arranque.

BankLocations se lee una sola vez, cuando la tabla de puntos está vacía. Después, gestiona las sucursales y los puntos de cajero desde /bankadmin → Puntos. La lista del archivo es un ejemplo para el mapa por defecto: sustitúyela antes del primer arranque si tus bancos están en otro sitio.

Interfaz · data/interface.lua y ui ​

OpciónTipoPor defectoQué hace
AccentColor (data/interface.lua)string (hex)'#e53935'Color de acento de la interfaz del banco y del cajero.
ui.accent (shared/config.lua)string (hex)configurableColor de acento del panel de staff.

Logs en Discord · data/webhook.lua ​

OpciónTipoPor defectoQué hace
BotNamestring'CuxialBank'Nombre con el que se publican los mensajes.
ServerNamestring'My Server'Nombre que aparece como autor de cada mensaje.
IconURLstring''Icono junto al autor.
DateFormatstring'%d/%m/%Y [%X]'Formato de fecha del pie.
Webhooktableuna entrada por tipo de logPara cada tipo de log: enabled y color (decimal).

En shared/config.lua, dentro de logs:

OpciónTipoPor defectoQué hace
enabledbooleantruefalse no envía ningún log.
convarstring'cuxial_banking_webhook'Nombre de la convar que guarda la URL del webhook. Una convar llamada <convar>_<tipo de log> la sustituye para ese tipo.
auditDaysnumber90Días que se conserva el registro de auditoría del panel de staff. 0 lo conserva todo.

La URL nunca se escribe en un archivo. Consulta Instalación.

El resto de shared/config.lua ​

OpciónTipoPor defectoQué hace
debugbooleanfalseImprime trazas en la consola. También se activa poniendo la convar cuxial_banking_debug a 1.
commands.admin.namestring'bankadmin'Comando que abre el panel de staff. Una cadena vacía quita el comando.
commands.admin.restrictedstring | falsefalseGrupo ACE que exige el comando, por ejemplo 'group.admin'. false deja solo la comprobación de admin.permission.
admin.permissionstring'admin'Permiso de tu framework que convierte a un jugador en staff del banco.
world.targetDistancenumber1.5Distancia de target de una sucursal, en metros.
world.chequeTargetDistancenumber2.0Distancia a la que un jefe puede apuntar a un jugador para emitirle un cheque de empresa.
world.nearbyRadiusnumber12.0Radio en el que se ofrecen los jugadores cercanos como destinatarios de una transferencia.
world.interactionsstring'cuxial_interactions'Nombre del recurso que muestra las sucursales como NPC.
wealth.cacheSecondsnumber15Segundos que se reutiliza un informe de riqueza antes de volver a calcularlo.
wealth.providerTimeoutMsnumber2000Milisegundos que tiene cada fuente del informe de riqueza para responder.
wealth.containerDepthnumber3Niveles de contenedores dentro de contenedores que abre el informe de riqueza.
limits.reasonLengthnumber100Caracteres del concepto de una transferencia.
limits.accountNameLengthnumber100Caracteres del nombre de una cuenta compartida.
limits.goalNameLengthnumber100Caracteres del nombre de una meta de ahorro.
limits.chequePayToLengthnumber100Caracteres del beneficiario de un cheque.
limits.chequeMemoLengthnumber120Caracteres del concepto de un cheque.
limits.contactNameLengthnumber48Caracteres del nombre de un contacto.
limits.maxContactsnumber50Contactos por jugador.
limits.maxMultiTransfernumber20Destinatarios de una transferencia a varios contactos.
limits.savingsMaxTargetnumber4294967295Objetivo más alto de una meta de ahorro.
limits.lockWaitMsnumber5000Milisegundos que una operación espera a que termine otra sobre la misma cuenta.

Cambios habituales ​

Pasar el banco a otro ítem de efectivo ​

En /bankadmin → Config → General, pon como ítem de efectivo el que use tu inventario, o desactiva el efectivo como ítem para usar la cuenta de efectivo de tu framework.

Hacer los préstamos más rápidos o más lentos ​

TimeScale.gameMonthRealSeconds marca el ritmo. Con 43200, vence una cuota cada 12 horas reales.

Añadir un nivel de tarjeta ​

Registra un ítem nuevo en tu inventario. Antes del primer arranque, añade una línea a CreditCards; después, añade el nivel en /bankadmin → Config, en la sección de tarjetas.

lua
{ label = 'Tarjeta Black', dailyLimit = 50000, price = 1000, item = 'card_black' },

Traducir los textos ​

Todos los textos están en locales/en.json y locales/es.json. Los nombres de los planes de préstamo, los niveles de tarjeta, los tramos de puntuación de crédito y las recompensas están en los archivos de datos.

© Cuxial