# #
# By default, ALL modules are commented out. You must uncomment them #
# or add lines to your config to load modules. Please refer to #
-# http://www.inspircd.org/wiki/Modules_List for a list of modules and#
+# http://wiki.inspircd.org/Modules for a list of modules and #
# each modules link for any additional conf tags they require. #
# #
# You may use wildcards in a <module> tag to load all modules which #
# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
# #
# To link servers to InspIRCd, you MUST load the m_spanningtree #
-# module, as shown below. If you DO NOT do this, server links will #
-# NOT work at all. ie. The ports will NOT bind, and /connect will not #
-# work properly. This is by design, to allow for the implementation #
-# of other linking protocols in modules in the future. #
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Spanning Tree module - allows linking of servers using the spanning
-# tree protocol (see the READ THIS BIT section above).
-#
-#<module name="m_spanningtree.so">
-
+# module. Since several features (like SSL server links) rely on #
+# other modules being loaded before m_spanningtree, the module itself #
+# is at the bottom of this file. DO NOT forget to load it. If you DO #
+# NOT do this, server links will NOT work at all. ie. The ports will #
+# NOT bind, and /connect will not work properly. This is by design, #
+# to allow for the implementation of other linking protocols in #
+# modules in the future. #
+# #
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# MD5 Module - Allows other modules to generate MD5 hashes, usually for
# Alias module: Allows you to define server-side command aliases
#<module name="m_alias.so">
#
+# Fantasy settings:
+#
+#<fantasy prefix="!" allowbots="no">
+#
+# prefix:
+# Set the prefix for in-channel aliases (fantasy commands) to the
+# specified character. If not set, the default is "!".
+# allowbots:
+# If this is set to no, +B clients will not be able to use fantasy
+# commands. If not set, the default is no.
+#
#-#-#-#-#-#-#-#-#-#-#- ALIAS DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# If you have the m_alias.so module loaded, you may also define #
# 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. #
+# #
+# channelcommand - If this is true, 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. #
+# #
# format - If this is defined, the parameters of the alias #
# must match this glob pattern. For example if you #
# want the first parameter to start with a # for #
#<alias text="NICKSERV" replace="PRIVMSG NickServ :$2-" requires="NickServ" uline="yes">
#<alias text="CHANSERV" replace="PRIVMSG ChanServ :$2-" requires="ChanServ" uline="yes">
#<alias text="OPERSERV" replace="PRIVMSG OperServ :$2-" requires="OperServ" uline="yes" operonly="yes">
+#<alias text="BOTSERV" replace="PRIVMSG BotServ :$2-" requires="BotServ" uline="yes">
+#<alias text="HOSTSERV" replace="PRIVMSG HostServ :$2-" requires="HostServ" uline="yes">
+#<alias text="MEMOSERV" replace="PRIVMSG MemoServ :$2-" requires="MemoServ" uline="yes">
#<alias text="NS" replace="PRIVMSG NickServ :$2-" requires="NickServ" uline="yes">
#<alias text="CS" replace="PRIVMSG ChanServ :$2-" requires="ChanServ" uline="yes">
#<alias text="OS" replace="PRIVMSG OperServ :$2-" requires="OperServ" uline="yes" operonly="yes">
+#<alias text="BS" replace="PRIVMSG BotServ :$2-" requires="BotServ" uline="yes">
+#<alias text="HS" replace="PRIVMSG HostServ :$2-" requires="HostServ" uline="yes">
+#<alias text="MS" replace="PRIVMSG MemoServ :$2-" requires="MemoServ" uline="yes">
#
# An example of using the format value to create an alias with two
# different behaviours depending on the format of the parameters.
#
#<alias text="NICKSERV" format=":IDENTIFY *" replace="PRIVMSG NickServ :IDENTIFY $3-"
# requires="NickServ" uline="yes">
+#
+# You may also add aliases to trigger based on something said in a
+# channel, aka 'fantasy' commands, configured in the same manner as any
+# other alias, with usercommand="no" and channelcommand="yes" The
+# command must be preceded by the fantasy prefix when used.
+#
+#<alias text="CS" usercommand="no" channelcommand="yes"
+# replace="PRIVMSG ChanServ :$1 $chan $2-" requires="ChanServ" uline="yes">
+#
+# This would be used as "!cs <command> <options>", with the channel
+# being automatically inserted after the command in the message to
+# ChanServ, assuming the fantasy prefix is "!".
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Allowinvite module: Gives channel mode +A to allow all users to use
#<module name="m_allowinvite.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Alltime module: Shows time on all connected servers at once
+# Alltime module: Shows time on all connected servers at once.
+# This module is oper-only and provides /alltime.
+# To use, ALLTIME must be in one of your oper class blocks.
#<module name="m_alltime.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#<callerid maxaccepts="16"
# operoverride="no"
# tracknick="no"
-# cooldown="60"
+# cooldown="60">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CAP module: Provides the CAP negotiation mechanism seen in
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CBAN module: Lets you disallow channels from being used at runtime.
+# This module is oper-only and provides /cban.
+# To use, CBAN must be in one of your oper class blocks.
#<module name="m_cban.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# Optional - If you specify to use the m_censor module, then you must #
# specify some censor tags. See also: #
-# http://www.inspircd.org/wiki/Censor_Module #
+# http://wiki.inspircd.org/Modules/censor #
#
#<include file="censor.conf">
# Optional - If you specify to use m_cgiirc, then you must specify one
# or more cgihost tags which indicate authorised CGI:IRC servers which
# will be connecting to your network, and an optional cgiirc tag.
-# For more information see: http://www.inspircd.org/wiki/CGI-IRC_Module
+# For more information see: http://wiki.inspircd.org/Modules/cgiirc
#
# Set to yes if you want to notice opers when CGI clients connect
# <cgiirc opernotice="no">
# <cgihost type="ident" mask="otherbox.mysite.com"> # Get IP from ident
# <cgihost type="passfirst" mask="www.mysite.com"> # See the docs
# New style:
-# <cgihost type="webirc" pass="foobar"
+# <cgihost type="webirc" password="foobar"
# mask="somebox.mysite.com"> # Get IP from WEBIRC
#
# IMPORTANT NOTE:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Channel create module: Adds snomask +j, which will notify opers of
-# any new channels that are created
+# any new channels that are created.
+# This module is oper-only.
#<module name="m_chancreate.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Channel filter module: Allows channel-op defined message
# filtering using simple string matches (channel mode +g)
#<module name="m_chanfilter.so">
+#
+# If hidemask is set to yes, the user will not be shown the mask when
+# his/her message is blocked.
+#<chanfilter hidemask="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Channel logging module: used to send snotice output to channels, to
# Chanprotect module: gives +q and +a channel modes
#<module name="m_chanprotect.so">
+<chanprotect
+ # noservices: With this set to yes, when a user joins a empty channel,
+ # the server will set +q on them. If set to no, it will only set +o
+ # on them until they register the channel.
+ noservices="no"
+
+ # qprefix: Prefix (symbol) to use for +q users.
+ qprefix="~"
+
+ # aprefix: Prefix (symbol) to use for +a users.
+ aprefix="&"
+
+ # deprotectself: If this value is set (true, yes or 1), it will allow
+ # +a and +q users to remove the +a and +q from themselves, otherwise,
+ # the status will have to be removed by services.
+ deprotectself="yes"
+
+ # deprotectothers: If this value is set to yes, true, or 1, then any
+ # user with +q or +a may remove the +q or +a from other users.
+ deprotectothers="yes">
+
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Check module: gives /check
# Check is useful for looking up information on channels,
# users, IP addresses and hosts.
+# This module is oper-only.
+# To use, CHECK must be in one of your oper class blocks.
#<module name="m_check.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CHGHOST module: Adds the /CHGHOST command
+# This module is oper-only.
+# To use, CHGHOST must be in one of your oper class blocks.
+# NOTE: Services will not be able to set vhosts on users if this module
+# isn't loaded. If you're planning on running services, you probably
+# want to load this.
#<module name="m_chghost.so">
#
#-#-#-#-#-#-#-#-# /CHGHOST - /SETHOST CONFIGURATION #-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CHGIDENT module: Adds the /CHGIDENT command
+# This module is oper-only.
+# To use, CHGIDENT must be in one of your oper class blocks.
#<module name="m_chgident.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CHGNAME module: Adds the /CHGNAME command
+# This module is oper-only.
+# To use, CHGNAME must be in one of your oper class blocks.
#<module name="m_chgname.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Cloaking module: Adds usermode +x and cloaking support.
# Relies on the module m_md5.so being loaded before m_cloaking.so in
# the configuration file.
+# To use, you should enable m_conn_umodes and add +x as
+# an enabled mode. See the m_conn_umodes module for more information.
#<module name="m_cloaking.so">
#
#-#-#-#-#-#-#-#-#-#-#- CLOAKING CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#- CLOSE MODULE #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Close module: Allows an oper to close all unregistered connections.
+# This module is oper-only and provides /close.
+# To use, CLOSE must be in one of your oper class blocks.
#<module name="m_close.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Clones module: Adds an oper command /CLONES for detecting cloned
# users. Warning: This module may be resource intensive when its
# command is issued, use with care.
+# This module is oper-only.
+# To use, CLONES must be in one of your oper class blocks.
#<module name="m_clones.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# over whole ISPs/blocks of IPs, which may be needed to prevent attacks.
#
#<connectban threshold="10" duration="10m" ipv4cidr="32" ipv6cidr="128">
-# This allows for 10 quits in an hour with a 10 minute ban if that is exceeded.
+# This allows for 10 connections in an hour with a 10 minute ban if that is exceeded.
#
#<module name="m_connectban.so">
#-#-#-#-#-#-#-#-#-#- CUSTOM TITLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
# name - The username used to identify
# password - The password used to identify
+# hash - The hash for the specific user's password (optional)
+# m_password_hash.so and a hashing module must be loaded for this to work
# host - Allowed hostmask [optional]
# title - Title shown in whois
# vhost - Displayed host [optional]
#
#<title name="foo" password="bar" title="Official Chat Helper">
#<title name="bar" password="foo" host="ident@host.name" title="Official Chat Helper" vhost="helper.network.chat">
+#<title name="foo" password="fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9" hash="sha256" title="Official Chat Helper">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# DCCALLOW module: Adds the /DCCALLOW command
#<module name="m_dnsbl.so"> #
# #
# For configuration options please see the wiki page for m_dnsbl at #
-# http://inspircd.org/wiki/DNS_Blacklist_Module #
+# http://wiki.inspircd.org/Modules/dnsbl #
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Filter module: Provides glob-based message filtering
+# Filter module: Provides message filtering, similar to SPAMFILTER.
#<module name="m_filter.so">
-# OR
-# PCRE filter module: Filters messages using regular expressions
-#<module name="m_filter_pcre.so">
+# #
+# This module depends upon a regex provider such as m_regex_pcre or #
+# m_regex_glob to function. You must specify which of these you want #
+# m_filter to use via the tag below. #
+# #
+# Valid engines are: #
+# #
+# glob - Glob patterns, provided via m_regex_glob.so #
+# pcre - PCRE regexps, provided via m_regex_pcre.so, needs libpcre #
+# tre - TRE regexps, provided via m_regex_tre.so, requires libtre #
+# posix - POSIX regexps, provided via m_regex_posix.so, not availale #
+# on windows, no dependencies on other operating systems. #
+# #
+#<filteropts engine="glob"> #
+# #
+# Your choice of regex engine must match on all servers network-wide.
#
-# You may only use one or the other with these modules, network-wide.
+# You may specify specific channels that are exempt from being filtered:
+#<exemptfromfilter channel="#blah">
#
#-#-#-#-#-#-#-#-#-#-#- FILTER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# #
-# Optional - If you specify to use the m_filter or m_filter_pcre #
-# modules, then specfiy below the path to the filter.conf file, #
-# or define some <filter> tags. #
+# Optional - If you specify to use the m_filter module, then #
+# specfiy below the path to the filter.conf file, or define some #
+# <filter> tags. #
# #
#<include file="filter.conf">
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Foobar module: does nothing - historical relic
-#<module name="m_foobar.so">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Gecosban: Implements extended ban r:, which stops anyone matching
# a mask like +b r:*realname?here* from joining a channel.
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# GeoIP module: Allows the server admin to ban users by country code.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_geoip.cpp
+# and run make install, then uncomment this module to enable it.
+# This module requires GeoIP to be installed on your system,
+# use your package manager to find the appropriate packages
+# or check the InspIRCd wiki page for this module.
#<module name="m_geoip.so">
#
#-#-#-#-#-#-#-#-#-#-#-# GEOIP CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Globops module: gives /GLOBOPS and SNOMASK +g
+# This module is oper-only.
+# To use, GLOBOPS must be in one of your oper class blocks.
#<module name="m_globops.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Global load module: Allows loading and unloading of modules network-
# wide (USE WITH EXTREME CAUTION!)
+# This module is oper-only and provides /gloadmodule, /gunloadmodule
+# and /greloadmodule.
+# To use, GLOADMODULE, GUNLOADMODULE and GRELOADMODULE
+# must be in one of your oper class blocks.
#<module name="m_globalload.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# HIDECHANS module: Allows opers to hide their channels list from non-
# opers by setting user mode +I on themselves.
# <module name="m_hidechans.so">
+#
+# HIDECHANS can optionally prevent opers from seeing channels on a +I
+# user, for more privacy if set to true.
+# This setting is not recommended for most mainstream networks.
+#<hidechans affectsopers="false">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# HIDEOPER module: Allows opers to hide their oper status from non-
# opers by setting user mode +H on themselves.
+# This module is oper-only.
# <module name="m_hideoper.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#- HOSTCHANGE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
# #
# Optional - If you choose to use the m_hostchange.so module. #
-# Config Help - See http://www.inspircd.org/wiki/Host_Changer_Module #
+# Config Help - See http://wiki.inspircd.org/Modules/hostchange #
# #
#<host suffix="polarbears.org" separator="." prefix="">
#<hostchange mask="*@fbi.gov" action="addnick">
# http stats module: Provides basic stats pages over HTTP
# Requires m_httpd.so to be loaded for it to function.
#<module name="m_httpd_stats.so">
-#
-#-#-#-#-#-#-#-#-#-#-#-#- HTTPD STATS CONFIGURATION -#-#-#-#-#-#-#-#-#-#
-#
-#<httpstats stylesheet="http://remote.style/sheet.css">
-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Ident: Provides RFC 1413 ident lookup support
+# When this module is loaded <connect:allow> tags may have an optional
+# useident="yes|no" boolean value, determining whether or not to lookup
+# ident on users matching that connect tag.
#<module name="m_ident.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- IDENT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
# the user in a 'connecting' state until the lookup is complete. #
# The bind value indicates which IP to bind outbound requests to. #
# #
-#<ident timeout="5" bind="">
+#<ident timeout="5">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Invite except module: Adds support for channel invite exceptions (+I)
# oper go 'invisible' similar to unrealircd 3.1's +I mode. Note that
# opers are still able to see invisible users, and if an oper with +Q
# deopers, they will become visible.
-#
-# IMPORTANT NOTE: To allow this mode to be used by a type of oper, you
-# must first add the value canquiet="yes" to that oper's type tag.
+#
+# This module is oper-only and seen by many to be quite abusive.
#
#<module name="m_invisible.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Jump Server module: Adds support for the RPL_REDIR numeric
+# This module is oper-only.
+# To use, JUMPSERVER must be in one of your oper class blocks.
#<module name="m_jumpserver.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# LDAP authentication module: Adds the ability to authenticate users #
# via LDAP. This is an extra module which must be enabled explicitly #
# by symlinking it from modules/extra, and requires the OpenLDAP libs #
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_ldapauth.cpp
+# and run make install, then uncomment this module to enable it. #
# #
#<module name="m_ldapauth.so"> #
# #
# need defining, otherwise they should be set similar to the examples #
# above. #
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# LDAP oper configuration module: Adds the ability to authenticate #
+# opers via LDAP. This is an extra module which must be enabled #
+# explicitly by symlinking it from modules/extra, and requires the #
+# OpenLDAP libs. Re-run configure with: ./configure --enable-extras=m_ldapoper.cpp
+# and run make install, then uncomment this module to enable it. #
+# #
+#<module name="m_ldapoper.so">
+# #
+# Configuration: #
+# #
+# <ldapoper baserdn="ou=People,dc=brainbox,dc=cc"
+# server="ldap://brainwave.brainbox.cc"
+# searchscope="subtree"
+# binddn="cn=Manager,dc=brainbox,dc=cc"
+# bindauth="mysecretpass">
+# #
+# Available configuration items are identical to the same items in #
+# m_ldapauth above. #
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Lock server module: Adds /LOCKSERV and /UNLOCKSERV commands that is #
# used to temporarily close/open for new connections to the server. #
# you can control who has access to this possible dangerous command. #
# If your server is locked and you got disconnected, do a REHASH from #
# shell to open up again.
+#
+# This module is oper-only.
+#
#<module name="m_lockserv.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Map hiding module: replaces /MAP and /LINKS output to users with a #
+# message to see a website, set by maphide="http://link.to/site" in #
+# the security tag, instead. #
+#<module name="m_maphide.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Msg flood module: Adds message/notice flood protection (+f)
#<module name="m_messageflood.so">
# MsSQL module: Allows other SQL modules to access MS SQL Server
# through a unified API. You must copy the source for this module
# from the directory src/modules/extra, plus the file m_sqlv2.h
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_mssql.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_mssql.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# m_mssql.so is more complex than described here, see wiki for more #
-# info http://www.inspircd.org/wiki/SQLServer_Service_Provider_Module #
+# info http://wiki.inspircd.org/Modules/mssql #
#
#<database name="db" username="user" password="pass" hostname="localhost" id="db1">
# MySQL module: Allows other SQL modules to access MySQL databases
# through a unified API. You must copy the source for this module
# from the directory src/modules/extra, plus the file m_sqlv2.h
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_mysql.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_mysql.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# m_mysql.so is more complex than described here, see the wiki for #
-# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module #
+# more: http://wiki.inspircd.org/Modules/mysql #
#
#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database2">
# This is supported by mIRC, x-chat, klient, and maybe more.
#<module name="m_namesx.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# National characters module:
+# 1) Allows using national characters in nicknames.
+# 2) Allows using custom (national) casemapping over the network.
+# file -- filename of existing file in "locales" directory
+# casemapping -- custom value for 005 numeric (if you want it to be
+# different from the filename.
+#
+#<nationalchars file="bynets/russian-w1251-charlink" casemapping="ru_RU.cp1251-charlink">
+#<module name="m_nationalchars.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Nickchange flood protection module: Allows up to X nick changes in Y seconds.
# Provides channel mode +F.
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Nicklock module: Let opers change a user's nick and then stop that
# user from changing their nick again.
+# This module is oper-only.
+# To use, NICKLOCK and NICKUNLOCK must be in one of your oper class blocks.
#<module name="m_nicklock.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# No ctcp module: Adds the channel mode +C to block CTCPs
+# No ctcp module: Adds the channel mode +C to block CTCPs and extban C
+# to block CTCPs sent by specific users.
#<module name="m_noctcp.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# No kicks module: Adds the +Q channel mode
+# No kicks module: Adds the +Q channel mode and the Q: extban to deny
+# certain users from kicking.
#<module name="m_nokicks.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#<module name="m_nonicks.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# No Notice module: adds the channel mode +T
+# No part message module: adds extban 'p' to block part messages from #
+# matching users. #
+#<module name="m_nopartmsg.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# No Notice module: adds the channel mode +T and the extban T to block
+# specific users from noticing the channel.
#<module name="m_nonotice.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Network buisness join module
+# Allows an oper to join a channel using /OJOIN, giving them +Y on the
+# channel which makes them immune to kick/deop/etc.
+#<module name="m_ojoin.so">
+#
+#<ojoin prefix="!" notice="yes" op="yes">
+# Specify the prefix that +Y will grant here
+# Leave prefix empty if you do not wish +Y to grant a prefix
+# If notice is set to on, upon ojoin, the server will notice
+# the channel saying that the oper is joining on network business
+# If op is set to on, it will give them +o along with +Y
+
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper channels mode: Adds the +O channel mode
+# This module is oper-only.
#<module name="m_operchans.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Oper flood module: Removes flood limits from users upon opering up
-#<module name="m_operflood.so">
+# Oper invex/extban module: Adds +beI type O, to ban, exempt, and invex
+# given oper type masks.
+# e.g, /mode #channel +iI O:* is equivilant to chmode +O, but you
+# may also, e.g. /mode #channel +iI O:AdminTypeOnly to only allow admins.
+# +be work in a similar fashion.
+# This module is oper-only.
+#
+#<module name="m_operinvex.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper Join module: Auto-joins opers to a channel upon oper-up
+# This module is oper-only. For the user equivalent, see m_conn_join.
#<module name="m_operjoin.so">
#
#-#-#-#-#-#-#-#-#-#-# OPERJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper log module: Logs all oper commands to the ircd log at default
# loglevel.
+# This module is oper-only.
#<module name="m_operlog.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper prefixing module: Gives IRC operators a prefix status character
+# on all channels they are in.
+#
+#<module name="m_operprefix.so">
+#
+# You may additionally customise the prefix character.
+#<operprefix prefix="!">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper MOTD module: Provides support for seperate message of the day
# on oper-up
+# This module is oper-only.
#<module name="m_opermotd.so">
#
#-#-#-#-#-#-#-#-#-#-# OPERMOTD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
# #
# If you are using the m_opermotd.so module, specify the motd here #
# #
-#<opermotd file="oper.motd">
+# onoper - Should the message be sent on /OPER or only when #
+# /OPERMOTD is used. Use "yes" or "no". #
+# #
+#<opermotd file="oper.motd" onoper="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Override module: Adds support for oper override
+# This module is oper-only.
#<module name="m_override.so">
#
#-#-#-#-#-#-#-#-#-#-# OVERRIDE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
# #
# m_override.so is too complex it describe here, see the wiki: #
-# http://www.inspircd.org/wiki/Oper_Override_Module #
+# http://wiki.inspircd.org/Modules/override #
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper levels module: Gives each oper a level and prevents
# actions being taken against higher level opers
# Specify the level as the 'level' parameter of the <type> tag
+# # This module is oper-only.
#<module name="m_operlevels.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper modes module: Allows you to specify modes to add/remove on oper
# Specify the modes as the 'modes' parameter of the <type> tag
# and/or as the 'modes' parameter of the <oper> tag.
+# This module is oper-only. For the user equivalent, see m_conn_umodes
#<module name="m_opermodes.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper password hash module: Allows hashed oper passwords
# Relies on the module m_md5.so and/or m_sha256.so being loaded before
# m_password_hash.so in the configuration file.
+# This module is oper-only.
#<module name="m_password_hash.so">
#
#-#-#-#-#-#-#-#-#-#-# OPER HASH CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
# therefore keep things like modes, ban lists and topic. Permanent
# channels -may- need support from your Services package to function
# properly with them. This adds channel mode +P.
+# This module is oper-only.
#<module name="m_permchannels.so">
#
+# If you like, m_permchannels can write a config file of permanent channels
+# 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.
+#
+# The conf file generated has a path relative to the inspircd binary, hence '../conf/'.
+#
+#<permchanneldb filename="../conf/permchannels.conf">
+#<include file="permchannels.conf">
+#
# You may also create channels on startup by using the <permchannels> block.
#<permchannels channel="#opers" modes="is" topic="Opers only.">
# PostgreSQL module: Allows other SQL modules to access PgSQL databases
# through a unified API. You must copy the source for this module
# from the directory src/modules/extra, plus the file m_sqlv2.h
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_pgsql.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_pgsql.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# m_pgsql.so is more complex than described here, see the wiki for #
-# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module #
+# more: http://wiki.inspircd.org/Modules/pgsql #
#
#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database" ssl="no">
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Proxy scan module: Scans locally connecting clients for proxies.
-#<module name="m_proxyscan.so">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Muteban: Implements extended ban m:, which stops anyone matching
# a mask like +b m:nick!user@host from speaking on channel.
# Redirect module: Adds channel redirection (mode +L)
#<module name="m_redirect.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Regular Expression Provider for Glob or wildcard (?/*) matching.
+# You must have at least 1 provider loaded to use m_filter or m_rline
+# modules. This module has no additional requirements, as it uses the
+# matching already present in InspIRCd core.
+#<module name="m_regex_glob.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Regular Expression Provider for PCRE (Perl-Compatible Regular
+# Expressions). You need libpcre installed to compile and load this
+# module. You must have at least 1 provider loaded to use m_filter or
+# m_rline.
+#<module name="m_regex_pcre.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Regular Expression Provider for POSIX Regular Expressions.
+# You shouldn't need any additional libraries on a POSIX-compatible
+# system (ie: any Linux, BSD, but not Windows). You must have at least
+# 1 provider loaded to use m_filter or m_rline.
+# On POSIX-compliant systems, regex syntax can be found by using the
+# command: 'man 7 regex'.
+#<module name="m_regex_posix.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Regular Expression Provider for TRE Regular Expressions.
+# This is the same regular expression engine used by UnrealIRCd, so
+# if you are most familiar with the syntax of /spamfilter from there,
+# this is the provider you want. You need libtre installed in order
+# to compile and load this module.
+#<module name="m_regex_tre.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Registered users only channel creation
# Allows only registered users and opers to create new channels.
+#
+# You probably *DO NOT* want to load this module on a public network.
+#
#<module name="m_regonlycreate.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#<module name="m_remove.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Restrict banned users module:
-# Disallows banned users on a channel from messaging the channel,
-# changing nick, or changing the topic, if loaded.
-#<module name="m_restrictbanned.so">
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Restricted channels module: Allows only opers to create channels
+# Restricted channels module: Allows only opers to create channels.
+#
+# You probably *DO NOT* want to load this module on a public network.
+#
#<module name="m_restrictchans.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Restrict message module: Allows users to only message opers
+# Restrict message module: Allows users to only message opers.
+#
+# You probably *DO NOT* want to load this module on a public network.
+#
#<module name="m_restrictmsg.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#<module name="m_rline.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- RLINE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+#
# If you wish to re-check a user when they change nickname (can be
# useful under some situations, but *can* also use CPU with more users
# on a server) then set the following configuration value:
-#<rline matchonnickchange="yes">
+# Also, this is where you set what Regular Expression engine is to be
+# used. If you ever change it while running, all of your R-Lines will be
+# wiped. This is the regex engine used by all R-Lines set, and
+# m_regex_<engine>.so must be loaded, or rline will be nonfunctional
+# until you load it or change the engine to one that is loaded.
+#
+#<rline matchonnickchange="yes" engine="pcre">
+#
+# Generally, you will NOT want to use 'glob' here, as this turns
+# rline into just another gline. The exceptions are that rline will
+# always use the full nick!user@host realname string, rather than only
+# user@host, but beware that only the ? and * wildcards are available,
+# and are the only way to specify where the space can occur if you do
+# use glob. For this reason, is recommended to use a real regex engine
+# so that at least \s or [[:space:]] is available.
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# JSON-RPC module: Encode and decode JSON-RPC requests for modules
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SAJOIN module: Adds the /SAJOIN command
+# This module is oper-only.
+# To use, SAJOIN must be in one of your oper class blocks.
#<module name="m_sajoin.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAKICK module: Adds the /SAKICK command
+# This module is oper-only.
+# To use, SAKICK must be in one of your oper class blocks.
+#<module name="m_sakick.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SAMODE module: Adds the oper /SAMODE command
+# This module is oper-only.
+# To use, SAMODE must be in one of your oper class blocks.
#<module name="m_samode.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SANICK module: Allows opers to change user's nicks
+# This module is oper-only.
+# To use, SANICK must be in one of your oper class blocks.
#<module name="m_sanick.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SAPART module: Adds the oper /SAPART command
+# This module is oper-only.
+# To use, SAPART must be in one of your oper class blocks.
#<module name="m_sapart.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SAQUIT module: Adds the oper /SAQUIT command (abusable!!!)
+# This module is oper-only.
+# To use, SAQUIT must be in one of your oper class blocks.
#<module name="m_saquit.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SATOPIC module: Adds the oper /SATOPIC command
+# This module is oper-only.
+# To use, SATOPIC must be in one of your oper class blocks.
+#<module name="m_satopic.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SASL authentication module: Provides support for IRC Authentication
# Layer (aka: atheme SASL) via AUTHENTICATE.
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# See nicks module: Allow for SNOMASK +N which shows nick changes.
+# This module is oper-only.
#<module name="m_seenicks.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Set Idle module: Adds a command for opers to change their
# idle time (mainly a toy)
+# This module is oper-only.
+# To use, SETIDLE must be in one of your oper class blocks.
#<module name="m_setidle.so">
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Services support module: Adds several usermodes such as +R and +M
-# this module implements the 'identified' state via user mode +r, which
-# is similar to the DALnet and dreamforge systems.
-#
-# N O T E!!
-# >> This CAN NOT be used at the same time as m_services_account <<
-# N O T E!!
-#<module name="m_services.so">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Services support module: Adds several usermodes such as +R and +M
# this module implements the 'identified' state via account names (AC)
# and is similar in operation to the way asuka and ircu handle services.
#
+# At the same time, this offers +r for users and channels to mark them
+# as identified seperately from the idea of a master account, which
+# can be useful for services which are heavily nick-as-account centric.
+#
+# This replaces m_services from 1.1 and earlier.
+#
# Also of note is that this module implements two extbans:
# +b R: (stop matching account names from joining)
# +b M: (stop matching account names from speaking)
#
-# N O T E!!
-# >> This CAN NOT be used at the same time as m_services <<
-# N O T E!!
#<module name="m_services_account.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Sethost module: Adds the /SETHOST command
+# This module is oper-only.
+# To use, SETHOST must be in one of your oper class blocks.
# See m_chghost for how to customise valid chars for hostnames
#<module name="m_sethost.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Setident module: Adds the /SETIDENT command
+# This module is oper-only.
+# To use, SETIDENT must be in one of your oper class blocks.
#<module name="m_setident.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SETNAME module: Adds the /SETNAME command
+# This module is oper-only.
+# To use, SETNAME must be in one of your oper class blocks.
#<module name="m_setname.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Show Whois module: Adds the +W usermode which allows opers
# to see when they are whois'ed (can be annoying).
+# This module is oper-only.
#<module name="m_showwhois.so">
+#
+# If you wish, you may also let users set this mode. Only opers with the
+# users/auspex priv will see real hosts of people, though. This setting
+# is not reloadable via /rehash, and will require /reloadmodule, as
+# it directly affects the mode object itself.
+#<showwhois opersonly="yes"
+#
+# You may also set whether or not users should recieve whois notices, should
+# they be /whois'd by an oper.
+# showfromopers="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Shun module: Provides the /shun command, which stops a user executing
-# all commands except PING and PONG.
+# most commands.
+# This module is oper-only.
+# To use, SHUN must be in one of your oper class blocks.
#<module name="m_shun.so">
+#
+# You may also configure which commands you wish a user to be able to
+# perform. 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.
+#
+# You can (optionally) let the user know that their command was blocked.
+#
+# You may also let SHUN affect opers (defaults to no).
+#<shun enabledcommands="PING PONG QUIT PART JOIN" notifyuser="yes" affectopers="no">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Spy module: Provides the ability to see the complete names list of
# channels an oper is not a member of
+# This module is oper-only.
#<module name="m_spy.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# does not do anything useful without a working SSL module (see below)
#<module name="m_sslmodes.so">
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Dummy ssl module: If you have other servers on your network which
-# have SSL, but your server does not have ssl enabled, you should load
-# this module, which will handle SSL metadata (e.g. the "Is using ssl"
-# field in the WHOIS information).
-#<module name="m_ssl_dummy.so">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# GnuTLS ssl module: Adds support for client-server SSL using GnuTLS,
# if enabled. You must copy the source for this module from the directory
#-#-#-#-#-#-#-#-#-#-#- GNUTLS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# #
# m_ssl_gnutls.so is too complex it describe here, see the wiki: #
-# http://www.inspircd.org/wiki/GnuTLS_SSL_Module #
+# http://wiki.inspircd.org/Modules/ssl_gnutls #
# #
# NOTE: If you want to use this module to encrypt and sign your #
# server to server traffic, you MUST load it before m_spanningtree in #
# SSL Info module: Allows users to retrieve information about other
# user's peer SSL certificates and keys. This can be used by client
# scripts to validate users. For this to work, one of m_ssl_gnutls.so
-# or m_ssl_openssl.so must be loaded. You must symlink the source for
-# this module from the directory src/modules/extra.
+# or m_ssl_openssl.so must be loaded. This module also adds the
+# "* <user> is using a secure connection" whois line, the ability for
+# opers to use SSL fingerprints to verify their identity and the ability
+# to force opers to use SSL connections in order to oper up.
+# It is highly recommended to load this module especially if
+# you use SSL on your network.
+# For how to use the oper features, please see the first example <oper> tag
+# in opers.conf.example.
+#
#<module name="m_sslinfo.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#- OPENSSL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# #
# m_ssl_openssl.so is too complex it describe here, see the wiki: #
-# http://www.inspircd.org/wiki/OpenSSL_SSL_Module #
+# http://wiki.inspircd.org/Modules/ssl_openssl #
# #
# NOTE: If you want to use this module to encrypt and sign your #
# server to server traffic, you MUST load it before m_spanningtree in #
# your configuration file! #
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# SSL Cert Oper module: Allows opers to oper up using the key fingerprint
-# stored within their SSL certificate and key pair.
-# When using this module, one of m_ssl_gnutls.so or m_ssl_openssl.so must
-# be loaded. An extra value should be added to enabled opers, which
-# is in the following format: fingerprint="<hash>". For more information,
-# see the example in the oper blocks.
-#<module name="m_ssl_oper_cert.so">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Strip colour module: Adds the channel mode +S
#<module name="m_stripcolor.so">
# databases through a unified API. You must link the source for this #
# module from the directory src/modules/extra to src/modules, plus #
# the file m_sqlv2.h #
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_aqlite.cpp
+# and run make install, then uncomment this module to enable it. #
+#
#<module name="m_sqlite3.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# m_sqlite.so is more complex than described here, see the wiki for #
-# more: http://www.inspircd.org/wiki/SQLite3_Service_Provider_Module #
+# more: http://wiki.inspircd.org/Modules/sqlite3 #
#
#<database hostname="/full/path/to/database.db" id="anytext">
# for this module from the directory src/modules/extra/m_sqlutils.cpp
# and src/modules/extra/m_sqlutils.h into /src/modules
# Needed for, and loaded before: SQLauth and SQLoper
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqlutils.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqlutils.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# a database table (for example a forum). You must copy the source for
# this module from the directory src/modules/extra
# Depends on the SQLutils module being loaded first.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqlauth.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqlauth.so">
#
#-#-#-#-#-#-#-#-#-#-#- SQLAUTH CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# #
# m_sqlauth.so is too complex it describe here, see the wiki: #
-# http://www.inspircd.org/wiki/SQL_Authentication_Module #
+# http://wiki.inspircd.org/Modules/sqlauth #
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SQL logging module: Allows you to log network-wide data for your
# network in a fully normalised set of SQL tables. You must copy the
# source for this module from the directory src/modules/extra
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqllog.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqllog.so">
#
#-#-#-#-#-#-#-#-#-#-#- SQLLOG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# #
# dbid - Database ID to use (see m_sql) #
# #
-# See also: http://www.inspircd.org/wiki/SQL_Logging_Module #
+# See also: http://wiki.inspircd.org/Modules/sqllog #
# #
#<sqllog dbid="1">
# SQL oper module: Allows you to store oper credentials in an SQL table
# You must copy the source for this module from the directory src/modules/extra
# Depends on the SQLutils module being loaded first.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqloper.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqloper.so">
#
#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# dbid - Database ID to use (see m_sql) #
# hash - Hashing provider to use for password hashing #
# #
-# See also: http://www.inspircd.org/wiki/SQL_Oper_Storage_Module #
+# See also: http://wiki.inspircd.org/Modules/sqloper #
# #
#<sqloper dbid="1" hash="md5">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SWHOIS module: Allows you to add arbitary lines to user WHOIS.
+# This module is oper-only.
+# To use, SWHOIS must be in one of your oper class blocks.
#<module name="m_swhois.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Taxonomy module: Adds the /TAXONOMY command, used to view all
-# metadata attached to a user.
-#<module name="m_taxonomy.so">
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Test command module: Does nothing significant. Read: pointless.
-#<module name="m_testcommand.so">
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Timed bans module: Adds timed bans and the /TBAN command
+# Timed bans module: Adds timed channel bans and the /TBAN command
#<module name="m_timedbans.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Test line module: Adds the /TLINE command, used to test how many
# users a /GLINE or /ZLINE etc would match.
+# This module is oper-only.
+# To use, TLINE must be in one of your oper class blocks.
#<module name="m_tline.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Userip module: Adds the /USERIP command
+# This module is oper-only.
+# To use, USERIP must be in one of your oper class blocks.
#<module name="m_userip.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# user - Username for the vhost. #
# #
# pass - Password for the vhost. #
+# #
+# hash - The hash for the specific user (optional)
+# m_password_hash.so and a hashing module must be loaded for this to work
# #
# host - Vhost to set. #
#
#<vhost user="some_username" pass="some_password" host="some.host">
+#<vhost user="foo" password="fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9" hash="sha256" host="some.other.host">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Watch module: Adds the WATCH command, which is used by clients to
# be a lot less bans to apply - as most of them will already be there.
#<module name="m_xline_db.so">
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# XMLSocket module: Adds support for connections using the shockwave
-# flash XMLSocket. Note that this does not work if the client you are
-# using has retarded ideas of the IRC protocol. Your client must still
-# send RFC-correct lines to the server, this module only changes the
-# line ending from newlines to null terminators.
-#
-#<module name="m_xmlsocket.so">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# ZipLinks module: Adds support for zlib deflate on server to server
# connections. Both ends of the connection must load this module.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_ziplink.cpp
+# and run make install, then uncomment this module to enable it.
#
#<module name="m_ziplink.so">
#
# <link> tags or <bind> tags using the transport name 'zip'.
# See the documentation of <link> and <bind>, respectively.
#
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# ____ _ _____ _ _ ____ _ _ _ #
+# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
+# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
+# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
+# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
+# #
+# To link servers to InspIRCd, you MUST load the m_spanningtree #
+# module. Since several features (like SSL server links) rely on #
+# other modules being loaded before m_spanningtree, the module itself #
+# is at the bottom of this file. DO NOT forget to load it. If you DO #
+# NOT do this, server links will NOT work at all. ie. The ports will #
+# NOT bind, and /connect will not work properly. This is by design, #
+# to allow for the implementation of other linking protocols in #
+# modules in the future. #
+# #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Spanning Tree module - allows linking of servers using the spanning
+# tree protocol (see the READ THIS BIT section above).
+# You will almost always want to load this.
+#
+#<module name="m_spanningtree.so">
+
+