⬇ Download PikStats Plugin (.zip)

UE5.1+  ·  Blueprint only  ·  Windows / Mac / Linux

Installation

  1. Download the plugin .zip above.
  2. Extract into your project's Plugins/ folder — create it if it doesn't exist.
  3. Open Unreal Editor. Go to Edit → Plugins → Project → PikStats and confirm it's enabled.
  4. Restart the editor if requested.
No C++ or Visual Studio required. The plugin is pre-compiled and works with Blueprint-only projects out of the box.

Configure SDK Key

The SDK key authenticates your game. You can set it in two ways:

Option A — Project Settings (recommended)

  1. Open Edit → Project Settings → PikStats.
  2. Paste your SDK key into the SDK Key field.
  3. Save. The plugin picks it up automatically at runtime.

Option B — Blueprint at runtime

Call PikStats → Set SDK Key before any other PikStats node. Useful if you load the key from a config file or remote endpoint.

Find your SDK key on the game's page in your Games dashboard.

Nodes Overview

All PikStats nodes are async — they fire an output exec pin when the server responds. Search PikStats in the Blueprint context menu to find them all.

NodePIKE costWhen to call
Identify PlayerFreeOn game session start
Set Variable1 PIKEWhen a tracked value changes
Get PlayerFreeOn login / match start to load saved stats
Leaderboard1 PIKEWhen showing rankings in-game
Fetch VariablesFreeOn startup to resolve tokens by name
Set Game Variable1 PIKEWhen a game-wide value changes (e.g. on launch, event change)
Get Game VariablesFreeOn startup to load game-wide config or state
World RankFreeWhen showing a player their global position for a variable

Identify Player

Registers a player on first call. Safe to call every session — if the player already exists it's a no-op. Free.

Identify Player
Exec
Username
On Success
Created
On Failure
PinDirectionTypeDescription
UsernameInStringUnique player identifier (display name or UID)
On SuccessOutExecFires when server responds ok
CreatedOutBoolTrue if this is the player's first registration
On FailureOutExecFires on network error or invalid key

Set Variable

Writes a value for one variable for one player. Costs 1 PIKE. If the player doesn't exist, they are created automatically.

Set Variable
Exec
Username
Variable Token
Value
On Success
PIKE Remaining
On Failure
PinDirectionTypeDescription
UsernameInStringPlayer to update
Variable TokenInString32-char token from the Variables page
ValueInStringNew value — auto-cast to the variable's type
On SuccessOutExecFires on successful write
PIKE RemainingOutIntYour balance after this call
On FailureOutExecFires on network error or invalid key

Get Player

Fetches all live variable values for a player. Free. Use this on session start to restore saved stats.

Get Player
Exec
Username
On Success
Values (Map)
On Failure
PinDirectionTypeDescription
UsernameInStringPlayer whose values to load
On SuccessOutExecFires when data arrives
Values (Map)OutMap<String,String>Variable name → value pairs
On FailureOutExecFires on network error or invalid key

Use Find on the output map to retrieve individual values by variable name.

Leaderboard

Fetches the top N players for a variable. Optionally appends the calling player's rank if they fall outside the top N. Costs 1 PIKE.

🏆 Leaderboard
Exec
Variable Token
Limit
Player (optional)
On Success
Entries (Array)
Player Entry
PIKE Remaining
On Failure
PinDirectionTypeDescription
Variable TokenInString32-char token for the ranked variable
LimitInIntMax entries to return (default 10, max 100)
Player (optional)InStringIf set and outside top N, adds their rank to Player Entry
Entries (Array)OutArray of Leaderboard EntryRank, Username, Value for each top player
Player EntryOutLeaderboard EntryRank + value for the specified player if outside top N
PIKE RemainingOutIntYour balance after this call

Fetch Variables

Returns all live variables and their tokens. Useful for resolving tokens by name at runtime instead of hardcoding them. Free.

