QBCore Scripting Guide - QBCore Guide for FiveM
Introduction
This tutorial turns QBCore Scripting Guide 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: Table of Contents
In this step, you will apply the table of contents concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 2: Getting Started
In this step, you will apply the getting started concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 3: Prerequisites
In this step, you will apply the prerequisites concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 4: Development Environment Setup
In this step, you will apply the development environment setup concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 5: Basic Script Structure
In this step, you will apply the basic script structure concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 6: Standard QBCore Resource Structure
In this step, you will apply the standard qbcore resource structure concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 7: Essential Files
In this step, you will apply the essential files concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Step 8: QBCore API Integration
In this step, you will apply the qbcore api integration concept as a practical change: define the pieces, wire them together, then verify the behavior in your dev server.
Code Example
resource-name/
├── fxmanifest.lua # Resource manifest
├── config.lua # Configuration file
├── server/
│ ├── main.lua # Server-side logic
│ └── callbacks.lua # Server callbacks
├── client/
│ ├── main.lua # Client-side logic
│ └── events.lua # Client events
├── shared/
│ └── config.lua # Shared configuration
└── html/ # NUI files (if needed)
├── index.html
├── style.css
└── script.jsTips & 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.