mcpField
Q
qbcore-framework

qbcore-framework

github.com/proelias7Development783 installsUpdated 4w ago
Repository

About qbcore-framework

QBCore Framework Development provides guidelines for building resources with the QBCore Framework. It is aimed at developers and covers player data, callbacks, items, database access, and resource structure.

Key features

  1. 01QBCore Core Object retrieval
  2. 02Player data and CitizenID practices
  3. 03Server-client callback patterns
  4. 04Usable item registration
  5. 05Database query patterns

Use cases

  1. 01Structuring a QBCore resource
  2. 02Handling player data with server validation
  3. 03Adding usable items and database operations

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/proelias7/fivem-skill --skill qbcore-framework

After installing, type/qbcore-frameworkin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

best-practices.md
examples.md
reference.md
templates.md

Details

From the project README

QBCore 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 QBCore Framework.

1. Core Object Retrieval

To interact with QBCore, you must retrieve the Core Object. Always cache this in a local variable at the top of your scripts.

Client & Server:

local QBCore = exports['qb-core']:GetCoreObject()

2. Key Concepts

Player Data (Server-side)
  • Identify players by Source temporarily, but use CitizenID for database persistence.
  • QBCore.Functions.GetPlayer(source): Returns the Player object with all data.
  • Player.PlayerData: Contains job, gang, money, items, metadata, etc.
Callbacks (Server -> Client Data)
  • Use QBCore.Functions.CreateCallback (Server) to send data to client.
  • Use QBCore.Functions.TriggerCallback (Client) to request data from server.
  • Rule: Never trust client data blindly in callbacks. Always validate on server.
Items
  • Use QBCore.Functions.CreateUseableItem (Server) to register items.
  • Items are defined in qb-core/shared/items.lua (or qb-inventory).
Database
  • QBCore uses oxmysql by default.
  • Use MySQL.query, MySQL.insert, MySQL.update, MySQL.scalar.

3. Standard Resource Structure

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

4. Best Practices

  1. Cache Core Object: Do not call exports['qb-core']:GetCoreObject() inside loops.
  2. Use Callbacks for Data: Avoid TriggerClientEvent for data retrieval if a callback is cleaner.
  3. Validate Inputs: Client can send any data. Verify job, money, and ownership on server.
  4. Optimized Loops: Use dynamic sleep (Wait) based on distance.
  5. Localization: Use qb-core/shared/locale.lua or standard Lang object if available.

5. Documentation

Comments

Markdown supported