!SendMSG
!Sent a message !Received a message !Subtitle
Lightweight, multilingual, fully customizable private messaging plugin for Spigot/Paper 1.21+
| Feature | Description |
|---|---|
| 📨 5 sending commands | /msg, /m, /tell, /w, /pm |
| 💬 Quick reply | /r or /reply – reply to the last sender |
| 🌍 3 languages | English, Ukrainian, Russian (change with /sendmsg lang) |
| 🛡️ Anti-spam | Configurable delay with bypass permission |
| 🔔 Sound alerts | Customizable sounds for sending and receiving |
| 📢 Subtitles | Popup notification when receiving a message |
| 🔕 Block PMs | /msgtoggle – disable incoming private messages |
| 👁️ SocialSpy | /spy – see all private messages |
| 🚫 Ignore system | /ignore – ignore/unignore players |
| ⏰ Auto-expire ignores | Ignore players with auto-removal after N days |
| 📁 Message logging | All PMs saved to logs/private.log |
| 💾 Ignore saving | Ignores stored in ignores.yml |
| 🧹 Auto cleanup | Automatic cleanup task every hour |
| 🎨 Fully customizable | All messages in messages/*.yml + color codes |
| 🔧 Lightweight | No external dependencies required |
| ⚡ EssentialsX compatible | Overrides EssentialsX private messages |
When you send a message:
✉ You -> Player: Hello!
When you receive a message:
✉ You have a message✉ Player writes you: Hello!→ Reply with: /r (text)ENTITY_EXPERIENCE_ORB_PICKUP⚠️ All text, sounds, subtitles, and colors can be changed in the configuration files.
| Command | Description | Aliases |
|---|---|---|
/msg <player> <message> | Send a private message | /m, /w, /tell, /pm |
/r <message> | Reply to the last sender | /reply |
/ignore <player> | Ignore/unignore a player (toggle) | /ig |
/msgtoggle | Disable/enable incoming private messages | – |
/spy | Toggle SocialSpy (see all PMs) | – |
/sendmsg lang <code> | Change plugin language | EN, UA, RU |
/sendmsg reload | Reload configuration | – |
/sendmsg help | Show help | – |
Language codes: EN (English), UA (Ukrainian), RU (Russian)
| Permission | Description | Default |
|---|---|---|
sendmsg.msg | Allows using /msg and /m | ✅ true |
sendmsg.reply | Allows using /r and /reply | ✅ true |
sendmsg.ignore | Allows using /ignore | ✅ true |
sendmsg.msgtoggle | Allows using /msgtoggle | ✅ true |
sendmsg.bypass.cooldown | Bypass the message cooldown | 👑 op |
sendmsg.spy | Allows using /spy (SocialSpy) | 👑 op |
sendmsg.admin | Access to /sendmsg lang and /sendmsg reload | 👑 op |
config.yml)# Plugin language: ru-RU, uk-UA, en-EN
lang: en-EN
# Delay between messages (seconds)
cooldown-seconds: 10
features:
subtitle: true # Show subtitle when receiving a message
subtitle-reply: true # Separate subtitle for replies
sound-receive: true # Play sound when receiving a message
sound-send: true # Play sound when sending a message
reply-hint: true # Show "/r" hint below incoming messages
cooldown: true # Enable message cooldown
msg-toggle: true # Enable /msgtoggle command
social-spy: true # Enable /spy command
log-to-file: true # Save all PMs to logs/private.log
sound:
receive:
name: ENTITY_EXPERIENCE_ORB_PICKUP
volume: 1.0
pitch: 1.2
send:
name: ENTITY_VILLAGER_WORK_CARTOGRAPHER
volume: 1.0
pitch: 1.0
# Ignore settings
ignore:
# Auto-remove ignore after N days (0 = forever)
auto-expire-days: 7
📝 Message formats (messages/en-EN.yml)
format:
incoming: "&2✉ &f&l{from} &7writes you: &f{message}"
reply-hint: "&2→ &7Reply with: &b&n/r (text)"
outgoing: "&2✉ &7&lYou &7-> &f&l{to}&7: &f{message}"
spy: "&8[SPY] &7{from} -> {to}: {message}"
console-name: "Console"
subtitle: "&2✉ &7You have a message"
subtitle-reply: "&2✉ &7Someone replied to you"
📝 Message formats (messages/uk-UA.yml)
format:
incoming: "&2✉ &f&l{from} &7пише вам: &f{message}"
reply-hint: "&2→ &7Для відповіді: &b&n/r (текст)"
outgoing: "&2✉ &7&lВи &7-> &f&l{to}&7: &f{message}"
spy: "&8[SPY] &7{from} -> {to}: {message}"
console-name: "Консоль"
subtitle: "&2✉ &7Вам повідомлення"
subtitle-reply: "&2✉ &7Вам відповіли"
📝 Message formats (messages/ru-RU.yml)
format:
incoming: "&2✉ &f&l{from} &7пишет тебе: &f{message}"
reply-hint: "&2→ &7Для ответа: &b&n/r (текст)"
outgoing: "&2✉ &7&lВы &7-> &f&l{to}&7: &f{message}"
spy: "&8[SPY] &7{from} -> {to}: {message}"
console-name: "Консоль"
subtitle: "&2✉ &7Вам сообщение"
subtitle-reply: "&2✉ &7Вам ответили"
Color codes: &0-9 &a-f &k-o &r
SendMSG.jarplugins/ folderconfig.yml or messages/*.ymlHow do I change the language?
Use /sendmsg lang EN (English), /sendmsg lang UA (Ukrainian), or /sendmsg lang RU (Russian)
How do I disable sounds?
Set sound-receive: false and sound-send: false in config.yml
How do I remove the cooldown?
Set cooldown-seconds: 0 in config.yml or give players the sendmsg.bypass.cooldown permission
How does /ignore work?
/ignore <player> adds a player to your ignore list. Use the command again to unignore them.
Can ignores expire automatically?
Yes! Ignores are automatically removed after auto-expire-days.
Can I block all private messages?
Yes! Use /msgtoggle – nobody will be able to message you until you enable it again.
What is SocialSpy?
Admins with sendmsg.spy can use /spy to see all private messages on the server.
Where are private messages stored?
All PMs are logged in:
plugins/SendMSG/logs/private.log
Does it work with EssentialsX?
Yes! SendMSG intercepts private messages before EssentialsX, so you can use both.
Can the console send messages?
Yes – the console can use /msg <player> <message> just like a player.

SendMSG – Private Messaging for Your Server