Synchronet BBS - Multinode Bulletin Board Software

Back to Table of Contents

[12.0] - External Program Configuration

Selecting the External Programs option from the SCFG will bring you to the
following sub-menu, an explanation of the options shown here follow.



[12.1] - Fixed Events



Logon Event:
        This is the command line for a program that will execute during the
        logon sequence of every user. The program cannot have user interaction.
        The program will be executed after the LOGON message is displayed and
        before the logon user list is displayed. If you wish to place a program
        in the logon sequence of users that includes interaction or requires
        account information, you probably want to use an online external
	program configured to run as a logon event.

Logoff Event:
        This is the command line for a program that will execute during the
        logoff sequence of every user. This program cannot have user
        interaction because it is executed after carrier is dropped. If you
        wish to have a program execute before carrier is dropped, you probably
        want to use an online external program configured to run as a logoff
	event.

Daily Event:
        This is the command line for a program that will run after the first
        user that logs on after midnight, logs off (regardless of what node).

[12.2] - Timed Events

Selecting Timed Events from the External Programs menu will give you a list of
currently configured timed events.  Following is an example of a timed event
called MAIN, and the options available for timed events.
Internal Code:
	This is an internal code for SBBS to distinguish this event from
        the others on the system. This must be a unique name of up to 8 valid
        DOS filename characters.

Start-up Directory:
	This is the directory where the event execution should take place.
	Synchronet will change to this directory before executing the command
	line for this event.

Command Line:
	This is the command line for a program that will run on the specified
	times and days.

Execution Node:
	This is the node that will execute the event.

Execution Days:
	These are the day(s) when this timed event will be executed.

Execution Time:
        This is the time (in 24hr format) for the above mentioned program
        to execute.

Requires Exclusive Execution:
	You may set this event to run exclusively (all other nodes inactive
	or taken offline) by selecting this option.

Force Users Off-line For Event:
	Setting this to Yes will cause the BBS to force users offline for this
	event.

[12.3] - Global Swap List (v2 for DOS Only)



This is a list of programs which, when run, will cause Synchronet to swap out
of memory.  This is useful for large executables, or programs which have the
possibility of Utilitizing a large amount of memory.  Shown is an example of
what might be in your swap list. Notice that it is not necessary to specify
an extension for the programs unless an extension is specified on the command
line to be executed. If a file extension is specified (EXE, COM, or BAT)
the extension must be specified on the command line for the program to be found
in the swap list.

[12.4] - Native (32-bit) Program List



When running a node with Synchronet for OS/2 or Win32, all external programs
(doors, editors, file viewers, etc) will be assumed DOS programs and executed
inside a virtual DOS machine (VDM) automatically unless the program's name is
included in this list. Only CMD.EXE (OS/2 command interpreter) should be
included with an extension (e.g. .EXE) unless you actually configure your
external program command lines in SCFG with extensions (note ZIP and UNZIP do
not have specified extensions). All native Win32 and OS/2 programs that you 
wish to execute from the BBS must be added to this list.

[12.5] - External Editors

This selection will bring up a list of external editors that are available as
alternatives to the Synchronet built-in editor. Editors can be added and
deleted with the INS and DEL keys. Selecting an editor allows you to view and
edit its settings. The available settings are (example given is for SyncEdit):
Internal Code:
	This is an internal code for SBBS to distinguish this editor from
        the others on the system. This must be a unique name of up to 8 valid
        DOS filename characters.

Local Command Line:
        This is the command line to use when the user is online locally.

Remote Command Line:
        This is the command line to use when the user is online remotely.

Access Requirements:
	These are the requirements that a user must meet to be able to use
	this external editor.

Intercept I/O Interrupts:
	If the editor relies on Synchronet for intercepting I/O interrupts,
	this option should be set to Yes.  When set to Yes, you will be able
	to specify whether or not the editor uses WWIV color codes.

