RULE THE BBS WORLD
Version 0.11.16 Alpha - Windows (32-bit)
Packaged: 10/24/2026
Written by maskreet
========================================================================

WELCOME TO RULE THE BBS WORLD!

Remember when BBSes ruled the online world and every sysop wanted
the most callers? Well, here's your chance to settle the score!

In Rule the BBS World, you'll compete against one to three computer-
controlled sysops to build the biggest BBS empire around. Buy BBSes,
network hubs, and service providers, build up their popularity, and
collect users from your unfortunate competitors.

Trade properties, battle it out at auctions, survive unexpected
events, and try to stay out of Cyber Jail. Just remember that your
users are also your currency. Run out of them, and you might find
yourself shutting down for good!

The last sysop still in business wins!

WHAT'S INCLUDED?

* A colorful, 40-space ANSI game board.
* Animated dice and player tokens.
* One to three computer-controlled opponents.
* Individual saved games for every caller.
* Configurable house rules to suit your BBS.
* Built-in help for players.
* Individual-game Top 10 scores: All, or against 1, 2 or 3 players.
* ANSI and plain-text score bulletins.

Each caller plays their own game against the computer sysops, so
this isn't a real-time multiplayer door. You can have several
callers playing their own games without interfering with each other.

And don't worry! The users you win and lose are strictly in-game
currency. No actual BBS user accounts are modified.

ABOUT THIS RELEASE

This is the native 32-bit Windows edition of Rule the BBS World.

The DOS and Linux editions are available separately.


========================================================================
1. BEFORE YOU BEGIN
========================================================================

Rule the BBS World runs directly as a 32-bit Windows application,
including on Windows systems that support 32-bit applications.
No DOS environment, NTVDM, or FOSSIL driver is required.

For remote callers, your BBS must pass a connected, inherited TCP
socket to the game. DOOR32.SYS supplies the handle and caller details.
An ordinary COM-port drop file does not supply that native socket.

Local play, CONFIG, and offline score export need no BBS connection.

DISPLAY REQUIREMENTS

For the full graphical experience, your terminal should support:

* ANSI display.
* IBM Code Page 437 (CP437) characters.
* At least 80 columns by 24 rows.

A plain-text display mode is also available if ANSI isn't suitable
for your setup.

PATHS AND FILENAMES

Use valid filenames and paths for your operating system. Native
filenames are not restricted to DOS 8.3 format. Quote paths that
contain spaces. Keep the supplied file names and letter case.



========================================================================
2. INSTALLING THE GAME
========================================================================

Installation is fairly straightforward. There's no complicated
installer, no database server, and no compiler to worry about.

Simply extract the package into a directory of your choice, making
sure to preserve the included subdirectories.

For example:

  C:\BBS\DOORS\BBSWORLD\

Your directory should look something like this:

  BBSWORLD
    BBSWORLD.EXE       The game itself, with help and artwork built in
    CONFIG.EXE         Sysop configuration utility
    UPGRADE.EXE        Database upgrade utility
    INSTALL.TXT        This installation guide
    FILE_ID.DIZ        BBS file-area description

FILES CREATED BY THE GAME

As people begin playing, the game creates a few additional files
in its installation directory:

  BBSWORLD.DAT       Game settings, property names and high scores
  USERS.DAT          Saved games for all callers
  BBSWORLD.BAK       Previous settings/score database, if present
  BWSCRnnn.OLD       Original database archived by UPGRADE, if present
  *.LCK              Database and caller locking files

Make sure your BBS or door process can read, create, and update
files in this directory.

UPGRADING AN EXISTING INSTALLATION

When upgrading from 0.11.12 alpha or earlier to 0.11.16 alpha,
you MUST run UPGRADE.EXE before starting the game or CONFIG.
A fresh installation does not need this step.
Version 0.11.13 already uses the current database format and needs
no conversion.

1. Close the door on ALL nodes and back up its directory.
2. Replace the programs with the matching files from this release.
   Keep your existing BBSWORLD.DAT and USERS.DAT; do not overwrite them.
3. From the game directory, run:

     UPGRADE.EXE

4. When the upgrade finishes, the door is ready to use again.

