PlayKit.ai

Player Management

Manage player information and nickname settings

Player Management

PlayKit SDK provides player information management, including retrieving player data and setting in-game nicknames.

Get Player Info

const playerInfo = await sdk.getPlayerInfo();
console.log(playerInfo);
// { userId: '...', balance: 100, nickname: 'PlayerName' }

PlayerInfo Structure

FieldTypeDescription
userIdstringUnique player identifier
balancenumberCurrent balance
nicknamestring | nullPlayer nickname
dailyRefreshobjectDaily refresh info

Nickname Management

Each game can set independent nicknames for players. Nicknames are stored per-game.

Get Nickname

// From cache (requires prior getPlayerInfo call)
const nickname = sdk.getNickname();

// Or from playerInfo
const playerInfo = await sdk.getPlayerInfo();
console.log(playerInfo.nickname);

Set Nickname

import { PlayKitSDK } from 'playkit-sdk';

const result = await sdk.setNickname('MyNickname');
console.log(result);
// { success: true, nickname: 'MyNickname', gameId: '...' }

Nickname Rules

RuleDescription
Length1-16 characters
AllowedLetters, numbers, Chinese characters, underscores, spaces
ForbiddenSpecial symbols (e.g., @#$%^&*)

Listen for Nickname Changes

sdk.on('nickname_changed', (nickname) => {
  console.log('Nickname updated:', nickname);
});

Error Handling

import { PlayKitError } from 'playkit-sdk';

try {
  await sdk.setNickname('NewName');
} catch (error) {
  if (error instanceof PlayKitError) {
    switch (error.code) {
      case 'INVALID_NICKNAME':
        console.error('Invalid nickname format');
        break;
      case 'INVALID_TOKEN_TYPE':
        console.error('Player token required, developer token cannot set nicknames');
        break;
      case 'MODERATION_FLAGGED':
        console.error('Nickname contains inappropriate content');
        break;
    }
  }
}

Error Codes

CodeDescription
INVALID_NICKNAMENickname format violates rules
INVALID_TOKEN_TYPEUsing developer token (requires player token)
GLOBAL_TOKEN_NOT_ALLOWEDUsing global token (requires game-specific token)
MODERATION_FLAGGEDContent moderation failed
NOT_AUTHENTICATEDNot authenticated

Type Definitions

interface SetNicknameResponse {
  success: boolean;
  nickname: string;
  gameId: string;
}

interface PlayerInfo {
  userId: string;
  balance: number;
  nickname?: string | null;
  dailyRefresh?: DailyRefreshResult;
}

Notes

Developer tokens cannot set nicknames. Use player tokens in production.

  • Nicknames are isolated per-game; the same player can have different nicknames across games
  • Setting nicknames requires a game-specific player token (obtained via device authorization flow)
  • Nicknames undergo content moderation; inappropriate content will be rejected