This command is actually client specific, but because it enjoys nearly universal client support, is included in this wiki for completeness. CTCP stands for client to client protocol, and itself has several sub commands associated with it. The following 3 are found in all CTCP commands.
This command takes 2 or 3 arguments, the target of the command, the CTCP sub command to be used, and any additional arguments for the sub command. For instance, to send a CTCP ACTION command to #lobby, where it gives you the action of "gives everyone cookies", use the following command:
/ctcp #lobby action gives everyone cookies
Many clients have built in commands such as /me or /action to avoid having to type out /ctcp #channel action every time you want to issue an action command.
The second command is ping. Unlike the IRC command ping, this ping is sent directly to another user's computer. It is generally considered impolite to ping a user more than once. You can also CTCP ping an entire channel if channel modes allow it, however such activity may be considered suspicious by channel operators. To ping nick1, use the following command:
/ctcp nick1 ping
Lastly, we have time. This is used to get the current time as reported by the target user's computer system. To get nick1's time, you can use the following command:
/ctcp nick1 time
There are several things to keep in mind with CTCP commands.
- Channel operators can use channel modes to forbid the use of all channel wide CTCP commands except action
- Users can block CTCP commands through the setting of user modes such as +g or +R
- Users can spoof their CTCP replies, meaning a different answer is sent instead. Clients are not obligated to respond to CTCP requests with accurate information
- You can create custom CTCP commands in some clients, which will then send the required response when asked by any other users CTCP request
- Clients often have CTCP commands unique to them. Consult your client's documentation for further information