proelias7

esx-framework

Develops resources for FiveM using the ESX Framework (Legacy). Covers resource creation, Core Object (ESX), xPlayer functions, Events, Callbacks, Items, Jobs, Database (oxmysql), and best practices. Use when the user works with FiveM, ESX, ESX Legacy, or mentions `ESX.GetCoreObject`, `xPlayer`, `ESX.GetPlayerFromId`, or `esx:`.

proelias7 4 2 Updated 3mo ago

Resources

4
GitHub

Install

npx skillscat add proelias7/fivem-skill/esx-framework

Install via the SkillsCat registry.

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