PrivateMessages
3.4Private messaging plugin | History, sound notifications, vanish, proxy support and more.
3.4latest3.4 [Bukkit servers]Jul 16, 2026 This is a small update which contains changes to ReplyCommandMode setting. This feature was added in 3.2 and allowed to select how plugin picks target for /reply command. It was possible to set this feature in two ways, but none of them worked like it used to before. Added possibility to set value for ReplyCommandMode setting in config.yml to 3 which matches plugin’s original behavior from before 3.2 update, so the /reply target in that case will be always the last player we had a conversation with (no matter if that player was a message sender or recipient). This will be also a default for fresh plugin installations.
This update is for both Bukkit and proxy servers.# Default behavior of reply command. # 1 - reply to the last player you sent a message to; if none, reply to the last player who sent you a message # 2 - reply to the last player who sent you a message # 3 - reply to the last player you had a conversation with (sent or received message) # This setting is ignored when Integration.<plugin>.RespectReplyCommandConfig is set to true ReplyCommandMode: 33.3PrivateMessages Bukkit - 3.3Jul 9, 2026 This update is for Bukkit servers only. Plugin for proxy servers hasn't changed and latest version for those remains 3.2. 1. Added PlaceholderAPI plugin integration. It is possible to use extra placeholders inside of following messages in lang.yml file: MESSAGE_TO_FORMAT, MESSAGE_FROM_FORMAT, MESSAGE_TO_OFFLINE_FORMAT Example use: (Original code):
Let's use Essentials' nickname instead of player name:MESSAGE_TO_FORMAT: "&6&l[&f&lPM&6&l] &cto &b<player>&f: &6<message>"
Other than that, PrivateMessages brings its own placeholders which can be used anywhere: %privatemessages_last_message_sender% - returns player’s last messsage sender’s name (only during current server session) %privatemessages_last_message_recipient% - returns player’s last messsage recipient’s name (only during current server session) %privatemessages_unread_messages_count% - returns number of messages player has received when offline and still not marked as read by executing /pmclear command %privatemessages_message_notification_sound_number% - returns identification number of sound selected for incoming messages to player %privatemessages_message_notification_sound_enabled% - returns true when player has enabled incoming messages sound %privatemessages_spy_enabled% - returns true when player has spy mode enabled %privatemessages_messages_enabled% - returns true when player has enabled sending/receiving private messages %privatemessages_tips_enabled% - returns true when player has enabled receiving plugin tips %rel_privatemessages_messages_exchanged% - relational placeholder; returns number of all messages sent between two given players %rel_privatemessages_player_ignored% - relational placeholder; returns true when player passed as second argument is ignored by player passed as first argument – this makes checks within PrivateMessages plugin only, doesn’t look for other plugins’ ignores e.g. Essentials’ ignores, even when PrivateMessages integrates with this plugin 2. Updated config.yml file by adding „Integration.PlaceholderAPI” section to let server admins configure some details:MESSAGE_TO_FORMAT: "&6&l[&f&lPM&6&l] &cto &b%essentials_nickname%&f: &6<message>"
3. Updated lang.yml file by adding following text: (Modern formatting)Integration: PlaceholderAPI: # How long to wait after last retrieval of unread messages count for given player from database before retrieving it again UnreadMessagesCountUpdateIntervalSeconds: 30 # How long to wait after last retrieval of count of messages exchanged between two players from database before retrieving it again MessagesExchangedUpdateIntervalSeconds: 30
(Legacy formatting)MESSAGE_TO_NOTPLAYER_FORMAT: "<gold><b>[<white><b>PM<gold><b>] <reset><red>to <aqua><recipient><white>: <gold><message>" MESSAGE_FROM_NOTPLAYER_FORMAT: "<gold><b>[<white><b>PM<gold><b>] <reset><green>from <aqua><sender><white>: <gold><message>"
4. Fixed displaying of few unnecessary debug messages during plugin load. 5. Fixed issues when running plugin on some Folia forks.MESSAGE_TO_NOTPLAYER_FORMAT: "&6&l[&f&lPM&6&l] &cto &b<recipient>&f: &6<message>" MESSAGE_FROM_NOTPLAYER_FORMAT: "&6&l[&f&lPM&6&l] &afrom &b<sender>&f: &6<message>3.2PrivateMessages Velocity - 3.2Jun 21, 2026 Latest public release of plugin. First upload to Modrinth.
Similar projects
Plugin →Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Plasmo Voice
A proximity voice chat mod with audio positioning and lots of features
4.1MSueta