System components
PlayWave consists of 4 components that communicate with each other.PlayWave Launcher
Windows app installed at PC cafes. Authenticates the PC cafe IP via HMAC and launches games with an OTT token.
PlayWave Server
Backend API that manages sessions, billing, and settlements. Communicates with the PC cafe auth server for IP verification and charge tracking.
Game Server
The Roblox game server with PlayWave integrated. Verifies OTT, sends heartbeats, and reports session end to the PlayWave Server via API Key auth.
PC Cafe Auth Server
External infrastructure partner providing PC cafe IP verification and play-time billing APIs.
How they connect
Launcher → PlayWave Server
The launcher sends PC info with HMAC signature to the PlayWave Server for authentication and OTT issuance.
Launcher → Roblox
The launcher starts the game with the OTT embedded in LaunchData, passing the session to the Roblox client.
Game Server → PlayWave Server
The Game Server calls PlayWave Server API with API Key auth to verify OTT, send heartbeats, and end sessions.
Full flow
5 phases in detail
Phase 1 — Session start
When a PC cafe user launches the PlayWave launcher:- The launcher collects the PC’s internal IP and hardware info
- Sends a session start request to the PlayWave Server with HMAC signature
- The PlayWave Server extracts the external IP from the HTTP request and verifies if it’s a PC cafe
- On success, returns a session token and a list of supported games
Phase 2 — OTT issue & game launch
When the user selects a game:- The launcher requests an OTT (One-Time Token) from the PlayWave Server
- The PlayWave Server generates a UUID-format OTT (1 min TTL, single-use)
- The launcher launches the Roblox game with the OTT in LaunchData
Phase 3 — OTT verification & billing start
When the user joins the game:- The Game Server extracts the OTT from LaunchData
- Sends an OTT verification request to the PlayWave Server (API Key auth)
- The PlayWave Server validates the OTT and starts billing
- Returns the game session ID and PC cafe status
Phase 4 — Heartbeat
During gameplay:- The Game Server sends heartbeats to the PlayWave Server every 2 minutes
- The PlayWave Server renews the billing session and records play time
- If no heartbeat is received for 4 minutes, the session is auto-terminated
Phase 5 — Session end
When the user leaves the game:- The Game Server calls the PlayWave Server session end API
- The PlayWave Server stops billing and records the final play time
- On abnormal exit, heartbeat timeout handles automatic cleanup
OTT (One-Time Token)
OTT is a single-use token that securely transfers the session from the PlayWave Launcher to the Game Server.| Property | Value |
|---|---|
| Format | UUID v4 |
| TTL | 1 minute (60 seconds) |
| Usage | Single-use (consumed on verify call) |
| Delivery | Roblox LaunchData |