Framework Support
sh-identity supports both VORP and RSG frameworks. Set the framework in your server-sideconfig.lua:
config.lua
'auto' (the default) lets the resource detect your running framework automatically and is recommended for most setups.
Identity Card Fields
Each issued identity card captures the following fields from the registration form:| Field | Description |
|---|---|
| First name | Character’s registered first name |
| Last name | Character’s registered last name |
| Date of birth | Entered in YYYY-MM-DD format; display year can be overridden in config |
| Address | Free-text address string (max 60 characters) |
| Residence | Drop-down selection from Config.ResidenceOptions |
| Height | Numeric value in inches (capped at Config.CharacterLimits.maxHeight) |
| Weight | Numeric value in pounds (capped at Config.CharacterLimits.maxWeight) |
Config.BirthYearStart and Config.BirthYearEnd. The default range is 1845–1910 — widen it if your server uses a different era.
Commands
sh-identity exposes several commands that you can individually enable or disable:| Command | Config key | Default | Description |
|---|---|---|---|
/idregister | enableRegisterCommand | false | Opens the Registry NUI directly |
/idshow | enableShowCommand | true | Shows your real ID to the nearest player |
/idtest | enableTestCommand | true | Shows your real ID to yourself (for testing) |
/inspectid | Config.Inspect.command | inspectid | Authorized jobs inspect another player’s ID |
/fakeidshow | FakeID.ShowCommand | fakeidshow | Shows your fake ID to the nearest player |
/fakeidtest | FakeID.TestCommand | fakeidtest | Shows your fake ID to yourself |
How Players Obtain a Real ID
Visit a registry NPC
Players travel to a configured registry clerk NPC — set up in
Config.NPCs — and press [R] to interact. Default locations include Valentine and Saint Denis.Fill in character details
The NUI registration form prompts the player to enter their character fields. Pre-population from the framework’s character data is supported when the framework exposes it.
Pay the issuance fee
A configurable fee is charged on first-time registration (
Config.Fees.real.register, default $50) and on updates (Config.Fees.real.update, default $25). Set Config.Fees.enabled = false to waive all fees.Card Inspection
Authorized jobs can inspect another character’s identity card using the/inspectid command (configurable). The inspector must be within Config.Inspect.maxDistance (default: 3.0 meters) of the target.
Configure which jobs are allowed to inspect in config.lua:
config.lua
Card inspection does not require the inspecting player to hold their own identity card — only the character being checked needs to have a registered card.
Fake ID System
sh-identity includes a complete fake identity system gated behind a separate forger NPC. Fake IDs use a different inventory item (Config.FakeID.ItemName, default: fake_id) and separate fees (Config.Fees.fake.register, default $100).
Forger NPCs are configured in Config.FakeID.NPCs and have no map blip by default, keeping their location hidden for roleplay purposes. Players with a fake ID can use /fakeidshow to present their forged papers to nearby players.
config.lua
Integration With Other Resources
sh-identity exposes a server-side integration throughConfig.IdentityLink so that resources like sh-licenses can pull verified identity data directly from sh-identity records rather than re-collecting it:
config.lua
- sh-telegram — gate telegraph office access behind a valid card by setting
Config.UseSH_Identity = true - sh-licenses — pre-fill identity fields on license issuance from sh-identity records
Installation
Add to server.cfg
Ensure sh-identity after your framework and before any resource that depends on it:
server.cfg
Import the SQL file
Run
sql.sql from the resource folder against your database to create the character identity records table.Register inventory items
Register both
id_card and fake_id as usable items in your framework’s item registry. Item definition templates are provided in the items/ folder of the resource.Configure
Open
config.lua to set your framework, fees, residence options, birth year range, NPC locations, and optional Discord webhook URL. Add or remove entries from Config.Inspect.allowedJobs to match your server’s law enforcement job names.