ox_core for FiveM
Overextended's own framework: small, strict and built around the rest of the ox stack rather than around a legacy player object.
ox_core is the framework for people who think ESX and QBCore carry too much. It handles characters, groups, vehicles and accounts and leaves everything else to purpose-built resources. It is the smallest of the four mainstream cores and the most opinionated.
At a glance
| Maintainer | Overextended |
| Latest release | v1.5.14 · 2026-05-29 |
| Last code change | 2026-08-17 |
| Licence | LGPL-3.0 |
| Written in | TypeScript |
| GitHub stars | 167 |
| Status | Active |
Figures read from the repository on 2026-09-22.
Why servers run it
- A deliberately small surface: characters, groups, vehicles, accounts. No bundled jobs, no bundled housing.
- Written against ox_lib and oxmysql from the start, so there is no compatibility layer to reason about.
- Group-based permissions instead of a single job string, which models police ranks and gang hierarchies more honestly.
- Lua and TypeScript type definitions throughout.
Installing ox_core
1. Install oxmysql and ox_lib
Both are hard dependencies.
2. Download a release
ox_core has a compiled web component; clone the repository and the UI will be missing.
3. Import the SQL
ox_core uses its own schema. It is not compatible with an ESX or QBCore database.
4. Expect to write more yourself
ox_core does not ship jobs or activities. That is the point, and it is worth knowing before you commit.
Working examples
Reading a player
local player = Ox.GetPlayer(source)
if not player then return end
print(player.charId, player.stateId)
print(player.getGroup('police')) -- rank number, or nilWhat goes wrong
There is no free script ecosystem for it. Almost everything you find will target ESX or QBCore first.
Group permissions are not job strings. Scripts that check job.name == 'police' need adapting.
ox_core — questions people ask
Is ox_core ready for a live server?
Runs alongside
The shared library half the modern FiveM ecosystem depends on: menus, notifications, progress bars, zones, callbacks and a cache.
The slot-based inventory most new FiveM servers start with, with first-class support for addon weapons, durability, metadata and shops.
The MySQL wrapper the modern FiveM stack runs on: promise-based, prepared-statement aware and a drop-in replacement for mysql-async.
A maintained fork of QBCore rebuilt on ox_lib and ox_inventory, with typed exports, semantic versioning and a much cleaner core.