Blixt Bank
Blixt Bank is a standalone FiveM banking resource with in-world Bank Office and ATM surfaces. The Bank Office and ATM are the core product and can run without Blixt Phone.
Blixt Phone, Tablet, Gov ID, notifications, phone-number payments, and Bank Staff integration are bonus integrations. Install the phone when you want those device and identity flows; do not treat it as required for the branch counter or ATM.
Status
Section titled “Status”- Folder name:
blixt-bank. - Bundled helper resource:
blixt-lib. - Resource type: standalone FiveM resource with optional Blixt integration.
- Frameworks: qbox, qbcore, esx, or
standalone. - Database: MySQL or MariaDB through
oxmysql. - Download: items.tebex.io.
- Support: Blixt Discord.
The Bank package includes both blixt-bank and blixt-lib. Keep both folder
names unchanged.
What Works Standalone
Section titled “What Works Standalone”These surfaces do not require Blixt Phone:
- Bank Office world UI.
- ATM world UI.
- Personal accounts, shared accounts, and account history.
- Public account ID transfers.
- Bank Office cash deposit and withdrawal when the active framework exposes player cash.
- Physical bank cards and PIN-protected ATM withdrawal.
- Identifier-backed Bank Office and ATM access when no inventory system is detected.
- Invoices, recurring transfers, and loans when their modules are enabled.
- Setup wizard and
config.jsongeneration.
These features require Blixt Phone or another Blixt host integration:
- Handset Bank app.
- Tablet Bank app registration.
- Gov ID as Bank Office proof.
- Phone-number payments and phone-number recurring transfer resolution.
- Persistent phone notifications.
- Bank Staff and Business integration.
Features
Section titled “Features”- Multiple personal accounts per character.
- Shared and organization accounts with
owner,contributor, andviewerroles. - Transfers between own accounts and by public account ID.
- Physical bank cards issued at Bank Offices with hashed PINs and lockout after repeated failures.
- Withdraw-only ATM flow using carried
bank_carditem metadata and card PIN. - P2P invoices with open, paid, and cancelled states.
- Daily, weekly, or monthly recurring transfers.
- Personal loans with fixed-interest installments and manual repayment.
- Four production world UI themes:
slate,slate-dark,halo, andhalo-dark.
Install
Section titled “Install”Extract the Bank package into your FXServer resources tree:
resources/+-- [blixt]/ +-- blixt-lib/ +-- blixt-bank/The helper resource blixt-lib must start before blixt-bank.
Database
Section titled “Database”Apply the Bank schema before first production start:
mysql -u<user> -p<password> <database> < resources/[blixt]/blixt-bank/sql/install.sqlUse the same database connection string that oxmysql uses:
set mysql_connection_string "mysql://user:password@127.0.0.1:3306/blixt"Minimal server.cfg
Section titled “Minimal server.cfg”This starts the Bank Office and ATM without Blixt Phone:
set mysql_connection_string "mysql://user:password@127.0.0.1:3306/blixt"
ensure oxmysqlensure blixt-libensure blixt-bankRecommended server.cfg
Section titled “Recommended server.cfg”This enables world interactions and optional Blixt device integration:
set mysql_connection_string "mysql://user:password@127.0.0.1:3306/blixt"
ensure oxmysqlensure blixt-lib
# Optional interaction helpers.ensure ox_targetensure blixt-properties
# Optional Blixt device suite.ensure screenshot-basicensure pma-voiceensure blixtensure blixt-tablet
ensure blixt-bankIf blixt is not running, Bank still starts and skips phone/tablet app
registration. If blixt is running, Bank registers the handset Bank app, Bank
Staff app, Gov ID integration, notifications, and phone-number helpers.
First-Run Setup
Section titled “First-Run Setup”When setupCompleted is false, admins can open a Bank Office and launch the
setup wizard. The wizard is server-side gated by ACE permission:
add_ace group.admin blixt-bank.setup allowThe existing broader Blixt admin ACE also works:
add_ace group.admin blixt.admin allowThe setup wizard covers:
- Bank name, currency, and theme.
- Starting account balance and framework selection.
- Module toggles for accounts, transfers, ATM, invoices, cards, recurring transfers, and loans.
- Bank Office identity rules.
- ATM card item rules.
- Branch locations, ATM targeting, markers, and interaction fallback.
- Review, save, and generated
config.json.
On save, Bank writes blixt-bank/config.json through SaveResourceFile. If the
server cannot write the file, the wizard shows the generated JSON so an admin
can replace the file manually.
Restart blixt-bank after setup so locations, app registration, and scheduled
jobs all boot from the saved config.
Gov ID Setup
Section titled “Gov ID Setup”Bank Office authentication always supports the configured ID item:
{ "office": { "idItemName": "id_card", "govIdAsId": false }}govIdAsId is intentionally false by default. The setup wizard detects
whether Blixt Phone is available:
- If
blixtis available, admins may enable Gov ID as an additional Bank Office digital ID proof. - If
blixtis unavailable, the toggle is disabled and saved configs are sanitized back togovIdAsId: false.
This prevents a standalone Bank install from enabling a Gov ID path that cannot
work. ATM authentication never uses Gov ID; it uses carried bank_card
metadata and the card PIN.
Inventory Items
Section titled “Inventory Items”Bank expects inventory metadata for physical cards:
| Surface | Config field | Default | Notes |
|---|---|---|---|
| Bank Office identity | office.idItemName | id_card | Used when Gov ID is off or unavailable. |
| ATM card | atm.cardItemName | bank_card | Must preserve metadata for card ID and PIN checks. |
With atm.requireMetadata: true, card issuance and ATM use fail closed if the
active inventory bridge exists but cannot read and write item metadata.
If Bank cannot detect any inventory system, it switches those same world interactions to the current character identifier:
- Bank Office opens with
proof: "identifier"instead of requiringid_card. - Issued cards are stored in the Bank database and attached to accounts rather than being delivered as items.
- ATM card selection lists active cards the character can write with, plus assigned Business cards, and still requires the card PIN before withdrawal.
Configuration
Section titled “Configuration”Most settings live in blixt-bank/config.json. Common fields:
{ "bankName": "Blixt Bank", "currency": "USD", "currencySymbol": "$", "firstAccountStartBalance": 2500, "frameworkOverride": null, "shadowFrameworkBank": false, "theme": "slate-dark", "setupCompleted": false, "modules": { "accounts": { "enabled": true, "maximumNumberOfAccounts": 3 }, "transfers": { "enabled": true, "phoneTransfers": true, "accountTransfers": true }, "atm": { "enabled": true }, "invoices": { "enabled": true }, "cards": { "enabled": true, "businessCards": true }, "recurring": { "enabled": true }, "loans": { "enabled": true } }, "office": { "idItemName": "id_card", "govIdAsId": false }, "atm": { "cardItemName": "bank_card", "requireMetadata": true }}Use frameworkOverride only when auto-detection picks the wrong framework:
nullor omitted: auto-detect qbox, qbcore, then esx; otherwise standalone."qbox": force qbox."qbcore": force QBCore."esx": force ESX."standalone": use Bank’s standalone identity and ledger mode.
Convars
Section titled “Convars”Convars override selected config.json values at boot:
| Convar | Purpose |
|---|---|
blixt_bank:framework | Force qbox, qbcore, esx, or standalone. |
blixt_bank:currency | Currency code shown in UI. |
blixt_bank:first_account_start_balance | Starting balance for the first account. |
blixt_bank:start_cash | Legacy alias for first account starting balance. |
blixt_bank:max_accounts | Personal account cap per character. |
blixt_bank:modules:accounts | Enable or disable account procedures. |
blixt_bank:modules:transfers | Enable or disable transfer procedures. |
blixt_bank:modules:atm | Enable or disable ATM and card withdrawal. |
blixt_bank:modules:invoices | Enable or disable invoices. |
blixt_bank:modules:cards | Enable or disable cards. |
blixt_bank:modules:business_cards | Enable or disable Bank-backed Business card support. |
blixt_bank:modules:recurring | Enable or disable recurring transfers and scheduler. |
blixt_bank:modules:loans | Enable or disable loan procedures. |
blixt_bank:shadow_framework_bank | Best-effort mirror writes into framework bank accounts. |
blixt_bank:debug_commands | Enables /atm and /bankoffice debug launch commands. |
Locations
Section titled “Locations”locations controls where players open Bank surfaces:
locations.officesdefines Bank Office branches.locations.atmModelsdefines ATM props.locations.useOxTargetregisters ATM target interactions whenox_targetis running.locations.drawMarkersenables marker andEfallbacks.blixt-propertiescan provide office access zones when installed.
Location checks only open the UI. Server-side account membership, module status, card status, cash availability, PIN checks, and identity checks still run before any money moves.
Related Resources
Section titled “Related Resources”- Blixt Phone: optional handset app, Gov ID, notifications, and phone-number integrations.
- Blixt Tablet: optional wider device surface.
- Inventory items: phone/tablet item gates and inventory setup notes.
- Convars: shared Blixt convars.