UnrealIRCd Modules

Modules written by me

Notations used in the lists

[version]Indicates that what modules require at least what versions of UnrealIRCd. Some of them may require the code of UnrealIRCd from devel CVS, so if you have no idea what it is, you can see a description here.
[MD5 sum]Allows you to validate the integrity of your downloades files. More information is shown below.
[permanent]The module cannot be unloaded from the server once it has been loaded, and keeps being permanent while the ircd runs. In other words a full restart is required to remove the module from the memory.
[network-wide]If you run two or more UnrealIRCd on your IRC Network, the module is required to be installed on all servers (except Services, of course), otherwise it won't work properly.
[non-ethical]The module is considered non-ethical and abusive, therefore it has strict rules in downloading. Actually that's the past. Since then things have changed, I don't distribute unethical modules any longer. Details are described here.

Version numbers

In my modules I also use revision numbers as version numbers. In other words, if I talk about the version of a module, I mean the revision number. If the module is loaded, you can find the version number with the /module command, otherwise in the last line of the documentation file (search for "$Id", and you'll find it; or if the module doesn't come with a .txt documentation, then do it in the .c file).

Bugs

Note that third-party modules aren't supported by the UnrealIRCd Team, so if you experience crashes or other kind of bugs caused by these modules, then DON'T report them on http://bugs.unrealircd.org! What will happen is your bugreport will be marked as not a bug on sight. If you want to report bugs found in my modules, go to my bug tracker site or send an email to angrywolf@flashmail.com. Thanks!

If you intend to report a bug, don't forget to read this page, it contains many useful information for you. Also read my FAQ page.

Downloading

I offer MD5 hashes as an alternative to validate the integrity of the downloaded files. A unix program called md5 or md5sum is included in many unix distributions. It is also available as part of GNU Textutils. Windows users can get binary md5 programs from here, here, or here.

For example, under Linux, you can check the integrity of files by running md5sum -c <filename>.md5, after you have downloaded the proper .md5 files (under Windows the syntax is similar). It will make sure your download is correct. This is specifically helpful when you get a bunch of error messages when you try to compile a module.

Installation

If you are having problems with installation, see compiling.php.

DLL files for Windows

Unfortunately I can't serve with module pre-compilations for Windows (because I don't use Windows), but I've got some help on it by different people. (Thanks a lot!) DLL files are currently available from the following sites:

http://www2.x-tab.org/~ircd/ (compilations by Stealth)
http://angrywolfmod.freeserverhost.com/ (compilations for Unreal3.2.1b by Zell)
http://angrywolfmod.netfirms.com (compilations for Unreal3.2.1 by Zell, it won't be updated with new modules anymore)

If you intend to use such pre-compilations, you should still read the documentation that comes with the module, even about installation! If nowhere else, it's available in the source package of the module.

If you'ld like to provide DLL files for my modules, please follow the requirements below:

  • Try to always have the DLLs for the latest versions of the modules, if possible.
  • Mention the version of Visual Studio that you are using to compile modules.
  • Give me a permission to add the link to the website where the DLLs are available.
Thanks in advance.


Commands

