====== Doors in Synchronet ====== This page is about Synchronet on **Linux**. Running Synchronet on **Windows**? See [[windows|The Windows version]]: it has the SCFG settings for LORD FP as a Windows door, step by step. Synchronet calls doors "external programs". Each one gets a directory under ''/sbbs/xtrn'' and an entry in SCFG, under External Programs > Online Programs (Doors), inside a program section such as "Games". DOS doors need [[dosemu2]] first. ===== A DOS door, step by step ===== - Make a directory for the door under ''/sbbs/xtrn'', with a short name that is also a valid DOS name (8 characters or fewer, no spaces), for example ''/sbbs/xtrn/bre''. Unzip the door into it. - Make sure the user Synchronet runs as owns the files: ''chown -R /sbbs/xtrn/bre''. Doors write their data files as they run. - Run the door's setup program under ''de'' (see [[dosemu2#the_local_dos_prompt|the local DOS prompt]]). Wherever it asks for paths, give DOS paths: the game directory is ''E:\BRE\'', and the drop file is in ''D:\''. - If the door expects a batch file to start it (most do), check that it changes to the door's directory or doesn't need to. ''external.bat'' has already changed to the start-up directory before it runs the command line. - Run ''scfg'', go to External Programs > Online Programs (Doors), pick a section and add the door with the settings below. - Log in to the BBS and run the door. Test entering, a few keys, and quitting back to the BBS. - If the door has a daily maintenance program, add it as a timed event (SCFG > External Programs > Timed Events) or use the door's own "run maintenance at first login" option. ===== SCFG settings for a DOS door ===== ^ Setting ^ Value ^ | Name | What callers see. | | Internal Code | e.g. BRE (up to 8 characters, unique). | | Start-up Directory | ''../xtrn/bre''. Relative to ''/sbbs/ctrl'', so it starts with ''../xtrn/''. A wrong path here is the most common cause of a door that hangs at start. | | Command Line | e.g. ''bre.bat'' or ''start.bat %#'' (%# is the node number). | | Multiple Concurrent Users | Yes, if the door supports it. | | I/O Method | FOSSIL or UART (not Standard). | | Native Executable/Script | No ("DOS program, use dosemu2"). | | Use Shell or New Context | Yes. | | BBS Drop File Type | What the door reads (below). | | Place Drop File In | Node Directory (the door finds it on ''D:\''). | ===== Drop file types ===== The drop file tells the door who the caller is, their time left and their terminal. Pick the one the door's documentation asks for: ^ SCFG type ^ File ^ Used by ^ | GAP (extended) | ''DOOR.SYS'', 52 lines | TradeWars 2002, most 1990s doors. | | GAP (original) | ''DOOR.SYS'', 31 lines | LORD (either works). | | RBBS/QuickBBS | ''DORINFO1.DEF'' | Barren Realms Elite, Esterian Conquest. | | Mystic | ''DOOR32.SYS'' | Newer and native Linux doors. | | Others | ''CHAIN.TXT'', ''CALLINFO.BBS'', ''PCBOARD.SYS'', ''SFDOORS.DAT'', ''DOORFILE.SR'' | Doors written for those BBS packages. | ===== A native Linux door ===== A Linux program that talks to the caller on standard input and output needs no dosemu2. The differences in SCFG: ^ Setting ^ Value ^ | Command Line | The full path to the program and its options. | | Native Executable/Script | Yes. | | I/O Method | Standard (stdio); turn input echo off if the program echoes for itself. | | Use Shell or New Context | No. | ===== An rlogin door ===== To send players to another server (TWGS, [[lordsrv:linking_a_bbs|LORD Server]]), the command line is Synchronet's ''?rlogin'' script, with no drop file: ''?rlogin host:port -t xtrn=A -P''. ===== Working examples ===== The door entries on Kalgoorlie Retro BBS, in a section called "Games Hosted by Kalgoorlie Retro": ^ Door ^ Start-up directory ^ Command line ^ Drop file ^ | LORD 4.06 | ''../xtrn/lord4'' | ''start.bat %#'' | GAP (original) | | LORD FP (DOS) | ''../xtrn/lordf'' | ''start.bat %#'' | GAP (original) | | LORD FP (Linux) | ''../xtrn/lordfp'' | ''/sbbs/xtrn/lordfp/lord -d %n -r %r'' (native) | GAP (original) | | LORD - Windows Server | | ''?rlogin 10.0.0.8:5130 -t xtrn=A -P'' | none | | TradeWars 2002 | ''../xtrn/tw2002'' | ''tw.bat %#'' | GAP (extended) | | Barren Realms Elite | ''../xtrn/bre'' | ''bre.bat'' | DORINFO1.DEF | | Esterian Conquest | ''../xtrn/EC'' | ''ec.bat'' | DORINFO1.DEF | Their batch files: REM tw.bat - TradeWars 2002 @ECHO OFF SET RTM=EXTMAX 1024 TW2002 TWNODE=%1 SHARE VIDEO=SLOW > TWERR%1.LOG REM bre.bat - Barren Realms Elite @ECHO OFF E: CD \BRE SRDOOR BRE REM ec.bat - Esterian Conquest (game in a subdirectory) @ECHO OFF CD GAME01 ..\ECGAME D:\DORINFO1.DEF CD ..