esx-framework

SKILL.md

ESX Framework Development

This skill provides guidelines and patterns for developing resources using the ESX Framework (Legacy).

1. Core Object Retrieval

ESX Legacy (New Way):

local ESX = exports["es_extended"]:getSharedObject()

Legacy / Backwards Compatible:

local ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)

2. Key Concepts

Player Data (Server-side)

  • xPlayer: The main object for player interaction server-side.
  • ESX.GetPlayerFromId(source): Retrieves the xPlayer object.
  • xPlayer Methods: xPlayer.addMoney, xPlayer.setJob, xPlayer.addInventoryItem.

Callbacks (Server -> Client Data)

  • ESX.RegisterServerCallback (Server): Respond to client requests.
  • ESX.TriggerServerCallback (Client): Request data from server.

Items & Database

  • Items are defined in the database (items table) or ox_inventory.
  • Database typically uses oxmysql.

3. Standard Resource Structure

my-resource/
├── fxmanifest.lua
├── config.lua
├── client/
│   └── main.lua
├── server/
│   └── main.lua
└── locales/
    └── en.lua

4. Best Practices

  1. Use New Exports: Prefer exports["es_extended"]:getSharedObject() over the event trigger.
  2. Validate xPlayer: Always check if xPlayer then before using it.
  3. Secure Events: Use ESX.SecureNetEvent (if available) or manual checks.
  4. OneSync: Develop with OneSync Infinity in mind (server-side entity creation).

5. Documentation

Weekly Installs
30
GitHub Stars
1
First Seen
Feb 7, 2026
Installed on
opencode27
github-copilot27
codex27
gemini-cli26
amp23
kimi-cli23