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
| Field | Type | Description |
|---|---|---|
userId | string | Unique player identifier |
balance | number | Current balance |
nickname | string | null | Player nickname |
dailyRefresh | object | Daily 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
| Rule | Description |
|---|---|
| Length | 1-16 characters |
| Allowed | Letters, numbers, Chinese characters, underscores, spaces |
| Forbidden | Special 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
| Code | Description |
|---|---|
INVALID_NICKNAME | Nickname format violates rules |
INVALID_TOKEN_TYPE | Using developer token (requires player token) |
GLOBAL_TOKEN_NOT_ALLOWED | Using global token (requires game-specific token) |
MODERATION_FLAGGED | Content moderation failed |
NOT_AUTHENTICATED | Not 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