Installation Guide
Step-by-step setup for oxide-banking with ox_lib, oxmysql, and o-link.
Step-by-step setup for oxide-banking. Follow the steps in order — most issues come from skipping one.
Before You Start
oxide-banking works on QBCore, QBX, and ESX. It detects your framework automatically — there is nothing framework-specific to configure.
You need these resources installed and working first:
| Resource | What it does |
|---|---|
ox_lib | Provides menus, commands, and translations |
oxmysql | Connects the server to your MySQL database |
o-link | Connects banking to your framework (players, money, jobs, inventory) |
If you already run other Oxide resources, you have all three.
Installation Steps
1. Remove your old banking resource
oxide-banking replaces your server's existing banking script. Running two banking systems at once causes conflicts, so remove or disable the old one first:
- QBCore: remove
qb-banking(it ships with the default server). Move the folder out ofresources/[qb]or comment out itsensureline. Do not just leave it —oxide-bankingtakes over theqb-bankingname, and both cannot be running at the same time. - QBX: disable whatever banking script you use (for example
Renewed-Banking). - ESX: disable
esx_bankingor any other banking script. Keepesx_addonaccountrunning — banking uses it to stay in sync with your society accounts (more on this below).
Older scripts that talk to qb-banking keep working: oxide-banking answers to that name automatically.
2. Add the resource
Place the oxide-banking folder inside your server's resources folder.
3. Set the startup order
In your server.cfg, make sure the dependencies start before banking:
ensure ox_lib
ensure oxmysql
ensure o-link
ensure oxide-banking(If you start resources by folder, e.g. ensure [oxide], that works too — just keep ox_lib and oxmysql above it.)
4. Set up the database
Open sql/install.sql in your database tool (HeidiSQL, phpMyAdmin, etc.) and run it against your server's database.
This creates all the banking tables — accounts, statements, cards, loans, credit scores, security, and reports. It is safe to run more than once; it will not overwrite existing data.
5. Add the bank card item
Players receive a bank_card item when they order a debit card, so your inventory needs to know what that item is.
If you use ox_inventory (common on QBX and ESX), add this to ox_inventory/data/items.lua:
['bank_card'] = { label = 'Bank Card', weight = 0, stack = false, close = true, description = 'A personal bank debit card' },If you use qb-inventory (default QBCore), add this to qb-core/shared/items.lua:
bank_card = { name = 'bank_card', label = 'Bank Card', weight = 0, type = 'item', image = 'bank_card.png', unique = true, useable = true, shouldClose = true, description = 'A personal bank debit card' },For qb-inventory, also drop a bank_card.png image into your inventory's images folder so the card shows a picture (the item still works without one).
Restart your inventory resource (or the server) after adding the item.
6. Review the settings
Open the files in the config/ folder and adjust them to taste — bank locations, fees, loan products, interest rates, and more:
config/config.lua— general settings, security, cards, transfersconfig/accounts.lua— account tiers and typesconfig/loans.lua— loan products and approval rulesconfig/interest.lua— interest, investments, CDsconfig/fees.lua— every fee the bank charges
The defaults work fine out of the box. See Configuration for what each setting does.
7. Start the server
The interface is pre-built and ships with the resource — there is nothing to compile or build.
Checking That It Works
- Start the server and check the console —
ox_lib,oxmysql,o-link, andoxide-bankingshould all start without errors. - Join the server. Bank icons should appear on the map (if
Config.Blips.enabled = true). - Walk to a bank (Legion Square Fleeca is a good test) and open it. The banking screen should show your balance.
- Order a debit card from the bank, then walk to an ATM and use the card. The ATM screen should open after you enter your PIN.
- Make a small deposit and withdrawal and confirm your balance updates.
If any of these fail, see Troubleshooting.
Good To Know
Targeting vs. walk-up prompts
Config.UseTarget = true (default) — players use the targeting eye (ox_target) on banks and ATMs.
Config.UseTarget = false — players walk up to a bank or ATM and press a key instead. Use this if your server does not run a targeting resource.
ESX society accounts
On ESX servers with esx_addonaccount installed, oxide-banking automatically keeps society accounts (e.g. society_police, society_cardealer) in sync. Money added through either system shows up in both.
- Keep
esx_addonaccountrunning alongsideoxide-banking - Your existing ESX job scripts that pay into society accounts keep working unchanged
- Society balances appear in the banking app with full statement history
No setup needed — banking detects ESX and esx_addonaccount on its own when the server starts.
Translations
All player-facing text lives in locales/en.json. To translate the bank, see Localization.
Next Steps
- Features — everything the bank can do
- Configuration — every setting explained
- Admin — admin commands
- API Reference — for developers integrating other scripts
- Troubleshooting — common problems and fixes