Version 1.7.0

Last revised by Fredfred () and h () on 2018-12-29

Originally written by h () on 2018-10-05

Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.


A common question on DALnet is: "How can I stop floodbots from attacking my channel?". This document attempts to help stop or at least minimize the flooding. It explains the new eXtended flags command and how it exactly works, and why it might be needed in the channel.


1 · What is XFLAG?

The XFLAG is a command that prevents floodbots or annoying users from abusing your channel with unwanted messages or notices. The extended channel flags can be set by the managers or the founder only.

NOTE: This feature can help you to avoid attackers from abusing your channel, and it can make your channel more secured. For more information please read the article https://www.dal.net/kb/view.php?kb=414

2 · Do I need XFLAG?

In most cases, the answer is "no". DALnet's Channel modes are designed to prevent floodbots from joining your channel and stop them from their misbehavior. In fact, you can still set your channel to +RM. Read more about channel modes in http://docs.dal.net/docs/modes.html.

There are many options and values for extended flags in your channel, and they are all going to be explained one by one in this FAQ. We will also show you how to set your channel XFLAG to the recommended options which will protect your channel from being abused, or reset it to default option. Please check our special eXtended Flags at section 5

3 · How to check a channel eXtended flags

To check a channel XFLAG, you will need to be at least an AOp to issue the command.

XFLAG Command: /msg ChanServ@services.dal.net XFLAG #channel-name

Below is an example of what the XFLAG INFO request may return as an information for the channel #docsteam:

-ChanServ- XFLAGs for the channel #docsteam:
-ChanServ- TALK_JOIN_TIME: 60
-ChanServ- NO_NOTICE: On
-ChanServ- NO_CTCP: On
-ChanServ- NO_PART_MSG: On
-ChanServ- NO_QUIT_MSG: On
-ChanServ- NO_NICK_CHANGE: Off
-ChanServ- NO_UTF8: On
-ChanServ- NO_VPNS: Off
-ChanServ- NO_SHELLS: On
-ChanServ- AUTOMSG: On
-ChanServ- USER_VERBOSE: Off
-ChanServ- End of list.

