Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
custom:atcodes [2020/10/14 21:02] – [User Information] Add BIRTH @-code and aliases: BIRTHFMT and BIRTH:fmt digital man | custom:atcodes [2023/03/03 18:04] – [System Information] Add CPS digital man |
---|
====== Message Variables (@-codes) ====== | ====== Message Variables (@-codes) ====== |
| |
Synchronet sysop-posted messages, text and menu files, and some lines in the ''[[dir:ctrl]]/[[text.dat]]'' file may contain special //Message Variables//, also called //@-codes// ("at codes", some BBS authors and sysops refer to these types of codes as "@ Macros" or "MCI codes"((and not because of the defunct phone company))). @-codes may also be displayed using the ''bbs.atcode()'' JavaScript method. | Synchronet sysop-posted messages, text and menu files, and some lines in the ''[[dir:ctrl]]/[[text.dat]]'' file may contain special //Message Variables//, also called //@-codes// ("at codes", some BBS authors and sysops refer to these types of codes as "@ Macros" or "@ Variables" or "MCI codes"((and not because of the defunct phone company))). @-codes may also be displayed using the ''bbs.atcode()'' [[JavaScript]] method. |
| |
@-codes are called such because they begin and end with the ''@'' (ASCII 64) ("at") character. The code names themselves (sandwiched between the @'s) must be entered using only ''UPPERCASE'' letters. Some additional symbols and numbers may also be included in the @-code, but never a space. | @-codes are called such because they begin and end with the ''@'' (ASCII 64) ("at") character. The code names themselves (sandwiched between the @'s) must be entered using only ''UPPERCASE'' letters. Some additional symbols and numbers may also be included in the @-code, but never a space. |
|AUTODEL | |Maximum days of user inactivity before auto-deletion or "unlimited" | | |AUTODEL | |Maximum days of user inactivity before auto-deletion or "unlimited" | |
|BBS |BOARDNAME |Name of BBS | | |BBS |BOARDNAME |Name of BBS | |
| |BUILD_DATE | |Date of Synchronet build | |
| |BUILD_TIME | |Time of Synchronet build | |
|COMPILER | |Compiler used to build Synchronet| | |COMPILER | |Compiler used to build Synchronet| |
|CONF | |Name of current Group and Sub-board| | |CONF | |Name of current Group and Sub-board| |
|CONN | |Connection description (modem type, "Telnet", "RLogin", etc.)| | |CONN | |Connection description (modem type, "Telnet", "RLogin", etc.)| |
|COPYRIGHT | |Synchronet copyright details| | |COPYRIGHT | |Synchronet copyright details| |
| |CPS | |Current/latest file download rate, in characters/bytes per second (new in v3.20)| |
|DATE |SYSDATE |Current system date (in "DD/MM/YY" or "MM/DD/YY" format)| | |DATE |SYSDATE |Current system date (in "DD/MM/YY" or "MM/DD/YY" format)| |
|DATE://fmt// |TIME://fmt// |Current system date in specified [[strftime]] format | | |DATE://fmt// |TIME://fmt// |Current system date in specified [[strftime]] format | |
|FREESPACEK | |Free disk space available for uploads (in kibibytes) | | |FREESPACEK | |Free disk space available for uploads (in kibibytes) | |
|FULL_VER | |Synchronet full version number (e.g. "3.15a")| | |FULL_VER | |Synchronet full version number (e.g. "3.15a")| |
| |GIT_BRANCH | |Synchronet Git repository branch name (e.g. "master")| |
| |GIT_HASH | |Synchronet Git repository commit hash (most significant Git-SHA hex-digits)| |
|GRP | |Current message group short description | | |GRP | |Current message group short description | |
|GRPL | |Current message group long description | | |GRPL | |Current message group long description | |
|ONODES |ONODE, ON |Number of other active nodes (not counting current node) | | |ONODES |ONODE, ON |Number of other active nodes (not counting current node) | |
|OS_VER | |Operating system type and version information| | |OS_VER | |Operating system type and version information| |
| |OS_CPU | |Processor architecture name according to the operating system (e.g. "x86", new in v3.20) | |
|PLATFORM | |Platform or operating system name (e.g. "win32", "linux")| | |PLATFORM | |Platform or operating system name (e.g. "win32", "linux")| |
|PWDAYS | |Maximum age (in days) of user's password before forced-change or "unlimited" | | |PWDAYS | |Maximum age (in days) of user's password before forced-change or "unlimited" | |
|MSG_AUXATTR | |Current message auxiliary attributes| | |MSG_AUXATTR | |Current message auxiliary attributes| |
|MSG_NETATTR | |Current message network attributes| | |MSG_NETATTR | |Current message network attributes| |
|MSG_UPVOTES | |Current message total number of 'up-votes' (new v3.17)| | |MSG_UPVOTES | |Current message total number of 'up-votes' (new in v3.17)| |
|MSG_DOWNVOTES | |Current message total number of 'down-votes' (new in v3.17)| | |MSG_DOWNVOTES | |Current message total number of 'down-votes' (new in v3.17)| |
|MSG_SCORE | |Current message vote score (down-votes subtracted from up-votes)| | |MSG_SCORE | |Current message vote score (down-votes subtracted from up-votes)| |
|MSG_UPVOTED | |Current user up-voted status for current message (checkmark) | | |MSG_UPVOTED | |Current user up-voted status for current message (checkmark) | |
|MSG_DOWNVOTED | |Current user down-voted status for current message (checkmark) | | |MSG_DOWNVOTED | |Current user down-voted status for current message (checkmark) | |
| |MSG_THREAD_ID | |Current message thread's thread-id (message number) | |
| |MSG_THREAD_NEXT| |Current message thread's next message number | |
| |MSG_THREAD_BACK| |Current message thread's previous message number | |
| |MSG_THREAD_FIRST| |Current message's first reply message number | |
|FILE_AREA | |Current file area (lib and directory) names | | |FILE_AREA | |Current file area (lib and directory) names | |
|FILE_AREA_DESC | |Current file area (lib and directory) descriptions | | |FILE_AREA_DESC | |Current file area (lib and directory) descriptions | |
|SYSOP | |Name of System Operator | | |SYSOP | |Name of System Operator | |
|SYSAVAIL | |Sysop availability for chat (e.g. "Available" or "Not Available")| | |SYSAVAIL | |Sysop availability for chat (e.g. "Available" or "Not Available")| |
| |SYSAVAILYN | |Sysop availability for chat (e.g. "Yes" or "No")| |
|TFILE | |Total number of files on system | | |TFILE | |Total number of files on system | |
|TIME |SYSTIME |Current system time | | |TIME |SYSTIME |Current system time | |
|KBLEFT | |User's total credits (in kibibytes) | | |KBLEFT | |User's total credits (in kibibytes) | |
|KBLIMIT |DLKLIMIT, MAXDK |User's free credits per day (in kibibytes) | | |KBLIMIT |DLKLIMIT, MAXDK |User's free credits per day (in kibibytes) | |
|MAILW | |Number of mail messages waiting for current user (includes SPAM)| | |MAILR | |Number of read mail messages waiting for current user| |
|MAILW://x// |MAILW#//x// |Number of mail messages waiting for current user number //x// (x=0 for all users)| | |MAILR://x// |MAILR#//x// |Number of read mail messages waiting for user number //x// (x=0 for all users)| |
|MAILP | |Number of pending mail messages sent by current user| | |MAILU | |Number of unread mail messages waiting for current user| |
|MAILP://x// |MAILP#//x// |Number of pending mail messages sent by current user number //x// | | |MAILU://x// |MAILU#//x// |Number of unread mail messages waiting for user number //x// (x=0 for all users)| |
| |MAILW | |Total number of mail messages waiting for current user (includes SPAM)| |
| |MAILW://x// |MAILW#//x// |Total number of mail messages waiting for user number //x// (x=0 for all users)| |
| |MAILP | |Number of pending mail messages sent by current user| |
| |MAILP://x// |MAILP#//x// |Number of pending mail messages sent by user number //x// | |
|MAXCALLS | |Maximum number of calls/logons per day allowed per user's security level | | |MAXCALLS | |Maximum number of calls/logons per day allowed per user's security level | |
|MAXLINES | |Maximum number of lines per message allowed per user's security level | | |MAXLINES | |Maximum number of lines per message allowed per user's security level | |
|NOTE |MEMO1 |User's note (new in v3.18c) | | |NOTE |MEMO1 |User's note (new in v3.18c) | |
|PAGER | |Chat pager enabled status (e.g. "On" or "Off")| | |PAGER | |Chat pager enabled status (e.g. "On" or "Off")| |
|PCR | |User's post/call ratio (0-100) | | |PCR | |User's post/call ratio, as a percentage (not capped at 100) | |
|PHONE |HOMEPHONE, DATA, DATAPHONE |Users's phone number | | |PHONE |HOMEPHONE, DATA, DATAPHONE |User's phone number | |
|PTODAY | |Number of messages posted by user today | | |PTODAY | |Number of messages posted by user today | |
|PWAGE | |Age (in days) of the current user's password | | |PWAGE | |Age (in days) of the current user's password | |
|TTOTAL | |Total time used by user for all previous calls/logons (in "HH:MM" format) | | |TTOTAL | |Total time used by user for all previous calls/logons (in "HH:MM" format) | |
|TUSED | |Time used this call (in "H:MM:SS" format) | | |TUSED | |Time used this call (in "H:MM:SS" format) | |
| |UDR | |User's upload/download byte ratio, as a percentage (not capped at 100) | |
| |UDFR | |User's upload/download file ratio, as a percentage (not capped at 100) | |
|UPBYTES | |Total bytes uploaded by user | | |UPBYTES | |Total bytes uploaded by user | |
|UPFILES |UPS |Total files uploaded by user | | |UPFILES |UPS |Total files uploaded by user | |
|QUITCHAR | |Print the character that corresponds with a "quit" command key (e.g. ''Q'') | | |QUITCHAR | |Print the character that corresponds with a "quit" command key (e.g. ''Q'') | |
|EOF | |End-of-file (stop parsing/displaying) | | |EOF | |End-of-file (stop parsing/displaying) | |
|PAUSE |MORE |Force a screen pause (hit a key) prompt| | |PAUSE |MORE |Force a screen pause and a ''[Hit a key]'' prompt, if 'N' or 'Q' are typed, the displayed message/file is aborted | |
|PON |AUTOMORE|Toggle automatic screen pause on | | |
|POFF |NOPAUSE |Toggle automatic screen pause off | | |POFF |NOPAUSE |Toggle automatic screen pause off | |
| |PON |AUTOMORE|Toggle automatic screen pause on | |
| |QOFF | |Toggle display abort-ability off | |
| |QON | |Toggle display abort-ability on | |
|RESETPAUSE | |Reset the automatic screen pause line counter | | |RESETPAUSE | |Reset the automatic screen pause line counter | |
|DELAY://n// | |Wait //n// 10ths of a second before continuing | | |GETKEY | |Wait indefinitely for any key press before continuing | |
|UP://n// | |Move cursor up //n// rows | | |CONTINUE | |Wait indefinitely for any key press before continuing and abort the message/file display if 'N' or 'Q' are typed | |
|DOWN://n// | |Move cursor down //n// rows | | |WAIT://n// | |Wait up to //n// 10ths of a second for a key press before continuing | |
|RIGHT://n// | |Move cursor right //n// columns | | |DELAY://n// | |Wait //n// 10ths of a second before continuing | |
|LEFT://n// | |Move cursor left //n// columns | | |LINEDELAY | |Wait 1/10th of a second before sending each newline character (new in v3.20) | |
| |LINEDELAY://n// | |Wait //n// 100ths of a second before sending each newline character, 0 to disable (new in v3.20) | |
| |UP://n// | |Move cursor up //n// rows | |
| |DOWN://n// | |Move cursor down //n// rows | |
| |RIGHT://n// | |Move cursor right //n// columns | |
| |LEFT://n// | |Move cursor left //n// columns | |
|GOTOXY://x,y// | |Move cursor to //x/////y// coordinate (1-based) | | |GOTOXY://x,y// | |Move cursor to //x/////y// coordinate (1-based) | |
|POS://x// | |Move cursor to column //x// (1-based) | | |POS://x// | |Move cursor to column //x// (1-based) | |
|CENTER | |Middle-align the remaining text on the line | | |CENTER | |Middle-align the remaining text on the line | |
|SYSONLY | |Toggle off/on visibility for non-sysops | | |SYSONLY | |Toggle off/on visibility for non-sysops | |
| |SHOW://ars// | |Turn off the display of the following text for users not meeting the specified [[access:requirements|Access Requirements String]] (without spaces). | |
| |SHOW | |Turn on the display of following text for all users | |
|FILL://ctext// | |Repeat the specified //ctext// (may contain C-escape sequences), filling the current line (to terminal columns - 1) | | |FILL://ctext// | |Repeat the specified //ctext// (may contain C-escape sequences), filling the current line (to terminal columns - 1) | |
|WIDE://text// | |Display specified //text// double-wide, using Unicode "fullwidth" characters if possible | | |WIDE://text// | |Display specified //text// double-wide, using Unicode "fullwidth" characters if possible | |
|U+//code//,//char// | | Send a Unicode character code point, specifying fallback character value in hexadecimal (or ''0'' for //none//) | | |U+//code//,//char// | | Send a Unicode character code point, specifying fallback character value in hexadecimal (or ''0'' for //none//) | |
|U+//code//!//char// | | Send a Unicode character code point, specifying fallback character only to used when no automatic fallback is available | | |U+//code//!//char// | | Send a Unicode character code point, specifying fallback character only to used when no automatic fallback is available | |
| |!//x// | | Execute the terminal/attribute control sequences for one or more [[Ctrl-A Codes]] (operands) represented by //x//| |
==== C-Text ==== | ==== C-Text ==== |
| |
| |
^Code ^Description ^ | ^Code ^Description ^ |
|MENU:filename |Display a menu file from the ''[[dir:text]]/menu'' directory| | |MENU://filename// |Display a menu file from the ''[[dir:text]]/menu'' directory| |
|CONDMENU:filename|Display a menu file from the ''[[dir:text]]/menu'' directory, only if it exists (conditionally)| | |CONDMENU://filename//|Display a menu file from the ''[[dir:text]]/menu'' directory, only if it exists (conditionally)| |
|TYPE:filename |Display a specific filename (may include [[:config:cmdline#specifiers]]) | | |TYPE://filename// |Display a specific filename (may include [[:config:cmdline#specifiers]]) | |
|INCLUDE:filename |Display a specific filename (may include [[:config:cmdline#specifiers]]) without a trailing CR/LF pair | | |INCLUDE://filename// |Display a specific filename (may include [[:config:cmdline#specifiers]]) without a trailing CR/LF pair | |
|EXEC:module |Execute an in-process module (Baja or JavaScript) from the ''[[dir:exec]]'' directory| | |EXEC://module// |Execute an in-process module (Baja or JavaScript) from the ''[[dir:exec]]'' directory| |
|EXEC_XTRN:code |Execute an external online program (e.g. door) by specifying the internal code| | |EXEC_XTRN://code// |Execute an external online program (e.g. door) by specifying the internal code| |
|SETSTR:str |Sets the current Baja/PCMS command string to //str//| | |SETSTR://str// |Sets the current Baja/PCMS command string to //str//| |
|STR |Display the current Baja/PCMS command string value |\ | |STR |Display the current Baja/PCMS command string value |\ |
|STRVAR:name |Display the contents of a Baja/PCMS command shell string variable, specify //name// in ALL-CAPS unless ''baja -c'' was used((this feature only works for variables defined in command shells)) | | |STRVAR://name// |Display the contents of a Baja/PCMS command shell string variable, specify //name// in ALL-CAPS unless ''baja -c'' was used((this feature only works for variables defined in command shells)) | |
|JS:name |Display the value of a named JavaScript property | | |JS://name// |Display the value of a named JavaScript property | |
| |TEXT://number// |Display the specified string number from the ''[[dir:ctrl]]/[[custom:text.dat]]'' file.| |
===== See Also ===== | ===== See Also ===== |
* [[custom:menu_files|Menu Files]] | * [[custom:menu_files|Menu Files]] |