]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - docs/inspircd.conf.example
who left out m_ssl_dummy?
[user/henk/code/inspircd.git] / docs / inspircd.conf.example
index 4e98838a72c33dd7fd06c4fcdb1dd22c9786877e..b4fda8c8c5c06cad6bf65471127220bd1771c19f 100644 (file)
@@ -1,32 +1,58 @@
 ########################################################################
-#                                                                     #
-#                    ---------------------------                      #
-#                    InspIRCd Configuration File                      #
-#                    ---------------------------                      #
-#                                                                     #
+#                                                                      #
+#               ___                ___ ____   ____    _                #
+#              |_ _|_ __  ___ _ __|_ _|  _ \ / ___|__| |               #
+#               | || '_ \/ __| '_ \| || |_) | |   / _` |               #
+#               | || | | \__ \ |_) | ||  _ <| |__| (_| |               #
+#              |___|_| |_|___/ .__/___|_| \_\\____\__,_|               #
+#                            |_|                                       #
+#      ____             __ _                       _   _               #
+#     / ___|___  _ __  / _(_) __ _ _   _ _ __ __ _| |_(_) ___  _ __    #
+#    | |   / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \   #
+#    | |__| (_) | | | |  _| | (_| | |_| | | | (_| | |_| | (_) | | | |  #
+#     \____\___/|_| |_|_| |_|\__, |\__,_|_|  \__,_|\__|_|\___/|_| |_|  #
+#                            |___/                                     #
+#                                                                      #
 ##################################||####################################
-                                #||#
+                                 #||#
 ##################################||####################################
-#                                                                     #
+#                                                                      #
 #         This is an example of the config file for InspIRCd.          #
 #             Change the options to suit your network                  #
-#                                                                     #
-#                 Last updated on : 01/05/2004                         #
+#                                                                      #
+#                 Last updated on : 09/01/2006                         #
 #                 Written by      : CC  (cc@backchat.co.za)            #
-#                 Updated by      : BlackDeathX (james@dreamirc.org)   #
+#                 Updated by      : katsklaw (katsklaw@gmail.com)      #
+#                 Updated by      : brain (brain@inspircd.org)         #
+#                                                                      #
+#    ____                _   _____ _     _       ____  _ _   _         #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |        #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |        #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|        #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)        #
+#                                                                      #
+#   Lines prefixed with READ THIS BIT, as shown above, are IMPORTANT   #
+#   lines, and you REALLY SHOULD READ THEM. Yes, THIS MEANS YOU. Even  #
+#   if you've configured InspIRCd before, these probably indicate      #
+#   something new or different to this version and you SHOULD READ IT. #
+#                                                                      #
+########################################################################
+#                                                                      #
+#         Unalphabeticalise the modules list at your own risk          #
+#                                                                      #
 ########################################################################
-
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-  SERVER DESCRIPTION  -#-#-#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
+#                                                                     #
 #   Here is where you enter the information about your server.        #
-#                                                                    #
-#  Syntax is as follows:                                             #
-#     <server name="server.name"                                     #
-#      description="Server Description"                                      #
-#      network="MyNetwork">                                          #
-#                                                                    #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#     <server name="server.name"                                      #
+#      description="Server Description"                               #
+#      network="MyNetwork">                                           #
+#                                                                     #
 
 <server name="penguin.omega.org.za"
         description="Waddle World"
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-   ADMIN INFORMATION   -#-#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
-#   Describes the Server Administrator's real name, nick             #
-#   and email address.                                               #
-#                                                                    #
-#  Syntax is as follows:                                             #
-#      <admin name="real name"                                       #
-#             nick="nick name"                                       #
-#              email="email@address.com">                            #
-#                                                                    #
+#                                                                     #
+#   Describes the Server Administrator's real name, nick              #
+#   and email address.                                                #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#       <admin name="real name"                                       #
+#              nick="nick name"                                       #
+#              email="email@address.com">                             #
+#                                                                     #
 
-<admin  name="Johnny Casino"
-        nick="CC"
-        email="cc@monkeynut.co.za">
+<admin  name="Johnny English"
+        nick="MI5"
+        email="MI5@the.best.secret.agent">
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-   PORT CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
-#   Enter the port and address bindings here.                        #
-#                                                                    #
-#  bind address - specifies which the address which ports bind       # 
-#  port                - opens an unused port                                #
+#                                                                     #
+#   Enter the port and address bindings here.                         #
+#                                                                     #
+#  bind address - specifies which the address which ports bind.       #
+#                 may be a hostname or an IP address. Resolution of   #
+#                 hostnames may block for up to one second per IP     #
+#                 as port binding occurs before the socket engine is  #
+#                 initialized and therefore nonblocking DNS is not    #
+#                 available at this point until startup is complete.  #
+#  port         - The port number to bind to                          #
 #  type         - can be 'clients' or 'servers'. The clients type is  #
 #                 a standard tcp based socket, the servers type is a  #
 #                 also a TCP based connection but of a different      #
 #                 format.                                             #
-#  default      - if the port type is 'servers' then this can be      #
-#                 specified. If set to 'yes', it indicates that this  #
-#                 port is the default route for all /connect commands.#
-#                 if you do not bind your default route to an         #
-#                 external ip, or all ip's, you may have connection   #
-#                 problems.                                           #
-#                                                                    #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  If you want to link servers to InspIRCd you must load the          #
+#  m_spanningtree module! Please see the modules list below for       #
+#  information on how to load this module! If you do not load this    #
+#  module, server ports will NOT be bound!                            #
+#                                                                     #
 #  Leaving address empty binds to all available interfaces            #
