Society Banking
Create and test the society accounts used by framework mechanic jobs
Use this page when Config.UseFrameworkJobs = true. The built-in job system uses JG Mechanic's own accounts and doesn't need a separate banking resource.
JG Mechanic uses the job from each owned mechanic location as its society account name. A location with job = "mechanic" needs a society account named mechanic.
JG Mechanic doesn't create accounts in third-party banking resources. Create an account for every unique mechanic job before taking work orders. Account names are case-sensitive.
Before you take work orders
Complete these checks for every owned mechanic location:
- Open
config/config.luaand find the location'sjobvalue. - Check that the same job exists in your framework.
- Create a society account with the exact job name in your banking resource.
- Start the banking resource before
jg-mechanicinserver.cfg. - Set
Config.SocietyBankingto"auto"or the exact supported value for your banking resource. - Check that the account can return its balance, receive money and remove money.
Locations can share one account by using the same job. Repeat the account setup for every different job name.
JG Mechanic supports "okokBanking", "fd_banking", "Renewed-Banking", "tgg-banking", "wasabi_banking", "qb-banking", "qb-management" and "esx_addonaccount".
TGG Banking
- Give your account admin permission in TGG Banking.
- Open the banking interface and select Admin Actions.
- Create a society account.
- Set Society Name to the exact
jobfromconfig/config.lua, such asmechanic. Display Name can be any player-facing name.
Repeat this for every unique mechanic job.
See the TGG Banking society account setup.
okokBanking
- Open
okokBanking/config.lua. - Find
Config.Societies. - Add every unique mechanic job. Keep your existing entries.
For current okokBanking versions, add the job and the grades that can manage its account:
["mechanic"] = {0, 1, 2, 3, 4},Replace mechanic with the exact job from config/config.lua. Older okokBanking versions may list society names without grades. Use the same format as the other entries in your installed version.
See the okokBanking configuration reference.
ESX
Follow ESX Framework Jobs to create the required esx_addonaccount records for every mechanic job.
Connect another banking resource
Setting an unsupported resource name in Config.SocietyBanking doesn't add support. Your banking resource needs server-side functions or exports that can:
- return a society account's balance as a number
- add money to a society account
- remove money from a society account
Connect these operations to the following functions in framework/sv-functions.lua:
function Framework.Server.GetSocietyBalance(society, societyType)
function Framework.Server.PayIntoSocietyFund(societyName, societyType, amount)
function Framework.Server.RemoveFromSocietyFund(societyName, societyType, amount)Test the account
Fully restart your server, then run these checks with a small paid work order:
- Open the mechanic tablet and check that it shows the society account's current balance.
- Place a paid work order and check that the same account receives the payment.
- Delete the unfulfilled work order and check that the payment is removed from the society account and refunded to the customer.
The society account needs enough money to refund the work order before it can be deleted.
Troubleshooting
JG Mechanic removes the order payment from the society account before refunding the customer. Check that the account exists, its name matches the location's job, and its balance covers the refund. If those are correct, check that your banking integration can return the balance and remove money.
Check that the account exists and that its name matches the location's job exactly. Restart the banking resource before restarting jg-mechanic.
Check that your banking integration can add money to a society account. Confirm that Framework.Server.PayIntoSocietyFund calls the correct server export for your banking resource.
Last updated 31 July 2026