NOTE:In this example, users will only be able to join the channel after being online for 30 seconds and will only be able to talk on the channel after 60 seconds (+r'ed users and users with identd will be exempted from both, while voiced+opped users will be exempted from the 30 seconds delay). In fact, you can use a recommended eXtended flags, for more information please check section 5.

4 · What is the XFLAG Command?

Syntax: /msg ChanServ@services.dal.net XFLAG #channel option:value [...] option:value

You can set an option and value to extend the security for your channel, and here is an example of JOIN_CONNECT_TIME and NO_NOTICE all in a row:

Example: /msg ChanServ@services.dal.net XFLAG #docsteam JOIN_CONNECT_TIME:10 NO_NOTICE:ON

For more information about how to add in a row /msg ChanServ@services.dal.net XFLAG HELP.

4.1 Join connect time

Syntax: /msg ChanServ@services.dal.net XFLAG #channel JOIN_CONNECT_TIME:VALUE

Information: Number of seconds the user must be online in DALnet network to be able to join your channel. For example, if you want users to stay 10 seconds in a queue before they join your channel, you need to change the word VALUE to 10.

4.2 Talk connect time

Syntax: /msg ChanServ@services.dal.net XFLAG #channel TALK_CONNECT_TIME:VALUE

Information: Number of seconds the user must be online in DALnet network to be able to talk on your channel. For example, if you want users to wait 30 seconds before they talks in your channel, you need to change the word VALUE to 30.

4.3 Talk Join time

Syntax: /msg ChanServ@services.dal.net XFLAG #channel TALK_JOIN_TIME:VALUE

Information: Number of seconds the user must be on the channel to be able to talk on your channel. For example, if you want users to be muted for 15 seconds after they join your channel, you need to change the word VALUE to 15.

4.4 Notice

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_NOTICE:ON/OFF

Information: You will prevent anyone from sending notices to your channel.

4.5 CTCP

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_CTCP:ON/OFF

Information: You will prevent users from sending CTCP to check other users info like ping, time, version, userinfo or clientinfo on your channel.

4.6 Part Messages

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_PART_MSG:ON/OFF

Information: Part messages from users that leave the channel will not be shown to the users who are in your channel.

4.7 Quit Messages

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_QUIT_MSG:ON/OFF

Information: You will not see any quit message from quitting users in your channel unless you turn this option OFF.

4.8 Changing Nicknames

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_NICK_CHANGE:ON/OFF

Information: Users will not be allowed to change their nicks while this option is set to ON.

4.9 Encoding/Unicodes

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_UTF8:ON/OFF

Information: All messages with strange characters (Hebrew/Arabic/UTF8) are suppressed in channel when this option is set to ON.

4.10 VPNs

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_VPNS:ON/OFF

Information: No connections from public VPN services will be allowed when you set this option to ON. A virtual private network (VPN) is a technology that creates a safe and encrypted connection over a less secure network.

4.11 Shells

Syntax: /msg ChanServ@services.dal.net XFLAG #channel NO_SHELLS:ON/OFF

Information: If this option is set ON, no connections from shell providers will be allowed in the channel. A shell is used to connect to DALnet with a remote hosts using the connection from the shell provider.

4.12 Exempt Opped

Syntax: /msg ChanServ@services.dal.net XFLAG #channel EXEMPT_OPPED:ON/OFF

Information: You can exempt your ops from other channel XFLAG options you have set.

4.13 Exempt Voiced

Syntax: /msg ChanServ@services.dal.net XFLAG #channel EXEMPT_VOICED:ON/OFF

Information: You can exempt voiced users from your channel XFLAG options you have set.

4.14 Exempt Identd

Syntax: /msg ChanServ@services.dal.net XFLAG #channel EXEMPT_IDENTD:ON/OFF

Information: Your users with ident ON will be exempted from your channel XFLAG options you have set.

4.15 Exempt Registered Nicks

Syntax: /msg ChanServ@services.dal.net XFLAG #channel EXEMPT_REGISTERED:ON/OFF

Information: Users with the umode +r will be exempted from your channel XFLAG options you have set.

4.16 Exempt Invited Users

Syntax: /msg ChanServ@services.dal.net XFLAG #channel EXEMPT_INVITES:ON/OFF

Information: Users with the channelmode +I will be exempted from your channel XFLAG options you have set.

4.17 Exempt Webirc Users

Syntax: /msg ChanServ@services.dal.net XFLAG #channel EXEMPT_WEBIRC:ON/OFF

Information: Users who connect to DALnet via the webirc will be exempted from other channel XFLAG options you have set.

4.18 Automsg

Syntax: /msg ChanServ@services.dal.net XFLAG #channel AUTOMSG:ON/OFF

Information: Users will get a pre-defined greetmsg ("This channel is protected due to abuse, you may need to wait X seconds before being able to talk!") when they join the channel, if you have set the mode ON.

4.19 Hide Mode Lists

Syntax: /msg ChanServ@services.dal.net XFLAG #channel HIDE_MODE_LISTS:ON/OFF

Information: This mode will hide the following mode-lists from all non-ops of your channel when its set ON: +b/+I/+e .

4.20 User Verbose

Syntax: /msg ChanServ@services.dal.net XFLAG #channel USER_VERBOSE:ON/OFF

Information: If this mode is set, it will send failed command messages to #channel-relay.

4.20.1 ·What is #channel-relay ?

When the option USER_VERBOSE is set to ON, failed messages and failed join attempts to your channel will be relayed to #channel-relay. If #channel-relay is NOT registered, then only AOP+ of the main #channel and IRC Operators can join #channel-relay. If #channel-relay IS registered, then it works like a normal channel and anyone can join unless RESTRICT is set to on and/or mode/MLOCK restrictions (+i, +k, etc.) are on. #channel-relay can only be registered by the founder of the main #channel.

5 · Special XFLAG

DALnet has designed special flags for the channels that are being flooded. In fact, you can also set your own desired options with the special eXtended flags.

5.1 Recommended

Syntax: /msg ChanServ@services.dal.net XFLAG #channel RECOMMENDED

Information: Recommended option will stop unwanted users who join your channel for flooding from talking for 30 seconds and will prevent them from sending any notice or ctcps to channel users. Exempted from that are opped, voiced, registered and invited users. All those options can be set using this one command.

5.2 Default

Syntax: /msg ChanServ@services.dal.net XFLAG #channel DEFAULT

Information: This option will reset all eXtended flags to off and 0.

6 · Frequently Asked Questions

In Sunday, the 25th of November 2018, DALnet planned for services training session about the new DALnet Services features!. The session was about XFLAG and others features that were not released yet. At the end of the session, DALnet did a Frequently Asked Questions session, and in this section you will read some of users questions

Q: What works best for JOIN_CONNECT_TIME and is the value in seconds?

A: /ChanServ XFLAG #channel JOIN_CONNECT_TIME:30 and Yes its in seconds.

Q: Can we change GREETMSG?

A: No, you can only use a default premade greeting with the following command. /ChanServ XFLAG #channel AUTOMSG:ON

Q: Is there a maximum integer value for any of the time settings?

A: Any number between 0 to 2592000 should be fine

Q: Does blocking CTCP also block CTCP ACTION (aka a /me command)?

A: Yes, NO_CTCP also blocks actions (/me something)

Q: What about the channels that the founders and managers are away. How can the ops set these commands to prevent flooders?

A: A channel must have a founder set, you should be able to send a memo to the founder. If you can't reach the founder at all, join #OperHelp and we will try to help you.

Q: Could add a help to show what RECOMMENDED does, assuming it will change

A: The recommended feature currently enables the following xflags:


Q: What could XFLAG do, that my bot can't?

A: It adds more tools to help you prevent thousands of drones from thousands of IP addresses from joining your channel, instead of just being limited to things like setting mode +R (registered nicks only).

Q: Can I use the RECOMMENDED option for XFLAG and turn off EXEMPT_IDENTD ?

A: Yes. You can do /ChanServ XFLAG #channel RECOMMENDED and then tweak the options.

Q: With the no_ctcp, it blocks someone from user info, is that valid only for as long as that person is in the channel?

A: No, it doesn't block private ctcps. It only prevents /ctcp request to the channel, i.e. /ctcp #channel ping

NOTE: Here is the link of the session https://www.dal.net/kb/view.php?kb=430.

7 · Conclusion

During a huge flood, this feature will minimize the flood effect on channels. These flags will be controlled by DALnet services, and will be available to all channels and IRC Operator will be able to check the channel flags.