The Creator#
Everything is run from one window. /licensecreator opens it on the Peds tab, and /placement does the same — handy as a short command for whoever moves peds around. Who gets in is covered in Installation.
Tab | What it is for | Level |
|---|---|---|
Peds | Every place a player can interact with: license offices, the authorization center and terminal, forgers. | Staff |
Licenses | The license templates: name, id, validity, image, starter flag, and the inventory item snippet. | Staff |
Designer | The card itself, layer by layer, on a live canvas. | Staff |
Categories | Groups for the template list. Deleting one keeps its templates. | Staff |
Issued | Every document handed out, and issuing one to any online player. | Staff |
Users | Who else may open the creator, and at which level. | Admin |
Settings | Validity, language, logs, theme, photo upload and fake cards. | Admin |
Every change is saved to the database and pushed straight away — to the players in the world and to anyone else with the creator open. Nothing in this page needs a restart.
What the Example City Opens With#
Importing database/sql.sql leaves you with a city that already works. All of it is editable and nothing is hardcoded — it is a starting point.
The licenses#
License | Item | Valid | Notes |
|---|---|---|---|
Identification Card |
| Default | Starter license. Government category. |
Driver License |
| 365 days | Starter license. Prints the holder's real driving categories (A, B, C). Revoked at 12 penalty points. |
LSPD Badge |
| Default | A leather wallet with the badge and the officer's rank. Police only. |
Firearms License |
| 365 days | Requires an authorization document. |
Pilot License |
| 730 days | Aviation navy and gold. |
Fishing License |
| 180 days | A seal block in place of the photo. |
Business License |
| 365 days | Issued to a licensee, with a seal block. |
Default means the template has no validity of its own and uses the Default validity from Settings — 365 days out of the box.
The peds#
Where | Ped | What it does | Blip |
|---|---|---|---|
City Hall | Citizen Affairs desk | Identification Card — 250, duplicate 100 | Yes |
City Hall | Commerce registry | Business License — 10,000, duplicate 2,500 | Yes |
City Hall | Authorization requests | Authorization center | Yes |
Vespucci Boulevard | Driving examiner | Driver License — 500, duplicate 150 | Yes |
Popular Street | Firearms registry | Firearms License — 2,500, duplicate 750, authorization required | Yes |
Los Santos International | Flight certification | Pilot License — 5,000, duplicate 1,500 | Yes |
Del Perro Pier | Wildlife warden | Fishing License — 300, duplicate 100 | Yes |
Mission Row | Badge issuing officer | LSPD Badge, free, police only | No |
Mission Row | Authorization terminal | Reviews requests — police, grade 2 and up | No |
Sandy Shores | Someone who asks no questions | Forges the ID card, the driver license and the firearms license | No |
The coordinates are sensible spots on the base map, but your map may differ. If a ped ends up inside a wall or facing the wrong way, pick it in the Peds tab and press Place in the world — it takes a few seconds.
License Templates#
A template is one kind of document your city can issue. Licenses → New template:
Field | What it does |
|---|---|
Name | What players read — "Driver License". Also the item label: Driver License - John Doe. |
Template id | The unique key, made from the name if left empty. Its lowercase form is the item name, and it is what exports and |
Initials | The prefix of every document number — |
Category | Optional grouping in the list. |
Valid for (days) | How long a license lasts from the day it is issued or renewed. Empty uses the default validity from Settings. |
Inventory image | A file name in your inventory's image folder, or a full URL. Written into the item so each license shows its own picture. |
Grant on first spawn | Issued automatically once a new character finishes creation. See Starter Licenses below. |
Available | Off hides it everywhere: its offices stop selling it and it cannot be forged or granted at spawn. |
Each row in the list shows how many layers its design has and jumps to the Designer. Duplicate copies a template with its whole design — the copy starts unavailable, so it can be finished in peace. Delete removes the template and its offices; licenses already issued from it are kept. The cube button opens the inventory item snippet for that license.
Placing a Ped#
Peds → New ped. The role decides what opens when a player interacts with it, and cannot be changed once saved:
Role | Opens |
|---|---|
License office | The purchase panel for one license, with its first-issue price, duplicate price and whether an authorization document is required. |
Authorization center | Where citizens request authorizations, collect approved documents and report their own licenses stolen or lost. |
Authorization terminal | Where the staffing job reviews requests and manages issued licenses. |
Fake card creator | The forger. Also chooses which licenses can be faked there. |
For each ped you set the interaction text, what stands there — a ped, an object (a kiosk, a terminal, a desk) or a marker only for a map that already has someone behind the counter — the model, picked from a searchable list with pictures of all 848 ped models, the map blip, and whether it spawns at all.
Press Place in the world: the window hides and a translucent ghost follows your crosshair.
Key | Does |
|---|---|
| Rotate. |
| Pitch — for objects. |
| Roll — for objects. |
| Raise or lower it. |
| Confirm. |
| Cancel and keep the old position. |
Use my position takes the spot you are standing on and its street name instead, and Teleport here takes you to a ped that is already placed.
Who can use it#
Leave the access lists empty and everyone can use the ped. Add jobs — each with a minimum grade — and only those players can; the forger also takes gangs (QBCore and Qbox gangs, or job2 on ESX). A ped a player cannot use does not even appear for them — no ped, no prompt, no blip — and it shows up the moment their job changes.
Blips#
Each ped's Show on the map switch decides whether it gets one. Sprite, colour and label come from Config.LicenseBlip for offices — groupLicenses = false adds the license name to each — and Config.GlobalInteractionBlip for the others. Blips are short-range, shown on the minimap only nearby, unless Config.BlipShortRange = false.
Designing a Card#
The Designer shows the template's card on a live canvas with the layer list beside it. Every layer can be dragged on the preview, nudged with the position fields, resized, rotated, locked, hidden, duplicated, brought forward or sent back, and deleted.
Layer | What it is |
|---|---|
Fixed text | Text you type — a title, a label, small print. Font, size, weight, style, letter spacing, line height, alignment and colour. |
Bound text | Text filled from the holder: one of the twenty fields below, with the same styling. |
Shape | A rectangle with fill, linear or radial gradient, border, outline and shadow. |
Line | A divider with thickness, angle and dash style. |
Photo | The holder's photo, taken at the counter. |
Signature | The holder's name in a handwriting font, or an image. |
Image | One of the bundled LSPD, sheriff and fire department badges, or any image URL — a city seal, a logo. |
The canvas has its own width, height and rotation — 454 × 300 for a wallet card, larger for a badge holder. The background takes a colour plus one of 32 bundled tiles and textures, from guilloche patterns to black leather.
The twenty fields#
Field | Prints |
|---|---|
Full name · First name · Last name · First and last name | John Doe · John · Doe · John Doe |
F. Lastname · Lastname, Firstname · F.Lastname · Firstname.Lastname | J. Doe · Doe, John · J.Doe · John.Doe |
Date of birth · Gender · Nationality | From the character. Gender words come from |
Citizen id | The citizenid on QBCore and Qbox, the identifier on ESX. |
Document number · Document code | The number generated from the initials, e.g. |
Issue date · Expiry date · Issued by | Dates as DD/MM/YYYY, and the office (or staff member) that issued it. |
Job · Job grade | The holder's job label and rank at the time of issue — what a badge needs. |
Dynamic content | Whatever you decide per license in |
The values are written into the item when the license is issued, so a card always shows what was true that day. A promotion or a name change shows on the next renewal — buying the license again at its office.
Buying a License#
At a license office the player presses the prompt and sees the purchase panel: the real card with their own details on it, the price, when it would expire, and — where it applies — whether they hold the authorization document.
The photo
The first license needs a photo. Take photo stands the character still, a camera frames their face, the interface hides itself for the shot and the picture is uploaded. From then on the panel offers Keep my current photo or Take a new photo.
Paying
The price comes out of
Config.PurchaseAccount— cash or bank. The first issue charges the first-issue price; a player who already holds an active one pays the duplicate price.The license
The item lands in the inventory with every field written into it. If anything goes wrong after the money is taken — no room in the inventory — the money is given back.
A duplicate keeps the same document number, replaces the old item, and renews the expiry from today — so buying again is also how a license is renewed. A license reported stolen or lost cannot be bought again until the report is cleared.
Showing a License#
The item is the license — there is no command and nothing to bind. Using it from the inventory plays a hand-over animation with a card prop, and the card appears on screen with the holder's data and photo. Every player within three metres sees the same card, so the officer in front of you reads it without you doing anything else. It fades after five seconds, or ESC closes it. Nothing is consumed.
A license that is no longer valid still shows, but stamped Expired (and greyed out), Cancelled, Stolen or Lost — read live from the records, not from the item.
-- shared/advanced.lua
Config.LicenseView = {
proximityRadius = 3.0, -- metres; 0 = only the holder sees it
displayDuration = 5, -- seconds on screen
animationDict = 'mp_common',
animationName = 'givetake1_a',
propModel = 'p_ld_id_card_002',
propBone = 28422, -- right hand
propDuration = 4,
propOffsets = { x = 0.0, y = 0.0, z = 0.0, rotX = -310.0, rotY = 10.0, rotZ = 150.0 },
}Authorizations#
Some documents should not be sold to whoever walks in. Tick Requires an authorization document on a license office and buying there needs prior approval from a job — the police, by default, for the firearms license.
The citizen asks
At the Authorization center, New request lists every license that needs approval. They pick one, add observations — why they need it — and send it. One pending request per license at a time; My requests follows its status.
The job decides
At the Authorization terminal, the Pending tab shows every request with the citizen and their observations. Approve or Reject — the reviewer's name is recorded. Who may use the terminal is set on its ped.
The citizen collects
Back at the center, the Collect tab hands over an
authorization_documentitem made out for that license.The citizen buys
At the office the panel shows Authorization document ready. Paying spends the document.
The terminal's Licenses tab is a records desk: search by citizen, document number or license, then Revoke, Reinstate or Clear report — everything an officer needs without opening the creator.
Statuses, Reports and Expiry#
Status | How it gets there | Means |
|---|---|---|
Active | Issued, renewed, reinstated, or a report cleared. | Valid until its expiry date. |
Cancelled | Revoked from the terminal, the creator, an export or by penalty points. | Not valid. Reinstate brings it back. |
Stolen / Lost | Reported by its holder at the Authorization center. | Not valid, and cannot be bought again until an officer clears the report. |
Expired | Its expiry date has passed. | Not valid. Buying it again renews it. |
Reporting a license removes it from the holder's own inventory, and from then on any copy of that card — wherever it turns up — shows stamped Stolen or Lost. An hourly pass looks for active licenses inside the warning window (30 days by default) and tells the holder, if they are online — Your Driver License expires in 12 day(s) — at most once a day per document, and can post the same warning to your webhook.
The Issued Tab#
Every document your citizens carry, newest first, searchable by citizen, document number or license. Open one to edit its expiry date, photo URL or status, set its penalty points, revoke, reinstate, clear a report or delete the record.
Issue a license hands any license to any online player — an event prize, a job badge, a fix. If they have never had a photo taken, the capture starts on their screen and the license follows as soon as it is uploaded. Your name is recorded as the issuer.
Fake Cards#
A Fake card creator ped lets players forge documents. They pick the license, type a first and last name, date of birth, gender, nationality, job and an extra line, watch the card update live, and press Forge card. The result is the same item a real license uses, and it shows like one.
What gives it away is that it has no record behind it: it carries no photo, it is not in the Issued tab, searching its number at the terminal finds nothing, and HasLicense answers false. That gives your police something to investigate.
On the forger's ped, Licenses that can be faked here limits what it prints (empty means every available license), and the access lists can require a job or a gang. Config.AllowPlayerFakeCards is the master switch; with it on, Settings → Gameplay turns forging on and off live.
Starter Licenses#
Tick Grant on first spawn on a template and every new character receives it after character creation — the ID card and driver license do out of the box. The new player is put through the photo first, then every missing starter license is issued at once.
It listens for qb-clothing, illenium-appearance and esx_skin finishing, the framework's player-loaded event and playerSpawned. A license is never granted twice: anyone who has ever held it — even revoked — is skipped. If your character creator fires something else, add it in client/custom/clothing/starter.lua or call RequestStarterLicenses from Commands and Exports.
Penalty Points#
Every issued license carries a points counter. Your traffic, police or MDT script adds points with an export, and server/custom/points.lua decides what a license can take:
PointsSystem.Config = {
enabled = true,
perTemplate = {
['driver_license'] = { threshold = 12, action = 'revoke' },
['weapon_license'] = { threshold = 5, action = 'event',
eventName = 'myresource:server:gunSuspended' },
},
}When a license reaches its threshold, revoke cancels it and event fires your own server event instead; either way the counter goes back to zero. Points can also be set by hand in the Issued tab.
The Settings#
The Settings tab holds every server-wide behaviour, in five sections. It is for the Admin level only, saved to the database, and applied to every player the moment you press Save.
Section | What it holds |
|---|---|
Validity | Default validity (365 days), the expiry warning window (30 days), the currency shown on prices, and the language of the whole system — switched live for every player. |
Logs | Webhook type and URL, and what is sent: purchases, stolen licenses, cancelled licenses, expiry warnings — plus whether players are warned in game. |
Theme | Six colours used across every panel, and the logo URL. |
Photo upload | Where license photos are stored: Discord, Imgur, Cloudinary, Fivemanage or a custom handler. See Integrations. |
Gameplay | Whether players may forge fake cards. |
These values live in your database, not in a file — including the language.
Config.Languageonly covers the first seconds of a boot; the language saved here takes over as soon as the settings load.



