Configuración

La configuración se reparte en cinco archivos abiertos dentro de config/:

ArchivoQué contiene
main.luaIdioma, páginas activadas o no, IBAN, efectivo, tarjetas y PIN, cuentas de empresa, de banda y compartidas, transferencias programadas, /givecash, atracos a bancos
locations.luaBancos, banqueros, voces y diálogo, cajeros, target, sonidos, HUD
economy.luaCostes, comisión de transferencia, importe máximo, ahorros, préstamos, webhook de Discord
billing.luaFacturas
compat.luaScripts escritos para otros bancos, y la importación de cuentas
En los archivos, cada clave se escribe C.Nombre (por ejemplo C.Locale = 'en'). Esta página las escribe Config.Nombre. Los importes son números enteros.
Tu servidor, tus reglas. Los cinco archivos de config/, locales/ y las imágenes del inventario no están cifrados: puedes cambiar el idioma y la moneda, el formato del IBAN, las tarjetas y el PIN, las comisiones y los precios, los ahorros, los préstamos y la puntuación de crédito, las facturas, las cuentas de empresa, de banda y compartidas, los bancos y sus banqueros, las voces, los blips, los modelos de cajero, el target o el aviso, los sonidos, los comandos y la compatibilidad. Con hz_lib, 48 de estos ajustes también se cambian en el juego desde /hzpanel, sin reiniciar.

General

ClavePor defectoDescripción
Config.Locale'en'Idioma de la app, del diálogo y de los mensajes: un nombre de archivo de locales/. Vienen en y fr. nil usa la convar hz_locale.
Config.Currency'$'Símbolo de moneda que muestra la app.
Config.Featuressavings, bills, loans todos en trueActiva o desactiva las páginas Savings (ahorros), Bills (facturas) y Loans (préstamos). Desactivada: la página sale del menú y el servidor rechaza sus operaciones. No se borra nada.
Config.RateLimitsver archivoMáximo de llamadas por jugador en unos segundos, para lecturas, operaciones de dinero, comprobaciones de PIN y /givecash.
Config.DebugfalseLogs extra en la consola.
Otro idioma: copia locales/en.json en un archivo nuevo (por ejemplo locales/es.json), traduce los textos y pon Config.Locale = 'es'. No hace falta recompilar; las líneas que falten se muestran en inglés. Las voces de los banqueros solo existen en inglés y en francés.

IBAN

ClavePor defectoDescripción
Config.IbanPrefix'NT'Prefijo de todos los IBAN, en mayúsculas. Un IBAN personal se ve así: NT482913.
Config.IbanDigits6Cifras de un IBAN personal generado.
Config.CustomIbanMaxChars12Longitud máxima de un IBAN personalizado que un jugador puede comprar, prefijo incluido.
Las cuentas de empresa reciben el prefijo y el nombre del trabajo (NTPOLICE), las de banda el prefijo, GANG y el nombre de la banda (NTGANGBALLAS). Los jugadores no pueden quedarse con estos como IBAN personalizado.

Efectivo

ClavePor defectoDescripción
Config.UseCashAsItem'auto''auto': el objeto de efectivo con ox_inventory, el efectivo del framework si no. true fuerza el objeto, false el efectivo del framework.
Config.CashItem'money'Nombre del objeto de efectivo (ox_inventory money, qb cash).
Config.BankAccount'bank'Cuenta del framework usada como banco personal.

Tarjetas y PIN

ClavePor defectoDescripción
Config.RequireCreditCardForATMtrueHace falta una tarjeta bancaria para usar un cajero. false: solo el PIN.
Config.CreditCardItem'bank_card'Nombre del objeto de la tarjeta. Debe existir en tu inventario, ver Instalación.
Config.FirstCardFreetrueUn personaje que nunca tuvo tarjeta recibe la primera gratis, en la ventanilla o directamente en el cajero.
Config.CardValidityDays90Días que una tarjeta nueva es válida. 0 = las tarjetas no caducan.
Config.MaxCardsPerAccount3Tarjetas que un personaje puede tener a la vez, sin contar las caducadas. 0 = sin límite.
Config.PinDigits4Longitud del PIN.
Config.PinMaxAttempts3PIN erróneos seguidos antes de bloquear la tarjeta.
Config.PinLockoutSeconds300Tiempo que la tarjeta queda bloqueada.
Config.PinAtBankfalseDéjalo en false: el PIN solo se pide en los cajeros.

Cuentas de empresa y de banda

