Color

From Wiki of ZZT
Revision as of 14:51, 24 December 2025 by Asie (talk | contribs) (Asie moved page Colors accessible from ZZT to Color: Turning this into a general "colors in ZZT" page.)
Jump to navigation Jump to search

The ZZT engine uses the color text mode of the IBM PC. As such, by default, the world format supports 16 foreground colors and 8 background colors. In addition, the color can optionally be marked as blinking, in which case the foreground character appears and disappears at a rate of approximately 1.87 Hz (266 milliseconds per transition).

TODO: Table/graphics showing the colors.

However, in the built-in editor, most of these combinations are not used or only used for built-in elements and thus not exposed to the user. This page documents how to access these additional colors.

In the editor

The built-in editor only supports directly editing elements in seven colors: blue, green, cyan, red, purple, yellow and white. These correspond to the seven bright colors in the default 16-color CGA palette.

However, non-standard colors can be used by copying an existing tile of such a color, for example by using a toolkit board, and placing it on your own board. Alternatively, one can use an external editor, which generally allow use of all supported colors.

Using ZZT-OOP

ZZT-OOP element kind statements only support seven named colors: blue, green, cyan, red, purple, yellow and white, matching the ones available in the built-in editor. With the exception of doors, named colors apply to an element's foreground color, and are paired with a black background.

A handful of additional colors can be obtained through ZZT-OOP by using the change and put commands on built-in entities with hard-coded colors. This was most likely first discovered by Tim Gallagher in 1992[1].

Below are examples of how to obtain gems of various colors using ZZT-OOP. These are also implemented as a demonstration board in the Mystical Winds Encyclopedia.

Dark colors on black

Brown on black

#put e torch

#change torch gem

Alternatively:

#put e bear

#change bear gem


Dark cyan on black

#put e ammo

#change ammo gem


Dark purple on black

#put e energizer

#change energizer gem


Gray on black

#put e shark

#change shark gem


Black on dark colors

Black on dark green

#put e forest

#change forest gem


Black on gray

#put e empty

#put e gem


White on dark colors

White on gray

#put e door

#change door gem


White on dark blue

#put e blue door

#change door gem


White on dark green

#put e green door

#change door gem


White on dark red

#put e red door

#change door gem


White on dark purple

#put e purple door

#change door gem


White on brown

#put e yellow door

#change door gem


Blinking white on black and dark colors

Blinking white on black

#put e forest

#change forest door

#change door gem


Blinking white on dark cyan

#put e ammo

#put e door

#put e gem

Note: The ammo won't automatically be overwritten by the newly-created door. You can delete it with #change ammo empty, or put the object next to an obstacle such that the ammo gets crushed when the door is created.


Blinking white on dark purple

#put e energizer

#put e door

#change door gem


Blinking white on brown

#put e torch

#put e door

#change door gem


Alternatively:

#put e bear

#put e door

#change door gem

Note: The bear needs to be crushed by an obstacle when the door is created.


Blinking white on gray

#put e shark

#put e door

#change door gem


References

  1. Gallagher, Tim. 1992. Tim's Toolkit.