DMN/Software

ProjectsFiveM

FiveM projects

At the core is dmn_base 1.13.0, a versioned library in Lua with an adapter layer for the server frameworks ESX, QBCore and Qbox, database migrations and a config with schema validation. Systems for GTA V roleplay servers build on it, from banking and invoices to crash analysis.

Key facts

As of

Resources
15 including dmn_base
Base
dmn_base 1.13.0 with a bridge for ESX, QBCore and Qbox
Minigames
9 in the dmn_base engine
Docs
77 files for dmn_base

Foundation

The library the other resources run on, and a flight recorder for running the server. The interfaces of the resources are built in React, Vue or plain HTML and CSS.

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. Since 1.8 also voice, fuel, vehicle keys, appearance, phone, seatbelt, status, garage, vehicle properties, billing, emotes, sound and weather.
Modules
Callbacks with timeout, database migrations, permissions through ACE, localization in de and en, blips, zones and peds with automatic cleanup. Since 1.12 a placement tool for points on floors and walls, since 1.13 a bridge for garage scripts (jg-advancedgarages, esx_garage).
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, dial, watering and screws.
Design tokens and docs
Colors can be changed at runtime. Plus 77 files of documentation.
  • Lua
  • NUI with React 18
  • TypeScript
  • Vite
v1.13.0
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 nine minigames: dial, sequence, wires and keypad. Interface rendered in the browser.

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.

Server essentials

What almost every roleplay server needs, from the loading screen to disconnecting idle players.

dmn_loadingscreen

Loading screen with the game's real progress, rotating tips and your own music.

  • Bar and percentage from the FiveM loading events, plus the current phase and the game's latest message, the bar never goes back
  • Server name, subtitle, links, tips and background images in the config editor, the values travel along on connect and apply from the next join
  • Your own background images fade into each other slowly, a dark gradient keeps the text readable
  • Player for your own tracks in mp3 or ogg, no music included. Volume and mute are remembered per player
  • The music fades in quietly, if the browser refuses sound, a button to start it appears
  • dmn_multichar closes it before character selection, without a multichar it closes as soon as the first character has loaded
  • No web fonts, no network requests, no build step, motion only through transform and opacity
  • Lua on dmn_base
  • HTML/CSS
Loading screen of DMN Test Server at 47 percent: bottom left the current loading phase and a tip, bottom right the player with the current track and the volume
Loaded to 47 %, without background images. Interface rendered in the browser with sample data.

dmn_multichar

Character selection with a camera scene, replaces esx_multicharacter, qb-multicharacter and the selection built into qbx_core.

  • Several characters per license: select, create, delete, deleting only with the full name as confirmation
  • The selected character stands in a camera scene, three scenes are included and adjustable in the config editor
  • Own form for new characters, the server checks name, age, height and free slot again, then the clothing editor opens
  • Pick a spawn point or continue at the last position, in a separate routing bucket during selection
  • Clothing through skinchanger with esx_skin, qb-clothing or illenium-appearance
  • Admin commands: number of slots per license, locking and unlocking characters
  • The resource creates its tables on start
  • Lua on dmn_base
  • React 18
  • Vite
Character selection with two used slots and one free slot, at the bottom right the name of the selected character with the buttons Play and Delete
Form for a new character with first name, last name, date of birth, sex and height
Selection and a new character, the dark area stands in for the camera scene in the game. Interface rendered in the browser with sample data.

dmn_hud

HUD for status, voice, vehicle, location and balance, replaces esx_hud.

  • Status as a row of small rings below the square map, which moves up a little to make room: health, armor, hunger, thirst, stress, stamina, air and voice, radio channel next to them
  • Every value has its own color, each player picks it under /hud. No value uses red by default, a value only turns red below its warning threshold
  • What has nothing to say stays hidden: armor and stress from the first point, stamina while running, air under water. An open seatbelt only blinks above a set speed
  • Speedometer in three styles, round with a scale, as a flat arc or digital. Plus gear, RPM, fuel, engine, lights, seatbelt, cruise control and indicators, per vehicle type only what exists there
  • Compass tape with street, crossing and zone, top right time, server ID, job, cash and bank
  • /hud for every player: elements on and off, values as numbers, size from 80 to 120 % and three layouts. Status, speedometer, location and info can also be dragged with the mouse. Only what differs from the server default is saved
  • /cinematic hides the HUD and the map and slides in black bars at the top and bottom
  • Voice, fuel and seatbelt scripts come through the detection in dmn_base, among them pma-voice, yaca-voice, SaltyChat, LegacyFuel and ox_fuel
  • Sends only changed values to the NUI, the speedometer bypasses React and goes straight into the DOM
  • Lua on dmn_base
  • React 18
  • Vite
On the left the gray area for the map, below it rings for health in green, armor in blue, hunger in orange, thirst in red below its warning threshold and stress in pink, then the full white voice ring while talking and radio channel 12. On the right the round speedometer at 87 km/h in third gear, below it a red seatbelt icon and the left indicator
The same state at 87 km/h in third gear in the three speedometer styles: round with a scale, a flat arc with the number below it, and digital with a large number, RPM in segments and a fuel line
Settings under /hud: eight status values with checkboxes and a row of color swatches each, the chosen color outlined, below them the speedometer choice round, arc and digital with round selected
Status and speedometer from the bottom left and bottom right corners of the screen, the gray area stands in for the game's map. Plus the three speedometer styles with the same values and the settings under /hud. Interface rendered in the browser with sample data.