-#                                                                    #
+#                                                                     #
 #  Syntax is as follows:                                              #
 #                                                                     #
-# <bind address="ip number" port="port" type="clients">                      #
-# <bind address="ip number" port="port" type="servers">                      #
-# <bind address="ip number" port="port" type="servers" default="yes"> #
-#                                                                    #
+# <bind address="ip or host" port="port" type="clients">              #
+# <bind address="ip or host" port="port" type="servers">              #
+#                                                                     #
 
 <bind address="" port="6660" type="clients">
-<bind address="" port="7000" type="servers" default="yes">
+<bind address="" port="7000" type="servers">
 <bind address="" port="7001" type="servers">
 
 
 #                                                                     #
 #  Syntax is as follows:                                              #
 #       <power diepass="die password" restartpass="restart password"  #
-#       pause="secs before dying">                                   #
+#        pause="secs before dying">                                   #
 #                                                                     #
 
 <power diepass="diepass" restartpass="restartpass" pause="2">
 
 
-#-#-#-#-#-#-#-#-#-#-  CONNECTIONS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
+#-#-#-#-#-#-#-#-#-#  INCLUDE CONFIGURATION  #-#-#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# This optional tag allows you to include another config file         #
+# allowing you to keep your configuration tidy. The configuration     #
+# file you include will be treated as part of the configuration file  #
+# which includes it, in simple terms the inclusion is transparent.    #
+#                                                                     #
+# All paths to config files are relative to the directory of the main #
+# config file inspircd.conf, unless the filename starts with a forward#
+# slash (/) in which case it is treated as an absolute path.          #
+#                                                                     #
+# Syntax is as follows:                                               #
+#       <include file="file.conf">                                    #
+#                                                                     #
+
+#-#-#-#-#-#-#-#-#-#-  CONNECTIONS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
 #   This is where you can configure which connections are allowed     #
-#   and denied access onto your server.                                      #
-#   The password is optional.                                        #
+#   and denied access onto your server.                               #
+#   The password is optional.                                         #
 #   You may have as many of these as you require.                     #
 #   To allow/deny all connections use a *                             #
-#                                                                    #
-#  Syntax is as follows:                                             #
-#      <connect allow="ip or host">                                  #
-#      <connect allow="ip or host" password="blahblah">              #
-#       <connect allow="ip or host" password="blah" timeout="10">     #
-#      <connect allow="ip or host" timeout="blah" flood="5">         #
-#      <connect deny="ip or host">                                   #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#       <connect allow="ip mask">                                     #
+#       <connect allow="ip mask" password="blahblah">                 #
+#       <connect allow="ip mask" password="blah" timeout="10">        #
+#       <connect allow="ip mask" timeout="blah" flood="5">            #
+#       <connect allow="ip mask" threshold="8" pingfreq="120">        #
+#       <connect allow="ip mask" sendq="99999" revcq="696969">        #
+#       <connect allow="ip mask" maxlocal="3" maxglobal="3">          #
+#       <connect deny="ip mask">                                      #
 #                                                                     #
 #   You may optionally include timeout="x" on any allow line, which   #
 #   specifies the amount of time given before an unknown connection   #
 #   is closed if USER/NICK/PASS are not given. This value is in secs  #
-#                                                                    #
-#   You may also optionally include a flood="x" line which indicates  #
+#                                                                     #
+#   You should also include a flood="x" line which indicates          #
 #   the number of lines a user may place into their buffer at once    #
-#   before they are disconnected for excess flood. The default is to  #
-#   DISABLE this feature. A recommended value is 10.                  #
-
+#   before they are disconnected for excess flood. This feature can   #
+#   not be disabled, however it can be set to exremely high values,   #
+#   rendering it effectively disabled. A recommended value is 10.     #
+#   A counter is maintained for each user which is reset every        #
+#   'threshold' seconds and specifying this threshold value with      #
+#   threshold="X" indicates how often the counter is reset. For       #
+#   example, with flood="5" and threshold="8", the user may not send  #
+#   more than 5 lines in 8 secs.                                      #
+#                                                                     #
+#   You may optionally specify the sendq size and ping frequency of   #
+#   each connect:allow line using the pingfreq="X" and sendq="X"      #
+#   settings as shown in the full example below.                      #
+#   The ping frequency is specified in seconds, and the sendq size    #
+#   in bytes. It is recommended, although not enforced, that you      #
+#   should never set your sendq size to less than 8k. Send Queues are #
+#   dynamically allocated and can grow as needed up to the maximum    #
+#   size specified.                                                   #
+#                                                                     #
+#   The optional recvq value is the maximum size which users in this  #
+#   group may grow their receive queue to. This is recommended to be  #
+#   kept pretty low compared to the sendq, as users will always       #
+#   recieve more than they send in normal circumstances. The default  #
+#   if not specified is 4096.                                         #
+#                                                                     #
+#   IMPORTANT NOTE, CALL THE CONFUSION POLICE!                        #
+#   The sendq is the data waiting to be sent TO THE USER.             #
+#   The recvq is the data being received FROM THE USER.               #
+#   The names sendq and recvq are from the SERVER'S PERSPECTIVE not   #
+#   that of the user... Just to clear up any confusion or complaints  #
+#   that these are backwards :p                                       #
+#                                                                     #
+#   The localmax and globalmax values can be used to enforce local    #
+#   and global session limits on connections. The session limits are  #
+#   counted against all users, but applied only to users within the   #
+#   class. For example, if you had a class 'A' which has a session    #
+#   limit of 3, and a class 'B' which has a session limit of 5, and   #
+#   somehow, two users managed to get into class B which also match   #
+#   class A, there is only one connection left for this IP now in A,  #
+#   but if they can connect again to B, there are three. You get the  #
+#   idea (i hope).                                                    #
+#                                                                     #
 
 <connect allow="196.12.*"  password="secret">
