What goes wrong most often, what it actually means, and what to do about it. Most of these are a setting, not a bug — turn on Config.Debug = true first: the console then explains every step, and target zones become visible.
Installation and Access#
"You have renamed the script!" and the server hangs
The folder must be named exactly qs-banking. Rename it back and restart the server.
Table errors on start, or "No banks in bank_locations"
The database was never imported. Run sql/esx.sql or sql/qb.sql — the eight map branches are inside those files, whatever the warning calls them. If the console prints an ALTER TABLE statement, the database user cannot alter tables: run that statement by hand.
Nothing works and the console shows nil-function errors
No framework adapter loaded. Your framework must start before qs-banking in server.cfg. On Qbox, set Config.Framework = 'qb' — see Integrations.
/bankcreator says I am not allowed
None of the three routes matched: an ace from Config.Creator.aces (add add_ace group.admin banking.creator allow and make sure your identifier is in group.admin), a framework admin group with allowAdmins on, or a job and grade in Config.Creator.jobs. Aces need a server restart to apply.
The bank does not open, or no help text appears
The branch has no position yet — open it in /bankcreator and place the bank point. If you use a target, check that Config.UseTarget names the resource you actually run; with the wrong value there is neither a zone nor a prompt.
Texts read "Translation [xx][key] does not exist"
The chosen language file is missing or is not valid JSON — the console says which at start. Fix the file, or the language code in Config.Language / qs:locale. A valid file with missing keys falls back to English on its own.
ATMs and Cards#
"You are not carrying a bank card" at an ATM
With Config.Metadata = true an ATM needs an active creditcard in the inventory. Issue one at a counter. On a server without a metadata inventory, set Config.Metadata = false.
Cards do not appear in the inventory
The creditcard item does not exist in your inventory, or the inventory does not keep metadata. Add the item as shown in Installation. A card already issued can be reprinted from the Cards tab.
"Cards are only issued at a bank counter, not at an ATM"
Cards are issued and managed within Config.CardIssueDistance (4 m) of the branch's bank point, never at an ATM or an extra teller far from it. If Config.CreateCardEverywhere = false, the branch also needs Allow card creation ticked in the creator.
A card tier is locked
The player's credit score is below that tier's minScore. Repaying credit raises it; or lower the thresholds in Config.CardTiers.
The card is blocked
Three wrong PINs (Config.AttemptsCards) freeze it, or a banker froze it from the client file. The owner unfreezes it in the Cards tab at a counter.
"You have reached the limit of the hour" at an ATM
The player has moved Config.AtmLimit through ATMs in the last hour; the message says how much is left. Counters have no limit. Raise the value, or switch off the matching *Limit flag.
Money, Credit and Owned Branches#
Money is in the balance but cannot be withdrawn
That is deposit screening: a deposit of Config.Screening.minAmount or more is frozen for holdHours. A banker can clear it in Manage → Finance. If it never unfreezes, autoRelease is off and nobody is reviewing — set it back to true, or raise minAmount.
There is no Loans tab
The branch does not lend. By default only owned branches with the Lending Licence do — Config.BankUpgrades.stateOwned.credit is false. Also check Config.Loans.enable, the branch's own Lend money at this branch switch, and that you are at a counter, not an ATM.
The Mortgage or Property tab is missing
qs-housing is not running, Config.RealEstate.enable / Config.Mortgage.enable is off, or the branch has not bought the Mortgage / Real Estate licence.
A loan cannot be approved
Either the applicant is offline (offline) — they must be connected to receive the money — or the branch treasury cannot cover it (treasury). Requests can only be handled at the branch where they were filed.
The owner cannot withdraw the treasury
Correct behaviour. The starting float (Config.Ownable.startingTreasury) is working capital and can never be taken out — only earnings above it.
Staff cannot see a section of Manage
Their rank lacks the permission for it — finance, customers, credit, settings or staff. Edit the rank in Manage → Staff. Licences and the sale of the branch are owner-only.
Branch doors will not lock
An unowned branch is public, so its doors stay open. Once owned, MLO doors outside the game's door list also need setr game_enableDynamicDoorCreation "true" in server.cfg.
A company withdrawal is refused
The member's role cannot withdraw, or they reached their role's limit for the current window. The boss changes it in the Company tab, or in Config.Society.
Map and Sync#
Blips or peds did not update after an edit
Changes are broadcast on save. A player who missed it only needs to rejoin — no restart. Check Config.ShowBlips and Config.EnablePeds too.
"ATM model could not be loaded" or "Laptop model could not be loaded"
The model name saved in the creator does not exist in the game or in your streamed assets. Pick another from the list and save.
Property sales do not move the keys
The console shows qs-housing has no BankHandover export. Update qs-housing to a version with that export.
Refusal Reasons#
Actions answer { ok = false, reason = '...' } when they are refused. The ones you will meet most:
Reason | Means |
|---|---|
| The player lacks the rank permission, or the action is owner-only. |
| The player, the company account or the branch treasury cannot cover it. |
| Outside the allowed range — loan terms, order limits, or more than can be withdrawn. |
| Too many open loans or standing orders, or the buyer is at qs-housing's house limit. |
| The other player must be connected. |
| A company role's withdrawal limit for the window is used up. |
| Staff cap, ten ranks, or the extra-teller maximum reached. |
| The branch lacks the licence, or has lending switched off. |
| The house is not the player's, is rented, or still carries housing credit. |
| The house already backs a loan, or the loan exceeds |
| The database refused the save — usually a missing column. The console names it. |
Still stuck? Open a ticket and include your framework and inventory, the console output from start-up with
Config.Debug = true, and the exact message the player saw.



