I get asked this a lot: "QB-Core or ESX?" And honestly, the answer isn't as simple as picking a winner. But I can tell you what I use and why.
I started with QB-Core. I tried everything else—ESX, various forks, custom setups—but I kept coming back to QB-Core because it was the most understandable system around. And when you're building scripts for clients and your own servers, understandable beats clever every time.
Why QB-Core Won Me Over
It Just Works
ESX didn't feel plug-and-play enough for me. I wasn't looking to build abstraction layers on top of an existing framework—I wanted to build features. When QB-Core worked out of the box and let me layer scripts on top without issues, I was sold.
Simple and Well Documented
QB-Core runs the way you'd expect a systems-level framework to run. The documentation is solid, the code is readable, and when you need to dig into the source to understand something, you actually can.
Exports Everywhere
Export integration on almost every level. Want to hook into the inventory? Export. Player data? Export. This makes building modular scripts so much easier than fighting with event-based spaghetti.
Freedom to Script
QB-Core doesn't add too many restrictions to how you can script your server. You're trading some security for polish, and if you already know what you're doing, that's not always a bad thing.
The ESX Problem (For Me)
ESX felt like it had restrictions baked in at every point. Want to add an item? Database. Want to add images? Database. Want to give a player a vehicle? You guessed it—database.
Yawn. Boring.
I'm not saying databases are bad. I'm saying when every single action requires a database round-trip and schema changes, your development velocity tanks. QB-Core's approach of keeping more in shared configs just feels faster to work with.
The Elephant in the Room: Security
Let's be honest: QB-Core clearly lacks the security offered by other frameworks.
You only have to look at BigCheef and others on YouTube duplicating cash like it's nobody's business—directly within qb-inventory using lag switches. It's embarrassing how easy some of these exploits are.
But here's the thing: you have to anticipate this kind of behaviour and fix the exploits yourself. And it's not difficult at all.
When completing an action with a high-value item, don't allow any movement of the character until the transaction is confirmed server-side.
Seriously, if you ask any AI—even dumbass ChatGPT—it can build this in for you. It's about 3 lines of code total. The exploits exist because server owners copy-paste scripts without understanding them, not because the framework is fundamentally broken.
So What Should You Use?
It's difficult to say "use QB-Core" or "use QBox" or even "use ESX" without knowing what you want from your server. Here's my honest breakdown:
QB-Core
If you want your admins and devs to have easy lives, QB-Core is probably the best choice. Huge script ecosystem, readable code, and a community that's been building on it for years.
QBox
If you want modern and don't mind some growing pains, QBox is the future. But not many have caught up yet, and not all QB-Core scripts work on QBox without moderate changes. You'll spend time adapting things.
ESX
If you want a freemode server that allows RP with menus, ESX is for you. It's mature, it's stable, and if you're building something closer to traditional GTA Online with RP elements, it makes sense.
The Real Advice
Whatever framework you pick:
- Learn Lua 5.4 logic. Actually learn it. Understand metatables, coroutines, and how FiveM's runtime works.
- Don't get AI to write all of your code. Some is fine—I use it for boilerplate and debugging. But if you don't understand what's being generated, you're going to have a bad time when something breaks.
- Have fun. That's the point, right? We're making video game servers. If you're not enjoying it, you're doing it wrong.
Need Help?
I build QB-Core scripts for a living. Check out my FiveM Scripts & Development services or hit me up on Discord if you need something custom or want to pick my brain about framework choices.
If you're just getting started with server economy systems, check out my free AJD Dumpster Diving script—it's a good example of how I structure QB-Core resources. For a complete economy loop, the AJD Economy Pack bundles scavenging, crafting, and street selling into one system.