Docs

How to build Scenes, get them into OBS, and troubleshoot common issues.

Introduction

TwistedPad lets you create customizable controller Scenes for streams and videos. Designed for clarity, personalization, and performance — so viewers can see exactly what you're pressing in real time.

Important: Controller input is detected by the device running the Scene (e.g. the OBS Browser Source machine). If the controller is connected to a different machine you'll need a dual‑PC workflow — see below.

Quick start

  1. Create an account — sign up and verify your email.
  2. Create a Scene — open the editor and build your layout (Base + Pressed states).
  3. Set it active — pick the Scene you want to broadcast as your "Active Scene".
  4. Copy your Scene URL — you'll use this in OBS as a Browser Source.
  5. Add to OBS — see the "OBS single‑PC setup" section below.
Pro tip: Save a clean scene JSON as a reusable template for starting new designs (Pro+ only).

Plans & rules

Each plan controls which features you can access, and what sharing options are available. Check the Pricing page for current limits. Key things to know:

  • Only one Scene can be "active" (broadcast) at a time.
  • Scene cloning and templates are Pro+ features.
  • Private sharing (access‑list) requires both parties to be on a qualifying plan with verified email.
  • Scene export is a Pro+ tier feature.

Common setups

Use the setup that matches where your controller is connected and where you produce your stream.

Single‑PC stream

Controller and OBS on the same machine. The simplest and most reliable workflow.

  • Scene runs as an OBS Browser Source.
  • Gamepad input is detected directly.
  • Best for PC games with USB/Bluetooth controllers.

Dual‑PC stream

Game runs on a "Gaming PC", OBS on a "Streaming PC". Controller is typically on the Gaming PC.

  • Run the Scene on the Gaming PC, then send it as video to the Streaming PC (NDI / capture).
  • Alternative: connect a second controller directly to the Streaming PC.
Console note: Consoles don't expose controller inputs to a PC browser by default. You can use TwistedPad for visuals, but reading real inputs requires additional hardware/software outside TwistedPad.

OBS single‑PC setup

Recommended when controller and OBS are on the same machine.

  1. Open OBS Studio → click + under Sources.
  2. Select Browser (Browser Source).
  3. Paste your Scene URL.
  4. Set Width/Height to match your canvas (common: 1920×1080).
  5. Enable Shutdown source when not visible for best performance.
  6. Click OK, then position/scale your Scene in the OBS scene.
Common gotcha: Some browsers require a user interaction before the Gamepad API activates. If inputs don't register, open the Scene URL in a normal browser tab and click inside it once to confirm your controller is detected.

Dual‑PC streaming

The Scene must run on whichever machine the controller is connected to. You then deliver the Scene as video to the Streaming PC.

Option A — NDI (recommended)

  1. On the Gaming PC, run OBS with only the TwistedPad Browser Source.
  2. Add an NDI output for that scene (OBS‑NDI plugin).
  3. On the Streaming PC, add an NDI Source and select the Scene feed.
  4. No chroma key needed if you use transparency; otherwise design with a clean colour background and key it.

Option B — Capture / teleport

  • Capture card / HDMI: Show the Scene fullscreen on the Gaming PC and capture it.
  • OBS Teleport / similar: Forward a scene feed from Gaming PC OBS to Streaming PC OBS.
  • Window capture: Capture a browser window running the Scene, crop/scale in OBS.
Future: A dedicated input‑relay (Gaming PC → Streaming PC) to allow the Scene to run directly on the Streaming PC while reading remote inputs. Not part of the current build yet.

Streamlabs Desktop / StreamElements

Both platforms support browser sources. Same fundamentals — use your Scene URL as a browser source at a fixed resolution.

  • Streamlabs Desktop: Add a Browser Source, paste your URL, enable "Shutdown source when not visible" if available.
  • StreamElements: Add a Custom Widget / Overlay and embed your Scene URL. Keep widget resolution consistent with your scene.
  • Tip: If you see stutter, reduce animations (glow/filters) and keep Scene resolution reasonable.

