rcore.cz
  • rcore.cz
  • Store
  • Discord
  • Web administration
  • Our store
  • YouTube
  • 🐌CFX Auth system
    • CFX Auth system
    • Transfer script to another account
    • Error: You lack the required entitlement
    • Error: syntax error near '<\1>'
  • Server
    • Updating server
    • onesync
  • Administration
    • How to change IP
    • Forgot your password?
  • FAQ
    • General issues
    • Cannot verify license
    • Cannot hear any music
    • ECONNRESET: Unable to execute a query
  • paid resources
    • 🏑rcore_airhockey
      • How To Play
      • Spawning a Hockey Table
    • 💪rcore_armwrestling
      • How to place arm table
    • 🎴rcore_banners
      • How to Begin
      • How to Update
      • Common issues & solutions
      • Installation
      • Inventory Items
      • Configs
        • General
        • Billboards
        • Business
        • Permissions
        • Job
        • Config
      • Guides
        • How to change UI logo?
        • How to create new server banner?
        • How to create business?
        • How to buy billboard?
        • How to place banner?
        • Cannot see banners?
        • Expired images
      • API
    • 🏀rcore_basketball
      • Configure new hoop
    • 🏓rcore_beerpong
      • How to use
    • 📹rcore_bodycam
      • Integration
      • Anticheat
      • Recordings don't save
    • 🎳rcore_bowling
      • Configure new alley
    • 🎥rcore_cam
      • Integration
      • Anticheat
    • ⛺rcore_camping
      • Installation
      • Config
      • Consumable Beer
      • OX Inventory
      • Frameworks
      • API
    • 🎪rcore_carnival
      • Create new minigame
    • 🃏rcore_casino
      • Installing Maps
        • UncleJust Casino
        • DlcIplLoader
        • Gabz Casino
        • NoPixel Casino
        • K4MB1 Casino
        • rcore_casino_interior
        • Underground Casino Paleto
        • K4MB1 Enterable Diamond Casino
        • Patoche Casino
        • Clawles: Casino Los Santos
        • Molo Casino
        • Jurassic Jackpot Casino
      • Standalone Version
      • Custom Framework
      • Installing on QBCore
      • Installing on ESX
      • Installing Inventory Items
      • The Cashier
      • Society
      • Lucky Wheel & Podium Vehicle
      • Table Games
      • Slot Machines
      • Casino Bar
      • Inside Track
      • Translations
      • Discord Hook
      • MYSQL Info
      • CasinoControl (Exports)
      • Casino Job & Office
      • Changing Odds
    • 👕rcore_clothes
      • Dark theme
      • Adding a new clothes shop
      • Components
      • Restriction for certian job
      • Custom clothes price
      • Clothes blacklist / Whitelist
      • esx_accessories
      • qb_apartments
      • cui_character
      • API: Open outfits
      • API: Open clothes shop
    • 🎽rcore_clothing 🆕
      • How to begin
      • Installation
      • Migration
      • Configs
        • Main config
        • Price config
        • Shop config
        • Peds config
        • Undress clothes
      • FAQ
      • Admin mode
        • Modes
        • Image debugging
        • Stock management
      • Adding replace/addon clothes
      • Categorize clothing automatically
      • API
      • Troubleshooting
      • Integration
        • Multichar integration guide
        • esx_multicharacter
        • esx_multicharacter OLD
        • qb-multicharacter
        • crm_multichar
        • codem_multichar
        • okok_multichar
        • qbox_multichar
        • ESX vms_multichar
        • QB vms_multichar
        • qs-multicharacter
        • um_multichar
        • wais_multicharacter v2
        • zr_multichar
        • zsx_multicharacter
    • 💃rcore_dance
      • Installation
      • Config
      • FAQ
      • Troubleshooting
      • API
    • 📱rcore_dispatch
      • Config
      • Add alerts
      • Add jobs
      • Locales
      • Logs
      • Integrations
      • Framework
      • Voice and radio
    • 🔒rcore_doorlock
      • Installation
      • Configuration
      • Migration
      • Business
        • Configuration
        • Locksmith Example
      • Inventory Items
      • Keychain
      • API
    • 🍺rcore_drunk
      • How to place drink on table
      • Create new item drink
      • ox inventory
      • API
      • How to use
    • 🥚rcore_easter
      • Installation
      • Configuration
      • API
    • ⛽rcore_fuel
      • Installation
        • ESX
        • QBCore
      • Inventory
        • ESX
        • QBCore
        • ox_inventory
      • Config
        • New fuel station
        • Change fuel type for vehicle
        • Change fuel capacity for vehicle
        • Setting fuel station to be ownable
        • Wrong fuel type
        • Change gas price
      • Integrations
        • API
        • Vehicle keys integrations
        • Hud/Garage integration
      • Server
        • Commands
    • 🔫rcore_gangs
      • API
        • Client
        • Server
      • Integration
        • Framework
        • Inventory
        • Dispatch
      • Localization
      • Configuration
        • Custom gang zone
    • 🚙rcore_garage
      • qb-phone missing garages name
      • missing screenshots
    • 📙rcore_guidebook
      • Installation
      • Config
      • Data permissions
      • API
      • Themes
      • 📙V1 Docs
        • Installation
        • API
        • Themes
    • 🔫rcore_gunshop
      • QBCore Installation
      • ESX Installation
      • How to change pricing
      • How to enable sales of weapons
      • Enabling MK2 weapons on QBCore
      • Adding the ammunation job for QBCore
      • Adding the ammunation job for ESX
    • 🎯rcore_gunrange
      • Installation
      • API
      • Troubleshooting
      • Frequently Asked Questions
      • Gun Range Editor
    • 🏨rcore_hotel
      • How to add another hotel example
      • esx_inventoryhud
      • Quasar inventory
      • OX inventory
      • MF inventory
      • Custom wardrobe
    • 🧑rcore_identity
      • How to change date format
      • esx_kasharacter
    • 🟠rcore_job_blips
      • Installation
      • Configuration
      • Blip Setup
      • Group Setup
      • API
    • ⛳rcore_minigolf
      • Builder
      • Company
      • Config
    • 🚛rcore_missionpack_legal
      • Migrate from old version
    • 🚗rcore_pdm
      • Missing images
      • Blips on minimap
      • Vehicles in stock
      • Missing vehicle names
      • Edit the speed of the vehicle in UI
      • Boss menu + locations
      • Displayed vehicle in the shop
      • How to add a vehicle with a new category
      • QBCore
        • Import missing vehicles from qbcore to rcore_pdm
        • Job data for QBCore framework
        • Import vehicles from database to qbcore
    • 🏓rcore_pingpong
      • How To Play
      • Spawning a Pong Table
      • Match Settings
    • 🤽‍♀️rcore_pool
      • Anticheat
      • How to place pool table
    • 👮rcore_police
      • Installation
      • How to Update
      • Features
      • Inventory
      • Deployer
      • Configs
        • Main Config
      • API
        • Client
        • Server
    • ⛓️rcore_prison
      • Migration from V1
      • How to Begin
      • How to Update
      • Installation
      • Inventory items
      • Configs
        • Main Config
      • Guides
        • Deployer
        • Changing minigame for Cigarette packaging
        • Changing Prison jobs reward
        • Configuring Permissions
        • How to translate in-game panel
        • How to define own stats for Prison GYM?
        • How to define/change default Prisoner outfits?
        • How to define own Prison map?
      • Features
        • Prison Break
        • Solitary
        • Cigar packaging
        • Canteen
        • Dealer
        • Dashboard
        • Chair system
        • Prison Prolog
      • Integrations
        • Inventory
        • Inventory items
      • API
        • Client
        • Server
      • ⛓️V1 Docs
        • Config
        • Inventory
        • API
          • Client
          • Server
        • Locales system
        • Interiors presets
        • Camera prolog
        • Outfits
    • 📻rcore_radiocar
      • API
        • Radio item
        • Marker for buying radio
    • 📋rcore_report
      • Installation
      • API
      • Ace Permissions
      • Config
      • UI Config
      • Features
      • Console Logs
      • Custom Data
      • Responsivity
    • 🏪rcore_shops
      • Add new shop
      • How to add weapon
      • Hide blip on minimap / map
      • Restrict shop to certain job
    • 🔠rcore_shortcuts
      • API
      • Commands and Hotkeys
      • Permissions
      • Notifications
      • Limits
      • Styles
    • ✨rcore_spray
      • ESX instalation
      • QBCore instalation
      • OX Inventory instalation
      • How to add a new image
      • How to add a new font
      • Gang integration
      • Anticheat
    • 📈rcore_stats
      • Installation
      • Permissions
      • Configs
        • Main config
        • Performance
        • Units
        • Other
      • Translation
      • Changing Default Values
      • API
        • Integration
        • Delete
        • Other
    • 👹rcore_tattoos
      • Installation
      • Migrations
      • Add-on tattoos
      • Config
      • Custom Framework
      • Design
      • Tattoo config options
      • Tattoo permissions
      • Troubleshooting
      • API
      • Integrations
        • qb-gangs
      • Business update
        • Config
        • Simple Business
        • Business with jobs
        • Default settings
    • 📺rcore_television
      • How to add a new television
    • 🔧rcore_tuning
      • Editing your config
      • Configuring your framework
      • Job integration
      • Item integration
      • Editing tuning prices
    • 📋rcore_whiteboard
      • Whiteboard type & data
      • Position editor
      • API
      • FAQ
    • 🎁rcore_xmas
      • Installation
      • Configuration
      • Inventory Items
      • Snowball Damage
      • API
    • 📻xradio
      • API
      • Custom menu
      • Ox inventory
  • free resources
    • rcore_arcade
      • How to add msdos games
