config.server.lua. More in the Government Portal guide.
Runs on: shared. This file stays editable when the resource is escrow-protected. Restart the resource after editing.
Full View
Preview File Updated: 3.7.0 - 02.11.2026config/government.lua
Config = Config or {}
-- ─────────────────────────────────────────────
-- Government Portal (Config.Features.government)
--
-- An app on the City Hall PC for government staff: review business
-- registrations, manage businesses, look up citizens and manage their
-- licenses, documents and bills, and read the activity log.
--
-- access 'job' staff get in through their job (Config.Government.jobs)
-- 'login' staff sign in with an account (config.server.lua →
-- Config.GovernmentAccounts — never put passwords here,
-- this file is sent to every client)
-- 'both' job players get in directly, everybody else can sign in
-- ─────────────────────────────────────────────
Config.Government = {
access = 'both',
-- ── Job access ─────────────────────────────
-- job name → { [minimum grade] = role }. The highest grade the player
-- reaches decides the role.
jobs = {
['government'] = { [0] = 'clerk', [2] = 'manager', [4] = 'mayor' },
-- ['mayor'] = { [0] = 'mayor' },
-- ['police'] = { [3] = 'auditor' },
},
-- ── Roles ──────────────────────────────────
-- permissions:
-- businesses.review approve / reject business registrations
-- businesses.manage suspend, reactivate and close any business, link it
-- to a job, revoke permits, remove vehicles / employees
-- permits.review approve / reject business permit applications
-- businesses.inspect record inspections and fine businesses
-- citizens.view search citizens, see licenses, documents, bills, vehicles
-- licenses.manage grant and revoke licenses
-- documents.manage revoke documents
-- bills.manage cancel unpaid bills
-- log.view read the activity log
-- taxes.view see personal and business taxes and the treasury
-- taxes.manage add and cancel taxes
-- treasury.manage transfer treasury money to a job's society account
-- '*' everything
roles = {
clerk = { label = 'Clerk', permissions = { 'businesses.review', 'permits.review', 'citizens.view' } },
inspector = { label = 'Inspector', permissions = { 'businesses.inspect', 'citizens.view' } },
auditor = { label = 'Auditor', permissions = { 'citizens.view', 'log.view', 'taxes.view' } },
manager = { label = 'Manager', permissions = {
'businesses.review', 'businesses.manage', 'permits.review', 'businesses.inspect', 'citizens.view',
'licenses.manage', 'documents.manage', 'bills.manage', 'log.view', 'taxes.view', 'taxes.manage',
} },
mayor = { label = 'Mayor', permissions = { '*' } },
},
-- ── Login ──────────────────────────────────
loginAttempts = 5, -- wrong passwords before the player is locked out
lockoutSeconds = 120, -- lockout length
-- ── Business registrations ─────────────────
-- approval new businesses wait for review before they are listed
-- refundOnReject share of the registration fee paid back when rejected
-- (0.0 = nothing, 1.0 = everything)
-- requireReason a reason must be entered when rejecting / suspending
businesses = {
approval = true,
refundOnReject = 1.0,
requireReason = true,
},
-- ── Inspections ────────────────────────────
-- results choices for an inspection
-- maxFine highest fine an inspector can issue (0 = no fines)
-- dueDays days the owner has to pay the fine (Bills & Fines)
inspections = {
results = { 'Passed', 'Passed with remarks', 'Failed' },
maxFine = 50000,
dueDays = 7,
society = nil, -- e.g. 'society_government' to pay fines into a society account
},
-- Days of activity log shown in the portal (older entries stay in the DB)
logDays = 30,
}
