/* This file will load (nearly) all modules available on UnrealIRCd. * So all commands, channel modes, user modes, etc.. * * If you want to have all UnrealIRCd functionality, then include this * file from your unrealircd.conf by using: * include "modules.default.conf"; * * DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!! * If you want to customize the modules to load you have two options: * 1) Keep the include for modules.default.conf as usual and make use * of blacklist-module "xyz"; to selectively disable modules. * See https://www.unrealircd.org/docs/Blacklist-module_directive * 2) OR, make a copy of this file (eg: name it modules.custom.conf) * and edit it. Then include that file from your unrealircd.conf * instead of this one. * The downside of option #2 is that you will need to track changes * in the original modules.default.conf with each new UnrealIRCd * release to make sure you don't miss any new functionality (as new * important modules may be added you need to add them to your conf). * You don't have this problem with option #1. */ /*** Commands ***/ // User commands (MINIMAL) // These provide just the minimal set of IRC commands that are // required by RFC1459 along with WATCH and MAP. loadmodule "admin"; loadmodule "away"; loadmodule "invite"; loadmodule "ison"; loadmodule "join"; loadmodule "kick"; loadmodule "links"; loadmodule "list"; loadmodule "lusers"; loadmodule "map"; loadmodule "message"; loadmodule "mode"; loadmodule "motd"; loadmodule "names"; loadmodule "nick"; loadmodule "part"; loadmodule "pass"; loadmodule "pingpong"; loadmodule "protoctl"; loadmodule "quit"; loadmodule "rules"; loadmodule "topic"; loadmodule "user"; loadmodule "userhost"; loadmodule "watch"; loadmodule "whox"; loadmodule "whois"; loadmodule "whowas"; // User commands (EXTENDED) // These are commands that provide extended functionality. loadmodule "botmotd"; loadmodule "cap"; loadmodule "cycle"; loadmodule "dccallow"; loadmodule "help"; loadmodule "knock"; loadmodule "lag"; loadmodule "sasl"; loadmodule "setname"; loadmodule "silence"; loadmodule "starttls"; loadmodule "time"; loadmodule "userip"; loadmodule "vhost"; loadmodule "history"; // IRC Operator commands // Note: several of these like kill are also server-to-server commands // which are required if you link to other servers. loadmodule "addmotd"; loadmodule "addomotd"; loadmodule "chghost"; loadmodule "chgident"; loadmodule "chgname"; loadmodule "close"; loadmodule "connect"; loadmodule "squit"; loadmodule "dccdeny"; loadmodule "globops"; loadmodule "kill"; /* also server-to-server */ loadmodule "locops"; loadmodule "mkpasswd"; loadmodule "oper"; loadmodule "operinfo"; /* not really a command but for whois */ loadmodule "opermotd"; loadmodule "sajoin"; loadmodule "samode"; loadmodule "sapart"; loadmodule "sdesc"; loadmodule "sethost"; loadmodule "setident"; loadmodule "stats"; loadmodule "tkl"; /* also server-to-server */ loadmodule "tline"; loadmodule "trace"; loadmodule "tsctl"; loadmodule "unsqline"; loadmodule "jumpserver"; // Server-to-server commands // Don't remove these, unless you never link to other servers. loadmodule "eos"; loadmodule "md"; loadmodule "netinfo"; loadmodule "server"; loadmodule "sjoin"; loadmodule "sqline"; loadmodule "swhois"; loadmodule "umode2"; loadmodule "sinfo"; loadmodule "require-module"; loadmodule "slog"; loadmodule "creationtime"; loadmodule "unreal_server_compat"; // Services commands // You could disable these if you don't use Services // https://www.unrealircd.org/docs/Services loadmodule "sendsno"; loadmodule "sendumode"; loadmodule "svsjoin"; loadmodule "svskill"; loadmodule "svslusers"; loadmodule "svsmode"; loadmodule "svsmotd"; loadmodule "svsnick"; loadmodule "svsnline"; loadmodule "svsnolag"; loadmodule "svsnoop"; loadmodule "svspart"; loadmodule "svssilence"; loadmodule "svssno"; loadmodule "svswatch"; loadmodule "svso"; loadmodule "svslogin"; /*** Channel modes ***/ loadmodule "chanmodes/chanowner"; /* +q */ loadmodule "chanmodes/chanadmin"; /* +a */ loadmodule "chanmodes/chanop"; /* +o */ loadmodule "chanmodes/halfop"; /* +h */ loadmodule "chanmodes/voice"; /* +v */ loadmodule "chanmodes/key"; /* +k */ loadmodule "chanmodes/limit"; /* +l */ loadmodule "chanmodes/inviteonly"; /* +i */ loadmodule "chanmodes/secret"; /* +s */ loadmodule "chanmodes/private"; /* +p */ loadmodule "chanmodes/moderated"; /* +m */ loadmodule "chanmodes/noexternalmsgs"; /* +n */ loadmodule "chanmodes/topiclimit"; /* +t */ loadmodule "chanmodes/floodprot"; /* +f */ loadmodule "chanmodes/nocolor"; /* +c */ loadmodule "chanmodes/noctcp"; /* +C */ loadmodule "chanmodes/stripcolor"; /* +S */ loadmodule "chanmodes/isregistered"; /* +r */ loadmodule "chanmodes/issecure"; /* +Z */ loadmodule "chanmodes/permanent"; /* +P */ loadmodule "chanmodes/link"; /* +L */ loadmodule "chanmodes/censor"; /* +G */ loadmodule "chanmodes/delayjoin"; /* +D */ loadmodule "chanmodes/noknock"; /* +K */ loadmodule "chanmodes/noinvite"; /* +V */ loadmodule "chanmodes/operonly"; /* +O */ loadmodule "chanmodes/nonotice"; /* +T */ loadmodule "chanmodes/regonly"; /* +R */ loadmodule "chanmodes/nonickchange"; /* +N */ loadmodule "chanmodes/nokick"; /* +Q */ loadmodule "chanmodes/regonlyspeak"; /* +M */ loadmodule "chanmodes/secureonly"; /* +z */ loadmodule "chanmodes/history"; /* +H */ /*** User modes ***/ loadmodule "usermodes/wallops"; /* +w (listen to /WALLOPS messages) */ loadmodule "usermodes/bot"; /* +B (mark yourself as a bot) */ loadmodule "usermodes/servicebot"; /* +S (service bot) */ loadmodule "usermodes/noctcp"; /* +T (block CTCP's) */ loadmodule "usermodes/censor"; /* +G (censor bad words) */ loadmodule "usermodes/showwhois"; /* +W (show if someone does /WHOIS) */ loadmodule "usermodes/privacy"; /* +p (privacy, hide channels in /WHOIS) */ loadmodule "usermodes/nokick"; /* +q (unkickable oper) */ loadmodule "usermodes/regonlymsg"; /* +R (only registered users may private message you) */ loadmodule "usermodes/secureonlymsg"; /* +Z (only TLS users may private message you) */ loadmodule "usermodes/privdeaf"; /* +D (don't let other user PM you) */ /*** Extended Bans ***/ loadmodule "extbans/join"; /* +b ~join (old ~j mode, prevent only joins) */ loadmodule "extbans/quiet"; /* +b ~quiet (old ~q mode, prevent only messaging) */ loadmodule "extbans/nickchange"; /* +b ~nickchange (old ~n mode, prevent only nick changes) */ loadmodule "extbans/realname"; /* +b ~realname (old ~r mode, ban by real name) */ loadmodule "extbans/account"; /* +b ~account (old ~a mode, ban/exempt if logged in with services account) */ loadmodule "extbans/inchannel"; /* +b ~channel (old, ~c mode, ban/exempt if in channel) */ loadmodule "extbans/operclass"; /* +b ~operclass (old ~O mode, ban/exempt by operclass) */ loadmodule "extbans/certfp"; /* +b ~certfp (old ~S mode, ban/exempt by certfp) */ loadmodule "extbans/textban"; /* +b ~text (old ~T mode, censor or block text) */ loadmodule "extbans/msgbypass"; /* +e ~msgbypass (old ~m mode, bypass message restrictions) */ loadmodule "extbans/timedban"; /* +b ~time (old ~t mode, timed bans / temporary bans) */ loadmodule "extbans/partmsg"; /* +b ~partmsg (old ~p mode, hide part/quit message) */ loadmodule "extbans/securitygroup"; /* +b ~security-group (old ~G mode, security group) */ loadmodule "extbans/country"; /* +b ~country (country/geoip) */ /** IRCv3 extensions */ loadmodule "account-notify"; /* send ACCOUNT message upon services account login */ loadmodule "message-tags"; /* add tags to messages, required for various IRCv3 features */ loadmodule "batch"; /* also required for several IRCv3 features */ loadmodule "server-time"; /* adds server timestamp to various messages */ loadmodule "message-ids"; /* adds unique msgid to various messages */ loadmodule "account-tag"; /* adds services account information to messages */ loadmodule "echo-message"; /* shows clients if their messages are altered/filtered */ loadmodule "labeled-response"; /* correlate requests and responses easily */ loadmodule "bot-tag"; /* indicate the message comes from a bot (draft/bot) */ loadmodule "typing-indicator"; /* typing indicator in PM and channels (+typing) */ loadmodule "channel-context"; loadmodule "reply-tag"; /* indicate to which message you are responding (+draft/reply) */ loadmodule "clienttagdeny"; /* informs clients about supported client-only message tags */ loadmodule "sts"; /* strict transport policy (set::tls::sts-policy) */ loadmodule "link-security"; /* link-security announce */ loadmodule "plaintext-policy"; /* plaintext-policy announce */ loadmodule "chathistory"; /* CHATHISTORY client command, 005 and a CAP (draft) */ loadmodule "monitor"; /* MONITOR command with functionality similar to WATCH */ loadmodule "extended-monitor"; /* add away status, gecos and userhost changes to MONITOR (draft) */ /*** Other ***/ // These are modules that don't fit in any of the previous sections loadmodule "ident_lookup"; /* Ident lookups if set::options::identd-check is set*/ loadmodule "certfp"; /* TLS certificate fingerprint in /WHOIS (& more) */ loadmodule "tls_cipher"; /* Store and retrieve TLS cipher of local and remote clients */ loadmodule "tls_antidos"; /* prevent TLS DoS (renegotiate floods) */ loadmodule "connect-flood"; /* throttling against connection flooding */ loadmodule "max-unknown-connections-per-ip"; /* limit number of connections in 'unknown state' */ loadmodule "webirc"; /* WEBIRC command. See webirc block. */ loadmodule "blacklist"; /* Blacklist support (DNSBL). See blacklist block. */ loadmodule "jointhrottle"; /* set::anti-flood::join-flood (previously chanmode +j) */ loadmodule "charsys"; /* Provides set::allowed-nickchars (must always be loaded!) */ loadmodule "authprompt"; /* Authentication prompt, see set::authentication-prompt */ loadmodule "history_backend_mem"; /* History storage backend (used by chanmodes/history) */ loadmodule "tkldb"; /* Write TKLines to .db file */ loadmodule "channeldb"; /* Write channel settings to .db file (+P channels only) */ loadmodule "rmtkl"; /* Easily remove *-Lines in bulk with /RMTKL */ loadmodule "restrict-commands"; /* Provides set::restrict-commands settings */ loadmodule "reputation"; /* used by Connthrottle and others, see next */ loadmodule "connthrottle"; /* see https://www.unrealircd.org/docs/Connthrottle */ loadmodule "userip-tag"; /* unrealircd.org/userip tag for ircops (IP address) */ loadmodule "userhost-tag"; /* unrealircd.org/userhost tag for ircops (real host) */ loadmodule "geoip-tag"; /* unrealircd.org/geoip tag for ircops (country) */ loadmodule "json-log-tag"; /* unrealircd.org/json-log tag and CAP for ircops */ loadmodule "targetfloodprot"; /* set::anti-flood::target-flood protection */ loadmodule "watch-backend"; /* used by watch and other modules */ loadmodule "geoip_base"; /* needed for ALL geoip functions */ loadmodule "websocket_common"; /* helper functions for websocket (internal) */ loadmodule "geoip_classic"; @if module-loaded("geoip_classic") set { geoip-classic { ipv4-database "https://www.unrealircd.org/files/geo/classic/GeoIP.dat" { url-refresh 14d; } ipv6-database "https://www.unrealircd.org/files/geo/classic/GeoIPv6.dat" { url-refresh 14d; } } } @endif