m_banlist (v3.1) This module provides command /banlist that allows you to search for bans on a specified condition. If one or more bans found, the matched bans and the number of matches are displayed. You can give certain options like in /who to filter out your search list.
[3.2-beta18] [MD5 sum]
m_chgswhois (v1.3) Provides two commands: /chgswhois and /setswhois to change (or delete) someone's or your SWHOIS information. Notifications about /chgswhois usages are sent to snomask +e and they are also logged with the chg-commands log flag.
[3.2-RC1] [MD5 sum] [network-wide]
m_clones (v1.8) Command /clones: lists all clones (users having the same IP address) matching the given options.
[3.2-beta18] [MD5 sum] [network-wide]
m_elmer (v1.6) Command /elmer: makes someone talk like Elmer J. Fudd, that is, letters 'l' and 'r' become 'w', for example, "Shhhhhh! Be vewy, vewy quiet... I'm hunting wabbits, heh-heh-heh." (More info here.) See the header of the module file to understand how the command works.
[3.2-beta18] [MD5 sum] [network-wide]
m_getinfo (v3.5) This module provides command /getinfo to retrieve a bunch of information about either a server, client or channel. (Reply messages are sent with numeric 339.)
[3.2-beta18] [MD5 sum] [network-wide]
m_ircops (v3.2) Command /ircops: displays you a list of all IRC Operators available on IRC except who are hiding (+H) if you aren't an IRC operator. Originally an m_ircops module already existed, however the author, whose name I don't know, deleted his module for some reasons, but people still needed, so I created it.
[3.2-beta18] [MD5 sum]
m_iscmd (v2.3) A little command called /iscmd. It tells you which of the given commands are supported by the server. It works for alias commands too. The output is designed for client-side scripting.
[3.2-beta17] [MD5 sum]
m_rmban (v3.1) Command /rmban, taken from DarkFire IRCd. The reason I wrote this module is, I found it very useful and I wanted to see such a command in UnrealIRCd. With this command normal users being channel operators and IRC operators having can_override operflag can remove certain channel bans very easily.
[3.2-beta18] [MD5 sum]
m_rmtkl (v3.3) Command /rmtkl: removes all TKLs (bans) matching the given conditions and having any types you specify (available ones are K:Line, G:Line, Z:Line, Global Z:Line and Shun). The removal is done locally or globally, depending on the ban is global or not. With this command you can easily get rid of a group of no longer necessary bans.
[3.2-beta18] [MD5 sum]
m_sendraw (v3.1) Command /sendraw: sends a completely raw message to either a server, a client or (the members of) a channel from the server you are on. If you don't know what raw messages are or you have no clue how the IRC protocol works, this module is definitely not for you. The command is considered to be very abusive and dangerous, it's strongly recommended to be used only by advanced users. Use it at your own risk!
[3.2-beta18] [MD5 sum]
m_servlist (v1.3) Command /servlist: gives the list of services currently present on the IRC network.
Usage:
    /servlist [<nickmask>]
Examples:
    /servlist --> gives you the list of all services
    /servlist *serv --> only those whose names end in "serv"
    /servlist nickserv --> show the Nick Service only (if present)
[3.2-beta18] [MD5 sum]
m_spy (v6.1) m_spy allows you to see users' private and channel messages (both PRIVMSGs and NOTICEs) sent from anywhere on the IRC network in real time. You can redirect their messages to a channel, or they can be sent to you privately. This module provides three commands: /spy to specify whose messages you want to see, /spychan to specify which channel you want to see the messages of, and /spystats to receive statistical information about private and channel spy entries.
Note: Spying on people is highly unethical, and in many countries, illegal! Use this module at your own risk!
[3.2-RC2] [non-ethical] [permanent] [network-wide]
m_staff (v2.5) Command /staff: designed to list all the staff members of your network, as well as any additional information you'd like people to see. Whenever someone types /staff, the contents of file network.staff is shown to the person, if it exists. You can reload the file by typing either (/rehash on UNIX based systems,) /rehash -staff or /rehash -all. The command also works remotely, if you want to use so, type /staff <servermask>.
[3.2-RC1] [MD5 sum] [permanent] [network-wide]
m_uline (v1.13) Command /uline: gives someone an U:Line. This module is required to be loaded on all servers to avoid desynch problems. Only NetAdmins may use /uline, or if you set a password for it, only those of them who knows the password. Notifications are sent to snomask +U. It's strongly recommended to be used by advanced users only! (See more information in the source file.)
[3.2-beta18] [MD5 sum] [permanent] [network-wide]
m_userip (v1.2) Command /userip: works almost the same as /userhost, but shows IP addresses instead of hostnames.
Note: the next version of UnrealIRCd will very likely include such a /userip command, therefore the module makes sense for Unreal3.2.1.
[3.2.1] [MD5 sum]

User/channel modes and extended ban types

identonly (v2.1) Channel mode +X: only those users can join whose usernames have been returned by identd. (Clients without an identd response are not allowed to join the channel.) This might be useful to prevent clone/flood attacks.
[3.2-beta19] [MD5 sum] [permanent] [network-wide]
jointhrottle (v2.4) Channel mode +j: sets a join flood protection on users. Syntax: /mode #chan +j <joins>:<seconds>, meaning that users are allowed to join #chan <joins> times in <seconds> seconds. If users exceed the limit, their join attempt will be throttled. Comes with OperOverride support.
[3.2-beta19] [MD5 sum] [permanent] [network-wide]
noctcp (v1.3) This module gives you the +D channel mode that disables CTCP ACTION's (/me's) on channels, the +m user mode that does the same for users, and the +M user mode to deny DCC's from sending to someone having the mode. The purpose of all these modes is to extend the builtin features of UnrealIRCd to let you be able to completely disable CTCP messages on users and channels.
[3.2-RC2] [MD5 sum] [permanent] [network-wide]
regexban (v2.1) Adds a new extended channel ban type (~R) that allow banning users based on regular expressions. Syntax: +b ~R:<expression>. Such an expression is matched against a nick!user@host (as normally), where host can be either a realhost, virtual host or IP. Example: +b ~R:. does the same as +b *!*@*.
[3.2-RC1] [MD5 sum] [network-wide]

