Compatibility
Minecraft: Java Edition
1.21–1.21.7
Platforms
Links
Creators
Details
Licensed MIT
Published last month
Updated last week
FamilyFriendly Plugin
A Minecraft plugin that ensures a safe and age-appropriate chat experience by filtering inappropriate words, links, and spam, with a full moderation and warning system.
Features
- Age verification system (players must set age on first join)
- Underage players are protected: Only underage players have their chat filtered and are warned/muted/kicked/banned for blocked words
- Adults chat freely: Adults see and send unfiltered chat, but are still subject to spam and link moderation
- Private message protection: If an adult sends a private message with blocked words to an underage player, the message is filtered for the underage recipient and the adult is warned/escalated
- Mute and shadow mute are separate: If a player is muted, they cannot chat at all. If shadow muted, their messages are only visible to themselves.
- Age-based chat filtering (blocked words, links, and server IPs)
- Configurable blocked words list
- Permission-based link bypass
- Private message filtering (with same filtering as public chat)
- Automatic age prompt and movement lock on first join
- Configurable replacement characters and warning messages
- Spam protection with separate escalation (warn → mute → kick)
- Mute, unmute, and timed mute commands (with short aliases)
- Persistent warning system (general and spam warnings saved across restarts)
- Escalation system: warn → mute → kick → ban for severe offenses (underage only, except for private messages to underage)
- Separate escalation for spam
- Admin commands to reset warnings and spam warnings
- View warnings for any player
- Enhanced logging system
Requirements
- Minecraft Spigot/Paper 1.21.X
Installation
- Download the latest version of the plugin jar file
- Place the jar file in your server's
plugins
folder - Restart your server
Configuration Files
- config.yml: All settings, thresholds, durations, and permissions
- blockedwords.yml: The list of blocked words
- messages.yml: All user-facing messages (customizable)
- players.yml: Stores player ages, warnings, and spam warnings
Main Commands
/age <age>
— Set or update your age/mute <player> <duration>
or/ffmute <player> <duration>
— Temporarily mute a player/unmute <player>
or/ffunmute <player>
— Unmute a player early/resetwarnings <player>
or/ffresetwarnings <player>
— Reset a player's general warning count/resetspamwarnings <player>
or/ffresetspamwarnings <player>
— Reset a player's spam warning count/familyfriendly reload
or/ff reload
— Reload plugin configuration/familyfriendly viewwarn <player>
or/ff viewwarn <player>
— View a player's general and spam warnings
Tip for staff: All moderation commands have short aliases (e.g.,
/mute
,/unmute
,/resetwarnings
,/resetspamwarnings
, and their/ff...
versions) for quick access.
How It Works
- First join: Players must set their age before chatting or moving.
- Chat filtering: Underage players have messages filtered for blocked words and links. Adults see and send unfiltered chat, but are still subject to spam and link moderation.
- Private message protection: If an adult sends a private message with blocked words to an underage player, the message is filtered for the underage recipient and the adult is warned/escalated.
- Mute and shadow mute:
- If a player is muted, they cannot chat at all and see a mute message.
- If a player is shadow muted, their messages are only visible to themselves (they are not notified).
- The two effects never overlap or conflict; mute always takes precedence.
- Spam protection: Repeated messages trigger a separate warning/mute/kick system (never bans for spam).
- Escalation: General offenses (cursing, links) escalate from warning to mute, kick, and finally ban (all configurable, underage only, except for private messages to underage).
- Warnings: All warnings are saved and persist across restarts. Admins can reset or view warnings for any player.
Permissions
All permissions are managed via LuckPerms (or your permissions plugin of choice). Assign as needed:
familyfriendly.age
: Allows players to set their agefamilyfriendly.reload
: Allows reloading the plugin configurationfamilyfriendly.link
: Allows players to share links and server IPsfamilyfriendly.op
: Bypass all FamilyFriendly restrictionsfamilyfriendly.mute
: Allows moderators to mute playersfamilyfriendly.unmute
: Allows unmuting playersfamilyfriendly.resetwarnings
: Allows resetting general warningsfamilyfriendly.resetspamwarnings
: Allows resetting spam warningsfamilyfriendly.viewwarns
: Allows viewing warning counts
Example LuckPerms Usage
lp user <player> permission set familyfriendly.mute true
lp group staff permission set familyfriendly.viewwarns true
Troubleshooting
- If players can't set their age: Ensure the plugin has write permissions in the plugins folder
- If chat filtering isn't working: Check config.yml and blockedwords.yml
- If private messages aren't being filtered: Check if players have set their age
- If configuration changes aren't applying: Use
/familyfriendly reload
to reload the settings
Logging
- All chat and private messages are logged to the server console
- Blocked and filtered messages are logged with warnings
License
This plugin is licensed under the MIT License.