Configuration
La configuration tient en cinq fichiers ouverts, dans config/ :
| Fichier | Contenu |
main.lua | Langue, pages activées ou non, IBAN, liquide, cartes et code PIN, comptes société, de gang et partagés, virements programmés, /givecash, braquages de banque |
locations.lua | Agences, banquiers, voix et dialogue, distributeurs, cible, sons, HUD |
economy.lua | Coûts, frais de virement, montant maximum, épargne, prêts, webhook Discord |
billing.lua | Factures |
compat.lua | Scripts écrits pour d'autres banques, et l'import des comptes |
Dans les fichiers, chaque clé s'écrit C.Nom (par exemple C.Locale = 'en'). Cette page les écrit Config.Nom. Les montants sont des nombres entiers.
Votre serveur, vos règles. Les cinq fichiers de
config/,
locales/ et les images d'inventaire ne sont pas chiffrés. Vous pouvez y changer la langue et la devise, le format de l'IBAN, les cartes et le code PIN, les frais et les prix, l'épargne, les prêts et le score de crédit, les factures, les comptes société, de gang et partagés, les agences et leurs banquiers, les voix, les blips, les modèles de distributeur, la cible ou l'invite, les sons, les commandes et la compatibilité. Avec hz_lib, 48 de ces réglages se changent aussi en jeu depuis
/hzpanel, sans redémarrage.
Général
| Clé | Défaut | Description |
Config.Locale | 'en' | Langue de l'app, du dialogue et des messages : un nom de fichier de locales/. en et fr sont fournis. nil prend la convar hz_locale. |
Config.Currency | '$' | Symbole monétaire affiché dans l'app. |
Config.Features | savings, bills, loans tous à true | Active ou coupe les pages Épargne, Factures et Prêts. Coupée : la page quitte le menu et le serveur refuse ses opérations. Rien n'est supprimé. |
Config.RateLimits | voir le fichier | Nombre maximum d'appels par joueur en quelques secondes, pour les lectures, les opérations d'argent, les vérifications de code PIN et /givecash. |
Config.Debug | false | Logs supplémentaires dans la console. |
Une autre langue : copiez locales/en.json dans un nouveau fichier (par exemple locales/de.json), traduisez les textes et réglez Config.Locale = 'de'. Pas besoin de rebuild ; les lignes manquantes retombent sur l'anglais. Les voix des banquiers n'existent qu'en anglais et en français.
IBAN
| Clé | Défaut | Description |
Config.IbanPrefix | 'NT' | Préfixe de tous les IBAN, en majuscules. Un IBAN personnel ressemble à NT482913. |
Config.IbanDigits | 6 | Nombre de chiffres d'un IBAN personnel généré. |
Config.CustomIbanMaxChars | 12 | Longueur maximale d'un IBAN personnalisé qu'un joueur peut acheter, préfixe compris. |
Les comptes société prennent le préfixe et le nom du métier (NTPOLICE), les comptes de gang le préfixe, GANG et le nom du gang (NTGANGBALLAS). Les joueurs ne peuvent pas les prendre comme IBAN personnalisé.
Liquide
| Clé | Défaut | Description |
Config.UseCashAsItem | 'auto' | 'auto' : l'objet liquide avec ox_inventory, l'argent liquide du framework sinon. true force l'objet, false l'argent du framework. |
Config.CashItem | 'money' | Nom de l'objet liquide (ox_inventory money, qb cash). |
Config.BankAccount | 'bank' | Compte du framework utilisé comme banque personnelle. |
Cartes et code PIN
| Clé | Défaut | Description |
Config.RequireCreditCardForATM | true | Une carte bancaire est nécessaire pour utiliser un distributeur. false : le code PIN seul. |
Config.CreditCardItem | 'bank_card' | Nom de l'objet carte. Il doit exister dans votre inventaire, voir Installation. |
Config.FirstCardFree | true | Un personnage qui n'a jamais eu de carte reçoit la première gratuitement, au guichet ou directement au distributeur. |
Config.CardValidityDays | 90 | Nombre de jours de validité d'une nouvelle carte. 0 = les cartes n'expirent jamais. |
Config.MaxCardsPerAccount | 3 | Cartes qu'un personnage peut avoir en même temps, sans compter les expirées. 0 = sans limite. |
Config.PinDigits | 4 | Longueur du code PIN. |
Config.PinMaxAttempts | 3 | Codes PIN faux d'affilée avant que la carte soit bloquée. |
Config.PinLockoutSeconds | 300 | Durée du blocage de la carte. |
Config.PinAtBank | false | Laissez false : le code PIN n'est demandé qu'aux distributeurs. |
Comptes société et gang
| Clé | Défaut | Description |
Config.SocietyAllJobs | true | Chaque métier a un compte société, créé au premier besoin. false : seulement les métiers de Config.Societies. |
Config.Societies | police, ambulance, mechanic, realestate | Métiers dont le compte est créé au démarrage. |
Config.SocietyExcludedJobs | unemployed | Métiers qui n'ont jamais de compte. |
Config.SocietyMinGrade | 3 | En plus du patron, le grade (et au-dessus) qui ouvre le compte société. false = patron seul. |
Config.SocietyMinGradeByJob | {} | Grade par métier, par exemple { police = 4 }. |
Config.BankAuth | true | Qbox : le droit d'accès bancaire de chaque grade (dans qbx_management) décide qui ouvre les comptes société et de gang. false = les règles de grade ci-dessus. |
Config.EsxSocietyAccounts | true | ESX : les soldes société sont les comptes society_<job> d'esx_addonaccount, donc les menus patron et les factures voient le même argent. |
Config.BossGrade | nil | ESX : niveau de grade du patron (et au-dessus). nil = l'indicateur patron ou un grade nommé boss. |
Config.GangMinGrade | false | En plus du chef, le grade de gang (et au-dessus) qui ouvre le compte de gang. false = chef seul. |
Config.GangMinGradeByGang | {} | Grade par gang, par exemple { ballas = 3 }. |
Config.GangPermissionExport | hz_illegal, CanAccessGangBank | Export facultatif qui décide de l'accès au compte de gang, utilisé seulement quand sa resource tourne. false = aucun. |
Comptes partagés
| Clé | Défaut | Description |
Config.SharedAccounts | true | Les joueurs ouvrent des comptes partagés au guichet. |
Config.SharedMaxOwned | 2 | Comptes partagés qu'un personnage peut posséder. |
Config.SharedMaxMembers | 5 | Membres par compte partagé, sans compter le propriétaire. |
Config.SharedNameMax | 32 | Longueur maximale du nom d'un compte. |
Virements programmés
| Clé | Défaut | Description |
Config.MaxScheduledPerAccount | 10 | Virements programmés actifs ou en pause par compte. 0 = sans limite. |
Config.ScheduleMaxRunsShared | 52 | Nombre maximum d'exécutions d'un virement programmé société ou gang. Ceux-ci demandent toujours un nombre d'exécutions. |
Donner du liquide
| Clé | Défaut | Description |
Config.GiveCash | true | Les joueurs se donnent du liquide avec /givecash [id] <montant> ; sans ID, il va au joueur le plus proche. false : la commande n'est pas créée. |
Config.GiveCashCommand | 'givecash' | Nom de la commande. |
Config.GiveCashDistance | 3.0 | Distance maximale entre les deux joueurs, en mètres. |
Config.GiveCashMaxAmount | 0 | Plus gros don. 0 = Config.MaxAmount. |
Braquages de banque
| Clé | Défaut | Description |
Config.BankClosure | true | Une agence ferme pendant qu'elle est braquée. |
Config.BankClosureMinutes | 30 | Elle rouvre au plus tard après ce délai. 0 = seulement à la fin du braquage. |
Config.RobberyBanks | ordre de qb-bankrobbery | ID de banque du script de braquage → numéro d'agence dans Config.Banks. |
Voir Fermée pendant un braquage.
Agences
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' },
},
-- ...
}
| Champ | Description |
coords | Où se tient le joueur, devant le banquier. Le serveur mesure les joueurs depuis ce point. |
brand | Look de l'app : 'fleeca', 'maze', 'pacific', 'blaine' ou 'union'. |
ped | Le banquier : model, coords (vec4 avec l'orientation) et name, affiché dans le dialogue. |
blip | Facultatif : change n'importe quel champ de Config.Blip pour cette agence, ou false pour aucun blip. |
distance | Facultatif : distance de l'invite de cette agence. |
| Clé | Défaut | Description |
Config.InteractDistance | 3.0 | Distance à laquelle l'invite d'un guichet devient active. |
Config.InteractKey | 'E' | Touche affichée dans l'invite (libellé seulement). |
Config.Blip | sprite 108, couleur 2, échelle 0.9, libellé Bank | Blip de chaque agence. enabled = false les masque. |
Config.BlipColorByBrand | Maze 1, Fleeca 2, Pacific 46, Blaine 76, Union 29 | Couleur de blip de chaque banque. |
Config.BankPedModel | 'a_m_m_business_01' | Modèle du banquier quand l'agence n'en donne pas. |
Config.BankPedDistance | 60.0 | Distance en mètres à laquelle les banquiers apparaissent. |
Config.SessionIdleTimeout | 900 | Secondes sans aucune action avant que l'app se ferme. |
Plus de détails dans Agences et banquiers.
Banquiers et dialogue
| Clé | Défaut | Description |
Config.StaffVoice.enabled | true | Les banquiers parlent. |
Config.StaffVoice.language | 'en' | 'en', 'fr', ou 'auto' (la langue de Config.Locale). |
Config.StaffVoice.greetDistance | 5.0 | Distance en mètres à laquelle le banquier salue le joueur. |
Config.StaffVoice.greetCooldown | 300 | Secondes avant que le même banquier salue de nouveau le même joueur. |
Config.StaffVoice.lookDistance | 6.0 | Distance en mètres à laquelle le banquier suit le joueur du regard. |
Config.Dialogue.enabled | true | Parler à un banquier ouvre la boîte de dialogue. false : l'app bancaire s'ouvre tout de suite. |
Config.Dialogue.camera | true | La caméra cadre le banquier pendant le dialogue. |
Distributeurs
| Clé | Défaut | Description |
Config.AtmModels | prop_atm_01, prop_atm_02, prop_atm_03, prop_fleeca_atm | Modèles de distributeur. Chaque prop de ces modèles sur la carte est un distributeur. |
Config.AtmDistance | 1.5 | Distance en mètres à un distributeur pour avoir son invite. |
Config.AtmUse.walk | true | Le joueur marche jusqu'au distributeur. false : il reste sur place. |
Config.AtmUse.card | true | Distributeurs du jeu : le joueur insère sa carte avant que l'écran s'ouvre. |
Config.AtmUse.view | 'screen' | Distributeurs du jeu : 'screen' face à l'écran et au pavé, 'shoulder' par-dessus l'épaule du joueur. |
Config.AtmUse.finger | true | La main du joueur sur le pavé, le doigt sur la touche sous le curseur. |
Config.AtmUse.cardModel | false | Un seul prop de carte pour tout le monde. false = la carte de la banque du joueur. |
Config.AtmUse.animTime | 2.0 | Modèles de distributeur que vous ajoutez : secondes d'animation de la carte avant que l'écran s'ouvre. 0 = aucune. |
Config.AtmPositions | vide | Liste facultative des positions de distributeurs autorisées (vec3). Vide = tous les distributeurs des modèles ci-dessus. |
Config.AtmPositionTolerance | 1.5 | Distance en mètres entre un distributeur et sa position listée. |
Config.AtmBrand | 'fleeca' | Banque des distributeurs : look du distributeur en plein écran (modèles que vous ajoutez) et banque d'une première carte offerte sur place. |
Config.AtmBrandByModel | prop_fleeca_atm = 'fleeca' | La même chose, par modèle. |
Cible, sons et HUD
| Clé | Défaut | Description |
Config.Target.bank | true | Œil de ciblage sur les banquiers et leur guichet (ox_target ou qb-target, via hz_lib). |
Config.Target.atm | true | Œil de ciblage sur les distributeurs. |
Config.Target.distance | 2.0 | Portée de l'œil, en mètres. |
Config.Target.pins | true | Avec HZ-TextUi lancé : ses repères (visibles à l'approche, sans touche à tenir) au lieu de l'œil. |
Config.Sounds | sons du jeu | Sons de l'app : ouverture, fermeture, code PIN juste ou faux, succès, erreur, pavé, survol, clic, changement de page. enabled = false les coupe tous ; mettez une entrée à false pour couper ce son. |
Config.HideHud | true | Masque le HUD pendant que l'app est ouverte (HZ-Hud, ou la mini-carte du jeu). |
Sans système de cible, hz_lib affiche sa propre invite [E].
Coûts et limites
| Clé | Défaut | Description |
Config.IbanChangeCost | 5000 | Prix d'un IBAN personnalisé. |
Config.PinChangeCost | 1000 | Prix d'un changement de code PIN. Le premier code est gratuit. |
Config.CreditCardPrice | 250 | Prix d'une carte bancaire. |
Config.TransferFeePct | 0.0 | Frais sur les virements, en fraction (0.01 = 1 %), gardés par la banque. |
Config.MaxAmount | 100000000 | Montant maximum d'une seule opération. |
Les coûts sont prélevés sur la banque personnelle.
Épargne
C.Savings = {
InterestPct = 0.5,
PeriodHours = 24,
MaxBalance = 1000000,
MaxCatchUp = 7,
}
| Clé | Description |
InterestPct | Intérêts par période, en % du solde gardé toute la période. |
PeriodHours | Heures réelles entre deux versements d'intérêts. |
MaxBalance | Montant maximum qu'un personnage peut garder sur son épargne. 0 = sans limite. |
MaxCatchUp | Nombre maximum de périodes payées après une absence. 0 = sans limite. |
Fonctionnement : Épargne et prêts.
Prêts
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 },
}
| Clé | Description |
Tiers | À partir de ce score de crédit : plus gros prêt possible et ses intérêts, en % du montant pour tout le prêt. |
MinAmount | Plus petit prêt. |
Installments | Plans de remboursement proposés, en nombre d'échéances. |
PeriodHours | Heures réelles entre deux échéances. |
LateFeePct | Ajouté à la dette pour chaque échéance manquée, en % d'une échéance. |
DefaultAfter | Échéances manquées d'affilée avant que le prêt passe en défaut. |
UseSavings | Une échéance que le compte bancaire ne couvre pas est prise sur l'épargne. |
Score | Score de départ, bornes, et points gagnés ou perdus : échéance à l'heure, prêt remboursé, échéance manquée, défaut. |
Fonctionnement : Épargne et prêts.
Factures
Tout se trouve dans config/billing.lua, sous C.Billing.
| Clé | Défaut | Description |
Command | 'invoice' | Commande de chat qui établit une facture. '' = aucune commande. |
Jobs | nil | Métiers qui peuvent facturer, par exemple { 'police', 'mechanic' }. nil = tous les métiers qui ont un compte société. |
MinGrade | 0 | Grade minimum pour facturer. |
MinGradeByJob | {} | Grade par métier, par exemple { mechanic = 1 }. |
Gangs | true | Les membres d'un gang peuvent facturer au nom de leur gang. |
PlayerInvoices | false | Les joueurs peuvent facturer d'autres joueurs, sur leur propre compte. |
NoDecline | police, ambulance | Métiers dont les factures ne peuvent pas être refusées (amendes). |
MaxAmount | 1000000 | Plus grosse facture. |
MaxPending | 20 | Factures impayées qu'un joueur peut avoir en même temps. |
Distance | 5.0 | Distance maximale en mètres entre l'auteur et le joueur facturé. |
DueDays | 7 | Jours réels avant qu'une facture soit en retard. |
LateFeePct | 10 | Ajouté une fois en cas de retard, en % du montant. 0 = aucune pénalité. |
AutoCollect | true | Les factures en retard sont prélevées sur la banque dès qu'elle les couvre. |
IssuerCommission | 0 | % d'une facture de société versé à l'employé qui l'a établie. |
ReasonMax | 96 | Nombre de caractères gardés du motif. |
PhoneBrand | 'maze' | Look bancaire de l'app Factures du téléphone. |
Phones | qs-smartphone, lb-phone, hz_phone | Téléphones qui reçoivent l'app Factures et les notifications de facture, quand ils tournent. |
Fonctionnement : Factures.
Compatibilité
Dans config/compat.lua :
| Clé | Défaut | Description |
Config.Compat['qb-banking'] | true | Répond aux exports de qb-banking. false = coupé. |
Config.Compat['Renewed-Banking'] | true | Pareil pour Renewed-Banking. |
Config.Compat['esx_banking'] | true | Pareil pour esx_banking. |
Config.Compat['okokBanking'] | true | Pareil pour okokBanking. |
Config.Compat['esx_billing'] | true | Les factures envoyées par les menus de métier ESX deviennent des factures HZ-Banking. |
Config.Compat['qb-management'] | 'auto' | Anciens exports d'argent de qb-management, seulement tant qu'aucun qb-management ne tourne. |
Config.Compat.esxClientLog | false | Laisse les joueurs écrire des lignes dans leur propre historique via l'event client d'esx_banking. |
Config.MigrationPriority | okok, renewed, qb, esx | Sources de l'import, de la plus fiable à la moins fiable. |
Config.MigrationHistory | true | Importe aussi les lignes d'historique. |
Chaque relais reste coupé tant que la vraie resource de ce nom tourne. Plus de détails dans Remplacer votre script bancaire.
Dans /hzpanel
Le module Banque de /hzpanel modifie la plupart des réglages en direct sur le serveur, dans deux onglets :
- Général — préfixe IBAN ; pages Épargne, Factures et Prêts ; règles des cartes et du code PIN, mode du liquide, grades société et gang, droit banque Qbox, argent société ESX ; comptes partagés ;
/givecash et fermeture des agences.
- Économie — prix de l'IBAN, du code PIN et de la carte, frais de virement (en %), montant maximum, limites des virements programmés ; épargne ; prêts ; factures (plus grosse facture, jours avant le retard, pénalité de retard, prélèvement des factures en retard, commission de l'employé, grade minimum pour facturer, factures des gangs et des joueurs, distance de facturation).
48 réglages en tout, appliqués tout de suite, sans redémarrage. Les fichiers donnent les valeurs de départ. Une valeur enregistrée dans le panel l'emporte sur le fichier. Les agences, les distributeurs, les voix, les sons, les paliers de prêt, le score de crédit, la commande de facture et les métiers qui facturent, ainsi que la compatibilité, se règlent seulement dans les fichiers.
Convars
| Convar | Description |
hz_banking_webhook | URL du webhook Discord pour le journal de l'argent. |
hz_banking_pin_secret | Secret privé utilisé pour enregistrer les codes PIN. À régler une seule fois, avant que les joueurs choisissent leur code. |
Voir Installation.