Server notice masks

commandsno (v1.14) Snomask +C: lets you see when certain commands are used by clients. All commands you want to get notifications of are configurable in set::notify-commands.
[3.2-RC2] [MD5 sum] [permanent]
operpasswd (v3.1) Snomask +O: lets you see login names and passwords used in failed OPER attempts. It also has a feature that kills users after a specified number of failed oper-ups.
[3.2-RC1] [MD5 sum] [permanent]

Misc

activeusers (v3.2) Dumps a channel member list into a file including member name, connection time, idle time and channel prefixes if present. Comes with XML support. Optionally, the permission of each given file can be set to a specified mode on *NIX systems. Requested by Serevinus.
Note: You can see an example screenshot of how this module should be used here.
[3.2-beta18] [MD5 sum]
adwords (v6.9) This is an enhanced version of UnrealIRCd's built-in badword system specialized to advanced badword filtering and anti-spam purposes. It does the filtering in private, channel, quit and (if you have Unreal3.2-RC1) part messages too. Features this module offer: killing and/or banning a user whose message matches an 'adword', blocking the message, sending a notification message for opers, etc. Also supports backreferences.
Note: Only for spam/virus filtering purposes, as of Unreal3.2-RC1, you should consider using the built-in spamfilter system instead of this module.
[3.2-beta19] [MD5 sum]
chanlog (v4.14) This module logs channel messages (either PRIVMSG or NOTICE) and channel activites (JOIN, PART, MODE, NICK, QUIT, etc) without the need to worry what server the message is going through. Based on the code of module privlog. Since the module is required to be installed on all servers, you can only get rid of duplicate logs if you disable logging in the configuration of the proper servers.
Note: Spying on people is highly unethical, and in many countries, illegal! Use this module at your own risk!
[3.2-beta18] [non-ethical] [network-wide]
chansno (v1.16) Allows you to assing different channels for different type of notification messages. It works like the snomask system, but instead of receiving notifications in private, you will get the messages in channels.
[3.2-beta19] [MD5 sum]
cmdflood (v1.8) Allows you to protect specific IRC commands from begin flooded by users (except IRC operators). You can set a restriction on any commands you want so they are allowed to use maximally a given number of times in a period. Basically it's similar to the away-flood and nick-flood features.
[3.2-RC1] [MD5 sum]
hideserver (v4.8) Hides specific servers from the output of /map and /links or restricts the usage of both commands to IRCops only.
[3.2-beta19] [MD5 sum]
hostnameonly (v4.1) This module denies users connecting to the server whose IP address couldn't be resolved and sends a notification message to IRCOps (who have snomask eyes (+e)) about the connection attempt. You can enable or disable this feature by configuration.
[3.2-beta18] [MD5 sum]
langhelper (v1.4) This module provides channel mode +H, the /language command and some config options to help people from different nationalities to make their messages appear more readable on the targets' screen by converting non-ASCII language-specific characters to the ones you specify in the configuration. Since not all clients support codepages (for example, unlike X-Chat), this might be helpful. Because some languages has letters consisting of two or more characters, substrings can be converted too, however that doesn't mean the module is designed to be a kind of language translator system or something similar to that. The channel mode has a paramater with which you can set different languages on different channels.
[3.2-RC2] [MD5 sum] [permanent] [network-wide]
netadmins (v1.8) Protects all NetAdmins from being killed and banned by non-NetAdmins, or if you want, by any IRC operators (except U:Lines).See the header of the module file for information about configuration.
[3.2-beta19] [MD5 sum] [network-wide]
operjoin (v5.1) This is a module that enhances the /join, /cycle and /sajoin commands to provide extra abilities to IRCops having the can_override operflag. With it, IRC operators are allowed to to join +biklRz channels without the necessity of using /invite (at the same time eyes users [snomask +e] are notified about the OperOverrides), additionally, the /sajoin commands supports multiple channels and also sends OperOverride notices.
[3.2-beta19] [MD5 sum] [network-wide]
opers (v5.4) This module provides an easy and convenient interface for managing configuration of IRC operators by allowing to add, remove and modify O:Lines on the fly with specific commands either locally, remotely or globally on the network. It stores the O:Lines in an external database file (oper.db, located at the main Unreal3.2 directory), so they won't get lost on reloading the UnrealIRCd configuration.
[3.2-RC2] [MD5 sum] [permanent]
privlog (v4.8) This module logs all private messages sent by clients (either by PRIVMSG or NOTICE) throught the server which the module is loaded on. It has support for configuration directives which allow you to define nick exceptions and set some options.
Note: Spying on people is highly unethical, and in many countries, illegal! Use this module at your own risk!
[3.2-beta18] [non-ethical]
randquote (v2.5) Displays a random quote when users connect. Based on the code of UltimateIRCd. Random quotes are read from file ircd.quotes (no need to rehash it). In addition, the module comes with three commands: /randquote to get a random quote, /addquote for opers to add a line to file ircd.quotes, and /addgquote to add a quote globally on the network. You can get a sample ircd.quotes file from the source package of UltimateIRCd (http://www.shadow-realm.org/).
[3.2-beta18] [MD5 sum] [network-wide]
userauth (v5.4) This is an extended user authentication system, which only accepts user connections if they pass the proper username and password. Username:password pairs are defined in a file you specify in your UnrealIRCd configuration.
[3.2-RC1] [MD5 sum] [permanent]
vhosts (v2.4) This module provides an easy and convenient interface for managing configuration of vhosts by allowing to add, remove and modify vhosts on the fly with specific commands either locally, remotely or globally on the network. It stores vhosts in an external database file (vhost.db, located at the main Unreal3.2 directory), so they won't get lost on reloading the UnrealIRCd configuration.
[3.2-RC2] [MD5 sum]

Obsolete modules

You don't need these modules below in the new versions of UnrealIRCd. They are gonna be removed soon. Always use the latest ircd version!

m_tempshun (v1.3) Command /tempshun: makes someone temporarily shunned (only adds a shun on the client's current session). Only those people can use this command who already has privileges to do a /shun. Notifications are sent to snomask +G. (See more info in the source file.)
Note: Unreal3.2-RC2 already contains the /tempshun command (coded by Syzop), hence the module only has sense in RC1.
[3.2-RC1] [MD5 sum] [network-wide]
remotenick (v1.7) Snomask +N: allows you to see remote nickchanges.
Note: since the release of Unreal3.2-RC1, this module doesn't have a meaning any longer.
[3.2-beta19] [MD5 sum] [permanent]

Experimental modules

These modules below are published as experimental ones. They can contain unforseeable bugs, therefore their use isn't suggested on real and producing servers. Conversely, testing of them and bug reports about them are welcomed anytime.

cgiirc (v1.17) This module provides CGI:IRC support for UnrealIRCd. The algorithm I used in it isn't the best, but at least it works. It should only be used until a better CGI:IRC support is implemented in the ircd code
[3.2-RC1] [MD5 sum]
cmdshun (v1.1) CmdShun is shun-like system with which you can forbid clients from using certain commands. Such a cmdshun is global, and both permanent and timed cmdshuns are supported. An additional feature is supported to let you be able to stop clients from sending PRIVMSGs and NOTICEs to users only privately or only to channels.
[3.2.1] [MD5 sum] [permanent] [network-wide]
courtroom (v1.13) This module has two functions: the first allows you to simulate courtrooms (users aren't allowed to part these kind of channels), the second one implements the user quarantine system (people being quarantined are allowed to join only courtrooms and do private conversations only with IRCOps). The purpose of both features is to have a better control over problematic users while a discussion between them and the IRCOps is being done on networks where courtrooms are tried and true methods.
[3.2-RC2] [MD5 sum] [permanent] [network-wide]
courtroom_lite (v1.4) This module is a light version of "courtroom" that includes the same features but the quarantine system.
[3.2-RC2] [MD5 sum] [permanent] [network-wide]

Modules written by other people

If you know a website where UnrealIRCd modules can be downloaded, please let me know, thanks!

Official third-party modules Lots of modules written by various people and accepted by the head coders of UnrealIRCd.
modules by codemastr Modules written by codemastr, one of the head coders. They are user-friendly and also contain an installer script.
modules by Syzop Modules written by Syzop, one of the head coders. They are user-friendly and also contain an installer script.
modules by penna 3rd-party modules written by penna.
modules by fez 3rd-party modules written by fez
IRCD Mods Numerous 3rd-party modules for different IRCds.