DMN/Software

ProjekteFiveM

Projekte für FiveM

Systeme und Werkzeuge für Rollenspielserver in GTA V, geschrieben in Lua, die Oberflächen in React oder Vue. Die meisten bauen auf der gemeinsamen Basisbibliothek dmn_base auf: Framework Bridge für ESX, QBCore und Qbox, Datenbankmigrationen, Prüfung von Events mit Ratenbegrenzung, Minispiele mit Sitzungsprüfung auf dem Server gegen Cheats und ein Config Editor im Spiel. Dazu kommt ein Flight Recorder für die Analyse von Abstürzen.

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.
Module
Callbacks mit Timeout, Datenbankmigrationen, Berechtigungen über ACE, Lokalisierung in de und en, Blips, Zonen und Peds mit automatischem Aufräumen.
Config Editor im Spiel
/dmnconfig mit 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 und dial.
Design Tokens und Doku
Farben lassen sich zur Laufzeit umstellen. Dazu rund 30 Dateien Dokumentation.
  • Lua
  • NUI mit React 18
  • TypeScript
  • Vite
v1.6.1
Config Editor von dmn_base mit der Liste der Ressourcen links und den Einstellungen von dmn_banking rechts: Schalter für Funktionen, Währungssymbol, PIN und Länge der IBAN
Config Editor im Spiel, hier mit den Einstellungen von dmn_banking. Oberfläche im Browser mit Beispieldaten.
Minispiel dial: Zahlenschloss mit Skala von 0 bis 90 und Drehrichtung per Taste
Minispiel sequence: Tastenfolge aus vier Buchstaben
Minispiel wires: vier farbige Symbole links, die mit den passenden Symbolen rechts verbunden werden
Minispiel keypad: Eingabe eines vierstelligen Codes über einen Ziffernblock
Vier der sieben Minispiele: dial, sequence, wires und keypad. Oberfläche im Browser.

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
  • Rund 20 Exports für andere Scripts
  • Lua
  • React 18
  • MUI
  • Recharts
  • ESX
  • ox_lib
v2.0.0
Kontoübersicht von dmn_banking mit Kontostand, Bargeld, Bonität, Eingängen und Ausgängen, letzten Buchungen und einem Diagramm zum Verlauf des Kontostands
Kontoübersicht mit Verlauf. Oberfläche im Browser mit Beispieldaten.

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
  • React
  • MUI
Empfangene Rechnungen mit Filter nach Status und einer offenen Rechnung über 950 Dollar mit den Knöpfen Bezahlen und Ablehnen
Formular für eine neue Rechnung mit Konto, IBAN oder Spielerauswahl, Betrag, Fälligkeit und Betreff
Empfangene Rechnungen und neue Rechnung. Oberfläche im Browser mit Beispieldaten.

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.

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
Verkaufsmenü beim Wildhändler mit Fleisch und Fellen, Mengenwahl je Ware und dem Berglöwenfell als Ware für den Schwarzmarkt
Verkaufsmenü beim Wildhändler. Oberfläche im Browser mit Beispieldaten.

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
Briefing zum Auftrag Humane Labs mit Beschreibung, Schwierigkeit, Größe der Crew und Ertrag
Briefing zum Auftrag. Oberfläche im Browser mit Beispieldaten.

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
  • Vite
Auftragszentrale von dmn_carsteal mit Rang, Fortschritt bis zur nächsten Klasse und drei Fahrzeugklassen, von denen die dritte noch gesperrt ist
Auftragszentrale mit Rang und Fahrzeugklassen. Oberfläche im Browser mit Beispieldaten.