Update: 2023-04-20 - PwnFilter EOL Statement
Major changes to chat from Mojang that include chat reporting and signed messages may render PwnFilter no longer usable. The developers of PwnFiilter have not maintained the plugin since 2016, and it has continued to work up until now. We don't see a new version coming out anytime soon and urge server owners to find an alternative. We hear good things about VentureChat - https://www.spigotmc.org/resources/venturechat.771/
PwnFilter is way more than just your average word-blocking plugin, PwnFilter uses the power of Regular-Expressions ("RegEx") to give you a highly effective and highly configurable plugin to filter anything you want from chat! Matching words can be rewritten, logged, blocked, and managed, depending on the rules you define. Use PwnFilter for:
- Extremely effective chat/command filtering: Filter anything you want with RegEx!
- Extremely effective curse/swear word filtering, warn users who use bad language, turn their profanities into harmless language, or just deny their message entirely!
- Assign appropriate punishment levels based on severity.
- Anti-Advertisement: IP/URL filtering
- Make fun chat replacements for your server's inside-jokes.
- Single line spam filtering: Remove repetitive characters like hiiiiiiiiiiiii to hi.
- CAPS Blocking capability
- Typo correction: Replace common and annoying typos like "teh" to "the" or "u" or "you"
- Customizable warning messages
- Command aliases: Automatically recognize a !command and change to /longer command, Stop yourself from accidentally sending those embarrassing .commands to chat for everyone to see.
- A few built-in punishments like burn, kill, fine (charge money!), warn, kick, and ban. Or simply utilize the "then console" action to make your server console execute almost any command from any other plugin as if you typed it yourself in the console window, especially if you use a plugin that adds a plethora of punishments, like PunishMental, or use it to make PwnFilter send the appropriate commands to your favorite ban-management system to let it handle what to do!
Think of this plugin as a platform for the power of RegEx, the matching rules are 100% entirely up to you, and there are a hundred ways to do something. The possibilities are endless, the power is as dynamic as you want it to be depending on how much effort you put into having the best RegEx rules.
PwnFilter is a revival and complete rewrite of the RegexFilter plugin by FloydATC. Thanks to DreamPhreak for helping with this Bukkit page, to Sage905 for taking over the latest branch of development making PwnFilter even better than ever, and to EpicAtrain for developing comprehensive regex rules for server owners to use.
- (of course)
- (Coming in next version!)
- Built-in anti-spam feature can be enabled in config.
- Commands for OP or by permission node.
- Supports color message replacement.
- Globally clear all player's chat windows with "/pfcls".
- Global mute with "/pfmute" - stops all server chat and commands for making admin announcements.
- Command typos beginning with certain characters can be stopped (like . and 7, accidentally instead of / and &).
- Optionally recover those typos and execute the command as intended.
- Define your own macros or command aliases.
- Simple but powerful configuration with built-in debugging.
- Each regular expression is compiled only once => very fast.
- Able to reload all your PwnFilter rules & config files without needing to restart the server with "/pfreload".
- Optionally kick or warn players on rule matches AND/OR:
- Execute commands from console or other plugins.
- Use randrep action to replace swears with a random multiple option.
- Use lower action to replace text to all lowercase (great for those CAPS chatters).
- True command aliases, link faux commands like /wave to /me waves at you.
- Customizable 'permission denied' messages
Issues & Conflicts
Plugin Conflicts: If you notice that PwnFilter conflicts/interferes with another chat-related plugin, edit your config.yml, go to the "ADVANCED" section at the bottom, unhide the priority you want to change (by removing the # in front of the line), and change the priority from the default setting "Lowest" to another setting like "Highest". This can sometimes resolve conflicts, otherwise ask on our forum or create a ticket.
Permission Bypass: The permission node pwnfilter.bypass is automatically granted to OP and players with * permission nodes. If you do not want these players bypassing the filter at all, you must negate this permission node for them in your Permissions Plugin's files.
This plugin utilizes Hidendra's plugin metrics system, which means that some information is collected and sent to mcstats.org. If you wish to disable this feature, you can do so by opting out, which you can do in the PluginMetrics' config file under /YourServer/plugins/PluginMetrics/
Links & Info
- PwnPlantGrowth - Customize, modify, block all plant growth with varying configurations, including biome based and light level based farming.
- PwnChickenLay - Configure or block how fast chickens can lay eggs, or replace eggs with other items like diamonds, bricks, anything you can think of.
- ResPwn - Configure useful and fun player respawn options like temporary forcefields, armor and weapons.
- PwnPvpBalance - Balance the tide of uneven game mechanics with options to help players with poor PvP skills be more competitive, and give good players a better challenge.
- PwnFilter Regex Forum - Have questions about using RegEx or want to show your rules.txt off? Visit our RegEx forum here on DBO!
- Pwn9.com - Visit the Pwn9 Gaming Community, the place we call home. Check out our Minecraft servers, other game servers and fun gaming community.
- Discord Server: Join us @ https://discord.gg/qde6rVn - feel free to ask PwnFilter or RegEx questions on the channel or just come hang out with us.
- Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk. ci.sagely.ca
All of our "Pwn-" plugins are completely free of charge. We work hard to bring you the best, powerful, and up-to-date plugins. If we have helped you in any way, please consider a donation of any amount (Using the "Donate" button on the top-right of this page, or clicking HERE). All donations are GREATLY appreciated for all of the time that goes into this plugin and support.
EpicATrain's version 10.0 filter has been temporarily removed, due to a few issues. The classic language filter is still available here: http://pastebin.com/u/EpicATrain
Confirmed still working on 1.15.2
Check my post on Spigot here: https://www.spigotmc.org/threads/pwnfilter.139854/page-2#post-3840748
Anyone has test it on 1.14?
Any idea as to why repeated chat is not being filtered (standard) and me as owner having the Pwnfilter.admin permission still get burned if i ask for op or plugins.... (which i know how to avoid)
Clearly something is bugging it...
Hi! Quick question. I have the filter set to block numerical IP's as well, but players are doing set 3,4,5,6 and things like that to get the random pattern from worldedit, but it's getting blocked by the filter. Is there a way to block the filter from scanning set? Thanks!
Edit: Lol I was just looking through the config and the exact example of set was used. Thank you anyways!
then randrep fudge|frack|ferp|fork|fnarg
then warn Watch your language please
use then warn
'I personally endorse piracy, but that's just because I'm a dick and has nothing to do with this conversation.'
We can both agree on your point there.
"I never let any filter ban a player, all bans are done manually. No filter will ever be perfect, there will always be a way around what every text filter you put in place."
Glad we could agree on that. That is exactly why I wanted the silent filtering feature in the first place.
"We don't tolerate advertising, offensive behaviour language, stealing, griefing etc."
Don't expect every server to be like yours. I too have my standards, however no part of them require the players to be entirely swear-free, or to follow every single rule to the most precise of extents. Shit happens and normal, adult men and women I trust to be able to handle things such as 'offensive language'
"There is no way I will lower the standards just to keep up player numbers. If a player does that once when the rules are very clear and simple, how can you trust them in the future?"
No-one has said a word about lowering standards. I've mentioned that I do not desire advertisers to be aware of advertising filters.
How can I trust people after they've done a shitty thing? Frankly, I don't need to. Anything they do can be reversed with a handful of commands. Except for advertising, that is.
"Its no big deal other players seeing the occasional spam message, especially if they see they are immediately banned."
If an occasional spam message justifies a ban, I'm not exactly sure if I'm on the same page with you, regarding the severity of punishments.
"Even if a player sees the advertising for another server, so what? If they decide to go because someone they don't know said 'Join the best server in the world 'cause its better than here', so what? If they want to go they will and I'll be happy about that as I want long term reliable players, the players always looking for a better server will never contribute to the community you have in any way."
They won't go because "it's better than here", they will go because they'll be getting a free op, a big, bold, dark red Admin tag, and a load of unwarranted self-importance.
To me the issue is slightly more complicated than a mere equation of (playercount = size of e-penis). Every player interacts with one another, and when one leaves, the entire community notices it - often negatively, more scarcely positively. This is obviously something I want to avoid. If someone wants to leave, they'll google another server and leave, and I'm fine with that. But another server directly leeching off my playerbase, with malicious intent? How about no.
"Running a server in offline mode is just asking for problems"
Perhaps. But I have been in the offline-mode server business for quite a while, and have gotten the hang of things. No problem is unsolvable, it just takes a little effort, experience, innovation and dedication.
"I assume you are catering for those who don't have a legitimate account to encourage piracy?"
Yes and no. I cater to the people who want to play the game, but for some reason could not, or would not buy a premium account. Just because someone's mommy doesn't want to give a multi-million company 20 more dollars doesn't mean that someone should be utterly unable to have fun with his friends online.
I personally endorse piracy, but that's just because I'm a dick and has nothing to do with this conversation.
"I will never tolerate any of the above points just to keep player numbers up"
Nor will I. I tolerate them because I host a safe haven for those people who are tired of uptight staff banning on the spot for saying "shit".
"how high you set the standards determines the type of players you get to keep. You want a reliable, constant trustworthy group of players, then get rid of the rubbish as fast as possible."
The rubbish will get rid of itself. They want to play anarchy with no rules? They go and play it. They want to be a dick to everyone? They'll leave or change once the autonomous self-moderation system run by the players makes it clear to them that it's not beneficial.
"My server receives enough in donations (with no game advantage or restriction as required by the EULA) that the server rental is always covered each month, in fact we have the next two years rental and domain name costs already covered."
How grand, it's time to measure e-penises on the basis of how much money do we get online from our playerbases. I can proudly state 25cm and add that I also have obtained during the past 12 months enough donations to keep the server up and running until 2019.
"Now tell me how badly I'm running the server."
If it makes you feel any better, I did not at any point state your way of running the server is bad, or below average - I actually didn't talk about it at all.
I just said your policy regarding advertising is a horrible, horrible idea for my needs. Which is true, may I add.
I never let any filter ban a player, all bans are done manually. No filter will ever be perfect, there will always be a way around what every text filter you put in place.
If you did your research you will find I have been running a server (the same server) longer than most servers online. I don't pretend to be a big server as far as player numbers go, however our standards are higher than most. We don't tolerate advertising, offensive behaviour language, stealing, griefing etc. There is no way I will lower the standards just to keep up player numbers. If a player does that once when the rules are very clear and simple, how can you trust them in the future?
Its no big deal other players seeing the occasional spam message, especially if they see they are immediately banned. Even if a player sees the advertising for another server, so what? If they decide to go because someone they don't know said 'Join the best server in the world 'cause its better than here', so what? If they want to go they will and I'll be happy about that as I want long term reliable players, the players always looking for a better server will never contribute to the community you have in any way.
Running a server in offline mode is just asking for problems, I assume you are catering for those who don't have a legitimate account to encourage piracy?
I will never tolerate any of the above points just to keep player numbers up, how high you set the standards determines the type of players you get to keep. You want a reliable, constant trustworthy group of players, then get rid of the rubbish as fast as possible. Your long term players will thank you for the high standard you set. My server receives enough in donations (with no game advantage or restriction as required by the EULA) that the server rental is always covered each month, in fact we have the next two years rental and domain name costs already covered. Every player can clearly see the donations, expenses and remaining credit.
Now tell me how badly I'm running the server.
@markdf "I find a zero tolerance policy is very effective, anyone tries to get around the filter, ban them."
That is one of the worst policies I have ever heard of.
Firstly, I am running a server in offline mode, so if some guy joins in order to advertise and gets banned, they will just make a new account.
However, if an actual player gets banned due to a false positive, they will have to go through an unban appeal procedure on the forums, which will take time.
"Make an example of them, on my server there is no warning, no 2nd chance, banned forever."
Make an example of them? Do you think the people who join with the sole purpose to advertise care about getting banned? I trust my userbase enough not to advertise.
"IE problem solved."
No. Problem made even worse than before. Advertisers can still advertise, while legit players get randomly banned.
It is obvious that you are either extremely new to how advertising works, or are running a premium server. This is how advertising works: PlayerA from ServerA joins ServerB. PlayerA tells the people on ServerA to join ServerB. ServerA staff does not want this to happen, so they take precautions.
1Possibility 1: PlayerA's message is blocked by the anti-advertising plugin. PlayerA is not banned. They will attempt to bypass the filter. With due time, they will bypass the filter. ServerA loses players.
Possibility 2: PlayerA's message is blocked and they are banned by the plugin. PlayerA makes a new account and joins back in. They will attempt to bypass the filter. With due time, they will bypass the filter. ServerA loses players.
Possibility 3: PlayerA's message is blocked silently - PlayerA can see his message, but noone else can. PlayerA is unaware of being filtered, and will proceed to spam their advertising messages. PlayerA considers their job to be done, and leaves to assault another server. ServerA population is entirely unaware this ever happened.
I find a zero tolerance policy is very effective, anyone tries to get around the filter, ban them. Make an example of them, on my server there is no warning, no 2nd chance, banned forever. IE problem solved.
Does this plugin have a silent blocking feature? A feature where the offending message is omitted for everyone else, except for the offender themselves?
In my opinion, any and all filter plugins are utterly and completely useless without such a function, since it is always possible to get past even the best of RegEx filters.
And when someone knows they've been blocked from chat, guess if they'll try to bypass the filter.
Either disable the signfilter in your config.yml, or look through your rules files for something that says: "then warn Only American English ASCII Characters Are Allowed", and remove it.
I've got the same issue ;-; I dont know what to do
Hi! I keep having an issue with signs. Whenever players try to place a sign they get an error message saying "I'm Sorry, But Only American English ASCII Characters Are Allowed." What do I do?
No problem for me. I suggest you remove the plugin for a couple of days, sometimes other plugins are actually the problem making it appear the problem is with a plugin that has no problems.
Sage isn't online right now, but I'll let him know as soon as he gets online. If you could make a ticket in the meantime, that would be great: http://dev.bukkit.org/bukkit-plugins/pwnfilter/tickets/
Hello, We're having a crash issue on my server, and we believe it is due to PwnFilter. Perhaps someone here can help me resolve this? Basically, the server crashes a few times a day, and each time, we get an error in the console from PwnFilter. We're running version 3.9.1. Any help is greatly appreciated. Thanks!
just got this to work. its fantastic.
edit: erased a huge request that pwnfilter already handles
Yes, I tried doing this once and it was tough to do, especially when using other chat plugins. I will think about it again though.
Yes. You can use permissions for this. Just add:
And give your mods the "pwnfilter.mods" permission. You can use any permission. It doesn't have to be pwnfilter.mods. It can be anything you want, including an existing permission that your mods already have.