# This is an example of the config file for InspIRCd. #
# Change the options to suit your network #
# #
-# Last updated on : 04/09/2006 #
-# Written by : CC (cc@backchat.co.za) #
-# Updated by : katsklaw (katsklaw@gmail.com) #
-# Updated by : brain (brain@inspircd.org) #
+# $Id$
# #
# ____ _ _____ _ _ ____ _ _ _ #
# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
# #
# <server name="server.name" #
# description="Server Description" #
+# networkemail="Email address shown on g/k/z/q lines" #
# network="MyNetwork"> #
# #
<server name="penguin.omega.org.za"
description="Waddle World"
- network="Omega">
+ network="Omega">
#-#-#-#-#-#-#-#-#-#-#-#- ADMIN INFORMATION -#-#-#-#-#-#-#-#-#-#-#-#
# #
-# Describes the Server Administrator's real name, nick #
-# and email address. #
+# Describes the Server Administrator's real name (optionally), #
+# nick, and email address. #
# #
# Syntax is as follows: #
# <admin name="real name" #
# email="email@address.com"> #
# #
-<admin name="Johnny English"
- nick="MI5"
- email="MI5@the.best.secret.agent">
+<admin name="Johnny English"
+ nick="MI5"
+ email="MI5@the.best.secret.agent">
#-#-#-#-#-#-#-#-#-#-#-#- PORT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-
# #
# transport - If you have m_spanningtree.so loaded, along with #
# either of the SSL modules (m_ssl_gnutls or #
-# m_ssl_openssl) then you may make use of this value. #
-# setting it to 'openssl' or 'gnutls' indicates that #
-# the port should accept connections using the given #
-# transport name only. Transports are layers which #
-# sit on top of a socket and change the way data is #
-# sent and received, e.g. encryption, compression, #
-# and other such things. Because this may not be #
-# limited in use to just encryption, the 'ssl' value #
-# used for client ports does not exist for servers, #
-# and this value is used instead. #
+# m_ssl_openssl) or m_ziplinks.so, then you may make #
+# use of this value. #
+# setting it to 'openssl' or 'gnutls' or 'zip' #
+# indicates that the port should accept connections #
+# using the given transport name. Transports are #
+# layers which sit on top of a socket and change the #
+# way data is sent and received, e.g. encryption, #
+# compression, and other such things. Because this #
+# may not be limited in use to just encryption, #
+# the 'ssl' value used for client ports does not #
+# exist for servers, and this value is used instead. #
# ____ _ _____ _ _ ____ _ _ _ #
# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
# #
# Syntax is as follows: #
# #
-# <bind address="ip or host" port="port" type="clients"> #
-# <bind address="ip or host" port="port" type="servers"> #
+# <bind address="ip address" port="port" type="clients"> #
+# <bind address="ip address" port="port" type="servers"> #
# #
# If InspIRCd is built for IPV6, and you wish to accept IPV4 clients, #
-# then you must specify your IPV6 clients in the following form: #
-# ::ffff:1.2.3.4, where 1.2.3.4 is the IPV4 address to bind the #
-# port on. If InspIRCd is built for IPV4 connections (this is the #
-# default) then you do not need to prefix your addresses like this. #
+# then you can specify IPV4 ip addresses here to bind. You may also #
+# use the 4in6 notation, ::ffff:1.2.3.4, where 1.2.3.4 is the IPV4 #
+# address to bind the port, but as of InspIRCd 1.1.1, this is not #
+# required. #
+# #
+# ------------------------------------------------------------------- #
+# #
+# PLEASE NOTE: If you have build InspIRCd as an ipv6 server, and you #
+# specify an empty bind address, the binding will be bound to ALL THE #
+# IPV6 IP ADDRESSES, and not the ipv4 addresses. If you are using an #
+# ipv6 enabled InspIRCd and want to bind to multiple IPV4 addresses #
+# in this way, you must specify them by hand. If you have built the #
+# server for ipv4 connections only, then specifying an empty bind #
+# address binds the port to all ipv4 IP addresses, as expected. #
# #
<bind address="" port="6000" type="clients">
<bind address="" port="6660-6669" type="clients" ssl="gnutls">
+
+# When linking servers, the openssl and gnutls transports are largely
+# link-compatible and can be used alongside each other or either/or
+# on each end of the link without any significant issues.
+
<bind address="" port="7000,7001" type="servers">
<bind address="1.2.3.4" port="7005" type="servers" transport="openssl">
# pause="secs before dying"> #
# #
-<power diepass="diepass" restartpass="restartpass" pause="2">
+<power diepass="" restartpass="" pause="2">
#-#-#-#-#-#-#-#-#-# INCLUDE CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#- CONNECTIONS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
# #
# This is where you can configure which connections are allowed #
-# 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 * #
+# 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 '*' or 0.0.0.0/0. #
# #
# 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" localmax="3" globalmax="3"> #
-# <connect deny="ip mask"> #
+# <connect allow="1.2.3.0/24" password="blahblah" #
+# timeout="10" timeout="blah" flood="5" #
+# threshold="8" pingfreq="120" sendq="99999" #
+# revcq="696969" localmax="3" globalmax="3" #
+# port="6660"> #
+# #
+# <connect deny="127.0.0.1" port="6667"> #
# #
# IP masks may be specified in CIDR format or wildcard format, #
-# for IPV4 and IPV6. #
+# for IPV4 and IPV6. You *cannot* use hostnames in the allow or #
+# deny field, as the state is applied before the user's DNS has #
+# been resolved. #
# #
# You may optionally include timeout="x" on any allow line, which #
# specifies the amount of time given before an unknown connection #
# 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. This feature can #
-# not be disabled, however it can be set to exremely high values, #
+# not be disabled, however it can be set to extremely 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 #
# 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 #
+# receive 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 #
# but if they can connect again to B, there are three. You get the #
# idea (i hope). #
# #
+# The optional port value determines which port the connect tag is #
+# handling. If left out the connect tag covers all bound ports else #
+# only incoming connections on the specified port will match. Port #
+# tags may be used on connect allow and connect deny tags. #
+# #
+
+<connect allow="196.12.*" password="secret" port="6667">
-<connect allow="196.12.*" password="secret">
-<connect allow="*" timeout="60" flood="20" threshold="1" pingfreq="120" sendq="262144" recvq="8192" localmax="3" globalmax="3">
+<connect allow="*"
+ timeout="60"
+ flood="20"
+ threshold="1"
+ pingfreq="120"
+ sendq="262144"
+ recvq="8192"
+ localmax="3"
+ globalmax="3">
<connect deny="69.254.*">
<connect deny="3ffe::0/32">
# what commands. Class names are case sensitive, #
# seperate multiple class names with spaces. #
# #
-# host - optional hostmask operators will recieve on oper-up. #
+# host - optional hostmask operators will receive on oper-up. #
# #
# Syntax is as follows: #
# #
# is not loaded, this configuration option has no #
# effect and will be ignored. #
# #
-# type - Sefines the kind of operator. This must match a type #
+# type - Defines the kind of operator. This must match a type #
# tag you defined above, and is case sensitive. #
# #
# Syntax is as follows: #
# <oper name="login" #
# password="pass" #
# host="hostmask@of.oper" #
-# fingerprint="hexsequence" #
+# fingerprint="hexsequence" #
# type="oper type"> #
# #
-<oper name="katsklaw"
- password="s3cret"
- host="ident@dialup15.isp.com *@localhost *@server.com *@3ffe::0/16"
- fingerprint="a41d730937a53b79f788c0ab13e9e1d5"
- type="NetAdmin">
+<oper name="Brain"
+ password="s3cret"
+ host="ident@dialup15.isp.com *@localhost *@server.com *@3ffe::0/16"
+ type="NetAdmin">
#-#-#-#-#-#-#-#-#-#-#- SERVER LINK CONFIGURATION -#-#-#-#-#-#-#-#-#-#
# transport - If defined, this is a transport name implemented by #
# another module. Transports are layers on top of #
# plaintext connections, which alter them in certain #
-# ways. Currently the two supported transports are #
+# ways. Currently the three supported transports are #
# 'openssl' and 'gnutls' which are types of SSL #
-# encryption. If you define a transport, both ends of #
-# the connection must use that same transport for the #
-# link to succeed. #
+# encryption, and 'zip' which is for compression. #
+# If you define a transport, both ends of the #
+# connection must use a compatible transport for the #
+# link to succeed. OpenSSL and GnuTLS are link- #
+# compatible with each other. #
# #
-# hidden - When using m_spanningtree.so for linking. you may #
+# statshidden - 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 #
# seconds. If this is not defined, the default of ten #
# seconds is used. #
# #
+# bind - If you specify this value, then when creating an #
+# outbound connection to the given server, the IP you #
+# place here will be bound to. This is for multi- #
+# homed servers which may have multiple IP addresses. #
+# If you do not define this value, the first IP that #
+# is not empty or localhost from your <bind> tags #
+# will be bound to. This is usually acceptable, #
+# however if your server has multiple network cards #
+# then you may have to manually specify the bind #
+# value instead of leaving it to automatic binding. #
+# You can usually tell if you need to set this by #
+# looking for the error 'Could not assign requested #
+# address' in your log when connecting to servers. #
+# #
+# hidden - If this is set to true, yes, or 1, then the server #
+# is completely hidden from non-opers. It does not #
+# show in LINKS and it does not show in MAP. Also, #
+# any servers which are child servers of this one #
+# in the network will *also* be hidden. Use with #
+# care! You can use this to 'mask off' sections of #
+# the network so that users only see a small portion #
+# of a much larger net. It should NOT be relied upon #
+# as a security tool, unless it is being used for #
+# example to hide a non-client hub, for which clients #
+# do not have an IP address or resolvable hostname. #
+# #
# to u:line a server (give it extra privilages required for running #
# services, Q, etc) you must include the <uline server> tag as shown #
# in the example below. You can have as many of these as you like. #
# that server to operoverride modes. This should only be used for #
# services and protected oper servers! #
# #
-# NOTE: If you have built InspIRCd with IPV6 support, and you want #
-# to link to an IPV4 server, you must specify the IP address in the #
-# form '::ffff:1.2.3.4' where 1.2.3.4 is the IP address of the target #
-# server. If you have built InspIRCd for IPV4 (this is the default) #
-# you should not prefix your IP addresses in this fashion. #
+# ------------------------------------------------------------------- #
+# #
+# NOTE: If you have built your server as an ipv6 server, then when a #
+# DNS lookup of a server's host occurs, AAAA records (ipv6) are #
+# priorotized over A records (ipv4). Therefore, if the server you are #
+# connecting to has both an IPV6 ip address and an IPV4 ip address in #
+# its DNS entry, the IPV6 address will *always* be selected. To #
+# change this behaviour simply specify the IPV4 IP address rather #
+# than the hostname of the server. #
+# #
+# ------------------------------------------------------------------- #
# #
# ____ _ _____ _ _ ____ _ _ _ #
# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
# #
# Also, if you define any transports, you must load the modules for #
# these transports BEFORE you load m_spanningtree, e.g. place them #
-# above it in the configuration file. Currently this means the two #
-# modules m_ssl_gnutls and m_ssl_openssl, depending on which you #
-# choose to use. #
+# above it in the configuration file. Currently this means the three #
+# modules m_ssl_gnutls, m_ziplinks and m_ssl_openssl, depending on #
+# which you choose to use. #
# #
<link name="hub.penguin.org"
- ipaddr="penguin.box.com"
- port="7000"
- allowmask="69.58.44.0/24"
- autoconnect="300"
- failover="hub.other.net"
- timeout="15"
- transport="gnutls"
- sendpass="outgoing!password"
- recvpass="incoming!password">
+ ipaddr="penguin.box.com"
+ port="7000"
+ allowmask="69.58.44.0/24"
+ autoconnect="300"
+ failover="hub.other.net"
+ timeout="15"
+ transport="gnutls"
+ bind="1.2.3.4"
+ statshidden="no"
+ hidden="no"
+ sendpass="outgoing!password"
+ recvpass="incoming!password">
<link name="services.antarctic.com"
- ipaddr="localhost"
- port="7000"
- allowmask="127.0.0.0/8"
- sendpass="penguins"
- recvpass="polarbears">
+ ipaddr="localhost"
+ port="7000"
+ allowmask="127.0.0.0/8"
+ sendpass="penguins"
+ recvpass="polarbears">
+
-<uline server="services.antarctic.com">
+#-#-#-#-#-#-#-#-#-#-#-#- ULINES CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
+# This tag defines a ulined server. A U-Lined server has special #
+# permissions, and should be used with caution. Services servers are #
+# usually u-lined in this manner. #
+# #
+# The 'silent' value if set to yes indicates that this server should #
+# not generate quit and connect notices, which can cut down on noise #
+# to opers on the network. #
+# #
+<uline server="services.antarctic.com" silent="yes">
#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-#
# configurtion directory. #
# #
-<files motd="inspircd.motd"
- rules="inspircd.rules">
+<files motd="inspircd.motd.example"
+ rules="inspircd.rules.example">
+
+#-#-#-#-#-#-#-#-#-#-#-# MAXIMUM CHANNELS -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# This optional configuration tag lets you define the maximum number #
+# of channels that both opers and users may be on at any one time. #
+# the default is 20 for user and 60 for opers if this tag is not #
+# defined. Remote users are not restricted in any manner. #
+# #
+
+<channels users="20"
+ opers="60">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# 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. #
+# If you do not define this value, then then InspIRCd will attempt to #
+# determine your DNS server from your operating system. On POSIX #
+# platforms, InspIRCd will read /etc/resolv.conf, and populate this #
+# value with the first DNS server address found. On Windows platforms #
+# InspIRCd will check the registry, and use the DNS server of the #
+# first active network interface, if one exists. #
+# If a DNS server cannot be determined from these checks, the default #
+# value '127.0.0.1' is used instead. The timeout value is in seconds. #
# #
# ____ _ _____ _ _ ____ _ _ _ #
# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
# resolving even though the DNS server appears to be up! Most ISP and #
# hosting provider DNS servers support recursive lookups. #
# #
-# NOTE: If you have built InspIRCd with IPV6 support, and you want #
-# to use an IPV4 nameserver, you must specify the IP address in the #
-# form '::ffff:1.2.3.4' where 1.2.3.4 is the IP address of the target #
-# server. If you have built InspIRCd for IPV4 (this is the default) #
-# you should not prefix your IP addresses in this fashion. #
+# ------------------------------------------------------------------- #
# #
-# IF YOUR RESOLV.CONF CONTAINS ONLY IPV4 ADDRESSES, AND YOU ARE USING #
-# IPV6, YOU MUST DEFINE THE <DNS SERVER> TAG, AND USE THE ::FFFF #
-# PREFIX NOTATION. IF YOU DO NOT, HOSTS WILL *NOT* RESOLVE. #
+# NOTE: if you have built InspIRCd with IPV6 support, then both #
+# ipv6 and ipv4 addresses are allowed here, and also in the system #
+# resolv.conf file. Remember that an ipv4 dns server can still #
+# resolve ipv6 addresses, and vice versa. #
# #
<dns server="127.0.0.1" timeout="5">
-# An example of using IPV4 nameservers over IPV6
-#<dns server="::ffff:127.0.0.1" timeout="5">
+# An example of using an IPV6 nameserver
+#<dns server="::1" timeout="5">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-# PID FILE -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# #
# Settings to define which features are useable on your server. #
# #
-# prefixquit - a prefix for a client's quit message #
+# prefixquit - A prefix to be placed on the start of a client's #
+# quit message #
+# #
+# suffixquit - A suffix to be placed on the end of a client's #
+# quit message. #
+# #
+# fixedquit - A fixed quit message to display for all client #
+# QUITS. If specified, overrides both prefixquit #
+# and suffixquit options. #
# #
# loglevel - specifies what detail of messages to log in the #
# log file. You may select from debug, verbose, #
# this feature, which stops even the founder taking #
# away their founder status without using services. #
# #
+# 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. The default setting is to not enable #
+# this feature, so that only +q may remove +a, and #
+# nothing but services may remove +q. #
+# #
# cyclehosts - If this is set to true, yes or 1, then when a #
# user's hostname changes, they will appear to quit #
# and then rejoin with their new host. This prevents #
# 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. #
+# above 1024. Values up to 65535 are permitted. If #
+# this value is omitted, any size WHO is allowed by #
+# anyone. #
# #
# somaxconn - The maximum number of sockets that may be waiting #
# in the accept queue. This usually allows the ircd #
# new TS values in the timestamp. If you think this #
# is just pointless noise, define the value to 0. #
# #
-# notimesync - If this value is 'yes', 'true', or '1', time #
-# synchronization is disabled on this server. This #
-# means any servers you are linked to will not #
-# automatically synchronize time with you, and in #
-# most cases will just result in more bounced modes #
-# on netsplits. This option should be the same on #
-# all servers. #
+# ircumsgprefix - Use undernet style message prefix for channel #
+# NOTICE and PRIVMSG adding the prefix to the line #
+# of text sent out. Eg. NOTICE @#test :@ testing #
+# vs. the off setting: NOTICE @#test :testing #
+# #
+# hostintopic - If this is set to yes (the default) then the full #
+# nick!user@host is shown for who set a TOPIC last. #
+# if set to no, then only the nickname is shown. #
+# #
+# announceinvites #
+# - If this option is set to yes (the default), then #
+# invites are announced to the channel when a user #
+# invites annother user. If you consider this to be #
+# unnecessary noise, explicitly set this to no. #
+# #
+# disablehmac - If you are linking your InspIRCd to older versions #
+# then you can specify this option and set it to #
+# yes. 1.1.6 and above support HMAC and challenge- #
+# response for password authentication. These can #
+# greatly enhance security of your server to server #
+# connections when you are not using SSL (as is the #
+# case with a lot of larger networks). Linking to #
+# older versions of InspIRCd should not *usually* be #
+# a problem, but if you have problems with HMAC #
+# authentication, this option can be used to turn it #
+# off. #
+# #
+# hidemodes - If this option is enabled, then the listmodes #
+# given (e.g. +eI), will be hidden from users below #
+# halfop. This is not recommended to be set on mode #
+# +b, as it may break some features in popular #
+# clients such as mIRC. #
+# #
+# quietbursts - When synching or splitting from the network, a #
+# server can generate a lot of connect and quit #
+# snotices to the +C and +Q snomasks. Setting this #
+# value to yes squelches those messages, which can #
+# make them more useful for opers, however it will #
+# degrade their use by certain third party programs #
+# such as BOPM which rely on them to scan users when #
+# a split heals in certain configurations. #
+# #
+# pingwarning - This should be set to a number between 1 and 59 if #
+# defined, and if it is defined will cause the server#
+# to send out a warning via snomask +l if a server #
+# does not answer to PING after this many seconds. #
+# This can be useful for finding servers which are #
+# at risk of pinging out due to network issues. #
+# #
+# exemptchanops - This option allows channel operators to be exempted#
+# from certain channel modes. #
+# Supported modes are +SfgNc. Defaults to off. #
+# #
+# defaultmodes - The default modes to be given to each channel on #
+# creation. Defaults to 'nt'. There should be no + #
+# or - symbols in this sequence, if you add them #
+# they will be ignored. You may add parameters for #
+# parameterised modes. #
+# #
+# moronbanner - The NOTICE to show to users who are glined, zlined #
+# klined or qlined when they are disconnected. This #
+# is totally freeform, you may place any text here #
+# you wish. #
# #
<options prefixquit="Quit: "
noservices="no"
qaprefixes="no"
deprotectself="no"
+ deprotectothers="no"
somaxconn="128"
softlimit="12800"
userstats="Pu"
nouserdns="no"
syntaxhints="no"
cyclehosts="yes"
+ ircumsgprefix="no"
announcets="yes"
- notimesync="no"
- allowhalfop="yes">
+ disablehmac="no"
+ hostintopic="yes"
+ hidemodes="eI"
+ quietbursts="yes"
+ pingwarning="15"
+ allowhalfop="yes"
+ defaultmodes="nt"
+ moronbanner="You're banned! Email haha@abuse.com with the ERROR line below for help."
+ exemptchanops="">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#- TIME SYNC OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#
+# Time sychronization options for m_spanningtree linking. #
+# #
+# Because IRC is very time and clock dependent, InspIRCd provides its #
+# own methods for syncronization of time between servers as shown #
+# in the example below, for servers that don't have ntpd running. #
+# #
+# enable - If this value is 'yes', 'true', or '1', time #
+# synchronization is enabled on this server. This #
+# means any servers you are linked to will #
+# automatically synchronize time, however you should #
+# use ntpd instead where possible, NOT this option. #
+# #
+# master - If this value is set to yes, then this server will #
+# act as the authoritative time source for the whole #
+# network. All other servers will respect its time #
+# without question, and match their times to it. #
+# only one server should have the master value set #
+# to 'yes'. #
+# #
+<timesync enable="no" master="no">
#-#-#-#-#-#-#-#-#-#-#-#-#- WHOWAS OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# commands to services, however they are not limited to just 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 #
+# text - The text to detect as the actual command line, #
+# Cant contain spaces, but case insensitive. #
+# You may have multiple aliases with the same #
+# command name (text="" value), however the first #
+# found will be executed if its format value is #
+# matched, or it has no format value. Aliases are #
+# read from the top of the file to the bottom. #
+# #
+# format - If this is defined, the parameters of the alias #
+# must match this glob pattern. For example if you #
+# want the first parameter to start with a # for #
+# the alias to be executed, set format="#*" in the #
+# alias definition. Note that the :'s which are #
+# part of IRC formatted lines will be preserved #
+# for matching of this text. This value is #
+# optional. #
+# #
# replace - The text to replace 'text' with. Usually this #
# will be "PRIVMSG ServiceName :$2-" or similar. #
# You may use the variables $1 through $9 in the #
# commands with \n. If you wish to use the ACTUAL #
# characters \ and n together in a line, you must #
# use the sequence "\\n". #
+# #
# 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 #
# 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. #
+# #
# operonly - Defining this value, with a value of 'yes', '1' #
# or true will make the alias oper only. If a non- #
# oper attempts to use the alias, it will appear #
#<alias text="NS" replace="PRIVMSG NickServ :$2-" requires="NickServ" uline="yes">
#<alias text="CS" replace="PRIVMSG ChanServ :$2-" requires="ChanServ" uline="yes">
#<alias text="OS" replace="PRIVMSG OperServ :$2-" requires="OperServ" uline="yes" operonly="yes">
-#<alias text="ID" replace="PRIVMSG NickServ :IDENTIFY $3" requires="NickServ" uline="yes">
+#
+# An example of using the format value to create an alias with two
+# different behaviours depending on the format of the parameters.
+#
+#<alias text="ID" format="#*" replace="PRIVMSG ChanServ :IDENTIFY $2 $3"
+# requires="ChanServ" uline="yes">
+#
+#<alias text="ID" replace="PRIVMSG NickServ :IDENTIFY $2"
+# requires="NickServ" uline="yes">
+#
+# This alias fixes a glitch in xchat 2.6.x and above and the way it
+# assumes IDENTIFY must be prefixed by a colon (:) character. It should
+# be placed ABOVE the default NICKSERV alias (the first example) listed
+# above.
+#
+#<alias text="NICKSERV" format=":IDENTIFY *" replace="PRIVMSG NickServ :IDENTIFY $3-"
+# requires="NickServ" uline="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Alltime module: Shows time on all connected servers at once
# Antibottler module: Labels bottler leech bots
#<module name="m_antibottler.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Auditorium module: Adds channel mode +u which makes everyone else
+# except you in the channel invisible, used for large meetings etc.
+#<module name="m_auditorium.so">
+#
+# Auditorium settings:
+#
+#<auditorium showops="no">
+#
+# Setting this value to yes makes m_auditorium behave like unrealircd
+# +u channel mode, e.g. ops see users joining, parting, etc, and users
+# joining the channel see the ops. Without this flag, the mode acts
+# like ircnet's +a (anonymous channels), showing only the user in the
+# names list, and not even showing the ops in the list, or showing the
+# ops that the user has joined.
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Ban except module: Adds support for channel ban exceptions (+e)
#<module name="m_banexception.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Ban redirection module: Allows bans which redirect to a specified
+# channel. e.g. +b nick!ident@host#channelbanneduserissentto
+#<module name="m_banredirect.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Block amsg module: Attempt to block all usage of /amsg and /ame
#<module name="m_blockamsg.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Block CAPS module: Blocking all-CAPS messages with cmode +P
#<module name="m_blockcaps.so">
+# #
+#-#-#-#-#-#-#-#-#-#-#- BLOCKCAPS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# percent - How many percent of text must be caps before text #
+# will be blocked. #
+# #
+# minlen - The minimum length a line must be for the block #
+# percent to have any effect. #
+# #
+# capsmap - A list of chars to be considered CAPS, this was #
+# you can add CAPS for your language. Also you can #
+# add things like ! and space to further lock down #
+# on caps usage. #
+#<blockcaps percent="50"
+# minlen="5"
+# capsmap="ABCDEFGHIJKLMNOPQRSTUVWXYZ! ">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Block colour module: Blocking colour-coded messages with cmode +c
#
#<include file="censor.conf">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CGI:IRC module: Adds support for automatic host changing in CGI:IRC
+# (http://cgiirc.sourceforge.net).
+#<module name="m_cgiirc.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-# CGIIRC CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
+#
+# Optional - If you specify to use m_cgiirc, then you must specify one
+# or more cgihost tags which indicate authorized CGI:IRC servers which
+# will be connecting to your network, and an optional cgiirc tag.
+# For more information see: http://www.inspircd.org/wiki/CGI-IRC_Module
+#
+# Set to yes if you want to notice opers when CGI clients connect
+# <cgiirc opernotice="no">
+#
+# The type field indicates where the module should get the real
+# client's IP address from, for further information, please see the
+# CGI:IRC documentation.
+#
+# <cgihost type="pass" mask="www.mysite.com"> # Get IP from PASS
+# <cgihost type="webirc" mask="somebox.mysite.com"> # Get IP from WEBIRC
+# <cgihost type="ident" mask="otherbox.mysite.com"> # Get IP from ident
+# <cgihost type="passfirst" mask="www.mysite.com"> # See the docs
+#
+# IMPORTANT NOTE:
+# ---------------
+#
+# When you connect CGI:IRC clients, there are two connect classes which
+# apply to these clients. When the client initially connects, the connect
+# class which matches the cgi:irc site's host is checked. Therefore you
+# must raise the maximum local/global clients for this ip as high as you
+# want to allow cgi clients. After the client has connected and is
+# determined to be a cgi:irc client, the class which matches the client's
+# real IP is then checked. You may set this class to a lower value, so that
+# the real IP of the client can still be restricted to, for example, 3
+# sessions maximum.
+#
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channel create module: Adds snomask +j, which will notify opers of
+# any new channels that are created
+#<module name="m_chancreate.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Channel filter module: Allows channel-op defined message
# filtering using simple string matches (channel mode +g)
# Chanprotect module: gives +q and +a channel modes
#<module name="m_chanprotect.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Check module: gives /check
+# Check is useful for looking up information on channels,
+# users, IP addresses and hosts.
+#<module name="m_check.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CHGHOST module: Adds the /CHGHOST command
#<module name="m_chghost.so">
+#
+#-#-#-#-#-#-#-#-# /CHGHOST - /SETHOST CONFIGURATION #-#-#-#-#-#-#-#-#
+# Optional - If you want to use special chars for hostnames you can #
+# specify your own custom list of chars with the <hostname> tag: #
+# #
+# 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">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# CHGIDENT module: Adds the /CHGIDENT command
#<module name="m_chgident.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CHGNAME module: Adds the /CHGNAME command
+#<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
#
#-#-#-#-#-#-#-#-#-#-#- CLOAKING CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# #
-# Optional - If ypu specify the m_cloaking.so module as above, you #
+# Optional - If you 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" #
+# <cloak key1="0x2AF39F40" #
+# key2="0x78E10B32" #
+# key3="0x4F2D2E82" #
+# key4="0x043A4C81" #
# prefix="mynet"> #
# #
# Please note that the key values will accept any number, and should #
# be large numbers. Using small numbers such as "7" or "1924" will #
-# seriously weaken the security of your cloak. #
+# seriously weaken the security of your cloak. It is recommended you #
+# use hexdecimal numbers prefixed by "0x", as shown in this example, #
+# with each key eight hex digits long. #
+
+#-#-#-#-#-#-#-#-#-#-#-#- CLOSE MODULE #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Close module: Allows an oper to close all unregistered connections.
+#<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.
+#<module name="m_clones.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Conn-Lusers: Shows the LUSERS output on connect
-#<module name="m_conn_lusers.so">
+# Conn-Join: Allows you to force users to join one or more channels
+# automatically upon connecting to the server.
+#<module name="m_conn_join.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- CONNJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+#
+# If you have m_conn_join.so loaded, you can configure it using the
+# follow values:
+#
+#<autojoin channel="#one,#two,#three">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Conn-Usermodes: Set modes on users when they connect
# #
#<waitpong sendsnotice="yes" killonbadreply="yes">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channel cycle module. Server side /hop, with +ilk etc bypass.
+#<module name="m_cycle.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Connection throttle module. Configuration:
#<module name="m_connflood.so">
#<connflood seconds="30" maxconns="3" timeout="30"
# quitmsg="Throttled" bootwait="10">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Custom title module: Adds the /TITLE command which allows for trusted
+# users to gain a custom whois line and a optional
+# vhost can be specified.
+#<module name="m_customtitle.so">
+#
+#-#-#-#-#-#-#-#-#-#- CUSTOM TITLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
+# name - The username used to identify
+# password - The password used to identify
+# host - Allowed hostmask [optional]
+# title - Title shown in whois
+# vhost - Displayed host [optional]
+#
+#<title name="foo" password="bar" title="Official Chat Helper">
+#<title name="bar" password="foo" host="ident@host.name" title="Official Chat Helper" vhost="helper.network.chat">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# DCCALLOW module: Adds the /DCCALLOW command
#<module name="m_dccallow.so">
# Devoice Module: Let users devoice themselves.
#<module name="m_devoice.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# DNS Blacklist Module: Provides support for looking up IPs on one or #
+# more blacklists. #
+#<module name="m_dnsbl.so"> #
+# #
+# For configuration options please see the wiki page for m_dnsbl at #
+# http://inspircd.org/wiki/DNS_Blacklist_Module #
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Filter module: Provides glob-based message filtering
#<module name="m_filter.so">
# 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">
+#<host suffix="polarbears.org" separator="." prefix="">
#<hostchange mask="*@fbi.gov" action="addnick">
#<hostchange mask="*r00t@*" action="suffix">
#<hostchange mask="a@b.com" action="set" value="blah.blah.blah">
# 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. #
+# The bind value indicates which IP to bind outbound requests to. #
# #
-#<ident timeout="5">
+#<ident timeout="5" bind=""> #
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Invite except module: Adds support for channel invite exceptions (+I)
#<module name="m_inviteexception.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Invisible module - Adds support for usermode +Q (quiet) which lets an
+# oper go 'invisible' similar to unrealircd 3.1's +I mode. Note that
+# opers are still able to see invisible users, and if an oper with +Q
+# deopers, they will become visible.
+#
+# IMPORTANT NOTE: To allow this mode to be used by a type of oper, you
+# must first add the value canquiet="yes" to that oper's type tag.
+#
+#<module name="m_invisible.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Join flood module: Adds support for join flood protection (+j)
#<module name="m_joinflood.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Jump Server module: Adds support for the RPL_REDIR numeric
+#<module name="m_jumpserver.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">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Lock server module: Adds /LOCKSERV and /UNLOCKSERV commands that is #
+# used to temporarily close/open for new connections to the server. #
+# These commands require OPER status and that the LOCKSERV UNLOCKSERV #
+# are specified in a <class> tag that the oper is part of. This is 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.
+#<module name="m_lockserv.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Msg flood module: Adds message/notice flood protection (+f)
#<module name="m_messageflood.so">
# This is supported by mIRC, x-chat, klient, and maybe more.
#<module name="m_namesx.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Nickchange flood protection module: Allows up to X nick changes in Y seconds.
+# Provides channel mode +F.
+#<module name="m_nickflood.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Nicklock module: Let opers change a user's nick and then stop that
# user from changing their nick again.
# To use this module, you must define a hash type for each oper's
# password you want to hash. For example:
#
-# <oper name="katsklaw"
+# <oper name="Brain"
# host="ident@dialup15.isp.com"
# hash="sha256"
# password="a41d730937a53b79f788c0ab13e9e1d5"
# Redirect module: Adds channel redirection (mode +L)
#<module name="m_redirect.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Registered users only channel creation
+# Allows only registered users and opers to create new channels.
+#<module name="m_regonlycreate.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Remove module: Adds the /REMOVE command which is a peaceful
# alternative to /KICK
# Provide /LIST throttling (to prevent flooding) and /LIST safety to
# prevent excess flood when the list is large.
#<module name="m_safelist.so">
+#
+#-#-#-#-#-#-#-#-#-#-# SAFELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+#
+# When using Safelist, you may set the following values;
+#
+# The first value, 'throttle', sets the amount of time in seconds a user
+# must wait between LIST commands. For example, if this is set to 60
+# (the default) then the user may not /LIST more than once a minute.
+# If not defined, the default value is 60 seconds.
+#
+# The second value, 'maxlisters', indicates the maximum number of users
+# which may be retrieving a LIST at once. It is not recommended you raise
+# this value, as increasing it too high can make your network vulnerable
+# to floodbots which waste your bandwidth and CPU time with LIST requests.
+#
+#<safelist throttle="60" maxlisters="50">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SAJOIN module: Adds the /SAJOIN command
# 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">
+#
+#-#-#-#-#-#-#-#-#-# SECURELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Securelist can be harmful to some irc search engines such as #
+# netsplit.de and searchirc.com. To prevent securelist blocking these #
+# sites from listing, define exception tags as shown below: #
+<securehost exception="*@*.searchirc.org">
+<securehost exception="*@*.netsplit.de">
+<securehost exception="*@echo940.server4you.de">
+# #
+# Define the following variable to change how long a user must wait #
+# before issuing a LIST. If not defined, defaults to 60 seconds. #
+# #
+#<securelist waittime="60"> #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# See nicks module: Allow for SNOMASK +N which shows nick changes.
+#<module name="m_seenicks.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Set Idle module: Adds a command for opers to change their
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Sethost module: Adds the /SETHOST command
+# See m_chghost for how to customise valid chars for hostnames
#<module name="m_sethost.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SILENCE module: Adds support for /SILENCE
#<module name="m_silence.so">
+#
+# Configuration tags:
+#
+#<silence maxentries="32">
+#
+# Sets the maximum number of entries on a users silence list.
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Extended SILENCE module: Adds support for /SILENCE with additional
# features to silence based on invites, channel messages, etc.
#<module name="m_silence_ext.so">
+#
+# The configuration tags for this module are identical to those of
+# m_silence, shown above.
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQLite3 module: Allows other SQL modules to access SQLite3 #
+# 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 #
+#<module name="m_sqlite3.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_sqlite.so is more complex than described here, see the wiki for #
+# more: http://www.inspircd.org/wiki/SQLite3_Service_Provider_Module #
+#
+#<database hostname="/full/path/to/database.db" id="anytext">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SQLutils module: Provides some utilities to SQL client modules, such
# #
#<sqloper dbid="1">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SVSHold module: Implements SVSHOLD. Like Q:Lines, but can only be #
+# added/removed by Services. #
+#<module name="m_svshold.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SWHOIS module: Allows you to add arbitary lines to user WHOIS.
#<module name="m_swhois.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Taxonomy module: Adds the /TAXONOMY command, used to view all
+# metadata attached to a user.
+#<module name="m_taxonomy.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Test command module: Does nothing significant. Read: pointless.
#<module name="m_testcommand.so">
# users a /GLINE or /ZLINE etc would match.
#<module name="m_tline.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# UHNAMES support module: Adds support for the IRCX style UHNAMES
+# extension, which displays ident and hostname in the names list for
+# each user, saving clients from doing a WHO on the channel. Note that
+# this module is not widely supported yet. If a client does not support
+# UHNAMES it will not enable it, this will not break incompatible
+# clients.
+#<module name="m_uhnames.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Uninvite module: Adds the /UNINVITE command which lets users remove
# pending invites from channels without waiting for the user to join.
# Watch module: Adds the WATCH command, which is used by clients to
# maintain notify lists.
#<module name="m_watch.so">
+#
+# Configuration tags:
+#
+#<watch maxentries="32">
+#
+# Sets the maximum number of entries on a user's watch list.
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# 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.
+#
+#<module name="m_ziplink.so">
+#
+# To use this module, you must enable it as a transport type in your
+# <link> tags or <bind> tags using the transport name 'zip'.
+# See the documentation of <link> and <bind>, respectively.
+#
#-#-#-#-#-#-#-#-#-#-#-#-#-#- BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
<exception host="*@ircop.host.com" reason="Opers hostname">
+#-#-#-#-#-#-#-#-#-#-#- INSANE BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# This optional tag allows you to specify how wide a gline, eline, #
+# kline, zline or qline can be before it is forbidden from being #
+# set. By setting hostmasks="yes", you can allow all G, K, E lines, #
+# no matter how many users the ban would cover. This is not #
+# recommended! By setting ipmasks="yes", you can allow all Z lines, #
+# no matter how many users these cover too. Needless to say we #
+# don't recommend you do this, or, set nickmasks="yes", which will #
+# allow any qline. #
+# #
+# The trigger value indicates how wide any mask will be before it is #
+# prevented from being set. The default value is 95.5% if this tag is #
+# not defined in your configuration file, meaning that if your #
+# network has 1000 users, a gline matching over 955 of them will be #
+# prevented from being added. #
+# #
+# Please note that remote servers (and services) are exempt from #
+# these restrictions and expected to enforce their own policies #
+# locally! #
+# #
+
+<insane hostmasks="no" ipmasks="no" nickmasks="no" trigger="95.5">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# You should already know what to do here :) #
-<die value="No, i wasnt joking. You should probably edit your config *PROPERLY* and try again.">
+<die value="User error. Insert new user and press any key. (you didn't edit your config properly.)">
#########################################################################