CFG Format (ZZT)

From ModdingWiki
Jump to: navigation, search

ZZT.CFG is supported in versions 3.0 and 3.2. While the format is somewhat different between the two versions, the overall layout of the file is the same: it's a text file with a series of fields, separated by newlines.

Strangely enough, ZZT 3.1 does not appear to support ZZT.CFG at all.

3.0 Format

! Figure out what on earth is going on with this config file. Most notably with the second, third, and seventh lines.

Compared to 3.2, 3.0's config format is quite a bit more complex.

Field/Line Number Optional Name Description
1 No Input/Display Settings This is a bitmask that contains some input and display settings. The following values are known (from least to most significant):
  1.  ?
  2.  ?
  3. Keyboard enabled (! Not quite sure about this one).
  4. Joystick enabled and calibrated (thanks, Dr. Dos!).
  5. Mouse enabled.
  6. Monochrome display.
  7.  ?
  8.  ?
2 No Unknown
3 No Unknown
4 No Show Config Screen If this value is set to 2, the config screen is shown. If it's set to 3, the config screen will be bypassed. If the mouse is enabled, setting this to 3 doesn't seem to do anything and will cause the config screen to be enabled. (! Why are the values 2 and 3? Another bitmask? Need to investigate further.)
5 Yes Startup World File The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.
6 Yes Registered Flag If this is left blank or doesn't exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See below for more information.
7 Yes Unknown This field does not appear to be significant. In the default configuration this contains the string, "NONE." In a shareware disk that was located recently, this is set to "Serial # 14054-3", prepended with 32 spaces.

If the ZZT.CFG file is missing or any of the required values are missing, the game will create a new ZZT.CFG file. If the optional fields are omitted, they will not be added to the config file. Unlike ZZT 3.2, 3.0 writes to this file after the initial configuration screen is shown.

Take care not to write strings into the required fields. The game engine is expecting those fields to contain integers (or nothing), so if it's fed a string it's very likely to crash on startup.

3.2 Format

! Verify that this section is accurate and that there are no hidden surprises left.

ZZT 3.2's config file format is much simpler than 3.0's. It consists of two fields:

Field/Line Number Optional Name Description
1 Yes Startup World File The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.
2 Yes Registered Flag If this is left blank or doesn't exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See below for more information.

If the ZZT.CFG file is missing or doesn't contain any information, the file will not be created by ZZT. The default world file will be set to TOWN, the editor will be enabled, and the registered flag will be disabled.

Registered vs. Shareware

In practice, the "registered" flag doesn't make any significant difference. The help files are static, so setting this flag on the shareware release will still display ordering information in the welcome screen. Similarly, the registered version will still display the "Do not distribute" message.

The only tangible difference is when you exit the game. If the registered flag is set, the outro message will read "Registered version -- Thank you for playing ZZT" regardless of whether or not you're using the shareware version. If it is not set, one of the nag screens contained in ZZT.DAT will be shown, followed by a prompt for the user to press a key. If no nag screens exist, in ZZT.DAT, the player will be dumped back to the shell upon exiting with no message shown or key press required.

Aside from these small changes, there are no changes to gameplay or the functionality of the world editor.