-<connect allow="*" timeout="60" flood="10">
+<connect allow="*" timeout="60" flood="10" threshold="60" pingfreq="120" sendq="262144" recvq="4096" localmax="3" globalmax="3">
 
 <connect deny="69.254.*">
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-  CLASS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
+#                                                                     #
 #   Classes are a group of commands which are grouped together        #
 #   and given a unique name. They used to define which commands       #
 #   are available to certain types of Operators.                      #
-#                                                                    #
-#  Syntax is as follow:                                                      #
-#      <class name="name" commands="oper commands">                  #
-#                                                                    #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#       <class name="name" commands="oper commands">                  #
+#                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  You are not forced to give these classes the names given below.    #
+#  You can create your own named classes, if you want, in fact that   #
+#  is the whole idea of this system!                                  #
+#                                                                     #
 
 <class name="Shutdown" commands="DIE RESTART REHASH">
 <class name="ServerLink" commands="CONNECT SQUIT">
-<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE SHUN">
-<class name="OperChat" commands="WALLOPS CHATOPS">
+<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE">
+<class name="OperChat" commands="WALLOPS GLOBOPS">
 <class name="HostCloak" commands="SETHOST SETIDENT SETNAME">
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-  OPERATOR COMPOSITION   -#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   This is where you specify which types of operators you have on    #
 #   your server, as well as the commands they are allowed to use.     #
-#   This works alongside with the classes specified above.           #
-#                                                                    #
-#  type name  - a name for the combined class types                  #
+#   This works alongside with the classes specified above.            #
+#                                                                     #
+#  type name  - a name for the combined class types                   #
+#                                                                     #
 #  classes    - specified above, used for flexibility for the         #
 #               server admin to decide on which operators get         #
-#              what commands                                         #
-#  host              - hostmask operators will recieve on oper-up            #
-#                                                                    #
-#  Syntax is as follows:                                             #
-#      <type name="name" classes="class name" host="oper hostmask">  #
-#                                                                    #
+#               what commands                                         #
+#                                                                     #
+#  host       - optional hostmask operators will recieve on oper-up.  #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#       <type name="name" classes="class name" host="oper hostmask">  #
+#                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  You are not forced to give these types the names given below.      #
+#  You can create your own named types, if you want, in fact that     #
+#  is the whole idea of this system!                                  #
+#                                                                     #
 
 <type name="NetAdmin" classes="OperChat BanControl HostCloak Shutdown ServerLink" host="netadmin.omega.org.za">
 <type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za">
-<type name="LocalOp" classes="OperChat BanControl HostCloak" host="local.omega.org.za">
 <type name="Helper" classes="HostCloak" host="helper.omega.org.za">
 
 
 #-#-#-#-#-#-#-#-#-#-#-  OPERATOR CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   Opers are defined here. This is a very important section.         #
 #   Remember to only make operators out of truthworthy people.        #
-#                                                                    #
-#  name      - oper name, best to use lower-case                     #
-#  password  - password to oper-up,                                  #
-#              encryption not yet available                          #
-#  host      - host of client allowed to oper-up, more hostmasks      #
-#              seperated by spaces, wildcards accepted               #
-#  type      - specified above, defines the kind of operator         #
-#                                                                    #
+#                                                                     #
+#  name      - oper name, best to use lower-case                      #
+#                                                                     #
+#  password  - password to oper-up,                                   #
+#              encryption not supported by inspircd. However, there   #
+#              are modules that allow for oper password encryption.   #      
+#                                                                     #
+#  host      - host of client allowed to oper-up.                     #
+#              wildcards accepted, seperate multiple hosts with space #
+#                                                                     #
+#  type      - specified above, defines the kind of operator          #
+#                                                                     #
 #  Syntax is as follows:                                              #
-#      <oper name="login"                                            #
-#            password="pass"                                         #
-#             host="hostmask@of.oper"                                #
-#             type="oper type">                                              #
-#                                                                    #
-
-<oper   name="cc"
-       password="s3cret"
-        host="*@*"
+#       <oper name="login"                                            #
+#             password="pass"                                         #
+#             host="hostmask@of.oper"                                 #
+#             type="oper type">                                       #
+#                                                                     #
+
+<oper   name="katsklaw"
+        password="s3cret"
+        host="ident@dialup15.isp.com *@localhost *@server.com"
         type="NetAdmin">
 
 
 # Defines which servers can link to this one, and which servers this  #
 # server may create outbound links to.                                #
 #                                                                     #
