Skip to content

Install

This guide walks through a fresh Blixt install on a FiveM server.

Blixt is distributed as separate resources so you can install only what you need.

ResourceFolder nameStatusPricingNotes
Blixt PhoneblixtAvailable$49 USD, one-timeRequired core resource
Blixt Map Tilesblixt-map-tilesAvailableFreeRequired for the Maps app to render. Static tile assets served to the in-phone Maps surface via cfx-nui-blixt-map-tiles/.... Without it the Maps area is blank.
Blixt Tabletblixt-tabletAvailableFreeDepends on blixt
Blixt Libraryblixt-libAvailableIncluded with BankRequired helper resource bundled inside the Blixt Bank package.
Blixt Bankblixt-bankAvailableSee TebexStandalone Bank Office and ATM resource. Blixt Phone is optional for handset, Gov ID, notifications, and Business integration.
Blixt Businessblixt-businessCOMING SOONDepends on blixt
Blixt Racingblixt-racingCOMING SOONStandalone resource with Blixt integration

For the phone suite, install the phone first, then map tiles. Tablet and Business depend on blixt; Racing can integrate with it when Blixt device surfaces are enabled.

Blixt Bank can be installed independently. Start blixt-lib before blixt-bank. If Blixt Phone is installed, start blixt before or with Bank so the handset app, Tablet app, Gov ID, notifications, phone-number payments, and Bank Staff integration can register.

Blixt Phone is a complete phone resource. It is not an LB Phone plugin. For a production server, use one full phone resource for the same player phone experience.


  • FXServer on a current recommended build.
  • A supported framework: qbox, qbcore, esx, or standalone.
  • MariaDB or MySQL 8+ reachable from the FXServer host.
  • oxmysql loaded before Blixt.
  • screenshot-basic for camera and photo capture.
  • pma-voice for in-game calls and mute behaviour.

Blixt Bank requires oxmysql and blixt-lib. Racing preview/release builds are expected to require oxmysql. Business and Tablet depend on the core blixt resource.


Available resources are downloaded from Tebex. Coming soon resources are listed here so you can plan the folder names and install order, but they are not public purchases until release.

Extract resources into your FXServer resources tree:

resources/
+-- [blixt]/
+-- blixt/ # phone, available, $49
+-- blixt-map-tiles/ # map tiles, available, free - required for Maps app
+-- blixt-tablet/ # tablet, available, free
+-- blixt-lib/ # helper bundled with bank
+-- blixt-bank/ # bank, standalone
+-- blixt-business/ # business, coming soon
+-- blixt-racing/ # racing, coming soon

The inner folder names matter. Do not rename blixt, blixt-map-tiles, blixt-tablet, blixt-lib, blixt-bank, blixt-business, or blixt-racing.


Set the database, framework, and Blixt convars before starting Blixt resources.

# Database, used by oxmysql and Blixt
set mysql_connection_string "mysql://user:password@127.0.0.1:3306/blixt"
# Framework selection
set blixt:framework "auto" # auto | qbox | qbcore | esx | standalone
# Anonymous boot ping. See /privacy
set blixt:telemetry "true"
# Required dependencies
ensure oxmysql
ensure screenshot-basic
ensure pma-voice
# Blixt core
ensure blixt
# Map tiles — required for the Maps app to render.
# Skip this and the Maps surface will show a blank canvas.
ensure blixt-map-tiles
# Optional available companion
ensure blixt-tablet

Order matters: oxmysql must start before blixt; blixt-map-tiles can start before or after blixt (no script dependency, just static assets); and blixt must start before blixt-tablet.

For Blixt Bank, start the bundled helper before the Bank resource:

ensure oxmysql
ensure blixt-lib
ensure blixt-bank

If you also run Blixt Phone, start blixt before or with blixt-bank; Bank will still run without it, but handset, Tablet, Gov ID, notification, phone-number, and Bank Staff features need the phone host.


Business and Racing are not public purchases yet. These notes are for release/preview builds only.

# Only add released or preview resources you intentionally trust.
set blixt:trusted_resources "blixt-business,blixt-racing"
ensure blixt-business
ensure blixt-racing

blixt:trusted_resources is a comma-separated allowlist for resources that can call privileged Blixt server exports. Do not add random resources to this list.

Business is expected to depend on blixt. Racing is expected to be a standalone blixt-racing resource with oxmysql, and to use Blixt integration when blixt is installed and the resource is trusted.


Blixt does not alter your database automatically. Schema changes ship as SQL files under resources/[blixt]/blixt/sql/, and you apply them by hand.

Apply sql/install.sql once to an empty database:

Terminal window
mysql -u<user> -p<password> <database> < resources/[blixt]/blixt/sql/install.sql

This creates every Blixt table and seeds the blixt_migrations bookkeeping table so the schema-version check on boot passes. On startup you should see:

[@blixt/database] Connected to database
[@blixt/database] Schema up to date (...)

If the schema does not match what the bundled server expects, blixt refuses to start and logs which upgrade-*.sql to apply.

Each release ships an upgrade-vX-to-vY.sql file alongside install.sql. Apply the deltas between your current version and the target, in order:

Terminal window
mysql -u<user> -p<password> <database> < resources/[blixt]/blixt/sql/upgrade-1.0.4-to-1.1.0.sql

The upgrade files are idempotent-safe to re-run if you’re unsure where you stopped. See Upgrading for the full flow.

For applying install.sql / upgrade files the user needs CREATE, ALTER, DROP, INDEX, plus the normal SELECT, INSERT, UPDATE, DELETE. After the schema is in place, Blixt at runtime only needs SELECT, INSERT, UPDATE, DELETE.

For local development you can let Blixt run knex migrations on boot:

set blixt:auto_migrate "true"

This is off by default and should stay off in production. Server owners should apply SQL files by hand so schema changes are auditable, reversible, and survive backups cleanly.


Blixt ships with blixt/config.json. The defaults boot a working phone; edit the file when you want server-specific branding or app behaviour.

Common fields:

  • phone.branding.deviceName and tablet.branding.deviceName.
  • phone.disabledApps and tablet.disabledApps.
  • phone.wallpapers.
  • phone.featuredApps and tablet.featuredApps.
  • tablet.toggleKey.

See Configuration for the full config reference.

Back up config.json before extracting a new release zip. See Upgrading for the update flow.


Section titled “7. Camera, gallery, and voice memo storage”

The camera uses screenshot-basic. Photos and voice memos then use the storage backend you configure.

Image storage supports:

  • Cloudflare R2
  • Generic S3-compatible storage
  • Fivemanage
  • Discord webhook

Voice memo storage supports:

  • Cloudflare R2
  • Generic S3-compatible storage
  • Fivemanage

See Convars for every storage convar.


Start the server. In console you should see:

[@blixt/database] Connected to database
[@blixt/database] Ran N migrations: [ ... ]
[blixt] Loaded config.json
[blixt] Framework: <auto|qbox|qbcore|esx|standalone>

Join the server and run /phone or press the configured phone key. For the tablet, run /tablet or bind it under FiveM Settings > Key Bindings > Blixt > Toggle Tablet.

If the phone never opens, re-read the FXServer console for an error from blixt, oxmysql, screenshot-basic, or your framework. See Troubleshooting.