This page takes you from an empty machine to a running Quasar Framework (qs-core) roleplay server: the FiveM framework that runs ESX and QBCore scripts unmodified next to its own. You can install it in one click with the txAdmin recipe or by hand, and both paths end with the same server: the same folders, the same database and the same commented server.cfg.
The fastest route is Option A. Read Before you begin first either way — it lists what your machine needs and the two mistakes that break a fresh install.
Before you begin#
Requirements#
Requirement | Details |
|---|---|
FXServer | A recent FXServer artifact with support for game build 3751. The shipped |
OneSync | Required. The txAdmin recipe turns it on for you ( |
Database | MySQL 8.0+ or MariaDB 10.4+. Quasar Framework stores everything (characters, money, inventories, vehicles, bans) in one database through oxmysql. |
txAdmin | Recommended. It deploys the recipe, makes you an admin automatically, and its in-game menu works with Quasar Framework (the Heal action also revives a downed player). |
License key | A Cfx.re server license key for |
Dependencies#
Quasar Framework itself only hard-depends on oxmysql. The rest of this table is what a complete roleplay server needs; the txAdmin recipe installs all of it, pinned to the versions below.
Resource | Version | Folder | What it is for |
|---|---|---|---|
| 2.14.3 |
| MySQL driver. The only dependency declared by |
| 3.39.0 |
| Shared library. Quasar Framework's own resources do not use it, but many ESX and QBCore scripts do, so it is installed for them. |
| 6.6.2 |
| Proximity voice chat. The voice indicator in |
| 2.7.1 |
| IPL loader for GTA Online interiors. |
| pinned commit |
| The Pillbox Hill hospital interior used by |
| cfx-server-data, pinned commit |
| The default Cfx.re map and spawn managers. Quasar Framework places each character itself; these stay as the standard base resources. |
Option A — One-click install with the txAdmin recipe#
The recipe is a txAdmin deployment template stored in the GitHub repository. It creates the database tables, writes a commented server.cfg, downloads Quasar Framework and every dependency, and leaves you with a server that is ready to play.
Open the Server Deployer
In txAdmin, go to Setup → Server Deployer and choose Remote URL Template.
Paste the recipe URL
Paste this URL and continue:
bash https://raw.githubusercontent.com/imnotquasar/qs-core/main/qs-recipes/recipe.yamltxAdmin reads the recipe — qs-core by Quasar Store — and moves on to the deployment settings.
Fill in your server details
Enter your server name, your Cfx.re license key and your database credentials (host, port, user, password and database name). txAdmin uses them to fill the placeholders of
server.cfg.Deploy
Start the deployment and wait for every task to finish: the database import, the framework download and each dependency.
Start the server and join
Save, start the server and connect. txAdmin has already made you an admin, so the admin commands and the admin menu (F6) work straight away. Then run the checklist in Verifying the installation below.
What the recipe does#
The recipe runs these tasks in order. The database comes first, then the framework, then the folders, and finally every third-party dependency at a fixed version.
# | Task | What it does |
|---|---|---|
1 |
| Connects to the database with the credentials you entered. |
2 |
| Downloads the |
3 |
| Imports |
4 |
| Moves |
5 |
| Moves |
6 |
| Downloads |
7 |
|
|
8 |
|
|
9 |
| The oxmysql 2.14.3 release zip, extracted into |
10 |
| The ox_lib 3.39.0 release zip, extracted into |
11 |
|
|
12 |
| Deletes the temporary folder. |
Resulting folder layout#
your-server/
├── server.cfg # commented, placeholders filled in by txAdmin
└── resources/
├── [core]/ # required to play
│ ├── qs-core
│ ├── qs-coreinventory
│ ├── qs-clothing
│ ├── qs-coreweapons
│ ├── qs-needs
│ ├── qs-coreshops
│ ├── qs-corehud
│ ├── qs-corechat
│ ├── qs-corevehiclekeys
│ ├── loadingscreen
│ ├── qs-intro
│ └── qs-coremulticharacter
├── [addons]/ # optional jobs and systems
│ ├── qs-jobs
│ ├── qs-ambulance
│ ├── qs-police
│ ├── qs-coredrugs
│ ├── qs-vehicleshop
│ ├── qs-garage
│ ├── qs-admin
│ ├── qs-banking
│ └── qs-rp
├── [bridge]/ # ESX / QBCore compatibility
│ ├── es_extended
│ ├── qb-core
│ ├── esx_society
│ ├── qb-management
│ ├── qb-vehiclekeys
│ ├── progressbar
│ └── LegacyFuel
├── [cfx-default]/
│ ├── [managers]/ # mapmanager, spawnmanager
│ └── [system]/ # default Cfx.re system resources
├── [maps]/
│ ├── bob74_ipl
│ └── hospital_map
└── [standalone]/
├── oxmysql
├── ox_lib
└── pma-voiceFolder | Contents |
|---|---|
| The framework and everything needed to play: player and money core, inventory, clothing, weapons, hunger and thirst, shops, HUD, chat, vehicle keys, loading screen, intro and multicharacter. |
| Optional jobs and systems: job center, EMS, police, drugs, vehicle dealership, garages, admin menu, banking and roleplay commands. Comment out the ones you do not want in |
| The ESX and QBCore compatibility layer: |
| Third-party dependencies installed by the recipe. |
Option B — Manual install#
Use the manual install when you add Quasar Framework to a server you already manage, or when you do not use txAdmin. You end up with exactly the same server as the recipe.
Download Quasar Framework
Download the repository from GitHub: github.com/imnotquasar/qs-core. It contains the
[core],[addons]and[bridge]folders, plusqs-recipeswith the referenceserver.cfg.Copy the three folders
Copy
[core],[addons]and[bridge]into your server'sresourcesfolder. Keep the folder names exactly as they are, brackets included.Install the dependencies
Install each dependency at the tested version:
oxmysql 2.14.3 — the release zip from overextended/oxmysql, extracted into
resources/[standalone]. Use the release zip, not the source code.ox_lib 3.39.0 — the release zip from overextended/ox_lib, extracted into
resources/[standalone]. Again the release zip, not the source code.pma-voice 6.6.2 — from AvarianKnight/pma-voice, into
resources/[standalone]/pma-voice.bob74_ipl 2.7.1 — from Bob74/bob74_ipl, into
resources/[maps]/bob74_ipl.hospital_map — from qbcore-fivem/hospital_map, into
resources/[maps]/hospital_map.mapmanager and spawnmanager — from citizenfx/cfx-server-data (
resources/[managers]). Do not addbasic-gamemode.
Import the database
Create a database (for example
qscore) and import[core]/qs-core/sql/qscore.sqlinto it with HeidiSQL, phpMyAdmin or the MySQL command line:bash mysql -u root -p qscore < "resources/[core]/qs-core/sql/qscore.sql"Every statement is
CREATE TABLE IF NOT EXISTS, so the import never touches tables that already exist.Write server.cfg
Copy
qs-recipes/server.cfgto your server folder and replace every{{...}}placeholder, as in the full example below.Enable OneSync and start
Make sure OneSync is on, start the server and run the checklist in Verifying the installation below.
The complete server.cfg#
This is the recipe's server.cfg with the txAdmin placeholders replaced by example values. Change the hostname, license key, database credentials and admin identifier to your own.
# Network
# -------
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# Server info
# -----------
sv_licenseKey "cfxk_xxxxxxxxxxxxxxxxxxxx_xxxxxx"
sv_hostname "Los Santos Roleplay | qs-core"
sets sv_projectName "Los Santos Roleplay | [qs-core]"
sets sv_projectDesc "Open-source FiveM roleplay framework that runs ESX and QBCore scripts."
sets tags "qs-core, qscore, roleplay, framework, esx, qbcore"
sets locale "root-AQ"
sv_maxclients 48
# Same game build as the txAdmin default recipe
sv_enforceGameBuild 3751
# qs-corechat replaces the default chat resource
set resources_useSystemChat false
# Database
# --------
set mysql_connection_string "mysql://root:password@localhost/qscore?charset=utf8mb4"
# Language for every qs-core resource: en | es | fr | de | it | pt | pl | ru | tr | ar
# ------------------------------------------------------------------------------------
setr qs:locale "en"
# Administrators
# --------------
# Everyone in group.admin can use the qs-core admin commands and the admin menu (F6).
add_principal group.admin group.user
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1234567 group.admin # your FiveM account
# qs-core manages groups/permissions at runtime via add_ace / add_principal
add_ace resource.qs-core command.add_ace allow
add_ace resource.qs-core command.remove_ace allow
add_ace resource.qs-core command.add_principal allow
add_ace resource.qs-core command.remove_principal allow
# pma-voice
# ---------
setr voice_enableRadioAnim 1
setr voice_useNativeAudio true
setr voice_useSendingRangeOnly true
# Security convars
# ----------------
sv_enableNetworkedSounds false
sv_enableNetworkedScriptEntityStates false
sv_enableNetworkedPhoneExplosions false
sv_filterRequestControl 2
# Default & standalone resources
# ------------------------------
ensure mapmanager
ensure spawnmanager
ensure oxmysql
ensure ox_lib
ensure pma-voice
# qs-core: [core]
# ---------------
ensure qs-core
ensure qs-coreinventory
ensure qs-clothing
ensure qs-coreweapons
ensure qs-needs
ensure qs-coreshops
ensure qs-corehud
ensure qs-corechat
ensure qs-corevehiclekeys
# qs-core: [addons]
# -----------------
# Jobs and systems. Comment out the ones you do not want.
ensure qs-jobs
ensure qs-ambulance
ensure qs-police
ensure qs-coredrugs
ensure qs-vehicleshop
ensure qs-garage
ensure qs-admin
ensure qs-banking
ensure qs-rp
# Player boot flow: loading screen -> intro -> character selection
# ----------------------------------------------------------------
ensure loadingscreen
ensure qs-intro
ensure qs-coremulticharacter
# Maps & IPL loaders
# ------------------
ensure [maps]
# ESX / QBCore compatibility
# --------------------------
# Do NOT install the real es_extended or qb-core next to these.
# Put third-party scripts after this line.
ensure [bridge]What each section does#
Section | Lines | Why it is there |
|---|---|---|
Network |
| The address and port the server listens on. txAdmin writes these from |
Server info |
| Your license key and how the server appears in the FiveM server list. The recipe fills them from |
Game build |
| Forces every client onto game build 3751, the same build as the txAdmin default recipe. |
Chat |
| Turns off the built-in chat, because |
Database |
| The oxmysql connection string ( |
Language |
| The language of every Quasar Framework resource. It must be |
Administrators |
| Gives |
Runtime permissions | four | Lets |
pma-voice |
| pma-voice settings: radio animation, native audio and sending-range-only voice. Replicated with |
Security |
| Standard FXServer hardening against common client-side abuse: networked sounds, script entity states, phone explosions and requests to take control of entities. |
Resources | the | Starts every resource by name, in boot order. See below. |
Load order and why it is explicit#
Resources are started by name, one by one, instead of with ensure [core] or ensure [addons]. Starting a whole folder does not follow the order below, and the order matters:
Order | Resources | Why |
|---|---|---|
1 |
| Base resources and libraries. oxmysql has to be up before |
2 |
| The framework core. Every other Quasar Framework resource depends on it. |
3 |
| The inventory backend. |
4 | The rest of | Clothing, weapons, needs, shops, HUD, chat and vehicle keys, all built on the core. |
5 |
| Jobs and systems built on top of the core. Comment out any you do not want. |
6 |
| The player boot flow, in this exact order. |
7 |
| Interiors and IPLs. |
8 |
| The ESX and QBCore bridges, after everything above, because they build on the running core. |
9 | Your third-party scripts | After |
The database#
qscore.sql creates ten tables. Characters live in a single players table, one row per character, with their data stored as JSON columns.
Table | What it stores | Used by |
|---|---|---|
| One row per character: |
|
| Bans: |
|
| Each account's saved UI palette ( |
|
| Each account's permission group ( |
|
| Vehicle trunk contents by |
|
| Glovebox contents by |
|
| Stash contents by |
|
| Owned vehicles: |
|
| Each character's bank account number. |
|
| Bank history: |
|
Tables the bridges create on start#
The ESX and QBCore bridges create their own tables the first time they start (CREATE TABLE IF NOT EXISTS). You do not import anything for them.
Table | Created by | What it holds |
|---|---|---|
|
| An ESX-shaped copy of each character (accounts, job, inventory, position, name, skin...) for ESX scripts that read the database. Quasar Framework writes it when a character loads and on every save; the copy is one-way, so raw SQL writes to |
|
| Created for ESX scripts that expect it. Owned vehicles live in |
|
| Society (job) money. |
|
| Job and gang funds for QBCore scripts. |
Admin access#
Admin rights are plain FiveM ACE permissions. The shipped server.cfg gives group.admin every command, and every Quasar Framework admin check passes for its members.
txAdmin admins#
When you deploy with the recipe, txAdmin writes your own account into server.cfg as a member of group.admin (the {{addPrincipalsMaster}} line). You are an admin from your first join.
Adding admins in server.cfg#
Add one add_principal line per admin, below the add_ace group.admin lines, using either their FiveM account id or their Rockstar license:
# By FiveM account
add_principal identifier.fivem:1234567 group.admin
# By Rockstar license
add_principal identifier.license:0123456789abcdef0123456789abcdef01234567 group.adminRestart the server after editing server.cfg. Player identifiers appear in txAdmin's player panel.
/setgroup and /removegroup#
You can also manage groups live, from the server console (txAdmin Live Console) or in game as an admin. The group is saved in player_groups and re-applied every time the player connects.
Command | Who | Description |
|---|---|---|
| Console or admin | Saves the group for that player's license and adds them to |
| Console or admin | Deletes the saved group and removes the player from it. The console prints |
setgroup 1 admin
removegroup 1What group.admin unlocks#
Feature | Details |
|---|---|
Admin commands | Every |
Admin menu |
|
Admin vehicle keys |
|
ESX and QBCore admin checks | ESX scripts see |
The full list with arguments is in Administration and Commands and Exports.
Language#
Quasar Framework ships in 10 languages. One line in server.cfg switches every Quasar Framework resource at once:
setr qs:locale "es"Code | Language |
|---|---|
| English (default) |
| Spanish |
| French |
| German |
| Italian |
| Portuguese |
| Polish |
| Russian |
| Turkish |
| Arabic |
Restart the server after changing the language. To translate Quasar Framework into another language, see Configuration.
Verifying the installation#
Run through this checklist once after installing. Each step tests a different part of the framework.
Start the server and read the console
Every resource should report
Started resource ..., with no errors in red. Once the database is reachable you should see these two lines:bash [script:oxmysql] [...] Database server connection established! [script:qs-core] [qs-core] Database connection established.If the second line never appears, check
mysql_connection_stringand that the SQL was imported into that database.Join and check the loading screen
Connect from FiveM. The loading screen shows the server branding (
QSCORE, Roleplay Framework by default), a progress bar, the key hintsF1,TAB,1-5,E,U,B,GandT, and rotating tips at the bottom.Pick your colours in the intro
On your first join, a short scene plays and a colour picker opens: choose a preset or your own primary and accent colour and confirm. The palette is saved to your account, so the intro is skipped on your next joins and every interface uses your colours.
Create a character
The character selector opens with five empty slots. Create a character, fill in the details and design the appearance in the clothing editor. The server console prints
[qs-core] Created character QSXXXXXX for license:...and then[qs-core] Loaded character QSXXXXXX (src 1).Spawn in the world
Your new character spawns at the default spawn point (
Config.DefaultSpawn) with the HUD visible.Open the inventory with F1
Press F1. A new character starts with 2 water, 2 bread, a phone and an ID card. You can keep walking or driving while the inventory is open.
Hold TAB for the item wheel
Hold TAB, aim at an item with the mouse and release to use it. The wheel shows your first five slots and replaces GTA's weapon wheel.
Spawn a car with /car adder
Type
/car adder. The car spawns, you are placed in the driver seat and you receive its keys. If you get No permission, your account is not ingroup.admin— see Admin access above.Lock it with U
Step out and press U. The lights flash, the doors lock and you get a locked notification. Press U again to unlock.
Updating#
Quasar Framework updates are delivered as new versions of the three framework folders.
Back up
Back up your database and the config files you changed (for example
qs-core/shared/config.lua,qs-core/shared/jobs.lua,qs-coreinventory/shared/config.luaandloadingscreen/config.js).Replace the three folders
Stop the server, download the new version from GitHub and replace
[core],[addons]and[bridge]. Yourserver.cfg, the database and the third-party folders ([standalone],[maps],[cfx-default]) are not part of the update.Re-apply your config edits
Copy your settings back into the new config files instead of overwriting them with your old files, so new options added by the update are kept.
Apply new SQL if there is any
If the update notes mention database changes, apply them. Importing
qscore.sqlagain is safe — it only creates tables that do not exist yet and leaves your data untouched — but it does not change tables that already exist.Compare server.cfg
Compare your
ensurelist with the newqs-recipes/server.cfgand add any new resource in the same position, then start the server and run the checklist above.
Driving Quasar Framework from your own scripts? Every command, keybind, export and event is listed in Commands and Exports. If something does not start, see Common Errors.



