Extended bans

Extended bans can be used to match a client on criteria other than IP or hostname. For example  can be used to add a ban exemption for someone who identified to services with SomeAccount. Extended bans can also be used to provide other "extended" functionality, such as blocking or censoring certain words in channels.

In channels, extended bans can be used in /MODE for bans, exempts and invite exceptions. Server admins can use some of these in Extended server bans as well.

Extended bans start with a tilde (~), followed by a letter denoting the extban type. For example  denotes an account extban. UnrealIRCd comes with a number of built-in extbans (loaded through Modules). 3rd party modules may introduce even more types.

Group 1: time limit
The following ban type can be used in front of any (ext)ban:

Group 2: actions
The following ban types specify which actions (join, nick-change or speaking) are affected by a ban:

Group 3: selectors
These bantypes introduce new criteria which can be used:

Group 4: special
These are special extended bans that don't fit anywhere else:

Combining extended bans
You may stack extended bans from the 1st group with any of the other groups, eg  to prevent all users with the security-group unknown-users from joining for the next 5 minutes (UnrealIRCd 5.2.0 and higher).

You may also stack extended bans from the 2nd group with the 3rd group. For example:  would quiet all users who have also joined #lamers.

You can even stack group 1 + group 2 + group 3 if you want, eg:.

Invite exceptions (+I)
Ban types from the 3rd group can be used in invite exceptions (+I). For example you can put the channel +i and then use +I ~c:@#trusted and/or +I ~a:accountname.