User Tools

Site Tools



Tyger is a clone of ZZT and Super ZZT developed by Dr. Dos in the late 00s and early 10s using the Python programming language and Pygame library.


World format

Tyger repurposes the BoardTimeHsec field in the TWorldInfo structure as two bytes:

Offset Type Description
0x00 byte Tyger world selection game name color? (Unused)
0x01 byte Tyger world selection game name length? (Unused)


In general, Tyger is not constrained to the limits of 16-bit ZZT counters.

Tyger adds the following OOP extensions:

  • Additional colors have defined names for use in OOP commands:
    • dblue - dark blue (color 1),
    • dgreen - dark green (color 2),
    • dcyan - dark cyan (color 3),
    • dred - dark red (color 4),
    • dpurple - dark purple (color 5)
    • dyellow - dark yellow/brown (color 6),
    • gray, grey, dwhite - light gray (color 7),
    • dgray, dgrey, dblack - dark gray (color 8),
    • black - black (color 0),
    • any - any (command-specific),
    • def - default (command-specific).
  • Additional elements have defined names for use in OOP commands:
    • edge - board edge,
    • messenger - message timer,
    • monitor - title screen monitor,
    • horizray - horizontal blink wall ray,
    • vertray - vertical blink wall ray,
    • element46 - element 46,
    • bluetext - blue text,
    • greentext - green text,
    • cyantext - cyan text,
    • redtext - red text,
    • purpletext - purple text,
    • yellowtext - yellow text,
    • whitetext - background-less text.
  • #become, #change and #if any supports providing the background color as a second argument, as in #become fg bg element or #change fg bg element1 fg bg element2.
  • #become and #change supports using any for a given color to re-use the tile's existing color as foreground, background, or both.
  • #become and #change supports using default for a given color to use the ZZT-defined default color as foreground, background, or both.
  • #char supports character 0. In addition, for out-of-range character values, it will resort to using character 32 instead of ignoring it (vanilla ZZT behaviour).
  • #cycle supports setting cycle 0.
  • #die creates a black-on-black instead of white-on-black empty.
  • #give and #take support giving and taking the following additional kinds:
    • seconds - the opposite of time,
    • light - additional torch cycles,
    • invuln - additional energizer cycles (this also sends every object to the :ENERGIZE label),
    • energizer - one energizer item's worth of cycles - use without an argument, as in #give energizer,
    • key - a key - provide a key name as argument, as follows:
      • blue, darkblue - blue key,
      • green, darkgreen - green key,
      • cyan, darkcyan - cyan key,
      • red, darkred - red key,
      • purple, darkpurple - purple key,
      • yellow, darkyellow - yellow key,
      • white, gray - white key,
      • black, darkgray - black key.
  • In #if, aligned can be used as a synonym for alligned.


Tyger adds a significant amount of additional cheats.

Cheat code Vanilla? Effect
ammo Yes Adds 5 ammo.
torches Yes Adds 3 torches.
gems Yes Adds 5 gems.
score No Adds 100 score.
health Yes Adds 50 health.
dark/-dark Yes Sets or clears board darkness.
light No Synonymous with -dark, but does not edit the DARK OOP flag.
keys Yes Grants the player all keys.
time Yes Adds 30 seconds of time.
zap Yes Removes tiles from player-neighboring squares.
idspispopd, noclip No Toggles no-clip movement.
iddqd, energized No Sets the player to be energized forever.
idfa No Sets the player to 32767 ammo, 32767 torches, 32767 gems and 32767 health.
idkfa No Sets the player to 32767 ammo, 32767 torches, 32767 gems, 32767 health, and all keys.
^^vv<><>bastart, ^^vv<><>baselectstart No Sets the player's health to 3000.
count leaves No Sets the player to have 6 health, 9 ammo, 1 torch, 0 gems and 5 score.
kill No Kills the player.
explode No Blows up the player.
+/- Yes Sets/clears flags.
#, /, ? No Runs OOP code on the player's location.
release/tyger.txt · Last modified: 2021/02/28 22:01 by asie