Browse security docs Toggle navigation

// Security

Playtest Recording

Last updated June 19, 2026

This page describes the core data path — how a playtest session goes from creation to storage to playback.

Actors#

  • Studio member — a user in a Userplay workspace who creates and reviews playtests.
  • Player — a person invited to complete a playtest via a unique link. The web flow asks the player to sign in before joining.
  • Userplay backend — application services on Render that handle recording lifecycle, authentication, and metadata, backed by Userplay’s database (PlanetScale).
  • Mux — video ingest, storage, and playback.
  • Cloudflare — edge delivery in front of both the application and Mux playback URLs.

Step-by-Step Flow#

1. Playtest creation#

A studio member configures a playtest in the Userplay web app: objectives, prompts, capture toggles (screen, microphone), and retention policy. The configuration is stored in Userplay’s database (PlanetScale).

2. Player invite#

Userplay generates a unique, signed playtest URL for each player. The URL grants single-purpose access to the playtest and the upload endpoint for the corresponding recording.

When the player opens the URL, Userplay shows them a consent screen describing what will be captured (screen, mic, system audio), by which studio, and under what retention. The player must explicitly accept before recording starts. See Player Privacy.

4. Capture#

The Userplay recorder — a web-based client running in the player’s browser — captures the configured tracks locally on the player’s machine. Nothing is streamed to Userplay during recording; the upload happens after the session ends.

5. Upload#

The recorder uploads chunked video and audio to Mux’s direct-upload endpoint via a pre-signed upload URL issued by the Userplay backend. The pre-signed URL is single-use and bound to the player’s session. All transport is over TLS.

6. Storage#

Mux ingests the upload, transcodes to delivery-ready renditions, and stores the asset. Userplay persists the Mux asset ID, recording metadata (duration, dimensions, timestamps), and workspace association in its database (PlanetScale). Raw recording files live in Mux; all derived data lives in Userplay’s database.

7. Optional in-game telemetry#

If the studio and player have both enabled an optional telemetry agent, post-gameplay telemetry is uploaded separately and stored alongside the recording.

8. Review#

Studio members with the appropriate workspace role can play back the recording in the Userplay web app. Playback URLs are signed by the Userplay backend on demand and expire on a short TTL. Signing requires an authenticated session with the appropriate workspace role.

9. Retention and deletion#

The recording is retained per the workspace’s retention policy (default 12 months). Workspace owners can delete a recording at any time; deletion soft-deletes the Mux asset immediately, with hard deletion from Mux storage within 30 days. See Recording Access.


Access Controls#

  • Player upload endpoints are scoped to a single playtest session and expire after upload completes or the playtest window closes.
  • Playback is available only to authenticated studio members in the workspace that owns the recording.
  • Workspace owners can further restrict playback to specific roles or members per playtest.
  • Userplay employees do not access workspace recordings except in the narrow circumstances described in Recording Access.