You are here: Home > Modules > Umod5

Module manager

UnrealIRCd 5 has a module manager which allows you to install, update and uninstall 3rd party modules easily on *NIX (not on Windows). Third party modules are a great way to extend the functionality of UnrealIRCd. They allow anyone with sufficient coding experience to create and publish UnrealIRCd modules that have functionality not present in the UnrealIRCd product itself.

Using the module manager

A word of caution

Third party modules are not written by the UnrealIRCd team (although some team members may publish them on a personal title). This means the UnrealIRCd team is NOT responsible for any problems caused by 3rd party modules. Modules can do almost anything with the IRCd, including freezing or crashing the server or doing malicious things.

If there's a bug in a 3rd party module then you must contact the author of the module directly, and not the UnrealIRCd team.

How to list available modules

In the UnrealIRCd directory, run ./unrealircd module list
| Name: | Version: | Description:
third/commandsno | 2.0 | Adds snomask +C: lets IRC operators see command usages
third/signore | 2.0 | Implements an I-Line for adding server-side ignores
third/clones | 2.0 | Adds a command /CLONES to list all users having the same IP address matching the given options
third/chansno | 2.0 | Allows opers to assign channels for specific server notifications (sort of like snomasks)
third/repeatprot | 2.0 | G(Z)-Line/kill users (or block their messages) who spam through CTCP, INVITE, NOTICE and/or PRIVMSG
third/fixhop | 2.0 | The +h access mode seems to be a little borked/limited, this module implements some tweaks for it
third/geoip-base | 5.0.1 | GeoIP data provider module
third/examplemod | 1.0.0 | This is a simple test module
third/extwarn | 2.0 | Enables additional configuration error checking
third/nicksuffix | 2.0 | Restrict /nick usage to suffixing your base nick
third/auditorium | 2.0 | Channel mode +u to show channel events/messages to/from people with +o/+a/+q only
third/pmlist | 2.0 | Implements umode +P to only allow only certain people to privately message you
third/nopmchannel | 2.0 | Prevents users sharing a channel from privately messaging each other
third/getlegitusers | 2.0 | Command /getlegitusers to show user/bot count across the network
third/geoip-transfer | 5.0.1 | GeoIP data provider / data transfer module
third/noinvite | 2.0 | Adds umode +N to block invites
third/operoverride_ext | 2.0 | Additional OperOverride functionality
third/rehashgem | 2.0 | Implements an additional rehash flag -gem
third/plainusers | 2.0 | Allows opers to list all users NOT connected over SSL/TLS
third/block_no_tls | 2.0 | Allows privileged opers to temporarily block new, non-TLS (SSL) user connections
third/sacmds | 2.0 | Implements SA* commands for privileged opers
third/modmanager_irc | 1.0 | Control Unreal's module manager through IRC third/pubnetinfo | 2.0 | Display public network/server information such as SSL/TLS links
third/debug | 2.0 | Allows privileged opers to easily view internal (configuration) data
third/showwebirc | 5.0 | Add SWHOIS info for WEBIRC users
third/textshun | 2.0 | Drop messages based on nick and body
third/noghosts | 2.0 | Keep channels clear of "ghosts" of opers
third/bancheck_access | 2.0 | Prevents people who have +o or higher from getting banned, unless done by people with +a/+q or opers
third/listrestrict | 2.1 | Impose certain restrictions on /LIST usage
third/wwwstats | 5.0 | Provides data for network stats
third/portsifresi | 2.0 | Protect specific ports with a password
third/denyban | 2.0 | Deny specific ban masks network-wide
third/anticaps | 2.0 | Block/lowercase messages that contain a configurable amount of capital letters
third/kickjoindelay | 2.0 | Chanmode +j to prevent people from rejoining too fast after a kick
third/geoip-chanban | 5.0 | ExtBan ~C - Ban/exempt by country code
third/anti_amsg | 2.0 | Drop messages originating from /amsg
third/autovhost | 2.0 | Apply vhosts at connect time based on users' raw nick formats or IPs
third/websocket_restrict | 2.0 | Impose restrictions on websocket connections
third/block_masshighlight | 2.0 | Prevent mass highlights network-wide
third/autojoin_byport | 2.0 | Auto-join channels on connect based on connection port
third/dumpcmds | 1.0 | Dump IRC commands to a file
third/banfix_voice | 2.0 | Correct some odd behaviour in regards to banned-but-voiced users
third/geoip-whois | 5.0.1 | Add country info to /whois
third/message_commonchans | 2.0 | Adds umode +c to prevent people who aren't sharing a channel with you from messaging you
third/operpasswd | 2.0 | Snomask for failed OPER attempts with the ability to kill
third/fantasy | 2.0 | Implements custom fantasy channel !cmds
third/clearlist | 2.0 | Adds CLEARLIST command to clear out banlists in bulk
third/rtkl | 2.0 | Allows privileged opers to remove remote servers' local K/Z-Lines
third/unauthban | 5.0 | ExtBan ~I: bans that match only users that are not logged in
third/topicgreeting | 2.0 | Greet users who join a channel by changing the topic (channel mode +g)
third/block_notlsident | 2.0 | Restrict certain idents to SSL connections only
third/joinmute | 2.0 | Adds +J chmode: Mute newly joined people for +J X seconds
third/uline_nickhost | 2.0 | Requires people to address services like [email protected]

NOTE: If the module you are looking for is not listed, then maybe you need to add another module repository.

How to install a module

In the UnrealIRCd directory, run ./unrealircd module install third/name-of-module

This will download and compile the requested module and print some documentation/instructions. It will NOT add the loadmodule line to your configuration file automatically. That's the only thing you need to do, and REHASH.

NOTE: If the module you are looking for is not listed, then maybe you need to add another module repository.

How to uninstall a module

In the UnrealIRCd directory, run ./unrealircd module uninstall third/name-of-module

How to upgrade modules

You can check for updates (and install them) for all modules by running ./unrealircd module upgrade. Or, to only do this for a specific module: ./unrealircd module upgrade third/name-of-module

This will check if the module(s) you are using is the same as the latest version available online. If not, the latest version is downloaded, compiled and installed.

Remember, that after an upgrade you will have to REHASH if you want to load the new module(s).

Module upgrades when upgrading UnrealIRCd

When upgrading UnrealIRCd 5 to a newer version, the ./unrealircd module upgrade command is also executed by the compile and installation process. This is to make sure your modules are compatible with the latest UnrealIRCd version.

How to add a repository

If you still need to add another repository then you have to edit the conf/modules.sources.list file. Simply add the URL of the repository in that file. Your module author should have provided instructions for this.

Solving problems

Problems with modules

If a module fails to compile or has any other problem then contact the module author. You can view the module author and contact information by running ./unrealircd module info third/name-of-module

Do not contact the UnrealIRCd team when you are having problems compiling 3rd party modules, as the modules are not written by them.

The 'module' command does not exist

The ./unrealircd module command only exists in UnrealIRCd 5 in versions later than 5.0.0-alpha4.