How to add modules to ZNC

November 8, 2017

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.

  1. 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.
  2. Run make (or gmake). The new module will be found and built.
    1. If you installed ZNC using (g)make install, you can just run that command again and you are done.
    2. 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.

  1. Save the module’s source somewhere. Use <modulename>.cpp as the file name.
  2. Run
    znc-buildmod <modulename>.cpp
  3. 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

  1. 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