The upgrade preserves settings, property names and saved games.
It archives the original BBSWORLD.DAT as BWSCR001.OLD (or the next
unused number) before converting it. Keep that archive as a backup.

The four new score lists start empty. Previous versions kept
cumulative totals, which cannot be split into individual game
results or assigned an accurate opponent count. The old totals
remain in the archived database. New wins are recorded separately.
Running the upgrade again on a current database changes nothing.

MULTINODE SYSTEMS

If your BBS has multiple nodes, they should all use the same game
installation. This lets callers access their saved games and keeps
the high scores together.

Each node must have its own drop file, and the installation must
support file locking so the game can safely manage simultaneous
sessions. Keep the different platform editions in separate folders.

Before making backups or replacing game files, make sure the door
has been closed on ALL nodes.

For recovery purposes, keep your DAT files together with the
matching version of BBSWORLD.EXE.


========================================================================
3. FIRST-TIME CONFIGURATION
========================================================================

Now that the files are in place, it's time to set things up.

From the game directory, run:

  CONFIG.EXE

This opens the sysop configuration utility.

Here you can choose the game's rules, configure high score bulletin
output, and customize the experience for your callers.

Take a look through the available options and choose whatever
settings you prefer.

When you're finished, press Q to leave the configuration utility,
then answer Y when asked whether to save your changes.

COMPUTER PERSONALITIES

C - Computer concessions lets the last computer opponent give up
after several rounds of a severe disadvantage. Default: No.

E - Computer banter enables occasional sysop chat pop-ups. Default:
Yes. F - Computer banter cool down sets the minimum gap from 2 to 10
complete rounds, including you and each active computer. Default: 4.
The cooldown field is disabled while banter is off. Extra rolls do
not count as additional rounds. Press any key to dismiss a message.

These computer settings also apply to games already in progress.
In trade windows, use O for Owned and F to toggle AI trade offers.

HIGH SCORE BULLETINS

The game can automatically generate both ANSI and plain-text
versions of its Top 10 high scores.

By default, the files are named:

  TOP10.ANS          ANSI high score bulletin
  TOP10.ASC          Plain-text high score bulletin

These are written to the game directory unless you specify another
location in CONFIG.

If you choose a different output directory, make sure it already
exists and that the game has permission to write there.

A trailing backslash on the directory path is optional.

You can change the output filenames using names valid for your OS,
up to 255 characters including the extension. The complete path must
also fit your operating system's limits.

If you don't want one of the bulletin formats, simply leave its
filename blank in CONFIG.

CUSTOMIZING BOARD NAMES

Want to give the board a little local flavor?

Run CONFIG and choose B - Property names.

Names are grouped as utilities, networks, and BBSes. Use N/P to
change pages. Enter a selection number and press Enter to edit.

Use 1 to 24 printable ASCII characters per name. Press Enter to
accept an edit, or Esc to cancel it. Press Esc again to return
to the main configuration screen. Save your changes when quitting.

Names and their original defaults are stored in BBSWORLD.DAT.
Restore defaults also restores the original names in that DAT file.

When upgrading, leave BOARD.TXT in place for the first successful
run. Existing names are imported automatically; after conversion,
editing BOARD.TXT no longer changes the game.

Install the game and CONFIG together. Older versions cannot read
the updated BBSWORLD.DAT.

That's all there is to it!

TESTING YOUR INSTALLATION

Before adding the game to your BBS menu, it's a good idea to make
sure everything works locally.

From the game directory, enter:

  BBSWORLD /L

The game will ask for a user name and start in local mode.

Try moving around the board, using the menus, and saving your game
to make sure everything is working.

Once local play works, test the game from an actual remote BBS call
through your native BBS door connection.

A NOTE ABOUT CHANGING RULES

The current rules are copied into each new game when it starts.

Changing settings in CONFIG won't change the rules for games already
in progress. Those games continue using their original settings.

Restoring the default configuration also preserves saved games
and high scores.

Be careful with CONFIG's Reset Game option!

That option resets ALL saved games AND high scores after
confirmation. It isn't needed for a normal installation or update.


========================================================================
4. ADDING THE GAME TO YOUR BBS
========================================================================

Now for the important part: letting your callers play!

