ProjekteFiveM
Projekte für FiveM
Im Kern steht dmn_base 1.13.0, eine versionierte Bibliothek in Lua mit einer Adapterschicht für die Server-Frameworks ESX, QBCore und Qbox, Datenbankmigrationen und einer Config mit Schemaprüfung. Darauf bauen Systeme für Rollenspielserver in GTA V auf, von Bank und Rechnungen bis zur Analyse von Abstürzen.
Eckdaten
Stand
- Ressourcen
- 15 samt dmn_base
- Grundlage
- dmn_base 1.13.0 mit Bridge für ESX, QBCore und Qbox
- Minispiele
- 9 in der Engine von dmn_base
- Doku
- 77 Dateien zu dmn_base
Grundlage
Die Bibliothek, auf der die übrigen Ressourcen laufen, und ein Flight Recorder für den Betrieb des Servers. Die Oberflächen der Ressourcen sind in React, Vue oder schlichtem HTML und CSS gebaut.
dmn_base
Die Basisbibliothek, auf der die übrigen Scripts laufen.
- Framework-Bridge
- ESX, QBCore und Qbox.
- Security
- Prüfung von Events, Ratenbegrenzung und Distanzprüfung.
- Adapter, automatisch erkannt
- SQL (oxmysql, mysql-async), Inventar (ox, qb, qs, codem, native), Target (ox_target, qb-target), Dispatch (mehrere Systeme), dazu Notify, Progress, TextUI und Menü über ox_lib, qb, esx, okok oder eine eigene NUI. Seit 1.8 auch Voice, Tank, Fahrzeugschlüssel, Aussehen, Telefon, Gurt, Status, Garage, Fahrzeugdaten, Rechnungen, Emotes, Sound und Wetter.
- Module
- Callbacks mit Timeout, Datenbankmigrationen, Berechtigungen über ACE, Lokalisierung in de und en, Blips, Zonen und Peds mit automatischem Aufräumen. Seit 1.12 ein Platzierungswerkzeug für Punkte an Boden und Wand, seit 1.13 eine Bridge für Garagen-Scripts (jg-advancedgarages, esx_garage).
- Config-Editor im Spiel
/dmnconfigmit Schemaprüfung, History, Verteilung ohne Neustart und verschlüsselten Secrets.- Logging
- Nach Discord mit Kategorien und Ratenbegrenzung, gespiegelt in eine Datenbanktabelle.
- Minispiele
- Engine mit Sitzungsprüfung auf dem Server gegen Cheats. Enthalten sind timingbar, arm, trace, wires, sequence, keypad, dial, watering und screws.
- Design Tokens und Doku
- Farben lassen sich zur Laufzeit umstellen. Dazu 77 Dateien Dokumentation.
- Lua
- NUI mit React 18
- TypeScript
- Vite





dmn_crashlog
Flight Recorder für Verbindungsabbrüche und Abstürze.
- Snapshot vom Client alle 10 s: Position, Zustand, Fahrzeug, UI, FPS und Game Events
- Der Server hält einen Ringpuffer von 12 Snapshots, der Client speichert zusätzlich lokal und reicht nach einem Crash beim nächsten Verbinden nach
- Pro Drop ein Eintrag in der Datenbank mit Grund, letzter Aktion, Charakter, Build und Auflösung
- Erkennung von Netzspitzen: Häufungen von Netzwerkevents und die beteiligten Entities mit Modell, erzeugendem Script und Owner
- Timeline mit Starts und Stopps von Resources und Ereignissen aus txAdmin
- Embeds in Discord je nach Art des Drops, 30 Tage Aufbewahrung
- reines Lua auf dmn_base
Ringpuffer mit 12 Plätzen: Der neueste Snapshot überschreibt den ältesten. Bricht die Verbindung ab, liegen die letzten zwei Minuten vor.
Server-Grundausstattung
Was fast jeder Rollenspielserver braucht, vom Ladebildschirm bis zur Trennung inaktiver Spieler.
dmn_loadingscreen
Ladebildschirm mit dem echten Fortschritt des Spiels, wechselnden Tipps und eigener Musik.
- Balken und Prozent aus den Ladeereignissen von FiveM, dazu die aktuelle Phase und die letzte Meldung des Spiels, der Balken läuft nie zurück
- Servername, Unterzeile, Links, Tipps und Hintergrundbilder im Config-Editor, die Werte reisen beim Verbinden mit und gelten ab dem nächsten Beitritt
- Eigene Hintergrundbilder blenden langsam ineinander, ein dunkler Verlauf hält den Text lesbar
- Player für eigene Titel in mp3 oder ogg, Musik liegt nicht bei. Lautstärke und Stumm merkt er sich pro Spieler
- Die Musik blendet leise ein, verweigert der Browser den Ton, erscheint ein Knopf zum Starten
- dmn_multichar schließt ihn vor der Charakterauswahl, ohne Multichar schließt er sich, sobald der erste Charakter geladen ist
- Keine Webfonts, keine Netzwerkanfragen, kein Build, Bewegung nur über transform und opacity
- Lua auf dmn_base
- HTML/CSS

