Before You Begin#
Before installing Banking Creator, make sure your server meets the minimum requirements. Three things are mandatory; everything else is optional and the features that depend on it simply do not appear when it is missing.
Requirement | Status | Notes |
|---|---|---|
| Required | Database access. The resource loads |
| Required | Shared helpers, the creator's model loading and the fallback notifications. |
Framework | Required |
|
Metadata inventory | Optional | Bank cards as physical items, and ATMs that ask for a card and its PIN. |
| Optional | Targeting instead of the |
| Optional | Mortgages, the property desk, and a house as loan collateral. |
| Optional | Phone notifications for money, credit and scheduled payments. |
| Optional | Quasar notifications and 3D help text. Without them, ox_lib notifications and a drawn label are used. |
Everything framework- or third-party-specific sits behind a small adapter, and the resource picks the right one by looking at what is already running:
Layer | Detection |
|---|---|
Framework |
|
Inventory |
|
Targeting | Set by hand in |
Housing / Phone | The resource named in |
Every optional integration degrades silently. If a resource is missing, that feature disappears from the interface — nothing errors. Integrations has the details and how to pin one by hand.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Downloading Banking Creator#
After purchasing Banking Creator, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Banking Creator.
After extracting the download, you should have the following folder:
qs-banking/
├── config.lua -- every setting, commented line by line
├── client/custom/ -- framework and target bridges (editable)
├── server/custom/ -- framework, inventory, logs and quests (editable)
├── locales/ -- 41 languages
├── sql/ -- esx.sql · qb.sql
├── web/ -- the interface and the blip pictures
└── fxmanifest.luaThe folder must be named
qs-banking. The resource checks its own name on start and, if it was renamed, printsYou have renamed the script!and stops the server thread. Every export is also called throughexports['qs-banking'].
Installing the Resource#
Move the qs-banking folder into your server's resources directory. It can live anywhere inside it, including a category folder:
resources/
└── [qs]/
└── qs-banking/Once copied, open your server.cfg and make sure every dependency — and everything it should detect — starts before Banking Creator:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Inventory, target, housing, phone
ensure ox_inventory
ensure ox_target
ensure qs-housing
ensure qs-smartphone
ensure qs-bankingThe loading order matters. The framework and the inventory are detected once, when the resource starts, so one that starts after Banking Creator is not found. qs-housing and qs-smartphone are checked live, but starting them first avoids a window where their features are missing.
Importing the Database#
Open your database manager (HeidiSQL, phpMyAdmin, DBeaver…), select your server's database and run one file — the one matching your framework:
Framework | File |
|---|---|
ESX |
|
QBCore / Qbox |
|
That one file is the whole install: every table, plus the eight banks that already exist on the GTA map — seven Fleeca branches and the Pacific Standard — each with its teller ped, its blip and card issuing switched on.
Tables | Hold |
|---|---|
| Branches (placement, blip, ped, laptop, doors, owner, staff, ranks, licences, lending terms) and creator-placed ATMs. |
| Issued cards, each player's transaction feed, and the amounts behind the charts. |
| Each branch's ledger and its customer file. |
| Loans and mortgages, frozen deposits, and recurring transfers. |
| Company and gang accounts, and every movement on them. |
| Houses offered to a branch, and the houses a branch owns. |
Updates never need an import. Tables added by newer versions are created when the resource starts, and missing columns are added with
ALTER TABLE. If the database user is not allowed to alter a table, the console prints the exact statement to run by hand.
Adding the Card Item#
Skip this step if you do not want physical cards. Otherwise add the item to your inventory. The name is fixed — creditcard — and it must be unique and carry metadata, because each card holds its own number, owner, tier and PIN.
In ox_inventory/data/items.lua:
['creditcard'] = {
label = 'Credit Card',
weight = 10,
stack = false,
close = true,
description = 'A bank card',
},In qb-core/shared/items.lua, or qs-inventory/shared/items.lua:
['creditcard'] = {
name = 'creditcard',
label = 'Credit Card',
weight = 10,
type = 'item',
image = 'creditcard.png',
unique = true,
useable = true,
shouldClose = true,
description = 'A bank card',
},For an ESX inventory that reads the items table:
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`)
VALUES ('creditcard', 'Credit Card', 1, 0, 1);With the item in place, keep Config.Metadata = true. Set it to false on a server without a metadata inventory: ATMs then open straight away, with no card and no PIN.
Granting Creator Access#
Branches and ATMs are data, not config: they are placed and edited in game with /bankcreator. Any of these routes opens it:
The usual route. Grant the banking.creator ace in server.cfg:
add_ace group.admin banking.creator allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.adminAny ace listed in Config.Creator.aces is accepted — by default group.admin, group.superadmin and banking.creator.
Automatic while Config.Creator.allowAdmins = true: ESX admin and superadmin, QBCore god and admin, and anyone with the command ace on QBCore.
Let a job — a bank manager, a city planner — place branches without being an admin:
Config.Creator = {
command = 'bankcreator',
keybind = '', -- e.g. 'F7'; '' = no key
allowAdmins = true,
jobs = {
{ job = 'banker', grade = { 3, 4 } }, -- grade = false: any grade
},
aces = { 'group.admin', 'group.superadmin', 'banking.creator' },
}Anyone with creator access can also open the Manage panel of any branch; set Config.Ownable.adminOverride = false to keep them read-only there and leave the decisions to the owner and the staff.
Enabling Dynamic Doors#
Only needed if you plan to lock branch doors that are not part of the game's own door list — most MLO doors. Add this to server.cfg:
setr game_enableDynamicDoorCreation "true"Without it those doors can be picked in the creator, but never locked.
Configuring the Resource#
Everything tunable lives in config.lua, commented option by option. Changes there need a resource restart; branches and ATMs do not, because they live in the database.
Block | What it controls |
|---|---|
| The language of everything a player reads, and how money is formatted. |
| ox_target, qb-target, or the |
| How much can move through ATMs per hour. |
| Physical cards, how many a player may hold, wrong-PIN attempts, and the five card tiers. |
| Holds on large deposits. |
| Buyable branches, fees, the treasury float, refunds, and the licences an owner buys. |
| Lending defaults, instalments, late fees and the credit-score model. |
| Company and gang accounts, and recurring payments. |
| qs-housing and qs-smartphone integration. |
| Branch doors, the boss laptop, teller peds and blips. |
| Which world props work as ATMs everywhere on the map. |
| What the creator offers for tellers, boss laptops and teller animations. |
The values worth reviewing first:
Config.Language = GetConvar('qs:locale', 'en') -- or setr qs:locale "es" in server.cfg
Config.UseTarget = 'none' -- 'ox_target', 'qb-target' or 'none'
Config.Metadata = true -- physical cards; needs a metadata inventory
Config.AtmLimit = 2500 -- most that can move through ATMs per hour
Config.Intl = {
locales = 'en-US',
options = { style = 'currency', currency = 'USD', minimumFractionDigits = 0 },
}
Config.Debug = false -- verbose console output and visible target zonesVerifying the Installation#
Restart your server and read the console. A clean start shows the version check and no red [ERROR] lines from qs-banking:
You are using the latest version of qs-banking!
[WARNING]: Missing webhooks: deposit, withdraw, transfer, create_card. Please enable them in server/custom/misc/*.lua.The webhook warning is harmless — it only means Discord logging is off. Fill the URLs in server/custom/misc/webhooks.lua and the line becomes qs-banking initiated successfully.
Then join your server and work through the first loop:
Visit a branch
Fleeca on Legion Square is on the map with a blip and a teller. Walk up to the counter and press
E(or use your target): the interface opens on your account.Move money and print a card
Deposit some cash, then open Cards and issue a Classic card. It lands in your inventory; use it next to any ATM and enter the PIN.
Open the creator
/bankcreatorlists the eight branches. From there, Usage covers placing a branch of your own and putting one up for sale.
Nothing needs a restart from here on. Every branch, ATM, ped, blip, door, licence and owner change is sent to every player the moment it is saved.



