Maximus BBS

Documentation for Maximus BBS — Next Generation

View on GitHub

MaxCFG Setup & Tools

Setup menu, display files, tools, and utility screens in MaxCFG

The Setup menu is where you configure the core personality of your BBS — its name, paths, login behavior, color scheme, network settings, and security levels. If you’re setting up Maximus for the first time, this is where you’ll spend most of your initial configuration time. If you’re an experienced sysop, this is where you come back to tweak things.

All settings here are stored in TOML configuration files under config/. Changes are held in memory as you work — nothing touches disk until you explicitly save via Tools → Save Configuration.


Global Submenu

The Global submenu covers the most fundamental settings: what your BBS is called, where its files live, how logging works, and what happens when someone logs in.

BBS and Sysop Information

This is the identity of your board — the name callers see and the sysop name that appears in system messages.

MaxCFG BBS Information Form

Field Type TOML Key
BBS Name Text maximus.system_name
Sysop Name Text maximus.sysop_name
Alias System Toggle maximus.alias_system
Ask for Alias Toggle maximus.ask_alias
Single Word Names Toggle maximus.single_word_names
Check ANSI Toggle maximus.check_ansi
Check RIP Toggle maximus.check_rip

If you enable the Alias System, callers can use a handle instead of their real name throughout the board. Single Word Names allows handles like “Phoenix” instead of requiring “Phoenix Jones.”

System Paths

These tell Maximus where to find its various file directories. All paths are normalized relative to your sys_path, so you can use relative paths like ansi/ instead of full absolute paths. The file picker (F2) is available on every path field for browsing.

Field Type TOML Key
Display Path Path maximus.display_path
Language Path Path maximus.lang_path
Temp Path Path maximus.temp_path
Node Path Path maximus.ipc_path
File Password Path maximus.file_password
File Access Path maximus.file_access
Log File Path maximus.log_file

Logging Options

Field Type TOML Key
Log File Path maximus.log_file
Log Mode Toggle (Terse/Verbose/Trace) maximus.log_mode

Terse logs logins, logoffs, and errors. Verbose adds individual commands and area changes. Trace is for debugging — it logs everything, including internal state transitions. Start with Verbose for a new board; switch to Terse once things are running smoothly.

Global Toggles

System-wide behavior switches:

Field Type TOML Key
Snoop Toggle maximus.snoop
Password Encryption Toggle maximus.encrypt_pw
Watchdog/Reboot Toggle maximus.reboot
Swap to Disk Toggle maximus.swap
Local Keyboard Timeout Toggle maximus.local_input_timeout
Status Line Toggle maximus.status_line

Password Encryption should be on for any production board — it hashes passwords before storage so they can’t be read from the database. Snoop enables local monitoring of remote sessions. Status Line shows a sysop info bar at the bottom of the local console.

Note: The maximus.swap toggle has no runtime effect — SWAP support was removed from the Maximus NG engine. It remains in the UI for legacy config compatibility.

Login Settings

These control what happens during the login process — who can log in, how long they can stay, and what the board checks for at connect time.

Field Type TOML Key
Logon Privilege Select general.session.logon_priv
Logon Time Limit Number general.session.logon_time_limit
Minimum Logon Baud Number general.session.min_baud
Minimum Graphics Baud Number general.session.min_nontty_baud
Minimum RIP Baud Number general.session.min_rip_baud
Input Timeout Number general.session.input_timeout
Check ANSI on Login Toggle general.session.check_ansi
Check RIP on Login Toggle general.session.check_rip

The Logon Privilege field uses a privilege picker — press Enter or F2 to open it, or Space to manually type a custom privilege string. The baud rate fields are mostly relevant for dial-up setups; telnet-only boards can leave them at their defaults.

New User Defaults

When someone calls your board for the first time, these settings control what they’re asked and where they land:

Field Type TOML Key
Ask for Phone Number Toggle general.session.ask_phone
Ask for Alias Toggle general.session.ask_alias
Alias System Toggle general.session.alias_system
Single Word Names Toggle general.session.single_word
No Real Name Required Toggle general.session.no_realname
First Menu Text general.session.first_menu
First File Area Text general.session.first_file_area
First Message Area Text general.session.first_msg_area

First Menu is the menu new users see after registration. The default is your MAIN menu, but some sysops point new users to a “welcome” or “newuser” menu first.

Display Files

Maximus shows display files at various points during a session — a logo when someone connects, a welcome screen after login, a goodbye screen when they log off, and so on. This form lists all ~40 display file mappings, one for each event.

MaxCFG Display Files Form

Each field supports:

Paths are resolved relative to sys_path. MEX scripts (.vm files) are resolved under scripts/ — so you can use a MEX script as a dynamic login screen, for example.

Default Colors

Opens a category picker with four groups of color settings. These control the default colors your callers see for menus, file listings, message displays, and the full-screen reader. For more on how Maximus handles colors, see Theme Colors.

MaxCFG Default Colors Picker