-# name      - The name is the canocial name of the server, it does    #
-#             not have to resolve - but it is expected to be sent in  #
-#             the remote servers connection info.                     #
-# ipaddr    - Valid host or ip address for remote server. *           #
-# port      - Valid listening UDP port for remote server.             #
-# sendpass  - Password to send to create an outbound connection to    #
-#             this server.                                            #
-# recvpass  - Password to receive to accept an inbound connection     #
-#             from this server.                                       #
+# name        -   The name is the canocial name of the server, does   #
+#                 not have to resolve - but it is expected to be sent #
+#                 in the remote servers connection info.              #
+# ipaddr      -   Valid host or ip address for remote server. *       #
+#                                                                     #
+# port        -   The TCP port for the remote server.                 #
+#                                                                     #
+# sendpass    -   Password to send to create an outbound connection   #
+#                 to this server.                                     #
+#                                                                     #
+# recvpass    -   Password to receive to accept an inbound connection #
+#                 from this server.                                   #
+#                                                                     #
+# autoconnect -   Sets the server to autoconnect. Where x is the num. #
+# (optional)      of seconds between attempts. e.g. 300 = 5 minutes.  #
+#                                                                     #
+# encryptionkey - Encryption key to be used for AES encryption, where #
+#                 supported. Links using the spanning tree protocol   #
+#                 support AES. The encryption key must be EXACTLY 8,  #
+#                 16 or 32 characters in length for a 64, 128 or 256  #
+#                 bit key, respectively.                              #
+#                                                                     #
+# hidden        - When using m_spanningtree.so for linking. you may   #
+#                 set this to 'yes', and if you do, the IP address/   #
+#                 hostname of this connection will NEVER be shown to  #
+#                 any opers on the network. In /STATS c its address   #
+#                 will show as *@<hidden>, and during CONNECT and     #
+#                 inbound connections, its IP will show as <hidden>   #
+#                 UNLESS the connection fails (e.g. due to a bad      #
+#                 password or servername)                             #
 #                                                                     #
 # to u:line a server (give it extra privilages required for running   #
 # services, Q, etc) you must include the <uline server> tag as shown  #
 # you MUST put a.b.com into your link block, and NOT the IP address   #
 # of a.b.com. The system uses reverse resolution.                     #
 #                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  If you want to link servers to InspIRCd you must load the          #
+#  m_spanningtree module! Please see the modules list below for       #
+#  information on how to load this module! If you do not load this    #
+#  module, server links will NOT work!                                #
+#                                                                     #
 
 <link name="hub.penguin.org"
-       ipaddr="penguin.box.com"
-       port="7000"
-       sendpass="outgoing!password"
-       recvpass="incoming!password">
+        ipaddr="penguin.box.com"
+        port="7000"
+        autoconnect="300"
+        sendpass="outgoing!password"
+        recvpass="incoming!password">
 
 <link name="services.antarctic.com"
-       ipaddr="localhost"
-       port="7000"
-       sendpass="penguins"
-       recvpass="polarbears">
+        ipaddr="localhost"
+        port="7000"
+        sendpass="penguins"
+        recvpass="polarbears">
 
 <uline server="services.antarctic.com">
 
 
-
 #-#-#-#-#-#-#-#-#-#-  MISCELLANEOUS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   These options let you define the path to your motd and rules      #
-#   files.                                                           #
-#                                                                    #
+#   files.                                                            #
+#                                                                     #
 
-<files  motd="/home/cc/inspircd-1.0/conf/inspire.motd"
-       rules="/home/cc/inspircd-1.0/conf/inspire.rules">
+<files  motd="/home/cc/inspircd/conf/inspircd.motd"
+        rules="/home/cc/inspircd/conf/inspircd.rules">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
-# Define your DNS server address here. InspIRCd has its own resolver  #
-# and you must define this otherwise nobody's host will resolve. The  #
-# timeout value is in seconds.                                       #
+# Define your DNS server address here. InspIRCd has its own resolver. #
+# If you do not define this value, the first dns server from your     #
+# /etc/resolv.conf file is read. If no entries are found in this file #
+# or the file cannot be opened, the default value '127.0.0.1' is used #
+# instead. The timeout value is in seconds.                           #
+#                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+# When choosing a server, be sure to choose one which will do a       #
+# RECURSIVE LOOKUP. InspIRCd's resolver does not currently do these   #
+# recursive lookups itself, to save time and resources. The dns       #
+# server recommended by the InspIRCd team is bind, available from the #
+# ISC website. If your DNS server does not do a recursive lookup, you #
+# will be able to notice this by the fact that none of your users are #
+# resolving even though the DNS server appears to be up! Most ISP and #
+# hosting provider DNS servers support recursive lookups.             #
 #                                                                     #
 
 <dns server="127.0.0.1" timeout="5">
 #   Just remove this... Its here to make you read ALL of the config   #
 #   file options ;)                                                   #
 
-<die value="And god came down from the heavens and smote down the noob.">
+<die value="You should probably edit your config *PROPERLY* and try again.">
 
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-  SERVER OPTIONS   -#-#-#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   Settings to define which features are useable on your server.     #
-#                                                                    #
+#                                                                     #
 #  prefixquit    - a prefix for a client's quit message               #
+#                                                                     #
 #  loglevel      - specifies what detail of messages to log in the    #
 #                  log file. You may select from debug, verbose,      #
 #                  default, sparse and none.                          #
-#  allowhalfop   - allows the +h channel mode                        #
+#  allowhalfop   - allows the +h channel mode                         #
+#                                                                     #
 #  noservices    - If noservices is true, yes, or 1, then the first   #
 #                  user into a channel gets founder status. This is   #
 #                  only useful on networks running the m_chanprotect  #
 #                  module without services.                           #
+#                                                                     #
 #  netbuffersize - size of the buffer used to receive data from       #
 #                  clients. The ircd may only read() this amount      #
-#                 of text in one go at any time. (OPTIONAL)          #
+#                  of text in one go at any time. (OPTIONAL)          #
+#                                                                     #
 #  maxwho        - The maximum number of results returned by a /WHO   #
 #                  query. This is to prevent /WHO being used as a     #
 #                  spam vector or means of flooding an ircd. The      #
 #                  default is 128, it is not recommended to raise it  #
 #                  above 1024. Values up to 65535 are permitted.      #
