24/09/2026

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), health 0, 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.TriggerServerCallback requests 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.Items stays 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.

  1. Back up your current es_extended (move it out of resources/)
  2. Put the new folder in its place
  3. 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

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