Category What you’re coloring
Menu Colors Menu name, highlight, option text (foreground only)
File Colors File name, size, date, description, offline indicator, new-file flag, area tag (foreground only)
Message Colors From, To, Subject, Date, Body, Quote, Kludge, Origin, Tearline, Seenby, Header, Area Tag, Highlight (foreground only, scrollable list)
Reader Colors Full-screen reader colors: Normal, High, Quote, Kludge, Status, Warning, MsgN, From, To (foreground + background)

Each color field opens a picker. For foreground-only fields you choose from 16 colors. For FG+BG fields you get the full 16×8 grid.


Matrix/Echomail Submenu

If you’re running a FidoNet-connected board (or any echomail/netmail network), this is where you configure the matrix — Maximus’s term for the networking layer that handles mail routing, privilege controls, and network addressing.

If you’re running a standalone board with no network connections, you can skip this section entirely.

Matrix Privileges

Field Type TOML Key
Logon Availability Select matrix.logon_avail
Matrix Entry Select matrix.matrix_entry

These control who can use the matrix (network mail) features. The access level names come from your access_levels.toml definitions.

Message Attribute Privileges

A list editor for per-attribute privilege settings. Each entry maps a message attribute (Private, Crash, Kill/Sent, etc.) to the minimum privilege level needed to set that attribute when composing a message.

For example, you might restrict the “Crash” flag (which triggers immediate netmail delivery) to Privileged users and above.

Network Addresses

A list editor for your FidoNet network addresses in Zone:Net/Node.Point format. Most boards have one address; multi-net boards may have several.

MaxCFG Network Addresses Editor

Netmail Settings

Field Type TOML Key
Nodelist Version Text matrix.nodelist_ver
Echotoss Name Text matrix.echotoss_name
FidoUser List Text matrix.fidouser
CTLA Privilege Select matrix.ctla_priv
SeenBy Privilege Select matrix.seenby_priv

The CTLA and SeenBy Privilege fields control who can see the technical kludge lines in echomail messages. Most sysops set these to Sysop or Privileged — regular callers don’t usually need to see routing information.


Security Levels

Maximus uses a privilege-based access system. Each security level defines a name, a numeric level, and a set of limits (session time, daily time, download caps, etc.). When you assign a user a privilege level, they inherit all the limits defined for that level.

The default setup includes levels like Demoted, Transient, Normal, Privileged, and Sysop — but you can create as many custom levels as you need.

Press Enter to edit a level:

Field Type
Name Text
Level Number
Description Text
Session Time Number (minutes)
Daily Time Number (minutes)
Download Limit Number (KB)
Min Baud Number
Max Baud Number
Login File Path
Flags Text

Note: Security level editing currently uses sample data. Full persistence will be added in a future release.


Events

Events let you trigger external programs or BBS restarts at specific points in the login cycle. Each event is defined as an exit error code — when the condition occurs, Maximus exits with that code, and your wrapper script or process manager can take action.

Field Type
After Local Logon Number (exit code)
After Matrix Logon Number (exit code)
After Matrix Mail Number (exit code)

This is most commonly used for running mail tossers after inbound netmail, or triggering maintenance scripts after a local sysop session.


Protocols

External file transfer protocols — Zmodem, Ymodem, custom scripts — are defined here. Maximus supports up to 64 protocol definitions. When a caller initiates a file transfer, they choose from the protocols you’ve defined.

Press Enter to edit a protocol:

Field Type What it does
Name Text What callers see in the protocol selection menu
Program (Upload) Text Command line for receiving files
Program (Download) Text Command line for sending files
Batch Mode Toggle Supports multiple files in one transfer
Bi-directional Toggle Supports simultaneous send/receive
Log File Path Where the protocol logs its activity
Control File Path File listing for batch transfers
Download Keyword Text Log keyword indicating a successful download
Upload Keyword Text Log keyword indicating a successful upload
File Keyword Text Log keyword for the filename
Bytes Keyword Text Log keyword for bytes transferred
CPS Keyword Text Log keyword for transfer speed

The keyword fields tell Maximus how to parse the protocol’s log file to track transfer statistics. If you’re using a well-known protocol like DSZ/Zmodem, the defaults should work. Custom protocols may need adjustment.


Tools Menu

Save Configuration

This is the big one. When you select Tools → Save Configuration, MaxCFG writes all your in-memory TOML changes to disk. Everything you’ve edited in Setup, Content, Messages, and Files gets committed.

Note that area editors and the user editor save their changes immediately (not deferred to this step), so Save Configuration covers only the TOML-backed system settings.

Don’t forget to save before exiting! If you close MaxCFG without saving, your TOML setting changes are lost. Area and user changes are safe — they saved when you exited those editors.

Help Files

Not yet implemented.

System Information

Not yet implemented.


Bad Users and Reserved Names

These are simple text-list editors accessible from the Users menu.

Bad Users

Path: etc/baduser.bbs

A list of usernames that will be rejected at login. If someone tries to log in with a name on this list, they’re turned away. Use this for banning troublemakers.

Reserved Names

Path: etc/reserved.bbs

A list of names that can’t be used for new user registration. This prevents callers from creating accounts with names like “Sysop”, “Guest”, “Admin”, or your board’s name. Same interface as Bad Users.


See Also