QBCore Architecture - QBCore Guide for FiveM
Introduction
This tutorial turns QBCore Architecture into a clean, developer-friendly guide for QBCore/FiveM. You will follow a step-by-step flow, copy the relevant code patterns, and learn the “why” behind the setup.
Requirements
- QBCore installed and running on a dev server
- Basic Lua knowledge and comfort reading FiveM patterns
- A test workflow for iterating safely (dev server, not production)
- Optional: a code editor with Lua/FiveM helpers (VS Code recommended)
Step-by-Step Guide
Step 1: Learning Objectives
In this step, you will apply the learning objectives concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 2: QBCore Framework Overview
In this step, you will apply the qbcore framework overview concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 3: Core Philosophy
In this step, you will apply the core philosophy concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 4: Framework Structure
In this step, you will apply the framework structure concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 5: Core Components
In this step, you will apply the core components concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 6: 1. QB-Core (qb-core)
In this step, you will apply the 1. qb-core (qb-core) concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 7: 2. Player Data Structure
In this step, you will apply the 2. player data structure concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 8: 3. Event System
In this step, you will apply the 3. event system concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Code Example
qbcore-framework/
├── qb-core/ # Core framework
├── qb-multicharacter/ # Character selection
├── qb-spawn/ # Player spawning
├── qb-inventory/ # Inventory management
├── qb-houses/ # Housing system
├── qb-jobs/ # Job resources
│ ├── qb-ambulancejob/
│ ├── qb-policejob/
│ └── qb-mechanicjob/
└── qb-vehicles/ # Vehicle-related resourcesTips & Best Practices
- Keep authority on the server: validate inputs before money/database operations.
- Start with one resource/module at a time, then refactor after you verify it works.
- Use callbacks for request/response flows and events for push/UX updates.
- When you run loops, avoid freezes: always yield with Wait() (client/server) and cache hot values.