Skip to content

๐Ÿ›๏ธ BLN Society โ€‹

bln society

๐Ÿ“บ Preview โ€‹

Video Preview

๐Ÿ’ฐ Buy Now โ€‹

Get it now

BLN Society is the management layer for every structured group on your server โ€” a general store, saloon, ranch, sheriff's department, doctor's office, gang, or mayor's office. One resource tracks who belongs, what they can do, whether they are on duty, and where the money goes.

Whether you call it a business, a company, a faction, or a society, the setup is the same: members and ranks, permissions, finances, payroll, storage, fines, and a full audit trail โ€” plus an API so your other scripts can plug in without reinventing any of it.

โœจ What can you do with it? โ€‹

For server owners โ€‹

  • ๐Ÿข Unlimited societies โ€” sheriffs, businesses, gangs, ranches, government offices, and more
  • ๐Ÿ‘ฅ Members & ranks โ€” hire, fire, promote, demote with a level-based hierarchy
  • ๐Ÿ” Permission system โ€” dot-namespaced permissions with wildcards and per-member overrides
  • โฑ๏ธ Duty tracking โ€” clock in/out, worked hours, activity reports, inactivity sweeps
  • ๐Ÿ’ฐ Finances โ€” multi-currency accounts, deposits, withdrawals, transfers, full ledger
  • ๐Ÿ’ต Payroll & paychecks โ€” automatic wage runs, collect salary at the office
  • ๐Ÿฆ State-funded orgs โ€” government departments that generate wages without a treasury
  • ๐Ÿ“ฆ Society storage โ€” buy and manage shared inventories with rank gates
  • โš–๏ธ Fines โ€” issue and collect fines from members
  • ๐Ÿ“Š Action fees โ€” configurable fees on hires, withdrawals, payroll runs, and more
  • ๐Ÿ“‹ Audit logs โ€” every action recorded, optional Discord webhook per society
  • ๐Ÿ—บ๏ธ World points โ€” blip, marker and prompt at the office (members only)
  • ๐Ÿ› ๏ธ Admin menu โ€” create, move, edit and dissolve societies in-game
  • ๐ŸŒ Translations โ€” all player-facing text in one locale file, no rebuild needed

For developers โ€‹

  • ๐Ÿ”Œ Export API โ€” societies, members, ranks, money, duty, storage, fines
  • ๐Ÿ“ฆ Statebags โ€” read membership, duty and balances on the client with no callbacks
  • ๐Ÿ“ก Events โ€” react to member changes, balance updates, duty toggles
  • ๐Ÿช Hooks โ€” veto hires, withdrawals, payroll and more before they commit
  • ๐Ÿ”— Integration-ready โ€” EnsureSociety keyed to your resource so you never store society IDs

๐Ÿ’ป Framework compatibility โ€‹

โœ… VORP โœ… RSG โœ… Custom

Framework access goes through bln_lib โ€” this resource never talks to a framework directly.

๐Ÿ“ฆ Dependencies โ€‹

Start these before bln_society:

ResourceWhy
bln_libFramework abstraction (VORP, RSG, and more)
bln_notifyPlayer notifications
oxmysqlDatabase access

โš™๏ธ Installation โ€‹

  1. Download and extract bln_society into your resources folder
  2. Add to your server.cfg after the dependencies:
cfg
ensure oxmysql
ensure bln_lib
ensure bln_notify
ensure bln_society
  1. Start the server โ€” no SQL file to import. Migrations run automatically on boot.
  2. Restart and enjoy!

โš™๏ธ Configuration โ€‹

All setup lives in config/. Every option is commented in the files โ€” open them and change what you need. No rebuild required.

FileWhat it's for
main.cfg.luaCurrencies, admin, hiring, duty, finance, payroll, fees, storage, fines, logs, UI, world points
presets.cfg.luaDefault rank ladders for new societies
permissions.cfg.luaPermission list โ€” add your own for custom scripts
blips.cfg.luaBlip sprites for the admin picker
locale.cfg.luaAll player-facing text

First things most servers may touch:

  1. Config.admin.allowIf โ€” who can use /societyadmin
  2. Config.currencies โ€” cash-only vs cash + gold
  3. Config.payroll โ€” interval, mode, and paycheck rules

To disable a whole system (payroll, fines, storage, etc.), set its enabled = false in main.cfg.lua. Restart the resource after changes.

