PadRelay Documentation
PadRelay is a client-server application that forwards gamepad input from a local machine to a Windows PC where a virtual controller is created. The client captures input with pygame and the server emulates either an Xbox 360 or DualShock 4 gamepad using the vgamepad library.
Key Features
Cross-Platform Client: Works with Python 3.6+ on any system with pygame
Windows Server: Uses ViGEmBus to create virtual Xbox 360 or DualShock 4 gamepads
Flexible Transport: Choose between TCP (reliable) or UDP (low latency)
Secure Authentication: Challenge/response for TCP and token authentication for UDP
TLS/SSL Support: Optional encryption for TCP connections
Rate Limiting: Protects servers from excessive requests
Automatic Reconnection: Client automatically reconnects if server disconnects
Controller Mapping: Built-in key mapper utility for custom controller layouts
Comprehensive Logging: Detailed debug logging with log sanitization
Use Cases
Stream gamepad input from Linux/Mac to Windows gaming PC
Remote gaming over local network or VPN
Use non-standard controllers with games expecting Xbox/PS4 controllers
Share a single physical controller with multiple machines
Quick Links
Documentation Contents
Getting Started
Technical Documentation
Development
- Development Guide
- Contributing Guide
- Ways to Contribute
- Getting Started
- Contribution Workflow
- Pull Request Guidelines
- Code Style
- Testing Guidelines
- Bug Reports
- Feature Requests
- Documentation Contributions
- Controller Mapping Contributions
- Code Review Guidelines
- Security Contributions
- License
- Code of Conduct
- Questions?
- Thank You!
- See Also
- Changelog