====== MENU COMMAND REFERENCE ====== ^ Related Categories ^ | [[themes|Themes]] | | [[menus|Menus]] | ----- Mystic BBS has a completely configurable and incredibly flexible menu system that allows for full control over the visual appearance and functionality of the BBS. Each menu consists of the basic settings, and a list of menu commands that define what options are available on each menu. These menu commands can then be assigned one or many "actions" to perform when the item is selected. Each action may also have parameters that can be or will be required to be specified in the "data" field. This section contains a reference to all of the menu actions available in your Mystic BBS as well as any information needed that relates to those actions. The syntax of each menu command is: Data: available data switches / syntax A description of the menu command and available data switches **Note: Mystic has around 140 different menu commands, not all of them are documented here yet.** ---- ===== AUTO SIGNATURE ===== An Auto signature is an user created signature that can optionally be automatically appended to each message posted by the user. The following menu commands are available for manipulating the auto message: **AD - Delete Auto Signature** Data: None Deletes the user's auto signature **AE - Edit Auto Signature** Data: None Edits the user's auto auto signature **AT - Toggle Auto Signature** Data: /NOASK Asks the user if the want to enable or disable the auto signature. If the /NOASK option is supplied on the optional data field, then Mystic will toggle the setting without prompting with a Yes/No question. **AV - View Auto Signature** Data: None View the user's auto signature ---- ===== BBS LIST ===== Mystic can have any number of different BBS lists, identified by using a "List ID". The List ID is simply the base filename used to store the BBS list database on disk, so it can be any valid filename but should never include any file extension, just a basic word of text. The following section contains BBS List menu commands: **BA - Add new entry to BBS list** Data: This option allows the user to add a new entry to a BBS list. The BBS list must be specified using the in the optional data. **BL - List entries in a BBS list (detailed view)** Data: ;SEARCH This option allows the user view the BBS list using the detailed list mode. This provides more information than the typical abbreviated list The must be specified in the optional data. If ";SEARCH" is appended onto the List ID, then Mystic will prompt and allow the user to search for entries in the BBS list. **BS - List entries in a BBS list (abbreviated view)** Data: ;SEARCH This option allows the user view the BBS list using the abbreviated view mode. This provides more information than the typical abbreviated list The must be specified in the optional data. If ";SEARCH" is appended onto the List ID, then Mystic will prompt and allow the user to search for entries in the BBS list. ----- ===== EXTERNAL DOORS ===== Mystic BBS supports DOOR.SYS, CHAIN.TXT, and DORINFO1.DEF DOS-based door formats, as well as Mystic's own native DOOR32.SYS format for modern BBS doors and games. These drop files are always created in the node's specific temporary directory. For example, if a door is executed on node 1, then the drop files will be created in the node's temporary directory "temp1" that is created off of the root Mystic BBS directory (ie c:\mystic\temp1\) In the Linux and macOS versions, Mystic automatically redirects the standard input and output of external programs, allowing many programs that are not even designed for BBSes to be used. From a technical perspective it forks and executes your command line with /bin/sh then creates a watchdog on the child process so that it can help trap lost connections even for programs that cannot detect those types of things natively (like a BBS door would). It is important to understand that commands are not executed from bash when Mystic runs them, they are executing the system shell. In other words, if you want to test a command line you should test it accordingly outside of Mystic by executing: /bin/sh -c to see if it works. Each door action has a command line which will be executed by the operating system when the action is executed. There are a number of codes that Mystic will replace with specific values if they are found in the command line: %# = User's unique ID %A = User's real name (spaces are replaced by an underscore) %B = User's real name (with spaces) %C = The current user's codepage (CP437 or UTF8) (added 1.12 A39) %H = The current socket handle (added 1.12 A34) %N = The current node number (added 1.12 A34) %P = Node's temp directory where drop files are stored (w/ trailing slash) %R = User's handle (with spaces) %T = User's time left in minutes %U = User's handle (spaces are replaced with an underscore _) %0 = The current communication handle (socket handle) %1 = Depreciated. Always returns a "1" now %2 = Depreciated. Always returns "38400" now %3 = The current node number %4 = User's IP address %5 = User's hostname All of the door menu commands have a helper function to allow switching directories without relying on scripting or operating system commands. If "CD" is used in the command line (without the quotes), Mystic will remove it and change to the directory specified between the <> characters prior to executing the command line. Mystic tracks the number of doors opened by a user when using a DOOR menu command. Door command lines can have a /NOSTAT at the end of the command line in optional data to tell Mystic not to increment the users door count. **The following commands are available for executing external programs and doors:** **DD - Execute External Program** Data: /DOS Creates the DORINFO1.DEF, CHAIN.TXT, and DOOR.SYS drop files in the node's temporary directory. In case sensitive file systems, these files are created with full UPPERCASED letters. If the /DOS option is appended on to the end of the command line, Mystic will create the drop files in a DOS text file format, even when used in operating systems like OS X and Linux that used a different text file format. **D3 - Execute DOOR32 Door Program** Data: /DOS Creates the DOOR32.SYS drop file in the node's temporary directory. This file is always created in lower cased letters on all operating systems. If the /DOS option is appended on to the end of the command line, Mystic will create the drop files in a DOS text file format, even when used in operating systems like OS X and Linux that used a different text file format. **DX - Execute w/ DOSXTRN (Win32)** Data: Creates DORINFO1.DEF, CHAIN.TXT, and DOOR.SYS drop files in the node's temporarily directory and then runs the command line with DOSXTRN DOS FOSSIL redirection (as an alternative to NetFossil). This function only works for Windows 32-bit systems and requires dosxtrn.exe and sbbsexec.dll to be placed into the root Mystic BBS directory. This is the recommended method to run DOS doors if you are using Windows 32-bit ---- ===== FILE BASES ===== Mystic supports an unlimited number of file bases and file groups which can contain any number of files within them. Files can be listed using arrow and page keys to scroll through the list, and archives can be interactively browsed and searched in the same way (including archives within archives). Mystic fully supports long file names in both file directories and file names, and has extended support for things like ANSI within .DIZ files, and more. This section contains menu actions that are relative to Mystic's file areas. **FA - Change File Base** Data: "+", "-", , /NOLIST, or None This action will list the File Bases in the user's current File Group and prompt the user to select a new File Base. If /NOLIST is supplied in data, then Mystic will prompt for the File Base and not automatically list them first. If the data is set to "+" then Mystic will move to the next File Base that the user has access to. If the data is set to "-" then Mystic will move to the previous File Base. Finally, the Base ID can be supplied (as shown in the File Base Editor) to automatically change the user into a specific File Base. **FD - Download Files** Data: None This command will prompt the user to download file(s). If the user currently has files queued for download, Mystic will ask them first if they would like to download the queued files. If the user selects no or does not have any files in the queue, Mystic will ask them for a filename to download, and then search the File Bases to allow the user to download the requested file. **FF - Download New/Master File List** Data: /NEW, /GLOBAL, None This command will compile a list of files in the File Bases based on the user's access levels. If no option is supplied, Mystic will generate a list of all files in the File Bases in the user's current file group. If /NEW is supplied, Mystic will generate a list of only new files. If /GLOBAL is supplied, Mystic will generate a list that will include all File Bases within all File Groups instead of just the current group. **FG - Change File Group** Data: "+", "-", , or None This action will list the File Groups that the user has access to, excluding any groups flagged as "hidden" and then prompt the user to select a File Group. If the data is set to "+" then Mystic will move to the next File Group. If the data is set to "-" then Mystic will move to the previous File Group. Finally, the Group ID can be supplied (as shown in the File Group Editor) to automatically change the user into a specific File Group. When joining a file group, Mystic will display the "fgroup#" display file from the theme's text directory if it exists, where # is the group's ID. **FI - File Base Index** Data: