Browse docs
Registries and certificates
Open Registry in File Explorer. Registers appear as folders, with the same search, detail rows and context menus as other files. Every entry has a stable File ID such as REG-000002; staff select people by name and date of birth, not by technical character identifiers.
Registry is enabled in fresh defaults. On an existing server, a saved disabled Specialist Registries setting still takes precedence. Citizens and Vehicles remain separate directories.
Supplied registers
| Register | Saving or changing an entry | Removing an entry |
|---|---|---|
| Name changes | Updates the selected character's first and last name through the configured framework | Archives the record; does not restore an earlier name |
| Marriages & divorces | Records both partners, date and notes. Disable Marriage in effect to enter the divorce date and decision | Archives the record |
| Weapon licenses | Grants or revokes the configured license through the Sky Base license provider | Revokes an active license and archives its entry |
| Business register | Records the business, registered owner, activity, address and status | Archives the record |
Marriages do not automatically change surnames. A business entry does not create a framework job or bank account. Person searches use the same Citizens roster as File Explorer; an empty roster has no results. Manual citizen entries can be used for marriages and businesses. Name changes and license actions additionally need a linked framework character.
Choose which licenses DOJ can issue
In /jobconfig → DOJ → Registry → License registers, add a provider license type and the name of its register. Each configured type becomes its own folder, such as Weapon licenses or Business licenses. The shipped list contains only weapon.
With the Job Configurator disabled, edit:
Config.RegistryLicenses = { definitions = {
{ type = "weapon", label = "Weapon licenses" },
-- Add another type only after creating it in your license provider.
} }
An empty list enables no license registers. Removing a type hides its register while retaining records and existing licenses. A provider's full license catalog does not automatically become an issuing menu here. Citizen-profile license administration has its own permission and is separate from these selected registers.
Existing license holders
Supported providers import existing holders when the register is opened or changed. Import does not grant a license again or invent its original issue date or issuer. Later provider grants and revocations synchronize with the register while preserving notes, authors and clearance.
Complete holder import is supported by the ESX, QB, Qbox and standalone Sky license providers, CodeM wallet, and STG wallet with a supported backing provider. Other providers show an incomplete-list notice. A known holder can still be selected from Citizens. A failed provider lookup is an error, not an empty register. Custom providers need a complete online-and-offline Holders(license_type) implementation to support the import.
View and print a certificate
Save the entry, then choose View certificate. The certificate uses the saved revision and its assigned published template. Choose Print and collect the copy from a configured job printer.
The five supplied layouts cover name changes, marriages, divorces, licenses and businesses. Find them together under Document templates → Registry; the Registry column shows their assignments. The marriage's recorded status selects the marriage or divorce layout.
The certificate includes the original recording employee, recording date, File ID and revision, plus the employee issuing the extract. The name is typeset as a signature beside a DOJ seal; it is not a captured handwritten signature. Imported licenses retain their import provenance. Printed copies remain tied to the saved version.
Register certificates use the Jobs Base job_document item. Install it and its image in addition to DOJ's document item; see Inventory items. The current supplied certificate revisions publish automatically while they remain uncustomized. Custom templates must be reviewed and published explicitly. Copy a template to start a separate layout.
Configure or add a register
| File or setting | Purpose |
|---|---|
config/registry.lua | License-register selection, access overrides and optional legacy catalog |
config/registry/<key>.lua | Label, fields, default access and certificate template key |
config/registry/server/<key>.lua | Create(context), Update(context) and Remove(context) for server-side effects |
config/registry/client/<key>.lua | Optional presentation hooks after a successful action |
/jobconfig → DOJ → Registry → Registry file access | Enabled state, jobs/groups and read/edit clearance for each file register |
Copy the supplied marriage definition and its server file, choose a unique lowercase key, adapt the fields and restart DOJ. Keep that key stable once records exist. No source or manifest edit is needed. Available field types are text, long text, number, date, boolean and selection; control = "person" uses Citizens selection.
Server hooks receive the authorized actor, validated fields and the previous entry. Return true to save or false, "error_key" to reject. The registry service handles storage and audit. Before an external change, register compensation through context.OnRollback; follow the examples and hook contract in the shipped config/registry/README.md. Client hooks are for presentation and do not authorize writes.
Writes require current job/duty access, the court-administration role, clearance and the register's write permission. Name and license registers use their dedicated authorization permissions. Existing legacy registry data stays in its own workflow and is not replayed through the new hooks.