Konfiguration

Die Konfiguration ist auf fünf offene Dateien in config/ verteilt:

DateiInhalt
main.luaSprache, Seiten an oder aus, IBAN, Bargeld, Karten und PIN, Firmen-, Gang- und gemeinsame Konten, geplante Überweisungen, /givecash, Banküberfälle
locations.luaBanken, Bankberater, Stimmen und Dialog, Geldautomaten, Target, Sounds, HUD
economy.luaKosten, Überweisungsgebühr, Höchstbetrag, Sparkonto, Kredite, Discord-Webhook
billing.luaRechnungen
compat.luaScripts, die für andere Banken geschrieben wurden, und der Kontenimport
In den Dateien steht jeder Schlüssel als C.Name (zum Beispiel C.Locale = 'en'). Diese Seite schreibt sie als Config.Name. Beträge sind ganze Zahlen.
Ihr Server, Ihre Regeln. Die fünf Dateien in config/, locales/ und die Inventarbilder sind nicht verschlüsselt. Sie können dort Sprache und Währung, IBAN-Format, Karten und PIN, Gebühren und Preise, Sparkonto, Kredite und Kredit-Score, Rechnungen, Firmen-, Gang- und gemeinsame Konten, Banken und ihre Bankberater, Stimmen, Blips, Geldautomaten-Modelle, Target oder Prompt, Sounds, Befehle und Kompatibilität ändern. Mit hz_lib lassen sich 48 dieser Einstellungen auch im Spiel über das /hzpanel ändern, ohne Neustart.

Allgemein

SchlüsselStandardBeschreibung
Config.Locale'en'Sprache der App, des Dialogs und der Meldungen: ein Dateiname aus locales/. en und fr sind enthalten. nil nutzt die Convar hz_locale.
Config.Currency'$'Währungszeichen in der App.
Config.Featuressavings, bills, loans alle trueSchaltet die Seiten Savings, Bills und Loans an oder aus. Aus: Die Seite verschwindet aus dem Menü und der Server lehnt ihre Operationen ab. Nichts wird gelöscht.
Config.RateLimitssiehe DateiHöchstzahl an Aufrufen pro Spieler in wenigen Sekunden, für Abfragen, Geldoperationen, PIN-Prüfungen und /givecash.
Config.DebugfalseZusätzliche Logs in der Konsole.
Eine weitere Sprache: Kopieren Sie locales/en.json in eine neue Datei (zum Beispiel locales/de.json), übersetzen Sie die Texte und setzen Sie Config.Locale = 'de'. Kein Rebuild nötig; fehlende Zeilen fallen auf Englisch zurück. Die Stimmen der Bankberater gibt es nur auf Englisch und Französisch.

IBAN

SchlüsselStandardBeschreibung
Config.IbanPrefix'NT'Präfix jeder IBAN, in Großbuchstaben. Eine persönliche IBAN sieht aus wie NT482913.
Config.IbanDigits6Ziffern einer generierten persönlichen IBAN.
Config.CustomIbanMaxChars12Längste Wunsch-IBAN, die ein Spieler kaufen kann, Präfix inklusive.
Firmenkonten bekommen das Präfix und den Jobnamen (NTPOLICE), Gangkonten das Präfix, GANG und den Gangnamen (NTGANGBALLAS). Spieler können diese nicht als Wunsch-IBAN nehmen.

Bargeld

SchlüsselStandardBeschreibung
Config.UseCashAsItem'auto''auto': das Bargeld-Item mit ox_inventory, sonst das Bargeld des Frameworks. true erzwingt das Item, false das Bargeld des Frameworks.
Config.CashItem'money'Name des Bargeld-Items (ox_inventory money, qb cash).
Config.BankAccount'bank'Framework-Konto, das als persönliches Bankkonto dient.

Karten & PIN

