Synchronet v3.16c-Win32 (install) has been released (Aug-2015).

You can donate to the Synchronet project using PayPal.


Synchronet sysop-posted messages, text and menu files, and some lines in the ctrl/text.dat file may contain special variables called @-codes (“at codes”, some BBS authors and sysops refer to these types of codes as “MCI codes”1)). @-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 of the @-codes supported in Synchronet have unusual names or aliases specifically for PCBoard and/or Wildcat! BBS Software compatibility.

Synchronet also, optionally, supports some Color Codes which begin and/or end with the @ character (again, specifically for PCBoard and/or Wildcat! BBS Software compatibility). These PCBoard and Wildcat! color codes are not usually referred to as @-codes and do not fall under the usage/formatting guidelines given on this page.


@-codes contained in the text of messages sent as email or posted on sub-boards will not be expanded to the equivalent text unless the message was sent or posted locally by user #1 (the sysop).

If using smbutil to import a message with embedded @-codes, use the -e1 option to specify that the message is being sent from the local sysop (user #1) to enable expansion of the @-codes when the message is viewed by users.


By default, @-codes are expanded to just the number of characters necessary to display the dynamic text.

Most @-codes may optionally have -R<width> or -L<width> appended to the code (where <width> is a positive decimal number, before the trailing @ character), to specify that the string should be displayed with a fixed width either right (-R) or left (-L) justified.

Example: @NODE-L2@ for a left-justified 2 character node number.

Another method of specifying the forced width of an expanded @-code is to include non-numeric non-space characters between the -R or -L and the trailing @ character.

Example: @ALIAS-R###########@ for a right-justified 20 character user alias (any non-numeric non-space characters could have been used in place of the # characters).

Most @-codes values may be center-justified by including a -C<width> suffix before the trailing @ character. Note: this feature was added in v3.17.

System Information

The currently supported System Information @-codes are:

Code Aliases Description
COMPILER Compiler used to build Synchronet
CONF Name of current Group and Sub-board
CONFNUM Number of current Group and Sub-board (separated by a space)
CONN Connection description (modem type, “Telnet”, “RLogin”, etc.)
COPYRIGHT Synchronet copyright details
DATE SYSDATE Current system date (in “DD/MM/YY” or “MM/DD/YY” format)
DATETIME Current system date and time (in 24-char long format)
DIR Current file directory short description
DIRL Current file directory long description
DN Number of current file directory
DL DN-L ” ” padded and left justified (4 chars wide)
DR DN-R ” ” padded and right justified (4 chars wide)
EVENT Date and time of next scheduled timed event
FIDOADDR System's primary FidoNet address
FREESPACE Free disk space available for uploads (in bytes)
FREESPACEK Free disk space available for uploads (in kilobytes)
FULL_VER Synchronet full version number (e.g. “3.15a”)
GRP Current message group short description
GRPL Current message group long description
GN Number of current message group
GL GN-L ” ” padded and left justified (4 chars wide)
GR GN-R ” ” padded and right justified (4 chars wide)
HOSTNAME Server's hostname
INETADDR System's Internet Address (as configured in SCFG)
JS_VER JavaScript Library Version
LASTCALLERNODE PREVON, LASTCALLERSYSTEM Name of user last user to use the terminal server
LIB Current file library short description
LIBL Current file library long description
LN Number of current file library
LL LN-L ” ” padded and left justified (4 chars wide)
LR LN-R ” ” padded and right justified (4 chars wide)
LOCAL-IP System's IP address
LOCATION System location (e.g. “city, state”)
MSGREPLY Command key to reply to last message ('A' or 'R')
MSGREREAD Command key used to re-read last message ('R' or 'A')
MSG_LIB Synchronet Message Base Library version information
NOACCESS Why user was denied access (last failed ARS check)
NODE Number of current node
NODE### Status of node number ###
NUMDIR Number of current library and directory
OS_VER Operating system type and version information
PLATFORM Platform or operating system name (e.g. “win32”, “linux”)
QUESTION Current Yes/No question being asked of the user
REV Synchronet revision (single letter)
SERVED Total clients served by the Terminal Server during this uptime
SOCKET_LIB Socket Library type and version information
SMB_AREA Current message group and sub-board (short names) or Email for mail base
SMB_AREA_DESC Current message group and sub-board (long names) or Personal Email for mail base
SMB_GROUP Current message group name
SMB_GROUP_DESC Current message group description (long name)
SMB_GROUP_NUM Current message group number
SMB_SUB Current message sub-board name (or Mail for the mail base)
SMB_SUB_DESC Current message sub-board description (or Mail for the mail base)
SMB_SUB_CODE Current message sub-board internal code (or MAIL for the mail base)
SMB_SUB_NUM Current message sub-board number
SMB_MSGS Total number of messages visible to current user in the current message sub-board
SMB_CURMSG Currently viewed message (index) into current message sub-board
SMB_LAST_MSG Number of last message stored in current message sub-board
SMB_MAX_MSGS Maximum number of messages to store in current message sub-board
SMB_MAX_CRCS Number of history message body hashes to store for current message sub-board
SMB_MAX_AGE Maximum age (in days) of messages stored in current message sub-board
SMB_TOTAL_MSGS Total number of message stored in the current message sub-board
MSG_NUM Current message number
MSG_ID Current message ID
MSG_REPLY_ID Current Message Reply-ID
MSG_TO Current message to-user name/number/address
MSG_TO_NAME Current message to-user name
MSG_TO_EXT Current message to-user extension (number)
MSG_TO_NET Current message to-user network address
MSG_FROM Current message from-user name/number/address
MSG_FROM_NAME Current message from-user name
MSG_FROM_EXT Current message from-user extension (number)
MSG_FROM_NET Current message from-user network address
MSG_SUBJECT Current message subject
MSG_DATE Current message date/time written
MSG_AGE Current message age (e.g. in seconds, minutes, hours, etc.)
MSG_TIMEZONE Current message time zone
MSG_ATTR Current message attributes
MSG_AUXATTR Current message auxiliary attributes
MSG_NETATTR Current message network attributes
STATS.LOGONS NUMCALLS, TCALLSTotal logons during history of system
STATS.LTODAY Total logons today
STATS.TIMEON Total time used during history of system (in minutes)
STATS.TTODAY Total time used today (in minutes)
STATS.ULS Total uploads today
STATS.ULB Total bytes uploaded today
STATS.DLS Total download today
STATS.DLB Total bytes downloaded today
STATS.PTODAY Total posts today
STATS.ETODAY Total e-mails sent today
STATS.FTODAY Total feedbacks sent today
STATS.NUSERS Total number of new users today
SUB Current message sub-board short description
SN Number of current message sub-board
SL SN-L ” ” padded and left justified (4 chars wide)
SR SN-R ” ” padded and right justified (4 chars wide)
SYSOP Name of System Operator
TFILE Total number of files on system
TIME SYSTIME Current system time
TIMEZONE Current system time zone abbreviation or UTC offset
TMSG Total number of messages on system
TNODE Total number of Terminal Server nodes
TUSER Total number of currently active registered users
UPTIME Synchronet uptime details
VER BBS version number (e.g. “3.15”)
VER_NOTICE BBS version information (e.g. “Synchronet BBS for Win32 Version 3.15”)
WHO Display status of all active nodes

User Information

The currently supported User Information @-codes are:

Code Aliases Description
ADDR1 User's street address
AGE User's age (in years since birth date)
ALIAS NAME, USER User's alias
BAUD BPS User's connect rate (DCE) in bps
BDATE User's birth date (in “MM/DD/YY” or “DD/MM/YY” format)
BYTELIMIT User's free credits per day
BYTESLEFT User's total credits
CALLS NUMTIMESON Total number of logons for user
CITY User's city
COMPANY MEMO2 User's company name or real name
DAYBYTES Number of free credits used today by user
DLBYTES Total bytes downloaded by user
DLFILES DOWNS Total files downloaded by user
DLKLIMIT User's total credits (in kilobytes)
DOWNK Total kilobytes downloaded by user
EMAILADDR User's Internet e-mail address on your system
EXPDATE EXDATE User's expiration date (in “MM/DD/YY” or “DD/MM/YY” format)
EXPDAYS Days left before user expires
FIRST First word of user's alias
FIRSTREAL REAL First word of user's real name
FROM User's location (e.g. “City, State”)
HANDLE User's chat handle
HOST CPU Client's hostname
IP CID, MEMO1 Client's IP address or Caller-ID information
LAST Last word of user's alias
LASTDATEON Date of user's last logon (in “MM/DD/YY” or “DD/MM/YY” format)
LASTNEW Date of user's last new file scan (in “MM/DD/YY” or “DD/MM/YY” format)
LASTON Date and time of user's last logon
LASTTIMEON Time of user's last logon (in “HH:MM am” format)
LASTREAL Last word of user's real name
KBLEFT User's total credits (in kilobytes)
KBLIMIT DLKLIMIT, MAXDK User's free credits per day (in kilobytes)
MAILW Number of mail messages waiting for current user
MAILW:x Number of mail messages waiting for current user #x
MAILP Number of pending mail messages sent by current user
MAILP:x Number of pending mail messages sent by current user #x
MEMO Date of user's last password modification
MSGLEFT MSGSLEFT Total number of messages posted by user
MSGREAD Number of messages read by user this call
NEWFILETIME Date and time of user's last new file scan (see LASTNEW)
SEC SECURITY User's security level (0-99)
SINCE Date of user's first call (in “MM/DD/YY” or “DD/MM/YY” format)
STATE User's state (from location)
TIMELEFT MINLEFT User's time left in minutes
TIMELIMIT Maximum time per call in minutes
TIMEON TIMEUSED Time used this call in minutes
TLEFT Time left (in “H:MM:SS” format)
TPERC Time allowed per call (in “H:MM:SS” format)
TPERD Time allowed per day (in “H:MM:SS” format)
TUSED Time used this call (in “H:MM:SS” format)
UPBYTES Total bytes uploaded by user
UPFILES UPS Total files uploaded by user
UPK Total kilobytes uploaded by user
USERNUM User's number (1-based index into user database)
ZIP User's zip/postal code

Terminal Control

The currently supported Terminal Control @-codes:

Code Aliases Description
BEEP BELL Generate a beep sound on the user's terminal
CLS Clear screen
CRLF Send a carriage return/line-feed pair
PAUSE MORE Force a screen pause (hit a key) prompt
PON AUTOMOREToggle automatic screen pause on
POFF NOPAUSE Toggle automatic screen pause off
RESETPAUSE Reset the automatic screen pause line counter
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)
PUSHXY Save current cursor position
POPXY Restore saved cursor position
HANGUP Disconnect the user

External Content

The currently supported External Content @-codes:

Code Description
MENU:filename Display a menu file from the text/menu directory
TYPE:filename Display a specific filename (may include specifiers)
INCLUDE:filename Display a specific filename (may include specifiers) without a trailing CR/LF pair
EXEC:module Execute an in-process module (Baja or JavaScript) from the exec directory
EXEC_XTRN:code Execute an external online program (e.g. door) by specifying the internal code
SETSTR:str Sets the current Baja command string to str

See Also

1) and not because of the defunct phone company

In Other Languages
Translations of this page: