Troubleshooting Guide

Common issues and current fixes for oxide-banking.

Common problems and how to fix them. For most issues, start by checking the server console (F8 on the client, or your server window) for red error messages mentioning oxide-banking.

The Resource Won't Start

"Couldn't find dependency" error

Banking needs its dependencies started first. Check the order in your server.cfg:

ensure ox_lib
ensure oxmysql
ensure o-link
ensure oxide-banking

Database errors on startup

You probably haven't run the install script yet. Run sql/install.sql against your database (with HeidiSQL, phpMyAdmin, etc.), then restart the resource.

The Bank Won't Open

Nothing happens at the bank

Check, in order:

  1. Are you standing at one of the banks listed in Config.BankLocations?
  2. Is Config.UseTarget right for your server? If it's true, you need a working targeting resource (ox_target). If you don't run one, set it to false to use walk-up key prompts instead.
  3. Did another banking resource also start? Remove or disable your old banking script (e.g. qb-banking) — two banking systems will fight over the same name.

The screen opens but is blank

The interface ships pre-built in web/dist. A blank screen usually means that folder is missing or incomplete — re-copy the resource from your purchase. If you edited files under web/src yourself, you need to rebuild the interface before testing.

ATM Or Card Problems

ATM says you have no card

  1. Did you add the bank_card item to your inventory system? This is a required install step — see "Add the bank card item" in Installation.
  2. Does the player actually have a bank card? Cards are ordered at a bank branch first.
  3. Check the server console for inventory errors when the player uses the ATM.

PIN keeps getting rejected

  • Make sure the card isn't frozen or cancelled (players can check in the bank's card menu).
  • Too many wrong PINs locks the account for a few minutes (Config.Security.MaxLoginAttempts and LockoutDuration).
  • If the player forgot the PIN, they can order a replacement card with a new PIN at a bank.

Money Or Data Problems

A player's banking data doesn't load

  • Make sure o-link started without errors — it's how banking talks to your framework.
  • Make sure the install SQL ran completely (all bank_* tables should exist in your database).

Job accounts are missing

Job accounts are created automatically from the jobs your framework defines. If a job account is missing, the job probably doesn't exist in your framework's job list — add the job there first, then restart oxide-banking.

Transfers to offline players fail

Check the server console for errors when it happens. Banking uses your framework's offline-money support through o-link; if your framework setup is heavily customized, offline character lookups may be failing.

Interest Or Scheduled Tasks Look Wrong

Banking runs on its own schedule based on your server's real clock — not the in-game time of day. One "banking day" passes at midnight server time while the server is running.

If daily processing seems off:

  • Run /schedulerstatus (as admin) to see the current banking day and schedule state.
  • Use /forcedayincrement to push the schedule forward one day and run all daily tasks — useful for testing.
  • Review the intervals in Config.TimeSettings (Configuration explains each one).

Missing Or Broken Text

Players see raw labels like error_bank_error instead of messages

A locale key is missing or the JSON file has a typo:

  • Make sure the JSON file in locales/ is valid (a missing comma breaks the whole file — paste it into an online JSON checker if unsure).
  • If you added your own language file, every key from locales/en.json must exist in it too.
  • Check the server console for locale loading errors on startup.

Conflicts With Other Resources

An older script expects qb-banking

That's fine — oxide-banking answers to the qb-banking name and keeps the old exports and callbacks working. If a legacy script still fails:

  • Confirm oxide-banking is started and the real qb-banking resource is removed (they can't both run).
  • Check API Reference to confirm the export the script uses still exists.

ESX society balances look out of sync

On ESX, banking mirrors job accounts with esx_addonaccount society accounts (job policesociety_police):

  • Make sure esx_addonaccount starts before oxide-banking.
  • Confirm the job account name matches the society name (job police needs society_police).
  • Turn on Config.Debug and look for ESX bridge: synced lines in the console at startup — each one is a society account being linked.

Still Stuck?

  • Turn on Config.Debug temporarily and reproduce the problem — the console output usually points at the failing step. Turn it back off afterward.
  • /viewplayeraccounts, /viewjobaccount, and /schedulerstatus help narrow down whether the problem is accounts, jobs, or the schedule.