stinkybot logo stinkybot title

Version 0.30

latest news

06-May-2004 - After a break from the project, I'm back. Have made some changes to the formatting of the html and javascript for this page. Am about to start work recoding stinkybot using the new perl interface for xchat 2.0.8. Will archive the current content and update this page further soon.

about stinkybot

stinkybot is an irc bot which runs under xchat (version 2 and above) written in the TCL (8.4) scripting language.

It's basically a little program that performs certain actions when different irc events are triggered. Some useful functionality is currently under development but at the moment it is merely a toy to play with when there's no-one to chat with.


stinkybot has two main modes of operation: public and private. Public mode is when the entire channel can see both your query and the response from stinkybot. If you wish to use stinkybot this way then enter the message...

  stinkybot: *command*

...into the channel window (replacing *command* with one of the available commands listed below.) If instead you wish to query stinkybot privately then enter...

  /msg stinkybot *command*

and stinkybot will reply with a private notice that only you will see.

The available commands are presently quite limited as stinkybot is still in a very early stage of development and most new functionality is internal stuff (e.g. the command queuing and timeout system.) For now, the following list of commands are present and functional:

to be told to come here :-)

(or ver) to see the latest version (should match the version on this page unless I'm slacking)

similar to version

(or ping) to get stinkybot to ping you and let you know the results

memo *nick* *text*
leave *nick* a memo (*text*) which stinkybot will pass on when they join the channel. Depending on whether you call this command publically or privately it will be passed on either in the channel or in a private notice to the user.


As well as the "useful" functionality listed above, stinkybot also performs certain event-triggered responses. Right now it has a profanity alert (as swearing is against the channel rules where stinkybot lives) and it also responds with a random "stinky quote" when you mention it's name or issue it with an unknown command. Also try asking stinkybot about t-shirts, horses or some of the channel regulars ;-)

project status

Listed below are the developments that have already been made (since I started recording these at about version 0.16.) As time passes we should see details moving from the future developments lists to this one. :-)

  1. 24/03/2003 - File reading and delayed line-by-line displaying routine. Makes full use of the current command-queue and timeout system. Have created a test help page (well, it's about 5 lines long) which I will make the response to the helppage command. Extra feature is an embedded command function where I can place certain commands in the text files which the program will interpret and replace with the result as it displays.
  2. 28/03/2003 - Finished updating the command input system to use regular expressions rather than simple string comparison. This combined with the new command/response storage in separate modules and a further regular expression based system to replace embedded variables in the text during operation. This is one step closer to being able to add a remote configuration system.
  3. 05/04/2003 - Refined the command queue system. Extra parameters are now passed so the same code can be run for both public and private operation.
  4. 10/04/2003 - Added the helppage command which sends a query to the user (if their client and modes allow) which is stored in a file named stinkyhelp.txt
  5. 15/04/2003 - memo function. Not yet complete, but users can leave messages with stinkybot for other users. The details will be passed on to the user (privately or publically - depending on how the message was left) when they join the channel.
  6. 20/04/2003 - Some minor fixes and tweaks.

future developments

The following is a list of the functions that are currently in development and some details about what is required to get them working.

  1. Make the public command system more strict. If you want to query stinkybot then the line you enter must start with stinkybot. Right now it checks any line containing the the word stinkybot, so may run a command when it isn't being issued.
  2. Mode checking system. Can private messages and notices be sent to the user? Could be useful to check this before trying to send a file (ie. the help page.)
  3. Register and check users - I want ppl to register with stinkybot before it starts logging their channel usage etc. This is to cut down on unneeded data from ppl joining and parting like spambots. It also means stinkybot will have a way to identify ppl that often change their nick. Your main nick will need to be registered for you to register with stinky (due to modes more than anything else.)
  4. Stinky Modules - When one or two of the above features have been completed I will split up stinkybots code into separate files. For ease of coding really. It may also be possible for the basic stinkybot system to continue functioning as I am working on other parts.
  5. Update memo function to store time (requires unix time conversion) and have some kind of clean up function (automatic or by administration.) Which leads on to the next point...
  6. Remote administration. Will enable me and other trusted users to get stinkybot to display certain system information (eg. uptime, current commands in queue) and reset, reload scripts and other switches that will follow.
  7. Registered user details - Will provide links to registered users profiles. This will be voluntary and supplied by the users themselves.
  8. User statistics - stinkybot will count messages and log things like how long you are in the channel and longest/total idle time. Will give each user a rating. Will also produce general channel statistics which will be converted to graphs by a script on my web server.
  9. Quiet mode when the channel is quite busy (no random quotes, etc.) Will also make a switch for admins to turn quiet mode on/off.
  10. stinkyTopic. People can set one or more topics which will be displayed every now and then when the channel is quiet or when requested. Might evolve this into a messaging/news system (see below)
  11. stinkyPM system. Leave messages with stinky to be passed on to people that are away from the channel when they return.
  12. file saving/updating - So stinkybot can back up the contents of global lists and variables (eg. Stored topics/messages and current modes) so that it can be reset and then restore previous settings, etc.
  13. StinkyQuote. Teach stinky new quotes and also responses to user commands (eg. stinkybot: fat horse)

And heres some stuff that I might do after all of the above:

  1. stinkyLog - Not sure about this, but stinkybot could maintain logs and search them for keywords in order to quote people.
  2. stinkyMsg - People can view/post questions/requests and view/post replies.
  3. stinkyGames - I'm giving some thought to some little games I could add. May add some very simple ones before I get this far ;-)

notes & contact

I'm learning TCL and irc scripting. I've already coded some simple scripts to alert me on different events, play sounds... Useful but boring. This is fun. And the end result, I hope, will be a fun toy to play with which also has some useful functionality when needed. And it should be small, stable and well coded ;-)

I am not, as there is no point, trying to create something in the same league as existing irc bots such as egg drop. If I needed some serious bot action right now then that is what I'd use.

If you have any questions or would like to contribute ideas, tips, time to the stinkybot project then please email me at


John Ball (aka zudobug/idlebug/boneidle) stinkybot icon


page and contents copyright © 2003 The Ababcrab

Valid XHTML 1.0!