dmn_multichar
Charakterauswahl mit Kameraszene, ersetzt esx_multicharacter, qb-multicharacter und die Auswahl von qbx_core.
- Mehrere Charaktere je Lizenz: auswählen, neu anlegen, löschen, Löschen nur mit dem vollen Namen als Bestätigung
- Der gewählte Charakter steht in einer Kameraszene, drei Szenen sind dabei und im Config-Editor einstellbar
- Eigenes Formular für neue Charaktere, der Server prüft Name, Alter, Größe und freien Platz noch einmal, danach öffnet der Kleidungseditor
- Startpunkt wählen oder am letzten Standort weiterspielen, während der Auswahl in einem eigenen Routing-Bucket
- Kleidung über skinchanger mit esx_skin, qb-clothing oder illenium-appearance
- Befehle für Admins: Anzahl der Plätze je Lizenz, Charaktere sperren und entsperren
- Die Tabellen legt die Resource beim Start selbst an
- Lua auf dmn_base
- React 18
- Vite


dmn_hud
HUD für Status, Stimme, Fahrzeug, Ort und Kontostand, ersetzt esx_hud.
- Status als Reihe kleiner Ringe unter der eckigen Karte, die dafür ein Stück nach oben rückt: Leben, Weste, Hunger, Durst, Stress, Ausdauer, Luft und Stimme, daneben der Funkkanal
- Jeder Wert hat eine eigene Farbe, die jeder Spieler unter /hud wählt. Rot ist keinem Wert vorbelegt, rot wird ein Wert erst unter seiner Warnschwelle
- Was nichts zu sagen hat, bleibt weg: Weste und Stress ab dem ersten Punkt, Ausdauer beim Rennen, Luft unter Wasser. Ein offener Gurt blinkt erst ab einem einstellbaren Tempo
- Tacho in drei Stilen, rund mit Skala, als flacher Bogen oder digital. Dazu Gang, Drehzahl, Tank, Motor, Licht, Gurt, Tempomat und Blinker, je Fahrzeugart nur das, was es dort gibt
- Kompassband mit Straße, Kreuzung und Zone, rechts oben Uhrzeit, Server-ID, Job, Bargeld und Bank
- /hud für jeden Spieler: Elemente an und aus, Werte als Zahl, Größe von 80 bis 120 % und drei Anordnungen. Status, Tacho, Ort und Info lassen sich zusätzlich mit der Maus verschieben. Gespeichert wird nur, was von der Vorgabe des Servers abweicht
- /cinematic blendet HUD und Karte aus und zieht oben und unten schwarze Balken ein
- Voice-, Tank- und Gurt-Scripts kommen über die Erkennung von dmn_base, darunter pma-voice, yaca-voice, SaltyChat, LegacyFuel und ox_fuel
- Schickt nur geänderte Werte an die NUI, der Tacho läuft an React vorbei direkt ins DOM
- Lua auf dmn_base
- React 18
- Vite



