From Chat4AllFAQ
Jump to: navigation, search

Flood Protection

Getting tired of those endless fights against floodbots or annoying users who like to flood your channel with nonsense or dangerous links? Chat4All provides several different ways to fight those spam/virus/floodbots on your own. Of course, if they are a long term issue, you can also contact the Network Staff.


The first protection is in the form of Watcher, a Chat4All Service which is operated by us. It should passively protect your channel against the worst attacks. For instance, in case it detects a join/part flood, it will temporarily lock your channel by setting channel modes +CKmic, which will automatically be unset again after a minute. However, you can also defend your channel yourself using some of the server-side flood protection features described in the rest of this article.

If you have legitimate high traffic in your channel and experience trouble with automatic locking of your channel, please contact us in the #help support channel, or open a ticket at http://support.chat4all.net so we can add your channel to the exclusion list.

Server-side Channel Flood-prevention channel mode

Non-standard channel modes

Our server supports some non-standard channel modes, such as:

 K : block /knock invite requests.
 N : block nick changes for users on this channel.
 C : block all CTCPs on the channel.
 M : only registered (+r) users can talk.
 f : flood settings. This is the one we are going to discuss.

The channel mode +f helps you protect your channel against floods, it's much faster and more advanced than any personal channel bot you can run. You can enable it with the following command:

 /mode #channel +f [action type[#counter action, (more)]:seconds

+f overview

Overview of the different flood types and their default actions

Code Effective against: Default action taken
c CTCPs +C (m,M)
j Joins +i (R)
k Knocks +K
m Messages/Notices +m (M)
n Nick changes +N
t Text kick or +b (ban)


What follows are several examples of the several +f flood protections that are available.

 ChanOp sets mode: +f [20j,50m,7n]:15
  Join flood example
  Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined #test
  Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test
  Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test
  Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined #test
  -- snip XX lines --
  Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has joined #test
  -irc.chat4all.net:#test *** Channel joinflood detected (limit is 20 per 15 seconds), setting +i
  irc.chat4all.net sets mode: +i
  Message flood example
  <Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
  <Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
  <Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
  <Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
  <Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
  -- snip XX lines --
  -irc.chat4all.net:#test *** Channel msg/noticeflood detected (limit is 50 per 15 seconds), putting +m
  irc.chat4all.net sets mode: +m
  Nick change flood example
  Evil1 is now known as Hmmm1
  Evil2 is now known as Hmmm2
  Evil3 is now known as Hmmm3
  Evil4 is now known as Hmmm4
  Evil5 is now known as Hmmm5
  Evil6 is now known as Hmmm6
  Evil7 is now known as Hmmm7
  Evil8 is now known as Hmmm8
  -irc.chat4all.net:#test *** Channel nickflood detected (limit is 7 per 15 seconds), putting +N
  irc.chat4all.net sets mode: +N

If you like to specify other counter action than the default ones, you have to modify the command, for instance:

 /mode #channel +f [20j#R,50m#M]15

means, after 20 joins in 15 seconds, the channel mode is set to +R (whereas the default would have been +i) and after 50 messages within 15 seconds, the channel will be set to +M (whereas the default would have been +m).

A useful feature for the more "forgetting types" is the auto remove, for instance:

 /mode #channel +f [20m#M10]:15

the message flood gets triggered by a total of 20 messages (of any user) within the trigger period. The channel mode +M will be set for 10 minutes, as indicated by the number right after the mode.

A last example to get the hang of it :

 /mode #channel +f [10j#i20,50m#M11,10c#C35,5n#N5,3k#K20]:15
  • All have a trigger time span of 15 seconds!
  • After 10 joins (within the 15 seconds trigger time span), #channel will get channel mode +i set for a period of 20 minutes.
  • After 50 messages (within the trigger time span), +M will become a channel mode on #channel and till it is removed by the server after 11 minutes
  • A maximum of 10 channel CTCP's are allowed within the trigger period of 15 seconds, before channel mode +C is set for 35 minutes.
  • A maximum of 5 nickchanges is allowed within the trigger period, before channel mode +N becomes effective for 5 minutes.
  • Limit to 3 /knock commands within 15 second, or +K channel mode gets set for a duration of 20 minutes.

Use the flood command wisely! If there is no operator (@,%,& or ~) in the channel, your channel could be locked for quite some time!

We hope this will help you protect your channel more effectively.

BotServ Kickers

If you have a BotServ bot on your channel, you can enable several automatic kick (and ban) functions such as automatic kicks/kickbans when a user sends n lines in m seconds.


gives the following information:

Syntax: KICK channel option parameters
Configures bot kickers.  option can be one of:
    BOLDS         Sets if the bot kicks bolds
    BADWORDS      Sets if the bot kicks bad words
    CAPS          Sets if the bot kicks caps
    COLORS        Sets if the bot kicks colors
    FLOOD         Sets if the bot kicks flooding users
    REPEAT        Sets if the bot kicks users who repeat themselves
    REVERSES      Sets if the bot kicks reverses
    UNDERLINES    Sets if the bot kicks underlines
Type /msg BotServ HELP KICK option for more information
on a specific option.
Note: access to this command is controlled by the
level SET.

BotServ Flood Kickers

For the Flood Kicker protection in particular (/BOTSERV HELP KICK FLOOD) this would be:

 Syntax: KICK channel FLOOD {ON|OFF} [ttb [ln [secs]]]
 Sets the flood kicker on or off. When enabled, this option tells the bot to kick users who are flooding the channel using at least ln lines in secs seconds (if not given, it defaults to 6 lines in 10 seconds).
 ttb is the number of times an user can be kicked before it get banned. Don't give ttb to disable the ban system once activated.

In more detail, you can automatically have someone kicked after he floods the channel with n lines within m seconds, and have them automatically banned after x kicks.


Let's explain it with a few examples for the example channel #kickmeplease:

If we just would want to automatically kick someone after the default flood limits (6 lines in 10 seconds) without banning, the following would suffice:

 /BOTSERV KICK #kickmeplease FLOOD ON

If you want to automatically ban a user after he has been kicked 3 times, with the default flood limits, use:

 /BOTSERV KICK #kickmeplease FLOOD ON 3

To automatically kick someone if he types 10 lines in 3 seconds, and want to ban him immediately without a warning kick, use:

 /BOTSERV KICK #kickmeplease FLOOD ON 1 10 3

To turn off the Flood-kicker at any time you you can issue:

 /BOTSERV KICK #kickmeplease FLOOD OFF