🐺 LXR Banking — Financial Ecosystem for RedM
Version 1.3.4 · iBoss21 / LXRCore · Store · Discord Support
Elevate your RedM economy with LXR Banking — a production-grade, server-authoritative SQL banking backbone built for serious 1899 roleplay. Players open accounts at frontier branches, move money through a full ledger, rent vault lockboxes, and optionally unlock an entire financial stack: credit scores, loans, mortgages, commodity & stock markets, insurance, treasury simulation, branch HR, vault heists, and deep integration with the LXRCore / Wolves lxr-* ecosystem.
Designed for 150+ player servers with 0.00ms client idle when the UI is closed, sharded background simulation, and a single open config.lua — no client or server edits required for normal tuning.
Lean by default: Core banking + vaults ship ON. Loans, markets, business HR, brain sim, and macro events are OFF until you flip
Config.LXR.Features— scale complexity to your server, not the other way around.
✨ Why LXR Banking?
Traditional framework bank JSON
LXR Banking
Persistence
Per-town keys in players.money
Dedicated SQL ledger + audit trail
Transfers
Limited / framework-specific
Player-to-player, fee-aware, searchable ledger
Economy depth
Deposit / withdraw only
Optional full stack (credit, loans, markets, treasury)
Integrations
Per-script hacks
Canonical TryPay hub for 40+ lxr-* scripts
Security
Client-trusted in many setups
Server-authoritative + anti-dupe + rate limits
Configuration
Scattered framework files
One Config.LXR tree
Legacy cutover
Manual SQL / risky
Safe coexist + phased rsg-banking / vorp_banking import
🏛️ Core Banking (ON by default)
Everything below works out of the box after ensure lxr-banking — no extra feature flags required.
Accounts & wallet bridge
- Checking & savings auto-provisioned on first bank visit
- Deposit / withdraw — wallet cash ↔ SQL accounts (framework bridge auto-detects LXR, RSG, VORP, RedEM, QBR, QR)
-
RSG money-as-items — true cash via
dollar/centonly; excludes blood money, clips, and illegal variants - Account customization — player nicknames + accent colors (server-clamped palette)
- Prestige tiers (optional) — Bronze → Platinum from total balance; loan approval bonuses
- Monthly maintenance fees & overdraft rules (configurable bps / flat fees)
Transfers
- Internal transfers between owned accounts
- Player-to-player transfers with optional transfer fees (
transferFeeBpsper account type) - Server-enforced daily withdraw caps and max transfer amount
- Cooldowns per action type (transfer, withdraw, deposit)
Transaction ledger
- Dedicated Ledger tab with human-readable action labels
- Signed amounts (green credit / red debit)
- Detail lines — counterparty, lockbox tier, partner shop, fees
- Date display — Today / Yesterday + time
- Search filter — filter rows client-side without extra callbacks
- Full SQL history — survives restarts; feeds Discord webhooks when enabled
Branches & world presence
- 4 seeded branches — Federal Reserve (Saint Denis), Valentine National, Rhodes Commercial, Saint Denis Trust
- ox_target sphere zones at configurable coords + radius
- Map blips and banker NPCs (deferred spawn after CEF paint — no frame spike on open)
-
/bankchat command when near a branch - Per-branch cash reserve, trust rating, and role slot caps (banker, teller, loan officer, security, auditor)
PIN security
- Optional 4-digit PIN on sensitive actions (withdraw, transfer, loan pay, vault actions)
- Configurable max attempts + timed lockout
- PIN setup on Accounts tab when credit score feature is disabled
Admin panel
- Command:
/lxr-banking(aliases:lxrbank,lxr_banking,bankadmin) - ACE:
lxr-banking.admin+ framework admin groups + optional license/Discord allowlists - Treasury adjust, economic event spawn, account freeze, audit log view
- Granular permission gates per admin action in config
🔐 Vaults & Storage (ON by default — Features.VaultsEnabled)
Branch lockboxes
- Rent personal SQL stashes tied to a branch (open from bank NUI)
- 4 tiers — Portable Strongbox → Bank Vault Safe (slots + weight)
-
Real capacity sync from lxr-safe
SafeTypeswhenSyncLockboxStorageFromLxrSafe = true - Monthly rental fees per tier; 30-day rent periods; renew from Vault tab
- Max 5 lockboxes per character (configurable)
- End Rental — player can cancel early; stash wiped, no refund, slot freed (in-bank confirm dialog — same LXR NUI chrome)
- Inventory bridge:
lxr-inventory→rsg-inventory→vorp_inventory(auto)
lxr-safe shop (Vault tab)
When ensure lxr-safe and Integrations.LxrSafe.Enabled:
- Purchase placeable safe items directly from the bank
- Prices in
PurchaseCatalog(typeId → $) - Live slots + kg display from
lxr-safeexports - Treasury fee routing on purchases (configurable bps)
Vault heists (optional — OFF by default)
Separate Heist tab when robbery toggles enabled:
- Main vault robbery — multi-stage heist when branch security understaffed
- Transport robbery — cash transport between branches
-
Toolkit gate —
lockpickand/ordynamiterequired (server + NUI enforced) - Integrates with lxr-robbery SQL backend exports (
RobberyRemoveBankMoney, offline holder collection) - Discord robbery logging when enabled
💳 Optional Financial Stack (OFF by default — enable per Features.*)
Flip flags in Config.LXR.Features — tabs and callbacks appear automatically. SQL data is preserved when disabled.
Credit score (CreditScoreEnabled)
- Scale 300–850 (FICO-style RP)
- Bonuses for on-time payments; penalties for missed payments, bankruptcy, court judgments
- Affects loan spread (basis points added from worst credit)
- Credit tab + overview badge when enabled
Loans (LoansEnabled)
- Types: personal, business, emergency, government
- APR in basis points + credit spread
- Weekly payment intervals, grace period, delinquency tracking
- Officer approval queue for large / collateral loans
- Emergency fast-approval path under cap
Mortgages (MortgagesEnabled)
- Property types: home, ranch, commercial
- Down payment %, term months, foreclosure after missed payments
- Housing fund UI embedded in Mortgages tab (see Integrations)
- Property tax integration hooks
Investment exchange (InvestmentsEnabled)
- Commodities — gold, silver, oil, coal, lumber, wheat, cotton, livestock
- Stocks — Blackwater Mining, Lemoyne Railroad, Saint Denis Shipping, Valentine Oil Trust
- Bonds — government 5Y, mining corp 10Y
- Live price drift (sharded sim), trading fees, buy/sell from Invest tab
- Holdings persisted in SQL
Insurance (InsuranceEnabled)
- Products: life, business, cargo, livestock
- Premium intervals, coverage caps, payout multipliers
-
PayInsuranceClaimexport for RP loss events
Treasury & federal reserve (TreasuryEnabled)
- Federal reserve branch with starting reserves
- Min reserve ratio — branches can block withdrawals when liquidity low
- Bond issuance (optional player purchases)
-
Tax deposit routing —
DepositTaxRevenueexport + integration events - Emergency liquidity cap per injection event
Branch business & HR (BusinessEnabled)
- lxr-playerstore-style HR at branches
- Numeric role levels: teller → auditor → security → loan officer → banker → owner
- Job offers via ox_lib dialog; direct hire; promote / demote / fire
-
Payroll from branch
cash_reserve— automatic cycles or manual run - Branch branding — custom NUI title / subtitle / logo (owner or admin)
- Employment tab in player NUI
Private banks (PrivateBanksEnabled)
- Players charter private branches — capital requirement, staff minimums
- Bankruptcy when reserve ratio collapses
- Bank-run withdrawal surge during panic regimes
- Dynamic ox_target registration for private branch coords
Live bank brain (BrainEnabled + Brain.Enabled)
- Sharded liquidity pulse — reserve reconciliation, federal injections, excess sweeps
- Savings interest accrual (APY bps + funds-rate influence)
- Inter-branch settlement simulation
- Regime detection: stable → caution → stress → panic → boom
- Overview activity feed (last N brain actions)
Macro economic events (EconomicEventsEnabled + EconomicEvents.Enabled)
20+ weighted regimes — not arcade timers; days/weeks scale:
Category
Examples
Equity
Bull market, bear market, correction, crash, merger mania, recession fears
Financial
Banking panic, liquidity crunch, flight to safety, credit tightening
Commodity
Gold discovery, oil spike/glut, drought, bumper harvest, cattle drive, cotton boom
Infrastructure
Railroad boom, railroad strike
Effects: stock/commodity multipliers, volatility, branch trust penalty, withdrawal surge pressure.
Crime & investigation (CrimeReportingEnabled)
- Suspicious deposit thresholds + laundering report chance
- Counterfeit detection hooks
-
ReportSuspiciousActivityexport - Optional sheriff resource integration (
lxr-police)
Estate & inheritance (EstateEnabled)
-
FileWill/ProcessEstateexports - Notarized will requirement (court override option)
- Inheritance tax to treasury
Payroll hooks (PayrollHooksEnabled)
-
ProcessPayroll(batch)export for external job scripts - Batch limit configurable
Tax integration (TaxIntegrationEnabled)
-
lxr-banking:integration:tax_deposit/property_tax/property_mortgageevents
🌐 VORP Gold Banking (VORP Core only)
When vorp_core is detected and Integrations.Vorp.GoldBankEnabled:
- Separate SQL gold vault account (
account_type = gold) -
Deposit —
character.gold(currency type1) → vault viaremoveCurrency -
Withdraw — vault → wallet via
addCurrency - Overview Gold on Hand card + gold vault on Accounts tab
- Cash economy, transfers,
TryPay, and partner shops remain cash-only - No gold transfers between players — deposit/withdraw only
🔗 LXRCore Ecosystem Hub (Integrations['lxr-ecosystem'] — ON by default)
LXR Banking is the SQL pay backbone for the Wolves / Tebex lxr-* stack.
Canonical exports
exports['lxr-banking']:TryPay(src, amount, { partner = 'lxr-roulette', reason = 'bet' })
exports['lxr-banking']:CreditPlayer(target, amount, 'checking', 'payroll')
exports['lxr-banking']:DebitPlayer(src, amount, 'checking', 'fee')
exports['lxr-banking']:GetAccountBalance(citizenid, 'checking')
Native integrations (no patch — bank NUI or built-in)
Script
Feature
lxr-safe
Vault tab — lockboxes + buy placeable safes
lxr-balloons
Vehicles tab — balloon ownership
lxr-boats
Vehicles tab — registered boats
spooni_build_my_home
Mortgages tab housing fund + SpooniTryPay
Pay-bridge partners (one-time patch templates included)
lxr-playerstore · lxr-roulette · lxr-gambling · lxr-robbery · lxr-ranchlife · lxr-police · lxr-balloons (broker UI) · lxr-wagonmaker · lxr-telegraph · lxr-crafting · lxr-clans · and more — 40+ scripts in the ecosystem registry.
Templates ship in docs/templates/. Console prints detected partners on boot when PrintStartupSummary = true.
Robbery SQL backend
exports['lxr-banking']:RobberyGetTotalBalance(citizenid)
exports['lxr-banking']:RobberyRemoveBankMoney(citizenid, amount, reason)
exports['lxr-banking']:RobberyCollectOfflineHolders(...)
🏠 Housing Integrations (optional — Integrations.Housing)
Multi-provider housing support — enable only what you run:
Provider
Mode
Reserve model
Spooni Build my Home
full
spooni_houses.ledger
BCC Housing
full
bcchousing.ledger
Rex Houses
full
rex_houses.credit hours
ST Housing
full
st_plots.last_tax_paid
Dodiban Housing
full
dodi_house_payments.next_payment
Spaghetti / SH / MB / VMS / VORP / RTX
pay_only or docs_only
Bridge patches documented
-
HousingTryPay— wallet first, then checking -
HousingFundReserve— bank → property tax reserve - Fund UI in Mortgages tab (requires
Features.MortgagesEnabled) - Spooni bridge patch template for in-world purchases
🔄 Legacy Bank Replacement (rsg-banking · vorp_banking)
Safe first install — LXR auto-creates SQL tables only; legacy banks keep working until you cut over.
Phase
Behavior
Phase 1 (default)
rsg-banking / vorp_banking stay authoritative; LXR branches testable in parallel
Phase 2
Flip LegacyReplacement.RsgBanking.Enabled or VorpBanking.Enabled → one-shot balance import, optional StopResource, event shims
- Idempotent migration ledger — no double-credit on restart
- Console BANKING SAFE INSTALL guide when legacy detected
- Preview import counts before cutover
- VORP gold columns not imported — players deposit wallet gold after cutover
Full guide: included docs/LEGACY_MIGRATION.md
🛡️ Security & Anti-Abuse
Built for live economy servers — not a client-trusted NUI toy.
Layer
What it does
Server-authoritative
All amounts validated server-side; client success flags ignored
Session tokens
Bound to source; TTL while NUI open
Proximity
Check on open + re-check on sensitive finish
Rate limits
Per-source burst + window
PIN lockout
Brute-force protection
Audit log
SQL audit on mutations
Anti-dupe (RSG)
Close external inventory on bank open; progress handshake; block money actions while inv_busy / lxrbank_inv_open; auto-close bank if inventory opens mid-session
Name guard
Resource stops if renamed (escrow protection)
⚡ Performance
Target
Implementation
0.00ms client idle
No per-frame loops when NUI closed
Lazy bootstrap
Callbacks register on first interaction path
Sharded server sim
Fees, loans, markets, brain — split across simShardCount timers
NUI chunk stagger
~80ms between SendNUIMessage sections (CEF OOM protection)
Deferred NPC spawn
Peds spawn after CEF paints
🎨 NUI — Canonical LXR Design System
- Vanilla HTML / CSS / JS — no React, Vue, build step, or CDN
-
Parchment banner + ground inventory chrome (same system as all
lxr-*scripts) -
Georgian + English locales (
encanonical,ka1:1 mirror) - ESC closes confirm dialog first, then bank
- In-NUI confirm modal — End Rental and destructive actions use bank chrome (not OS dialogs)
- Logo: copy
docs/brand/lxrcore-logo.png→html/img/lxrcore-logo.png
Player tabs (dynamic — only enabled features show)
Overview · Accounts · Transfer · Credit · Loans · Mortgages · Invest · Insurance · Vault · Heist · Vehicles · Employment · Ledger
Admin: separate panel via /lxr-banking
🧩 Framework Support
Auto-detect order (configurable):
LXR Core · RSG Core · VORP Core · RedEM:RP · QBR Core · QR Core · Standalone
Single shared/framework.lua bridge — inventory, notifications, money, stash open. No bridge/ folder sprawl.
📦 Requirements
Required
Recommended / Optional
ox_lib
ox_target (branch zones)
oxmysql
lxr-safe (vault shop + real lockbox specs)
Framework (see above)
lxr-balloons, lxr-boats (Vehicles tab)
lxr-robbery (heist backend patch)
Housing scripts (Spooni, BCC, Rex, …)
🚀 Installation (5 minutes)
- Extract as
lxr-banking(folder name must match — name guard enforced). - Copy
docs/brand/lxrcore-logo.png→html/img/lxrcore-logo.png. - Add to
server.cfg:
ensure ox_lib
ensure oxmysql
ensure ox_target
ensure rsg-core # or vorp_core / lxr-core
ensure rsg-banking # optional Phase 1 — remove after legacy cutover
ensure lxr-banking
add_ace group.admin lxr-banking.admin allow
- Open
config.lua→ editConfig.LXRonly (branches, features, integrations). - Restart — SQL auto-migrates (
CREATE TABLE IF NOT EXISTS). - Watch console for startup banner + ecosystem detection + legacy install guide.
Optional partners:
ensure lxr-safe
ensure lxr-balloons
ensure lxr-boats
⚙️ Configuration
One file. One tree. Config.LXR.
- Features.* — master ON/OFF for every system + NUI tab
- Branches — coords, NPCs, blips, reserves, role caps
- Accounts / Loans / Markets / Vaults / … — rates, limits, catalogs
- Integrations — Vorp gold, lxr-safe, balloons, boats, housing, lxr-ecosystem registry
- Security — rate limits, PIN, anti-dupe, transfer caps
- Admin / Discord — ACE, webhooks per action type
Flat Config.* at file bottom auto-syncs — buyers never edit protected Lua.
📄 Full reference included: docs/CONFIG.md
📁 Package Structure (lean — 51 files)
| Server | 4 files — db · banking · integrations · server (lxr-safe pattern) | | Client | 1 file | | Shared | framework.lua + helpers (open) | | NUI | Vanilla html/ — no build step | | Docs | Install, ecosystem, legacy migration, housing, VORP gold, templates |
🔒 Escrow & Buyer-Open Files
Open (editable)
Protected (CFX Escrow)
config.lua
All server/*.lua
fxmanifest.lua
client/client.lua
shared/framework.lua
shared/rules.lua
shared/constants.lua, locale.lua, utils.lua
locales/**, sql/**, docs/**
Business logic never lives in buyer-visible files — Tebex-compliant.
📤 Export Reference (quick)
Export
Purpose
GetAccountBalance
Balance lookup
TryPay / CreditPlayer / DebitPlayer
Ecosystem payments
ProcessPayroll
Batch job payouts
DepositTaxRevenue
External tax → treasury
HousingTryPay / SpooniTryPay
Housing purchases
RobberyRemoveBankMoney
SQL bank drains
LegacyMigrationStatus
Cutover state
GetBankBrainStatus
Brain sim status
StartVaultRobbery
Heist integration
Full list in docs/ARCHITECTURE.md
🆘 Support & Links
Store
Discord (install + scripts)
Documentation
Included docs/README.md index
Developer
iBoss21 / LXRCore
✅ Release checklist (Cfx.re rules)
- I have reviewed the latest version of the Release rules.
- I have included a detailed description of my work as described in the rules.
- I have included a download link or a store link.
- I have filled out the required information at the end of the topic.
📋 Resource information
Code is accessible
Config, framework bridge, locales, SQL, docs — Yes. Server/client logic — No (Escrow).
Subscription-based
No
Lines (approximately)
12,000+ (bundled server stack + NUI + docs)
Requirements
ox_lib, oxmysql, framework (LXR/RSG/VORP/RedEM/QBR/QR). ox_target recommended.
Support
Yes — Discord + documentation
Store link
Version
1.3.4
Game
RedM (RDR3)
Lua
5.4
© 2026 iBoss21 / LXRCore | lxrcore.com | All Rights Reserved
🐺 Built for The Land of Wolves · LXRCore RedM scripts · www.lxrcore.com