Back to Guides
Guide6 min read

Installing a phone script on QBCore and QBox

What "QBCore support" has to mean in practice: the six resources a phone talks to, how QBox is detected, the items to add, and the start order that keeps it from failing on boot.

By GKSHOP Team/Last updated

Installing a phone script on QBCore and QBox cover image

Almost every FiveM phone script lists QBCore on its store page. That line usually means the phone can read a player's character from qb-core. It says nothing about the rest of the server, and the rest of the server is where installs go wrong: a phone that can see the character but not the inventory will not open, and one that cannot see the garage script shows an empty Garage app.

What a QBCore phone actually talks to

A full phone reads from six systems besides the framework. Before you buy, check that each one you run is supported, not only qb-core.

SystemQBCore defaultAlso supported
Inventoryqb-inventoryox_inventory, qs-inventory, tgiann-inventory, codem-inventory, core_inventory
Bankingqb-bankingRenewed-Banking, okokBanking, fd_banking, ps-banking
Garageqb-garagesjg-advancedgarages, cd_garage, loaf_garage, qs-advancedgarages
Housingqb-housesps-housing, qs-housing, loaf_housing, bcs_housing, vms_housing, rtx_housing
Licencesframeworkbcs_licensemanager, cs_license, qs-licenses
Voicepma-voicemumble-voip, saltychat, yaca-voice
Resources GKSPHONE detects on a QBCore or QBox server

Each of these is a setting in gksphone/config/config.lua — Config.Inventory, Config.BankScript, Config.GarageScript, Config.HouseScript, Config.LicenseScript and Config.VoiceScript — and every one defaults to "auto", so the phone picks up whichever resource is running. Inventory, banking, garage and licences also take a "custom" option, for wiring in a resource that is not on the list.

QBox is detected, not configured

Config.Framework also defaults to "auto". At start the phone checks for es_extended, then qbx_core, then qb-core, and falls back to standalone. QBox runs through the same adapter as QBCore (server/framework/qb.lua), with its own branches where qbx_core behaves differently. Set Config.Framework by hand only if you renamed your framework resource or run two side by side.

Installing on QBCore, step by step

  • Extract the download into a [phone] folder in resources. It holds gksphone, gks-tablet, gksphone_prop and gks-sound.
  • Add the phone and iphone items to qb-core/shared/items.lua, both unique and useable. The phone item opens the Android theme and iphone opens iOS; rename them in Config.ItemName if yours differ.
  • Leave Config.DatabaseAutoSetup = true. The phone builds its own tables on first start.
  • Import gks-tablet/install.sql by hand. The tablet does not set up its own database.
  • Paste your media upload tokens into gksphone/config/serverconfig.lua. Left as API_TOKEN, the camera takes no photos.
  • Start the phone last in server.cfg, after oxmysql, qb-core, your voice resource and everything else it integrates with.

The QBCore code is yours to read

The framework, inventory, banking and garage adapters live in client/ and server/, and those folders — along with config/ — are outside the escrow. If your QBCore fork renamed an export or changed how money is stored, you can see exactly how the phone calls it and change it, instead of waiting for a patch.

Frequently asked questions

Does GKSPHONE work on QBox?

Yes. QBox is detected automatically through qbx_core and uses the same adapter as QBCore. No setting needs to change.

Can I use ox_inventory on QBCore?

Yes. Config.Inventory is detected separately from the framework, so qb-core with ox_inventory, qs-inventory or any other supported inventory works.

What does the phone depend on?

oxmysql, and nothing else. Every other integration is optional and detected when the resource is running.

Is the tablet included on QBCore too?

Yes. The tablet ships in the same download and the same license, and supports QBCore and QBox. Its inventory support is narrower than the phone's: ox_inventory or none.