A bridge application that connects the 24Client web client to Discord RPC, enabling dynamic flight status display in Discord and voice channel switching through RPC commands.
We are not (yet) accepting any pull requests, any requests opened while this message is still here will simply be closed
- Dynamic Flight Status Display: Automatically updates your Discord activity with real-time flight information including altitude, heading, callsign, and aircraft type
- Voice Channel Switching: Programmatically switch Discord voice channels based on flight frequencies
- System Tray Integration: Runs as a background service with system tray controls
- Status Monitoring: Visual indicators for Discord connection status and current voice channel
- REST API: Exposes endpoints for controlling Discord RPC functionality
- Windows 10 or later
- Discord must be running with RPC enabled
- Node.js 18+ or Bun runtime
- pnpm or npm package manager
- Discord RPC support on your system
- Download the latest installer from the releases tab
- Run the installer and follow the installation wizard
- The application will be installed to your Program Files directory
- A shortcut will be created in your Start Menu
- Run the application from the Start Menu or use the system tray icon
-
Clone or download the repository
git clone https://github.com/zed24software/pilot-client-bridge.git cd pilot-client-bridge -
Install dependencies
pnpm install
-
Build the application
pnpm run build
This will compile the TypeScript source code and create an executable in
dist/24client-bridge -
Run the application
./dist/24client-bridge
Or run in development mode with auto-reload:
pnpm run dev
The application uses two main configuration files located in the src/ directory
Changing these settings is not recommended nor needed and is likely to break functionality.
Configure Discord RPC connection settings:
client_id: Discord application ID (default: 1507887570154162385)auth_server: Local authentication server address (default: http://localhost)activity_enabled: Enable/disable automatic activity updates (default: true)
Define voice channel mappings between radio frequencies and Discord channels:
{
"position": "IRCC",
"frequency": "124.850",
"channelId": "1409259489580023898"
}Each entry maps:
position: Position name (e.g., IRCC, IRFD_TWR)frequency: Radio frequency identifierchannelId: Discord voice channel ID
Once running, the application:
- Connects to Discord RPC on startup
- Displays status in the system tray
- Listens for commands from the 24Client web client on
http://127.0.0.1:57330 - Updates Discord activity every 10 seconds with current flight data
Health check endpoint
Response: { status: 200, message: "API online", v: "1.0.0", timeOnlineSeconds: number }
Switch to a Discord voice channel based on frequency
{
"frequency": "124.850",
"navigate": true,
"timeout": 5000
}Get current voice connection status
Response: { status: 200, data: any }
Manually set Discord activity status
{
"pid": 1234,
"activity": {
"details": "ALT 35000ft | HDG 090°",
"state": "N123AB · Boeing 777"
}
}Electricity
- Ensure Discord is running
- Check that Discord has RPC enabled in settings
- Verify the
client_idinrpc-config.jsonis correct
- Verify the frequency exists in
channels.json - Check that the Discord channel ID is correct
- Ensure you're in the ATC24 Discord server
- Verify Node.js/Bun is installed:
node --versionorbun --version - Run
pnpm installagain to ensure all dependencies are installed - Check the console output for specific error messages
- Bun runtime (recommended) or Node.js 18+
- pnpm package manager
- NSIS (for Windows installer only): https://nsis.sourceforge.io/
-
Development build with watch mode
pnpm run dev
-
Production build
pnpm run build
-
Build Windows installer (Windows only)
pnpm run build-installer
-
Complete build with installer
pnpm run serve
For issues, feature requests, or contributions, please refer to the Zed Software Discord.
This project is licensed under the GNU General Public License v3.0.
Created by Zedruc and awdev for 24Client flight simulation integration.