+#                                                                     #
+#  somaxconn     - The maximum number of sockets that may be waiting  #
+#                  in the accept queue. This usually allows the ircd  #
+#                  to soak up more connections in a shorter space of  #
+#                  time when increased but please be aware there is a #
+#                  system defined maximum value to this, the same way #
+#                  there is a system defined maximum number of file   #
+#                  descriptors. Some systems may only allow this to   #
+#                  be up to 5 (ugh) while others such as FreeBSD will #
+#                  default to a much nicer 128.                       #
+#                                                                     #
+#  moduledir     - This optional value indicates a runtime change of  #
+#                  the location where modules are to be found. This   #
+#                  does not add a supplementary directory. There can  #
+#                  only be one module path.                           #
+#                                                                     #
+#  softlimit     - This optional feature allows a defined softlimit.  #
+#                  if defined sets a soft maxconnections value, has   #
+#                  to be less than the ./configure maxclients         #
+#                                                                     #
+#  operonlystats - The operonlystats field is optional and specifies  #
+#                  which stats characters in /STATS may only be       #
+#                  requested by an IRC operator. Stats characters in  #
+#                  this field are case sensitive and enforced as      #
+#                  oper-only independent of if they are in a module   #
+#                  or the core.                                       #
+#                                                                     #
+#  customversion - If you specify this configuration item, and it is  #
+#                  not set to an empty value, then when a user does   #
+#                  a /VERSION command on the ircd, this string will   #
+#                  be displayed as the second portion of the output,  #
+#                  replacing the system 'uname', compile flags and    #
+#                  socket engine/dns engine names. You may use this   #
+#                  to enhance security, or simply for vanity.         #
+#                                                                     #
+#  maxtargets    - The maxtargets field is optional, and if not       #
+#                  defined, defaults to 20. It indicates the maximum  #
+#                  number of targets which may be given to commands   #
+#                  such as PRIVMSG, KICK etc.                         #
+#                                                                     #
+#  hidesplits    - When set to 'yes', will hide split server names    #
+#                  from non-opers. Non-opers will see '*.net *.split' #
+#                  instead of the server names in the quit message,   #
+#                  identical to the way IRCu displays them.           #
+#                                                                     #
+#  hidebans      - When set to 'yes', will hide gline, kline, zline   #
+#                  and qline quit messages from non-opers. For        #
+#                  example, user A who is not an oper will just see   #
+#                  (G-Lined) while user B who is an oper will see the #
+#                  text (G-Lined: Reason here) instead.               #
+#                                                                     #
+#  hidewhois     - When defined with a non-empty value, the given     #
+#                  text will be used in place of the user's server    #
+#                  in WHOIS, when a user is WHOISed by a non-oper.    #
+#                  For example, most nets will want to set this to    #
+#                  something like '*.netname.net' to conceal the      #
+#                  actual server the user is on.                      #
+#                                                                     #
+#  flatlinks     - When you are using m_spanningtree.so, and this     #
+#                  value is set to true, yes or 1, /MAP and /LINKS    #
+#                  will be flattened when shown to a non-oper.        #
+#                                                                     #
+#  hideulines    - When you are using m_spanningtree.so, and this     #
+#                  value is set to true, yes or 1, then U-lined       #
+#                  servers will be hidden in /LINKS and /MAP. For non #
+#                  opers. Please be aware that this will also hide    #
+#                  any leaf servers of a U-lined server, e.g. jupes.  #
+#                                                                     #
+#  tempdir       - If defined, indicates a path where modules will be #
+#                  temporarily copied before loading. If not defined, #
+#                  defaults to /tmp.                                  #
+#                                                                     #
 
 <options prefixquit="Quit: "
-        loglevel="default"
-        netbuffersize="10240"
+         loglevel="default"
+         netbuffersize="10240"
          maxwho="128"
-        noservices="0"
-        allowhalfop="yes">
+         noservices="0"
+         somaxconn="128"
+         softlimit="128"
+         operonlystats="oclgkz"
+         customversion=""
+         maxtargets="20"
+        hidesplits="no"
+        hidebans="no"
+        hidewhois=""
+        flatlinks="no"
+        hideulines="no"
+         allowhalfop="yes">
 
 
 
 #  using the 'make' command, all compiled modules will be moved into  #
 #  the folder you specified when you ran ./configure. The module tag  #
 #  automatically looks for modules in this location.                  #
