-
Notifications
You must be signed in to change notification settings - Fork 6
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.

- On the Dashboard, check the box in the Web Controller section.
- PadForge displays a URL (e.g.,
http://192.168.1.100:8080).
- On the phone, tablet, or other device, open any web browser.
- Navigate to the URL shown in PadForge.
- The landing page loads with the available layout options.
Tap Xbox 360, DualShock 4, or Touchpad. Xbox 360 and DualShock 4 produce identical button/axis input — the choice is purely visual. Both layouts use the same 2D artwork as the desktop view, so the trigger silhouette pokes up above the bumpers and the press-fill animates in front of the controller body when you pull a trigger. Touchpad is a multi-touch surface that drives the DS4 touchpad on whichever PlayStation slot it's assigned to.
- The browser controller appears on the Devices page as "Web Controller 1" (or next available number).
- Click the slot badge on the device card to assign it, same as any physical controller.
- Done. Start playing.
Tip: Use your browser's "Add to Home Screen" option for fullscreen mode without the address bar and tabs.
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.
Both gamepad layouts use the same 2D artwork the desktop ControllerModel2DView renders, including the trigger silhouettes that sit behind the body PNG and the active press-fill that draws on top.
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.
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, TouchpadClick.
The DS4 layout collapses TouchpadClick into button index 11 so numbering stays contiguous: Cross, Circle, Square, Triangle, L1, R1, Share, Options, L3, R3, PS, TouchpadClick. No gap is left between Options and the stick clicks.
Both gamepad layouts send identical button and axis codes. Switch layouts at any time by navigating back to the landing page.
A multi-touch surface that maps directly to the DualShock 4 / DualSense touchpad on the assigned PlayStation slot. Useful as a second input device when a phone or tablet is already in another player's hands and the DS4/DS5 touchpad is the missing piece. No buttons or sticks — touchpad input only.

| 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. |
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.
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.
| 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 |
- 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