Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


IRC Bot

<cellguy> can anyone answer a Sychronet IRC question for me?  has to do with the bot scripts included with synchronet package
<cellguy> How do you get them working?  Cant find any documentation on them
<cellguy> need to get one oman IRC channel on my server
<cellguy> saw them in the directory and looked at the configs, just need a jump start
<Troice> You set up the ini file and run it using jsexec.
<cellguy> ok sweet, thats the jump start I was looking for
<Troice> ctrl/ircbot.ini
<Troice> sbbs/exec/jsexec -d ircbot.js
<cellguy> thanks a bunch

Installation

The IRC bot is included with Synchronet BBS, at exec/ircbot.js. Additional IRC bot modules are available in exec/ircbots/.

Configuration

The IRC bot configuration file is ctrl/ircbot.ini.

[server_ServerName]
addresses=add.ress.one, add.ress.two
nick=BotNickname
services_password=?
channels=#channelone, #channeltwo
port=6667

Notes:

  1. If you are running the Synchronet ircd, you can connect the bot to localhost, 127.0.0.1, or the specific interface that the ircd binds to as configured in ctrl/services.ini
  2. You may place more than one server section in ctrl/ircbot.ini, however connecting to multiple servers with one bot currently does not work. Instead, you would need to run multiple instances of ircbot.js.

Modules There are a number of modules available for the IRC bot, but they are not all enabled (or listed) in ctrl/ircbot.ini by default.

[module_ModuleName]
channels=#channelone <key>,!#channeltwo
dir=/sbbs/exec/ircbots/mybot/
lib=mylib.js
global=true

Looking at the exec/ircbots directory, you may see more modules that are installed but bot configured. As of the time of this writing, the following are available:

;[module_Trivia]
;dir=/sbbs/exec/ircbots/trivia/

[module_Admin]
global=true
dir=/sbbs/exec/ircbots/admin/

[module_Antispam]
global=true
dir=/sbbs/exec/ircbots/antispam/

[module_Decider]
global=true
dir=/sbbs/exec/ircbots/decider/

[module_Dice]
global=true
dir=/sbbs/exec/ircbots/dice/

[module_Dis]
dir=/sbbs/exec/ircbots/dis/

;[module_Google]
;global=true
;dir=/sbbs/exec/ircbots/google/

[module_Ham]
dir=/sbbs/exec/ircbots/ham/

[module_Humanity]
dir=/sbbs/exec/ircbots/humanity/

[module_Info]
global=true
dir=/sbbs/exec/ircbots/info/
lib=http.js

[module_Poker]
dir=/sbbs/exec/ircbots/poker/
lib=cardlib.js

[module_Presence]
dir=/sbbs/exec/ircbots/presence/

[module_Weather]
global=true
dir=/sbbs/exec/ircbots/weather/
lib=http.js

[module_WhereIs]
global=true
dir=/sbbs/exec/ircbots/whereis/
lib=http.js

[module_RPG]
dir=/sbbs/exec/ircbots/rpgbot/

Notes

  1. Google seems to have some file dependencies and doesn't execute so I have it commented out.
  2. No trivia directory although it is listed in the ini file.
  3. Otherwise, by adding the modules to the ini and restarting the bot you may make these available in your ircd.

Running the IRC Bot

The IRC bot can be executed via jsexec, jsexec ircbot.js, and an alternate configuration file may be specified like so: jsexec ircbot.js -f /some/other/ircbot.ini.

You can also run the IRC bot via your services thread by adding an entry to services.ini:

[IRCBot]
Port=6668
Options=STATIC|LOOP
Command=ircbot.js

Note that the Port value must be supplied, but is irrelevant; the bot does not listen for connections. Just pick an unused port.

You can add -f /some/other/ircbot.ini to the Command line to specify an alternate configuration file.

Using the IRC Bot

Notes

  1. See the help by sending /msg <botnick> help.
  2. You will need to /msg <botnick> IDENT <password> against your bot to see the full menu of items

Without IDENT the help looks like;

Usage: HELP <module> <command> | HELP <command>
[main] help,?,ident,quote
[admin] whois,eval,lastspoke
[antispam] 
[decider] should
[dice] roll,dice
[dis] quote,dis
[ham] specs,z,geo,vhf,hf,country,callsign,contests,bands
[humanity] humanity,submit,humanity!,pick,humanity?,score
[info] def,syn,info,wtf
[poker] deal,go,fold,check,bet,call,raise,status,list,show,hole,invite,balance
[presence] nodelist
[weather] weather,forecast
[whereis] whereis
[rpg] create,classes,races,zones,login,logout,help
editor commands: set, link, unlink, move, mobs, items, exits, title, desc, goto, look
battle commands: flee, kill
item commands: drop, get, put, unlock, lock, open, close, remove, wear, equip, wield
rpg commands: score, status, move, equipment, inventory, look
for detailed command info, type 'rpg help <command>'
for help creating a characer, type 'rpg help create'
for help with the editor, type 'rpg help editor'

With IDENT it looks like;

Usage: HELP <module> <command> | HELP <command>
[main] reload,load,join,part,die,restart,help,?,ident,addquote,quote,greet,save,prefix,nick,module,modules,abort,ignore
[admin] whois,addmask,delmask,adduser,change,resetpass,pass,seval,eval,groups,subs,subgroups,read,finger,udpfinger,exec,say,lastspoke,force,debug,objkeys,tail,pipe
[antispam] 
[decider] should
[dice] roll,dice
[dis] quote,dis
[ham] specs,z,geo,vhf,hf,country,callsign,contests,bands
[humanity] humanity,submit,humanity!,pick,humanity?,score
[info] def,syn,info,wtf
[poker] deal,go,fold,check,bet,call,raise,status,list,show,hole,invite,balance,buyin
[presence] nodelist
[weather] weather,forecast
[whereis] whereis
[rpg] create,classes,races,zones,login,edit,logout,save,help,restore
editor commands: set, link, unlink, move, mobs, items, exits, title, desc, goto, look
battle commands: flee, kill
item commands: drop, get, put, unlock, lock, open, close, remove, wear, equip, wield
rpg commands: score, status, move, equipment, inventory, look
for detailed command info, type 'rpg help <command>'
for help creating a characer, type 'rpg help create'
for help with the editor, type 'rpg help editor'

See Also