dmn_weathersync
Wetter und Uhrzeit vom Server, für alle Spieler gleich.
- Der Server hält Wetter, Uhrzeit und Blackout und verteilt sie über einen State Bag an alle
- Neues Wetter wird überblendet, der automatische Wechsel zieht gewichtet und nie zweimal denselben Typ hintereinander
- Tempo der Uhr einstellbar, Uhr und Wetter lassen sich anhalten
- Wetter und Uhrzeit überstehen einen Neustart
- Panel und Befehle für Admins, der Server prüft jede Änderung einzeln gegen die Rechte des passenden Befehls
- Meldet beim Start, wenn ein anderes Wetter-Script mitläuft
- Export, der den Sync für einzelne Spieler abschaltet, etwa in Housing-Shells
- Lua auf dmn_base
- React 18
- Vite

dmn_carlock
Fahrzeugschlüssel: auf- und abschließen per Taste, Schlüssel an andere Spieler weitergeben.
- reines Lua auf dmn_base
- Taste U für das eigene Fahrzeug oder das nächste im Umkreis von 8 m, frei belegbar
- Besitz aus der Fahrzeugtabelle des Frameworks, keine eigene Tabelle
- /givekey und /takekeys, vergebene Schlüssel hängen am Charakter
- Lichter blinken beim Schließen, optional ein kurzes Hupen
- Der Server prüft Reichweite und Schlüssel und liest das Kennzeichen selbst vom Fahrzeug
- Exports für Jobfahrzeuge, Mietwagen und Garagen

dmn_me
/me und /do als Text über dem Kopf des Spielers.
- Lua auf dmn_base
- HTML/CSS
- Eigene NUI statt DrawText, bis zu drei Zeilen je Spieler
- Kommt nur bei Spielern im selben Routing-Bucket und im Umkreis von 15 m an, hinter einer Wand bleibt der Text aus
- Mit dem Abstand werden die Labels kleiner und blasser
- Der Server entfernt HTML, Farbcodes aus dem Chat und unsichtbare Zeichen und prüft Länge und Abklingzeit
- Wiederholung im Chat optional

dmn_afk
Trennt Spieler, die zu lange nichts tun, nach einer Warnung mit Countdown.
- Lua auf dmn_base
- HTML/CSS
- Warnung nach einstellbarer Zeit ohne Eingabe und ohne Bewegung, jede Eingabe blendet sie aus
- Getrennt wird erst, wenn der Server es an seinem eigenen Zeitstempel bestätigt
- Ausnahmen für Admins, per ACE, für Jobs und unter einer Mindestzahl an Spielern
- Keine Warnung in der Charakterauswahl
- /afkcheck zeigt, wie lange ein Spieler ohne Eingabe ist

Wirtschaft
Konten, Geldautomaten und Überweisungen, Rechnungen zwischen Spielern und Firmen, dazu Häuser mit Maklerbüro.
dmn_banking
System für Bank und Geldautomaten.
- Private, geteilte und Firmenkonten mit IBAN, bei geteilten Konten lassen sich Mitglieder einladen und entfernen
- Eingabe der PIN am Automaten, Kreditkarte als Item, Geldautomaten und 8 Bankfilialen
- PIN und IBAN gegen Gebühr änderbar
- Überweisungen, Daueraufträge von 1 bis 365 Tagen, Rechnungen bezahlen, ablehnen oder zurücknehmen
- Bonitätsscore, der sich durch Gehalt, Einzahlungen und überfällige Rechnungen ändert
- Funktionen für die Justiz: Kontostand prüfen, überfällige Rechnungen einsehen, pfänden
- Umsatzdiagramm und Logs in Discord
- 20 Exports für andere Scripts
- Framework über die Bridge von dmn_base: ESX, QBCore oder Qbox
- Lua auf dmn_base
- React 18
- MUI
- Recharts

dmn_invoices
Rechnungsmenü für Spieler und Firmen, arbeitet mit dmn_banking zusammen.
- Tabs Erstellen, Erhalten, Gesendet und Alle, der letzte nur für berechtigte Jobs
- Empfänger aus den Spielern in der Nähe auswählen
- Rechnungen bezahlen, ablehnen oder zurücknehmen
- Pfändung und Bonität für die Justiz
- Zeitraum für den Verlauf einstellbar
- Lua auf dmn_base
- React 18
- MUI


