2013-01-31 00004

Sally in AquaNox

Sally is the IRC bot developed by qptain Nemo for use in Club Galen and the official IRC channel of Lazy & Sleepy. She is named after the AI in AquaNox.

Due to the community vote of 4:3:2 she'll be renamed to Birdan in Club Galen once she reaches a stable stage suitable for server deployment.

I've changed my mind. My vote was the decisive vote anyway (ironically enough) and I voted for Birdan only to avoid an awkward even split. If no one minds I'll keep her named Sally. If someone minds, please call for a new vote.

— qN
You can find the changelog here.

General usage principles Edit

Generally speaking, Sally will only respond and react to anyone if her name is the first word in a message.

Under normal circumstances her intended name matches her current nickname and it is simply "Sally" but if for some reason her current nickname differs (e.g. it's Sally_) she will respond to that as well.

She also responds to "sal".

Each accepted name is case-insensitive and she understands space, comma and colon as separators.

In other words, she will respond to all of the following: "Sally stats", "Sally, stats", "Sally: stats", "sally stats" and "sal stats".

However, by default Sally won't say anything if your message follows her name with "is", "isn't", "does", "doesn't", "will", "won't", "can" or "can't", "might", "would", "wouldn't" in order to make discussing her less irritating. You still can define factoids using = starting with those words, though, and they will work.

Additionally, if anyone's message contains a URL that links to a webpage, she will attempt to provide the title of that page, in some cases along with some additional information.

Lastly, if anyone's message contains (sp) Sally will check the spelling of the preceding word.

User commands Edit

Generic Edit

help or help command

Provides the list and the descriptions of available commands along with the url of this page.

sloganize term or sloganise term

Outputs a random slogan featuring the provided term or terms. Most suitable terms are singular nouns and noun-like expressions.

last number

Outputs the specified number of the last messages written in the channel. The purpose is catching up with the chat when you just joined. Only numbers 1 through 5 are accepted.

party expression

Outputs the specified expression with text decoration in randomized bright colors.

seen nickname

Outputs the period of time that has elapsed since the last time a person with the specified nickname has spoken or acted in the current channel along with their message / action.


Outputs the list of nicknames that have been active in the channel in the last 24 hours but aren't online now.

query partial nickname or query letter

If only one letter is provided outputs all nicks on record that have spoken starting with that letter along with their last known activity, otherwise outputs it for all nicks that contain the specified sequence of letters in them.

tell nickname message

Stores the message which is later delivered to the recipient with the specified nickname whenever they speak or act in the channel.

insult term

Outputs a disparaging sentence featuring the provided expression. Like with sloganize, the most suitable terms are singular nouns and grammatically equivalent expressions.

expression = definition

Assigns a definition to the specified expression. Now whenever anyones writes "Sally expression" Sally will respond with the previously provided definition.

Special elements in definitions:

  • If a definition starts with * then the response will be given as an IRC action instead of a normal message. For example writing "Sally wobble = * wobbles" will result in "Sally wobbles" appearing in the chat.
  • Every instance of [user] in the definition will be replaced with the nickname of whoever addressed Sally with that expression.

forget expression

Erases a previously stored definition.


Outputs various stats for the current channel. That currently includes:

  • the total number of messages Sally has seen in the channel.
  • the maximum number of users Sally has seen online
  • the maximum number of users seen talking simultaneously over the course of 5 minutes

choose expression or expression or expression ...

Sally randomly selects an expression from the provided list of them separated with "or".

roll NdS

Sally rolls N virtual dice with S sides each. For example "Sally roll 1d6" rolls one classic 6-sided die, "Sally roll 2d20" rolls two DND-style 20 sided dice and so on.

remind nick in timespan message

Sally stores a reminder that is outputted after the specified period of time and is directed at the specified nickname. If a person with the specified nickname isn't present, the reminder is automatically converted to a tell for them. The specified timespan must be longer than 1 minute and shorter than 100 years. Recognized time units include second, minute, hour, day, week, month (interpreted as 30 days) and year (interpreted as 365 days). You can use several units at once, e.g. "Sally remind me in 1 day 3 hours 20 minutes something". (also their order and repetition doesn't actually matter, so you can do "Sally remind me in 3 minutes 1 hour 10 minutes something")


Sally outputs all the reminders that you and/or other users have set for your nickname along with how much time is left until each of them activates.

nextep name of a show

Sally tries to get information about the air time of the next episode of the specified TV show from TVMaze.

mg name of a game

Sally searches for and provides information about a specified game from MobyGames.

steam name of a game

Sally searches for and provides information about a specified games on Steam.

log or log timespan

Sally provides a link to a paste containing the chat log for the specified timespan from the current moment into the past. If the timespan isn't specified one hour is assumed. The timespan must be between 1 minute and 24 hours.

Currently this functionality might be slightly inaccurate around the times Sally splits her logs. Namely after midnight UTC on 1st, 8th, 15th and 22nd day of each month you won't get the messages written before midnight even if they fit inside the timespan. This is intended to be addressed later.

seach text

Sally searches for the provided text in the factoids stored for this channel, both in the expressions and their definitions/responses and outputs as many results as would fit into one message.

spell words

Sally checks the spelling of the provided word or words and writes spelling suggestions in case any of them weren't spelled correctly.

define word

Sally provides the definitions of the specified word or expression using Wiktionary.

Available to users of registered nicknames Edit

tells.mode naive|safe|strict or tells.mode

Sets the mode of delivering and sending tells for your nickname if specified, otherwise outputs the currently set mode for your nickname.

In the default naive mode, Sally delivers the tells immediately whenever you or anyone else writes anything using that nickname regardless of whether you have authenticated with the network services.

In the safe mode your tells will be only delivered to you after you authenticate with the network services.

In the strict mode, no one can send tells using your nickname until they authenticate with the services.

QuakeNet-specific Edit


If you want Sally to treat your nickname as a registered nickname on QuakeNet the same way as on servers with NickServ you can change to the desired nickname, auth with Q and use this command to bind your QuakeNet login to your current nickname. Now whenever you use that nickname and are authenticated with Q, Sally will automatically treat you as a registered authenticated user.

Channel operator commands Edit

ignore nickname

Sally stops acknowledging commands from the user with the specified nickname. The user will still receive tells from other users.

forgive nickname

Sally resumes accepting commands from the specified user.

Sally admin commands Edit


Makes Sally disconnect from all networks and quit.

If the situation is normal her controlling bash script will immediately automatically restart her.


Makes Sally disconnect and quit but also prevents her from being restarted by her controlling bash script.

obey nickname

Adds the specified user to recognized Sally admins.

join #channel

Makes Sally join the specified channel.

leave #channel

Makes Sally leave the specified channel.

Community content is available under CC-BY-SA unless otherwise noted.