SchlüsselStandardBeschreibung
Config.RequireCreditCardForATMtrueFür einen Geldautomaten wird eine Bankkarte benötigt. false: nur die PIN.
Config.CreditCardItem'bank_card'Item-Name der Karte. Er muss in Ihrem Inventar existieren, siehe Installation.
Config.FirstCardFreetrueEin Charakter, der nie eine Karte hatte, bekommt die erste kostenlos, am Schalter oder direkt am Geldautomaten.
Config.CardValidityDays90Tage, die eine neue Karte gültig bleibt. 0 = Karten laufen nie ab.
Config.MaxCardsPerAccount3Karten, die ein Charakter gleichzeitig besitzen kann, abgelaufene nicht mitgezählt. 0 = keine Grenze.
Config.PinDigits4Länge der PIN.
Config.PinMaxAttempts3Falsche PINs in Folge, bevor die Karte gesperrt wird.
Config.PinLockoutSeconds300Wie lange die Karte gesperrt bleibt.
Config.PinAtBankfalseAuf false lassen: Die PIN wird nur an Geldautomaten abgefragt.

Firmen- & Gangkonten

SchlüsselStandardBeschreibung
Config.SocietyAllJobstrueJeder Job hat ein Firmenkonto, angelegt bei der ersten Nutzung. false: nur die Jobs aus Config.Societies.
Config.Societiespolice, ambulance, mechanic, realestateJobs, deren Konto beim Start angelegt wird.
Config.SocietyExcludedJobsunemployedJobs, die nie ein Konto haben.
Config.SocietyMinGrade3Neben dem Boss der Jobrang (und höher), der das Firmenkonto öffnet. false = nur der Boss.
Config.SocietyMinGradeByJob{}Rang pro Job, zum Beispiel { police = 4 }.
Config.BankAuthtrueQbox: Die Bankzugriffs-Einstellung jedes Rangs (in qbx_management) entscheidet, wer Firmen- und Gangkonten öffnet. false = die Rangregeln oben.
Config.EsxSocietyAccountstrueESX: Die Firmenkontostände sind die society_<job>-Konten von esx_addonaccount, Boss-Menüs und Rechnungen sehen also dasselbe Geld.
Config.BossGradenilESX: Ranglevel des Bosses (und höher). nil = das Boss-Flag oder ein Rang namens boss.
Config.GangMinGradefalseNeben dem Gang-Boss der Gangrang (und höher), der das Gangkonto öffnet. false = nur der Boss.
Config.GangMinGradeByGang{}Rang pro Gang, zum Beispiel { ballas = 3 }.
Config.GangPermissionExporthz_illegal, CanAccessGangBankOptionaler Export, der über den Gangzugriff entscheidet, nur genutzt, solange seine Resource läuft. false = keiner.

Gemeinsame Konten

SchlüsselStandardBeschreibung
Config.SharedAccountstrueSpieler eröffnen gemeinsame Konten an einem Bankschalter.
Config.SharedMaxOwned2Gemeinsame Konten, die ein Charakter besitzen darf.
Config.SharedMaxMembers5Mitglieder pro gemeinsamem Konto, Besitzer nicht mitgezählt.
Config.SharedNameMax32Längster Kontoname.

Geplante Überweisungen

SchlüsselStandardBeschreibung
Config.MaxScheduledPerAccount10Aktive oder pausierte geplante Überweisungen pro Konto. 0 = keine Grenze.
Config.ScheduleMaxRunsShared52Höchstzahl an Ausführungen einer geplanten Überweisung eines Firmen- oder Gangkontos. Diese brauchen immer eine Anzahl an Ausführungen.

Bargeld geben

SchlüsselStandardBeschreibung
Config.GiveCashtrueSpieler geben Bargeld mit /givecash [id] <amount>; ohne ID geht es an den nächsten Spieler. false: Der Befehl wird nicht angelegt.
Config.GiveCashCommand'givecash'Name des Befehls.
Config.GiveCashDistance3.0Höchstabstand zwischen den beiden Spielern, in Metern.
Config.GiveCashMaxAmount0Größter Betrag. 0 = Config.MaxAmount.

Banküberfälle

SchlüsselStandardBeschreibung
Config.BankClosuretrueEine Bank schließt, während sie überfallen wird.
Config.BankClosureMinutes30Sie öffnet spätestens nach dieser Zeit wieder. 0 = erst, wenn der Überfall endet.
Config.RobberyBanksReihenfolge von qb-bankrobberyBank-ID des Überfall-Scripts → Banknummer in Config.Banks.
Siehe Geschlossen während eines Überfalls.

