LoveLetter is a lightweight Minecraft love letter plugin for Paper / Folia 1.21 servers. Players can send love letters to specified players via command. Letter content can be randomly picked from a letter library, or custom content from a written book held in hand. After sending, a broadcast message is sent to all players with a clickable 【Open Letter】 button that anyone (including the recipient) can click to view the content.
| Feature | Description |
|---|---|
| Send Letter | Use /lletter <player> to send a love letter to a specified player |
| Random Letter | Randomly picks one letter from .txt / .letter files in the letters directory |
| Custom Book | When holding a signed written book, use its content as the letter (requires config) |
| Broadcast | Broadcasts a message to all online players with a clickable 【Open Letter】 button |
| View Letter | Click 【Open Letter】 to receive the letter as a book item or view in chat |
| Reload Library | Use /lletterreload to reload config, language, and letter files without restarting the server |
| Cooldown | Configurable per-player cooldown to prevent spam |
| Placeholders | Letters support %player_reciever%, replaced with the recipient's name |
| MiniMessage | Config supports MiniMessage format for gradients, bold, and more |
| Letter Expiry | Letters expire after 5 minutes in memory to reduce storage |
| Command | Permission | Default | Description |
|---|---|---|---|
/lletter <player> | lovletter.lletter.use | All players | Send a love letter to a player |
/lletterreload | lovletter.lletter.reload | OP only | Reload config, language, and letter library |
Config file: plugins/LoveLetter/config.yml
zh_CN, en_US), maps to .yml files in plugins/LoveLetter/language/true) or show in chat (false)0 for no cooldownAll UI text (broadcast, errors, book title, etc.) is in the language files under language/.
Letter files go in plugins/LoveLetter/letters/ with .txt or .letter extension. Default letters are extracted on first run.
Example letter (supports %player_reciever% placeholder):
Dear %player_reciever%:
In every sunset of this blocky world, I want to stand beside you.
May our story last as long as the Ender Dragon.
— Someone who admires you
LoveLetter has built-in multi-language support. Language files are in plugins/LoveLetter/language/:
Switch language
Set language: zh_CN (Simplified Chinese) or language: en_US (English) in config.yml, then run /lletterreload.
Built-in languages
zh_CN.yml: Simplified Chineseen_US.yml: EnglishAdd a new language
Copy zh_CN.yml or en_US.yml, rename to your language code (e.g. ja_JP.yml), translate the fields, and set language: ja_JP in config.yml.
Multi-language letters
Add letter files per language in letters/ (e.g. default_zh.txt, default_en.txt). All .txt / .letter files are loaded and randomly picked.
MiniMessage format
Language files support MiniMessage for <red>, <gradient:#ff6b9d:#c44569>, <bold>, etc.

Players can send love letters to specified players via command. Letter content can be randomly picked from a letter library, or custom content from a written book held in hand.