| This module is a part of ZNC.
This module is shipped with ZNC by default. If you have the right "LoadMod" you can activate it with
The code for this module can be found here. This module is part of ZNC since Version 0.047
This module is used to perform one or more user-specified commands when connecting ZNC to the IRC network. It can be loaded as a user module or a network module.
- If the module is loaded as a user module, it will perform the command(s) on all network(s) the user has.
- If the module is loaded as a network module, it will perform the command(s) only on that specific network.
This network module takes no arguments.
Read loading modules to learn more about loading modules.
- Adds perform command to be sent to the server on connect
- Delete a perform command
- Send the perform commands to the server now
- Generate this help output, optionally search for word/prase in this output.
- List the perform commands
Swap <number> <number>
- Swap two perform commands (to change the order in which commands are sent)
The perform list is automatically saved on changes. See ExpandString for a list of available variables (e.g.
Identifying to services
Identifying to Undernet:
/msg *perform add PRIVMSG X@Channels.undernet.org :LOGIN <username> <password>
/msg *perform add PRIVMSG Q@CServe.quakenet.org :AUTH <username> <password>
|sasl is the preferred module for identifying to services, as it identifies you before you are even visible to the network. There is also a nickserv module, which identifies you every time NickServ asks for it (not just on connect).|
Identifying to NickServ (see
/msg nickserv help identify for the syntax and try
/quote nickserv help to see that the NICKSERV command works):
/msg *perform add NICKSERV identify <username> <password>
Identifying to NickServ if NICKSERV is not supported:
/msg *perform add PRIVMSG NickServ :identify username password
The difference between
/msg) is that
/nickserv is usually IRCd-side alias that checks that NickServ is a real service—to just a user who has changed their nick to "NickServ." If this is ever the case,
/msg would have sent your password to the impostor. The
: is important, otherwise everything after
identify gets dropped.
/msg *perform add PRIVMSG &bitlbee :identify <password>
You could also replace
root, but that would make root send all connect/disconnect etc. messages in PM causing potentially annoying alerts in your client.
Setting modes on connect
The following modes are fairly common, but check with your IRC network to see if these modes will function as described here, or if they exist at all on that network.
Setting umode +Xx on connect (X or x enables cloaking on some IRCds):
/msg *perform add mode %nick% +Xx
Setting umode +w on connect for receiving wallops:
/msg *perform add mode %nick% +w
Setting all three modes on connect:
/msg *perform add mode %nick% +Xxw
Logging in as IRC operator on connect:
/msg *perform add OPER USER PASSWORD
/msg *perform add JOIN #idlerpg /msg *perform add PRIVMSG IDLEBOT :login username password
First you tell perform to join the channel and then you login to IDLEBOT. You should be on the channel when IDLEBOT receives the command and if you didn't add the join command you will most likely receive error about not being on the channel. Do replace #idlerpg and IDLEBOT with the actual channel and nick of the bot.
Listing, removing, or re-ordering commands
- Listing commands to be executed on connecting
/msg *perform list
<*perform> ------ <*perform> Id: 1 <*perform> Perform: PRIVMSG NickServ :GHOST myname mysecretpassword <*perform> ------ <*perform> Id: 2 <*perform> Perform: mode %nick% +wix <*perform> Expanded: mode myname +wix <*perform> ------ <*perform> Id: 3 <*perform> Perform: PRIVMSG IdleBot :LOGIN myuser mysecretpassword <*perform> ------ <*perform> Id: 4 <*perform> Perform: JOIN #idleRPG <*perform> ------
- Swap position of commands 3 and 4.
/msg *perform swap 3 4
<*perform> Commands Swapped.
- Add a new command.
/msg *perform add NOTICE %nick% :You’ve logged on.
- Delete command in position 5.
/msg *perform del 5
<*perform> Command Erased.