Banken

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' },
    },
    -- ...
}

FeldBeschreibung
coordsWo der Spieler vor dem Bankberater steht. Der Server misst die Spieler ab diesem Punkt.
brandLook der App: 'fleeca', 'maze', 'pacific', 'blaine' oder 'union'.
pedDer Bankberater: model, coords (vec4 mit Blickrichtung) und name, der im Dialog erscheint.
blipOptional: ändert beliebige Felder von Config.Blip für diese Bank, oder false für keinen Blip.
distanceOptional: Prompt-Abstand dieser Bank.
SchlüsselStandardBeschreibung
Config.InteractDistance3.0Abstand, ab dem der Prompt eines Schalters aktiv wird.
Config.InteractKey'E'Im Prompt angezeigte Taste (nur Beschriftung).
Config.BlipSprite 108, Farbe 2, Größe 0.9, Label BankBlip jeder Bank. enabled = false blendet sie aus.
Config.BlipColorByBrandMaze 1, Fleeca 2, Pacific 46, Blaine 76, Union 29Blip-Farbe jeder Bankmarke.
Config.BankPedModel'a_m_m_business_01'Modell des Bankberaters, wenn eine Bank keines festlegt.
Config.BankPedDistance60.0Meter, ab denen Bankberater erscheinen.
Config.SessionIdleTimeout900Sekunden ohne Aktion, bevor die App schließt.
Mehr unter Banken & Bankberater.

Bankberater & Dialog

SchlüsselStandardBeschreibung
Config.StaffVoice.enabledtrueBankberater sprechen.
Config.StaffVoice.language'en''en', 'fr' oder 'auto' (die Sprache von Config.Locale).
Config.StaffVoice.greetDistance5.0Meter, ab denen der Bankberater den Spieler begrüßt.
Config.StaffVoice.greetCooldown300Sekunden, bevor derselbe Bankberater denselben Spieler wieder begrüßt.
Config.StaffVoice.lookDistance6.0Meter, ab denen der Bankberater dem Spieler mit dem Blick folgt.
Config.Dialogue.enabledtrueEin Gespräch mit dem Bankberater öffnet die Dialogbox. false: Die Bank-App öffnet sich sofort.
Config.Dialogue.cameratrueDie Kamera rahmt den Bankberater ein, solange der Dialog offen ist.

Geldautomaten

SchlüsselStandardBeschreibung
Config.AtmModelsprop_atm_01, prop_atm_02, prop_atm_03, prop_fleeca_atmGeldautomaten-Modelle. Jedes Prop dieser Modelle auf der Karte ist ein Geldautomat.
Config.AtmDistance1.5Meter zu einem Geldautomaten, ab denen sein Prompt erscheint.
Config.AtmUse.walktrueDer Spieler geht zum Geldautomaten. false: Er bleibt stehen.
Config.AtmUse.cardtrueGeldautomaten des Spiels: Der Spieler schiebt seine Karte ein, bevor sich der Bildschirm öffnet.
Config.AtmUse.view'screen'Geldautomaten des Spiels: 'screen' blickt auf Bildschirm und Tastenfeld, 'shoulder' über die Schulter des Spielers.
Config.AtmUse.fingertrueDie Hand des Spielers auf dem Tastenfeld, der Finger auf der Taste unter dem Cursor.
Config.AtmUse.cardModelfalseEin Karten-Prop für alle. false = die Karte der eigenen Bank des Spielers.
Config.AtmUse.animTime2.0Von Ihnen hinzugefügte Geldautomaten-Modelle: Sekunden Kartenanimation, bevor sich der Bildschirm öffnet. 0 = keine.
Config.AtmPositionsleerOptionale Liste erlaubter Geldautomaten-Positionen (vec3). Leer = jeder Geldautomat der Modelle oben.
Config.AtmPositionTolerance1.5Meter zwischen einem Geldautomaten und seiner gelisteten Position.
Config.AtmBrand'fleeca'Bank der Geldautomaten: Look des Vollbild-Geldautomaten (von Ihnen hinzugefügte Modelle) und Bank einer dort ausgegebenen kostenlosen ersten Karte.
Config.AtmBrandByModelprop_fleeca_atm = 'fleeca'Dasselbe, pro Modell.

