Modul Licenses
Licenses your players actually carry. Modul Licenses is a complete license, ID and credential system where every card is a real inventory item with its own data — holder name, DOB, license number, issue/expiry dates, job details and photo — presented to the nearest player on a clean, themed card UI. Drop-in for Qbox and QBCore, with ESX support via the same bridge layer.
Qbox QBCore ESX ox_inventory qb-inventory ox_target qb-target ox_lib
Cards that are actually items
No global license table, no database. Every card lives in the player's inventory with per-card metadata: full name, date of birth, sex, citizen ID, a generated license number, issue and expiry dates, department, rank, callsign and an optional mugshot photo. Cards follow the item wherever your inventory persists it — hand one over, stash it, confiscate it. ox_inventory tooltips show the card's name, number and expiry out of the box, and old or hand-spawned items rebuild their card data automatically the next time they're used.
The card UI
Using a card shows it to the closest player in range (or to yourself if nobody is nearby) with a hold-up animation and prop. The card itself is a Modul-design dark graphite document with a configurable accent gradient per license type, issuing-authority text, corner seal, watermark, footer badge, photo loading shimmer, auto-close progress line and a close hint — position it left, right or center. Everything on the card is a config field: which rows print, their labels, their fallbacks.
Three ways to issue
- WALK-UP CLERK — an NPC sells civilian licenses (ID, driver, hunting…) with per-card pricing and payment from cash, bank or an item
- DEPARTMENT ISSUING — restricted credentials (weapon permits, badges) issued person-to-person by configured jobs via the /issuelicense menu
- ADMIN & EXPORTS — ACE-gated /givelicense command and documented server exports for your own resources, including metadata overrides (department, rank, callsign)
Nine card types included, unlimited configuration
- Ships ready to use: State ID, Driver License, Hunting License, Weapons Permit, Attorney Bar Card, DA Credential, Judicial Credential, Law Enforcement ID, Fire & EMS Credential
- Add new card types in config only — fields, accent, pricing, expiry, prop, badge; no code changes
- Job restrictions per card: who may carry it and which jobs may issue it
- Duplicate prevention, printed expiry dates plus machine-readable epoch timestamps in metadata for your own expiry enforcement
- Card photos from MugShotBase64 when installed; a clean placeholder silhouette otherwise
- Locale system covering every user-facing string; command names all configurable or able to be disabled
Requirements: ox_lib and OneSync. Framework (Qbox / QBCore full, ESX experimental — see README), inventory (ox_inventory recommended, qb-inventory supported) and target (ox_target / qb-target, with a command fallback) are all auto-detected. MugShotBase64 is optional for card photos.
Installation: Drop into resources, copy the included item definitions into your inventory, ensure modul_licenses, set your clerk location. No SQL to import. Full README with config reference and troubleshooting included.
Configurable without touching code: one commented config file covers every card type and its printed fields, clerk locations, pricing and payment account, job gating, UI theme and accent gradients, issuer text, commands and permissions.