Troubleshooting Guide

Common issues and current fixes for oxide-banking.

Common issues and current fixes for oxide-banking.

Resource Will Not Start

Missing dependency error

Check startup order:

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

If o-link is missing or not started, banking will not have access to players, money, inventory, target, or notifications.

SQL not loaded

Run sql/install.sql and restart the resource.

UI Does Not Open

Bank interaction does nothing

Check:

  • Config.BankLocations contains the bank you are testing
  • Config.UseTarget matches the interaction style you expect
  • your o-link.target implementation is working if target mode is enabled
  • web/dist exists and was deployed with the resource

UI opens but is blank

Check:

  • ui_page 'web/dist/index.html' still matches the shipped build
  • the web/dist directory contains built assets
  • browser/NUI console errors from a stale or missing frontend build

If you edited web/src, rebuild the UI before testing.

ATM Or Card Issues

ATM says no card

Check:

  • the player actually has a bank_card item
  • your o-link.inventory adapter returns player inventory correctly
  • card issuance succeeded and the card exists in banking tables

PIN validation fails unexpectedly

Check:

  • the card is active and not frozen/cancelled
  • the player is selecting the correct card/account pair
  • card lockout limits in Config.Security

Data Or Money Issues

Player banking data does not load

Check:

  • o-link.character returns a valid identifier
  • o-link.money is configured for online and offline balance operations
  • the install SQL completed successfully

Job accounts are missing

Job accounts are created from olink.framework.GetJobs().

If your framework adapter returns no jobs, banking will skip job account creation.

Transfers or external payments fail for offline players

Check your o-link.money.AddOffline, RemoveOffline, and GetBalanceOffline implementation.

Scheduler Or Interest Looks Wrong

The current scheduler uses server wall-clock time and an internal day counter.

If daily processing looks wrong:

  • confirm the scheduler commands work (/schedulerstatus, /forcedayincrement)
  • review Config.TimeSettings
  • do not assume an external weather-sync resource is driving banking time

Locale Problems

Missing text or raw locale keys

Check:

  • the JSON locale file is valid
  • the keys exist in locales/en.json and any custom locale you added
  • you did not rename a key in JSON without updating Lua/UI usage

Compatibility Conflicts

Legacy resource still expects qb-banking

oxide-banking retains a qb-banking compatibility surface for older QB-era integrations. If a legacy script fails:

  • Confirm oxide-banking is started
  • Confirm the script uses the legacy callback/export names documented in Exports And Integration
  • For new work, use exports['oxide-banking'] directly — this works on all supported frameworks (QBCore, QBX, ESX)

Debugging Tips

  • enable Config.Debug temporarily for additional server logging
  • use /bankingdebug only when allowed by Config.DebugSettings
  • test with /schedulerstatus, /viewplayeraccounts, and card/account admin commands to narrow the failing subsystem

Support

Need more help?