Super ZZT - y2kmallrat.comx

Super ZZT

Super ZZT (Tim Sweeney, Epic MegaGames, 1991; version 2.0 in 1992) is ZZT's sequel: big scrolling boards, new creatures, and a slightly different ZZT-OOP. This page lists everything that differs from ZZT 3.2; anything not listed works as described in the rest of this wiki.

Sources: the Reconstruction of Super ZZT (asie, MIT), which rebuilds Super ZZT 2.0's source, and the real SUPERZ.EXE 2.0 from the freeware release, run in DOSBox. Examples marked tested were played in the real engine by superzzt/test_examples.py and checked in the game's own save file.

Contents: Worlds and boards · ZZT-OOP changes · Movement · Text · Counters and flags · Elements · Keys · Debug console · Making Super ZZT worlds

Worlds and boards

ZZT 3.2 Super ZZT 2.0
Board size 60 × 25 96 × 80, scrolling
Visible area the whole board a 24 × 20 window that follows the player
Boards per world 101 33 (title + 32)
Stats per board 150 128
Flags 10 16
Board data 20,000 bytes 20,000 bytes (same buffer, much bigger board, so it fills faster)
File .ZZT .SZT (header marker −2 instead of −1)

source

  • There are no dark boards and no torches. Boards also have no "message on entry" setting.
  • The title board is shown with "Press ENTER to continue" when the player chooses Play. tested
  • The world list on the title screen is fixed in the program (Proving Grounds, Lost Forest, Monster Zoo); other worlds are started from the command line (SUPERZ MYWORLD).
  • The editor is hidden: start with SUPERZ /E and then press E. KevEdit can't edit Super ZZT worlds.
  • Each board stores a camera offset (DrawXOffset/DrawYOffset) for where the view starts.

ZZT-OOP changes

The same 27 commands, with these differences: source

ZZT Super ZZT
/dir and ?dir one step one or more steps: /e 5 tested
#WALK into a wall THUD every turn, keeps walking THUD once, then stops walking tested
2 lines of text a scroll window a two-line message at the bottom tested
A window 2+ lines 3+ lines
#GIVE/#TAKE counters TORCHES no torches; Z = Stones of Power tested
Colour matching (#IF ANY, #CHANGE) bright colour must match exactly; fixed-colour kinds never match compares the low 3 bits only, so fixed-colour kinds can match tested
Lock flag stored in P2 stored in P3 (P2 is now the step counter)

Movement

/dir n and ?dir n move up to n steps (default 1). The object stops running its program until the steps are done: it moves one step per turn. source tested

szt-steps@Ferry
#end
:touch
"All aboard!"
/e 6
"Here we are."
  • /dir n waits while blocked (like ZZT's /dir), then continues.
  • ?dir n gives up the remaining steps as soon as it's blocked.
  • /i n waits n turns: the easiest timer in Super ZZT. tested
  • Any message (a touch, a shot, a #send) cancels the remaining steps. source
szt-wait@Clock
#cycle 1
/i 30
#set rang
#end

#WALK stops at walls

In ZZT a walking object that hits something keeps getting THUD every turn. In Super ZZT it gets THUD once and stops walking. To keep moving, start walking again in :thud. source tested

szt-walk@Bouncer
#walk e
#end
:thud
#set bumped

After the bump, Bouncer stands still.

Text

Lines in one turn ZZT Super ZZT
1 one-line message one-line message
2 scroll window two-line message at the bottom (no pause)
3+ scroll window scroll window

source tested

szt-two-lines@Guard
#end
:touch
Halt!
Nobody passes.

The message area sits under the playfield, so Super ZZT's speech is usually written as short two-line lines. Choices (!label;text) need a window, so a menu needs at least three lines in total.

Counters and flags

  • Stones of Power (Z) replace torches. The sidebar hides the counter until the first stone is found: it starts at −1, and touching a stone sets it to 0 and then adds 1. source
  • That means #give z 1 on a world where no stone was found yet leaves the counter at 0 (−1 + 1), still hidden. Give one more, or have the player find a real stone first. tested
  • #take z n always fails while the counter is −1.
  • 16 flags can be set at once. source tested
  • Sidebar flags: a flag that starts with Z is printed in the sidebar without the Z: #set Zlamp shows lamp under the counters. Only one fits (each one is drawn in the same place, so the last one wins). A cheap "item held" display. source
szt-z@Shrine
#end
:touch
#give z 2
"The shrine glows."
#die

Elements

New in Super ZZT: source

Name (for #PUT/#CHANGE) What it is
LAVA blocks the player ("Your way is blocked by lava.")
FLOOR walkable decoration; also what forest becomes when cleared
WATERN WATERS WATERW WATERE currents: walkable; they carry the player one square per turn in that direction (creatures aren't moved)
WEB walkable; spiders only move along webs
STONE a Stone of Power (Z), collected on touch
ROTON creature that moves every tick, chasing the player with sideways swerves
DRAGONPUP creature, pushable
PAIRER creature, pushable
SPIDER creature that moves on webs

Gone from ZZT: TORCH and WATER (replaced by lava and currents). Names with spaces lose them (Dragon Pup → DRAGONPUP, Water N → WATERN). source

  • Gems are pushable in Super ZZT. source
  • Forest becomes green floor when walked through, instead of disappearing. source

Keys

While playing

Key ZZT Super ZZT
Shift + arrow / Space shoot shoot (same)
T torch — (no torches)
H help file sends HINT to every object tested
R — restore a saved game
S, P, B, Q/Esc, F, ? same as ZZT

H is the "hint" button. Give a helpful object a :hint label: tested

szt-hint@Owl
#end
:hint
#set hinted
"Look behind the waterfall."
"Whoo."

Title screen

P play, R restore, I introduction, O ordering info, H high scores, Q/Esc quit, E editor (only with /E), | debug console. source

Debug console

? while playing. The words are case-sensitive and must be typed in lowercase: source tested

Type Effect
health +50 health
ammo +20 ammo
gems +5 gems
keys all seven keys
time 30 more seconds
z +1 Stone of Power
noz hides the Stones counter again (−1)
zap clears the squares around the player
+name / -name set / clear a flag (any case)
-all clears every flag

Unlike ZZT, +health only sets a flag; the cheats have no +.

Making Super ZZT worlds

  • Editors: ZEdit2 or the built-in editor (SUPERZ /E). KevEdit doesn't support Super ZZT.
  • The big board is the feature: design for exploration and scrolling, with landmarks the player can see coming.
  • Use /dir n for cutscenes and /i n for timing; they replace long chains of /e/e/e.
  • Keep speech to two lines when you can: it doesn't stop the game.
  • Plan around 128 stats and the same 20,000-byte board buffer on a board with 7,680 squares: big boards must be simple to stay small.
  • This repository has superzzt/szt.py (reads and writes .SZT, byte-exact on the three official worlds) and superzzt/lab.py (plays a world in the real SUPERZ.EXE and reads the save).
← DesignTools →
y2kmallrat.com · a mall of internet finds and homemade things
About this site & credits
A hand-made site of games, music and screensavers, dressed up as a Windows 98 desktop. Not affiliated with Microsoft, Nuvio, TorBox or any service mentioned. Downloads come straight from each project's GitHub releases. Links marked as referral help support this site.
Emoji art in the Nuvio collection tiles: Twemoji © Twitter, Inc. and other contributors, used under CC-BY 4.0.
Super ZZT