Fetch Variables
Exec
On Success
Variables (Array)
On Failure
PinDirectionTypeDescription
Variables (Array)OutArray of Variable InfoName, Type, Default Value, Public Token for each live variable

Cache the result at startup and look up tokens by name to avoid hardcoding them throughout your Blueprint graph.

Set Game Variable

Writes a value to a Game System Variable — a single game-wide value not tied to any player (e.g. launch counter, active event, difficulty multiplier). Costs 1 PIKE.

Set Game Variable
Exec
Variable Token
Value
On Success
PIKE Remaining
On Failure
PinDirectionTypeDescription
Variable TokenInString16-char token of the Game System Variable
ValueInStringNew value — auto-cast to the variable's type
On SuccessOutExecFires on successful write
PIKE RemainingOutIntYour balance after this call
On FailureOutExecFires on network error, invalid key, or wrong scope
Only works on variables created with scope Game System Variable. Use Set Variable for player variables.

Get Game Variables

Fetches all live Game System Variables and their current values. If a variable has never been set, its default value is returned. Free.

Get Game Variables
Exec
On Success
Values (Map)
On Failure
PinDirectionTypeDescription
Values (Map)OutMap<String,String>Variable name → current value for all live game system variables

Use Find on the output map to retrieve individual values by name. Call this at game startup to load remote config, active events, or other game-wide state.

World Rank

Returns a player's global rank for a variable as a single integer — e.g. rank 423 out of all players. Free. No SDK key required — safe to call from any context.

World Rank
Exec
Game Token
Variable Token
Username
On Success
Rank
On Failure
PinDirectionTypeDescription
Game TokenInStringYour game's public token (visible in the dashboard URL)
Variable TokenInString16-char token of the variable to rank by
UsernameInStringThe player whose rank to look up
On SuccessOutExecFires when rank is returned
RankOutInt1-based global position — rank 1 is the top player
On FailureOutExecFires if the player or variable is not found

Higher values rank better (rank 1 = highest value). Only works on Player Variables. Game System Variables cannot be ranked.

Pin Reference

ColorTypeNotes
White diamondExecControl flow — connect these to drive execution order
PinkStringUTF-8 text, including numeric values sent as strings
BlueIntegerWhole numbers (PIKE balance, rank)
RedBooleanTrue / false
GreenStruct / MapLeaderboard Entry, Variable Info struct, or Map<String,String>

Struct fields

Leaderboard Entry — each item in the Entries array:

FieldTypeDescription
RankIntegerPosition on the leaderboard (1 = top)
UsernameStringPlayer's username
ValueStringThe variable's value for this player

Variable Info — each item in the Fetch Variables array:

FieldTypeDescription
NameStringVariable name as set in the dashboard
TypeStringbool · int · float · text · date
Default ValueStringThe variable's default
Public TokenString16-char token used in Set Variable, Set Game Variable, and Leaderboard calls
ScopeStringplayer — use Set Variable · system — use Set Game Variable

Tips

  • Call Identify Player once per session — on Begin Play or after login, not on every variable write.
  • Fetch Variables at startup — cache the token map in a Game Instance variable so you never hardcode tokens in individual nodes.
  • Debounce rapid writes — if score updates every frame, use a timer (e.g. every 5 s) to batch-send the last value instead of calling Set Variable 60× per second.
  • Check PIKE Remaining — if it drops to zero, Set Variable and Leaderboard calls are still accepted but logged as alerts. Top up from Buy PIKE.
  • On Failure is a network error — not an API error. The API never signals errors to the client. Check dashboard alerts for API-level issues.
  • Variable tokens are per-variable — if you have score, level, and skin, each needs its own token. Find them on the Variables page.
  • Use Fetch Variables to route scope automatically — check the Scope field on startup and call Set Game Variable or Set Variable accordingly, rather than hardcoding which is which.
  • Call Get Game Variables once at startup — cache the result in a Game Instance variable for remote config like difficulty, active events, or feature flags.
  • World Rank needs no SDK key — you can call it from a web overlay, a friend's client, or any context outside your game without exposing your SDK key.