Run BBSWORLD.EXE directly from your BBS door definition. No batch
file or separate FOSSIL broker is needed for this native edition.

A typical command, with example paths and node number, is:

  C:\BBS\DOORS\BBSWORLD\BBSWORLD.EXE C:\BBS\TEMP1\door32.sys 1

Or use the named switches:

  BBSWORLD.EXE /DROP:C:\BBS\TEMP1\door32.sys /NODE:1

Configure your BBS for a native DOOR32 door so that its connected
socket is inherited by the child process. Creating DOOR32.SYS by
itself does not pass a socket. Run the game through the BBS when
testing remote mode; use /L for a standalone local test.

Replace the example node and drop-file path with the substitution
codes used by your BBS. Each caller needs the correct, fresh file.
Both path-first and node-first arguments are accepted. /NODE only
identifies the node; it does not select a socket or COM port.

With older drop formats, /SOCKET:<handle> explicitly supplies an
inherited socket. The BBS must supply the actual handle; a guessed
number will not work. The game never opens a Telnet listening port.

The BBS retains ownership of its connection when the game returns.
Do not launch a second reader/writer on that socket during a game.



========================================================================
5. SUPPORTED DROP FILES
========================================================================

Rule the BBS World supports several common BBS door drop-file
formats.

DOOR32.SYS
  Native 11-line format: communication type 2 is an inherited socket;
  type 0 is local unless /STDIO or /SOCKET explicitly selects remote.
  Serial type 1 is not supported by these native editions.

DOOR.SYS
  Supports the short 31-field core format, extended 52-field
  format, and padded versions.

DORINFO*.DEF
  Supports DORINFO1.DEF and other node-number or hexadecimal
  suffixes and extensions.

CHAIN.TXT
  Supports the WWIV 30-field core format and optional extensions.

Be sure to pass the FULL filename to the game, not just the
directory containing it.

Each node must create its own current drop file. The game won't
search a shared temporary directory to figure out which caller
is supposed to be playing.

The legacy formats provide caller details. For a remote native
session they also need /SOCKET, or /STDIO on Linux. They do not
provide a FOSSIL connection in these editions.


========================================================================
6. COMMAND-LINE OPTIONS
========================================================================

The game includes several command-line switches for local play,
remote operation, testing, and maintenance.

Switches are not case-sensitive.

In the examples below, anything shown inside angle brackets is
a value you supply yourself. Don't type the brackets.

BASIC CONNECTION OPTIONS

/DROP:<path>
  Specifies the full path to the caller's drop file.

  Example:
    /DROP:C:\BBS\TEMP1\DOOR.SYS

/NODE:<n>
  Specifies the BBS node number, from 1 through 65535.

  This overrides the node value found in the drop file.

  You can also pass the node and full drop-file path as ordinary
  arguments, without using the switches.

/L or /LOCAL
  Starts the game in local mode, without a drop file or remote connection.

  You'll be asked to enter a user name. That name identifies
  your local saved game.

/ANSI
  Forces ANSI display, even if the drop file says otherwise.

/ASCII
  Forces the plain-text interface.

  Don't use /ANSI and /ASCII together.

/TIME:<n>
  Optionally sets a shorter door visit limit, in whole minutes.

  By default, the game uses the caller's time remaining from the
  drop file. Omit this switch, or use /TIME:0, to follow the BBS
  allowance.

  This switch can shorten a visit but cannot extend the time left
  on the BBS. Local /L play has no session cap unless /TIME is set.

  This limits the current visit, NOT the number of turns in the
  overall game. Callers can save and continue on another visit.

SCORES or /SCORES
  Exports the enabled ANSI and plain-text high score bulletins.

  This works offline, without a caller, drop file, or remote connection.

  Don't combine it with /L, /DROP, /DIAG, /CHECK, /SOCKET, or /STDIO.

/SOCKET:<handle>
  Supplies the inherited socket for a legacy drop file, or overrides
  the handle in DOOR32.SYS. Use the real handle passed by your BBS.
  The connection must already exist. This is not a TCP port number.

DIAGNOSTIC AND TESTING OPTIONS

/CHECK
  Reads and reports information from a supplied drop file without
  connecting to a caller or opening a saved game.

  You must supply a drop-file path.

