Synchronet v3.21e-Win32 (install) has been released (Mar-2026).

You can donate to the Synchronet project using PayPal.

Chat Features

To configure the “chat” features of the Synchronet Terminal Server, use the SCFG->Chat Features menu option.

╔═════════════════════════════╗
║        Chat Features        ║
╠═════════════════════════════╣
║ │Artificial Gurus           ║
║ │Multinode Chat Actions     ║
║ │Multinode Chat Channels    ║
║ │External Sysop Chat Pagers ║
╚═════════════════════════════╝

Here you may configure the real-time chat-related features of the BBS.

Artificial Gurus

The Guru is an artificial conversational engine users can chat with for entertainment. The sysop can configure multiple gurus, each with its own personality and intelligence engine, defined in a .dat file in ctrl (the default guru's brain is ctrl/guru.dat). See GURU.DAT customization for the data file format.

This menu lists the configured gurus. Use Ins to add a new guru, Del to remove one. Selecting a guru opens its sub-menu.

╔═════════════════════════════════════════════╗
║               Artificial Gurus              ║
╠═════════════════════════════════════════════╣
║ │The Guru                                   ║
║ │                                           ║
╚═════════════════════════════════════════════╝

Guru

╔══════════════════════════════════════════════════════════╗
║                         The Guru                         ║
╠══════════════════════════════════════════════════════════╣
║ │Guru Name                  The Guru                     ║
║ │Guru Internal Code         GURU                         ║
║ │Access Requirements                                     ║
╚══════════════════════════════════════════════════════════╝
Option Name Description
Guru Name The display name users see when chatting with this guru.
Guru Internal Code Up to 16 characters; uniquely identifies this guru within Synchronet. Also the base filename of the intelligence engine for this guru (with the .dat extension, located in ctrl — e.g. internal code GURU loads ctrl/guru.dat).
Access Requirements An ARS expression — only users matching the requirements can chat with this guru.

Multinode Chat Actions

Multinode Chat Actions are configured in “sets” which can be assigned to Multinode Chat Channels.

╔══════════════════════════════════════════════════════════╗
║                   Main Chat Action Set                   ║
╠══════════════════════════════════════════════════════════╣
║ │Action Set Name            Main                         ║
║ │Configure Chat Actions...                               ║
╚══════════════════════════════════════════════════════════╝

Set of Chat Actions

This is a list of the configured multinode chat actions. The users can use these actions in multinode chat by turning on action commands with the /A command in multinode chat. Then if a line is typed which begins with a valid action command and has a user name, chat handle, or node number following, the output string will be displayed replacing the %s symbols with the sending user's name and the receiving user's name (in that order).

╔════════════════════════════════════════════════════════════════════╗
║                          Main Chat Actions                         ║
╠════════════════════════════════════════════════════════════════════╣
║ │ANGER     rh%s is trying to make %s angry.                        ║
║ │ANGRY     rh%s is very angry and wants %s to know about it.       ║
║ │APPLAUD   bhCLAP CLAP CLAP![]y%s expresses approval with %s.      ║
║ │ARMWRESTL mh%s arm wrestles with %s.                              ║
║ │BARK      rhRUFF![]m%s barks at %s.                               ║
║ │BEAT-UP   hb%snb beats h%s up.                                    ║
║ │BLUSH     rh%s turns to %s and blushes shyly.                     ║
║ │BOW       nc%s bows to %s.                                        ║
║ │BURP      bhBELCH![]y%s burps at %s.                              ║
║ │BUY       mh%s attempts to purchase %s.                           ║
║ │BYE       mh%s says "wBYEm" to %s.                                ║
║ │CARESS    mh%s caresses %s.                                       ║
║ │CHEAT     rh%s is cheating on %s.                                 ║
║ │COMFORT   bh%s comforts %s.                                       ║
║ │COUGH     ghACK ABLEW AHEM![]ng%s coughs at %s.                   ║
║ │CRY       nm%s looks at %s and cries.                             ║
║ │CUDDLE    mh%s cuddles with %s.                                   ║
╚════════════════════════════════════════════════════════════════════╝

Multinode Chat Channels

This menu lists the configured chat channels. Use Ins to add a new channel, Del to remove one. Selecting a channel opens its sub-menu:

╔══════════════════════════════════════════════════════════╗
║                     Main Chat Channel                    ║
╠══════════════════════════════════════════════════════════╣
║ │Name                       Main                         ║
║ │Internal Code              Main                         ║
║ │Cost in Credits            0                            ║
║ │Access Requirements                                     ║
║ │Password Protection        No                           ║
║ │Guru Joins When Empty      Yes                          ║
║ │Channel Guru               The Guru                     ║
║ │Channel Action Set         Main                         ║
╚══════════════════════════════════════════════════════════╝
Option Name Description
Name Channel display name shown to users in the channel list.
Internal Code Up to 16 characters; uniquely identifies this channel within Synchronet.
Cost in Credits Credits deducted from a user's account when joining this channel. 0 = free.
Access Requirements An ARS expression — users not matching the requirements cannot see or join this channel.
Password Protection If Yes, users may lock the channel with a password; only users knowing the password can enter once it's locked.
Guru Joins When Empty If Yes, the configured Channel Guru will join the channel when only one user is present.
Channel Guru The Artificial Guru that joins when the channel is empty (if Guru Joins When Empty is enabled).
Channel Action Set The Chat Action Set available to users in this channel.

External Sysop Chat Pagers

External sysop pagers run a command (typically to play a sound or send an external notification) when a user pages the sysop. Multiple pagers may be configured with different access requirements — e.g. play different sounds for different user classes, or trigger a notification only after hours.

Use Ins to add a new pager, Del to remove one. Selecting a pager opens its sub-menu.

╔═════════════════════════════════════════════╗
║          External Sysop Chat Pagers         ║
╠═════════════════════════════════════════════╣
║ │?sound.js %!syspage.wav      WIN32         ║
║ │                                           ║
╚═════════════════════════════════════════════╝

Sysop Chat Pager

╔══════════════════════════════════════════════════════════╗
║                    Sysop Chat Pager #1                   ║
╠══════════════════════════════════════════════════════════╣
║ │Command Line               ?sound.js %!syspage.wav      ║
║ │Access Requirements        WIN32                        ║
║ │Native Executable          No                           ║
║ │I/O Method                 FOSSIL or UART               ║
║ │Use Shell or New Context   No                           ║
╚══════════════════════════════════════════════════════════╝
Option Name Description
Command Line The command line to invoke when the sysop is paged. The example above runs the JavaScript module sound.js with the syspage.wav file in exec.
Access Requirements An ARS expression — the pager runs only for users matching the requirements. The example WIN32 restricts to Windows hosts.
Native Executable Yes if the command is a native (non-DOS) executable; No for DOS programs (which require a DOS emulator on *nix).
I/O Method How standard I/O is handled — FOSSIL or UART (intercepted), Standard I/O (stdin/stdout pass-through), etc.
Use Shell or New Context If Yes, the command is run via a shell (or a new context) rather than executed directly.

See Also