Player Management

If you're using supported framework you dont have to make any changes in this section.

You can override player actions from no-base/configure/server/player.lua

Examples


Config.Player = {
    ---@param source number
    ---@return string | number
    GetIdentifier = function(source)
        return GetPlayerIdentifierByType(source, "steam") or GetPlayerIdentifierByType(source, "license") or GetPlayerIdentifierByType(source, "license2")
    end,

    ---@param identifier string
    ---@return number | nil
    GetSourceByIdentifier = function(identifier)
        local GetPlayerIdentifierByType = GetPlayerIdentifierByType

        for _, playerId in ipairs(GetPlayers()) do
            if GetPlayerIdentifierByType(playerId, "steam") == identifier or
               GetPlayerIdentifierByType(playerId, "license") == identifier or
               GetPlayerIdentifierByType(playerId, "license2") == identifier then
                return playerId
            end
        end

        return nil
    end,

    ---@param source number
    ---@return string
    GetFullname = function(source)
        return GetPlayerName(source)
    end,
    
    ---@return number[]
    GetLoadedPlayers = function()
        local players = {}

        for playerId in pairs(exports.qbx_core:GetQBPlayers()) do
            players[#players + 1] = playerId
        end

        return players
    end

    ---@param cb fun(source: number): void
    ---@return void
    OnPlayerLoaded = function(cb)
        AddEventHandler("QBCore:Server:PlayerLoaded", function(player)
            cb(player.PlayerData.source)
        end)
    end,

    ---@param cb fun(source: number): void
    ---@return void
    OnPlayerUnload = function(cb)
        AddEventHandler("QBCore:Server:OnPlayerUnload", function(source)
            cb(source)
        end)
    end,

    ---@param source number
    ---@param amount number
    ---@param reason string | nil
    ---@return boolean
    AddBank = function(source, amount, reason)
        return true
    end,

    ---@param source number
    ---@param amount number
    ---@param reason string | nil
    ---@return boolean
    RemoveBank = function(source, amount, reason)
        return true
    end,

    ---@param source number
    ---@param amount number
    ---@param reason string | nil
    ---@return boolean
    AddMoney = function(source, amount, reason)
        return true
    end,
    
    ---@param source number
    ---@param amount number
    ---@param reason string | nil
    ---@return boolean
    RemoveMoney = function(source, amount, reason)
        return true
    end
}
GetIdentifier

Should return unique id for the players current character. (E.g. citizenid on QB identifier on ESX)

Parameters

  • source: number

Returns

  • identifier: string | number

GetSourceByIdentifier

Should return the player id if player is online by provided identifier with GetIdentifier method.

Parameters

  • identifier: string

Returns

  • playerServerId: number (source)

GetFullname

Should return fullname of the player character.

Parameters

  • source: number

Returns

  • fullname: string

GetLoadedPlayers

Should return array of loaded player server ids.

Returns

  • playerIds: number[]

OnPlayerLoaded

Should add event handler that will execute the callback whenever the player is loaded.

Parameters

  • cb: func(source: number)

OnPlayerUnloaded

Should add event handler that will execute the callback whenever the player is unloaded.

Parameters

  • cb: func(source: number)

AddBank

Adds money to player bank account.

Parameters

  • source: number

  • amount: number

  • reason?: string

Returns

  • success: boolean

RemoveBank

Removes money from player bank account.

Parameters

  • source: number

  • amount: number

  • reason?: string

Returns

  • success: boolean

AddMoney

Adds money to player inventory.

Parameters

  • source: number

  • amount: number

  • reason?: string

Returns

  • success: boolean

RemoveMoney

Removes money from player inventory.

Parameters

  • source: number

  • amount: number

  • reason?: string

Returns

  • success: boolean

Last updated