Target, Sounds & HUD

SchlüsselStandardBeschreibung
Config.Target.banktrueTarget-Auge auf Bankberatern und ihrem Schalter (ox_target oder qb-target, über hz_lib).
Config.Target.atmtrueTarget-Auge auf Geldautomaten.
Config.Target.distance2.0Reichweite des Auges, in Metern.
Config.Target.pinstrueMit laufendem HZ-TextUi: dessen Pins (in der Nähe sichtbar, ohne gedrückte Taste) statt des Auges.
Config.SoundsSounds des SpielsSounds der App: Öffnen, Schließen, PIN richtig und falsch, Erfolg, Fehler, Tastenfeld, Hover, Klick, Seitenwechsel. enabled = false schaltet alle stumm; setzen Sie einen Eintrag auf false, um nur diesen stummzuschalten.
Config.HideHudtrueBlendet das HUD aus, solange die App offen ist (HZ-Hud oder die Minimap des Spiels).
Ohne Target-Resource zeigt hz_lib seinen eigenen [E]-Prompt.

Kosten & Limits

SchlüsselStandardBeschreibung
Config.IbanChangeCost5000Preis einer Wunsch-IBAN.
Config.PinChangeCost1000Preis einer PIN-Änderung. Die erste PIN ist kostenlos.
Config.CreditCardPrice250Preis einer Bankkarte.
Config.TransferFeePct0.0Gebühr auf Überweisungen als Bruchteil (0.01 = 1 %), die die Bank einbehält.
Config.MaxAmount100000000Größter Betrag einer einzelnen Operation.
Kosten werden vom persönlichen Bankkonto abgebucht.

Sparkonto

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

SchlüsselBeschreibung
InterestPctZinsen pro Periode, in % des Guthabens, das die ganze Periode über gehalten wurde.
PeriodHoursEchte Stunden zwischen zwei Zinszahlungen.
MaxBalanceHöchstbetrag, den ein Charakter auf dem Sparkonto halten darf. 0 = keine Grenze.
MaxCatchUpHöchstzahl an Perioden, die nach einer Abwesenheit nachgezahlt werden. 0 = keine Grenze.
So funktioniert es: Sparkonto & Kredite.

Kredite

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 },
}

SchlüsselBeschreibung
TiersAb diesem Kredit-Score: größter Kredit und seine Zinsen, in % des Betrags für den ganzen Kredit.
MinAmountKleinster Kredit.
InstallmentsAngebotene Rückzahlungspläne, als Anzahl der Raten.
PeriodHoursEchte Stunden zwischen zwei Raten.
LateFeePctWird bei jeder verpassten Rate zur Schuld addiert, in % einer Rate.
DefaultAfterVerpasste Raten in Folge, bevor der Kredit im Zahlungsausfall ist.
UseSavingsEine Rate, die das Bankkonto nicht deckt, wird vom Sparkonto genommen.
ScoreStartwert, Grenzen und gewonnene oder verlorene Punkte: pünktliche Rate, Kredit zurückgezahlt, verpasste Rate, Zahlungsausfall.
So funktioniert es: Sparkonto & Kredite.

Rechnungen

Alles in config/billing.lua, unter C.Billing.

