To create new wiki account, please join us on #znc at freenode and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.


From ZNC
Jump to navigation Jump to search

Last update at d0b7df5ec470141a4d9849719bd466df4aadac5f

//TODO: need to reword almost every line here...

The Big News


Now ZNC users can connect to multiple IRC networks at once. But you still need to connect IRC client to ZNC multiple times. Think about new users as "user groups", while new networks are kinda "old users".

To login to ZNC, use user/network:password as password, or user/network as username. Also you can switch between active network on the fly using /znc JumpNetwork command. Ability to use 1 client connection for every network may be added later.

Existing users can login without "/network" part just fine, as they did before. Their settings were moved to a network named "default" (of course, networks are not mixed between different users).

Every non-admin user can be configured to have no more than N networks, by default users are limited to 1 network.

Existing user-per-network setup can be migrated to multinetwork setup using /znc MoveNetwork command.

You can see list of networks by /znc ListNetworks and /znc ListAllUserNetworks.


Now you can set your timezone by name, e.g. "GMT-9", or "Europe/Madrid". Old TimezoneOffset setting (which was the number of hours between server TZ and user TZ, was not trivial to count, and often broke during switches to/from DST) is deprecated and is not used anymore; its current value is lost. So if you want to have timestamps fixed again, need to configure the timezone (via webadmin or controlpanel module).

No more ZNC-Extra

Most modules from ZNC-Extra are now enabled in the usual installation. It was pointless to have them shipped in the tarball, but requiring user to add some weird flags to ./configure.

Antiidle, fakeonline and motdfile modules are dropped.

Away module is renamed to awaystore to better explain its meaning.


  • Don't try IPv6 servers when IPv6 isn't available. Get rid of c-ares. Use threads for non-blocking DNS instead.
  • Fix debug output of identfile. Template:Git
  • Don't forward WHO replies with multi-prefix to unsupported clients
  • Send nick changes to clients before we use call the OnNick module hook
  • Don't connect to SSLed IRC servers when ZNC is not compiled with SSL
  • Fix check if compiler supports visibility
  • Fix compilation on cygwin again, including modperl and modpython
  • Support parting several channels at once
  • Fix a crash in admin (now controlpanel) module
  • Fix webadmin to deny setting bindhost not from the global list of allowed bindhosts.
  • Fix using empty value for defaults in user page in webadmin for buffer size.

Minor Stuff

  • Rename admin module to controlpanel to make it clearer that it's not the same as admin flag of a user.
  • Modules can support several types now: a module can be loaded as user module, as network module and as global module, if the module supports these types.
  • Rename (non-)KeepBuffer to AutoClearChanBuffer
  • starttls (manually for now)
  • Improvements to modperl, modpython, modtcl.
  • Add timestamp to znc --debug
  • Listeners editor in webadmin
  • Rename saslauth to cyrusauth, to make it clearer that it's not needed to do SASL authentication to NickServ.
  • Modules get a way to describe their arguments.
  • webadmin: allow edit bindhost without global list.
  • Don't send our password required notice until after CAP negotiation
  • Rewrite the JOIN channel logic, dropping MaxJoins Template:Git (need to revert it?)
  • Support messages directed to specific user prefixes (like /msg @#channel Hello)
  • Show link to from web as a link. It was plain text before.
  • Webadmin: use HTML5 numeric inputs for numbers.
  • Add SSL/IPv6/DNS info to znc --version
  • Clarify that only admins can load shell module.
  • cyrusauth: Allow creating new users on first login
  • Clear channel buffers when keep buffer is disabled if we're online
  • send_raw: Add a command to send a line to the current client
  • webadmin: Implement clone user
  • autoreply: Honor RFC 2812.
  • Add 381 to the buffer ("You are now an IRC Operator")
  • identfile: Pause the connection queue while we have a locked file
  • Add ShowBindHost command
  • autoop: Check for autoops when we are opped ourself
  • Improvements to partyline module
  • Check that there're modules available on startup. Check if ZNC is installed or not.
  • Modified description field for bouncedcc module to explain what the module actually does.
  • nickserv: support also's and rusnet's nickserv requests.
  • send 422 event if MOTD buffer is empty
  • route_replies: Handle much more replies
  • Clear text colors before appending timestamps to buffer lines
  • Don't replace our motd with a different servers motd
  • webadmin: Add a "Disabled" checkbox for channels
  • Send a 464 ERR_PASSWDMISMATCH to clients that did not supply a password
  • Separate compilation and linking for modules.
  • Trim spaces from end of commands to autoattach.
  • nickserv: add ghost, recover and release
  • Warn if config was saved in too new version.
  • Backup znc.conf when upgrading ZNC.
  • Add space before AppendTimestamp for colorless lines.

Internal Stuff

  • #include <znc/...h> instead of #include "...h"
  • Add string formatting function with named params.
  • Python, perl: support global, user, network modules.
  • Csock: able use non-int number of secs for timer. Template:Git
  • CString("off").ToBool() shouldn't be true
  • Python: Override __eq__ to allow comparison of strings
  • python: Allow iterating over CModules
  • Add methods to CModule to get the web path
  • Rework modperl to better integrate with perl.
  • Store all 005 values in a map.
  • Python: Use znc.Socket if no socket class is specified in CreateSocket()
  • CZNC::WriteConfig(): Better --debug output
  • Slight refactor of CBuffer & CBufLine.
  • Implemented a OnInvite hook
  • Allow a client to become "away"
  • Create a connection queue
  • Set default TrimPrefix to ":"
  • Add a config writer
  • Wrap MODULECALL macros in a do-while
  • Don't require CTimer's label to be unique if its empty
  • Allow loading python modules with modpython (ex. modname/
  • bNoChange in On{,De}{Op,Voice} wast incorrect
  • Drop znc-config, change znc-buildmod so it doesn't need znc-config