FamilyFriendly
A Minecraft plugin that ensures a safe and age-appropriate chat experience by filtering inappropriate words for underage players.
FamilyFriendly
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) - View warnings for any player Only underage players have their chat filtered and are warned/muted/kicked/banned for blocked words - View warnings for any player Adults see and send unfiltered chat, but are still subject to spam and link moderation - View warnings for any player 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 - View warnings for any player 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 - View warnings for any player with separate escalation (warn → mute → kick) - View warnings for any player (with short aliases) - View warnings for any player (general and spam warnings saved across restarts) - View warnings for any player: warn → mute → kick → ban for severe offenses (underage only, except for private messages to underage) - View warnings for any player - View warnings for any player - View warnings for any player - Enhanced logging system
Requirements
- Minecraft Spigot/Paper 1.21.X
Installation
1. Download the latest version of the plugin jar file 2. Place the jar file in your server's `plugins` folder 3. Restart your server
Configuration Files
- players.yml: All settings, thresholds, durations, and permissions - players.yml: The list of blocked words - players.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
- Warnings: Players must set their age before chatting or moving. - Warnings: 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. - Warnings 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. - Warnings - 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. - Warnings: Repeated messages trigger a separate warning/mute/kick system (never bans for spam). - Warnings: 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 age - `familyfriendly.reload`: Allows reloading the plugin configuration - `familyfriendly.link`: Allows players to share links and server IPs - `familyfriendly.op`: Bypass all FamilyFriendly restrictions - `familyfriendly.mute`: Allows moderators to mute players - `familyfriendly.unmute`: Allows unmuting players - `familyfriendly.resetwarnings`: Allows resetting general warnings - `familyfriendly.resetspamwarnings`: Allows resetting spam warnings - `familyfriendly.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
All Rights Reserved
---