-
-<module name="m_foobar.so">
-
+#  If you attempt to load a module outside of this location, either   #
+#  in the config, or via /LOADMODULE, you will receive an error.      #
+#                                                                     #
+#  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#
+#  each modules link for any additional conf tags they require.       #
+#                                                                     #
+#  WINDOWS USERS PLEASE NOTE: You can still load these modules! They  #
+#  are incorporated into the executable and can be loaded and removed #
+#  similarly to if they were in a ramdisk.                            #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+# 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">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Alias module: Allows you to define server-side command aliases
+#<module name="m_alias.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-  ALIAS DEFINITIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# If you have the m_alias.so module loaded, you may also define       #
+# aliases as shown below. They are commonly used to provide shortcut  #
+# commands to services, however they are not limited to jsut this use.#
+# An alias tag requires the following values to be defined in it:     #
+#                                                                     #
+# text        -      The text to detect at the start of the line,     #
+#                    must be at the start of the line to trigger the  #
+#                    alias. Cant contain spaces, but case insensitive #
+# replace     -      The text to replace 'text' with. Usually this    #
+#                    will be "PRIVMSG ServiceName" or similar.        #
+# requires    -      If you provide a value for 'requires' this means #
+#                    the given nickname MUST be online for the alias  #
+#                    to successfully trigger. If they are not, then   #
+#                    the user receives a 'no such nick' 401 numeric.  #
+# uline       -      Defining this value with 'yes', 'true' or '1'    #
+#                    will ensure that the user given in 'requires'    #
+#                    must also be 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, then an     #
+#                    oper-alert is sent out as this is possibly signs #
+#                    of a user trying to impersonate a service.       #
+#                                                                     #
+#<alias text="NICKSERV" replace="PRIVMSG NickServ" requires="NickServ" uline="yes">
+#<alias text="CHANSERV" replace="PRIVMSG ChanServ" requires="ChanServ" uline="yes">
+#<alias text="NS" replace="PRIVMSG NickServ" requires="NickServ" uline="yes">
+#<alias text="CS" replace="PRIVMSG ChanServ" requires="ChanServ" uline="yes">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Antibear security module: Prevents 'bear.txt' based trojans from
+# connecting to your network by sending them a numeric they can't handle.
+#<module name="m_antibear.txt">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Antibottler module: Labels bottler leech bots
+#<module name="m_antibottler.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Ban except module: Adds support for channel ban exceptions (+e)
+#<module name="m_banexception.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Block amsg module: Attempt to block all usage of /amsg and /ame
+#<module name="m_blockamsg.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-  BLOCKAMSG CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# If you have the m_blockamsg.so module loaded, you can configure it  #
+# with the <blockamsg> tag:                                           #
+#                                                                     #
+# delay          -   How many seconds between two messages to force   #
+#                    them to be recognised as unrelated.              #
+# action         -   Any of 'notice', 'noticeopers', 'silent', 'kill' #
+#                    or 'killopers'. Define how to take action when   #
+#                    a user uses /amsg or /ame.                       #
+#
+#<blockamsg delay="3" action="killopers">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Block CAPS module: Blocking all-CAPS messages with cmode +P
+#<module name="m_blockcaps.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Block colour module: Blocking colour-coded messages with cmode +c
+#<module name="m_blockcolor.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Botmode module: Adds the user mode +B
+#<module name="m_botmode.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CBAN module: Lets you disallow channels from being used at runtime.
+#<module name="m_cban.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Censor module: Adds the channel mode +G
+#<module name="m_censor.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-  CENSOR  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# Optional - If you specify to use the m_censor module, then specfiy  #
+# below the path to the censor.conf file. See also:                   #
+# Censor file, see http://www.inspircd.org/wiki/Censor_Module         #
+#
+#<censor file="/path/to/censor.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channel filter module: Allows channel-op defined message
+# filtering using simple string matches (channel mode +g)
+#<module name="m_chanfilter.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Chanprotect module: gives +q and +a channel modes
+#<module name="m_chanprotect.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CHGHOST module: Adds the /CHGHOST command
+#<module name="m_chghost.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CHGIDENT module: Adds the /CHGIDENT command
+#<module name="m_chgident.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Cloaking module: Adds usermode +x and cloaking support
+#<module name="m_cloaking.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- CLOAKING  CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# Optional - If ypu specify the m_cloaking.so module as above, you    #
+# must define cloak keys, and optionally a cloak prefix as shown      #
+# below. When using cloaking, the cloak keys are MANDITORY and must   #
+# be included. However, if prefix is not included, it will default    #
+# to your networks name from the <server> tag.                        #
+#                                                                     #
+# <cloak key1="-543241423"                                            #
+#        key2="5378410432"                                            #
+#        key3="1143242382"                                            #
+#        key4="9504324581"                                            #
+#        prefix="mynet">                                              #
+#                                                                     #
+# Please note that the key values will accept any number, positive    #
+# or negative, and should be large numbers. Using small numbers such  #
+# as "7" or "1924" will seriously weaken the security of your cloak.  #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Conn-Lusers: Shows the LUSERS output on connect
+#<module name="m_conn_lusers.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Conn-Wait-for-Pong: Don't let a user connect until they PONG
+#<module name="m_conn_waitpong.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-   WAITPONG CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# If you have the m_conn_waitpong.so module loaded, configure it with #
+# the <waitpong> tag:                                                 #
+#                                                                     #
+# sendsnotice    -   Whether to send a snotice on connect, like Unreal#
+# killonbadreply -   Whether to kill the user if they send the wrong  #
+#                    PONG reply.                                      #
+#
+#<waitpong sendsnotice="yes" killonbadreply="yes">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Deny Channels: Deny Channels from being used by users
+#<module name="m_denychans.so"> 
+#
+#-#-#-#-#-#-#-#-#-#-#-   DENYCHAN DEFINITIONS  -#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# If you have the m_denychans.so module loaded, you need to specify   #
+# the channels to deny:
+#                                                                     #
+# name        -      The channel name to deny.                        #
+# allowopers  -      If operators are allowed to override the deny.   #
+# reason      -      Reason given for the deny.                       #
+#
+#<badchan name="#gods" allowopers="yes" reason="Tortoises!">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Devoice Module: Let users devoice themselves.
+#<module name="m_devoice.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Filter module: Provides glob-based message filtering
+#<module name="m_filter.so">
+#OR
+# PCRE filter module: Filters messages using regular expressions
+#<module name="m_filter_pcre.so">
+#
 #-#-#-#-#-#-#-#-#-#-#-  FILTER  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