ClavePor defectoDescripción
Config.SocietyAllJobstrueCada trabajo tiene una cuenta de empresa, creada la primera vez que se usa. false: solo los trabajos de Config.Societies.
Config.Societiespolice, ambulance, mechanic, realestateTrabajos cuya cuenta se crea al arrancar.
Config.SocietyExcludedJobsunemployedTrabajos que nunca tienen cuenta.
Config.SocietyMinGrade3Además del jefe, el rango del trabajo (y superiores) que abre la cuenta de empresa. false = solo el jefe.
Config.SocietyMinGradeByJob{}Rango por trabajo, por ejemplo { police = 4 }.
Config.BankAuthtrueQbox: el ajuste de acceso al banco de cada rango (en qbx_management) decide quién abre las cuentas de empresa y de banda. false = las reglas de rango de arriba.
Config.EsxSocietyAccountstrueESX: los saldos de empresa son las cuentas society_<job> de esx_addonaccount, así que los menús de jefe y las facturas ven el mismo dinero.
Config.BossGradenilESX: nivel de rango del jefe (y superiores). nil = la marca de jefe o un rango llamado boss.
Config.GangMinGradefalseAdemás del jefe de la banda, el rango de banda (y superiores) que abre la cuenta de banda. false = solo el jefe.
Config.GangMinGradeByGang{}Rango por banda, por ejemplo { ballas = 3 }.
Config.GangPermissionExporthz_illegal, CanAccessGangBankExport opcional que decide el acceso a la banda, usado solo mientras su resource está en marcha. false = ninguno.

Cuentas compartidas

ClavePor defectoDescripción
Config.SharedAccountstrueLos jugadores abren cuentas compartidas en una ventanilla.
Config.SharedMaxOwned2Cuentas compartidas que puede tener un personaje como propietario.
Config.SharedMaxMembers5Miembros por cuenta compartida, sin contar al propietario.
Config.SharedNameMax32Longitud máxima del nombre de la cuenta.

Transferencias programadas

ClavePor defectoDescripción
Config.MaxScheduledPerAccount10Transferencias programadas activas o en pausa por cuenta. 0 = sin límite.
Config.ScheduleMaxRunsShared52Máximo de ejecuciones de una transferencia programada de empresa o de banda. Estas siempre necesitan un número de ejecuciones.

Dar efectivo

ClavePor defectoDescripción
Config.GiveCashtrueLos jugadores se dan efectivo con /givecash [id] <amount>; sin ID va al jugador más cercano. false: el comando no se crea.
Config.GiveCashCommand'givecash'Nombre del comando.
Config.GiveCashDistance3.0Metros máximos entre los dos jugadores.
Config.GiveCashMaxAmount0Importe máximo de un regalo. 0 = Config.MaxAmount.

Atracos a bancos

ClavePor defectoDescripción
Config.BankClosuretrueUn banco cierra mientras lo están atracando.
Config.BankClosureMinutes30Vuelve a abrir como muy tarde tras este tiempo. 0 = solo cuando termina el atraco.
Config.RobberyBanksorden de qb-bankrobberyID de banco del script de atracos → número del banco en Config.Banks.
Ver Cerrado durante un atraco.

Bancos

C.Banks = {
    { -- Legion Square
        coords = vec3(150.27, -1040.20, 29.37), brand = 'fleeca',
        ped = { model = 'a_m_m_business_01', coords = vec4(149.38, -1042.05, 29.37, 334.49), name = 'Martin Kessler' },
    },
    -- ...
}

CampoDescripción
coordsDonde se coloca el jugador delante del banquero. El servidor mide a los jugadores desde este punto.
brandEstilo de la app: 'fleeca', 'maze', 'pacific', 'blaine' o 'union'.
pedEl banquero: model, coords (vec4 con orientación) y name, que se muestra en el diálogo.
blipOpcional: cambia cualquier campo de Config.Blip para este banco, o false para no tener blip.
distanceOpcional: distancia del aviso de este banco.
ClavePor defectoDescripción
Config.InteractDistance3.0Distancia a la que se activa el aviso de una ventanilla.
Config.InteractKey'E'Tecla que se muestra en el aviso (solo el texto).
Config.Blipsprite 108, color 2, escala 0.9, texto BankBlip de cada banco. enabled = false los oculta.
Config.BlipColorByBrandMaze 1, Fleeca 2, Pacific 46, Blaine 76, Union 29Color del blip de cada marca de banco.
Config.BankPedModel'a_m_m_business_01'Modelo del banquero cuando un banco no define ninguno.
Config.BankPedDistance60.0Metros a los que aparecen los banqueros.
Config.SessionIdleTimeout900Segundos sin ninguna acción antes de que la app se cierre.
Más en Bancos y banqueros.
ClavePor defectoDescripción
Config.StaffVoice.enabledtrueLos banqueros hablan.
Config.StaffVoice.language'en''en', 'fr' o 'auto' (el idioma de Config.Locale).
Config.StaffVoice.greetDistance5.0Metros a los que el banquero saluda al jugador.
Config.StaffVoice.greetCooldown300Segundos antes de que el mismo banquero vuelva a saludar al mismo jugador.
Config.StaffVoice.lookDistance6.0Metros a los que el banquero sigue al jugador con la mirada.
Config.Dialogue.enabledtrueHablar con un banquero abre el cuadro de diálogo. false: la app bancaria se abre directamente.
Config.Dialogue.cameratrueLa cámara encuadra al banquero mientras el diálogo está abierto.

