Getting started
A roadmap for becoming a FiveM developer
A staged roadmap for learning FiveM development: Lua basics, your first resource, client vs server and events, a framework, the database with oxmysql, ox_lib and NUI, performance and security, tooling and Git, and finally selling, freelancing and a portfolio — with the guide for each step.
Overview
FiveM development rewards a particular order of learning: language basics, then how resources and events fit together, then a framework and a database, then UI, and only then the hard parts — performance, security and the business side. Skipping steps is why so many scripts work on a test server and break on a live one.
The stages
| Stage | Learn | Guides |
|---|---|---|
| 1. Basics | Lua, resources, first script | Lua basics, what is a resource, first script |
| 2. Core concepts | Client vs server, events, natives, threads | Client vs server, events, natives, threads |
| 3. Frameworks and data | A framework, ox_lib, oxmysql | ESX vs QBCore vs Qbox, ox_lib, oxmysql |
| 4. Interfaces | NUI, callbacks, focus | NUI development, NUI patterns |
| 5. Quality | Performance and security | Lua performance, secure events |
| 6. Tooling | Editor, Git, local server | VS Code, Git, local server |
| 7. Business | Docs, selling, freelancing | Tebex, portfolio |
Projects for each stage
- A command that spawns a car and prints its plate.
- A job that pays players for delivering items, with server-side validation.
- A garage that stores vehicles in the database.
- A NUI menu for the garage.
- Profile and optimise it to 0.00 ms idle; review it with the checklist.
- Document it and publish it — free first, paid later.
Habits that separate professionals
- Never trust the client.
- Measure performance before and after changes.
- Write configs and docs for someone who is not you.
- Keep code in Git and test on a local server first.
- Read other people’s code regularly — see learning resources.
Frequently asked questions
How long does it take to learn FiveM development?
Basic scripts take weeks; writing secure, fast, sellable resources usually takes months of steady practice.
Which language should I learn for FiveM?
Lua — most frameworks and examples use it. JavaScript/TypeScript and C# are alternatives.
Which framework should I learn first?
The one your target servers use; Qbox and ESX with the ox stack are common modern choices.
When can I start selling scripts?
After your scripts are secure, documented and idle near 0.00 ms — start with free releases to build a reputation.
Need this built, not just explained?
Ten years of FiveM work, from Lua to NUI
Custom resources, React NUI, ESX / QBCore / Qbox integration, OneSync performance audits and security reviews — plus the websites and SEO around your server brand.
Related guides
- Getting startedWhere to learn FiveM developmentStart with the official documentation at docs.fivem.net (scripting manual, server manual) and the natives reference at docs.fivem.net/natives. Learn Lua itself from the Lua 5.4 manual and Programming in Lua. Use your framework’s own docs — docs.esx-framework.org, docs.qbcore.org, docs.qbox.re, overextended.dev for ox_lib/ox_inventory/oxmysql — and ask on forum.cfx.re. Read well-maintained open-source resources to see real patterns.
- Getting startedWrite your first FiveM script, step by stepCreate a folder resources/my_first, add an fxmanifest.lua with fx_version 'cerulean', game 'gta5', a client_script and a server_script, then write a client command that loads a model with RequestModel, waits for HasModelLoaded, spawns it with CreateVehicle and seats the player with SetPedIntoVehicle. Add ensure my_first to server.cfg, restart, and type /car adder in game.
- EngineeringA checklist for reviewing FiveM resourcesCheck security (every net event and callback validates input and permissions, SQL uses placeholders, no secrets in client files), performance (idle loops sleep, no per-frame natives when not needed, resmon near 0.00 ms idle), correctness (cleanup on playerDropped and onResourceStop, no handlers registered repeatedly), compatibility (framework/inventory bridges, dependencies declared), and usability (config, locales, docs, clear errors).
- BusinessA portfolio that wins FiveM workShow five or six of your best finished pieces with short in-game videos, link clean open-source samples on GitHub, and write brief case studies (problem, solution, result, resmon numbers). State your stack (Lua, ox_lib, frameworks, NUI), services and availability clearly, add testimonials from real clients, and keep contact one click away.