Discord Integration
PocketMC integrates with Discord through two independent channels: local Rich Presence (RPC) over named pipes to show live server activity on your profile, and outbound Discord webhooks to alert your community when servers start, stop, or crash.
Discord Rich Presence (RPC)
The desktop client connects directly to the Discord desktop app via the local Windows named pipe (\\.\pipe\discord-ipc-0) using registered application ID 1507742265240715354. It requires no Discord bot tokens or web requests to update your profile status.
- Activity Status: Shows current lifecycle phase (Starting, Online, or Stopping) along with an elapsed uptime timer.
- Player Counts: Streams live player counts against max server capacity (for example,
5/20 Players). - Engine Branding: Loads matching high-resolution logos for Vanilla, Paper, Fabric, Forge, NeoForge, Bedrock Dedicated Server, and PocketMine-MP.
- Public Join Address: When Playit.gg tunneling is enabled, your public tunnel host and port display directly in your presence details so friends can connect.
- Geyser Crossplay Formatting: When PocketMC detects the Geyser plugin or mod installed alongside a Bedrock UDP tunnel, it displays both endpoints simultaneously:
Java: play.example.gg:25565 | Bedrock: play.example.gg:19132 - Download Button: Renders a clickable button on your Discord profile card linking friends directly to the PocketMC download page.
Multi-Server Display Priority
If you run multiple Minecraft servers simultaneously on one machine, Discord only allows a single Rich Presence activity at a time. PocketMC evaluates running instances and selects which server to broadcast using this deterministic priority order:
- Lifecycle Phase: An
Onlineserver takes precedence over aStartingserver, which takes precedence over aStoppingserver. - Player Count: If multiple servers share the same lifecycle phase, the server with the highest number of active connected players is displayed.
- Uptime: If player counts are equal, the server with the longest running uptime is selected.
Presence Display Toggles
In SettingsDiscord RPC, you can customize every field broadcast to Discord:
| Option | Default | Description |
|---|---|---|
| Enable Discord RPC | Enabled | Master toggle for connecting to the local Discord IPC socket. |
| Show Server Name | Enabled | Displays your custom instance name rather than generic text. |
| Show Engine and Version | Enabled | Displays the server platform and version string (for example, Paper 1.21.4). |
| Show Player Count | Enabled | Displays real-time player counts reported by the server process. |
| Show Server Address | Enabled | Displays the public Playit tunnel address in the details field. |
| Show Software Icon | Enabled | Renders the platform logo as the primary presence image asset. |
| Show Download Button | Enabled | Adds a profile button linking to the PocketMC project website. |
| Show Idle Status | Disabled | Displays an idle status ("Managing Servers") when PocketMC is open without any active running servers. |
Discord Webhook Notifications
In addition to client Rich Presence, PocketMC can dispatch automated embed notifications to any Discord channel through incoming webhooks. Configure your webhook URL in SettingsNotifications to receive events:
- Server Online Alerts: Dispatches a green embed when a server finishes loading chunks and starts listening for player connections, including the join address.
- Tunnel Status Changes: Alerts when Playit.gg establishes a new connection or recovers from an agent disconnect.
- Remote Dashboard Logins: Notifies administrators when a user logs into the remote web panel, noting the IP address.
- AI Crash Post-Mortems: Automatically posts sanitized AI incident summaries directly to your moderator channel after an unhandled server crash.