https://github.com/mrquackduck/messagesonhead
Minecraft Paper plugin (1.19.4+) that shows messages of players above their heads.
https://github.com/mrquackduck/messagesonhead
java messages minecraft papermc papermc-plugin
Last synced: 2 months ago
JSON representation
Minecraft Paper plugin (1.19.4+) that shows messages of players above their heads.
- Host: GitHub
- URL: https://github.com/mrquackduck/messagesonhead
- Owner: MrQuackDuck
- License: mit
- Created: 2025-02-03T09:05:39.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-06-24T15:57:07.000Z (about 1 year ago)
- Last Synced: 2025-06-24T16:48:11.812Z (about 1 year ago)
- Topics: java, messages, minecraft, papermc, papermc-plugin
- Language: Java
- Homepage: https://modrinth.com/plugin/messagesonhead
- Size: 104 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
MessagesOnHead
**MessagesOnHead** is a **Paper (1.19.4+)** plugin that shows messages above players' heads for a little time when they send messages to the chat.\
The plugin's functionality is based on the [Text Display](https://minecraft.wiki/w/Display#Text_Displays) entity.
> [!IMPORTANT]
> The plugin **might not work correctly** in Minecraft versions **1.20.2 to 1.21.5**. You may notice unusually large gaps between messages. Unfortunately, this issue cannot be fixed because of version-specific changes in these Minecraft versions.
>
> \* The last plugin version that supports **Minecraft 1.19.4 and above** is [Release 1.2.3](https://github.com/MrQuackDuck/MessagesOnHead/releases/tag/1.2.3).\
> **All newer** versions of the plugin require your server to be running **at least version 1.21.6**.
### 👀 Preview

### 🌠Key features
- **Limit per line**: you can configure the symbols limit for each line in the `symbolsPerLine` field.
- **Max symbols limit**: you can configure the max amount of symbols per message in the `symbolsLimit` field (_'...' will be appended if the limit is reached_).
- **Timer**: you can enable/disable the timer at the end of the message that shows how much time is left until the message is gone.
- **Time scaling**: you can make longer messages exist for more time.
- **Colors and style**: you can choose the color of the text, its background, whether the text is shadowed and the color for the timer.
- **Rotation**: you may configure how a text display will rotate in the `pivotAxis` field.
- **Visibility**: you may hide messages from their sender via the `visibleToSender` field as well as choose whose messages will be shown globally using the `messagesonhead.show` permission. It's also possible to toggle visibility via the `/moh toggle` command.
- **Adjustable gaps**: you may configure gaps between messages and above player's head in `gapBetweenMessages` and `gapAboveHead` fields.
- **PlaceholderAPI support**: you can configure a placeholder that will color your text displays.
### 🔞 Permissions
- `messagesonhead.show` _(**true** by default)_ — Whether messages will appear above player's head.
- `messagesonhead.toggle` _(**true** by default)_ — Whether players can use the `/moh toggle` command.
- `messagesonhead.admin` _(for **operators** by default)_ — Allows to use the `/moh` command.
### 💻 Commands
- `/moh info` — shows commands info.
- `/moh toggle` — toggles player's ability to see messages of players on their heads.
- `/moh reload` — reloads the config and makes a cleanup by removing all entities related to the plugin.
- `/moh say ` — says a message on behalf of the player.
Aliases: `/messagesonhead`.
### 📄 Default config
```yml
symbolsPerLine: 30
# If the limit is reached, the three dots will be added at the end. -1 means there's no limit
symbolsLimit: -1
# Initial amount of seconds for the message to exist
timeToExist: 2
# Whether a message will be visible to its sender
visibleToSender: true
# Whether a longer message will exist for more time
scalingEnabled: true
# Scaling coefficient per symbol in seconds. For example, a message with 50 symbols
# will exist for extra 5 seconds if the coefficient is set to 0.1 (because 0.1 * 50 = 5)
scalingCoefficient: 0.05
# Distances between messages / above player's head
gapBetweenMessages: 0.3
gapAboveHead: 0.4
textColor: "#FFFFFF"
timerEnabled: true
# Minimum message length threshold for the timer to be displayed
minSymbolsForTimer: 0
timerFormat: " (%.1f)"
timerColor: "#F4CA16"
backgroundEnabled: true
backgroundColor: "#000000"
# Range: [0, 100]
backgroundTransparencyPercentage: 100
# Whether a text will have a shadow
isShadowed: true
# How a text display can pivot:
# VERTICAL - Can pivot around vertical axis
# HORIZONTAL - Can pivot around horizontal axis
# CENTER - Can pivot around center point
# FIXED - No rotation
pivotAxis: "VERTICAL"
# You may enable this if you use a plugin for per-player chat color customization (e.g., EZColors, ChatColor etc.)
placeholderApiIntegration: false
# Name of a placeholder that will be put before each text line
colorPlaceholder: "%ezcolors_color%"
# Format for text lines if `placeholderApiIntegration` is true
lineFormat: "&[defaultColor]&[colorPlaceholder][message]"
messages:
"prefix": "F4CA16[MessagesOnHead]"
"info-title": " D9E6EDCommands list:"
"info-toggle-command-description": " &f/moh toggle - D9E6EDAllows you to toggle the visibility of messages on heads."
"info-reload-command-description": " &f/moh reload - D9E6EDReloads the config and makes a cleanup by removing all entities related to the plugin."
"info-say-command-description": " &f/moh say - D9E6EDSay a message on behalf of the player."
"reloaded": " D9E6EDReloaded!"
"visibility-toggled-on": " D9E6EDYou will &a&nnow seeD9E6ED messages over other players' heads."
"visibility-toggled-off": " D9E6EDYou will &c&nno longer seeD9E6ED messages over other players' heads."
"only-players": " &cOnly players can use this command!"
"player-not-found": " &cPlayer not found."
"command-not-found": " &cCommand not found."
"error-during-reload": " &cAn error occurred during reload! Check console for details."
```
### 🚀 Installation guide
> [!IMPORTANT]
> Before getting started, make sure that the plugin's version is **compatible** with your server version.
1. Download the latest version of the plugin from the Releases tab.
1. Put the downloaded `.jar` into the `/plugins` folder of your server.
1. Restart your server or enter the `/reload` command.