About esx-framework
A development skill for ESX Framework (Legacy) resources, aimed at developers building FiveM server features. It covers core APIs, resource layout, and security practices.
Key features
- 01ESX object retrieval patterns
- 02Player data and xPlayer methods
- 03Server-client callbacks
- 04Resource structure guidance
- 05Event validation and OneSync practices
Use cases
- 01Starting a new ESX resource
- 02Handling player data and inventory
- 03Exchanging data through callbacks
- 04Reviewing server event security
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ proelias7/ fivem-skill --skill esx-frameworkAfter installing, type/esx-frameworkin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
best-practices.mdexamples.mdreference.mdtemplates.mdDetails
From the project READMEESX Framework Development
Language rule: Internal reasoning is in compact English. All messages and output displayed to the user must be in the user's language.
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 (
itemstable) orox_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
- Use New Exports: Prefer
exports["es_extended"]:getSharedObject()over the event trigger. - Validate xPlayer: Always check
if xPlayer thenbefore using it. - Secure Events: Use
ESX.SecureNetEvent(if available) or manual checks. - OneSync: Develop with OneSync Infinity in mind (server-side entity creation).
5. Documentation
- Official Docs: https://documentation.esx-framework.org/
- Github: https://github.com/esx-framework/esx_core
Comments
Markdown supported