Framework Support
sh-society 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.
Commands
| Command | Config key | Description |
|---|---|---|
/society | Config.Commands.Society | Open the society boss/employee panel |
/socadmin | Config.Commands.SocietyAdmin | Open the admin society overview panel |
/bills | Config.Commands.Bills | View your outstanding bills and invoices |
/invoice | Config.Commands.Invoice | Issue a quick invoice to a nearby player |
Features
Society Ledger
Society Ledger
Each society has an isolated ledger showing the current balance, a full paginated transaction history, and action buttons for deposits and withdrawals. Every ledger movement is timestamped and attributed to the acting employee’s character name. The ledger balance is independent per society — money in the lawman society does not affect any other society.
Payroll
Payroll
An automatic payroll loop pays on-duty employees at a configurable interval (
Config.Payroll.IntervalMinutes, default 15 minutes). Each rank has its own salary set by the boss from the management UI. Bosses can also trigger manual wage payments from the panel. The payroll interval per society can be further tuned in-game by bosses within the server-wide min/max range.Employee Management
Employee Management
Bosses hire, fire, promote, and demote characters from the society panel. Hiring requires the target player to be within
Config.Society.HireDistance (default 12.0 m). A hire offer is sent to the target and expires after Config.Society.HireOfferTimeoutSeconds (default 30 seconds). All hire, fire, promote, and demote actions are Discord-logged.Billing & Invoicing
Billing & Invoicing
Any employee with the
invoice permission can issue a payment request to a nearby player using /invoice. The target receives the bill in their bills panel (/bills) and can pay it there. Invoice creation, viewing, and payment are all logged to the configured billing webhook.Society Storage
Society Storage
Each society can have a placed in-world storage stash accessible to on-duty employees of the required grade. Storage positions, slot counts, and weight limits are configurable. The interaction style (drawtext, native prompt, or ox_target zone) is set globally via
Config.Mode.Society Stores
Society Stores
Bosses can place up to
Config.Store.MaxPerSociety (default 2) in-world storefronts. Each store has a configured prop, stock levels, and sell prices managed from the society panel. Players can browse and purchase items from stores at any time.Crafting Stations
Crafting Stations
Bosses can place a crafting station prop for their society. Job-keyed recipes are defined in
crafting_config.lua. Each recipe specifies required ingredients, output item, quantity, and crafting duration. Only jobs with recipes defined can place a crafting station.Advertisements
Advertisements
Bosses can place up to
Config.Advertising.MaxPerSociety (default 5) advertisement prop boards in the world. Each board can display an image URL and description. Props stream to nearby players automatically.Public Job Center
Public Job Center
A single configurable NPC at
Config.JobCenter.Coords serves as a self-hire board for public jobs defined in Config.JobCenter.DefaultPublicJobs. Players can switch to an open job from the board, subject to a cooldown (Config.JobCenter.SwitchCooldownHours, default 1 hour). Public job salaries are config-driven rather than boss-managed.Configuration
Core Settings
config.lua
Society Rules
config.lua
Payroll
config.lua
Job Center
config.lua
Admin Access
config.lua
Discord Webhooks
sh-society supports per-channel webhook URLs so you can route different event types to separate Discord channels:config.lua
Config.IngameWebhook.Enabled = true.
Installation
Add to server.cfg
Ensure sh-society after your framework and before any job resource that references it:
server.cfg
Import the SQL files
Run the SQL files from the
sql/ folder of the resource against your database to create the society accounts, ledger, and transaction history tables.Configure
Edit
config.lua to set your framework, interaction mode (Config.Mode), job center location, and Discord webhook URLs. Edit crafting_config.lua to define per-job crafting recipes for any society that should have a crafting station.Set admin ACE
Add the
sh.society.admin ACE node to your admin group in server.cfg so that server staff can access the admin society panel:server.cfg