QBox Framework Guide: Von QBCore migrieren und Performance steigern (2026)
·von (Founder & Lead Editor)··9 Min. Lesezeit·
QBox hat sich 2026 fest als natuerlicher Nachfolger von QBCore im FiveM-Roleplay-Oekosystem etabliert.
Share
QBox Framework Guide: Von QBCore migrieren und Performance steigern (2026)
QBox hat sich 2026 fest als natuerlicher Nachfolger von QBCore im FiveM-Roleplay-Oekosystem etabliert. Wenn du einen QBCore-Server betreibst und dich fragst, ob du den Wechsel machen solltest, oder wenn du frisch startest und zwischen Frameworks waehlst, deckt dieser Guide alles ab: echte Performance-Zahlen, einen Schritt-fuer-Schritt-Migrationsprozess, Code-Konvertierungsbeispiele und die Stolperfallen, die die meisten Serverbetreiber waehrend des Uebergangs erwischen.
Framework-Recherche in einen startklaren Script-Stack verwandeln
Nutze diesen Guide, um die Framework-Entscheidung einzugrenzen, und wechsle dann in die zentralen Angebotsseiten für verifizierte Scripts, kuratierte Bundles und einen schnelleren Server-Launch.
Framework hub
Move into the QBCore landing page to compare verified scripts, framework fit, and install-ready products built for modern FiveM servers.
Open QBCore hub
Framework hub
Use the ESX landing page to compare framework-specific resources, launch guidance, and premium products that fit ESX-first servers.
Open ESX hub
Premium catalog
Move from research into the main shop to compare real products, framework labels, screenshots, and production-ready quality signals.
Open premium shop
Premium-Scripts, die dir gefallen könnten
Kostenlose Scripts die dich interessieren könnten
Ähnliche Artikel
Die Wahl eines Frameworks ist die folgenreichste Entscheidung beim Aufbau eines FiveM-Servers. Sie bestimmt, welche Scripts du nutzen kannst, wie deine Entwickler Code schreiben,…
FiveM Frameworks bilden das Rückgrat von Roleplay-Servern. Sie sind nicht nur Code-Bibliotheken — sie sind komplette Systeme, die Spieleridentität, Jobs, Inventar, Berechtigungen,…
Lerne mit unserer Schritt-für-Schritt-Anleitung, wie du migrierst. Enthält stabile Identifikatoren, oxmysql-Abfragen und ox_lib. Vollständiges Tutorial für 2026.
Was ist QBox und warum gibt es das
QBox (manchmal als Qbox oder qbx geschrieben) ist ein FiveM-Roleplay-Framework, das von ehemaligen QBCore-Mitwirkenden gebaut wurde, die die Performance-, Sicherheits- und Codequalitaetsprobleme angehen wollten, die sich im Originalprojekt angesammelt hatten. Anstatt QBCore endlos zu patchen, forkten sie es und bauten die Architektur um das Overextended (ox)-Oekosystem herum neu auf.
Das Ergebnis ist ein modulares Framework, bei dem qbx_core als Fundament dient, aber die schwere Arbeit an zweckgebundene Bibliotheken delegiert wird: ox_lib fuer Utilities und UI, ox_inventory fuer Item-Management, oxmysql fuer Datenbankoperationen und ox_target fuer Interaktions-Targeting. Das ist kein monolithisches Framework. Jede Komponente kann unabhaengig aktualisiert werden, ohne den Rest deines Servers zu brechen.
QBox liefert mehrere Features direkt in qbx_core mit, die bei QBCore separate Ressourcen erforderten: Multicharakter-Auswahl, ein Server-Queue-System, Multijob- und Multigang-Unterstuetzung und Discord Rich Presence. All diese sind standardmaessig aktiviert und ueber einfache Lua-Config-Dateien konfigurierbar.
Performance-Benchmarks: QBox vs QBCore vs ESX
Performance-Behauptungen ohne Zahlen sind wertlos, also schauen wir uns tatsaechliche Benchmark-Daten aus der FiveM-Community von 2025-2026 an. Diese Zahlen stammen aus kontrollierten Tests mit identischen Serverkonfigurationen und 64 Spielern.
CPU-Verbrauchsvergleich
Framework
Core-Resource-CPU
Gesamter Framework-Overhead
Relative Performance
ESX Legacy
0,01-0,02ms
~0,30ms
Baseline (schnellstes)
QBox
0,00-0,01ms
~0,42ms
~25% mehr als ESX
QBCore
0,02-0,05ms
~0,73ms
~43% mehr als ESX
Speicherverbrauch
Framework
Core-Speicher
Mit Inventar
Gesamter Stack
ESX Legacy
~18 MiB
~25 MiB (qs-inventory)
~45 MiB
QBox
~22 MiB
~30 MiB (ox_inventory)
~55 MiB
QBCore
~28 MiB
~40 MiB (qb-inventory)
~75 MiB
Was diese Zahlen in der Praxis bedeuten
ESX Legacy bleibt der Roh-Performance-Champion. Das hat sich 2026 nicht geaendert. Allerdings schliesst QBox die Luecke im Vergleich zu QBCore deutlich und verbraucht je nach Serverlast und Skriptanzahl etwa 25-40% weniger CPU. Fuer die meisten Server ist der Unterschied zwischen ESX und QBox fuer Spieler nicht wahrnehmbar. Der Unterschied zwischen QBCore und QBox hingegen uebersetzt sich direkt in bessere Tick-Raten und fluessigeres Gameplay, besonders auf Servern mit 80+ Ressourcen.
QBox erreicht diese Verbesserungen durch mehrere architektonische Entscheidungen: Lazy Loading von Modulen, Eliminierung redundanter Polling-Schleifen, die in QBCore existierten, native Nutzung der optimierten Utility-Funktionen von ox_lib und ein saubereres Event-System, das unnoetige Netzwerktraffic reduziert.
Pre-Migrations-Checkliste
Bevor du eine einzige Datei auf deinem Produktionsserver anfasst, arbeite diese Checkliste durch. Das Ueberspringen eines dieser Schritte ist der Hauptgrund, warum Migrationen scheitern.
Vollstaendiges Datenbank-Backup -- dumpe deine gesamte MySQL/MariaDB-Datenbank. Nicht nur die Players-Tabelle, alles. Verwende mysqldump --all-databases > backup_$(date +%Y%m%d).sql
Vollstaendiges Serverdatei-Backup -- kopiere deinen gesamten Resources-Ordner, server.cfg und alle benutzerdefinierten Konfigurationsdateien an einen externen Speicherort
Entwicklungsserver einrichten -- migriere nie zuerst auf der Produktion. Klone deinen Server in eine Testumgebung
Aktuelle Ressourcenliste dokumentieren -- fuehre refresh in der txAdmin-Konsole aus und exportiere deine Ressourcenliste. Notiere, welche Skripte QBCore-nativ und welche von Drittanbietern sind
Skript-Kompatibilitaet pruefen -- gleiche deine Skripte mit der Kompatibilitaetstabelle unten ab
Auf die neueste QBCore-Version updaten -- wenn du eine alte QBCore-Version verwendest, update auf die neueste Version vor der Migration. Das eliminiert zusammengesetzte Probleme
Datenbank-Collation pruefen -- die player.citizenid-Spalte muss die utf8mb4_unicode_ci-Collation verwenden. Pruefe und aendere sie bei Bedarf
Dein Entwicklungsteam informieren -- Mitarbeiter, die mit QBCore-Events und Exports vertraut sind, brauchen Zeit, um Qbox- und ox_lib-Idiome zu lernen
Schritt-fuer-Schritt-Migration von QBCore zu QBox
Schritt 1: QBox ueber das txAdmin-Rezept installieren
Der sauberste Migrationspfad verwendet das offizielle txAdmin-Rezept. Dieses laedt alle erforderlichen Dateien automatisch herunter und konfiguriert sie: server.cfg, ox.cfg, permissions.cfg und voice.cfg.
Wenn du das Rezept nicht verwenden kannst (zum Beispiel bei einem benutzerdefinierten Hosting-Setup), lade qbx_core manuell vom QBox-GitHub-Repository herunter und folge den Konfigurationsdateien im txAdminRecipe-Repository.
Schritt 2: Den Overextended-Stack installieren
Installiere die ox-Abhaengigkeiten in genau dieser Reihenfolge und validiere, dass jede ohne Fehler startet, bevor du zur naechsten uebergehst:
oxmysql -- Datenbanktreiber (ersetzt mysql-async oder ghmattimysql)
Deine server.cfg-Ressource-Start-Reihenfolge sollte diese Abhaengigkeitskette widerspiegeln:
ensure oxmysql
ensure ox_lib
ensure ox_inventory
ensure qbx_core
ensure ox_target
# ... deine anderen Ressourcen darunter
Schritt 3: ox_inventory fuer QBox konfigurieren
Fuege diesen Convar in deine server.cfg vor den Resource-Ensures hinzu:
setr inventory:framework "qbx"
Fuehre dann das ox_inventory-Datenbank-Konvertierungsskript aus. Dieses migriert deine bestehenden Item-Daten vom qb-inventory-Format in das ox_inventory-Format. Sichere deine Datenbank vor diesem Schritt. Die Konvertierung ist in der ox_inventory-Dokumentation dokumentiert.
Schritt 4: Job- und Gang-Grade-Formate konvertieren
Das ist die haeufigste Fehlerquelle bei der Migration. In QBCore werden Job-Grades als Strings gespeichert. In QBox sind es Numbers.
Die Aenderung ist subtil, aber kritisch: ['0'] wird zu [0], ['1'] wird zu [1], und so weiter. Wende das sowohl auf qbx_core/shared/jobs.lua als auch auf qbx_core/shared/gangs.lua an.
Schritt 5: QBox-SQL-Migration ausfuehren
Fuehre die qbx_core.sql-Datei aus, die mit qbx_core geliefert wird. Diese erstellt die zusaetzlichen Datenbanktabellen, die QBox benoetigt, einschliesslich Tabellen fuer die Multijob- und Multigang-Systeme. Wenn deine player.citizenid-Spalte nicht die utf8mb4_unicode_ci-Collation hat, behebe das zuerst, sonst schlaegt das SQL fehl.
Schritt 6: Built-in Features konfigurieren
QBox buendelt Features, die bei QBCore separate Ressourcen waren. Entscheide, welche du willst:
-- qbx_core/config/client.lua
Config = {
useExternalCharacters = false, -- auf true setzen, wenn du eine separate Multichar-Ressource verwendest
-- Discord Rich Presence Einstellungen am Ende der Datei
}
Obwohl QBox eine circa 99%-ige Rueckwaertskompatibilitaet mit QBCore-Skripten aufrechterhaelt, verbessert die Konvertierung deiner Ressourcen auf native QBox-APIs die Performance und macht deinen Code zukunftssicher. Das Core-Objekt (QBCore = exports['qb-core']:GetCoreObject()) existiert in QBox nicht mehr. Stattdessen verwendest du Exports und importierte Module.
fxmanifest.lua aktualisieren
Fuege zuerst die QBox-Modul-Imports zum Manifest deines Skripts hinzu:
Hier ist ein praktisches Vorher-Nachher fuer ein typisches Client-Skript:
Vorher (QBCore):
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('myresource:client:doSomething', function()
local PlayerData = QBCore.Functions.GetPlayerData()
local job = PlayerData.job.name
local plate = QBCore.Functions.GetPlate(GetVehiclePedIsIn(PlayerPedId(), false))
if job == 'police' then
exports['qb-core']:DrawText('You are on duty', 'left')
Wait(3000)
exports['qb-core']:HideText()
end
end)
Nachher (QBox):
RegisterNetEvent('myresource:client:doSomething', function()
local job = QBX.PlayerData.job.name
local plate = qbx.getVehiclePlate(GetVehiclePedIsIn(PlayerPedId(), false))
if job == 'police' then
lib.showTextUI('You are on duty', { position = 'left-center' })
Wait(3000)
lib.hideTextUI()
end
end)
Beachte: keine Core-Objekt-Initialisierung, kein Exports-Aufruf um den Core zu holen. QBX.PlayerData ist direkt ueber das importierte playerdata-Modul verfuegbar, und qbx.getVehiclePlate() kommt vom lib-Modul.
Callback-Migration
Hier brechen die meisten Skript-Konvertierungen. QBCore-Callbacks feuern nicht auf QBox, wenn du das alte Registrierungsmuster verwendest:
Vorher (QBCore):
-- Server
QBCore.Functions.CreateCallback('myresource:server:getData', function(source, cb)
local result = MySQL.query.await('SELECT * FROM my_table')
cb(result)
end)
-- Client
QBCore.Functions.TriggerCallback('myresource:server:getData', function(result)
print(json.encode(result))
end)
Nachher (QBox / ox_lib):
-- Server
lib.callback.register('myresource:server:getData', function(source)
return MySQL.query.await('SELECT * FROM my_table')
end)
-- Client
local result = lib.callback.await('myresource:server:getData')
print(json.encode(result))
Das ox_lib-Callback-System ist sauberer und eliminiert das Callback-Pyramiden-Muster. Es verwendet await statt verschachtelter Callbacks, was deinen Code deutlich lesbarer macht.
Vollstaendige Ersetzungsreferenz
QBCore
QBox-Aequivalent
QBCore.Functions.GetPlayerData()
QBX.PlayerData
QBCore.Functions.GetPlate(vehicle)
qbx.getVehiclePlate(vehicle)
QBCore.Shared.Jobs
exports.qbx_core:GetJobs()
QBCore.Shared.Gangs
exports.qbx_core:GetGangs()
QBCore.Shared.Vehicles
exports.qbx_core:GetVehiclesByName()
QBCore.Shared.Weapons
exports.qbx_core:GetWeapons()
QBCore.Shared.Items
exports.ox_inventory:Items()
exports['qb-core']:DrawText()
lib.showTextUI()
exports['qb-core']:HideText()
lib.hideTextUI()
QBCore.Functions.CreateCallback
lib.callback.register
QBCore.Functions.TriggerCallback
lib.callback.await
Skript-Kompatibilitaetstabelle
Hier ist der aktuelle Kompatibilitaetsstatus beliebter Skripte mit QBox, Stand Maerz 2026:
Skript-Kategorie
Beliebte Skripte
QBox-Status
Hinweise
Inventar
ox_inventory
Nativ
Standard mit QBox
Telefon
qb-phone / lb-phone
Kompatibel
Funktioniert via Bridge-Layer
Housing
qb-houses / bcs-housing
Kompatibel
Kleine Config-Aenderungen
Fahrzeuge
qb-vehicleshop
Kompatibel
Funktioniert ohne Aenderungen
Garagen
qb-garages / jg-advancedgarages
Kompatibel
Funktioniert ohne Aenderungen
Banking
qb-banking / Renewed-Banking
Update noetig
Muss an ox_inventory Money angepasst werden
Polizei
qb-policejob
Kompatibel
QBox hat nativen Ersatz (qbx_policejob)
Rettungsdienst
qb-ambulancejob
Kompatibel
QBox hat nativen Ersatz (qbx_ambulancejob)
Mechaniker
qb-mechanicjob
Kompatibel
Funktioniert via Bridge-Layer
Crafting
qb-crafting
Update noetig
Muss ox_inventory Crafting API verwenden
Target
ox_target
Nativ
Ersetzt qb-target
UI/TextUI
ox_lib
Nativ
Ersetzt qb-core DrawText
Multicharacter
In qbx_core integriert
Nativ
Keine separate Ressource noetig
Loading Screen
Custom
Kompatibel
Framework-unabhaengig
HUD
qb-hud / ps-hud
Kompatibel
Funktioniert ohne Aenderungen
Doorlock
ox_doorlock
Nativ
Ersetzt qb-doorlock
Haeufige Migrationsfallen und wie man sie vermeidet
1. Job-Grades als Strings statt Numbers
Das ist der haeufigste Migrationsfehler. Wenn deine Skripte oder Datenbank Job-Grades immer noch als Strings referenzieren ('0', '1'), werden Dinge leise kaputtgehen. Grade-basierte Berechtigungspruefungen schlagen fehl, Boss-Menues laden nicht, und Job-Aktionen werden ohne klare Fehlermeldungen abgelehnt.
Loesung: Durchsuche deinen gesamten Resources-Ordner nach Grade-Vergleichen und stelle sicher, dass sie Numbers verwenden. Pruefe auch deine Datenbankeintraege.
2. Callbacks die nie zurueckkehren
Wenn du zu QBox migrierst, aber Skripte behaeltst, die QBCore.Functions.CreateCallback verwenden, haengen diese Callbacks auf der Client-Seite unbegrenzt. Der QBCore-Bridge repliziert das alte Callback-System nicht vollstaendig.
Loesung: Konvertiere alle Callbacks zu lib.callback.register und lib.callback.await von ox_lib.
3. Inventar-Item-Name-Konflikte
ox_inventory verwendet ein anderes Item-Registrierungssystem als qb-inventory. Items, die in qb-core/shared/items.lua definiert sind, muessen stattdessen in der ox_inventory-Items-Konfiguration registriert werden.
Loesung: Fuehre das ox_inventory-Konvertierungstool aus und verifiziere, dass alle Item-Namen ueber deine Skripte hinweg uebereinstimmen.
4. Datenbanktreiber-Konflikte
mysql-async neben oxmysql auszufuehren verursacht Connection-Pool-Konflikte und Race Conditions.
Loesung: Entferne mysql-async vollstaendig. Ersetze alle mysql-async-Aufrufe durch oxmysqls Await-API-Muster.
5. Ressourcen in falscher Reihenfolge starten
ox_lib muss vor qbx_core starten. ox_inventory muss vor den meisten Gameplay-Ressourcen starten. Das falsch zu machen verursacht kaskadenartige Nil-Reference-Errors.
Loesung: Folge genau der Ressource-Start-Reihenfolge aus Schritt 2 des Migrationsabschnitts oben.
Solltest du 2026 migrieren?
Die ehrliche Antwort haengt von deiner Situation ab:
Jetzt migrieren, wenn:
Du einen neuen Server von Grund auf startest
Du ohnehin eine grosse Server-Ueberarbeitung planst
Du Performance-Probleme auf QBCore mit 60+ Spielern erlebst
Dein Entwicklungsteam modernere Tools und sauberere APIs moechte
Warten oder ueberspringen, wenn:
Dein Server stabil ist, die Spieler zufrieden sind und du keine Performance-Beschwerden hast
Du stark auf Skripte angewiesen bist, die tief in QBCore-Internals eingreifen
Dein Team nicht die Kapazitaet fuer Tests und Validierung hat
Fuer neue Server 2026 ist QBox die klare Empfehlung. Es bietet bessere Performance als QBCore, eine moderne Entwicklererfahrung durch das ox-Oekosystem und aktive Wartung durch ein dediziertes Team. Der Rueckwaertskompatibilitaets-Layer bedeutet, dass du nicht vom riesigen QBCore-Skript-Oekosystem ausgesperrt bist, und der Migrationspfad ist gut dokumentiert.
Wenn du den Framework-Vergleich vertiefen moechtest, schau dir unseren QBox vs QBCore-Vergleich an oder tauche in den kompletten QBox- und Ox-Stack-Guide ein, um das volle Bild zu bekommen, wie das Overextended-Oekosystem zusammenpasst.
Fuer Server, die sich mit kompatiblen Skripten eindecken moechten, durchstoebere unsere FiveM-Skript-Sammlung -- wir testen alle Skripte auf QBox-Kompatibilitaet und kennzeichnen sie entsprechend.
Ist QBox rueckwaertskompatibel mit QBCore-Skripten?
Ja, QBox bietet Rueckwaertskompatibilitaet mit den meisten QBCore-Ressourcen durch seinen Kompatibilitaets-Layer. Allerdings muessen einige Skripte, die tief in QBCore-Internals eingreifen, moeglicherweise geringfuegig angepasst werden.
Wie viel schneller ist QBox als QBCore?
Basierend auf Community-Benchmarks verbraucht QBox mit ox_lib typischerweise 25-40% weniger CPU als ein vergleichbares QBCore-Setup. ESX Legacy liegt bei der Roh-Performance immer noch leicht vorne, aber QBox bietet eine bessere Entwicklererfahrung und modernere Tools.
Sollte ich meinen bestehenden QBCore-Server zu QBox migrieren?
Wenn dein Server stabil ist und die Spieler zufrieden sind, besteht keine dringende Notwendigkeit. Aber fuer neue Server oder geplante Ueberarbeitungen ist QBox 2026 die empfohlene Wahl aufgrund besserer Performance, ox_inventory als Standard und aktiver Entwicklung.
Wie lange dauert eine QBox-Migration?
Fuer einen typischen QBCore-Server mit 30-50 Skripten solltest du 2-4 Tage fuer die Kern-Migration und Tests einplanen. Die meisten QBCore-Skripte funktionieren ohne Aenderungen, aber Inventar- und Banking-Skripte muessen moeglicherweise fuer ox_inventory-Kompatibilitaet aktualisiert werden.