/DIAG
  Runs native connection tests instead of starting the game.

  Includes Echo, Block, and Status tests.

  Use this during a test call if you're having communications
  problems.

/SEED:<n>
  Uses a fixed random seed when starting a new game.

  Valid values are 1 through 2147483646.

  This is intended for testing. Existing saved games keep their
  original seed.

  Leave this option out during normal play.

/HELP or /?
  Displays the command-line help screen.

  Running the game with no arguments also displays usage help.

EXAMPLE COMMANDS

Start a local game:

  BBSWORLD /L

Start a local game in plain-text mode:

  BBSWORLD /L /ASCII

Launch a remote caller on node 1, with a 45-minute visit limit:

  BBSWORLD /DROP:C:\BBS\TEMP1\door32.sys /NODE:1 /TIME:45

Check a DORINFO drop file without launching the game:

  BBSWORLD /DROP:C:\BBS\TEMP1\DORINFO1.DEF /CHECK

Manually regenerate the score bulletins:

  BBSWORLD SCORES

Check current settings in plain text:

  CONFIG /SHOW

A FEW NOTES ABOUT SCORE EXPORTS

Whenever someone wins a game, the enabled high score bulletins
are automatically regenerated. Both files show Top 10 All; the
three opponent-specific lists are available inside the game only.

You can also run BBSWORLD SCORES manually, as part of a BBS
maintenance event, or after the door exits.

The output directory and filenames are controlled by CONFIG.

The SCORES command doesn't accept an output filename directly.


========================================================================
7. TROUBLESHOOTING
========================================================================

Having trouble getting the game running?

Native doors need the correct connection from the BBS as well as
a current drop file. These checks should help narrow things down.

Here are some common problems and what to check.


PROBLEM: BBSWORLD.EXE WON'T START

Make sure you extracted the Windows edition, not the DOS or Linux
executable. This is a native 32-bit Windows console application.
Launch it directly; do not put it through a DOS/FOSSIL launcher.
For a local test, run BBSWORLD.EXE /L from a console window.


PROBLEM: INVALID OR UNAVAILABLE INHERITED CONNECTION
Exit Code: 2

Confirm the BBS launches a native door and passes a connected socket
or, on Linux with /STDIO, redirects standard input/output. Check that
DOOR32.SYS contains the correct handle for this child process.
Merely writing a handle into a drop file cannot create a connection.
Use /CHECK to inspect metadata; it deliberately does not test I/O.

The Windows edition uses socket mode; /STDIO is Linux-only.
Serial DOOR32 mode is not supported. No FOSSIL is used by these ports.


PROBLEM: INVALID DROP FILE OR WRONG CALLER/NODE
Exit Code: 1

If the game reports an invalid drop file or identifies the
wrong caller or node, check your BBS door configuration.

Make sure you're passing the complete path and filename,
not just the directory.

Double-check the substitution codes used by your BBS for
the caller's drop file and node number.

Each node should create its own fresh drop file in one of the
supported formats.

You can use /CHECK to inspect the information the game reads
from the drop file without starting a remote session.


PROBLEM: GAME APPEARS LOCALLY, BUT CALLER SEES NOTHING

If the game runs on the local console but nothing appears at
the caller's terminal, the remote connection probably isn't
being passed to the game correctly.

First, make sure /L or /LOCAL hasn't accidentally been included
in your remote launch command.

Also confirm that your BBS isn't generating a drop file that
specifies local mode.

Next, check the inherited socket or the BBS's redirected I/O setup.

Try running /DIAG during a test call to check communications. A
DOOR32 file with type 0 selects local mode unless you explicitly
choose /STDIO (Linux) or /SOCKET. Do not include /L for remote play.


PROBLEM: BOARD CHARACTERS OR COLORS LOOK WRONG

If the board looks scrambled, has strange characters, or isn't
displaying the way it should, check your terminal settings.

The full board is designed for ANSI with IBM CP437 characters
and a display of at least 80 columns by 24 rows.

Make sure your terminal is using a compatible character set
and font.

If the drop file incorrectly reports the caller's ANSI support,
try forcing ANSI mode with /ANSI.