Powered by GitBook
On this page
  • Manual framework set up
  • Modify ESX or QBCore methods
  • Client Side
  • Server Side
  • Custom Framework

Was this helpful?

  1. paid resources
  2. rcore_dispatch

Framework

The resource works out of the box with ESX and QBCore, but you can include your own framework. Also, the resource detects automatically if you are using ESX or QBCore.

Manual framework set up

Navigate to configs/sh_config.lua.

There you will find the following lua code:

Framework = {
    ESX = 'esx',
    QBCore = 'qbcore',
    Custom = 'custom',
}
CONFIG.Framework = Framework.ESX -- ESX or QBCore or Custom

Here modify the code in the following ways:

CONFIG.Framework = Framework.ESX
-- or
CONFIG.Framework = Framework.QBCore
-- or
CONFIG.Framework = Framework.Custom

Modify ESX or QBCore methods

Client Side

You can find the client framework stuff inside client/api/framework/bridge.lua. In the client you will find a function like this for each framework with every method or event required inside:

local function loadESX()
    ESX = exports['es_extended']:getSharedObject()
    FRAMEWORK.GetPlayerName = function()
        return ESX.GetPlayerData().fistName
    end
    FRAMEWORK.GetPlayerLastname = function()
        return ESX.GetPlayerData().lastName
    end
    FRAMEWORK.GetPlayerJob = function()
        if ESX.GetPlayerData().job == nil then
            return nil
        end
        return ESX.GetPlayerData().job.name
    end
    FRAMEWORK.GetPlayerJobGrade = function()
        return ESX.GetPlayerData().job.grade
    end
    RegisterNetEvent('esx:playerLogout') -- When a player logs out (multicharacter), reset their data
    AddEventHandler('esx:playerLogout', function()
        TriggerServerEvent('rcore_dispatch:server:removePlayer')
    end)