Cajeros

ClavePor defectoDescripción
Config.AtmModelsprop_atm_01, prop_atm_02, prop_atm_03, prop_fleeca_atmModelos de cajero. Todo prop de estos modelos en el mapa es un cajero.
Config.AtmDistance1.5Metros desde un cajero para ver su aviso.
Config.AtmUse.walktrueEl jugador camina hasta el cajero. false: se queda en su sitio.
Config.AtmUse.cardtrueCajeros del juego: el jugador mete su tarjeta antes de que se abra la pantalla.
Config.AtmUse.view'screen'Cajeros del juego: 'screen' de frente a la pantalla y al teclado, 'shoulder' por encima del hombro del jugador.
Config.AtmUse.fingertrueLa mano del jugador en el teclado, el dedo en la tecla bajo el cursor.
Config.AtmUse.cardModelfalseUn mismo prop de tarjeta para todos. false = la tarjeta del banco del propio jugador.
Config.AtmUse.animTime2.0Modelos de cajero que añadas: segundos de animación de la tarjeta antes de que se abra la pantalla. 0 = ninguna.
Config.AtmPositionsvacíoLista opcional de posiciones de cajero permitidas (vec3). Vacía = todos los cajeros de los modelos de arriba.
Config.AtmPositionTolerance1.5Metros entre un cajero y su posición de la lista.
Config.AtmBrand'fleeca'Banco de los cajeros: estilo del cajero a pantalla completa (modelos que añadas) y banco de una primera tarjeta gratis entregada ahí.
Config.AtmBrandByModelprop_fleeca_atm = 'fleeca'Lo mismo, por modelo.

Target, sonidos y HUD

ClavePor defectoDescripción
Config.Target.banktrueOjo del target sobre los banqueros y su ventanilla (ox_target o qb-target, a través de hz_lib).
Config.Target.atmtrueOjo del target sobre los cajeros.
Config.Target.distance2.0Alcance del ojo, en metros.
Config.Target.pinstrueCon HZ-TextUi en marcha: sus pins (visibles al acercarse, sin mantener ninguna tecla) en lugar del ojo.
Config.Soundssonidos del juegoSonidos de la app: abrir, cerrar, PIN correcto e incorrecto, éxito, error, teclado, pasar el ratón, clic, cambio de página. enabled = false los silencia todos; pon una entrada en false para silenciar solo esa.
Config.HideHudtrueOculta el HUD mientras la app está abierta (HZ-Hud, o el minimapa del juego).
Sin resource de target, hz_lib muestra su propio aviso [E].

Costes y límites

ClavePor defectoDescripción
Config.IbanChangeCost5000Precio de un IBAN personalizado.
Config.PinChangeCost1000Precio de un cambio de PIN. El primer PIN es gratis.
Config.CreditCardPrice250Precio de una tarjeta bancaria.
Config.TransferFeePct0.0Comisión de las transferencias, como fracción (0.01 = 1 %), que se queda el banco.
Config.MaxAmount100000000Importe máximo de una sola operación.
Los costes se cobran del banco personal.

Ahorros

C.Savings = {
    InterestPct = 0.5,
    PeriodHours = 24,
    MaxBalance  = 1000000,
    MaxCatchUp  = 7,
}

ClaveDescripción
InterestPctInterés por periodo, en % del saldo mantenido durante todo el periodo.
PeriodHoursHoras reales entre dos pagos de intereses.
MaxBalanceMáximo que un personaje puede tener en ahorros. 0 = sin límite.
MaxCatchUpPeriodos pagados como máximo tras una ausencia. 0 = sin límite.
Cómo funciona: Ahorros y préstamos.

Préstamos

C.Loans = {
    Tiers = {
        { score = 300, max = 5000,   rate = 15 },
        { score = 580, max = 25000,  rate = 10 },
        { score = 670, max = 75000,  rate = 7 },
        { score = 740, max = 200000, rate = 5 },
    },
    MinAmount    = 1000,
    Installments = { 4, 8, 12 },
    PeriodHours  = 24,
    LateFeePct   = 5,
    DefaultAfter = 3,
    UseSavings   = true,
    Score = { start = 600, min = 300, max = 850, onTime = 5, repaid = 25, missed = 30, default = 100 },
}

