Skip to main content

QBCore Integration

XDEV Appearance includes built-in QBCore compatibility and was designed to work naturally within QBCore-based servers.

The system supports:

  • player data integration
  • job systems
  • gang systems
  • commands
  • permissions
  • notifications
  • appearance synchronization

without requiring heavy rewrites.


Dependency

QBCore is listed as a dependency inside:

dependencies {
'qb-core'
}

This allows the system to automatically access:

  • player data
  • jobs
  • gangs
  • permissions
  • callbacks

Framework Toggle

Framework behavior is controlled through:

Config.Override.ClientSide.Framework = true

When enabled:

QBCore validation systems become active

When disabled:

developers must implement their own validation logic

Player Data Usage

The system uses QBCore player data for:

job checks
gang checks
gender checks
appearance loading

Example:

QBCore.Functions.GetPlayerData()

Gender Handling

Character gender is automatically resolved through QBCore player data.

Example workflow:

if pData.charinfo.gender == 1 then
skin = "mp_f_freemode_01"
end

This is used during:

  • first character creation
  • appearance rebuilding
  • menu initialization

Command Integration

Commands integrate directly with:

QBCore.Commands.Add()

Supported command workflows include:

reload commands
admin menu commands
ped commands

Permission Support

Administrative commands support native QBCore permissions.

Example:

permission = "admin"

This allows direct usage of:

admin
god
custom permission groups

depending on server configuration.


Clothing Room Integration

Clothing rooms support QBCore job and gang systems.

Supported validation:

PlayerData.job.name
PlayerData.gang.name

This allows:

  • police lockers
  • EMS uniforms
  • gang outfit rooms
  • faction systems

Notification Overrides

The system intentionally avoids hardcoded notifications.

Default override:

function Config.Override.ClientSide.Functions.SendNotify(message)
return false
end

Example QBCore integration:

QBCore.Functions.Notify(message, 'error')

Money Handling

Payment systems are handled through overrides.

Default override:

function Config.Override.ServerSide.Functions.RemoveMoney(src, price)
return false
end

Example QBCore integration:

local Player = QBCore.Functions.GetPlayer(src)

if Player.PlayerData.money.cash >= price then
Player.Functions.RemoveMoney('cash', price)
return true
end

return false

First Character Support

The resource includes QBCore-compatible first character support.

Example:

RegisterNetEvent('qb-clothes:client:CreateFirstCharacter')

This automatically:

detects gender
loads freemode ped
opens character menu

Outfit Compatibility

The system supports:

qb-clothing outfit events
QBCore appearance workflows

through compatibility bridges.


Reload Support

Appearance reload systems integrate naturally with QBCore events.

Example:

TriggerClientEvent("xdev_appearance:reload_ped", source)

Used for:

  • desync recovery
  • tattoo rebuilding
  • appearance refreshing

Database Compatibility

The resource supports extending existing QBCore-compatible databases.

Typical supported tables:

playerskins
player_outfits
player_outfit_codes

Universal Integration Philosophy

Although QBCore is supported natively, the system intentionally avoids becoming framework-locked.

Purpose:

easier migration
modularity
custom framework support
standalone compatibility

Recommended QBCore Workflow

Recommended integration workflow:

1. Install dependency
2. Configure overrides
3. Configure notifications
4. Configure money handling
5. Verify jobs/gangs
6. Verify synchronization

Developer Notes

Unlike many QBCore appearance systems, XDEV intentionally separates:

QBCore logic
appearance logic
database logic

This improves:

  • maintainability
  • migration support
  • compatibility
  • customization flexibility