Custom Join MessagesPlugins · 1.12 – 26.xWelcome players with first-join, join, and quit messages, publicly or privately, via Chat, Titles, Action Bars, Boss Bars, and Sounds. Permission-based and…
Private messages with custom formats, sounds, an action bar, ignore, a PM toggle and social spy.
Direct download from Modrinth · 2 downloads
Direct Messages is a plugin for Paper / Spigot servers, made by andrey5650. Private messages with custom formats, sounds, an action bar, ignore, a PM toggle and social spy.
It supports Minecraft 1.21 – 26.x. It has been downloaded 2 times on Modrinth. That puts it at #149 of the 153 voice chat and social plugins listed here. The last update came out on Nov 5, 2026.
The newest is 1.0.0, released on Nov 5, 2026. It is made for Minecraft 1.21.7 – 26.3. It runs on Folia and Paper. The download is 58 KB.
| Version | Released | Minecraft | Type |
|---|---|---|---|
1.0.0 | Nov 5, 2026 | 1.21.7 – 26.3 | Release |
The commands named on the Modrinth page of Direct Messages:
/msg/tell/whisper/message/reply/ignore/block/msgtoggle/socialspy/directmessages/papiPermission nodes named there, to give with a plugin like LuckPerms:
directmessages.socialspydirectmessages.reloaddirectmessages.cooldown.bypassDirect Messages is open source. Its newest release on GitHub is First Release, published on Nov 5, 2026.
First release.
Private messages for Paper and Folia, with your own chat formats, sounds, an action bar notice, ignore, a PM toggle
and social spy.
Players message each other with /msg and answer with /r. The receiver sees the message in chat and on the action
bar and hears a sound; the sender hears a different one, and a third sound plays when something goes wrong. Hovering a player's name shows a card with their stats, and
clicking it starts a message to them.
the PM toggle or social spy
The default config uses these PlaceholderAPI expansions:
/papi ecloud download Player
/papi ecloud download Vault
/papi ecloud download Statistic
%vault_prefix% in name shows the player's rank prefix. It needs Vault and a permissions plugin with prefixes, such
as LuckPerms. Without PlaceholderAPI, placeholders are shown as typed, so set name to "{name}" and remove the
placeholder lines from hover.lines.
Command · Permission · Description
/msg · none · Sends a private message. Aliases: /tell, /whisper, /message, /w
/r · none · Replies to the last player you messaged or who messaged you. Alias: /reply
/ignore · none · Ignores the player, or stops ignoring them if you already do. Alias: /block
/ignore · none · Lists the players you ignore. Alias: /block
/msgtoggle · none · Turns receiving private messages off, or back on
/socialspy · directmessages.socialspy (op) · Shows you every private message between other players
/directmessages reload · directmessages.reload (op) · Reloads the config
directmessages.cooldown.bypass (op) · Sends messages without the cooldown
name: "%vault_prefix%{name}"
formats:
sent: "&#C77DFFTo &f{receiver}&7: &f{message}"
received: "&#C77DFFFrom &f{sender}&7: &f{message}"
spy: "&8[&#C77DFFSpy&8] &7{sender} &8→ &7{receiver}&8: &7{message}"
action-bar: "&#C77DFF✉ &fNew message from {sender}"
hover:
lines:
click: "/msg {name} "
sounds:
sent:
sound: entity.experience_orb.pickup
volume: 0.6
pitch: 1.4
received:
sound: block.note_block.pling
volume: 1.0
pitch: 2.0
error:
sound: entity.villager.no
volume: 1.0
pitch: 1.0
cooldown: 1.0
log: true
storage:
type: sqlite
mysql:
host: localhost
port: 3306
database: minecraft
username: root
password: ""
messages:
msg-usage: "&cUsage: /msg "
reply-usage: "&cUsage: /r "
not-online: "&c{player} is not online."
no-reply: "&cYou have nobody to reply to."
self: "&cYou can't message yourself."
not-accepting: "&cThat user is not accepting private messages."
you-ignore: "&cYou are ignoring {player}."
cooldown: "&cWait {seconds}s before sending another message."
ignore-on: "&7You now ignore &f{player}&7."
ignore-off: "&7You no longer ignore &f{player}&7."
ignore-self: "&cYou can't ignore yourself."
ignore-list: "&7Ignored players: &f{players}"
ignore-empty: "&7You don't ignore anyone."
never-joined: "&c{player} has never joined."
spy-on: "&aSocial spy on."
spy-off: "&cSocial spy off."
toggle-on: "&aPrivate messages on."
toggle-off: "&cPrivate messages off."
reloaded: "&aDirectMessages reloaded."
Key · Description
name · How a player's name looks in messages. {name} is the player's name; placeholders are filled for that player
formats.sent · What the sender sees
formats.received · What the receiver sees
formats.spy · What staff with social spy on see
formats.action-bar · The action bar line the receiver sees
hover.lines · The card shown when hovering a name. Placeholders are filled for the player whose name it is
hover.click · Typed into the chat box when a name is clicked. {name} is the player's name
sounds.sent / sounds.received · Any sound key, including resource pack sounds. Volume and pitch are numbers
sounds.error · Plays with every error message, like "You can't message yourself." or a player not accepting messages
cooldown · Seconds between two messages from the same player. 0 turns it off
log · Writes every message to plugins/DirectMessages/logs/.log
storage.type · sqlite (saved in plugins/DirectMessages/data.db) or mysql
In formats, {sender} and {receiver} are the two players' names, drawn with name, with the hover card and click.
{message} is the message text. It is never parsed for colors or placeholders, so players can't use them. A token
takes the color written before it.
When someone ignores you or has /msgtoggle off, you get the same not-accepting message, so you can't tell which.
An empty format, action bar, sound, hover.lines or hover.click turns that part off. An empty message in
messages is not sent. Changing storage needs a restart; everything else applies with /directmessages reload.
Requires JDK 25 or newer and Maven.
mvn package
The jar is written to target/.
Ask on my Discord: discord.gg/nRjDw9k2vJ
MIT
Written by andrey5650. Read it with pictures on Modrinth.
Make sure your server runs Paper and Spigot on Minecraft 1.21 – 26.x.
Download the .jar file from Modrinth and put it in the plugins folder of your server.
Restart the server. Avoid /reload, many plugins do not handle it well.
Type /plugins in the console: Direct Messages should be listed in green. Its config files are created in the plugins folder on the first start.
Full guide: How to install plugins on a Minecraft server
| Resource | Downloads | Versions | Last update | Price |
|---|---|---|---|---|
| Direct Messagesthe one you looked at | 2 | 1.21 – 26.x | 7 days ago | Free |
| 28K | 1.12 – 26.x | 25 days ago | Free | |
| 26 | 1.21 – 26.x | Oct 10, 2026 | Free | |
| 9 | 1.19 – 26.x | 12 days ago | Free |
Yes. Direct Messages supports Minecraft 26.x. All supported versions: 26.x, 1.21.
Yes. Direct Messages is free to download from Modrinth.
Direct Messages runs on Paper and Spigot servers.
Yes: PlaceholderAPI. Install it before Direct Messages.
Yes. The last update came out in the past day.
The closest ones are Custom Join Messages, Join Messages Plus and voxchat. Compare all alternatives
Custom Join MessagesPlugins · 1.12 – 26.xWelcome players with first-join, join, and quit messages, publicly or privately, via Chat, Titles, Action Bars, Boss Bars, and Sounds. Permission-based and…
Join Messages PlusPlugins · 1.21 – 26.xCustom join, leave and first-join messages with MiniMessage support.
voxchatPlugins · 1.19 – 26.xVoxChat is a server-side Minecraft plugin featuring local and global chat, private messaging, and customizable system notifications. Configure chat formats…
WhisperPlusPlugins · 1.16 – 26.xWhisperPlus moves private messages out of the cluttered chat and into a fully customizable action bar or chat format, with optional sounds. It also adds…
Voice MessagesPlugins · 1.21 – 26.xVoice messages in minecraft chat
CustomDiscs SVCPlugins · 1.16 – 26.xCustomDiscs (Simple Voice Chat) is a plugin that lets you play custom music in Minecraft using jukeboxes and discs.
Log in to leave a review.