DMN/Software

ProjectsFiveM

FiveM projects

Systems and tools for GTA V roleplay servers, written in Lua, with interfaces in React or Vue. Most of them build on the shared base library dmn_base: a framework bridge for ESX, QBCore and Qbox, database migrations, event validation with rate limiting, minigames with session checks on the server against cheating, and a config editor inside the game. A flight recorder for analysing crashes completes the set.

dmn_base

The base library the other scripts run on.

Framework bridge
ESX, QBCore and Qbox.
Security
Event validation, rate limiting and distance checks.
Adapters, detected automatically
SQL (oxmysql, mysql-async), inventory (ox, qb, qs, codem, native), target (ox_target, qb-target), dispatch (several systems), plus notify, progress, TextUI and menu through ox_lib, qb, esx, okok or a custom NUI.
Modules
Callbacks with timeout, database migrations, permissions through ACE, localization in de and en, blips, zones and peds with automatic cleanup.
Config editor inside the game
/dmnconfig with schema validation, history, distribution without restart and encrypted secrets.
Logging
To Discord with categories and rate limiting, mirrored into a database table.
Minigames
Engine with session checks on the server against cheating. Included are timingbar, arm, trace, wires, sequence, keypad and dial.
Design tokens and docs
Colors can be changed at runtime. Plus around 30 files of documentation.
  • Lua
  • NUI with React 18
  • TypeScript
  • Vite
v1.6.1
Config editor of dmn_base with the list of resources on the left and the settings of dmn_banking on the right: feature toggles, currency symbol, PIN and IBAN length
Config editor inside the game, here with the settings of dmn_banking. Interface rendered in the browser with sample data.
Minigame dial: combination lock with a scale from 0 to 90 and the turning direction set by key
Minigame sequence: key sequence of four letters
Minigame wires: four colored symbols on the left that are connected to the matching symbols on the right
Minigame keypad: entering a code of four digits on a number pad
Four of the seven minigames: dial, sequence, wires and keypad. Interface rendered in the browser.

dmn_banking

System for banks and ATMs.

  • Personal, shared and business accounts with IBAN, members of shared accounts can be invited and removed
  • PIN entry at the machine, credit card as an item, ATMs and 8 bank branches
  • PIN and IBAN can be changed for a fee
  • Transfers, standing orders from 1 to 365 days, paying, rejecting or withdrawing invoices
  • Credit score that changes with salary, deposits and overdue invoices
  • Functions for the justice department: check balances, view overdue invoices, seize funds
  • Transaction chart and logs in Discord
  • Around 20 exports for other scripts
  • Lua
  • React 18
  • MUI
  • Recharts
  • ESX
  • ox_lib
v2.0.0
Account overview of dmn_banking with balance, cash, credit score, income and expenses, recent transactions and a chart of the balance over time
Account overview with history. Interface rendered in the browser with sample data.

dmn_invoices

Invoice menu for players and companies, works together with dmn_banking.

  • Tabs for Create, Received, Sent and All, the last one only for authorized jobs
  • Pick the recipient from nearby players
  • Pay, reject or withdraw invoices
  • Seizure and credit score for the justice department
  • Adjustable time range for the history
  • Lua
  • React
  • MUI
Received invoices with a status filter and an open invoice for 950 dollars with the buttons Pay and Reject
Form for a new invoice with account, IBAN or player selection, amount, due date and subject
Received invoices and a new invoice. Interface rendered in the browser with sample data.

dmn_crashlog

Flight recorder for disconnects and crashes.

  • Client snapshot every 10 s: position, state, vehicle, UI, FPS and game events
  • The server keeps a ring buffer of 12 snapshots, the client also stores them locally and submits them on the next connect after a crash
  • One database entry per drop with reason, last action, character, build and resolution
  • Network spike detection: bursts of network events and the entities involved, with model, creating script and owner
  • Timeline with resource starts and stops and events from txAdmin
  • Discord embeds depending on the type of drop, 30 days of retention
  • plain Lua on dmn_base

Ring buffer with 12 slots: the newest snapshot overwrites the oldest. When the connection drops, the last two minutes are on record.

dmn_wildlife

Hunting system with spawns based on player proximity and separate legal and illegal trade.

  • 7 hunting zones and 4 species: coyote, boar, deer and mountain lion
  • Animals only spawn near players, dead ones are cleaned up
  • Skinning with a precision minigame, knife requirement configurable
  • The hunting rifle only hits game, animals that were run over or blown up are worthless
  • Legal and illegal kept apart, poaching is reported to the police with a search zone and random offset
  • Dealer with a sales menu
  • Lua on dmn_base
  • React 18
  • Vite
Sales menu at the game dealer with meat and pelts, quantity selection per item and the mountain lion pelt as a black market item
Sales menu at the game dealer. Interface rendered in the browser with sample data.

dmn_humanelabs

Mission system for a heist on a research lab, with its state kept in the database.

  • Cooldown for the whole server, stored in the database
  • Minimum number of responders, as freely definable job groups
  • Checks for missing items on start, commands for admins
  • Two ways in with different alarms: rolling doors opened with thermite trigger a full alarm, the cooling tunnel only a silent one
  • Guards with reinforcement waves, contact and buyer at random locations
  • Loot is carried and loaded into the trunk, sold for dirty money
  • Optional secret terminal with a hacking minigame, plus elevators, effects and dispatch
  • Lua on dmn_base
  • React 18
  • Vite
Briefing for the Humane Labs mission with description, difficulty, crew size and payout
Mission briefing. Interface rendered in the browser with sample data.

dmn_carsteal

Mission system with unlockable classes, checks on the server and police notifications.

  • Vehicle classes are unlocked by completed missions, each class requires a minimum number of police officers
  • Missions survive a reconnect
  • Delivery is blocked while police are nearby
  • Police receive an alert and regular position updates
  • Time limit with penalty, bonus based on vehicle condition
  • Contact at changing locations, the search area shrinks as you get closer
  • Breaking in with a wires minigame
  • Lua on dmn_base
  • React
  • Vite
Mission center of dmn_carsteal with rank, progress to the next class and three vehicle classes, the third of which is still locked
Mission center with rank and vehicle classes. Interface rendered in the browser with sample data.