Before You Begin#
Before installing Guitar Pro, make sure your server meets the minimum requirements. Three dependencies are mandatory, plus the props resource that comes in the same download; everything else is optional and detected on its own.
Requirement | Status | Notes |
|---|---|---|
OneSync | Required | Infinity or legacy. |
oxmysql | Required | Database access. The tables create themselves. |
ox_lib | Required | Callbacks, notifications and shared helpers. |
guitarpro-assets | Required | The streamed arcade cabinet and guitar props. Ships with the script. |
Framework | Optional | ESX, QBCore or Qbox — auto-detected. Without one it runs standalone: machines are free and progress is kept per FiveM licence. |
Target | Optional | ox_target. Without it — the default — a floating [E] prompt appears at each cabinet. |
Interface | Optional | qs-interface for notifications and the HUD, qs-textui for the 3D prompt. ox_lib notifications and a drawn prompt otherwise. |
There is no inventory integration — nothing here is an item. Payouts are XP and shop points, both stored by the resource itself, and the only money that ever moves is the price to play a machine. Integrations has the details of every optional resource.
Downloading Guitar Pro#
After purchasing Guitar Pro, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Guitar Pro.
After extracting the download, you should have two folders:
guitarpro-assets/ -- the cabinet and guitar props (stream only)
qs-guitarpro/
├── config/ -- main.lua: everything you are meant to change
├── custom/ -- framework bridges (editable)
├── client/custom/ -- notifications, prompt, target and editors (editable)
├── database/ -- sql.sql, with the 18 shipped charts
├── locales/ -- 41 languages
├── songs/ -- the audio, one file per song
└── web/build/ -- the interface, already builtKeep the folder names
qs-guitarproandguitarpro-assets. Other resources — qs-arcades among them — call the exports by that name, so a renamed copy stops answering them.
Installing the Resource#
Move both folders into your server's resources directory. They can live anywhere inside it, including a category folder:
resources/
└── [arcades]/
├── guitarpro-assets/
└── qs-guitarpro/Then open your server.cfg and make sure every dependency — and everything it should detect — starts before Guitar Pro, with the props first:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Optional
ensure ox_target
ensure qs-interface
ensure guitarpro-assets
ensure qs-guitarproThe loading order matters. The framework is detected the moment Guitar Pro starts, so a framework that starts after it is not found and the script runs standalone. If both folders sit in the same bracketed folder, ensure [arcades] covers them — as long as that line comes after your framework.
The Database#
Guitar Pro creates its six tables on the first start, so nothing is strictly required. You do still want to import database/sql.sql once: beyond the table definitions, it seeds the 18 shipped songs with their charts already generated, so they are playable the moment the server starts. Run it with your usual database manager — HeidiSQL, phpMyAdmin, DBeaver or Navicat.
Table | Holds |
|---|---|
| Each player's best run per song and difficulty: score, accuracy, longest streak, grade, stars and number of plays. |
| Every run played, for the profile screen. The latest 40 per player are kept. |
| The machines placed with the creator. |
| Each song's details — name, artist, tempo, play window, difficulties — and its generated chart. |
| XP, points and the equipped guitar. |
| The guitars each player owns. |
Skip the import and nothing breaks — the 18 songs simply arrive not generated. They are listed in the music manager but stay out of the players' song list until an admin presses Generate on each one. Importing the file saves you those 18 analysis passes.
Granting Creator Permission#
The machine creator, the music manager and the progression command all check one ACE permission, command.guitarcreator. Grant it in server.cfg:
The usual route: everyone in your admin group gets it.
add_ace group.admin command.guitarcreator allowFor a single person, by their licence:
add_ace identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx command.guitarcreator allowRestart the server after adding it. Each command can be given its own permission in config/main.lua — Config.Creator.permission, Config.Music.permission and Config.Progression.permission — if you want song staff who cannot move machines.
Configuring the Resource#
Everything you are meant to change is in one file, config/main.lua. Machines and songs are managed in game; the file holds the rules of the game, the stage and the shop. The values worth reviewing first:
Config.Locale = 'en' -- any of the 41 files in locales/
Config.UseTarget = false -- true = ox_target instead of the [E] prompt
Config.Stage.enabled = true -- false = play on the cabinet camera
Config.Gameplay.audioOffsetMs = -90 -- more negative if hits feel late
Config.Debug.enabled = true -- the in-game editors: turn OFF on a live serverThe full list of options is in Usage → Configuration Reference.
Verifying the Installation#
After completing the installation, restart your server and read the console. A healthy start prints lines like these:
[qs-guitarpro:INFO] Server framework loaded: esx
[qs-guitarpro:INFO] Loaded 18 song(s) (scanned once at boot)
[qs-guitarpro:INFO] Loaded 0 guitar machine(s) from SQL.
[qs-guitarpro:INFO] Started - framework: esxThe framework name says what was detected: esx, qb (QBCore and Qbox), or standalone if neither was running when Guitar Pro started. Then join your server and work through the first loop:
Place a machine
Type
/guitarcreator, press +, then Select under Placement. Aim the ghost cabinet, left-click to drop it, give it a name and press Save Machine.Play a song
Walk up to it and press E. Pick a song with the arrow keys, press Enter, choose Single and a venue, and play it with A S D F G.
Check the music
/guitarmusiclists all 18 songs. Any marked not generated meanssql.sqlwas not imported — import it, or press Generate on each. Usage covers everything from here.
Machines, prices, modes, song names, tempos and play windows are all edited in game and apply immediately. The one thing that needs a restart is a new audio file: songs are served by the resource, so a file dropped into
songs/appears after the next restart.



