Skip to content

Web Controller

hifihedgehog edited this page Mar 19, 2026 · 10 revisions

Web Controller

Any device with a web browser becomes a game controller. Open the URL shown on the Dashboard from a phone, tablet, or another network device — it appears as a physical input device in PadForge, ready to assign to any virtual controller slot.

Useful for an extra controller, a phone as secondary input, or touchscreen play on a larger display.


Web controller landing page

Setup

1. Enable the Server

  1. On the Dashboard, check the box in the Web Controller section.
  2. PadForge displays a URL (e.g., http://192.168.1.100:8080).

2. Open the URL

  1. On the phone, tablet, or other device, open any web browser.
  2. Navigate to the URL shown in PadForge.
  3. The landing page loads with two layout options.

3. Choose a Layout

Tap Xbox 360 or DualShock 4. Both produce identical input — the choice is purely visual.

4. Assign to a Slot

  1. The browser controller appears on the Devices page as "Web Controller 1" (or next available number).
  2. Click the slot badge on the device card to assign it, same as any physical controller.
  3. Done — start playing.

Tip: Use your browser's "Add to Home Screen" option for fullscreen mode without the address bar and tabs.


Network Requirements

Phone/tablet and PC must be on the same local network (typically the same Wi-Fi).

Requirement Details
Port TCP 8080 (default), configurable on the Dashboard
Firewall PadForge creates a Windows Firewall rule automatically. Third-party firewalls may need a manual TCP 8080 allow rule.
Max clients 16 simultaneous browser connections

Cannot reach the URL?

  • Confirm both devices share the same Wi-Fi network.
  • Check that the firewall allows port 8080.
  • Try a different port if 8080 is already in use.

Controller Layouts

Xbox 360

Full layout: A/B/X/Y, LB/RB, Back/Start/Guide, 8-way D-pad, dual analog sticks with L3/R3 click, LT/RT triggers.

DualShock 4

Full layout: Cross/Circle/Square/Triangle, L1/R1, Share/Options/PS, 8-way D-pad, dual analog sticks with L3/R3 click, L2/R2 triggers.

Both layouts send identical button and axis codes. Switch layouts at any time by navigating back to the landing page.

Web controller in use


Touch Controls

Control Behavior
Buttons Tap to press. Touch zones are larger than visible art for easier targeting on small screens.
Analog sticks Drag within the stick zone to move. Release to re-center. Stick click (L3/R3): tap and release within 200 ms with minimal movement.
D-pad Touch and drag to select a direction. Supports all 8 directions (cardinal + diagonal).
Triggers Tap to send a full press. Release to return to zero.

Connection and Latency

The web controller uses a WebSocket for low-latency, persistent two-way communication. Input updates send immediately on touch events.

Status Meaning
Connected Active connection — input reaches PadForge
Disconnected Connection lost — tap to reconnect

Latency: Expect 5-15 ms additional latency over home Wi-Fi compared to a wired controller. Fine for casual, puzzle, and platform games. Fast-paced competitive play may feel slightly less responsive.

Reconnection: Each browser tab keeps a persistent pad ID. Briefly losing connection (e.g., phone screen lock) preserves device identity and slot assignments — no reassignment needed.


Rumble Feedback

PadForge forwards vibration commands to the browser via the Vibration API. Works on phones and tablets with vibration motors. Chrome on Android has good support; Safari on iOS does not.


Requirements Summary

Requirement Details
Network PC and device on the same local network (Wi-Fi)
Port TCP 8080 (default), not blocked by firewall
Orientation Landscape required (warning appears in portrait)
Browser Any modern browser (Chrome, Safari, Firefox, Edge)
Touch Touchscreen recommended for analog stick and multi-touch support
Max clients 16 simultaneous browser connections

Related Pages

  • Dashboard — Enable and configure the web controller server
  • Devices — See your web controller and assign it to a slot
  • Controller Slots — Create a virtual controller to use with the web controller
  • Settings — Configure the web controller port
  • Troubleshooting — Help with connection issues
  • 3D and 2D Visualization — The same PNG assets power both the web controller and the desktop 2D view

Clone this wiki locally