Studio note · 2026

A bank that cannot print money.

joyride.games is two people. First resource: ledger-first banking for FiveM RP servers. Every cash movement is one atomic SQL transaction. If the row doesn’t update, the money doesn’t move.

jr_banking in development Not for sale No storefront yet

Not a screenshot. Drawn here. Route is the metaphor, not a feature demo.

01 / First product

In development · not for sale yet

jr_bankingLedger-first banking.

Most RP banks check the balance in script, then write it in a second step. That gap is where double-clicks and parallel requests print money. We don’t leave a gap.

01

The WHERE clause is the lock

Balance and freeze checks live in the SQL that moves money (WHERE balance >= ? AND is_frozen = 0), not in Lua beforehand. Zero rows updated means denied — the cash never moved.

02

The journal writes denials too

Every call — deposit, withdraw, transfer — appends a row, success or not. An admin can see who tried to drain a frozen account, not only who succeeded.

03

Roles join the same transaction

Owner, manager, member are checked inside the money movement, not after it. A forged account id does not spend someone else’s balance.

In v1

  • Personal accounts
  • Organization accounts with owner / manager / member
  • Qbox and QBCore via a bridge layer
  • Open config.lua for limits, currency, ATM points

Not in v1

  • Invoices, loans, savings interest, crypto
  • ESX — planned after v1
  • Phone apps and physical checks
sql · jr_accounts invariant
-- Subtract only if the money is actually there.
-- 0 rows = denied. There is no second chance.

UPDATE jr_accounts
   SET balance = balance - :amt
 WHERE id = :from
   AND balance >= :amt
   AND is_frozen = 0;

-- Then the journal, always:
INSERT INTO jr_transactions
  (from_id, amount, actor, reason, denied_code)
VALUES
  (:from, :amt, :citizenid, 'withdraw',
   NULL -- or 'insufficient_funds' / 'frozen' / 'no_access');

-- Lua never decides the balance.
-- Three verbs: deposit, withdraw, transfer.

Illustrative of the invariant — not a paste of the shipping source. Amounts are integers. No float cents.

02 / Two lanes

Server owners and players don’t share a checkout.

Paid scripts for the people who run a city. Free tools for the people who play in one. Nothing here requires the other.

Paid scripts · coming soon

For server owners

Scripts and assets for FiveM roleplay servers, built to drop into a live city — not a screenshot. First up: jr_banking. When it ships, it will be sold through Tebex.

  • Mechanics that hold up with real players, not demo footage
  • Fits existing Qbox / QBCore setups via a bridge, not a rewrite
  • Storefront not open yet — this page is the signal
Guides live · trackers coming soon

For players

Written guides for the next big open-world release are live now. Interactive companions — maps, collectible trackers, checklists — are still in the oven. No paywall, no account required, ever.

  • Built around the next major open-world release, out November 19, 2026
  • Guides section is live: pre-release coverage, sourced only from official material
  • Interactive maps and progress trackers land ahead of launch — join the list below

03 / Studio

Two people. No curtain.

joyride.games is the shared name for what two people build: server-side scripts for FiveM communities, and small free tools for players around whichever open-world release is worth building for next. There is no team behind the curtain — if it ships under this name, one of us wrote it.

We operate as a small independent outfit based in Georgia, under the umbrella of Margats, our holding entity. No investors, no roadmap decks. The first product is still in development. We would rather say that than pretend a store exists.

Team
Two people, full stack — no studio floor, no agency.
Base
Independently operated (IP), Georgia.
Umbrella entity
Margats — margatsllc.com

04 / Mail

A note when it ships. Nothing else.

No newsletter, no drip. One message when the Tebex store or a player tool goes live. Unsubscribe whenever — there will barely be anything to leave.

Opens your email client, addressed to hello@joyride.games. A real signup form comes once the store is closer to launch.