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.BankLocationscontains the bank you are testingConfig.UseTargetmatches the interaction style you expect- your
o-link.targetimplementation is working if target mode is enabled web/distexists 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/distdirectory 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_carditem - your
o-link.inventoryadapter 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.characterreturns a valid identifiero-link.moneyis 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.jsonand 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-bankingis 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.Debugtemporarily for additional server logging - use
/bankingdebugonly when allowed byConfig.DebugSettings - test with
/schedulerstatus,/viewplayeraccounts, and card/account admin commands to narrow the failing subsystem
Support
Need more help?
- Discord: https://discord.gg/dZ6q8FyGhm
- Website: https://www.oxidestudios.dev/
- o-link (required abstraction layer): https://github.com/WHEREISDAN/o-link