# matched, or it has no format value. Aliases are #
# read from the top of the file to the bottom. #
# #
-# usercommand - If this is true, the alias can be run simply as #
-# /ALIASNAME. Defaults to true. #
+# usercommand - If set to yes, the alias can be run simply as #
+# /ALIASNAME. Defaults to yes. #
# #
-# channelcommand - If this is true, the alias can be used as an #
+# channelcommand - If set to yes, the alias can be used as an #
# in-channel alias or 'fantasy command', prefixed #
# by the fantasy prefix character, !aliasname by #
-# default. Defaults to false. #
+# default. Defaults to no. #
# #
# format - If this is defined, the parameters of the alias #
# must match this glob pattern. For example if you #
# to successfully trigger. If they are not, then #
# the user receives a 'no such nick' 401 numeric. #
# #
-# stripcolor - If this is true, the text from the user will be #
+# stripcolor - If set to yes, the text from the user will be #
# stripped of color and format codes before #
# matching against 'text'. #
# #
-# uline - Setting this to true will ensure that the user #
+# uline - Setting this to yes will ensure that the user #
# given in 'requires' is also on a U-lined server, #
# as well as actually being on the network. If the #
# user is online, but not on a U-lined server, #
# possibly a sign of a user trying to impersonate #
# a service. #
# #
-# operonly - If true, this will make the alias oper only. #
+# operonly - If yes, this will make the alias oper only. #
# If a non-oper attempts to use the alias, it will #
# appear to not exist. #
# #
# <anticaps lowercase="abcdefghijklmnopqrstuvwxyz"
# uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Argon2 module: Allows other modules to generate Argon2 hashes,
+# usually for cryptographic uses and security.
+# This module makes the algorithms argon2i, argon2d and argon2id
+# available for use.
+# Note that this module is extra, and must be enabled explicitly
+# to build. It depends on libargon2.
+#<module name="argon2">
+#
+# memory: Memory hardness, in KiB. E.g. 131072 KiB = 128 MiB.
+# iterations: Time hardness in iterations. (def. 3)
+# lanes: How many parallel chains can be run. (def. 1)
+# threads: Maximum amount of threads each invocation can spawn. (def. 1)
+# length: Output length in bytes. (def. 32)
+# saltlength: Salt length in bytes. (def. 16)
+# version: Algorithm version, 10 or 13. (def. 13)
+# The parameters can be customized as follows:
+#<argon2 iterations="3" memory="131074" length="32" saltlength="16">
+# Defines the parameters that are common for all the variants (i/d/id).
+# Can be overridden on individual basis, e.g.
+#<argon2i iterations="4">
+#<argon2d memory="131074"
+#<argon2id iterations="5" memory="262144" length="64" saltlength="32">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Auditorium module: Adds channel mode +u which makes everyone else
# except you in the channel invisible, used for large meetings etc.
# This module is oper-only and provides /CBAN.
# To use, CBAN must be in one of your oper class blocks.
#<module name="cban">
+# CBAN does not allow glob channelmasks by default for compatibility
+# reasons. You can enable glob support by uncommenting the next line.
+#<cban glob="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Censor module: Adds channel and user mode +G which block phrases that
# message to the server on connection. For more details please read the
# IRCv3 WebIRC specification at: https://ircv3.net/specs/extensions/webirc.html
#
-# When using this method you must specify a wildcard mask or CIDR range
-# to allow gateway connections from and at least one of either a TLS (SSL)
-# client certificate fingerprint for the gateway or a password to be
-# sent in the WEBIRC command.
+# When using this method you must specify one or more wildcard masks
+# or CIDR ranges to allow gateway connections from and at least one of
+# either a TLS (SSL) client certificate fingerprint for the gateway or
+# a password to be sent in the WEBIRC command.
#
# <cgihost type="webirc"
# fingerprint="bd90547b59c1942b85f382bc059318f4c6ca54c5"
-# mask="192.0.2.0/24">
+# mask="192.0.2.0/24 198.51.100.*">
# <cgihost type="webirc"
# password="$2a$10$WEUpX9GweJiEF1WxBDSkeODBstIBMlVPweQTG9cKM8/Vd58BeM5cW"
# hash="bcrypt"
# address in the ident sent by the user. This is not recommended as it
# only works with IPv4 connections.
#
-# When using this method you must specify a wildcard mask or CIDR range to allow
-# gateway connections from. You can also optionally configure the static value
-# that replaces the IP in the ident to avoid leaking the real IP address of
-# gateway clients (defaults to "gateway" if not set).
+# When using this method you must specify one or more wildcard masks
+# or CIDR ranges to allow gateway connections from. You can also
+# optionally configure the static value that replaces the IP in the
+# ident to avoid leaking the real IP address of gateway clients
+# (defaults to "gateway" if not set).
#
# <cgihost type="ident"
-# mask="198.51.100.0/24"
+# mask="198.51.100.0/24 203.0.113.*"
# newident="wibble">
# <cgihost type="ident"
# mask="*.ident.gateway.example.com"
# the current topic of conversation is when joining the channel.
#<module name="chanhistory">
#
-# Set the maximum number of lines allowed to be stored per channel below.
-# This is the hard limit for 'X'.
-# If prefixmsg is set to yes, joining users without batch support will get
-# a NOTICE before playback telling them about the following lines being
-# the pre-join history.
-# If bots is set to yes, it will also send to users marked with +B
-#<chanhistory maxlines="50" prefixmsg="yes" bots="yes">
+#-#-#-#-#-#-#-#-#-#-#- CHANHISTORY CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# bots - Whether to send channel history to bots. Defaults to yes. #
+# #
+# enableumode - Whether to enable the +N user mode which allows users #
+# to opt-out of receiving channel history. Defaults to #
+# no. #
+# #
+# maxlines - The maximum number of lines of chat history to send to a #
+# joining users. Defaults to 50. #
+# #
+# prefixmsg - Whether to send an explanatory message to clients that #
+# don't support the chathistory batch type. Defaults to #
+# yes. #
+# #
+#<chanhistory bots="yes"
+# enableumode="yes"
+# maxlines="50"
+# prefixmsg="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Channel logging module: Used to send snotice output to channels, to
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Codepage module: Allows using a custom 8-bit codepage for nicknames
# and case mapping.
+#<module name="codepage">
#
# You should include one of the following files to set your codepage:
#<include file="examples/codepages/ascii.conf.example">
#<module name="dnsbl">
# #
# For configuration options please see the docs page for dnsbl at #
-# https://docs.inspircd.org/3/modules/dnsbl #
+# https://docs.inspircd.org/3/modules/dnsbl. You can also use one or #
+# more of the following example configs for popular DNSBLs: #
+# #
+# DroneBL (https://dronebl.org) #
+#<include file="examples/providers/dronebl.conf.example">
+# #
+# EFnet RBL (https://rbl.efnetrbl.org) #
+#<include file="examples/providers/efnet-rbl.conf.example">
+# #
+# dan.me.uk Tor exit node DNSBL (https://www.dan.me.uk/dnsbl) #
+#<include file="examples/providers/torexit.conf.example">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Exempt channel operators module: Provides support for allowing #
# See <options:exemptchanops> in inspircd.conf.example for a more #
# detailed list of the restriction modes that can be exempted. #
# These are settable using: /MODE #chan +X <restriction>:<status> #
+# Furthermore, the exemptions configured in <options:exemptchanops> #
+# can also be negated by using: /MODE #chan +X <restriction>:* #
#<module name="exemptchanops">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#<module name="hidechans">
#
# This mode can optionally prevent opers from seeing channels on a +I
-# user, for more privacy if set to true.
+# user, for more privacy if set to yes.
# This setting is not recommended for most mainstream networks.
-#<hidechans affectsopers="false">
+#<hidechans affectsopers="no">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Hide list module: Allows for hiding the list of listmodes from users
# a <bind> tag with type "httpd", and load at least one of the other
# httpd_* modules to provide pages to display.
# <bind address="127.0.0.1" port="8067" type="httpd">
-# <bind address="127.0.0.1" port="8097" type="httpd" ssl="gnutls">
+# <bind address="127.0.0.1" port="8097" type="httpd" sslprofile="Clients">
#
# You can adjust the timeout for HTTP connections below. All HTTP
# connections will be closed after (roughly) this time period.
# the timeout for ident lookups here. If not defined, it will default #
# to 5 seconds. This is a non-blocking timeout which holds the user #
# in a 'connecting' state until the lookup is complete. #
-# prefixunqueried: If on, the idents of users being in a connect class#
-# with ident lookups disabled (i.e. <connect useident="off">) will be #
-# prefixed with a "~". If off, the ident of those users will not be #
-# prefixed. Default is off. #
+# prefixunqueried: If yes, the idents of users in a connect class #
+# with ident lookups disabled (i.e. <connect useident="no">) will be #
+# prefixed with a "~". If no, the ident of those users will not be #
+# prefixed. Default is no. #
#
#<ident timeout="5" prefixunqueried="no">
# The following block can be used to control which extensions are
# enabled. Note that extended-join can be incompatible with delayjoin
# and host cycling.
-#<ircv3 accountnotify="on" awaynotify="on" extendedjoin="on">
+#<ircv3 accountnotify="yes" awaynotify="yes" extendedjoin="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# IRCv3 account-tag module. Adds the 'account' tag which contains the
# Closes the channel for N seconds if X users join in Y seconds.
#<module name="joinflood">
#
-# The number of seconds to close the channel for:
-#<joinflood duration="1m">
+# duration: The number of seconds to close a channel for when it is
+# being flooded with joins.
+#
+# bootwait: The number of seconds to disengage joinflood for after
+# a server boots. This allows users to reconnect without
+# being throttled by joinflood.
+#
+# splitwait: The number of seconds to disengage joinflood for after
+# a server splits. This allows users to reconnect without
+# being throttled by joinflood.
+#
+#<joinflood duration="1m"
+# bootwait="30s"
+# splitwait="30s">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Anti auto rejoin: Adds support for prevention of auto-rejoin (+J).
#<module name="namedmodes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# NAMESX module: Provides support for the NAMESX extension which allows
-# clients to see all the prefixes set on a user without getting confused.
-# This is supported by mIRC, x-chat, klient, and maybe more.
+# NAMESX module: Provides support for the IRCv3 multi-prefix capability
+# and legacy NAMESX extension which allow clients to see all the prefix
+# modes set on a user.
#<module name="namesx">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# which allows up to X nick changes in Y seconds.
#<module name="nickflood">
#
-# The number of seconds to prevent nick changes for:
+# The time period to prevent nick changes for:
#<nickflood duration="1m">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#<module name="operlog">
#
# If the following option is on then all oper commands will be sent to
-# the snomask 'r'. The default is off.
-#<operlog tosnomask="off">
+# the snomask 'r'. The default is no.
+#<operlog tosnomask="no">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper prefixing module: Adds a channel prefix mode +y which is given
# whenever +P is set, unset, or the topic/modes on a +P channel is changed.
# If you want to do this, set the filename below, and uncomment the include.
#
-# If 'listmodes' is true then all list modes (+b, +I, +e, +g...) will be
-# saved. Defaults to false.
+# If 'listmodes' is yes then all list modes (+b, +I, +e, +g...) will be
+# saved. Defaults to no.
#
# 'saveperiod' determines how often to check if the database needs to be
# saved to disk. Defaults to every five seconds.
# in the same way as /REMOVE.
#<module name="remove">
#
-# supportnokicks: If true, /REMOVE is not allowed on channels where the
-# nokicks (+Q) mode is set. Defaults to false.
+# supportnokicks: If yes, /REMOVE is not allowed on channels where the
+# nokicks (+Q) mode is set. Defaults to no.
# protectedrank: Members having this rank or above may not be /REMOVE'd
# by anyone. Set to 0 to disable this feature. Defaults to 50000.
#<remove supportnokicks="yes" protectedrank="50000">
# less CPU usage. Increasing this beyond 512 doesn't have
# any effect, as the maximum length of a message on IRC
# cannot exceed that.
-#<repeat maxbacklog="20" maxdistance="50" maxlines="20" maxtime="0" size="512">
+# kickmessage - Kick message when * is specified
+#<repeat maxbacklog="20"
+# maxdistance="50"
+# maxlines="20"
+# maxtime="0s"
+# size="512"
+# kickmessage="Repeat flood">
#<module name="repeat">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# securelist blocking these sites from listing, define exception tags #
# as shown below: #
#<securehost exception="*@*.netsplit.de">
-#<securehost exception="*@*.ircdriven.com">
-#<securehost exception="*@*.ircs.me">
# #
# exemptregistered - Whether the waiting period applies to users who #
# are logged in to a services account. #
# To use, SHUN must be in one of your oper class blocks.
#<module name="shun">
#
-# You may also configure which commands you wish a user to be able to
-# perform when shunned. It should be noted that if a shunned user
-# issues QUIT or PART then their message will be removed, as if they
-# did not issue one.
+# Configuration:
+#
+# affectopers: Whether server operators are exempt from shuns. This
+# option is deprecated; you should instead give exempt
+# server operators the servers/ignore-shun privilege.
+#
+# allowconnect: Whether to only apply shuns to users who are fully
+# connected to the server.
+#
+# allowtags: Whether to allow client tags to be attached to enabled
+# commands.
+#
+# cleanedcommands: The commands that, if enabled, should be cleaned
+# of any message content if a shunned user tries to
+# execute them.
+#
+# enabledcommands: The commands that a shunned user is allowed to
+# execute.
#
-# You can optionally let the user know that their command was blocked.
+# notifyuser: Whether to notify shunned users that a command they tried
+# to execute has been blocked.
#
-# You may also let SHUN affect opers (defaults to no).
-#<shun enabledcommands="ADMIN OPER PING PONG QUIT PART JOIN" notifyuser="yes" affectopers="no">
+#<shun enabledcommands="ADMIN OPER PING PONG QUIT PART JOIN"
+# cleanedcommands="AWAY PART QUIT"
+# affectopers="no"
+# allowconnect="no"
+# allowtags="no"
+# notifyuser="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SSL mode module: Adds support for TLS (SSL)-only channels via the '+z'
#<module name="svshold">
# SVSHOLD does not generate server notices by default, you can turn
# notices on by uncommenting the next line.
-#<svshold silent="false">
+#<svshold silent="no">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SWHOIS module: Allows you to add arbitrary lines to user WHOIS.
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Timed bans module: Adds timed channel bans with the /TBAN command.
#<module name="timedbans">
+# By default, it sends a notice to channel operators when timed ban is
+# set and when it is removed by server.
+#<timedbans sendnotice="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Test line module: Adds the /TLINE command, used to test how many
#<module name="topiclock">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# UHNAMES support module: Adds support for the IRCX style UHNAMES
-# extension, which displays ident and hostname in the names list for
-# each user, saving clients from doing a WHO on the channel.
-# If a client does not support UHNAMES it will not enable it, this will
-# not break incompatible clients.
+# UHNAMES support module: Adds support for the IRCv3 userhost-in-names
+# capability and legacy UHNAMES extension which display the ident and
+# hostname of users in the NAMES list.
#<module name="uhnames">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#