For a plain-text display, use /ASCII.

You can also refresh the screen during play by pressing L
or Ctrl-L.


PROBLEM: GAME WON'T SAVE OR DATABASE IS BUSY
Exit Code: 8 (session/locking errors)

First, check that the installation directory has enough free
disk space and that your BBS can create and update files there.

For multinode systems, make sure the installation directory supports
file locking and that the BBS process has read/write permissions.

The same caller cannot play two sessions at the same time.

Also make sure caller names are consistent and unique. If your
BBS uses distinguishing tags for network callers, those tags
need to be passed along as usual.

ABOUT THOSE .LCK FILES

You may notice .LCK files left in the game directory.

That's normal!

The game uses open file handles to enforce its locks, not
simply the existence of the .LCK files themselves.

Don't start deleting files just because you see them there.

And NEVER delete the DAT files to try clearing a lock. Those
files contain your saved games, settings, and high scores!


PROBLEM: HIGH SCORE BULLETINS AREN'T BEING CREATED

Open CONFIG and check the bulletin output settings.

Make sure:

* The output directory actually exists.
* The directory is writable.
* The desired bulletin formats are enabled.
* The filenames and full paths are valid for this operating system.
* ANSI and plain-text bulletins have different filenames.

Leaving a filename blank disables that bulletin format.

The game also protects unrelated files from being overwritten.
If a filename is already used by another file, choose a
different name rather than replacing existing BBS artwork.

After correcting the settings, run:

  BBSWORLD SCORES

This manually regenerates the enabled bulletins.

Don't worry if an export fails. Any recorded win remains in
the high score database.

Also remember that only winning games appear in the scores!


PROBLEM: CALLER IS DISCONNECTED BEFORE FINISHING

The game has several safeguards for lost connections, expired
time limits, and stalled communications.

The following exit codes can help identify the problem:

  3   Carrier lost
  4   Session time expired
  5   Five-minute idle timeout
  6   Output stalled

Check your BBS time limits, remote connection, and door host
if calls are ending unexpectedly.

Native remote sessions return when the caller disconnects, quits,
or reaches a time limit. Local console keys do not read from or
interrupt the remote connection.

The good news is that completed game actions are saved.

If a caller loses the connection, they can return later
and continue their saved game.

One exception: if a brand-new game hasn't had any actions
completed, quitting normally discards that untouched game.

This is intentional.


========================================================================
8. BACKUPS AND UPDATES
========================================================================

Before updating or replacing your game installation, make sure
no callers are currently playing on any node.

Back up your game data, especially:

  BBSWORLD.DAT
  USERS.DAT

Keep your backup data together with the matching version of
BBSWORLD.EXE so you have a consistent set for recovery.

The game also creates BBSWORLD.BAK when a previous settings/score
database is available.

Always check the instructions for the particular release before
updating, since future versions may introduce changes to the
game's files or configuration.

And remember: resetting games and scores through CONFIG is NOT
part of a normal update!


========================================================================
9. DOWNLOADS AND CONTACT
========================================================================

DOWNLOAD LOCATION

  flisterz.throwbackbbs.com

AUTHOR / SYSOP

  maskreet / sysop@throwbackbbs.com

REPORTING PROBLEMS

If you run into a problem that you can't resolve, a little
information about your setup will make troubleshooting much easier.

When reporting an issue, please include:

* The game version and edition you're running.
* Your BBS software and version.
* Your operating system and architecture.
* Whether the BBS uses an inherited socket or redirected I/O.
* The command used to launch the game.
* The type of drop file being passed.
* A description of what went wrong.
* The steps needed to reproduce the problem.

Please remove passwords, private caller information, or other
sensitive details before sharing logs or drop-file contents.


========================================================================
10. FINAL WORDS
========================================================================

That's about all there is to it!

Once the game is installed, configured, and working from a remote
call, you're ready to let your users loose on the BBS world.

Whether your callers become ruthless property tycoons or end up
mortgaging everything they own just to stay online, hopefully
they'll have a good time doing it.

Thanks for giving Rule the BBS World a place on your board!

See you online,

maskreet

========================================================================
              RULE THE BBS WORLD - KEEP THOSE MODEMS BUSY!
========================================================================