dmn_weathersync

Weather and time from the server, the same for every player.

  • The server holds weather, time and blackout and sends them to everyone through a state bag
  • New weather fades in, the automatic cycle picks by weight and never the same type twice in a row
  • Adjustable clock speed, clock and weather can be frozen
  • Weather and time survive a restart
  • Panel and commands for admins, the server checks every change against the permission of the matching command
  • Reports on start when another weather script is running
  • Export that turns the sync off for single players, for example in housing shells
  • Lua on dmn_base
  • React 18
  • Vite
Weather and time panel with the current weather Cloudy, rain as the new selection, fields for the time and switches for freezing the clock, freezing the weather and blackout
Admin panel with rain as the new selection, blackout is locked without permission. Interface rendered in the browser with sample data.

dmn_carlock

Vehicle keys: lock and unlock by key press, hand keys to other players.

  • plain Lua on dmn_base
  • Key U for your own vehicle or the nearest one within 8 m, rebindable
  • Ownership from the vehicle table of the framework, no table of its own
  • /givekey and /takekeys, handed out keys belong to the character
  • Lights flash when locking, optionally a short honk
  • The server checks range and key and reads the plate from the vehicle itself
  • Exports for job vehicles, rentals and garages
Three notifications stacked: Unlocked, Locked and key for 46KRL930 handed over
Notifications through the dmn_base overlay in the colors of the resource. Interface rendered in the browser with sample data.

dmn_me

/me and /do as text above the player's head.

  • Lua on dmn_base
  • HTML/CSS
  • Own NUI instead of DrawText, up to three lines per player
  • Only reaches players in the same routing bucket and within 15 m, no text through walls
  • Labels get smaller and fainter with distance
  • The server strips HTML, chat color codes and invisible characters and checks length and cooldown
  • Optional echo in the chat
Two players with text above their heads: on the left an action with /me and below it one with /do, on the right a smaller action with /me
Labels of two players, the one on the right stands further away. Interface rendered in the browser with sample data.

dmn_afk

Disconnects players who stay idle too long, after a warning with a countdown.

  • Lua on dmn_base
  • HTML/CSS
  • Warning after a configurable time without input and without movement, any input hides it
  • The disconnect only happens once the server confirms it against its own timestamp
  • Exemptions for admins, through ACE, for jobs and below a minimum player count
  • No warning during character selection
  • /afkcheck shows how long a player has been idle
Banner saying that you are idle, with a countdown at 00:47 and a red bar running down
The warning sits at the top center of the screen, here 47 seconds before the disconnect. Interface rendered in the browser with sample data.

Economy

Accounts, ATMs and transfers, invoices between players and companies, plus houses with a real estate office.

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
  • 20 exports for other scripts
  • Framework through the dmn_base bridge: ESX, QBCore or Qbox
  • Lua on dmn_base
  • React 18
  • MUI
  • Recharts
v3.1.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 on dmn_base
  • React 18
  • 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_housing

Buying and renting houses, with a real estate office and burglaries.

  • Buying and renting through an agent who issues the contract, rent with a deposit. Keys in two levels for residents, doorbell and mailbox at the door
  • House menu as a floor plan: storage, damage spots, meter box with generator, plant and door at a glance, warnings shown on the room itself
  • House storage on ox_inventory and qb-inventory, wardrobe, alarm system with several levels
  • Real estate office with commission, rental income and overdue rents. Viewings only with the customer's consent, new properties from the interior templates
  • Burglary with a lockpick minigame, search spots and noise that sets off the alarm. The police collect evidence at the front door afterwards
  • Paintings can be cut out of the wall as in the Cayo Perico heist and are hung up with the placement tool of dmn_base
  • No chat commands, admins manage houses in the config editor of dmn_base
  • House garages through the garage script bridge in dmn_base, currently jg-advancedgarages and esx_garage
  • All texts in German and English
  • Framework through the dmn_base bridge: ESX, QBCore or Qbox
  • Lua on dmn_base
  • React 18
  • Vite
v1.5.0
House menu of Mirror Park Boulevard 47 as a floor plan with storage at 20 of 40 slots, three open damage spots, meter box at 62 percent diesel, a thirsty plant and the highlighted door. On the right two doorbell requests with accept and decline, below a note and a warrant in the mailbox
Overview in the real estate office with commission, rental income per cycle, closed deals, active rental contracts and twelve overdue rents, below the list of houses to check with the days overdue
Lockpicking minigame: lockpick in the round lock, three remaining lockpicks at the top right, meters for feel, cylinder and strain, pin 1 of 3 and the keys to move and apply tension
House menu, overview in the real estate office and the lock during a burglary. Interface rendered in the browser with sample data.

Activities

Hunting, a heist on a research lab and car theft, with police alerts for the illegal parts.

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 18
  • 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.