Skip to main content

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.

PlayWave Server → PC Cafe Auth

The PlayWave Server calls the external PC cafe auth API to verify IP addresses and manage billing sessions.

Full flow

5 phases in detail

Phase 1 — Session start

When a PC cafe user launches the PlayWave launcher:
  1. The launcher collects the PC’s internal IP and hardware info
  2. Sends a session start request to the PlayWave Server with HMAC signature
  3. The PlayWave Server extracts the external IP from the HTTP request and verifies if it’s a PC cafe
  4. On success, returns a session token and a list of supported games

Phase 2 — OTT issue & game launch

When the user selects a game:
  1. The launcher requests an OTT (One-Time Token) from the PlayWave Server
  2. The PlayWave Server generates a UUID-format OTT (1 min TTL, single-use)
  3. The launcher launches the Roblox game with the OTT in LaunchData

Phase 3 — OTT verification & billing start

When the user joins the game:
  1. The Game Server extracts the OTT from LaunchData
  2. Sends an OTT verification request to the PlayWave Server (API Key auth)
  3. The PlayWave Server validates the OTT and starts billing
  4. Returns the game session ID and PC cafe status

Phase 4 — Heartbeat

During gameplay:
  1. The Game Server sends heartbeats to the PlayWave Server every 2 minutes
  2. The PlayWave Server renews the billing session and records play time
  3. If no heartbeat is received for 4 minutes, the session is auto-terminated

Phase 5 — Session end

When the user leaves the game:
  1. The Game Server calls the PlayWave Server session end API
  2. The PlayWave Server stops billing and records the final play time
  3. 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.
PropertyValue
FormatUUID v4
TTL1 minute (60 seconds)
UsageSingle-use (consumed on verify call)
DeliveryRoblox LaunchData
OTT is single-use. It cannot be reused after the verify call, and expires if not used within 1 minute.