end

Here you can modify each method to your needs.

Server Side

You can find the server framework stuff inside server/api/framework.lua. In the server you will find a function like this for each framework with every method or event required inside:

local function loadESX()
    ESX = exports['es_extended']:getSharedObject()
    if not ESX then return dbg.error('[rcore_dispatch] [error] Are you sure that you are using ESX?') end
    GetPlayerFromId = function(source)
        dbg.info('GetPlayerFromId: ' .. source)
        local xPlayer = {}
        local xplayer = ESX.GetPlayerFromId(source)
        xPlayer.addMoney = function(money)
            return xplayer.addMoney(money)
        end
        xPlayer.removeMoney = function(money)
            return xplayer.removeMoney(money)
        end
        xPlayer.getMoney = function(money)
            if not xplayer then
                return nil
            end
            return xplayer.getMoney()
        end
        xPlayer.getRank = function()
            if not xplayer then
                return nil
            end
            local jobData = xplayer.getJob()
            return jobData.grade, jobData.grade_label
        end
        xPlayer.getJob = function()
            if not xplayer then
                return nil
            end
            local jobData = xplayer.getJob()
            return jobData.name, jobData.label
        end
        xPlayer.getSurname = function()
            if not xplayer then
                return nil
            end
            local name = xplayer.getName()
            local surname = string.match(name, '%S+%s(%S+)')
            return surname
        end
        return xPlayer
    end
    --- Event that loads the player into the dispatch
    RegisterNetEvent('esx:playerLoaded')
    AddEventHandler('esx:playerLoaded', function(playerId, xPlayer)
        local job = xPlayer.getJob().name
        if not job then return dbg.critical('No job detected in player with id ' .. xPlayer.source) end
        if CONFIG.JOBS[job] then
            LoadPlayer(xPlayer.source, job)
        end
    end)
    RegisterNetEvent('esx:setJob') -- The stored data does not sync with the framework unless we tell it to
    AddEventHandler('esx:setJob', function(playerId, job)
        if job then
            if CONFIG.JOBS[job.name] then
                LoadPlayer(playerId, job.name)
            else
                UnloadPlayer(playerId, job.name)
            end
        end
    end)
end

Here you can modify each method to your needs.

Custom Framework

To use a custom framework, follow these steps:

  1. Create your own framework methods or events.

  2. Inside the client-side code (client/api/framework/bridge.lua), create a new function for your custom framework and define the required methods and events. It is required to follow the structure of the functions for the traditional frameworks, an example for client would be:

local function loadESX()
    RCORE = exports['rcore']:getSharedObject()
    FRAMEWORK.GetPlayerName = function()
        return RCORE.GetPlayerData().fistName
    end
    FRAMEWORK.GetPlayerLastname = function()
        return RCORE.GetPlayerData().lastName
    end
    FRAMEWORK.GetPlayerJob = function()
        if RCORE.GetPlayerData().job == nil then
            return nil
        end
        return RCORE.GetPlayerData().job.name
    end
    FRAMEWORK.GetPlayerJobGrade = function()
        return RCORE.GetPlayerData().job.grade
    end
    RegisterNetEvent('rcore:playerLogout') -- When a player logs out (multicharacter), reset their data
    AddEventHandler('rcor:playerLogout', function()
        TriggerServerEvent('rcore_dispatch:server:removePlayer')
    end)
end
  1. Inside the server-side code (server/api/framework.lua), create a new function for your custom framework and define the required methods and events. We recommend copying the function for a traditional framework and replace the events and function for your own custom framework methods.

  2. Modify the framework setup in configs/sh_config.lua:

CONFIG.Framework = Framework.Custom

This ensures that the custom framework is used.

PreviousIntegrationsNextVoice and radio

Last updated 1 year ago

Was this helpful?

📱