🧠 Installation
🪜 First steps
- Install the latest stable version of MariaDB.
- Add all dependencies listed below and follow their installation instructions.
- Add and start the script :)
🔴 Dependencies
- ox_lib Follow their installation instructions.
- oxmysql Follow their installation instructions.
🖼️ Frameworks
Our script is compatible with QBCore, QBox, ESX, Standalone(custom framework or no-framework). You don't need to do anything additional. The script will auto-detect it!
⚠️ Standalone
🏢 Society Accounts
Initializing Society (Business) Accounts
Upon the first initialization of the script, you must create society (business) accounts for roles such as Police, Mechanic, etc., in the banking table. This can be done effortlessly through the banking system's user interface (UI), provided you have administrative permissions.
Steps to Create Society Accounts:
- Ensure you have admin permissions enabled for your account.
- Open the Banking interface.
- Navigate to the sidebar and locate the tab labeled Admin Actions.
- Select Admin Actions to access the society creation tools.
- Create a new society by providing the following details:
- Display Name: The public-facing name of the society (e.g., "LS Customs").
- Society Name: The internal name of the society, which must match the job name in your system (e.g., "mechanic" for mechanics, "police" for law enforcement).
Important Notes:
- Ensure that the Society Name matches the job name configured in your system to avoid inconsistencies.
- Double-check that all required society accounts are created during this step to ensure seamless integration with the banking functionality.
Completing these steps ensures that all essential society accounts are correctly set up and ready to use.
📦 Inventory
Inventory is necessary to utilize the Debit Card Items feature. Initially, support is available for:
- ox_inventory (Recommended)
- qb-inventory
- lj-inventory
- ps-inventory
💳 Card Items
lua['debitcard_personal'] = { label = 'Personal Debit Card', stack = false, weight = 10, consume = 0, client = { export = "tgg-banking.UseCardOnAtm" } }, ['debitcard_shared'] = { label = 'Shared Debit Card', stack = false, weight = 10, consume = 0, client = { export = "tgg-banking.UseCardOnAtm" } }, ['debitcard_business'] = { label = 'Business Debit Card', stack = false, weight = 10, consume = 0, client = { export = "tgg-banking.UseCardOnAtm" } },
lua['debitcard_personal'] = { ['name'] = 'debitcard_personal', ['label'] = 'Personal Card', ['weight'] = 300, ['type'] = 'item', ['image'] = 'debitcard_personal.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Access funds at local ATMs.' }, ['debitcard_shared'] = { ['name'] = 'debitcard_shared', ['label'] = 'Shared Card', ['weight'] = 300, ['type'] = 'item', ['image'] = 'debitcard_shared.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Access funds at local ATMs.' }, ['debitcard_business'] = { ['name'] = 'debitcard_business', ['label'] = 'Business Card', ['weight'] = 300, ['type'] = 'item', ['image'] = 'debitcard_business.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Access funds at local ATMs.' },
🎯 Interaction
An interaction script is required to access banking functionalities. Initially, support is available for:
- ox_target (Recommended)
- qb-target
- sleepless_interact
- interact
- drawtext
⚙️ Transaction and Balance Limits
You can enforce built-in limits using config/config.account.lua.
By default, limits are disabled.
luaConfig.Limits = { Enabled = true, -- set false to disable all checks Deposit = { MaxAmountPerTransaction = 25000, -- nil = disabled }, Withdraw = { MaxAmountPerTransaction = 25000, -- nil = disabled }, Transfer = { MaxAmountPerTransaction = 50000, -- nil = disabled }, AccountMaxBalanceByType = { personal = 150000, -- nil = disabled shared = nil, business = nil, savings = nil, }, OwnerMaxTotalBalance = nil -- total across all owned accounts, nil = disabled }
What is enforced
- Per-transaction limits for deposit, withdraw, and transfer.
- Max resulting balance for incoming funds per account type.
- Optional total owner cap across all owned accounts.
Notes
- ATM deposit/withdraw also follows these checks.
- Export transfer (
exports['tgg-banking']:Transfer) also follows these checks. - If a limit blocks the action, the player receives a localized error message.
🪝 Using hooks for custom policies
If you need advanced rules (for example job-specific logic, blacklist checks, external anti-cheat checks), use Hooks.