dmn_housing
Häuser kaufen und mieten, mit Maklerbüro und Hauseinbrüchen.
- Kauf und Miete über einen Makler, der den Vertrag ausstellt, Miete mit Kaution. Schlüssel in zwei Stufen für Mitbewohner, Klingel und Briefkasten an der Tür
- Hausmenü als Grundriss: Lager, Schadensstellen, Zählerkasten mit Generator, Pflanze und Tür auf einen Blick, Warnungen direkt am Raum
- Hauslager auf ox_inventory und qb-inventory, Kleiderschrank, Alarmanlage in Stufen
- Maklerbüro mit Provision, Mieteinnahmen und überfälligen Mieten. Besichtigungen nur mit Zustimmung des Kunden, neue Objekte aus den Vorlagen der Interiors
- Einbruch mit Dietrich-Minispiel, Fundstellen und Lärm, der den Alarm auslöst. Die Polizei sichert danach Spuren an der Haustür
- Gemälde lassen sich wie beim Cayo-Perico-Raub aus der Wand schneiden und werden mit dem Platzierungswerkzeug von dmn_base aufgehängt
- Keine Chat-Befehle, Admins verwalten Häuser im Config-Editor von dmn_base
- Hausgaragen über die Bridge für Garagen-Scripts in dmn_base, heute jg-advancedgarages und esx_garage
- Alle Texte auf Deutsch und Englisch
- Framework über die Bridge von dmn_base: ESX, QBCore oder Qbox
- Lua auf dmn_base
- React 18
- Vite



Aktivitäten
Jagd, ein Raubzug im Forschungslabor und Fahrzeugdiebstahl, die illegalen Teile jeweils mit Meldung an die Polizei.
dmn_wildlife
Jagdsystem mit Spawns nach Nähe der Spieler und getrenntem legalem und illegalem Handel.
- 7 Jagdzonen und 4 Tierarten: Kojote, Wildschwein, Hirsch und Berglöwe
- Tiere spawnen nur in der Nähe von Spielern, tote werden aufgeräumt
- Ausnehmen mit einem Minispiel auf Präzision, Messerpflicht einstellbar
- Die Jagdwaffe trifft nur Wild, überfahrene oder gesprengte Tiere sind wertlos
- Legal und illegal getrennt, Wilderei wird an die Polizei gemeldet, mit Suchzone und zufälligem Versatz
- Händler mit Verkaufsmenü
- Lua auf dmn_base
- React 18
- Vite

dmn_humanelabs
Missionssystem für einen Raubzug im Forschungslabor, mit Zustand in der Datenbank.
- Cooldown für den ganzen Server, gespeichert in der Datenbank
- Mindestanzahl an Einsatzkräften, als frei definierbare Jobgruppen
- Prüft beim Start fehlende Items, Befehle für Admins
- Zwei Wege hinein mit unterschiedlichem Alarm: Rolltore mit Thermit lösen vollen Alarm aus, der Kühltunnel nur stillen
- Wachen mit Verstärkungswellen, Auftraggeber und Ankäufer an zufälligen Orten
- Beute wird getragen und in den Kofferraum geladen, Verkauf gegen Schwarzgeld
- Optionales Geheimterminal mit einem Minispiel zum Hacken, dazu Aufzüge, Effekte und Dispatch
- Lua auf dmn_base
- React 18
- Vite

dmn_carsteal
Auftragssystem mit freischaltbaren Klassen, serverseitigen Prüfungen und Polizeibenachrichtigung.
- Fahrzeugklassen werden über abgeschlossene Aufträge freigeschaltet, je Klasse gilt eine Mindestanzahl Polizei
- Aufträge überstehen einen Reconnect
- Abgabe blockiert, solange Polizei in der Nähe ist
- Die Polizei bekommt eine Meldung und regelmäßig die Position
- Zeitlimit mit Abzug, Bonus nach Zustand des Fahrzeugs
- Auftraggeber mit wechselnden Standorten, das Suchgebiet schrumpft beim Annähern
- Knacken per Minispiel mit Drähten
- Lua auf dmn_base
- React 18
- Vite
