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
/dmnconfigwith 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





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

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


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



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

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

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

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

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

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


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



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

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

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
