====== Chat Features ====== To configure the "chat" features of the Synchronet [[server:Terminal]] Server, use the [[util: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 [[dir:ctrl]] (the default guru's brain is ''ctrl/guru.dat''). See [[custom:guru|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 [[dir:ctrl]] — e.g. internal code ''GURU'' loads ''ctrl/guru.dat''). | | Access Requirements | An [[access:requirements|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 | [[access:credits|Credits]] deducted from a user's account when joining this channel. ''0'' = free. | | Access Requirements | An [[access:requirements|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_gurus|Artificial Guru]] that joins when the channel is empty (if //Guru Joins When Empty// is enabled). | | Channel Action Set | The [[#multinode_chat_actions|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 [[config:cmdline|command line]] to invoke when the sysop is paged. The example above runs the JavaScript module ''sound.js'' with the ''syspage.wav'' file in [[dir:exec]]. | | Access Requirements | An [[access:requirements|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 ===== * [[:config:|config index]] * [[:howto:relay_smtp|Sysop notification by email]] * [[:howto:mqtt|MQTT events]] * [[:custom:guru|Guru customization (GURU.DAT)]] {{tag>chat guru chat-channels chat-actions sysop-pager}}