๐Ÿ“‹ Society presets โ€‹

Presets are starter templates โ€” they save you from building a rank ladder from scratch every time you create a society.

When you pick one (in /societyadmin or via the API), it pre-fills:

  • Ranks โ€” names, levels, salaries, and permissions (Owner โ†’ Manager โ†’ Employee, etc.)
  • Funding โ€” whether wages come from the society treasury or are state-generated

That is all they do at create time only.

You get the following presets ready for you by default:

PresetGood forWages paid from
defaultAny generic groupSociety account
businessShops, saloons, storesSociety account
lawSheriff departmentsState (no treasury needed)
governmentMayor's office, clerksState
medicalDoctors, clinicsState
ranchRanches, farmsSociety account
gangOutlaw factionsSociety account

Shipped presets live in config/presets.cfg.lua. Edit them, add your own, or pass custom ranks via the API.

๐Ÿ” Permissions โ€‹

Every permission is registered in config/permissions.cfg.lua. The management menu renders from this list โ€” add your own permissions here and check them from your resources.

GroupExamples
Societysociety.manage, society.rename, society.delete, settings.manage
Membersmembers.hire, members.fire, members.promote, members.permissions, members.activity
Ranksranks.manage, ranks.salary
Financesfinances.view, finances.deposit, finances.withdraw, finances.transfer
Payrollpayroll.manage, payroll.view, payroll.collect
Dutyduty.use, duty.manage
Storagestorage.use, storage.deposit, storage.take, storage.buy, storage.manage
Finesfines.view, fines.manage
Feestax.view
Logslogs.view

Never check a rank name โ€” check a permission instead. Deputy is a label players can rename; fines.manage is the contract.

Wildcards when granting: members.*, storage.*, or * for everything. Deny with a leading -, e.g. -finances.withdraw.

๐ŸŒ Translations โ€‹

Every string the player reads lives in config/locale.cfg.lua. One file, no rebuild.

๐ŸŽฎ Using it in game โ€‹

Players โ€‹

Two ways into a society menu:

  1. Stand at the society's point and press the prompt key (default E).
  2. Another resource opens it via exports.bln_society:OpenSociety(societyId, source).

Duty is toggled from the menu header. At the point, members also get prompts for duty (default G) and collect salary (default R).

Optional: Config.paycheck.useCommand = 'collectsalary' to collect from anywhere.

Admins โ€‹

/societyadmin opens the admin interface (if Config.admin.allowIf passes):

  • Create โ€” name, preset, owner, location with blip picker
  • Manage โ€” move points, edit societies, open menus, dissolve

Society menu โ€‹

TabWhat it does
OverviewSummary, pending pay, quick stats
MembersHire, fire, promote, permissions, activity
RanksCreate and edit ranks, salaries, permissions
FinancesBalance, deposit, withdraw, transfer, ledger
PayrollRun payroll, history, eligible members
StorageBuy storages, set rank access, open inventory
FinesIssue and manage member fines
TaxesView action fees
LogsAudit trail, Discord webhook in Settings
SettingsSociety policies, inactivity, hiring rules

For developers โ€‹

Each topic has its own page:

PageUse when you need toโ€ฆ
ExamplesCopy-paste patterns for common integrations
API ReferenceCall exports, use the society handle, handle error codes
StatebagsRead synced client data (memberships, duty, balances)
EventsReact after something changed
HooksBlock an operation before it commits

Good to know โ€‹

  • One society per thing โ€” tie yours to your resource with ownerResource + externalKey. You never need to store a society id; resolve it with SocietyByKey whenever you need it.
  • Wait for ready โ€” do not call mutating exports until bln_society:ready fires. Details: Events.
  • Permissions, not rank names โ€” check HasPermission('storage.use'), not "Deputy". Register custom permissions in config/permissions.cfg.lua.
  • Who is acting โ€” pass source when a player clicked something; omit it for system calls like booking revenue. Full rules: API โ€” actor argument.
  • Two kinds of money calls โ€” AddMoney / RemoveMoney for revenue and costs (no permission check). Deposit / Withdraw for member actions (checks permissions, moves player money). Details: API Reference.
  • Client reads are free โ€” membership, duty, and balances sync to the client via statebags. No callback needed. Details: Statebags.
  • Need a walkthrough? โ€” see Examples.

โ“ FAQ โ€‹

๐Ÿค Support โ€‹