Quoted Text:
	If you want all the message text to be automatically entered into the
	message edit/quote file (INPUT.MSG or MSGTMP), set this option to
	'All'.

	If you want the user to be prompted for which lines to quote before
	running the editor, set this option to 'Prompt User'.

	If you want none of the lines to be automatically quoted, set this
	option to 'None'. This option is mainly for use with editors that
	support the QUOTES.TXT drop file (like SyncEdit v2.x).

QuickBBS Style (MSGTMP):
	If this editor was designed to run on QuickBBS, Remote Access, or
	SuperBBS (uses a MSGTMP file for editing), set this option to Yes.
	This option will also create a MSGINF file automatically as well.

Expand Line Feeds to CRLF:
	If this editor stores new lines as a single line feed character, set
	this option to Yes.

BBS Drop File Type:
	If this editor requires a BBS drop file (DOOR.SYS, DORINFO#.DEF, etc)
	use this option to select the drop file format.

[12.6] - Online Programs

This selection will generate a list of configured external program sections.
You can add and remove external program sections from this list with the INS
and DEL keys. To edit an external program section or the external programs
within that section, select it with the arrow keys and hit ENTER.

For each external program section, you can set the Name, Internal Code,
and Access Requirements. Selecting "Available External Programs" will give
a list of external programs contained in this external program section.
Synchronet has been designed to eliminate the need for batch files and
drop file conversion programs to run external programs (doors) on your BBS.
Synchronet supports many different drop file types (often referred to as
drop files) listed below.

[12.7] - Supported Dropfile Types:

Software		Write File(s)			Read File(s)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DOOR32 (v3+ Only)       DOOR32.SYS 
GAP			DOOR.SYS			DOOR.SYS
WWIV			CHAIN.TXT
PCBoard 14.x		PCBOARD.SYS and USERS.SYS	USERS.SYS
RBBS/QuickBBS		DORINFO#.DEF and EXITINFO.BBS	EXITINFO.BBS
Wildcat! 2.x		CALLINFO.BBS
SpitFire		SFDOORS.DAT
TriBBS			TRIBBS.SYS
MegaMail		UTIDOOR.TXT
Solar Realms		DOORFILE.SR
Synchronet		XTRN.DAT			MODUSER.DAT

[12.8] - Call-back Verifiers

Call-back verification and user upgrade programs for other BBS packages may be
used, as long as the program supports the DOOR.SYS, EXITINFO.BBS, USERS.SYS,
or MODUSER.DAT file format. In general, Call-back verifiers written for
PCBoard, GAP, QuickBBS, or Synchronet will work. To allow a program to modify
the user data, you must set the option "Modify User Data" to "Yes". The
following user data items may be updated with the following formats:

DOOR.SYS:	Security level, Flag Set #1, Expiration Date, Minutes,
		Total Files/Bytes Downloaded, and Credits
EXITINFO.BBS:	Security level and Flag Set #1
USERS.SYS:	Security level and Expiration Date
MODUSER.DAT:	Security level, Flag Set #1-#4, Exemptions, Restrictions,
		Expiration Date, Credits, and Minutes

[12.9] - Installing a New External Program

Install your new external program into a sub-directory off your XTRN directory.

Example: C:\SBBS\XTRN\TRADEWAR

If your program asks you to provide the directory where the BBS software is
installed or where the drop file will be located, enter the directory where
you have installed the program (C:\SBBS\XTRN\TRADEWAR). Note: this is usually
only required for programs that do NOT support multiple nodes.

The full path and file name of the drop file can be specified on the command
line by using the %f command line specifier in SCFG.

[12.10] - Configuring a New External Program

Run SCFG from any NODE directory (or hit 'C' at the Waiting For Call screen).
Select "External Programs" and hit enter. Hit END and ENTER for the External
Program Sections menu and select an External Program Section to add this
new program to. Select "Available External Programs" and hit the Insert key.
Enter a description for your new external program.

Now your new external program appears in the list. Hit ENTER to edit the
configuration for this program. Synchronet BBS List is given as an example.


Name:
	This is the name of the external program that will be shown to users.

Start-up Directory:
	The start-up directory will be the current directory when the program
	is started. Move the lightbar down to "Start-up Directory" and hit
	ENTER. Enter the path to the directory where you've installed the
	program.

Command Line:
	This is the command required to execute your external program. If the
	path and filename for the BBS drop file is required on the command
	line, use %f to represent the path and filename. See Appendix A for
	a full list of available command line specifiers.

	You can launch a Baja module in place of a DOS executable by prepending
	an asterisk (*) to the name of the Baja module (e.g. "*MYMOD"). The
	module .BIN file must be located in your EXEC directory.

	Some programs, when set to SWAP, require ".\" to be prepended to the
	command line (e.g. ".\MYDOOR") to function properly.

Clean-up Command Line:
	If your external program requires a clean-up command line (usually only
	multi-user programs), select "Clean-up Command Line" and enter the
	required command line for your program. Note: Most programs do NOT
	require this option.

Cost in Credits:
	If you wish your users to be charged credits when running this program,
	you should enter the amount to charge the users here. Users with the
	'X' exemption will not be charged.

Extra Minutes:
	This option will allow you to give extra time to users for use in the
	external program they are entering.  For example, with this option set
	to 10, a user having 15 minutes left on the BBS will end up having
	25 minutes in the external program they enter.	This is especially
	useful in conjunction with the 'Suspended (Free) Time' option.

Suspended (Free) Time:
	Setting this option to "Yes" will cause a user's time left online to
	suspend (not countdown) when they enter the external program.  The
	user's time allowed in the external program, however, will be what they
	had left on the BBS.  To give them more time in the external program,
	use the above 'Extra Minutes' option.

Access Requirements:
	If you wish to limit which users have access to (can see) this program,
	use this option to set those requirements.

Execution Requirements:
	If you wish to have some users see but not be able to execute this
	program, use this option to determine what requirements must be met to
	run the program.

Multi-user:
	If this program supports multiple simultaneous users, set this option
	to "Yes".

Intercept I/O Interrupts:
	If this program does NOT have it's own modem communications I/O and
	does NOT use a FOSSIL driver, select "Intercept I/O Interrupts" and set
	it to "Yes". Note: Most programs require this option be set to "No".
	Programs written specifically for WWIV or Synchronet BBS software,
	should usually have this option set to "Yes". Consult the documentation
	for the program if you are unsure. If you do set this option to "Yes",
	and the program was not written specifically for Synchronet, you'll
	need to place the following string at the BEGINNING of your command
	line: "%!dcdwatch %&". You will also be able to select whether or not
	the program uses WWIV color codes when setting this option to Yes.

	Without the use of DCDWATCH, the program will not exit if a user drops
	carrier (hangs up) while using the program (unless specifically written
	for Synchronet). Some programs time-out eventually, and exit back to
	the BBS, but not all.

Swap BBS out of Memory:
	If this program requires a large amount of free memory, set this
	option to 'Yes' and Synchronet will swap to XMS, EMS, Extended
	Memory or Disk (see "Node Toggle Options" for Swap Type selection) to
	make room for this program to execute. Setting this option to 'Yes'
	has this same effect as adding this program to the "Global Swap List",
	but is available as a toggle on this menu for your convenience.

Modify User Data:
	If this program can modify the current user's data through one of the
	supported drop file types (see Call-back Verifiers above), set this
	option to Yes.

Execute on Event:
	If you want this program to run automatically during user logon,
	logoff, new user application, or a user's birthday, use this option.

BBS Drop File Type:
	If your program requires a BBS drop file (most do), use this option to
	select the type of drop file to create.

Place Drop File In:
	This is the directory where the drop file will be created. In general,
	for multi-user programs or programs that can have the path and filename
	of the drop file included on the command line or in a config file,
	select "Node Directory". For single user programs that require the drop
	file to be in the current directory, select "Start-up Directory".

Time Options...:
	Selecting this option will bring you to a sub-menu similar to the
	following:
	Extra Time:
		This option allows you to give users an extra amount of time
		(in minutes) which can be used only within this online program.

	Maximum Time:
		This option allows you to set the maximum amount of time a user
		should be able to spend in this online program (in minutes) PER
		execution (not per day or per call).

	Suspended (Free) Time:
		When this option is set to 'Yes', a users' time is suspended
		while they are within the online program.  That is, if they
		enter the door with 60 minutes remaining on the BBS, when
		they get back to the BBS they will still have 60 minutes of
		time remaining.

[12.11] - Examples for some popular programs

It is advised to install all your doors off the SBBS\XTRN directory
(e.g. C:\SBBS\XTRN\BRE) if it's not too late.  This will help keep all
your doors in an easy to reference point.  Also, this is where the
pre-configured doors (SBL,SMM) are installed by default.
When configuring your Doors it is best whenever possible to place the
dropfiles in your SBBS\NODE# directories and configure the game to
look there for the file.  This ensures smooth Multinode usage if your
door supports multiple users at the same time.

[12.11.1] - Legend of the Red Dragon (LORD)

From the LORDCFG program your configuration should look something like this:
You will need to do this for each of your nodes.  Be sure to set the 'Path
To Drop File' to the node directory of the node you are configuring.  The
reason we set the 'Locked Port Speed' to 'Port Not Locked' is because you
should be locking the speed of your FOSSIL when you load it, once that's done,
it can't be altered.
*** Be Sure to edit START.BAT and check for proper paths and filenames!
Now go into your SCFG program and create a new external program.  It should
look like this when it's all setup:

[12.11.2] - Usurper

You MUST use a fossil driver in order to use this program. Follow the Usurper
documentation for getting the game going.  
Next, bring up the USURPER.CFG into a text editor and edit the first few lines
(or you can do it through the EDITOR program that comes with Usurper). It 
should end up looking something like this:
Sysop Name Goes Here
BBS Name Goes Here
C:\SBBS\XTRN\USURPER\
DORINFO1.DEF
The important things are line 3 and line 4.  Line 3 MUST be the path to your
Usurper directory (with a trailing backslash) and line 4 must be the type
of drop file (I used DORINFO1.DEF like the Usurper documentation recommends).

    Now you'll need to go into your SCFG program and add an external program.
Set it up to look something like this:

[12.11.3] - Trade Wars 2002

From the TEDIT program your configuration should look something like this:
You will need to do this for each of your nodes.  Be sure to set the 'Path
To Drop File' to the node directory of the node you are configuring.

Now go into your SCFG program and create a new external program.  It should
look like this when it's all setup:

[12.11.4] - Barren Realms Elite (BRE)

Install and Configure BRE per the instructions in the BRE documentation.
Now go into your SCFG program and create a new external program.  It should
look like this when it's all setup:


BRE and the other SR / John Daily games are easy with Synchronet since
it supports SR Games native DOORFILE.SR . Just place the DOORFILE.SR
in BRE's directory and all is well.
** Note: BRE is not Multiplayer and can only be used on one node at a time.
         However, we can leave Allow Multiple Users ON in SCFG as BRE will
         inform the player the game is in use by itself.

[12.12] - Internet Gateways

This allows users on your system to be connected to other TCP/Telnet services
on the Internet through your BBS. Typically, these services would be other
telnetable BBSs and MUDs, although really, you can gate to any single-port
TCP service (i.e. POP3, but not FTP).
TELNET_GATE <"str" || str_var> [mode]
The str or str_var argument is the destination address in the format:
	<addr>[:port]
If port is not specified, the default is 23 (telnet), or 513 (when the 
TG_RLOGIN mode is used).
Examples:
	"vert.synchro.net"
	"24.0.193.46"
	"retromud.org:3000"
The valid mode bits (multiple may be |'d together) are:
	TG_ECHO         Turn on telnet echo
	TG_CRLF         Expand sole CR to CRLF
	TG_LINEMODE     Send entire lines only
	TG_NODESYNC     Call Nodesync, get msgs, etc.
	TG_CTRLKEYS     Interpret ^P ^U ^T, etc locally
	TG_PASSTHRU     Pass-through telnet commands/responses
	TG_RLOGIN       Use BSD RLogin protocol

This function can be called from any module or shell, but will most likely be
used from the external programs menu (even though the telnet gate isn't
technically an external program). The following modules are included (in your
EXEC directory): TELGATE.BIN, MUDGATE.BIN, UNIXGATE.BIN, and RLOGIN.BIN.
Use them as follows:
	To set-up an external gateway to another BBS:
	Command line: "*telgate vert.synchro.net"
	To set-up an external gateway to a MUD:
	Command line: "*mudgate batmud.bat.org"
	To set-up an external gateway to a Trade Wars Game Server (TWGS):
	Command line: "*rlogin twgs.someserver.com"
While using the telnet gateway (and not currently in telnet "Binary" mode),
users can press ctrl-] for a menu of telnet gate commands including: Disconnect,
Toggle Echo, List Users, and Private Message.

[12.13] - Troubleshooting External Programs

   This section will explain common reasons why an external program may not be
functioning properly and what can be done to get the program functioning
properly.  It is impossible for Digital Dynamics to be familiar with every
available external program, therefore if you continue to have problems with
a program after reading this section, you should contact the company that wrote
the external program you are working with.

IMPORTANT NOTE: Some games will not work properly if you do not put a PATH on
		the command line (see the L.O.R.D. example), others will (see
		the Usurper example).  If your game is not working at all,
		try using a path on the command line (e.g.: .\GAMENAME).

PROBLEM : The external program works, but displays the wrong user name.
SOLUTION: Check to see that the program is looking in the proper place for the
	  drop file.  Usually you will need to specify the path to look for the
	  drop file on the command line or in the program's setup program or
	  config file(s).

PROBLEM : The program works fine locally, but when people call in they cannot
	  see anything.
SOLUTION: If the game uses a FOSSIL driver, make sure that you have a FOSSIL
	  driver loaded and make sure that you've locked the baud rate at the
	  same rate that you've locked Synchronet's com ports.
	  If the game uses it's own internal com routines (no FOSSIL required),
	  you should be able to pass it IRQ and I/O Address information (either
	  through configuration files, or on the command line) otherwise the
	  game probably will not work on anything other than the standard COM1
	  and COM2.
NOTE	: Normally only games written for Synchronet or WWIV will ever require
	  the 'Intercept I/O Interrupts' option to be set to YES.  If a game
	  has it's own internal com routines or uses a FOSSIL set this option
	  to NO.

PROBLEM : The program works fine locally, but when people call in they only see
	  garbled information.
SOLUTION: If the game is using a FOSSIL driver, make sure the locked rate of
	  the FOSSIL is the same as the locked rate in Synchronet.
	  If you are running Synchronet under OS/2 and you have "Intercept I/O"
	  set to "Yes" for this program, make sure you are using the SVDMANSI
	  program for ANSI under OS/2.

PROBLEM : The program works fine when only one user is playing, but when a
	  second user tries to enter it doesn't function properly.
SOLUTION: The program is probably not intended for multiple simultaneous users.
	  Be sure to set the 'Multiple Concurrent Users' option to NO if this
	  is the case.

Back to Top


Copyright © 2000 by Rob Swindell

Synchronet BBS Software
(Synchronet) Version 3 is comprised of several documentation,
library, executable, and source code files, all of which are covered by the
GNU General Public License
with the exception of the following portions covered by
the GNU Lesser General Public License: SMBLIB and XSDK.

Synchronet Version 2 (for DOS and OS/2) and its source code was released to the
Public Domain
by Digital Dynamics in 1997 and remains Public Domain software today.
Synchronet Version 3 is not Public Domain software.

Rob Swindell
PO Box 501
Yorba Linda, CA 92885
http://www.synchro.net

For the complete Copyright Information please read the Copyright Documentation .