A phone turned sideways with game controller buttons — the core dropcontroller concept
Now open for signups

Instant phone controllers
for indie games

Turn any phone into a game controller in under 2 seconds. Stop building and maintaining networking infrastructure — spend that time on your game instead.

Try it right now

Tap in for a live game controller — no signup, no install.

Try the game controller demo →
<20ms latency Up to 32 players Scan to play No app install

Built on the gamepad your players already know

One full-featured game controller — themeable per game, reactive to what's happening on screen, with optional native-app polish. Players scan a QR from inside your game and connect instantly — no app download required.

Familiar gamepad buttons and joystick

D-pad, thumb-stick, A/B/X/Y face buttons, L/R triggers, and a pause button — the layout players already know. Inputs stream to your game in under 20ms on local WiFi.

Inputs

D-pad / joystickA / B / X / YL / R triggersPause

Customizable per game

Theme the controller to match your game — button palette, accent color, labels, which controls are visible. Configured once in the dashboard, pushed to every player — no rebuild, no code change.

Configurable

Button visibilityColors & labelsJoystick vs D-padAccent theme

Dialogue choices, polls, and text prompts

Trigger a question from your game and the phone pops a full-screen overlay — single choice, multi-select, or free text. Answers stream back as they come in; your code awaits the result and moves on.

Prompt types

Single choiceMulti-selectFree textPer-player or all

Reactive to game state

Your game broadcasts state, the controller reflects it. The pause button flips live when you pause, the UI tints with each player's team color, a 'your turn' indicator lights up in turn-based rounds, and the whole controller dims when a player is eliminated.

Reactive to

Pause / resumePer-player colorYour-turn indicatorEliminated / spectating

Persistent user profiles

Players set their display name and avatar once on their phone — it rides into every game built on dropcontroller. No 'what should I call you?' on every round, and the identity survives reconnects, WiFi roams, and return visits.

Profile carries

Display nameAvatarAcross sessionsAcross games

Optional iOS companion app — free

Players who want a richer experience can install the free dropcontroller iOS app: reactive haptic rumble driven by your game's events, a cleaner UI with no browser chrome, and faster resume. Your game doesn't care — same API, same events.

App adds

Haptic rumbleNo browser chromeFast resumeFree on App Store

Drop in a controller. Ship.

Host a room, pass "gamepad", handle inputs. That's the whole SDK surface.

Your Unity game — that's literally it
using DropController;

var room = await DropController.Host(
    new HostOptions(appId, apiKey)
        .WithControllerTemplate("gamepad")
);

room.OnPlayerJoined += (e) => {
    Debug.Log($"{e.Player.Name} joined");
};

room.OnControllerInput += (e) => {
    // e.Input is a gamepad event: button, stick, trigger, dpad, or pause.
    HandleGamepadInput(e.Player, e.Input);
};

Unity (Asset Store distribution) and JavaScript today. Godot, Bevy, LÖVE, and Phaser SDKs in the monorepo — landing soon.

Ship a game, not a networking platform

The real-time stack — peer-to-peer data channels, NAT traversal, relay fallback — handled. Put your time into the part players actually care about.

Local-first, action-game fast

Inputs travel phone-to-host over a direct WebRTC data channel — never through our servers. On the same WiFi, the path stays on the LAN. Under 20ms on typical networks: fast enough for real-time action, not just trivia buzzers.

Transparent relay fallback

When NAT traversal fails on restrictive networks, traffic falls through to a TURN relay. Same API, same event shapes — your code never branches on transport.

Zero-loss reconnection

Screen locks, WiFi roams, band switches — the server holds the slot for 60 seconds, inputs buffer locally, and replay in order on resume.

Frame-coalesced high-rate inputs

Joystick samples are batched to one send per display frame; discrete events (buttons, buzzes, pauses) flush immediately. Smooth under load.

Want the deeper dive — ordered delivery, binary wire protocol, edge signaling? Read the architecture →

On the roadmap — v2

One profile. Every dropcontroller game.

Players set their profile once on their phone — display name, avatar, handle — and every dropcontroller game they join after gets it automatically. No signup screens, no name prompts, no "what should I call you?" on every single game.

Set up once, everywhere

The first time a player scans a QR to join any game, they can set a handle and pick an avatar. That profile lives on their phone — and eventually in a cross-device account — and follows them into every room after.

Profile on the Player object

When a phone joins a room, the SDK hands your game { id, displayName, avatar }. Render the avatar next to the score. Ship social without building auth.

Per-app player data

Each game gets a key-value store scoped to the player. Persist stats, progress, unlocks, inventory — keep state across sessions without standing up your own backend or accounts.

SDK, not a walled garden

The other option is to ship inside someone else's player, hand over 30% of your revenue, and let their brand sit on top of your game. dropcontroller is the SDK — you keep everything.

dropcontroller
Phone Screen < 20ms Local network
AirConsole-style platforms
Cloud 50–200ms+ Phone Screen
dropcontroller
AirConsole-style platforms
Revenue
Keep 100% of your revenue. You set the price, you pick the platform
30% platform cut, plus mandatory ad revenue share
Distribution
Steam, consoles, your own website — ship anywhere
Locked to the platform's walled-garden player
Branding
Your game, your colors, your logo. dropcontroller is invisible infrastructure
Your game lives inside their shell, under their brand
Architecture
Local-first — messages travel device-to-device in under 20ms. Fast enough for action games, not just trivia
Cloud-routed — every input round-trips through their servers. Too laggy for real-time action
Offline / LAN
Works at parties, cabins, conferences — no internet required
No internet, no game
Controller UI
No-code designer + ready-made templates, fully customizable
Fixed controller styles, limited customization

Works where you build, runs where your players are

Integrate in your engine of choice. Controllers run in any mobile browser — no app store required.

Game development

  • U Unity — primary SDK, Asset Store distribution
  • UE Unreal Engine — C++ SDK
  • NA Native — iOS, tvOS, Android TV, macOS, Windows
  • JS Web games — JavaScript SDK for browsers
  • WS Custom — WebSocket API for any platform

Controller deployment

  • Zero app installs — runs in any phone browser
  • Universal — iOS Safari, Android Chrome, any mobile web
  • Offline capable — works on LAN with no internet once connected
  • QR code joining — scan and play in under 5 seconds

Pricing that stays out of your way

The SDK is free. Local network sessions always cost $0. You only pay when traffic routes through our cloud relay.

Hobbyist

$0 Free forever

Personal projects, prototypes, learning

  • Unlimited local-network sessions
  • Up to 32 devices, under 20ms latency
  • Discovery, session management, reconnection
  • End-to-end encryption
  • Full no-code controller designer
Start free
Most popular

Pro

$5 per month

Indie games and small commercial projects

  • Everything in Hobbyist
  • 3,500 cloud relay device-minutes included
  • Analytics dashboard and session insights
  • Custom branding / white-label controllers
  • Priority support
Sign up

Usage overages

When you exceed your Pro tier limits

Additional relay device-minutes
$0.002

per device-minute

Relay data transfer
$0.10

per GB

Contact us for volume pricing if you're consistently exceeding 50,000 device-minutes per month.

The next Jackbox could be yours

Stop building and maintaining networking infrastructure. Put that time into the gameplay that makes people laugh, compete, and come together around a screen.