How to add modules to ZNC
Compiling a module
If you have the source code for a module, there are multiple ways to compile it.
Please note: If you have installed ZNC from your distro’s repository you also need to install the dev package of ZNC (usually znc-dev
or znc-devel
) for building your own modules.
make
If you still have ZNC’s source around, compiling a new module is a really simple thing to do.
- Save the module in the module dir in your ZNC source tree. The filename should be <modulename>.cpp. You can choose pretty much any name for the module.
- Run make (or gmake). The new module will be found and built.
- If you installed ZNC using (g)make install, you can just run that command again and you are done.
- Else you now have <modulename>.so in your modules directory. This is the module
znc-buildmod
If you don’t have ZNC’s source around, but installed it (or installed from your distribution’s package manager), you don’t have to worry. There is a tool called znc-buildmod.
- Save the module’s source somewhere. Use <modulename>.cpp as the file name.
- Run
znc-buildmod <modulename>.cpp
- Now you have <modulename>.so in your current directory. This is the module.
znc-buildmod
is installed to the same directory to which znc
is installed, so you might have to change into that directory and use ./znc-buildmod <modulename>.cpp
.
Installing a module
So once you got <modulename>.so, what should you do with this file?
The easiest solution is moving or copying that file to ~/.znc/modules. If you use a different datadir than ~/.znc, move it there in the modules directory. If you don’t know what a datadir is, just use ~/.znc/modules.
If you upgrade your ZNC version you must recompile all your modules.
How to add modules to ZNC
- Download the module into your home directory.
(for example: wget https://raw.githubusercontent.com/znc/znc/34d0da2097f860af022c16113cc37e8ebf85da83/modules/antiidle.cpp)
2. znc-buildmod antiidle.cpp
3. it will spit out a antiidle.so, mv it to ~/.znc/modules
4. It is now installed and you can /msg *status loadmod antiidle