SchlüsselStandardBeschreibung
Command'invoice'Chatbefehl, der eine Rechnung ausstellt. '' = kein Befehl.
JobsnilJobs, die Rechnungen ausstellen dürfen, zum Beispiel { 'police', 'mechanic' }. nil = jeder Job mit Firmenkonto.
MinGrade0Niedrigster Jobrang, der Rechnungen ausstellen darf.
MinGradeByJob{}Rang pro Job, zum Beispiel { mechanic = 1 }.
GangstrueGangmitglieder dürfen für ihre Gang Rechnungen ausstellen.
PlayerInvoicesfalseSpieler dürfen anderen Spielern Rechnungen auf ihr eigenes Konto ausstellen.
NoDeclinepolice, ambulanceJobs, deren Rechnungen nicht abgelehnt werden können (Strafzettel).
MaxAmount1000000Größte Rechnung.
MaxPending20Unbezahlte Rechnungen, die ein Spieler gleichzeitig haben darf.
Distance5.0Höchstabstand zwischen Aussteller und Empfänger, in Metern.
DueDays7Echte Tage, bevor eine Rechnung überfällig ist.
LateFeePct10Wird einmal bei Überfälligkeit addiert, in % des Betrags. 0 = keine.
AutoCollecttrueÜberfällige Rechnungen werden vom Bankkonto eingezogen, sobald es sie deckt.
IssuerCommission0% einer Firmenrechnung, die an den ausstellenden Mitarbeiter gehen.
ReasonMax96Behaltene Zeichen des Verwendungszwecks.
PhoneBrand'maze'Bank-Look der Bills-App auf dem Handy.
Phonesqs-smartphone, lb-phone, hz_phoneHandys, die die Bills-App und Rechnungsbenachrichtigungen bekommen, wenn sie laufen.
So funktioniert es: Rechnungen.

Kompatibilität

In config/compat.lua:

SchlüsselStandardBeschreibung
Config.Compat['qb-banking']trueDie Exports von qb-banking beantworten. false = aus.
Config.Compat['Renewed-Banking']trueDasselbe für Renewed-Banking.
Config.Compat['esx_banking']trueDasselbe für esx_banking.
Config.Compat['okokBanking']trueDasselbe für okokBanking.
Config.Compat['esx_billing']trueRechnungen aus ESX-Jobmenüs werden zu HZ-Banking-Rechnungen.
Config.Compat['qb-management']'auto'Alte Geld-Exports von qb-management, nur solange kein qb-management läuft.
Config.Compat.esxClientLogfalseLässt Spieler über das Client-Event von esx_banking Zeilen in ihren eigenen Verlauf schreiben.
Config.MigrationPriorityokok, renewed, qb, esxImportquellen, von der vertrauenswürdigsten zur am wenigsten vertrauenswürdigen.
Config.MigrationHistorytrueAuch die Verlaufszeilen importieren.
Jedes Relais bleibt aus, solange die echte Resource dieses Namens läuft. Mehr unter Ihr Bank-Script ersetzen.

Im /hzpanel

Das Modul Banking im /hzpanel ändert die meisten Einstellungen live auf dem Server, in zwei Tabs:

  • General — IBAN-Präfix; die Seiten Savings, Bills und Loans; Karten- und PIN-Regeln, Bargeldmodus, Firmen- und Gangränge, Qbox-Bankzugriff, ESX-Firmengeld; gemeinsame Konten; /givecash und Bankschließung.
  • Economy — Preise für IBAN, PIN und Karte, Überweisungsgebühr (in %), Höchstbetrag, Grenzen für geplante Überweisungen; Sparkonto; Kredite; Rechnungen (größte Rechnung, Tage bis zur Überfälligkeit, Säumniszuschlag, Einzug überfälliger Rechnungen, Provision für Mitarbeiter, niedrigster Rang für Rechnungen, Rechnungen von Gangs und Spielern, Abstand beim Ausstellen).
Insgesamt 48 Einstellungen, die sofort und ohne Neustart gelten. Die Dateien liefern die Startwerte. Ein im Panel gespeicherter Wert hat Vorrang vor der Datei. Banken, Geldautomaten, Stimmen, Sounds, Kreditstufen, der Kredit-Score, der Rechnungsbefehl und die Jobs, die Rechnungen ausstellen, sowie die Kompatibilität werden nur in den Dateien eingestellt.

Convars

ConvarBeschreibung
hz_banking_webhookURL des Discord-Webhooks für das Geld-Log.
hz_banking_pin_secretPrivates Geheimnis zum Speichern der PINs. Einmal setzen, bevor Spieler ihre PINs festlegen.
Siehe Installation.