ClaveDescripción
TiersA partir de esta puntuación de crédito: préstamo máximo y su interés, en % del importe para todo el préstamo.
MinAmountPréstamo mínimo.
InstallmentsPlanes de pago ofrecidos, en número de pagos.
PeriodHoursHoras reales entre dos pagos.
LateFeePctSe suma a la deuda por cada pago perdido, en % de un pago.
DefaultAfterPagos perdidos seguidos antes de que el préstamo entre en impago.
UseSavingsUn pago que la cuenta bancaria no cubre se cobra de los ahorros.
ScorePuntuación inicial, límites, y puntos ganados o perdidos: pago a tiempo, préstamo devuelto, pago perdido, impago.
Cómo funciona: Ahorros y préstamos.

Facturas

Todo en config/billing.lua, dentro de C.Billing.

ClavePor defectoDescripción
Command'invoice'Comando de chat que escribe una factura. '' = sin comando.
JobsnilTrabajos que pueden facturar, por ejemplo { 'police', 'mechanic' }. nil = todo trabajo que tenga cuenta de empresa.
MinGrade0Rango mínimo del trabajo para facturar.
MinGradeByJob{}Rango por trabajo, por ejemplo { mechanic = 1 }.
GangstrueLos miembros de una banda pueden facturar en nombre de su banda.
PlayerInvoicesfalseLos jugadores pueden facturar a otros jugadores, a su propia cuenta.
NoDeclinepolice, ambulanceTrabajos cuyas facturas no se pueden rechazar (multas).
MaxAmount1000000Factura máxima.
MaxPending20Facturas sin pagar que un jugador puede tener a la vez.
Distance5.0Metros máximos entre quien factura y el jugador facturado.
DueDays7Días reales antes de que una factura venza.
LateFeePct10Se suma una vez al vencer, en % del importe. 0 = ninguno.
AutoCollecttrueLas facturas vencidas se cobran del banco en cuanto el saldo las cubre.
IssuerCommission0% de una factura de empresa que se paga al empleado que la escribió.
ReasonMax96Caracteres que se guardan del motivo.
PhoneBrand'maze'Estilo de banco de la app Bills del teléfono.
Phonesqs-smartphone, lb-phone, hz_phoneTeléfonos que reciben la app Bills y las notificaciones de facturas, cuando están en marcha.
Cómo funciona: Facturas.

Compatibilidad

En config/compat.lua:

ClavePor defectoDescripción
Config.Compat['qb-banking']trueResponder a los exports de qb-banking. false = desactivado.
Config.Compat['Renewed-Banking']trueLo mismo para Renewed-Banking.
Config.Compat['esx_banking']trueLo mismo para esx_banking.
Config.Compat['okokBanking']trueLo mismo para okokBanking.
Config.Compat['esx_billing']trueLas facturas enviadas desde los menús de trabajo de ESX se convierten en facturas de HZ-Banking.
Config.Compat['qb-management']'auto'Antiguos exports de dinero de qb-management, solo mientras no haya ningún qb-management en marcha.
Config.Compat.esxClientLogfalseDeja que los jugadores escriban líneas en su propio historial mediante el evento de cliente de esx_banking.
Config.MigrationPriorityokok, renewed, qb, esxFuentes de importación, de la más fiable a la menos.
Config.MigrationHistorytrueImportar también las líneas del historial.
Cada relevo queda desactivado mientras el resource real con ese nombre está en marcha. Más en Reemplazar tu script de banco.

En /hzpanel

El módulo Banking de /hzpanel edita casi todos los ajustes en vivo en el servidor, en dos pestañas:

  • General — prefijo del IBAN; páginas Savings, Bills y Loans; reglas de tarjeta y PIN, modo de efectivo, rangos de empresa y de banda, acceso al banco de Qbox, dinero de empresa de ESX; cuentas compartidas; /givecash y cierre de bancos.
  • Economy — precios del IBAN, del PIN y de la tarjeta, comisión de transferencia (en %), importe máximo, límites de transferencias programadas; ahorros; préstamos; facturas (factura máxima, días antes de vencer, recargo por vencimiento, cobro de facturas vencidas, comisión del empleado, rango mínimo para facturar, facturas de bandas y de jugadores, distancia para facturar).
48 ajustes en total, que se aplican al momento sin reiniciar. Los archivos dan los valores iniciales. Un valor guardado en el panel tiene prioridad sobre el archivo. Los bancos, cajeros, voces, sonidos, tramos de préstamo, la puntuación de crédito, el comando de facturas y los trabajos que facturan, y la compatibilidad solo se ajustan en los archivos.

Convars

ConvarDescripción
hz_banking_webhookURL del webhook de Discord para el log del dinero.
hz_banking_pin_secretSecreto privado para guardar los PIN. Defínelo una sola vez, antes de que los jugadores pongan su PIN.
Ver Instalación.