> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nonefivem.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Player Management

<Info>If you're using [supported framework](/no-base/supported-resources#frameworks) you dont have to make any changes in this section.</Info>

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

## Examples

***

```lua theme={null}
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
}
```

<Accordion title="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
</Accordion>

<Accordion title="GetSourceByIdentifier">
  Should return the player id if player is online by provided identifier with GetIdentifier method.

  ### Parameters

  * identifier: string

  ### Returns

  * playerServerId: number (source)
</Accordion>

<Accordion title="GetFullname">
  Should return fullname of the player character.

  ### Parameters

  * source: number

  ### Returns

  * fullname: string
</Accordion>

<Accordion title="GetLoadedPlayers">
  Should return array of loaded player server ids.

  ### Returns

  * playerIds: number\[]
</Accordion>

<Accordion title="OnPlayerLoaded">
  Should add event handler that will execute the callback whenever the player is loaded.

  ### Parameters

  * cb: func(source: number)
</Accordion>

<Accordion title="OnPlayerUnloaded">
  Should add event handler that will execute the callback whenever the player is unloaded.

  ### Parameters

  * cb: func(source: number)
</Accordion>

<Accordion title="AddBank">
  Adds money to player bank account.

  ### Parameters

  * source: number
  * amount: number
  * reason?: string

  ### Returns

  * success: boolean
</Accordion>

<Accordion title="RemoveBank">
  Removes money from player bank account.

  ### Parameters

  * source: number
  * amount: number
  * reason?: string

  ### Returns

  * success: boolean
</Accordion>

<Accordion title="AddMoney">
  Adds money to player inventory.

  ### Parameters

  * source: number
  * amount: number
  * reason?: string

  ### Returns

  * success: boolean
</Accordion>

<Accordion title="RemoveMoney">
  Removes money from player inventory.

  ### Parameters

  * source: number
  * amount: number
  * reason?: string

  ### Returns

  * success: boolean
</Accordion>
