>
Tutorial 2026-03-07

FiveM Bank- und Geldautomatensystementwicklung

TDYSKY

TDYSKY

Gründer & Lead Developer bei Agency Scripts

Architektur des Bankensystems

Ein Bankensystem ist das finanzielle Rückgrat jedes FiveM-Roleplay-Servers und wickelt alles ab, von einfachen Bargeldeinzahlungen bis hin zu komplexen Transfers zwischen Spielern und gemeinsamen Organisationskonten. Die meisten Frameworks, wie QBCore und Die Architektur ist in drei Schichten unterteilt: Die Datenbank speichert Kontostände und Transaktionsdatensätze, der Server validiert jeden Finanzvorgang und setzt Geschäftsregeln durch und der Client stellt über NUI die Schnittstellen zu Geldautomaten und Bankschaltern bereit. Jeder Geldvorgang muss über die Serverseite erfolgen, da die clientseitige Geldmanipulation der größte Exploit-Vektor auf FiveM-Servern ist. Sogar die Anzeige eines Kontostands sollte von einem Serverrückruf erfolgen, niemals von zwischengespeicherten clientseitigen Daten, die manipuliert werden könnten.

Datenbankschema für das Bankwesen

Deine Bankdatenbank muss persönliche Konten, gemeinsame Konten für Organisationen und Unternehmen sowie ein umfassendes Transaktionsprotokoll unterstützen. Das Transaktionsprotokoll ist nicht optional, da es sowohl als Funktion für den Spieler als auch als Verwaltungstool zur Untersuchung von Geldmissbrauch dient. Entwerfe dein Schema für Vorgänge mit hohem Durchsatz, da ausgelastete Server zu Spitzenzeiten Hunderte von Transaktionen pro Minute verarbeiten können:

Die Tabelle bank_account_access ermöglicht gemeinsame Konten, bei denen mehrere Spieler unterschiedliche Berechtigungsstufen haben können. Ein Bandenführer hat möglicherweise vollen Zugriff auf die Bandenkasse, während reguläre Mitglieder nur den Kontostand einsehen können. Die Verwendung von BIGINT für Guthabenfelder verhindert Überlaufprobleme auf Servern mit überhöhten Ökonomien, bei denen Spielerguthaben in die Milliarden gehen können.

Serverseitige Transaktionslogik

Jede Finanztransaktion muss atomar sein und auf dem Server validiert werden. Stelle durch Datenbanktransaktionen sicher, dass bei Überweisungen niemals Geld geschaffen oder vernichtet wird. Wenn Spieler A Geld an Spieler B sendet, müssen sowohl der Abzug von A als auch die Addition an B zusammen erfolgreich sein, sonst sollte keiner von beiden zutreffen. Implementiere Validierungsprüfungen für ausreichend Guthaben, eingefrorenen Kontostatus, tägliche Überweisungslimits und Mindesttransaktionsbeträge. Hier ist eine sichere Übertragungsimplementierung:

Beachte die Klausel WHERE balance >= ? in der Abzugsabfrage, die als letzter Schutz vor Rennbedingungen dient, bei denen zwei gleichzeitige Überweisungen das Konto überziehen könnten. Diese Überprüfung auf Datenbankebene ist wichtig, auch wenn du den Kontostand bereits in Lua überprüfen, da zwischen deiner Überprüfung und der tatsächlichen Aktualisierung mehrere Anfragen eingehen können.

ATM-Benutzeroberfläche

Die ATM-Schnittstelle ist ein kompaktes NUI-Panel, das schnellen Zugriff auf die wichtigsten Bankfunktionen bietet: Kontostand prüfen, Bargeld einzahlen, Bargeld abheben und Geld überweisen. Halte das Design sauber und vertraut, denn Spieler erwarten instinktiv, dass ein Geldautomat so funktioniert wie sein Gegenstück in der realen Welt. Zeige den aktuellen Kontostand gut sichtbar oben an, mit Aktionsschaltflächen unten für jeden Vorgang. Die Ein- und Auszahlungsansichten sollten voreingestellte Betragsschaltflächen für gängige Werte wie 100 $, 500 $, 1000 $ und 5000 $ sowie ein benutzerdefiniertes Betragseingabefeld enthalten. Stelle für Überweisungen Felder für die Kontonummer und den Betrag des Empfängers sowie ein optionales Notizfeld bereit. Zeige vor der Ausführung einer Transaktion einen Bestätigungsschritt an, um zu verhindern, dass versehentliche Klicks den Spielern Geld kosten. Füge eine Liste der letzten Transaktionen hinzu, die die letzten 10 Einträge anzeigt, damit Spieler ihre finanziellen Aktivitäten überprüfen können, ohne eine volle Bankfiliale aufsuchen zu müssen. Die Benutzeroberfläche des Geldautomaten sollte sich schnell anfühlen. Rufe also den Kontostand und die Transaktionsdaten in einem einzigen Rückruf ab, wenn das Menü geöffnet wird, anstatt für jede einzelne Information separate Anfragen zu stellen.