Performance & stability

  • Prefer 60 fps Scenes with minimal heavy effects. Stacked glow/blur raises GPU load noticeably.
  • Enable "Shutdown source when not visible" (OBS) to stop background processing on scene switches.
  • Consistent canvas size: build at 1920×1080 and scale down in OBS to avoid reflow/recalc churn.
  • Keep the browser source cache clean: if something looks stuck, use "Refresh cache of current page" in OBS.
Diagnostics: If the Scene feels laggy, check OBS stats (dropped frames), GPU usage, and whether video decode overload is forcing FPS down.

Security & privacy

  • Email verification is required for linking accounts and for access‑list invites.
  • Scene URLs are not secret by default — don't embed sensitive data in scene names or descriptions if you share your URL publicly.
  • Private shares: only users on the access list can load a privately shared Scene.

Keyboard shortcuts

All shortcuts apply while the editor is focused and you are not typing in a text field. Most require a target or button to be selected first.

File & history

Ctrl + S Save scene Ctrl + Z Undo Ctrl + Y Redo

Selection

Ctrl + A Select all buttons Ctrl + Click Add / remove item from multi‑selection (click in preview) Esc Deselect all [ / ] Previous / next target

Navigation & preview

1 / 2 Switch to Base / Pressed state (button selected) Space Hold to preview opposite state (Base ↔ Pressed) (release to return) F11 Toggle fullscreen editor

Move & nudge

Arrow keys Nudge selected item or button 1 px Shift + Arrow keys Nudge 10 px Alt + Shift + E Center selected items on canvas Alt + Shift + H Align selected items horizontally

Spread (multi‑select)

Alt + Q Activate + spread mode, then use Arrow keys to distribute Alt + W Activate spread mode, then use Arrow keys to distribute

View

Shift + G Toggle grid overlay

Copy / paste styles

Alt + C Copy current target's style to clipboard Alt + V Paste clipboard style to current target Alt + Shift + V Paste clipboard style to entire group (matching targets) \ Clone all style from the opposite state (Base ↔ Pressed) onto the current state

Mirror / paired targets

Alt + M Mirror position to L/R paired target (2 buttons selected) Alt + Shift + M Mirror position + copy all styles to L/R paired target

Troubleshooting

Scene loads but inputs don't show

  • Confirm the controller is connected to the same machine running the Scene (Browser Source machine).
  • Open the Scene URL in a regular browser tab and click once to activate the Gamepad API.
  • On Bluetooth: confirm the controller is paired at OS level, not only inside Steam.

OBS Browser Source shows a blank page

  • Confirm the URL is correct and accessible when logged out (or that your Scene is set active).
  • Disable "local file" and use an HTTPS URL.
  • Try "Refresh cache of current page" in OBS Browser Source properties.

Scene stutters or drops frames

  • Reduce heavy effects (glow intensity, stacked images, large video backgrounds).
  • Lower Scene resolution and scale in OBS rather than running full native resolution.
  • Enable "Shutdown source when not visible" in OBS.

Private Scene sharing issues

  • Both accounts must be on a qualifying plan.
  • The recipient's email must be verified.
  • If the invite was sent before the recipient verified, re‑add them after they verify.

Something else?

Head to the Support page to reach the community on Discord.

FAQ

Do I need to rebuild my Scene for different resolutions?

Not usually. Build at a clean base resolution (1920×1080 is common) and scale/crop in OBS. If you use very small or unusual aspect ratios you may want a dedicated Scene for that layout.

Can I run the Scene on a different PC than OBS?

Yes, but only as a video feed (NDI / capture / teleport). Controller input must be read where the Scene actually runs.

Why can't I see all my Scenes in OBS?

Only your Active Scene is broadcast via the standard Scene URL. Switch which Scene is active from your dashboard, or use the direct Scene URL for a specific scene (Pro+).