Skip to main content
This guide is for manual setup without the PlayWave plugin. For the recommended approach, see the Quickstart guide which uses the plugin.

Project structure

ServerScriptService
Script
PlaywaveService (ModuleScript)
StarterPlayer
StarterPlayerScripts
Client (LocalScript)
RedeemUI (ModuleScript)

PlaywaveService module

The core module. Handles API communication, OTT verification, heartbeat loop, and session termination.
Replace API_URL and API_KEY with your issued values. API Key must only be used server-side.

API Server URLs

Server script (Script)

Initializes PlaywaveService and connects it to your game logic.

Client script (LocalScript)

RedeemUI module (optional)

A UI module that displays PC cafe authentication status in the top-right corner of the screen.

How it works

1

Client ready

The LocalScript sends a ClientReadyEvent:FireServer() signal to the server.
2

OTT verification

PlaywaveService extracts the OTT from GetJoinData().LaunchData and sends a verification request.
3

Session activation

On successful verification, the game session is stored and a 2-minute heartbeat loop starts.
4

Benefit grant

The onPcCafe callback is invoked, executing your game-specific benefit logic.
5

Session end

On PlayerRemoving or BindToClose, the session end API is called.