-# Optional - If you specify to use the m_filter.so module, then       #
-# specfiy below the path to the filter.conf file.                     #
-
-<filter file="/path/to/inspircd/filter.conf">
-
-
+# Optional - If you specify to use the m_filter or m_filter_pcre      #
+# modules, then specfiy below the path to the filter.conf file.       #
+#
+#<filter file="/path/to/inspircd/filter.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Foobar module - does nothing - historical relic
+#<module name="m_foobar.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Globops module: gives /GLOBOPS and usermode +g
+#<module name="m_globops.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Global load module: Allows loading and unloading of modules network-
+# wide (USE WITH EXTREME CAUTION!)
+#<module name="m_globalload.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# HELPOP module: Provides the /HELPOP command
+#<module name="m_helpop.so">
+#
 #-#-#-#-#-#-#-#-#-#-#-#-  HELPOP  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 # Optional - If you specify to use the m_helpop.so module, then       #
 # specify below the path to the helpop.conf file.                     #
+#
+#<helpop file="/path/to/inspircd/helpop.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Hostchange module: Allows a different style of cloaking
+#<module name="m_hostchange.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 #
+#
+#<host suffix="polarbears.org">
+#<hostchange mask="*@fbi.gov" action="addnick">
+#<hostchange mask="*r00t@*" action="suffix">
+#<hostchange mask="a@b.com" action="set" value="blah.blah.blah">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Ident: Provides RFC 1413 ident lookup support
+#<module name="m_ident.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#-   IDENT CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# Optional - If you are using the m_ident.so module, then you can     #
+# specify the timeout for ident lookups here. If not defined, it will #
+# default to one second. This is a non-blocking timeout which holds   #
+# the user in a 'connecting' state until the lookup is complete.      #
+#
+#<ident timeout="5">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Invite except module: Adds support for channel invite exceptions (+I)
+#<module name="m_inviteexception.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Join flood module: Adds support for join flood protection (+j)
+#<module name="m_joinflood.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Anti-Auto-Rejoin: Adds support for prevention of auto-rejoin (+J)
+#<module name="m_kicknorejoin.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Knock module: adds the /KNOCK command and +K channel mode
+#<module name="m_knock.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Msg flood module: Adds message/notice flood protection (+f)
+#<module name="m_messageflood.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Nicklock module: Let opers change a user's nick and then stop that
+# user from changing their nick again. /NICKLOCK and /NICKUNLOCK
+#<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
+#<module name="m_nonicks.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# No Notice module: adds the channel mode +T
+#<module name="m_nonotice.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper channels mode: Adds the +O channel mode
+#<module name="m_operchans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper Join module: Forces opers to join a channel on oper-up
+#<module name="m_operjoin.so">
+#
+#-#-#-#-#-#-#-#-#-#-#   OPERJOIN CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# If you are using the m_operjoin.so module, specify the channel here #
+#
+#<operjoin channel="#channel">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper MOTD module: Provides support for seperate message of the day
+# on oper-up
+#<module name="m_opermotd.so">
+#
+#-#-#-#-#-#-#-#-#-#-#   OPERMOTD CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# If you are using the m_opermotd.so module, specify the motd here    #
+#
+#<opermotd file="/path/to/oper.motd">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper WHO module: Provides a more revealing /WHO to opers
+#<module name="m_operwho.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Override module: Adds support for oper override
+#<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                   #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# 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
+#<module name="m_operlevels.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper MD5 module: Allows MD5 hashed oper passwords
+#<module name="m_opermd5.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper SHA256 module: Allows SHA256 hashed oper passwords
+# This module is in src/modules/extra
+#<module name="m_opersha256.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
+#<module name="m_opermodes.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Parking module: Adds parking support and /PARK and /UNPARK
+#<module name="m_park.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#   PARK CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# m_park.so is too complex it describe here, see the wiki:            #
+# http://www.inspircd.org/wiki/User_Parking_Module                    #
 
-<helpop file="/path/to/inspircd/helpop.conf">
-
-
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Random Quote module: provides a random quote on connect
+#<module name="m_randquote.so">
+#
 #-#-#-#-#-#-#-#-#-#-  RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
-# Optional - If you specify to use the m_randquotes.so module, then   #
+# Optional - If you specify to use the m_randquote.so module, then    #
 # specify below the path to the randquotes.conf file.                 #
