Skip to content

Direct Messages

KOKOTO-DEV edited this page Aug 13, 2026 · 1 revision

Direct Messages and Game Whispers

Enable DMs

DMs are stored separately from public chat and are disabled by default:

direct-message:
  enabled: true
  storage: "auto"
  retention-days: 0
  capture-game-whispers: true

Choose a retention policy appropriate for your server before enabling private-message storage.

Web DMs

A linked/known player can be selected from the New Message search. A compatible public message can also expose a direct DM entry point through its server · source metadata.

For a remote player, the web client uses the clicked message's exact:

  • originServerId
  • originServerName
  • playerUuid

The target is not resolved by display name alone. The DM window identifies remote recipients immediately, for example:

[Main] Tachibana Sherry

Game DMs

Local BMChat DM:

/bmchat dm PlayerName message

Remote BMChat DM:

/bmchat dm PlayerName@server1 message

The supported explicit whisper aliases also accept the remote target form:

/w PlayerName@server1 message
/msg PlayerName@server1 message
/tell PlayerName@server1 message
/whisper PlayerName@server1 message
/m PlayerName@server1 message
/pm PlayerName@server1 message
/message PlayerName@server1 message
/t PlayerName@server1 message

Game whisper mirroring

With direct-message.capture-game-whispers: true, compatible local game whispers can be copied into the same BMChat web DM thread. Remote identities are excluded from local-only whisper matching so a same-name remote user cannot capture a local /w PlayerName ... conversation.

Session identity

A remote participant is scoped by server ID + player UUID. Game and web messages to the same remote account therefore use the same logical DM thread instead of creating separate sessions.

Friendly server-name is display metadata only; the routing identity remains the stable server-id + UUID pair.

Important cross-server compatibility requirement

Every server participating in cross-server DMs must run BlueMapWebChat 4.6.1.

Cross-server DM depends on the private relay protocol introduced for this release, so do not mix 4.6.1 with older BlueMapWebChat versions on participating servers.

After updating the plugin, fully restart each server. /bmchat reload does not replace the running plugin JAR.

Destination-server session creation

A successful cross-server DM is stored on the sender side and delivered through the signed private relay to the destination server, where the receiving user's corresponding thread becomes available.

If the receiving server does not create a session, see Troubleshooting.

Optional administrator DM audit

Disabled by default:

private-chat-super-admins:
  - "ExactMinecraftNameOrUUID"

direct-message:
  admin-audit:
    enabled: true

Both conditions are required. The audit view is read-only, and each page read is written to the configured audit log without copying DM bodies into that audit log.

Clone this wiki locally