Einrichtung der ATM-Interaktion

Platziere Geldautomaten-Interaktionspunkte an den vorhandenen Geldautomaten-Standorten auf der gesamten GTA-Karte. FiveM bietet eine Liste von Geldautomaten-Modell-Hashes, die du durchlaufen können, um alle Geldautomaten-Requisiten in der Spielwelt zu finden. Verwende ein Zielsystem wie ox_target für eine saubere Interaktion oder greifst du auf Näherungsprüfungen in der Nähe jeder Geldautomaten-Stütze zurück. Wenn der Player mit einem Geldautomaten interagiert, spiele eine Animation des Players ab, der den Geldautomaten verwendet, und öffnest du dann das NUI-Bedienfeld:

Transaktionsverlauf und Kontoauszüge

Der Transaktionsverlauf verwandelt dein Banksystem von einem einfachen Ein- und Auszahlungsautomaten in ein umfassendes Finanzverwaltungstool. Spieler sollten in der Lage sein, ihren gesamten Transaktionsverlauf in Bankfilialen einzusehen, gefiltert nach Datumsbereich, Transaktionsart oder Betrag. Jeder Transaktionseintrag sollte das Datum, die Art, den Betrag, den resultierenden Saldo, die Beschreibung und die andere an der Überweisung beteiligte Partei enthalten. Implementiere die Paginierung auf der Serverseite, da das gleichzeitige Laden von Tausenden von Transaktionen den NUI-Frame einfriert und die Speicherauslastung des Servers in die Höhe treibt. Gib 20–30 Transaktionen pro Seite zurück und lass du den Player bei Bedarf weitere Transaktionen laden. Biete für Bankfilialen zusätzliche Funktionen an, die über die Möglichkeiten von Geldautomaten hinausgehen, z. B. die Eröffnung neuer Konten, die Verwaltung gemeinsamer Kontoberechtigungen, die Erstellung von Kontoauszügen für einen bestimmten Zeitraum und die Beantragung von Krediten, sofern dein Server diesen Mechanismus unterstützt. Speichere Transaktionsbeschreibungen als für Menschen lesbare Zeichenfolgen, sodass automatisierte Transaktionen von Jobs, Ladenkäufen und staatlichen Steuern klare Einträge anzeigen, die Spieler ohne Kontext verstehen können.

Mechanik eines Banküberfalls

Banküberfälle gehören zu den aufregendsten Ereignissen auf jedem Roleplay-Server und schaffen hochriskante Szenarien, an denen Kriminelle, Polizisten, Geiselnehmer und Unbeteiligte beteiligt sind. Ein gut durchdachtes Raubüberfallsystem umfasst mehrere Phasen: die Bank austricksen, den Überfall einleiten, Sicherheitssysteme durch Minispiele hacken oder bohren, die Beute verladen und gemeinsam mit der Polizei fliehen. Definiere zunächst, welche Banken ausgeraubt werden können, welchen Schwierigkeitsgrad sie haben, welche Abklingzeiten sie haben und welche Gegenstände sie benötigen. Für den Raubüberfall sollten spezielle Werkzeuge wie Thermit für Tresortüren, Hackgeräte für Sicherheitstafeln und Seesäcke zum Transport der Beute erforderlich sein. Implementiere Minispiele mit progressivem Schwierigkeitsgrad für jede Sicherheitsebene, bei denen ein fehlgeschlagener Hack zusätzliche Alarme auslöst oder den Tresor weiter sperrt:

