Connectivity

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:

  1. Lifecycle Phase: An Online server takes precedence over a Starting server, which takes precedence over a Stopping server.
  2. Player Count: If multiple servers share the same lifecycle phase, the server with the highest number of active connected players is displayed.
  3. 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:

OptionDefaultDescription
Enable Discord RPCEnabledMaster toggle for connecting to the local Discord IPC socket.
Show Server NameEnabledDisplays your custom instance name rather than generic text.
Show Engine and VersionEnabledDisplays the server platform and version string (for example, Paper 1.21.4).
Show Player CountEnabledDisplays real-time player counts reported by the server process.
Show Server AddressEnabledDisplays the public Playit tunnel address in the details field.
Show Software IconEnabledRenders the platform logo as the primary presence image asset.
Show Download ButtonEnabledAdds a profile button linking to the PocketMC project website.
Show Idle StatusDisabledDisplays 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.