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:
The birth year range available in the date picker is controlled by
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:How Players Obtain a Real ID
1
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.2
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.
3
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.4
Receive the identity card item
The completed card is added to the character’s inventory as the usable item defined by
Config.IDItemName (default: id_card). Players can use the item to display their details.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
1
Add the resource
Copy the
sh-identity folder into your server’s resources directory.2
Add to server.cfg
Ensure sh-identity after your framework and before any resource that depends on it:
server.cfg
3
Import the SQL file
Run
sql.sql from the resource folder against your database to create the character identity records table.4
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.5
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.6
Restart and test
Start the resource, visit a registry clerk NPC, and complete registration. Use
/idshow to confirm the card displays correctly to a nearby character.