Verwende markierte Scheine als Raubbelohnung anstelle von sauberem Bargeld und zwingen du Kriminelle dazu, das Geld über zusätzliche Gameplay-Schleifen wie Geldwäsche-Standorte oder schmutzige Geldbörsen zu waschen. Dies erweitert das Roleplay des Raubüberfalls über den eigentlichen Raubüberfall hinaus und schafft Möglichkeiten für polizeiliche Ermittlungen. Benachrichtige das Polizeileitsystem, wenn ein Raubüberfall beginnt, und verfolgen du serverseitig den Verlauf des Raubüberfalls, damit die Beamten taktisch reagieren können, je nachdem, wie weit die Kriminellen fortgeschritten sind.

Sicherheits- und Anti-Exploit-Maßnahmen

Finanzsysteme sind das Hauptziel von Ausbeutern, da sich Geld direkt in Macht im Spiel niederschlägt. Implementiere über die bereits besprochene serverseitige Validierung hinaus mehrere zusätzliche Sicherheitsebenen. Füge eine Zinsbegrenzung für alle Banking-Events hinzu, damit ein einzelner Spieler nicht Hunderte von Einzahlungs- oder Überweisungsanfragen pro Sekunde auslösen kann. Protokolliere jede Finanztransaktion mit den Kennungen und dem Zeitstempel des Quellplayers, damit Administratoren den Geldfluss verfolgen und Duplikat-Exploits identifizieren können. Implementiere ein Transaktionsumkehrsystem, mit dem Administratoren betrügerische Transaktionen rückgängig machen können, wenn Exploits entdeckt werden. Lege maximale Einzeltransaktionslimits und tägliche kumulative Limits fest, die mit dem Kontoalter und der Gesamtspielzeit des Spielers skalieren, sodass neu erstellte Konten weniger nützlich für Geldwäsche sind. Achte auf verdächtige Muster wie schnelle Hin- und Rücktransfers zwischen zwei Konten, Einzahlungen, die innerhalb von Sekunden genau dem Auszahlungsbetrag eines anderen Spielers entsprechen, oder Guthabenerhöhungen ohne entsprechende Transaktionsaufzeichnungen. Sende Discord-Webhook-Benachrichtigungen, wenn verdächtige Aktivitäten erkannt werden, damit dein Moderationsteam in Echtzeit Nachforschungen anstellen kann, ohne auf Spielerberichte warten zu müssen. Erwäge die Implementierung eines Systems zum Einfrieren von Konten, bei dem Administratoren Konten während Untersuchungen sperren können, um zu verhindern, dass das erbeutete Geld ausgegeben oder überwiesen wird, während das Problem gelöst ist.

Integration in die Serverwirtschaft

Dein Banksystem sollte als zentraler Knotenpunkt für den gesamten Geldfluss auf dem Server dienen. Leite Job-Gehaltsschecks über das Bankensystem weiter, sodass Spieler ihr Gehalt als Bankeinzahlung mit einer klaren Transaktionsaufzeichnung erhalten, aus der hervorgeht, welcher Job ihnen wie viel gezahlt hat. Verbinde Shop-Käufe, um Bankabhebungen auszulösen, wenn Spieler mit ihrer Karte statt mit Bargeld bezahlen. Dadurch entsteht eine Papierspur, die realistischer wird und den Spielern einen Grund gibt, das Bankensystem über die einfache Speicherung hinaus zu nutzen. Implementiere die automatische Abrechnung wiederkehrender Kosten wie Grundsteuern, Kfz-Versicherung und Betriebsausgaben, die in regelmäßigen Abständen vom Bankkonto des Spielers abgebucht werden. Wenn das Konto eines Spielers nicht über ausreichende Mittel für eine automatische Zahlung verfügt, sollte das System eine fehlgeschlagene Zahlung protokollieren und Konsequenzen wie Warnungen zur Beschlagnahmung von Eigentum oder Verfallen der Versicherung auslösen. Verknüpfe das Banksystem mit deiner Telefonressource, damit Spieler ihr Guthaben überprüfen, aktuelle Transaktionen einsehen und schnelle Überweisungen tätigen können, ohne physisch einen Geldautomaten oder eine Bankfiliale aufsuchen zu müssen. Diese Integration verwandelt das Bankensystem von einer isolierten Funktion in ein finanzielles Nervensystem, das jede wirtschaftliche Aktivität auf deinem Server verbindet.

Artikel teilen

Bereit, deinen Server aufzuwerten?

Schau dir unsere Premium FiveM Scripts im Agency Scripts Store an oder tritt unserer Discord-Community für Support und Updates bei.