What es_extended is, and why an ESX server should switch to ESX Legacy Core — X3D Build (free)
es_extended is the ESX Legacy core every script on the server depends on. This post covers what upstream esx_core 1.13.4 gets wrong (lost saves on crash, spawning at map origin, leaking callbacks, pre-restart dupes), what the X3D Build fixes, and how to drop it over the old one without touching a single script.
es_extended is the ESX Legacy core: the one resource every script on an ESX server depends on for money, items, jobs, weapons, player saves and the client-server callbacks. When the core has a problem, everything on the server has it too.
ESX Legacy Core — X3D Build is es_extended forked from esx_core 1.13.4 with the things that hurt real servers fixed, run on a server with real players before release, and free under GPL v3 like upstream.
Download: ESX Legacy Core — X3D Build · Guide: installation docs
Related scripts
What upstream es_extended gets wrong
- Players spawn at map origin, or dead — on a disconnect or crash the ped is culled before the save runs; position reads
(0,0,0), health0, and that is written over the real row - One crash costs the whole session — upstream saves on disconnect only, so a crash rolls every online player back to login
- Dupes before a restart — the last 10 minutes before a txAdmin restart is when people move money and items and wait for the server to die before it saves
- Leaking callbacks —
ESX.TriggerServerCallbackrequests nobody answers sit in memory until the next restart - An empty item catalog for a whole session — if MySQL is still coming up when the item table is first read,
ESX.Itemsstays empty - Slower with every player — accounts, items and weapons are scanned linearly on every call, and each save re-encodes four JSON blobs per player
What the X3D Build changes
| Area | esx_core 1.13.4 | X3D Build |
|---|---|---|
| Save on disconnect/crash | Can write (0,0,0) and health 0 |
Validates first, keeps the last good values |
| Save while playing | On disconnect only | Config.SaveInterval flushes everyone every 10 minutes |
| Spawn | Immediate, can fall through the map | Waits for collision, with a timeout |
| Item table at boot | Read once; empty stays empty | Retries until it loads |
| Account/item/weapon lookup | Linear scan | O(1) |
| Player save | Re-encodes all four JSON blobs | Re-encodes only what changed |
| Unanswered callbacks | Kept forever | Timeout, cleanup on disconnect, periodic sweep |
| Before a restart | Nothing | Economy lock for the last 10 minutes |
| Audit log | None | Money/item/weapon/join/leave/chat/death to a table plus Discord webhooks |
| Ammo | Trusts the client | Clamps client-supplied values |
| Banned words | None | Filter with strike counting and kick |
Drop-in, no script changes
The resource is still called es_extended, so every @es_extended/imports.lua and dependencies { 'es_extended' } in your existing scripts keeps working.
- Back up your current
es_extended(move it out ofresources/) - Put the new folder in its place
- Start the server; with an existing ESX database there is no SQL to run
Table names live in Config.Tables (defaults are the stock ESX names). nc_inventory and ox_inventory are detected automatically, so money and item icons in notifications point at whichever you run.
Every config value is covered in the installation docs.
Who should switch, who should wait
Switch if you run ESX Legacy 1.13.x with real players and have seen lost saves on crash, players at map origin, or pre-restart dupes.
Wait if you carry many of your own edits to es_extended; merge them into the X3D Build first (full source, every change listed in README.md). It is a fork of 1.13.4 and does not automatically track new ESX releases.
Pairs well with
- X3D Anti-Cheat uses the core's
esx:serverEntityCreatedevent to whitelist server-created entities - X3D Environment, free map cleanup and FPS
- Every other free X3D script is in the free FiveM scripts post
FAQ
Do I need to run SQL? — Not with an existing ESX database. Fresh installs run es_extended.sql.
Does it work with ox_inventory? — Yes; the core detects it and points the icons at it.
Is it really free? Any conditions? — Free under GNU GPL v3, same as upstream: full source, modify and redistribute under the same licence. Original copyright belongs to Jérémie N'gadi and the ESX Legacy project.
Does it follow upstream ESX releases? — Not automatically; the base is 1.13.4. X3D Build updates are announced on the product page and the store Discord.
Get it at ESX Legacy Core — X3D Build: log in with Discord and claim it for free.
Related scripts