+#
+#<randquote file="/path/to/inspircd/randquotes.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Redirect module: Adds channel redirection (mode +L)
+#<module name="m_redirect.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Remove module: Adds the /REMOVE command which is a peaceful
+# alternative to /KICK
+#<module name="m_remove.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Restricted channels module: Allows only opers to create channels
+#<module name="m_restrictchans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Restrict message module: Allows users to only message opers
+#<module name="m_restrictmsg.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Provide /LIST throttling (to prevent flooding) and /LIST safety to
+# prevent excess flood when the list is large.
+#<module name="m_safelist.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAJOIN module: Adds the /SAJOIN command
+#<module name="m_sajoin.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAMODE module: Adds the oper /SAMODE command
+#<module name="m_samode.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SANICK module: Allows opers to change user's nicks
+#<module name="m_sanick.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAPART module: Adds the oper /SAPART command
+#<module name="m_sapart.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAQUIT module: Adds the oper /SAQUIT command (abusable!!!)
+#<module name="m_saquit.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-
+# Secure list module: Prevent /LIST in the first minute of connection,
+# crippling most spambots and trojan spreader bots.
+#<module name="m_securelist.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Set Idle module: Adds a command for opers to change their
+# idle time (mainly a toy)
+#<module name="m_setidle.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Services support module: Adds several usermodes such as +R and +M
+#<module name="m_services.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Sethost module: Adds the /SETHOST command
+#<module name="m_sethost.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Setident module: Adds the /SETIDENT command
+#<module name="m_setident.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SETNAME module: Adds the /SETNAME command
+#<module name="m_setname.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Show Whois module: Adds the +W usermode which allows opers
+# to see when they are whois'ed
+#<module name="m_showwhois.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Spy module: Adds the commands SPYLIST and SPYNAMES that let opers
+# see who is in a +s channel, and list +s channels, show keys of keyed
+# channels the oper is not a member of etc. (standard 'abusive' features
+# of unrealircd, modulized here in InspIRCd).
+#<module name="m_spy.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SSL channel mode module: Adds support for SSL-only channels (+z).
+# 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
+# src/modules/extra, or answer 'yes' in ./configure when asked if you
+# want to enable this, or it will not load.
+#<module name="m_ssl_gnutls.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-  GNUTLS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# m_ssl_gnutls.so is too complex it describe here, see the wiki:      #
+# http://www.inspircd.org/wiki/GnuTLS_SSL_Module                      #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# OpenSSL ssl module: Adds support for client-server SSL using OpenSSL,
+# if enabled. You must copy the source for this module from the directory
+# src/modules/extra, or answer 'yes' in ./configure when asked if you
+# want to enable this, or it will not load.
+#<module name="m_ssl_openssl.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- OPENSSL CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# m_ssl_openssl.so is too complex it describe here, see the wiki:     #
+# http://www.inspircd.org/wiki/OpenSSL_SSL_Module                     #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Strip colour module: Adds the channel mode +S
+#<module name="m_stripcolor.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SILENCE module: Adds support for /SILENCE
+#<module name="m_silence.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQL module: Allows other SQL modules to access SQL databases
+# through a unified API. You must copy the source for this module
+# from the directory src/modules/extra
+#<module name="m_sql.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# m_sql.so is more complex than described here, see the wiki for more:#
+# http://www.inspircd.org/wiki/SQL_Service_Provider_Module            #
+#
+#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="1">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQL authentication module: Allows IRCd connections to be tied into
+# a database table (for example a forum). You must copy the source for
+# this module from the directory src/modules/extra
+#<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              #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQL logging module: Allows you to log network-wide data for your
+# network in a fully normalized set of SQL tables. You must copy the
+# source for this module from the directory src/modules/extra
+#<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           #
+#                                                                     #
+#<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
+#<module name="m_sqloper.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# dbid       - Database ID to use (see m_sql)                         #
+#                                                                     #
+# See also: http://www.inspircd.org/wiki/SQL_Oper_Storage_Module      #
+#                                                                     #
+#<sqloper dbid="1">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SWHOIS module: Allows you to add arbitary lines to user WHOIS.
+#<module name="m_swhois.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Test command module: Does nothing significant. Read: pointless.
+#<module name="m_testcommand.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Timed bans module: Adds timed bans and the /TBAN command
+#<module name="m_timedbans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Uninvite module: Adds the /UNINVITE command which lets users remove
+# pending invites from channels without waiting for the user to join.
+#<module name="m_uninvite.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Userip module: Adds the /USERIP command
+#<module name="m_userip.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Vhost module: Adds the VHOST command which allows for adding virtual
+# hosts which are accessible using a username and password in the config.
+#<module name="m_vhost.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- VHOST CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
+# user       - Username for the vhost.                                #
+#                                                                     #
+# pass       - Password for the vhost.                                #
+#                                                                     #
+# host       - Vhost to set.                                          #
+#
+#<vhost user="some_username" pass="some_password" host="some.host">
 
-<randquote file="/path/to/inspircd/randquotes.conf">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Watch module: Adds the WATCH command, which is used by clients to 
+# maintain notify lists.
+#<module name="m_watch.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-  BAN OPTIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 
 <exception host="*@ircop.host.com" reason="Opers hostname">
 
-#-#-#-#-#-#-#-#-#-#-#-  ALIAS DEFINITIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
-#                                                                     #
-# If you have the m_alias.so module loaded, you may also define       #
-# aliases as shown below. They are commonly used to provide shortcut  #
-# commands to services, however they are not limited to jsut this use.#
-# An alias tag requires the following values to be defined in it:     #
-#                                                                     #
-# text        -      The text to detect at the start of the line,     #
-#                    must be at the start of the line to trigger the  #
-#                    alias. May contain spaces, but case insensitive. #
-# replace     -      The text to replace 'text' with. Usually this    #
-#                    will be "PRIVMSG ServiceName :" or similar.      #
-# requires    -      If you provide a value for 'requires' this means #
-#                    the given nickname MUST be online for the alias  #
-#                    to successfully trigger. If they are not, then   #
-#                    the user receives a 'no such nick' 401 numeric.  #
-# uline       -      Defining this value with 'yes', 'true' or '1'    #
-#                    will ensure that the user given in 'requires'    #
-#                    must also be 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, then an     #
-#                    oper-alert is sent out as this is possibly signs #
-#                    of a user trying to impersonate a service.       #
-#                                                                     #
-
-<alias text="NICKSERV" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
-<alias text="CHANSERV" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
-<alias text="NS" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
-<alias text="CS" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
-
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN  -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 #   You should already know what to do here :)                        #
 
-<die value="All l33t noobs must edit their configs.">
+<die value="You should probably edit your config *PROPERLY* and try again.">
 
 
 #########################################################################
-#                                                                      #
-#               -InspIRCd Development and Coding Team-                 #
-#                          www.inspircd.org                            #
-#                                                                      #
+#                                                                       #
+#                     - InspIRCd Development Team -                     #
+#                        http://www.inspircd.org                        #
+#                                                                       #
 #########################################################################