Controller+BETADownload
For game developers

Make your game phone-controllable.

Players scan a QR code and their phone becomes a controller for your game, or a private screen for roles, votes and drawings. They install nothing. Free for commercial games.

A web game, in ten lines

No server and no key: the Controller+ relay carries the messages. Works from any https page, localhost, or an HTML file opened from disk.

import { createRoom, movement } from "https://controller.plus/sdk/src/relay-host.mjs";

const room = await createRoom({ game: { id: "space-race", name: "Space Race" } });
qr.innerHTML = room.qrSVG;                       // players scan this

room.on("join",  ({ playerId, name }) => addShip(playerId, name));
room.on("leave", ({ playerId }) => removeShip(playerId));
room.on("input", ({ playerId, input }) => {
  const [x, y] = movement(input);                // stick or D-pad, -1..1
  steer(playerId, x, y, input.buttons[0] > 0.5); // bottom face button
});

Your own server, direct

Attach ControllerHost to a Node HTTP(S) server and phones connect straight to it, with no trip through our service. It handles player seats, reconnects, input normalization and private views. Quickstart

Private phone screens

Send one player a secret role, a question with buttons, a drawing pad or a code fragment. Everyone else keeps their own screen. Private views

Sound and rumble

Trigger built-in sound and vibration cues, or ship your own WAV effects with fallbacks. Players control their own volume and vibration. Feedback

Engines

EnginePackage
Godot 4Add-on with action mapping, private views and feedback
UnityUPM package with a WebGL bridge
UnrealRuntime plugin with Blueprint nodes
C / C++Small library with a CMake build

Engine guides · Download the packages

For coding agents

Point your assistant at /llms.txt. It leads with the integration above and links the full docs in Markdown. The integration manifest and connection schema are machine-readable.

License

Use and modify the SDK in any game, including commercial games. Don't use it to harm players or to interfere with the Controller+ apps. Source terms