]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - conf/modules.conf.example
Remove m_services and documentation relating to it. Also remove conf/temp/ (??)
[user/henk/code/inspircd.git] / conf / modules.conf.example
index 537a13346f977746719044ef98d27afd3ff47826..ce01493725d57e9e27a34b2cf5ff90c89a634fbb 100644 (file)
 #   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
 #                                                                     #
 # 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
 #  requires="NickServ" uline="yes">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Alltime module: Shows time on all connected servers at once
+# Allowinvite module: Gives channel mode +A to allow all users to use
+# /invite, and extban A to deny invite from specific masks
+#<module name="m_allowinvite.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# 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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # filtering using simple string matches (channel mode +g)
 #<module name="m_chanfilter.so">
 
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channel logging module: used to send snotice output to channels, to
+# allow staff to centrally monitor and discuss network activity.
+#
+# The "channel" field is where you want the messages to go, "snomasks"
+# is what snomasks you want to be sent to that channel. Multiple tags
+# are allowed.
+#<module name="m_chanlog.so">
+#<chanlog snomasks="AOcC" channel="#opers">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channelban: Implements extended ban j:, which stops anyone in already
+# in a channel matching a mask like +b j:#channel*mask from joining.
+#<module name="m_channelban.so">
+
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Chanprotect module: gives +q and +a channel modes
 #<module name="m_chanprotect.so">
 
+<chanprotect
+       # noservices: With this set to no, when a user joins a empty channel,
+       # the server will set +q on them. If set to yes, 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.
 #<module name="m_chghost.so">
 #
 #-#-#-#-#-#-#-#-# /CHGHOST - /SETHOST  CONFIGURATION #-#-#-#-#-#-#-#-#
 # charmap        - A list of chars accepted as valid by the /CHGHOST #
 #                  and /SETHOST commands. Also note that the list is # 
 #                  case-sensitive.                                   #
-#<hostname charmap="abcdefghijklmnopqrstuvwxyz.-_/0123456789">
+#<hostname charmap="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_/0123456789">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # http://inspircd.org/wiki/DNS_Blacklist_Module                       #
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# 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">
-#
-# You may only use one or the other with these modules, network-wide.
+#                                                                     #
+# 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.
 #
 #-#-#-#-#-#-#-#-#-#-#-  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">
 
 #<module name="m_foobar.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Nickban: Implements extended ban r:, which stops anyone matching
+# Gecosban: Implements extended ban r:, which stops anyone matching
 # a mask like +b r:*realname?here* from joining a channel.
 #<module name="m_gecosban.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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.
 #<module name="m_geoip.so">
 #
 #-#-#-#-#-#-#-#-#-#-#-#  GEOIP CONFIGURATION  #-#-#-#-#-#-#-#-#-#-#-#-#
 # code such as TR, GB, or US.                                         #
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Globops module: gives /GLOBOPS and usermode +g
+# 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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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   -#-#-#-#-#-#-#-#-#-#-#
 # 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.
+#
 #<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">                                        #
 #                                                                     #
 # 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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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   -#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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   -#-#-#-#-#-#-#-#-#-#-#-#-#
 # This is supported by mIRC, x-chat, klient, and maybe more.
 #<module name="m_namesx.so">
 
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Nickban: Implements extended ban n:, which stops anyone matching
-# a mask like +b n:nick!user@host from changing their nick on channel.
-#<module name="m_nickban.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
 #<module name="m_noctcp.so">
 
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Noinvite module: Gives channel mode +V
-#<module name="m_noinvite.so">
-
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # No kicks module: Adds the +Q channel mode
 #<module name="m_nokicks.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# No nicks module: Adds the +N channel mode
+# No nicks module: Adds the +N channel mode, as well as the +b N:
+# extended bantype. +N stops all users from changing their nick,
+# the +b N: extban stops anyone from matching a +b N:nick!user@host
+# mask from changing their nick.
 #<module name="m_nonicks.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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
+# This module is oper-only.
 #<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 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   -#-#-#-#-#-#-#-#-#-#-#
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Override module: Adds support for oper override
+# This module is oper-only.
 #<module name="m_override.so">
 #
 #-#-#-#-#-#-#-#-#-#-#   OVERRIDE CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
 # 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">
+#
+# 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   -#-#-#-#-#-#-#-#-#-#-#-#-#
 #<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">
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Quietban: Implements extended ban q:, which stops anyone matching
-# a mask like +b q:nick!user@host from speaking on channel.
-#<module name="m_quietban.so">
+# Muteban: Implements extended ban m:, which stops anyone matching
+# a mask like +b m:nick!user@host from speaking on channel.
+#<module name="m_muteban.so">
 #
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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.
 #<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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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.
-#                                                                       
-# N O T E!!
-#  >>  This CAN NOT be used at the same time as m_services <<
-# N O T E!!
+#
+# 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)
 #<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">
 
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Serverban: Implements extended ban s:, which stops anyone connected
+# to a server matching a mask like +b s:server.mask.here from joining.
+#<module name="m_serverban.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 may also (optionally) let the user know that their command was blocked.
+#<shun enabledcommands="PING PONG QUIT PART JOIN" notifyuser="yes">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sslinfo.cpp
+# and run make install, then uncomment this module to enable it.
+#
 #<module name="m_sslinfo.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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.
+# This module is oper-only.
 #<module name="m_ssl_oper_cert.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   -#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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   -#-#-#-#-#-#-#-#-#-#-#-#
 # 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   -#-#-#-#-#-#-#-#-#-#-#-#
 # 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   -#-#-#-#-#-#-#-#-#-#-#-#
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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.
+# This module is oper-only.
+# To use, TAXONOMY must be in one of your oper class blocks.
 #<module name="m_taxonomy.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Timed bans module: Adds timed bans and the /TBAN command
+# This module is oper-only.
+# To use, TBAN must be in one of your oper class blocks.
 #<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">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # 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">
+
+