AgentSkillsCN

qbox-framework

使用Qbox项目(qbx_core)为FiveM开发资源。涵盖基于导出的API、桥接兼容性、Ox集成(ox_lib、ox_inventory),以及最佳实践。当用户从事FiveM开发、Qbox开发,或使用qbx_core,又或是提及“exports.qbx_core”、“QBX.PlayerData”或“ox_lib”时,可使用此功能。

SKILL.md
--- frontmatter
name: qbox-framework
description: Develops resources for FiveM using the Qbox Project (qbx_core). Covers the exports-based API, bridge compatibility, Ox integration (ox_lib, ox_inventory), and best practices. Use when the user works with FiveM, Qbox, qbx_core, or mentions `exports.qbx_core`, `QBX.PlayerData`, or `ox_lib`.

Qbox Framework Development

This skill provides guidelines and patterns for developing resources using the Qbox Project (qbx_core).

1. Philosophy: Exports & Modules

Qbox moves away from the global "Core Object" pattern (though supported via bridge) in favor of direct exports and imported modules.

Modern Native Way (Preferred):

lua
local player = exports.qbx_core:GetPlayer(source)

Bridge Way (Legacy/Porting):

lua
local QBCore = exports['qb-core']:GetCoreObject() -- Works via qbx_core bridge

2. Key Dependencies

Qbox is built "Ox-First". You will frequently use:

  • ox_lib: For UI, callbacks, zones, and utilities.
  • ox_inventory: For items and inventory management.
  • oxmysql: For database interactions.

3. Player Management

  • Get Player: exports.qbx_core:GetPlayer(source)
  • Player Data: Unlike QBCore's lookup table, Qbox uses internal setters/getters exposed via exports.
  • Save/Load: Handled automatically, but custom data can be saved via GetPlayer(source).Functions.SetMetaData.

4. Resource Structure

code
my-resource/
├── fxmanifest.lua     # Depends on qbx_core
├── client/
│   └── main.lua
├── server/
│   └── main.lua
└── locales/           # Ox_lib uses .json locales usually
    └── en.json

5. Documentation