Entendendo o Player ID no FiveM

Entendendo o Player ID no FiveM

Quando trabalhamos com scripts no FiveM, é importante entender a diferença entre os IDs dos jogadores no cliente e no servidor. Essa distinção é fundamental para saber como identificar corretamente os jogadores em diferentes contextos.

🔹 ID do Jogador no Cliente

No cliente, o jogador só conhece a si mesmo e a jogadores próximos. Ou seja, ele não tem acesso direto aos dados dos outros jogadores, como seus nomes, itens ou status. Cada jogador tem um Client ID, que o identifica para os players próximos e permite encontrar a entidade(ped) desse player ou outras informações referente ao jogo (parte gráfica).

Para pegar o seu próprio ID no cliente, usamos o nativo:

let clientId = PlayerId()

Esse PlayerId() retorna o ID do jogador atual (no cliente), que é usado em funções como GetPlayerPed -- EX: GetPlayerPed(PlayerId()) obtendo assim o número da entidade (PED). Obs:GetPlayerPed(PlayerId()) , GetPlayerPed(-1) e PlayerPedId() são chamadas que trazem o mesmo resultado

🔹 ID do Jogador no Servidor

O servidor, diferente do cliente, tem controle total e conhece todos os jogadores conectados. No servidor, os jogadores são identificados por seus Server IDs .

Para obter o ID de um jogador no servidor, por exemplo dentro de um evento de rede, usamos:

RegisterCommand('test', async(source)=>{
      let src = source;
      console.log("ID do jogador que disparou o evento:", src)
    })

🔹 Diferença entre Client ID e Server ID

🔹 Nativos importantes

1. PlayerId()

Retorna o ID do jogador atual no cliente. Só funciona no client-side.

let meuId = PlayerId()
console.log(meuId)

2. GetPlayerServerId(player)

Recebe um Client ID (PlayerId()) e retorna o Server ID (source) correspondente. Também só funciona no client-side.

let serverId = GetPlayerServerId(PlayerId())

3. GetPlayerFromServerId(serverId)

Converte um Server ID (source) em Client ID. Só funciona no client-side.

let clientId = GetPlayerFromServerId(17)

📌 Dica Importante

No servidor, sempre que precisar saber quem enviou um evento, use a variável source. No cliente, para se referir ao próprio jogador, use PlayerId().

✅ Resumo dos Nativos