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:

ResourceWhat it does
ox_libProvides menus, commands, and translations
oxmysqlConnects the server to your MySQL database
o-linkConnects 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 of resources/[qb] or comment out its ensure line. Do not just leave it — oxide-banking takes over the qb-banking name, and both cannot be running at the same time.
  • QBX: disable whatever banking script you use (for example Renewed-Banking).
  • ESX: disable esx_banking or any other banking script. Keep esx_addonaccount running — 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, transfers
  • config/accounts.lua — account tiers and types
  • config/loans.lua — loan products and approval rules
  • config/interest.lua — interest, investments, CDs
  • config/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

  1. Start the server and check the console — ox_lib, oxmysql, o-link, and oxide-banking should all start without errors.
  2. Join the server. Bank icons should appear on the map (if Config.Blips.enabled = true).
  3. Walk to a bank (Legion Square Fleeca is a good test) and open it. The banking screen should show your balance.
  4. 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.
  5. 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_addonaccount running alongside oxide-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