<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.zzt.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RT-55J</id>
	<title>Wiki of ZZT - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zzt.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RT-55J"/>
	<link rel="alternate" type="text/html" href="https://wiki.zzt.org/wiki/Special:Contributions/RT-55J"/>
	<updated>2026-09-02T01:33:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=779</id>
		<title>User:RT-55J</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=779"/>
		<updated>2026-04-08T03:27:43Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m a ZZTer!&lt;br /&gt;
&lt;br /&gt;
Back in 2006 I made the maps of the official ZZT worlds that are hosted on [https://vgmaps.com/Atlas/PC/index.htm#ZZT VGMaps].&lt;br /&gt;
&lt;br /&gt;
Despite lurking on and off around the community since the late 90s, I didn&#039;t join the community-proper until after the Reconstruction of ZZT dropped in 2020. Since then, I think I&#039;ve made a name for myself.&lt;br /&gt;
&lt;br /&gt;
At this point I&#039;ve published several worlds. You can find a good portion of these on [https://rt-55j.itch.io/ my itch.io page]:&lt;br /&gt;
* [https://museumofzzt.com/file/1/SB2020.zip?file=GADFLY.zzt&amp;amp;board=0 A Day in the Life of Goodfry Gadfly] (2020) - A short game that takes place in a society of bugs.&lt;br /&gt;
* [https://rt-55j.itch.io/buyso BUYSO] (2020/2022) - A simple Christmas shopping simulator. Revised with a custom fork to display your inventory.&lt;br /&gt;
* [https://museumofzzt.com/file/view/zztsa/ ZZTSA] (2021) - Short tonepiece about going through an airport.&lt;br /&gt;
* [https://museumofzzt.com/file/play/sweet%20dreams/ sweet dreams] (2021) - Short tonepiece about dreams. Codegolfed to be under 10KB&lt;br /&gt;
* [https://rt-55j.itch.io/ezanya-remastered Ezanya Remastered] (2022) - Remake of 1992&#039;s Ezanya, made with the blessing of the original author.&lt;br /&gt;
* [https://museumofzzt.com/file/play/summer22bkzzt/ Emissian] (2022) - Go on a date in Istanbul. Made for the July 2022 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/gg-four-pack-2024 Coycean Table] (2024) - Complete a ritual as a priest of darkness. Made for the Summer 2024 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/101-beans The 101 Beans Against the Bears] (2025) - The world&#039;s first &amp;quot;bean defense&amp;quot; game. Made for the Winter 2025 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/nom-nom Let Not Thee the Earth Consume] (2025) - A short time-attack challenge. Made for the Spring 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/minions Minion Slaughtermap] (2025) - A tribute of anti-Barney worlds from the 90s. Made for the Summer 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/lazanya Lazanya] (2026) - A parody of Ezanya. Made for the Winter 2.4HoZZT contest.&lt;br /&gt;
&lt;br /&gt;
In addition to the above games, I&#039;ve made an extensive series starring my original character &#039;&#039;&#039;Samantha Arantes&#039;&#039;&#039;:&lt;br /&gt;
* [https://rt-55j.itch.io/karid-x2 The Continuing Adventures of Samantha Arantes vs. Karid-X2] (2021) - Clean your suit after a harrowing mission.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gets-milk Samantha Arantes Goes to the Fridge to Get a Glass of Milk] (2022) - Exactly what it says on the jug.&lt;br /&gt;
* [https://museumofzzt.com/file/play/samsays/ Samantha Arantes Speaks Out Against the Recent Impropriety] (2022) - Minor release. Made in response to an April Fools joke.&lt;br /&gt;
* [https://museumofzzt.com/file/play/nameless2022/ Nameless Awards 2022 Award Ceremony LEAKED FOOTAGE (4K HIGH QUALITY RIP)] (2022) - Minor release. An acceptance speech.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gig Samantha Arantes is Spiritually Drained by the Gig Economy] (2023) - Get to work, sister.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-flies Awful Dates Done Quick: Samantha&#039;s Heart Freely Flies Away] (2024) - Action, adventure, romance. This has it all.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-sis Samantha&#039;s Sister Wants a Bottle of Milk Right This Second] (2025) - Allegorically autobiographical.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve also released a few magazines under my company name &#039;&#039;&#039;Gadfly Goods&#039;&#039;&#039;:&lt;br /&gt;
* [https://museumofzzt.com/file/play/gadflygoodsgrabbag2021/ Gadfly Goods Grabbag] (2021)&lt;br /&gt;
* [https://museumofzzt.com/file/play/channel%20g/ Channel G: Gadfly ANSItronic Video Entertainment System - Zine 2] (2023)&lt;br /&gt;
* [https://museumofzzt.com/file/play/grub/ Gadfly Goods Grub - Zine 3] (2025)&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Walk&amp;diff=774</id>
		<title>Walk</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Walk&amp;diff=774"/>
		<updated>2026-02-22T16:43:34Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Clarification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:walk}}&lt;br /&gt;
&#039;&#039;&#039;#walk&#039;&#039;&#039; is a [[ZZT-OOP]] command that makes an [[object]] move automatically, independent of conventional [[movement]] commands (&amp;lt;code&amp;gt;[[go|#go]]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[try|#try]]&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Once &amp;lt;code&amp;gt;#walk&amp;lt;/code&amp;gt; is executed, the object will move in the specified direction on every cycle [[tick]] after the object&#039;s code has finished executing. If a walking object is blocked by an obstacle, it will send a [[thud]] message to itself, unless it&#039;s [[lock|locked]].&lt;br /&gt;
&lt;br /&gt;
To stop walking, use &amp;lt;code&amp;gt;#walk [[idle]]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#walk [[idle|i]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;code&amp;gt;#walk &amp;lt;direction&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Objects will not push other entities as a result of walking.&lt;br /&gt;
* &amp;lt;code&amp;gt;#walk&amp;lt;/code&amp;gt; operates independently of other movement commands, so an object can appear to move diagonally by walking along one axis and using &amp;lt;code&amp;gt;#go&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#try&amp;lt;/code&amp;gt; on the other.&lt;br /&gt;
* [[flow]] refers to an object&#039;s current walking direction, and can be used in conjunction with [[direction modifiers]] to steer it. For example, &amp;lt;code&amp;gt;#walk cw flow&amp;lt;/code&amp;gt; will make an object turn clockwise.&lt;br /&gt;
* Internally, ZZT object walking is implemented with two delta variables. Modifying these variables with an enhanced editor beyond the ranges of -1 to +1 will cause the object to skip across terrain.&lt;br /&gt;
&lt;br /&gt;
{{ZZT-OOP navbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=771</id>
		<title>User:RT-55J</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=771"/>
		<updated>2026-01-23T03:29:25Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: just remembered that i made a 3rd zine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m a ZZTer!&lt;br /&gt;
&lt;br /&gt;
Back in 2006 I made the maps of the official ZZT worlds that are hosted on [https://vgmaps.com/Atlas/PC/index.htm#ZZT VGMaps].&lt;br /&gt;
&lt;br /&gt;
Despite lurking on and off around the community since the late 90s, I didn&#039;t join the community-proper until after the Reconstruction of ZZT dropped in 2020. Since then, I think I&#039;ve made a name for myself.&lt;br /&gt;
&lt;br /&gt;
At this point I&#039;ve published several worlds. You can find a good portion of these on [https://rt-55j.itch.io/ my itch.io page]:&lt;br /&gt;
* [https://museumofzzt.com/file/1/SB2020.zip?file=GADFLY.zzt&amp;amp;board=0 A Day in the Life of Goodfry Gadfly] (2020) - A short game that takes place in a society of bugs.&lt;br /&gt;
* [https://rt-55j.itch.io/buyso BUYSO] (2020/2022) - A simple Christmas shopping simulator. Revised with a custom fork to display your inventory.&lt;br /&gt;
* [https://museumofzzt.com/file/view/zztsa/ ZZTSA] (2021) - Short tonepiece about going through an airport.&lt;br /&gt;
* [https://museumofzzt.com/file/play/sweet%20dreams/ sweet dreams] (2021) - Short tonepiece about dreams. Codegolfed to be under 10KB&lt;br /&gt;
* [https://rt-55j.itch.io/ezanya-remastered Ezanya Remastered] (2022) - Remake of 1992&#039;s Ezanya, made with the blessing of the original author.&lt;br /&gt;
* [https://museumofzzt.com/file/play/summer22bkzzt/ Emissian] (2022) - Go on a date in Istanbul. Made for the July 2022 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/gg-four-pack-2024 Coycean Table] (2024) - Complete a ritual as a priest of darkness. Made for the Summer 2024 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/101-beans The 101 Beans Against the Bears] (2025) - The world&#039;s first &amp;quot;bean defense&amp;quot; game. Made for the Winter 2025 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/nom-nom Let Not Thee the Earth Consume] (2025) - A short time-attack challenge. Made for the Spring 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/minions Minion Slaughtermap] (2025) - A tribute of anti-Barney worlds from the 90s. Made for the Summer 2.4HoZZT contest.&lt;br /&gt;
&lt;br /&gt;
In addition to the above games, I&#039;ve made an extensive series starring my original character &#039;&#039;&#039;Samantha Arantes&#039;&#039;&#039;:&lt;br /&gt;
* [https://rt-55j.itch.io/karid-x2 The Continuing Adventures of Samantha Arantes vs. Karid-X2] (2021) - Clean your suit after a harrowing mission.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gets-milk Samantha Arantes Goes to the Fridge to Get a Glass of Milk] (2022) - Exactly what it says on the jug.&lt;br /&gt;
* [https://museumofzzt.com/file/play/samsays/ Samantha Arantes Speaks Out Against the Recent Impropriety] (2022) - Minor release. Made in response to an April Fools joke.&lt;br /&gt;
* [https://museumofzzt.com/file/play/nameless2022/ Nameless Awards 2022 Award Ceremony LEAKED FOOTAGE (4K HIGH QUALITY RIP)] (2022) - Minor release. An acceptance speech.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gig Samantha Arantes is Spiritually Drained by the Gig Economy] (2023) - Get to work, sister.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-flies Awful Dates Done Quick: Samantha&#039;s Heart Freely Flies Away] (2024) - Action, adventure, romance. This has it all.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-sis Samantha&#039;s Sister Wants a Bottle of Milk Right This Second] (2025) - Allegorically autobiographical.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve also released a few magazines under my company name &#039;&#039;&#039;Gadfly Goods&#039;&#039;&#039;:&lt;br /&gt;
* [https://museumofzzt.com/file/play/gadflygoodsgrabbag2021/ Gadfly Goods Grabbag] (2021)&lt;br /&gt;
* [https://museumofzzt.com/file/play/channel%20g/ Channel G: Gadfly ANSItronic Video Entertainment System - Zine 2] (2023)&lt;br /&gt;
* [https://museumofzzt.com/file/play/grub/ Gadfly Goods Grub - Zine 3] (2025)&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=770</id>
		<title>User:RT-55J</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=770"/>
		<updated>2026-01-21T05:47:05Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m a ZZTer!&lt;br /&gt;
&lt;br /&gt;
Back in 2006 I made the maps of the official ZZT worlds that are hosted on [https://vgmaps.com/Atlas/PC/index.htm#ZZT VGMaps].&lt;br /&gt;
&lt;br /&gt;
Despite lurking on and off around the community since the late 90s, I didn&#039;t join the community-proper until after the Reconstruction of ZZT dropped in 2020. Since then, I think I&#039;ve made a name for myself.&lt;br /&gt;
&lt;br /&gt;
At this point I&#039;ve published several worlds. You can find a good portion of these on [https://rt-55j.itch.io/ my itch.io page]:&lt;br /&gt;
* [https://museumofzzt.com/file/1/SB2020.zip?file=GADFLY.zzt&amp;amp;board=0 A Day in the Life of Goodfry Gadfly] (2020) - A short game that takes place in a society of bugs.&lt;br /&gt;
* [https://rt-55j.itch.io/buyso BUYSO] (2020/2022) - A simple Christmas shopping simulator. Revised with a custom fork to display your inventory.&lt;br /&gt;
* [https://museumofzzt.com/file/view/zztsa/ ZZTSA] (2021) - Short tonepiece about going through an airport.&lt;br /&gt;
* [https://museumofzzt.com/file/play/sweet%20dreams/ sweet dreams] (2021) - Short tonepiece about dreams. Codegolfed to be under 10KB&lt;br /&gt;
* [https://rt-55j.itch.io/ezanya-remastered Ezanya Remastered] (2022) - Remake of 1992&#039;s Ezanya, made with the blessing of the original author.&lt;br /&gt;
* [https://museumofzzt.com/file/play/summer22bkzzt/ Emissian] (2022) - Go on a date in Istanbul. Made for the July 2022 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/gg-four-pack-2024 Coycean Table] (2024) - Complete a ritual as a priest of darkness. Made for the Summer 2024 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/101-beans The 101 Beans Against the Bears] (2025) - The world&#039;s first &amp;quot;bean defense&amp;quot; game. Made for the Winter 2025 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/nom-nom Let Not Thee the Earth Consume] (2025) - A short time-attack challenge. Made for the Spring 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/minions Minion Slaughtermap] (2025) - A tribute of anti-Barney worlds from the 90s. Made for the Summer 2.4HoZZT contest.&lt;br /&gt;
&lt;br /&gt;
In addition to the above games, I&#039;ve made an extensive series starring my original character &#039;&#039;&#039;Samantha Arantes&#039;&#039;&#039;:&lt;br /&gt;
* [https://rt-55j.itch.io/karid-x2 The Continuing Adventures of Samantha Arantes vs. Karid-X2] (2021) - Clean your suit after a harrowing mission.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gets-milk Samantha Arantes Goes to the Fridge to Get a Glass of Milk] (2022) - Exactly what it says on the jug.&lt;br /&gt;
* [https://museumofzzt.com/file/play/samsays/ Samantha Arantes Speaks Out Against the Recent Impropriety] (2022) - Minor release. Made in response to an April Fools joke.&lt;br /&gt;
* [https://museumofzzt.com/file/play/nameless2022/ Nameless Awards 2022 Award Ceremony LEAKED FOOTAGE (4K HIGH QUALITY RIP)] (2022) - Minor release. An acceptance speech.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gig Samantha Arantes is Spiritually Drained by the Gig Economy] (2023) - Get to work, sister.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-flies Awful Dates Done Quick: Samantha&#039;s Heart Freely Flies Away] (2024) - Action, adventure, romance. This has it all.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-sis Samantha&#039;s Sister Wants a Bottle of Milk Right This Second] (2025) - Allegorically autobiographical.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve also released a few magazines under my company name &#039;&#039;&#039;Gadfly Goods&#039;&#039;&#039;:&lt;br /&gt;
* [https://museumofzzt.com/file/play/gadflygoodsgrabbag2021/ Gadfly Goods Grabbag] (2021)&lt;br /&gt;
* [https://museumofzzt.com/file/play/channel%20g/ Channel G: Gadfly ANSItronic Video Entertainment System - Zine 2] (2023)&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=769</id>
		<title>User:RT-55J</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=User:RT-55J&amp;diff=769"/>
		<updated>2026-01-21T05:46:41Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Corrected a date, filled in a missing game description.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m a ZZTer!&lt;br /&gt;
&lt;br /&gt;
Back in 2006 I made the maps of the official ZZT worlds that are hosted on [https://vgmaps.com/Atlas/PC/index.htm#ZZT VGMaps].&lt;br /&gt;
&lt;br /&gt;
Despite lurking on and off around the community since the late 90s, I didn&#039;t join the community-proper until after the Reconstruction of ZZT dropped in 2020. Since then, I think I&#039;ve made a name for myself.&lt;br /&gt;
&lt;br /&gt;
At this point I&#039;ve published several worlds. You can find a good portion of these on [https://rt-55j.itch.io/ my itch.io page]:&lt;br /&gt;
* [https://museumofzzt.com/file/1/SB2020.zip?file=GADFLY.zzt&amp;amp;board=0 A Day in the Life of Goodfry Gadfly] (2020) - A short game that takes place in a society of bugs.&lt;br /&gt;
* [https://rt-55j.itch.io/buyso BUYSO] (2020/2022) - A simple Christmas shopping simulator. Revised with a custom fork to displays your inventory.&lt;br /&gt;
* [https://museumofzzt.com/file/view/zztsa/ ZZTSA] (2021) - Short tonepiece about going through an airport.&lt;br /&gt;
* [https://museumofzzt.com/file/play/sweet%20dreams/ sweet dreams] (2021) - Short tonepiece about dreams. Codegolfed to be under 10KB&lt;br /&gt;
* [https://rt-55j.itch.io/ezanya-remastered Ezanya Remastered] (2022) - Remake of 1992&#039;s Ezanya, made with the blessing of the original author.&lt;br /&gt;
* [https://museumofzzt.com/file/play/summer22bkzzt/ Emissian] (2022) - Go on a date in Istanbul. Made for the July 2022 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/gg-four-pack-2024 Coycean Table] (2024) - Complete a ritual as a priest of darkness. Made for the Summer 2024 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/101-beans The 101 Beans Against the Bears] (2025) - The world&#039;s first &amp;quot;bean defense&amp;quot; game. Made for the Winter 2025 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/nom-nom Let Not Thee the Earth Consume] (2025) - A short time-attack challenge. Made for the Spring 2.4HoZZT contest.&lt;br /&gt;
* [https://rt-55j.itch.io/minions Minion Slaughtermap] (2025) - A tribute of anti-Barney worlds from the 90s. Made for the Summer 2.4HoZZT contest.&lt;br /&gt;
&lt;br /&gt;
In addition to the above games, I&#039;ve made an extensive series starring my original character &#039;&#039;&#039;Samantha Arantes&#039;&#039;&#039;:&lt;br /&gt;
* [https://rt-55j.itch.io/karid-x2 The Continuing Adventures of Samantha Arantes vs. Karid-X2] (2021) - Clean your suit after a harrowing mission.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gets-milk Samantha Arantes Goes to the Fridge to Get a Glass of Milk] (2022) - Exactly what it says on the jug.&lt;br /&gt;
* [https://museumofzzt.com/file/play/samsays/ Samantha Arantes Speaks Out Against the Recent Impropriety] (2022) - Minor release. Made in response to an April Fools joke.&lt;br /&gt;
* [https://museumofzzt.com/file/play/nameless2022/ Nameless Awards 2022 Award Ceremony LEAKED FOOTAGE (4K HIGH QUALITY RIP)] (2022) - Minor release. An acceptance speech.&lt;br /&gt;
* [https://rt-55j.itch.io/samantha-gig Samantha Arantes is Spiritually Drained by the Gig Economy] (2023) - Get to work, sister.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-flies Awful Dates Done Quick: Samantha&#039;s Heart Freely Flies Away] (2024) - Action, adventure, romance. This has it all.&lt;br /&gt;
* [https://rt-55j.itch.io/sam-sis Samantha&#039;s Sister Wants a Bottle of Milk Right This Second] (2025) - Allegorically autobiographical.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve also released a few magazines under my company name &#039;&#039;&#039;Gadfly Goods&#039;&#039;&#039;:&lt;br /&gt;
* [https://museumofzzt.com/file/play/gadflygoodsgrabbag2021/ Gadfly Goods Grabbag] (2021)&lt;br /&gt;
* [https://museumofzzt.com/file/play/channel%20g/ Channel G: Gadfly ANSItronic Video Entertainment System - Zine 2] (2023)&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=748</id>
		<title>Dungeons of ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=748"/>
		<updated>2026-01-03T03:39:52Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Premise added. Pause bug strat mentioned.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DUNGEONS.ZZT, or &#039;&#039;&#039;Dungeons of ZZT&#039;&#039;&#039;, is the third&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 2.0 (Unregistered), [https://museumofzzt.com/file/view/zzt20/?file=ORDER.HLP ORDER.HLP]. January 15th, 1991&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 3.1 (Unregistered), [https://museumofzzt.com/file/view/zzt31/?file=ORDER.DOC ORDER.DOC]. July 2nd, 1991.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Pilgrim, Allen &amp;amp; Sweeney, Tim. Super ZZT 2.0 (Registered), ZZT&#039;s Monster Zoo, board 0. [https://museumofzzt.com/file/view/szzt/?file=MONSTER.SZT Museum of ZZT]&amp;lt;/ref&amp;gt; main world in the ZZT saga, and one of six ZZT worlds created by [[Tim Sweeney]].&lt;br /&gt;
&lt;br /&gt;
The game begins after the player has been thrown into the dungeons by the &amp;quot;evil Dungeon Guards,&amp;quot; and the player collect 4 purple keys to unlock the dungeon doors and escape. Curiously, the opening scroll claims that this world contains &amp;quot;45 room,&amp;quot; when it only contains 28 boards (including the title). Dungeons is notable for being being completable in [https://www.youtube.com/watch?v=QGXGjIiQFNg under 2 minutes] using the [[pause bug]].&lt;br /&gt;
&lt;br /&gt;
Dungeons was a commercial product available for registered users, until 1997 when it was released as freeware.&lt;br /&gt;
&lt;br /&gt;
At least two revisions of Dungeons are known to exist. They came with the following two versions of ZZT:&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt30r-disk/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.0 (Registered)]&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.2]&lt;br /&gt;
&lt;br /&gt;
Between the versions bundled with 3.0 and 3.2, the [[Potomac Computer Systems]] branding was removed, an incomplete puzzle board was removed, and an exclamation point was changed to a period on the ending screen.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Official worlds]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Guided_Tour_of_ZZT%27s_Other_Worlds&amp;diff=747</id>
		<title>Guided Tour of ZZT&#039;s Other Worlds</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Guided_Tour_of_ZZT%27s_Other_Worlds&amp;diff=747"/>
		<updated>2026-01-03T03:25:36Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TOUR.ZZT, alternatively called &#039;&#039;&#039;A Guided Tour of ZZT&#039;s Other Worlds&#039;&#039;&#039; or &#039;&#039;A Guided Tour Through the Other Worlds of ZZT&#039;&#039;, is one of three shareware ZZT worlds created by [[Tim Sweeney]]. It contains a small sampling of boards from the other official worlds, some of which are playable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Included boards&lt;br /&gt;
|-&lt;br /&gt;
! World !! Board !! Playable?&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWN.ZZT]] || The Mixer || No&lt;br /&gt;
|-&lt;br /&gt;
| [[CITY.ZZT]] || Bad part of town&amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt;In ZZT v2.0 the board Pac-Man from Caves is used here instead.&amp;lt;/ref&amp;gt; || Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[CITY.ZZT]] || The Elevator || Yes&amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt;Includes groups of enemies not present in the actual game.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[CAVES.ZZT]] || Engineer Required || No&lt;br /&gt;
|-&lt;br /&gt;
| [[DUNGEONS.ZZT]] || Kennel || Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[CAVES.ZZT]] || Key Puzzle || No&lt;br /&gt;
|-&lt;br /&gt;
| [[DUNGEONS.ZZT]] || Dungeons I || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references group=&amp;quot;Note&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=TOUR.ZZT&amp;diff=746</id>
		<title>TOUR.ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=TOUR.ZZT&amp;diff=746"/>
		<updated>2026-01-03T03:24:47Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Redirected page to Guided Tour of ZZT&amp;#039;s Other Worlds&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Guided Tour of ZZT&#039;s Other Worlds]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Guided_Tour_of_ZZT%27s_Other_Worlds&amp;diff=745</id>
		<title>Guided Tour of ZZT&#039;s Other Worlds</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Guided_Tour_of_ZZT%27s_Other_Worlds&amp;diff=745"/>
		<updated>2026-01-03T03:24:22Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Created page with &amp;quot;TOUR.ZZT, alternatively called &amp;#039;&amp;#039;&amp;#039;A Guided Tour of ZZT&amp;#039;s Other Worlds&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;A Guided Tour Through the Other Worlds of ZZT&amp;#039;&amp;#039;, is one of three shareware ZZT worlds created by Tim Sweeney. It contains a small sampling of boards from the other official worlds, some of which are playable.  {| class=&amp;quot;wikitable&amp;quot; |+ Included board |- ! World !! Board !! Playable? |- | TOWN.ZZT || The Mixer || No |- | CITY.ZZT || Bad part of town&amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt;In ZZT v2.0 the boa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TOUR.ZZT, alternatively called &#039;&#039;&#039;A Guided Tour of ZZT&#039;s Other Worlds&#039;&#039;&#039; or &#039;&#039;A Guided Tour Through the Other Worlds of ZZT&#039;&#039;, is one of three shareware ZZT worlds created by [[Tim Sweeney]]. It contains a small sampling of boards from the other official worlds, some of which are playable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Included board&lt;br /&gt;
|-&lt;br /&gt;
! World !! Board !! Playable?&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWN.ZZT]] || The Mixer || No&lt;br /&gt;
|-&lt;br /&gt;
| [[CITY.ZZT]] || Bad part of town&amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt;In ZZT v2.0 the board Pac-Man from Caves is used here instead.&amp;lt;/ref&amp;gt; || Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[CITY.ZZT]] || The Elevator || Yes&amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt;Includes groups of enemies not present in the actual game.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[CAVES.ZZT]] || Engineer Required || No&lt;br /&gt;
|-&lt;br /&gt;
| [[DUNGEONS.ZZT]] || Kennel || Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[CAVES.ZZT]] || Key Puzzle || No&lt;br /&gt;
|-&lt;br /&gt;
| [[DUNGEONS.ZZT]] || Dungeons I || Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references group=&amp;quot;Note&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=ZZT%27s_Town&amp;diff=744</id>
		<title>ZZT&#039;s Town</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=ZZT%27s_Town&amp;diff=744"/>
		<updated>2026-01-03T02:10:50Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Redirected page to Town of ZZT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Town of ZZT]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=TOWN.ZZT&amp;diff=743</id>
		<title>TOWN.ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=TOWN.ZZT&amp;diff=743"/>
		<updated>2026-01-03T02:10:35Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Redirected page to Town of ZZT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Town of ZZT]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Town_of_ZZT&amp;diff=742</id>
		<title>Town of ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Town_of_ZZT&amp;diff=742"/>
		<updated>2026-01-03T02:09:45Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Created page with &amp;quot;TOWN.ZZT, or &amp;#039;&amp;#039;&amp;#039;Town of ZZT&amp;#039;&amp;#039;&amp;#039;, is the first main world of the ZZT saga, and one of three worlds included with shareware copies of ZZT (the others being DEMO.ZZT and TOUR.ZZT). The player is tasked with collecting the five purple keys spread across the town to be able to enter the palace.  == Version History ==  {{Stub}}  At least three versions of Town are known to exist:  * [https://museumofzzt.com/file/view/zzt20/?file=TOWN.ZZT ZZT 2.0] * [https://museumof...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TOWN.ZZT, or &#039;&#039;&#039;Town of ZZT&#039;&#039;&#039;, is the first main world of the ZZT saga, and one of three worlds included with shareware copies of ZZT (the others being [[DEMO.ZZT]] and [[TOUR.ZZT]]). The player is tasked with collecting the five purple [[keys]] spread across the town to be able to enter the palace.&lt;br /&gt;
&lt;br /&gt;
== Version History ==&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
At least three versions of Town are known to exist:&lt;br /&gt;
&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt20/?file=TOWN.ZZT ZZT 2.0]&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt30/?file=TOWN.ZZT ZZT 3.0]&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt/?file=TOWN.ZZT ZZT 3.1/3.2]&lt;br /&gt;
&lt;br /&gt;
Additionally, the magazine Softdisk published Town as their &#039;&#039;second&#039;&#039; ZZT game under the name &#039;&#039;&#039;ZZT&#039;s Town&#039;&#039;&#039; with [https://museumofzzt.com/file/view/wozzt357/ Worlds of ZZT v3.57] in 1994.&lt;br /&gt;
&lt;br /&gt;
[[Category:Official worlds]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=741</id>
		<title>Dungeons of ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=741"/>
		<updated>2026-01-03T01:46:50Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Added to official worlds category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DUNGEONS.ZZT, or &#039;&#039;&#039;Dungeons of ZZT&#039;&#039;&#039;, is the third&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 2.0 (Unregistered), [https://museumofzzt.com/file/view/zzt20/?file=ORDER.HLP ORDER.HLP]. January 15th, 1991&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 3.1 (Unregistered), [https://museumofzzt.com/file/view/zzt31/?file=ORDER.DOC ORDER.DOC]. July 2nd, 1991.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Pilgrim, Allen &amp;amp; Sweeney, Tim. Super ZZT 2.0 (Registered), ZZT&#039;s Monster Zoo, board 0. [https://museumofzzt.com/file/view/szzt/?file=MONSTER.SZT Museum of ZZT]&amp;lt;/ref&amp;gt; main world in the ZZT saga, and one of six ZZT worlds created by [[Tim Sweeney]].&lt;br /&gt;
&lt;br /&gt;
Dungeons was a commercial product available for registered users, until 1997 when it was released as freeware.&lt;br /&gt;
&lt;br /&gt;
At least two revisions of Dungeons are known to exist. They came with the following two versions of ZZT:&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt30r-disk/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.0 (Registered)]&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.2]&lt;br /&gt;
&lt;br /&gt;
Between the versions bundled with 3.0 and 3.2, the [[Potomac Computer Systems]] branding was removed, an incomplete puzzle board was removed, and an exclamation point was changed to a period on the ending screen.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Official worlds]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Play&amp;diff=740</id>
		<title>Play</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Play&amp;diff=740"/>
		<updated>2025-12-31T22:14:58Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: put in a proper stub template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;#play&#039;&#039;&#039; command in [[ZZT-OOP]] allows [[object|objects]] and [[scroll|scrolls]] to play music and sound effects.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;code&amp;gt;#play &amp;lt;sound&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The general syntax is that parameters come before the notes and drums they modify.&lt;br /&gt;
&lt;br /&gt;
All characters not listed below are silently ignored (like comments).&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symbol !! Denotes !! Length in Ticks&lt;br /&gt;
|-&lt;br /&gt;
| t || 32nd Note || 1&lt;br /&gt;
|-&lt;br /&gt;
| s || Sixteenth Note || 2&lt;br /&gt;
|-&lt;br /&gt;
| i || Eighth Note || 4&lt;br /&gt;
|-&lt;br /&gt;
| q || Quarter Note || 8&lt;br /&gt;
|-&lt;br /&gt;
| h || Half Note || 16&lt;br /&gt;
|-&lt;br /&gt;
| w || Whole Note || 32&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Triplet || (n/3)&lt;br /&gt;
|-&lt;br /&gt;
| . || Time-and-a-half || (n*3)/2&lt;br /&gt;
|-&lt;br /&gt;
| + || Up octave || N/A&lt;br /&gt;
|-&lt;br /&gt;
| - || Down octave || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The octave and length parameters are reset each line. The default note length is 1 (32nd note), and the default octave is 3 (ranges from 1 to 6 inclusively).&lt;br /&gt;
&lt;br /&gt;
Note that the lengths are measured in PIT ticks, not cycles! The PIT ticks at approximately 18.2 Hz, meaning that a 32nd note lasts approximately 55 milliseconds.&lt;br /&gt;
&lt;br /&gt;
The triplet and time-and-a-half modifiers need to be placed somewhere after the length parameters they are modifying (eg &#039;&#039;w3&#039;&#039; or &#039;&#039;h.&#039;&#039;). These modifiers also stack (eg. &#039;&#039;w.3&#039;&#039; produces a 16-tick-long note length, equivalent to &#039;&#039;h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=== Notes and Rests ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;X&#039;&#039; - Rest&lt;br /&gt;
* &#039;&#039;CDEFGAB&#039;&#039; - Piano notes, can be followed by:&lt;br /&gt;
** &#039;&#039;#&#039;&#039; - Sharp&lt;br /&gt;
** &#039;&#039;!&#039;&#039; - Flat&lt;br /&gt;
&lt;br /&gt;
=== Drums ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symbol !! &amp;quot;Sound&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Tick&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Tweet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Cowbell&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &#039;&#039;N/A -- Denotes Triplet&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Hi snare&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Hi woodblock&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Low snare&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Low tom&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Low woodblock&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Bass drum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Drums are hardcoded percussion effects, created by rapidly changing the frequency emitted by the PC Speaker. They last for approximately 14 milliseconds each, with the exception of the 1-millisecond tick.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{Template:Stub}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[TODO: Put a simple thing here and explain it character by character.]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Quirks ==&lt;br /&gt;
&lt;br /&gt;
=== Sound parser ===&lt;br /&gt;
&lt;br /&gt;
* When a scroll uses &amp;lt;code&amp;gt;#play&amp;lt;/code&amp;gt; it does not suppress the default scroll sound effect. Rather, the sound is appended to the end of the sound effect.&lt;br /&gt;
* The triplet and time-and-a-half parameters use integer floor division. If the result of the division is 0 (with either &#039;&#039;t3&#039;&#039; or &#039;&#039;s3&#039;&#039;), then the length value will underflow, causing ZZT to play a 256-tick-long note - which is also the maximum possible length of a single note.&lt;br /&gt;
&lt;br /&gt;
=== Sound playback ===&lt;br /&gt;
&lt;br /&gt;
* The note frequencies are calculated using scientific pitch, with C&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; equal to 256 Hz and A&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; theoretically equal to 430.54 Hz. However, inaccuracies are introduced in the frequency calculation process by the use of two turncation operations:&lt;br /&gt;
** The first truncation removes the fractional component of the frequency; for example, A&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;, after truncation, is equal to 430 Hz.&lt;br /&gt;
** The second truncation is applied inside Turbo Pascal&#039;s built-in &#039;&#039;Sound()&#039;&#039; function, when deriving the IBM PC&#039;s programmable interrupt timer period from the provided frequency. (TODO)&lt;br /&gt;
* Drums are timed using Turbo Pascal&#039;s built-in &#039;&#039;Delay()&#039;&#039; function. As it was designed for the late 1980s state of the art in computer technology, the frequencies will alternate far too quickly on more modern hardware.&lt;br /&gt;
** The above also means that, on slower hardware, a drum playback actually stalls engine execution for the duration of its sound.&lt;br /&gt;
* The sound buffer has a size limit of 255 bytes; as each queued sound (note + duration pair) takes up two bytes, this means there may be at most 127 different sounds queued up for playback.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Sound effects]] - ZZT&#039;s built-in sound effects, expressed in #play statements.&lt;br /&gt;
* [[Play/Duration_table|Duration Table]] - A programmatically generated list of possible note durations in ZZT-OOP&lt;br /&gt;
&lt;br /&gt;
{{ZZT-OOP navbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=DUNGEONS.ZZT&amp;diff=739</id>
		<title>DUNGEONS.ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=DUNGEONS.ZZT&amp;diff=739"/>
		<updated>2025-12-28T22:43:06Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Redirected page to Dungeons of ZZT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dungeons of ZZT]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=738</id>
		<title>Dungeons of ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=738"/>
		<updated>2025-12-28T18:15:59Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Rephrased to be more concise, less redundant.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DUNGEONS.ZZT, or &#039;&#039;&#039;Dungeons of ZZT&#039;&#039;&#039;, is the third&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 2.0 (Unregistered), [https://museumofzzt.com/file/view/zzt20/?file=ORDER.HLP ORDER.HLP]. January 15th, 1991&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 3.1 (Unregistered), [https://museumofzzt.com/file/view/zzt31/?file=ORDER.DOC ORDER.DOC]. July 2nd, 1991.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Pilgrim, Allen &amp;amp; Sweeney, Tim. Super ZZT 2.0 (Registered), ZZT&#039;s Monster Zoo, board 0. [https://museumofzzt.com/file/view/szzt/?file=MONSTER.SZT Museum of ZZT]&amp;lt;/ref&amp;gt; main world in the ZZT saga, and one of six ZZT worlds created by Tim Sweeney.&lt;br /&gt;
&lt;br /&gt;
Dungeons was a commercial product available for registered users, until 1997 when it was released as freeware.&lt;br /&gt;
&lt;br /&gt;
At least two revisions of Dungeons are known to exist. They came with the following two versions of ZZT:&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt30r-disk/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.0 (Registered)]&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.2]&lt;br /&gt;
&lt;br /&gt;
Between the versions bundled with 3.0 and 3.2, the [[Potomac Computer Systems]] branding was removed, an incomplete puzzle board was removed, and an exclamation point was changed to a period on the ending screen.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=737</id>
		<title>Dungeons of ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Dungeons_of_ZZT&amp;diff=737"/>
		<updated>2025-12-28T17:26:31Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Created page with &amp;quot;DUNGEONS.ZZT, or &amp;#039;&amp;#039;&amp;#039;Dungeons of ZZT&amp;#039;&amp;#039;&amp;#039;, developed and designed by Tim Sweeney, is the third&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 2.0 (Unregistered), [https://museumofzzt.com/file/view/zzt20/?file=ORDER.HLP ORDER.HLP]. January 15th, 1991&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 3.1 (Unregistered), [https://museumofzzt.com/file/view/zzt31/?file=ORDER.DOC ORDER.DOC]. July 2nd, 1991.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Pilgrim, Allen &amp;amp; Sweeney, Tim. Super ZZT 2.0 (Registered), ZZT&amp;#039;s Monster Zoo, board 0. [https://museumofzzt.co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DUNGEONS.ZZT, or &#039;&#039;&#039;Dungeons of ZZT&#039;&#039;&#039;, developed and designed by Tim Sweeney, is the third&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 2.0 (Unregistered), [https://museumofzzt.com/file/view/zzt20/?file=ORDER.HLP ORDER.HLP]. January 15th, 1991&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Sweeney, Tim. ZZT 3.1 (Unregistered), [https://museumofzzt.com/file/view/zzt31/?file=ORDER.DOC ORDER.DOC]. July 2nd, 1991.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Pilgrim, Allen &amp;amp; Sweeney, Tim. Super ZZT 2.0 (Registered), ZZT&#039;s Monster Zoo, board 0. [https://museumofzzt.com/file/view/szzt/?file=MONSTER.SZT Museum of ZZT]&amp;lt;/ref&amp;gt; main world in the ZZT saga, and one of six ZZT worlds created by Sweeney.&lt;br /&gt;
&lt;br /&gt;
Dungeons was a commercial product available for registered users, until 1997 when it was released as freeware.&lt;br /&gt;
&lt;br /&gt;
At least two revisions of Dungeons are known to exist. They came with the following two versions of ZZT:&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt30r-disk/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.0 (Registered)]&lt;br /&gt;
* [https://museumofzzt.com/file/view/zzt/?file=DUNGEONS.ZZT&amp;amp;board=0 ZZT 3.2]&lt;br /&gt;
&lt;br /&gt;
Between the versions bundled with 3.0 and 3.2, the [[Potomac Computer Systems]] branding was removed, an incomplete puzzle board was removed, and an exclamation point was changed to a period on the ending screen.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=ZZT&amp;diff=736</id>
		<title>ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=ZZT&amp;diff=736"/>
		<updated>2025-12-28T17:07:08Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: /* Official worlds */ - Dungeons comes before City, per Monster Zoo, and ordering forms since v2.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ZZT&#039;&#039;&#039; is an action-adventure video game released by [[Tim Sweeney]] under [[Potomac Computer Systems]] (later [[Epic MegaGames]]) on January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;&amp;gt;Sweeney, Tim. &amp;quot;ZZT Newsletter, Volume 1, Number 1, January-July 1991&amp;quot;.&amp;lt;/ref&amp;gt;. It received multiple official updates, the final one being [[ZZT 3.2]], as well as a sequel - [[Super ZZT]].&lt;br /&gt;
&lt;br /&gt;
ZZT was originally distributed in a shareware model, with the first game world in the official series, [[Town of ZZT]], being available without charge, and additional game worlds ([[Caves of ZZT]], [[Dungeons of ZZT]], [[City of ZZT]]) purchasable via mail order. On October 10th, 1997&amp;lt;ref name=&amp;quot;EpicWhatsNew1998&amp;quot;&amp;gt;[https://web.archive.org/web/19980214165401/http://www.epicgames.com:80/whatsnew.htm News Update] on epicgames.com as of February 14th, 1998.&amp;lt;/ref&amp;gt;, the full version of ZZT was made available at no cost, albeit without the source code due to it being lost in a system failure&amp;lt;ref name=&amp;quot;EpicZZT1998&amp;quot;&amp;gt;[https://web.archive.org/web/19980214170034/http://www.epicgames.com/zzt.htm ZZT] on epicgames.com as of February 14th, 1998.&amp;lt;/ref&amp;gt;.  On March 15th, 2020, the release of the [[Reconstruction of ZZT]] effectively made the ZZT game engine, as well as its documentation and reverse-engineered binary-equivalent source code, available under the terms of the MIT license.&lt;br /&gt;
&lt;br /&gt;
In addition to the official releases, Tim Sweeney sublicensed the rights to ZZT to SoftDisk&amp;lt;ref&amp;gt;Lightbown, David. (2018, January 8). &#039;&#039;Classic Tools Retrospective: Tim Sweeney on the first version of the Unreal Editor&#039;&#039;. [https://www.gamedeveloper.com/design/classic-tools-retrospective-tim-sweeney-on-the-first-version-of-the-unreal-editor Game Developer].&amp;lt;/ref&amp;gt; in 1991, which they released as [[Worlds of ZZT]].&lt;br /&gt;
&lt;br /&gt;
== Official worlds ==&lt;br /&gt;
&lt;br /&gt;
Tim Sweeney released the following ZZT worlds as shareware:&lt;br /&gt;
&lt;br /&gt;
* DEMO.ZZT - [[Demo of the ZZT World Editor]]&lt;br /&gt;
* TOWN.ZZT - [[Town of ZZT]]&lt;br /&gt;
* TOUR.ZZT - [[Guided Tour of ZZT&#039;s Other Worlds]]&lt;br /&gt;
&lt;br /&gt;
Sweeney also created the following three worlds for registered copies of ZZT:&lt;br /&gt;
&lt;br /&gt;
* CAVES.ZZT - [[Caves of ZZT]]&lt;br /&gt;
* DUNGEONS.ZZT - [[Dungeons of ZZT]]&lt;br /&gt;
* CITY.ZZT - [[City of ZZT]]&lt;br /&gt;
&lt;br /&gt;
One additional world was considered, but never released. Its existence is mentioned in the binary data of ZZT 2.0, but was removed from later versions:&lt;br /&gt;
&lt;br /&gt;
* PHYSICS.ZZT - The Physics Behind ZZT&lt;br /&gt;
&lt;br /&gt;
After releasing ZZT, Sweeney held the &#039;&#039;Best of ZZT&#039;&#039; contest. Individual boards from two dozen authors&amp;lt;ref&amp;gt;Sweeney, Tim. &amp;quot;Epic MegaGames Newsletter, Volume 1, Number 1, Spring 1992&amp;quot;, page 3.&amp;lt;/ref&amp;gt; were compiled into two worlds:&lt;br /&gt;
&lt;br /&gt;
* BESTZZT1.ZZT - [[Best of ZZT: Part I: The Secret of Headhunter Isle]]&lt;br /&gt;
* BESTZZT2.ZZT - [[Best of ZZT: Part II: The Royal Treasures]]&lt;br /&gt;
&lt;br /&gt;
Additionally, six worlds from the contest were released in their entirety for the &#039;&#039;ZZT&#039;s Revenge&#039;&#039; collection:&lt;br /&gt;
&lt;br /&gt;
* CRYPT.ZZT - [[The Crypt]] by Adam Rixey&lt;br /&gt;
* DARBYTWN.ZZT - [[Darby&#039;s Crazy Town]] by David Bishop&lt;br /&gt;
* EZANYA.ZZT - [[Ezanya]] by Beth Daggert&lt;br /&gt;
* FANTASY.ZZT - [[Fantasy]] by Allen Pilgrim&lt;br /&gt;
* MANOR.ZZT - [[Mystery Manor]] by Alan R. Zeman&lt;br /&gt;
* SMILEY.ZZT - [[Smiley Guy]] by Al Payne&lt;br /&gt;
&lt;br /&gt;
== Version history ==&lt;br /&gt;
&lt;br /&gt;
The full number of ZZT versions made available to the public is not known, as registered copies of ZZT would sometimes include silently added changes not made available in the shareware versions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Known ZZT builds&lt;br /&gt;
|-&lt;br /&gt;
! Version !! Compilation date !! Release date !! Available as shareware !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 2.0]] (Shareware) || December 26th, 1990 || January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;/&amp;gt; || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 2.0]] (Registered) || Unknown || January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;/&amp;gt; || No ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.0]] || late May, 1991 || June 10th, 1991&amp;lt;ref name=&amp;quot;asp5201&amp;quot;&amp;gt;ASP Shareware Catalog for BBS users, 2nd volume, 10th edition. Published April 2nd, 1992.&amp;lt;/ref&amp;gt; || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.1 (September 1991)]] || September 14th, 1991 || Unknown || No ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.1]] || November 2nd, 1991 || Unknown || Yes || First release under Epic MegaGames.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2 (March 1992)]] || March 9th, 1992 || Unknown || No || Included with ZZT&#039;s Revenge.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2]] || May 21st, 1992 || Unknown || Yes || Final official build.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2]] (Free) || - || October 10th, 1997&amp;lt;ref name=&amp;quot;megaboards97&amp;quot;&amp;gt;[https://web.archive.org/web/19971122042845/http://www.epicgames.co.uk/wwwboard/messages/13479.html The &amp;quot;Thing&amp;quot; Has Happened! All Registered Worlds Released For FREE!] on epicgames.com as of November 22nd, 1997.&amp;lt;/ref&amp;gt; || - || Equivalent to a registered copy of ZZT 3.2.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Worlds of ZZT]] versions are listed in a separate article.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Demo_of_the_ZZT_World_Editor&amp;diff=735</id>
		<title>Demo of the ZZT World Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Demo_of_the_ZZT_World_Editor&amp;diff=735"/>
		<updated>2025-12-28T04:02:27Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DEMO.ZZT, or &#039;&#039;&#039;Demo of the ZZT World Editor&#039;&#039;&#039;, is one of the six official ZZT worlds by [[Tim Sweeney]], as well as one of the three worlds available as part of the shareware ZZT distribution. It serves a documentation purpose, introducing the player in an interactive manner to the [[Element|elements]] provided by the engine. It has received no revisions after being originally released with [[ZZT 2.0]].&lt;br /&gt;
&lt;br /&gt;
This world is also notable for using an different color of [[water]] ({{ColorSwatch|fg=white|bg=dark blue|blinking}}) than made available in the final version of the [[built-in editor]] ({{ColorSwatch|fg=blue|bg=gray|blinking}}).&lt;br /&gt;
&lt;br /&gt;
Unlike all other official ZZT worlds, this world was made available under the terms of the open source MIT license [https://github.com/asiekierka/reconstruction-of-zzt/blob/master/RES/DEMO.ZZT as part of the Reconstruction of ZZT].&lt;br /&gt;
&lt;br /&gt;
[[Category:Official worlds]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Tick&amp;diff=734</id>
		<title>Tick</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Tick&amp;diff=734"/>
		<updated>2025-12-27T23:03:13Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: /* Game speed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The fundamental unit of time in a ZZT [[world]] is the &#039;&#039;&#039;tick&#039;&#039;&#039;. During a tick, the [[controls|player input]] is collected, after which all [[stat|stats]] are processed in order based on their cycle.&lt;br /&gt;
&lt;br /&gt;
== Cycle handling ==&lt;br /&gt;
&lt;br /&gt;
Whether a given stat is processed on a given tick is based on the following conditions: &amp;lt;code&amp;gt;Cycle =/= 0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TickCounter % Cycle == StatIndex % Cycle&amp;lt;/code&amp;gt;, where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Cycle&amp;lt;/code&amp;gt; refers to the stat&#039;s Cycle value,&lt;br /&gt;
* &amp;lt;code&amp;gt;TickCounter&amp;lt;/code&amp;gt; refers to the game&#039;s tick counter,&lt;br /&gt;
* &amp;lt;code&amp;gt;StatIndex&amp;lt;/code&amp;gt; refers to the stat&#039;s index.&lt;br /&gt;
&lt;br /&gt;
The tick counter is set to a random value between 0 and 99 on start, and is incremented until it reaches the value &amp;lt;code&amp;gt;420&amp;lt;/code&amp;gt;, after which it is reset back to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. This has a consequence of only divisors of 420 ticking at a consistent rate throughout gameplay: 1, 2, 3, 4, 5, 6, 7, 10, 12, 14, 15, 20, 21, 28, 30, 35, 42, 60, 70, 84, 105, 140, 210 and 420. Other cycle values, such as 8, 9, 11..., will eventually skip cycles. In addition, as all stats have a lower index than 420 (and all non-player stats have a higher index than 0), stats with a cycle rate higher than 420 will tick as if they had a cycle rate of 420.&lt;br /&gt;
&lt;br /&gt;
== Game speed ==&lt;br /&gt;
&lt;br /&gt;
The rate at which the world ticks is dependent on the game speed.&lt;br /&gt;
&lt;br /&gt;
While ZZT&#039;s code intended to support a variety of game speeds, in practice on most machines and all emulators the speed is always a multiple of PIT ticks (approximately 18.2 Hz), making most of the speed settings redundant.&lt;br /&gt;
&lt;br /&gt;
The speed of [[play|sounds]] is not affected by the game speed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+List of game speeds&lt;br /&gt;
! Game speed&lt;br /&gt;
! Intended tick period&lt;br /&gt;
! PIT ticks per game tick&lt;br /&gt;
! Effective tick period&lt;br /&gt;
!Default message display ticks&lt;br /&gt;
!Effective message display duration&lt;br /&gt;
|-&lt;br /&gt;
| 0 (F)&lt;br /&gt;
| 0 ms (Uncapped)&lt;br /&gt;
| 0&lt;br /&gt;
| Uncapped&lt;br /&gt;
|200&lt;br /&gt;
|Short&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 20 ms (50 Hz)&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 1&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 55 ms (18.2 Hz)&lt;br /&gt;
|66&lt;br /&gt;
|3.63 seconds&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 40 ms (25 Hz)&lt;br /&gt;
|40&lt;br /&gt;
|2.2 seconds&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 60 ms (16.67 Hz)&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;110 ms (9.1 Hz)&#039;&#039;&#039;&lt;br /&gt;
|28&lt;br /&gt;
|3.08 seconds&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;4 (default)&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;80 ms (12.5 Hz)&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;22&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;2.42 seconds&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 100 ms (10 Hz)&lt;br /&gt;
|18&lt;br /&gt;
|1.98 seconds&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 120 ms (8.33 Hz)&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 165 ms (6.06 Hz)&lt;br /&gt;
|15&lt;br /&gt;
|2.47 seconds&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 140 ms (7.14 Hz)&lt;br /&gt;
|13&lt;br /&gt;
|2.14 seconds&lt;br /&gt;
|-&lt;br /&gt;
| 8 (S)&lt;br /&gt;
| 160 ms (6.25 Hz)&lt;br /&gt;
|11&lt;br /&gt;
|1.81 seconds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Most ZZT [[world|worlds]] are designed for the default tick speed, which is equal to 4, or approximately 9.1 Hz.&lt;br /&gt;
&lt;br /&gt;
When the [[player]] gets a game over, the game speed is set to 0 (uncapped).&lt;br /&gt;
&lt;br /&gt;
=== Detecting game speed ===&lt;br /&gt;
&lt;br /&gt;
Since the message timer&#039;s tick duration differs for each game speed value, one can create a board where the message timer occupies the final slot on the [[stat]] list, counting after how many ticks another stat can be created after displaying a message to infer the game speed. This technique was discovered by Dr. Dos in 2020&amp;lt;ref&amp;gt;Dr. Dos. (2020). &#039;&#039;[https://museumofzzt.com/file/view/2020dotzzt/?file=2020.ZZT&amp;amp;board=17 2020 dot ZZT].&#039;&#039;&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Endgame&amp;diff=733</id>
		<title>Endgame</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Endgame&amp;diff=733"/>
		<updated>2025-12-27T22:48:00Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;#endgame&#039;&#039;&#039; is a [[ZZT-OOP]] command that sets the [[Player|player&#039;s]] health to 0, thus ending the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#endgame&#039;&#039;&#039; can also be used to efficiently set the player&#039;s health to an arbitrary value &#039;&#039;without&#039;&#039; causing a game over by using [[Give|#give health]] on the same tick, as in this code example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@HealthSetter&lt;br /&gt;
#endgame&lt;br /&gt;
#give health 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If an &amp;lt;code&amp;gt;/idle&amp;lt;/code&amp;gt; were inserted between the #endgame and the #give, then a game over would happen and then the player would be brought back to life with the game in the [[Tick#Game_speed|hyperspeed state]].&lt;br /&gt;
&lt;br /&gt;
{{ZZT-OOP navbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=ZZT&amp;diff=732</id>
		<title>ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=ZZT&amp;diff=732"/>
		<updated>2025-12-27T20:28:42Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: /* Version history */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ZZT&#039;&#039;&#039; is an action-adventure video game released by [[Tim Sweeney]] under [[Potomac Computer Systems]] (later [[Epic MegaGames]]) on January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;&amp;gt;Sweeney, Tim. &amp;quot;ZZT Newsletter, Volume 1, Number 1, January-July 1991&amp;quot;.&amp;lt;/ref&amp;gt;. It received multiple official updates, the final one being [[ZZT 3.2]], as well as a sequel - [[Super ZZT]].&lt;br /&gt;
&lt;br /&gt;
ZZT was originally distributed in a shareware model, with the first game world in the official series, [[Town of ZZT]], being available without charge, and additional game worlds ([[Caves of ZZT]], [[Dungeons of ZZT]], [[City of ZZT]]) purchasable via mail order. On October 10th, 1997&amp;lt;ref name=&amp;quot;EpicWhatsNew1998&amp;quot;&amp;gt;[https://web.archive.org/web/19980214165401/http://www.epicgames.com:80/whatsnew.htm News Update] on epicgames.com as of February 14th, 1998.&amp;lt;/ref&amp;gt;, the full version of ZZT was made available at no cost, albeit without the source code due to it being lost in a system failure&amp;lt;ref name=&amp;quot;EpicZZT1998&amp;quot;&amp;gt;[https://web.archive.org/web/19980214170034/http://www.epicgames.com/zzt.htm ZZT] on epicgames.com as of February 14th, 1998.&amp;lt;/ref&amp;gt;.  On March 15th, 2020, the release of the [[Reconstruction of ZZT]] effectively made the ZZT game engine, as well as its documentation and reverse-engineered binary-equivalent source code, available under the terms of the MIT license.&lt;br /&gt;
&lt;br /&gt;
In addition to the official releases, Tim Sweeney sublicensed the rights to ZZT to SoftDisk&amp;lt;ref&amp;gt;Lightbown, David. (2018, January 8). &#039;&#039;Classic Tools Retrospective: Tim Sweeney on the first version of the Unreal Editor&#039;&#039;. [https://www.gamedeveloper.com/design/classic-tools-retrospective-tim-sweeney-on-the-first-version-of-the-unreal-editor Game Developer].&amp;lt;/ref&amp;gt; in 1991, which they released as [[Worlds of ZZT]].&lt;br /&gt;
&lt;br /&gt;
== Official worlds ==&lt;br /&gt;
&lt;br /&gt;
Tim Sweeney released the following ZZT worlds as shareware:&lt;br /&gt;
&lt;br /&gt;
* DEMO.ZZT - [[Demo of the ZZT World Editor]]&lt;br /&gt;
* TOWN.ZZT - [[Town of ZZT]]&lt;br /&gt;
* TOUR.ZZT - [[Guided Tour of ZZT&#039;s Other Worlds]]&lt;br /&gt;
&lt;br /&gt;
Sweeney also created the following three worlds for registered copies of ZZT:&lt;br /&gt;
&lt;br /&gt;
* CAVES.ZZT - [[Caves of ZZT]]&lt;br /&gt;
* CITY.ZZT - [[City of ZZT]]&lt;br /&gt;
* DUNGEONS.ZZT - [[Dungeons of ZZT]]&lt;br /&gt;
&lt;br /&gt;
One additional world was considered, but never released. Its existence is mentioned in the binary data of ZZT 2.0, but was removed from later versions:&lt;br /&gt;
&lt;br /&gt;
* PHYSICS.ZZT - The Physics Behind ZZT&lt;br /&gt;
&lt;br /&gt;
After releasing ZZT, Sweeney held the &#039;&#039;Best of ZZT&#039;&#039; contest. Individual boards from two dozen authors&amp;lt;ref&amp;gt;Sweeney, Tim. &amp;quot;Epic MegaGames Newsletter, Volume 1, Number 1, Spring 1992&amp;quot;, page 3.&amp;lt;/ref&amp;gt; were compiled into two worlds:&lt;br /&gt;
&lt;br /&gt;
* BESTZZT1.ZZT - [[Best of ZZT: Part I: The Secret of Headhunter Isle]]&lt;br /&gt;
* BESTZZT2.ZZT - [[Best of ZZT: Part II: The Royal Treasures]]&lt;br /&gt;
&lt;br /&gt;
Additionally, six worlds from the contest were released in their entirety for the &#039;&#039;ZZT&#039;s Revenge&#039;&#039; collection:&lt;br /&gt;
&lt;br /&gt;
* CRYPT.ZZT - [[The Crypt]] by Adam Rixey&lt;br /&gt;
* DARBYTWN.ZZT - [[Darby&#039;s Crazy Town]] by David Bishop&lt;br /&gt;
* EZANYA.ZZT - [[Ezanya]] by Beth Daggert&lt;br /&gt;
* FANTASY.ZZT - [[Fantasy]] by Allen Pilgrim&lt;br /&gt;
* MANOR.ZZT - [[Mystery Manor]] by Alan R. Zeman&lt;br /&gt;
* SMILEY.ZZT - [[Smiley Guy]] by Al Payne&lt;br /&gt;
&lt;br /&gt;
== Version history ==&lt;br /&gt;
&lt;br /&gt;
The full number of ZZT versions made available to the public is not known, as registered copies of ZZT would sometimes include silently added changes not made available in the shareware versions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Known ZZT builds&lt;br /&gt;
|-&lt;br /&gt;
! Version !! Compilation date !! Release date !! Available as shareware !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 2.0]] (Shareware) || December 26th, 1990 || January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;/&amp;gt; || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 2.0]] (Registered) || Unknown || January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;/&amp;gt; || No ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.0]] || late May, 1991 || June 10th, 1991&amp;lt;ref name=&amp;quot;asp5201&amp;quot;&amp;gt;ASP Shareware Catalog for BBS users, 2nd volume, 10th edition. Published April 2nd, 1992.&amp;lt;/ref&amp;gt; || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.1 (September 1991)]] || September 14th, 1991 || Unknown || No ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.1]] || November 2nd, 1991 || Unknown || Yes || First release under Epic MegaGames.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2 (March 1992)]] || March 9th, 1992 || Unknown || No || Included with ZZT&#039;s Revenge.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2]] || May 21st, 1992 || Unknown || Yes || Final official build.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2]] (Free) || - || October 10th, 1997&amp;lt;ref name=&amp;quot;megaboards97&amp;quot;&amp;gt;[https://web.archive.org/web/19971122042845/http://www.epicgames.co.uk/wwwboard/messages/13479.html The &amp;quot;Thing&amp;quot; Has Happened! All Registered Worlds Released For FREE!] on epicgames.com as of November 22nd, 1997.&amp;lt;/ref&amp;gt; || - || Equivalent to a registered copy of ZZT 3.2.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Worlds of ZZT]] versions are listed in a separate article.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Slime&amp;diff=731</id>
		<title>Slime</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Slime&amp;diff=731"/>
		<updated>2025-12-26T21:57:06Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Element&lt;br /&gt;
|name=Slime&lt;br /&gt;
|zzt-oop name=slime&lt;br /&gt;
|category=creature&lt;br /&gt;
|id={{Byte|37}}&lt;br /&gt;
|color=&lt;br /&gt;
|char={{CharSwatch|42}}&lt;br /&gt;
|stats=yes&lt;br /&gt;
|x-y step=&lt;br /&gt;
|cycle=3&lt;br /&gt;
|p1=Cloning counter&lt;br /&gt;
|p2=Cloning threshold&lt;br /&gt;
|score=&lt;br /&gt;
|destructible=no&lt;br /&gt;
|effect on movement=&lt;br /&gt;
|uses zzt-oop color=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Slimes&#039;&#039;&#039; are creatures which clone themselves across empties and fake floors, leaving [[breakable|breakable tiles]] in their place. The player can destroy a single slime by touching it, turning it into a breakable. They cannot be harmed by bullets or bomb blasts, though they may incidentally disappear without cloning if they happen to be blocked at the right moment.&lt;br /&gt;
&lt;br /&gt;
Every &amp;lt;code&amp;gt;Cloning threshold&amp;lt;/code&amp;gt; cycles, a Slime attempts to replicate in all four cardinal directions. After replication, successful or otherwise, it leaves behind a [[Breakable]] of the same color as itself.&lt;br /&gt;
&lt;br /&gt;
== Quirks ==&lt;br /&gt;
&lt;br /&gt;
Statless slimes crash the game when touched, because the game tries to destroy stat index -1.&lt;br /&gt;
&lt;br /&gt;
[[Category:Elements]]&lt;br /&gt;
{{ElementsNavbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Internal_Strings&amp;diff=730</id>
		<title>Internal Strings</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Internal_Strings&amp;diff=730"/>
		<updated>2025-12-26T17:40:13Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Text windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZZT has a number of internal strings that it displays for several purposes.&lt;br /&gt;
&lt;br /&gt;
== Message Strings ==&lt;br /&gt;
&lt;br /&gt;
This is a list of internal string messages displayed on the bottom of the screen, along with their durations and whether or not they are set to only appear once.&lt;br /&gt;
&lt;br /&gt;
Note that the duration variable here is scaled according to the [[game speed]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Message !! Duration !! Show Once&lt;br /&gt;
|-&lt;br /&gt;
|Bomb activated! || 200 || No&lt;br /&gt;
|-&lt;br /&gt;
|Energizer - You are invincible || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gems give you Health! || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|Ammunition - 5 shots per container. || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|Can&#039;t shoot in this place! || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|You don&#039;t have any ammo! || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|You now have the [color] key. || 200 || No&lt;br /&gt;
|-&lt;br /&gt;
|You already have a [color] key! || 200 || No&lt;br /&gt;
|-&lt;br /&gt;
|The [color] door is now open. || 200 || No&lt;br /&gt;
|-&lt;br /&gt;
|The [color] door is locked! || 200 || No&lt;br /&gt;
|-&lt;br /&gt;
|Torch - used for lighting in the underground. || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t need torch - room is not dark! || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|Room is dark - you need to light a torch! || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|You don&#039;t have any torches! || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|You are blocked by an invisible wall. || 100 || No&lt;br /&gt;
|-&lt;br /&gt;
|A path is cleared through the forest. || 200 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|A fake wall - secret passage! || 150 || Yes&lt;br /&gt;
|-&lt;br /&gt;
|Your way is blocked by water. || 100 || No&lt;br /&gt;
|-&lt;br /&gt;
|Running out of time! || 200 || No&lt;br /&gt;
|-&lt;br /&gt;
|Ouch! || 100 || No&lt;br /&gt;
|-&lt;br /&gt;
| Game over  -  Press ESCAPE || 32000 || No&lt;br /&gt;
|-&lt;br /&gt;
|ERR: [error] || 200 || No&lt;br /&gt;
|-&lt;br /&gt;
|[object/scroll messages] || 200 || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the Game Over message (a) has a leading space character, and (b) is not displayed if a message is currently displayed onscreen.&lt;br /&gt;
&lt;br /&gt;
=== ZZT-OOP Errors ===&lt;br /&gt;
&lt;br /&gt;
Errors thrown is an invalid command is encountered:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Bad Direction&lt;br /&gt;
|-&lt;br /&gt;
|Bad object kind&lt;br /&gt;
|-&lt;br /&gt;
|Bad #BECOME&lt;br /&gt;
|-&lt;br /&gt;
|Bad #PUT&lt;br /&gt;
|-&lt;br /&gt;
|Bad #CHANGE&lt;br /&gt;
|-&lt;br /&gt;
|Bad command [command]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Colors ==&lt;br /&gt;
&lt;br /&gt;
The list of valid ZZT-OOP colors:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Blue&lt;br /&gt;
|-&lt;br /&gt;
|Green&lt;br /&gt;
|-&lt;br /&gt;
|Cyan&lt;br /&gt;
|-&lt;br /&gt;
|Red&lt;br /&gt;
|-&lt;br /&gt;
|Purple&lt;br /&gt;
|-&lt;br /&gt;
|Yellow&lt;br /&gt;
|-&lt;br /&gt;
|White&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The color black is technically the color 0, which is out of bounds of the color name array. ZZT attempts to read a string that starts 8 characters before the first one, and it&#039;s length end up being 46 (corresponding to the character {{CharSwatch|46}} in an unrelated string). The full string for the color black is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.-♣....\♦Blue    ♣Green   ♦Cyan    ♥Red     ♠P&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(The clubs and diamonds and such are the length parameters for the other color strings.)&lt;br /&gt;
&lt;br /&gt;
Messages are limited to 58 characters in length. Thus, the messages that use this string end up being truncated. Also, due to an off-by-one error, collecting/using a black key will visually overwrite one tile of the sidebar with a black tile.&lt;br /&gt;
&lt;br /&gt;
== Text Windows ==&lt;br /&gt;
&lt;br /&gt;
There are a handful of built-in messages displayed via text windows.&lt;br /&gt;
&lt;br /&gt;
TODO: There should be a few more window titles, particularly in the editor.&lt;br /&gt;
&lt;br /&gt;
=== World Selector ===&lt;br /&gt;
&lt;br /&gt;
When selecting a world or saved game, a text window appears with the title &amp;lt;code&amp;gt;ZZT Worlds&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Saved Games&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When loading this window, filenames are checked against a small internal list to provide official worlds with fuller names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;TOWN       The Town of ZZT&lt;br /&gt;
DEMO       Demo of the ZZT World Editor&lt;br /&gt;
CAVES      The Caves of ZZT&lt;br /&gt;
DUNGEONS   The Dungeons of ZZT&lt;br /&gt;
CITY       Underground City of ZZT&lt;br /&gt;
BEST       The Best of ZZT&lt;br /&gt;
TOUR       Guided Tour ZZT&#039;s Other Worlds&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;BEST&amp;quot; is notable for being unused, since the final result of the &#039;&#039;Best of ZZT&#039;&#039; contest was released in two parts: BESTZZT1 and BESTZZT2.&lt;br /&gt;
&lt;br /&gt;
The last line of this window is &amp;lt;code&amp;gt;Exit&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== High Score ===&lt;br /&gt;
&lt;br /&gt;
When viewing or entering a high score, a window appears with the title &amp;lt;code&amp;gt;High scores for [World Name]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;New high score for [World Name]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Score  Name&lt;br /&gt;
-----  ----------------------------------&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Score entries are in the format of &amp;lt;code&amp;gt;[Score]  [Name]&amp;lt;/code&amp;gt;, with score being five digits padded to be right-aligned. The placeholder name when entering a high score is &amp;lt;code&amp;gt;-- You! --&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== File Not Found ===&lt;br /&gt;
&lt;br /&gt;
If a file IO error is encountered, this error message box may pop up. The title for this message box is &amp;lt;code&amp;gt;Error # [Error Number]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$DOS Error: &lt;br /&gt;
&lt;br /&gt;
This may be caused by missing&lt;br /&gt;
ZZT files or a bad disk.  If&lt;br /&gt;
you are trying to save a game&lt;br /&gt;
your disk may be full -- try&lt;br /&gt;
using a blank, formatted disk&lt;br /&gt;
for saving the game!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Key&amp;diff=729</id>
		<title>Key</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Key&amp;diff=729"/>
		<updated>2025-12-26T15:58:53Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Element&lt;br /&gt;
|zzt-oop name=key&lt;br /&gt;
|id={{Byte|8}}&lt;br /&gt;
|char={{CharSwatch|12}}&lt;br /&gt;
|category=item&lt;br /&gt;
|stats=no&lt;br /&gt;
|destructible=no&lt;br /&gt;
|effect on movement=pushable&lt;br /&gt;
|uses zzt-oop color=yes&lt;br /&gt;
}}&lt;br /&gt;
The &#039;&#039;&#039;key&#039;&#039;&#039; element is one of the built-in puzzle elements of [[ZZT]]. A key can be used to open a [[door]] of the corresponding color; together, they allow a designer to create a simple lock-and-key puzzle. When the [[player]] collects a key, the engine prints &amp;quot;You now have the X key.&amp;quot; where X is the key color, adds the key to the &amp;quot;Keys&amp;quot; counter on the HUD, and leaves an identically-colored [[empty]] where the key was. If the player already has a key of a certain color, the game prints &amp;quot;You already have a X key!&amp;quot; where X is the color, and prevents the player from collecting it. Ever since [[Caves of ZZT]], authors have exploited this attribute to create puzzles where the player is blocked by multiple keys of the same color and must find enough correctly-colored doors in order to consume each one.&amp;lt;ref&amp;gt;Sweeney, Tim. (1991) &#039;&#039;Caves of ZZT&#039;&#039;, board 34. [https://museumofzzt.com/file/view/zzt/?file=CAVES.ZZT&amp;amp;board=34 Museum of ZZT]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keys can be placed in any of the default colors recognized by [[ZZT-OOP]], as well as the darker colors enabled by external editors. The foreground color is used to determine what the color of the key is when it is collected. The engine treats the dark colors the same as the default bright colors when collected, with the side effect that a brown key will be treated and addressed as a yellow key when collected.&lt;br /&gt;
&lt;br /&gt;
Unlike other items, a key cannot be given directly to the player through ZZT-OOP; an [[object]] must first use [[Put|#put]], [[Change|#change]] or [[Become|#become]] to create a key for the player to collect. Alternatively, a [[duplicator]] may duplicate a key directly onto a [[player]] or player clone to force collection without any player input.&lt;br /&gt;
&lt;br /&gt;
While keys are pushable, they cannot be pushed by a player since attempting to do so will collect them. However, a player can move them by pushing a [[boulder]] against them, or letting a [[pusher]] shove them.&lt;br /&gt;
&lt;br /&gt;
== Black keys ==&lt;br /&gt;
While keys can be placed in all of the available colors, black keys and dark-grey keys will have glitched behavior when collected:&lt;br /&gt;
# The engine will print a garbled mess in place of the key color that includes &amp;quot;Blue&amp;quot;, &amp;quot;Green&amp;quot;, &amp;quot;Cyan&amp;quot; and &amp;quot;Red&amp;quot;;&lt;br /&gt;
# The gems counter will be incremented by 256.&lt;br /&gt;
Both of these are out-of-bounds errors related to the arrays used for keys, as follows:&lt;br /&gt;
&lt;br /&gt;
=== Color naming ===&lt;br /&gt;
The color naming for pickup messages is handled by the &amp;lt;tt&amp;gt;ColorNames&amp;lt;/tt&amp;gt; array in GAME.PAS line 92, which has entries for color indexes 1 to 7 of the CGA color palette. This is an array of strings up to eight characters in length. When the engine attempts to access the color name for index 0, the color black, it attempts to access the entry prior to the first entry, &amp;lt;tt&amp;gt;Blue&amp;lt;/tt&amp;gt;, and goes out of bounds into where the preceding &amp;lt;tt&amp;gt;ProgressAnimStrings&amp;lt;/tt&amp;gt; array exists in memory. It then fails to detect when an entry ends, and prints as much of the succeeding portion of memory as it can fit in a message string after the initial &amp;quot;&amp;lt;tt&amp;gt;You now have the &amp;lt;/tt&amp;gt;&amp;quot;, producing the glitched message. When editing the engine, the bug can be fixed by changing the array range from &amp;lt;tt&amp;gt;1 .. 7&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;0 .. 7&amp;lt;/tt&amp;gt; and adding &amp;lt;tt&amp;gt;&#039;Black&#039;,&amp;lt;/tt&amp;gt; to the start of the array before &amp;lt;tt&amp;gt;&#039;Blue&#039;,&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Counters ===&lt;br /&gt;
The key counter in the world format is defined in GAMEVARS.PAS line 111, under &amp;lt;tt&amp;gt;TWorldInfo&amp;lt;/tt&amp;gt;, as a boolean array named &amp;lt;tt&amp;gt;Keys&amp;lt;/tt&amp;gt; which ranges from 1 to 7, covering CGA color indexes 1 to 7. Collecting the keys of these colors sets their equivalent boolean to &amp;quot;true&amp;quot;, which is indicated internally as &amp;lt;tt&amp;gt;01&amp;lt;/tt&amp;gt;; when used, they are set to false, or &amp;lt;tt&amp;gt;00&amp;lt;/tt&amp;gt;. When the engine attempts to access the entry of this array for color index 0, the color black, it adds &amp;lt;tt&amp;gt;01&amp;lt;/tt&amp;gt; in the byte prior to that of the Blue key, and in doing so goes out of bounds into the second byte of the gems counter, a 16-bit signed integer that thus uses the second byte to indicate units of 256. Because of this, the player&#039;s gems counter is increased by 256. The bug can be fixed by changing the &amp;lt;tt&amp;gt;Keys&amp;lt;/tt&amp;gt; array range from &amp;lt;tt&amp;gt;1..7&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;0..7&amp;lt;/tt&amp;gt;, but doing so will also change the world format, making all standard world files incompatible with the engine.&lt;br /&gt;
&lt;br /&gt;
Note that attempting to collect a black key while already having 256 or more gems will fail, as the would-be boolean will already be set to &amp;lt;tt&amp;gt;01&amp;lt;/tt&amp;gt; (or beyond).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Elements]]&lt;br /&gt;
{{ElementsNavbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Key&amp;diff=728</id>
		<title>Key</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Key&amp;diff=728"/>
		<updated>2025-12-26T15:57:57Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &amp;quot;Modern worlds&amp;quot;? No that&amp;#039;s been a thing since Caves.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Element&lt;br /&gt;
|zzt-oop name=key&lt;br /&gt;
|id={{Byte|8}}&lt;br /&gt;
|char={{CharSwatch|12}}&lt;br /&gt;
|category=item&lt;br /&gt;
|stats=no&lt;br /&gt;
|destructible=no&lt;br /&gt;
|effect on movement=pushable&lt;br /&gt;
|uses zzt-oop color=yes&lt;br /&gt;
}}&lt;br /&gt;
The &#039;&#039;&#039;key&#039;&#039;&#039; element is one of the built-in puzzle elements of [[ZZT]]. A key can be used to open a [[door]] of the corresponding color; together, they allow a designer to create a simple lock-and-key puzzle. When the [[player]] collects a key, the engine prints &amp;quot;You now have the X key.&amp;quot; where X is the key color, adds the key to the &amp;quot;Keys&amp;quot; counter on the HUD, and leaves an identically-colored [[empty]] where the key was. If the player already has a key of a certain color, the game prints &amp;quot;You already have a X key!&amp;quot; where X is the color, and prevents the player from collecting it. Ever since [[Caves of ZZT]], authors have exploited this attribute to create puzzles where the player is blocked by multiple keys of the same color and must find enough correctly-colored doors in order to consume each one.&amp;lt;ref&amp;gt;Sweeney, Tim. (1991) &#039;&#039;Caves of ZZT&#039;&#039;, board 34. [https://museumofzzt.com/file/view/zzt/?file=CAVES.ZZT&amp;amp;board=34 Museum of ZZT]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keys can be placed in any of the default colors recognized by [[ZZT-OOP]], as well as the darker colors enabled by external editors. The foreground color is used to determine what the color of the key is when it is collected. The engine treats the dark colors the same as the default bright colors when collected, with the side effect that a brown key will be treated and addressed as a yellow key when collected.&lt;br /&gt;
&lt;br /&gt;
Unlike other items, a key cannot be given directly to the player through ZZT-OOP; an [[object]] must first use [[Put|#put]], [[Change|#change]] or [[Become|#become]] to create a key for the player to collect.&lt;br /&gt;
&lt;br /&gt;
While keys are pushable, they cannot be pushed by a player since attempting to do so will collect them. However, a player can move them by pushing a [[boulder]] against them, or letting a [[pusher]] shove them.&lt;br /&gt;
&lt;br /&gt;
== Black keys ==&lt;br /&gt;
While keys can be placed in all of the available colors, black keys and dark-grey keys will have glitched behavior when collected:&lt;br /&gt;
# The engine will print a garbled mess in place of the key color that includes &amp;quot;Blue&amp;quot;, &amp;quot;Green&amp;quot;, &amp;quot;Cyan&amp;quot; and &amp;quot;Red&amp;quot;;&lt;br /&gt;
# The gems counter will be incremented by 256.&lt;br /&gt;
Both of these are out-of-bounds errors related to the arrays used for keys, as follows:&lt;br /&gt;
&lt;br /&gt;
=== Color naming ===&lt;br /&gt;
The color naming for pickup messages is handled by the &amp;lt;tt&amp;gt;ColorNames&amp;lt;/tt&amp;gt; array in GAME.PAS line 92, which has entries for color indexes 1 to 7 of the CGA color palette. This is an array of strings up to eight characters in length. When the engine attempts to access the color name for index 0, the color black, it attempts to access the entry prior to the first entry, &amp;lt;tt&amp;gt;Blue&amp;lt;/tt&amp;gt;, and goes out of bounds into where the preceding &amp;lt;tt&amp;gt;ProgressAnimStrings&amp;lt;/tt&amp;gt; array exists in memory. It then fails to detect when an entry ends, and prints as much of the succeeding portion of memory as it can fit in a message string after the initial &amp;quot;&amp;lt;tt&amp;gt;You now have the &amp;lt;/tt&amp;gt;&amp;quot;, producing the glitched message. When editing the engine, the bug can be fixed by changing the array range from &amp;lt;tt&amp;gt;1 .. 7&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;0 .. 7&amp;lt;/tt&amp;gt; and adding &amp;lt;tt&amp;gt;&#039;Black&#039;,&amp;lt;/tt&amp;gt; to the start of the array before &amp;lt;tt&amp;gt;&#039;Blue&#039;,&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Counters ===&lt;br /&gt;
The key counter in the world format is defined in GAMEVARS.PAS line 111, under &amp;lt;tt&amp;gt;TWorldInfo&amp;lt;/tt&amp;gt;, as a boolean array named &amp;lt;tt&amp;gt;Keys&amp;lt;/tt&amp;gt; which ranges from 1 to 7, covering CGA color indexes 1 to 7. Collecting the keys of these colors sets their equivalent boolean to &amp;quot;true&amp;quot;, which is indicated internally as &amp;lt;tt&amp;gt;01&amp;lt;/tt&amp;gt;; when used, they are set to false, or &amp;lt;tt&amp;gt;00&amp;lt;/tt&amp;gt;. When the engine attempts to access the entry of this array for color index 0, the color black, it adds &amp;lt;tt&amp;gt;01&amp;lt;/tt&amp;gt; in the byte prior to that of the Blue key, and in doing so goes out of bounds into the second byte of the gems counter, a 16-bit signed integer that thus uses the second byte to indicate units of 256. Because of this, the player&#039;s gems counter is increased by 256. The bug can be fixed by changing the &amp;lt;tt&amp;gt;Keys&amp;lt;/tt&amp;gt; array range from &amp;lt;tt&amp;gt;1..7&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;0..7&amp;lt;/tt&amp;gt;, but doing so will also change the world format, making all standard world files incompatible with the engine.&lt;br /&gt;
&lt;br /&gt;
Note that attempting to collect a black key while already having 256 or more gems will fail, as the would-be boolean will already be set to &amp;lt;tt&amp;gt;01&amp;lt;/tt&amp;gt; (or beyond).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Elements]]&lt;br /&gt;
{{ElementsNavbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Slider&amp;diff=727</id>
		<title>Slider</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Slider&amp;diff=727"/>
		<updated>2025-12-26T10:07:46Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Image with silly caption&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Element&lt;br /&gt;
|zzt-oop name=sliderns&lt;br /&gt;
|category=terrain&lt;br /&gt;
|id={{Byte|25}}&lt;br /&gt;
|char={{CharSwatch|18}}&lt;br /&gt;
|stats=no&lt;br /&gt;
|effect on movement=pushable (north and south)&lt;br /&gt;
|destructible=no&lt;br /&gt;
|uses zzt-oop color=yes&lt;br /&gt;
}}&lt;br /&gt;
{{Element&lt;br /&gt;
|zzt-oop name=sliderew&lt;br /&gt;
|category=terrain&lt;br /&gt;
|id={{Byte|26}}&lt;br /&gt;
|char={{CharSwatch|29}}&lt;br /&gt;
|stats=no&lt;br /&gt;
|effect on movement=pushable (east and west)&lt;br /&gt;
|destructible=no&lt;br /&gt;
|uses zzt-oop color=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[File:Slider-puzzle.png|left|thumb|A slider puzzle, ready to ruin an unlucky [[player|adventurer&#039;s]] day.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sliders&#039;&#039;&#039; are a [[pushable]] terrain elements that come in two varieties: the &#039;&#039;&#039;sliderns&#039;&#039;&#039; which can only be pushed north and south, and the &#039;&#039;&#039;sliderew&#039;&#039;&#039; which can only be pushed east and west.&lt;br /&gt;
&lt;br /&gt;
Sliders, along with [[boulder|boulders]] and [[pusher|pushers]], are essential elements of &amp;quot;slider puzzles&amp;quot;. However, they cannot be &#039;&#039;pulled&#039;&#039; by the player, meaning that it is easy for sliders to become stuck in a corner or against a wall. Sliders cannot be destroyed by the player, so a stuck slider in a game can often lead to a softlock.&lt;br /&gt;
&lt;br /&gt;
Sliders keep their background color when they move, although this is not noticeable unless STK colors are in use. This behavior disappears if the slider is given [[Stat|stats]].&lt;br /&gt;
&lt;br /&gt;
== Erasure of fake walls ==&lt;br /&gt;
Just like boulders, sliders leave [[empties]] behind them when they are moved. This can be an issue for games that use [[Fake|fake walls]] as floors, as pushing a slider across a colorful floor will erase a black trail across the floor. This erasing behavior happens because sliders lack stats by default, and thus lack a way to track their under tile. Other statless pushables ([[ammo]], [[gem|gems]], [[key|keys]], and [[boulder|boulders]]) also exhibit this erasing behavior, though it is most noticeable with boulders because boulders are more easily manipulated into areas of a board that have fake walls.&lt;br /&gt;
&lt;br /&gt;
This erasing behavior can be eliminated by giving the slider [[Stat|stats]], though the number of sliders that can be treated this way is limited by the board&#039;s stat limit.&lt;br /&gt;
&lt;br /&gt;
[[Category:Elements]]&lt;br /&gt;
{{ElementsNavbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Object&amp;diff=726</id>
		<title>Object</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Object&amp;diff=726"/>
		<updated>2025-12-26T09:57:36Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Element&lt;br /&gt;
|name=Object&lt;br /&gt;
|zzt-oop name=object&lt;br /&gt;
|category=creature&lt;br /&gt;
|id={{Byte|36}}&lt;br /&gt;
|color=&lt;br /&gt;
|char={{CharSwatch|1}}&lt;br /&gt;
|stats=yes&lt;br /&gt;
|x-y stey=Yes&lt;br /&gt;
|cycle=3&lt;br /&gt;
|p1=Character graphic&lt;br /&gt;
|p2=Message [[lock]]&lt;br /&gt;
|score=&lt;br /&gt;
|destructible=No&lt;br /&gt;
|effect on movement=Wall&lt;br /&gt;
|uses zzt-oop color=Yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objects&#039;&#039;&#039; are ZZT&#039;s general-purpose, customizable entity. While objects do nothing on their own, they can be programmed with [[ZZT-OOP]] to perform simple tasks such as moving, shooting and displaying text. It&#039;s possible to build more complex mechanisms using [[if|conditional statements]], [[label|label manipulation]] and [[send|object-to-object communication]].&lt;br /&gt;
&lt;br /&gt;
Every tick, objects execute ZZT-OOP code if applicable, and then move in whatever direction they happen to be [[walk|walking]] in.&lt;br /&gt;
&lt;br /&gt;
== Quirks ==&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Object Creation ===&lt;br /&gt;
&lt;br /&gt;
Objects created with ZZT-OOP (like executing &#039;&#039;&#039;#put [dir] object&#039;&#039;&#039; in the direction of an empty space) have no ZZT-OOP program and default to a blank graphic (char 1). Objects can be cloned with their state and program intact via [[duplicator|duplicators]].&lt;br /&gt;
&lt;br /&gt;
=== Changing an Object&#039;s Color ===&lt;br /&gt;
&lt;br /&gt;
Objects cannot change their own color, and &#039;&#039;&#039;#become [color] object&#039;&#039;&#039; will delete the object&#039;s ZZT-OOP program and assign it char 1. All objects of a given color on the board can be changed at the same time using &#039;&#039;&#039;#change [old_color] object [new_color] object&#039;&#039;&#039;. One object may &#039;&#039;&#039;#put [dir] [color] object&#039;&#039;&#039; in the direction of an existing object and change its color that way.&lt;br /&gt;
&lt;br /&gt;
=== Default Character ===&lt;br /&gt;
&lt;br /&gt;
Objects placed in the editor default to {{CharSwatch|1}}. Objects created by a [[put|#put]] statement default to {{CharSwatch|0}}. Statless objects display as {{CharSwatch|2}}.&lt;br /&gt;
&lt;br /&gt;
=== Gameplay ===&lt;br /&gt;
&lt;br /&gt;
* The [[player]] cannot shoot an object while standing directly next to it: there must be at least one space between them and the object. The reverse is &#039;&#039;not&#039;&#039; true for objects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elements]]&lt;br /&gt;
{{ElementsNavbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Conveyor&amp;diff=725</id>
		<title>Conveyor</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Conveyor&amp;diff=725"/>
		<updated>2025-12-26T09:01:51Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: /* Draw Procedure */ Clarification/correction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Element&lt;br /&gt;
|zzt-oop name=Clockwise&lt;br /&gt;
|id={{Byte|16}}&lt;br /&gt;
|char={{CharSwatch|47}}&lt;br /&gt;
|category=Item&lt;br /&gt;
|stats=yes&lt;br /&gt;
|cycle=3&lt;br /&gt;
|destructible=no&lt;br /&gt;
|effect on movement=Wall, Conveyance&lt;br /&gt;
|uses zzt-oop color=Yes&lt;br /&gt;
}}&lt;br /&gt;
{{Element&lt;br /&gt;
|zzt-oop name=Clockwise&lt;br /&gt;
|id={{Byte|17}}&lt;br /&gt;
|char={{CharSwatch|92}}&lt;br /&gt;
|category=Item&lt;br /&gt;
|stats=yes&lt;br /&gt;
|cycle=2&lt;br /&gt;
|destructible=no&lt;br /&gt;
|effect on movement=Wall, Conveyance&lt;br /&gt;
|uses zzt-oop color=Yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conveyors&#039;&#039;&#039;, referred to internally as &#039;&#039;&#039;clockwise&#039;&#039;&#039; and &#039;&#039;&#039;counter&#039;&#039;&#039;, are devices that move any pushable element in their 8 adjacent tiles around in a circle (with the direction depending on their type). Conveyors can be used to make one-way passages that object can still pass through, to make movement awkward, or for other purposes.&lt;br /&gt;
&lt;br /&gt;
Despite moving pushable objects, conveyors do not actually &#039;&#039;push&#039;&#039; them. This means, for instance, that if you have a line of boulders exiting a tunnel of conveyors, that the boulders will go no further than the farthest-most adjacent tile of the last conveyor. Conversely, this also means that it is possible for the player to push a row of boulders against the direction of conveyor movement (at least, until the player itself comes into contact with the conveyors).&lt;br /&gt;
&lt;br /&gt;
Conveyors do not work on on [[slider|sliders]].&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Conveyors have two main bugs. One is a visual glitch that prevents an element from being drawn under certain circumstances. Another is a glitch that can cause stats to swap order, which can even delete the player under certain circumstances (!!).&lt;br /&gt;
&lt;br /&gt;
A detailed explanation of these glitches can be found in this [https://zzt.org/fora/viewtopic.php?p=69328#p69328 forum post].&lt;br /&gt;
&lt;br /&gt;
TODO: Bring the information from that forum post over to this here wiki.&lt;br /&gt;
&lt;br /&gt;
== Draw Procedure ==&lt;br /&gt;
&lt;br /&gt;
Clockwise and counter-clockwise conveyors display the same sequence of characters, but in the opposite order:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Character !! CW !! CCW&lt;br /&gt;
|-&lt;br /&gt;
| {{CharSwatch|179}} || 0 || 3&lt;br /&gt;
|-&lt;br /&gt;
| {{CharSwatch|47}} || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
| {{CharSwatch|196}} || 2 || 1&lt;br /&gt;
|-&lt;br /&gt;
| {{CharSwatch|92}} || 3 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Conveyors are redrawn in their tick function, but their animation rate is tied to the default cycle value of their elements (either cycle 2 or cycle 3). This means that cycle 1 conveyors will not appear to move any faster, and that other non-standard cycle values might appear stuttery or skip animation frames.&lt;br /&gt;
&lt;br /&gt;
{{ElementsNavbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Clockwise&amp;diff=724</id>
		<title>Clockwise</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Clockwise&amp;diff=724"/>
		<updated>2025-12-26T09:00:29Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Redirected page to Conveyor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Conveyor]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Counter&amp;diff=722</id>
		<title>Counter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Counter&amp;diff=722"/>
		<updated>2025-12-26T08:25:39Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;&#039;&#039;This article is about numerical counters representing the player&#039;s state. For the element with the ZZT-OOP name &amp;quot;counter,&amp;quot; see [[conveyor]].&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A counter is a numeric value that can be manipulated in [[ZZT-OOP]] using the [[Give|#give]] and [[Take|#take]] commands.&lt;br /&gt;
&lt;br /&gt;
ZZT provides six counters:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;health&#039;&#039;&#039; - the [[player|player&#039;s]] health,&lt;br /&gt;
* &#039;&#039;&#039;ammo&#039;&#039;&#039; - the number of [[ammo|ammunition]] held by the player,&lt;br /&gt;
* &#039;&#039;&#039;gems&#039;&#039;&#039; - the number of [[gem|gems]] held by the player,&lt;br /&gt;
* &#039;&#039;&#039;torches&#039;&#039;&#039; - the number of [[torch|torches]] held by the player,&lt;br /&gt;
* &#039;&#039;&#039;score&#039;&#039;&#039; - the player&#039;s total score, &lt;br /&gt;
* &#039;&#039;&#039;time&#039;&#039;&#039; - the &#039;&#039;elapsed&#039;&#039; time on the [[board]], if the board has a time limit. Not used if the board does not have a time limit.&lt;br /&gt;
&lt;br /&gt;
Other than &#039;&#039;&#039;time&#039;&#039;&#039;, which is specific to the current board and reset on every entry, each counter&#039;s value is persistent throughout the entire [[world]].&lt;br /&gt;
&lt;br /&gt;
== Bugs/Quirks ==&lt;br /&gt;
&lt;br /&gt;
TODO: Document the consequences of the counter being a signed 16-bit value?&lt;br /&gt;
&lt;br /&gt;
{{ZZT-OOP navbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=High_score_files&amp;diff=721</id>
		<title>High score files</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=High_score_files&amp;diff=721"/>
		<updated>2025-12-26T03:52:05Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Redirected page to High scores&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[High scores]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=720</id>
		<title>High scores</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=720"/>
		<updated>2025-12-26T03:38:42Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: De-stubbified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZZT has the ability to save the &#039;&#039;&#039;high scores&#039;&#039;&#039; for worlds. The scores are stored in files named &amp;lt;code&amp;gt;[world name].HI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If a &amp;lt;code&amp;gt;.HI&amp;lt;/code&amp;gt; file exists, the high score list are loaded when a world is initially loaded. The list can be viewed by pressing &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt; on the [[title screen]].&lt;br /&gt;
&lt;br /&gt;
If the player gets a [[game over]], the player&#039;s [[score]] is greater than zero, and the player&#039;s score is not less than the 30th place score, then the player is given the chance to input their name. The text &amp;quot;-- You! --&amp;quot; is displayed on the line where the player&#039;s score is. If the player&#039;s score is tied with another, then the newer score takes precedence on the list.&lt;br /&gt;
&lt;br /&gt;
If a player opts not to enter a name for their high score, their high score is saved to the file regardless. However, since the high score window only displays scores with a name longer than zero characters the score will be effectively invisible, but it will still count against the 30 score limit. The score can still be seen by inspecting the file with a hex editor.&lt;br /&gt;
&lt;br /&gt;
High score files have no internal means of verifying they are associated with the correct world, nor any sort of anti-tampering measures.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
Each entry in the high score table has the following format:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x00||[[UINT8]]||&amp;lt;i&amp;gt;NameLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name entered for the high score.&lt;br /&gt;
|-&lt;br /&gt;
|1||0x01||[[char]][50]||&amp;lt;i&amp;gt;Name&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name associated with the high score. While the format allows 50 characters to be stored, a maximum of 34 characters may be input on the name entry screen. Due to the reserved space when displaying scores, names 37 or more characters will begin to print over the window&#039;s border and into the board area. Up to 43 characters will be drawn to the screen this way, with any additional characters remaining completely hidden.&lt;br /&gt;
|-&lt;br /&gt;
|51||0x33||[[INT16LE]]||&amp;lt;i&amp;gt;High Score&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;The numeric value of the high score.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This format of NameLength, Name, High Score repeats 30 times, from the highest score to the lowest. A proper high score file should be exactly 1590 bytes in size.&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=719</id>
		<title>High scores</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=719"/>
		<updated>2025-12-25T10:28:11Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Added category.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
High scores for a given world are stored in a file named &amp;lt;code&amp;gt;[world name].HI&amp;lt;/code&amp;gt;. Each entry in the high score table has the following format:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x00||[[UINT8]]||&amp;lt;i&amp;gt;NameLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name entered for the high score.&lt;br /&gt;
|-&lt;br /&gt;
|1||0x01||[[char]][50]||&amp;lt;i&amp;gt;Name&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name associated with the high score. While the format allows 50 characters to be stored, a maximum of 34 characters may be input on the name entry screen. Due to the reserved space when displaying scores, names 37 or more characters will begin to print over the window&#039;s border and into the board area. Up to 43 characters will be drawn to the screen this way, with any additional characters remaining completely hidden.&lt;br /&gt;
|-&lt;br /&gt;
|51||0x33||[[INT16LE]]||&amp;lt;i&amp;gt;High Score&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;The numeric value of the high score.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This format of NameLength, Name, High Score repeats 30 times, from the highest score to the lowest.&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Dr._Dos/ZZT_High_Score_Format&amp;diff=718</id>
		<title>Dr. Dos/ZZT High Score Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Dr._Dos/ZZT_High_Score_Format&amp;diff=718"/>
		<updated>2025-12-25T10:22:58Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: RT-55J moved page Dr. Dos/ZZT High Score Format to High scores&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[High scores]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=717</id>
		<title>High scores</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=717"/>
		<updated>2025-12-25T10:22:58Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: RT-55J moved page Dr. Dos/ZZT High Score Format to High scores&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== File Format ==&lt;br /&gt;
&lt;br /&gt;
Each high score entry has the following format.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x00||[[UINT8]]||&amp;lt;i&amp;gt;NameLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name entered for the high score.&lt;br /&gt;
|-&lt;br /&gt;
|1||0x01||[[char]][50]||&amp;lt;i&amp;gt;Name&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name associated with the high score. While the format allows 50 characters to be stored, a maximum of 34 characters may be input on the name entry screen. Due to the reserved space when displaying scores, names 37 or more characters will begin to print over the window&#039;s border and into the board area. Up to 43 characters will be drawn to the screen this way, with any additional characters remaining completely hidden.&lt;br /&gt;
|-&lt;br /&gt;
|51||0x33||[[INT16LE]]||&amp;lt;i&amp;gt;High Score&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;The numeric value of the high score.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This format of NameLength, Name, High Score repeats 30 times, from the highest score to the lowest.&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=User:Dr._Dos/ZZT_High_Score_Format&amp;diff=716</id>
		<title>User:Dr. Dos/ZZT High Score Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=User:Dr._Dos/ZZT_High_Score_Format&amp;diff=716"/>
		<updated>2025-12-25T10:22:41Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: RT-55J moved page User:Dr. Dos/ZZT High Score Format to Dr. Dos/ZZT High Score Format: High scores&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dr. Dos/ZZT High Score Format]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=715</id>
		<title>High scores</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=715"/>
		<updated>2025-12-25T10:22:41Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: RT-55J moved page User:Dr. Dos/ZZT High Score Format to Dr. Dos/ZZT High Score Format: High scores&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== File Format ==&lt;br /&gt;
&lt;br /&gt;
Each high score entry has the following format.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x00||[[UINT8]]||&amp;lt;i&amp;gt;NameLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name entered for the high score.&lt;br /&gt;
|-&lt;br /&gt;
|1||0x01||[[char]][50]||&amp;lt;i&amp;gt;Name&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name associated with the high score. While the format allows 50 characters to be stored, a maximum of 34 characters may be input on the name entry screen. Due to the reserved space when displaying scores, names 37 or more characters will begin to print over the window&#039;s border and into the board area. Up to 43 characters will be drawn to the screen this way, with any additional characters remaining completely hidden.&lt;br /&gt;
|-&lt;br /&gt;
|51||0x33||[[INT16LE]]||&amp;lt;i&amp;gt;High Score&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;The numeric value of the high score.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This format of NameLength, Name, High Score repeats 30 times, from the highest score to the lowest.&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=714</id>
		<title>High scores</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=High_scores&amp;diff=714"/>
		<updated>2025-12-25T10:22:05Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== File Format ==&lt;br /&gt;
&lt;br /&gt;
Each high score entry has the following format.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x00||[[UINT8]]||&amp;lt;i&amp;gt;NameLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name entered for the high score.&lt;br /&gt;
|-&lt;br /&gt;
|1||0x01||[[char]][50]||&amp;lt;i&amp;gt;Name&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name associated with the high score. While the format allows 50 characters to be stored, a maximum of 34 characters may be input on the name entry screen. Due to the reserved space when displaying scores, names 37 or more characters will begin to print over the window&#039;s border and into the board area. Up to 43 characters will be drawn to the screen this way, with any additional characters remaining completely hidden.&lt;br /&gt;
|-&lt;br /&gt;
|51||0x33||[[INT16LE]]||&amp;lt;i&amp;gt;High Score&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;The numeric value of the high score.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This format of NameLength, Name, High Score repeats 30 times, from the highest score to the lowest.&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=ZZT_file_format&amp;diff=713</id>
		<title>ZZT file format</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=ZZT_file_format&amp;diff=713"/>
		<updated>2025-12-25T10:02:21Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Info ==&lt;br /&gt;
&lt;br /&gt;
All 8-bit (byte) values are unsigned. All 16-bit (short) values are signed. Boolean values (such as a player&#039;s keys) are represented with 0 for false and 1 for true.&lt;br /&gt;
&lt;br /&gt;
World Name is used by the game both on the title screen to display the game name as well as determine which file to load after the player quits and restarts the game. Therefore if a world contains a world name that is actually the filename of another world, after the player quits and restarts the game, the world with the matching filename will be loaded.&lt;br /&gt;
&lt;br /&gt;
There are some unused bytes after the world information that are ignored by the game. While it is safe to put any data whatsoever into this unused space, it is not saved back to disk by the ZZT and will be converted to empty padding. &lt;br /&gt;
&lt;br /&gt;
=== World Header ===&lt;br /&gt;
&lt;br /&gt;
This header is found at the head of all ZZT files. After this information, storage of the boards starts at byte offset 512 (hex 0x200).&lt;br /&gt;
&lt;br /&gt;
Unused values are preserved. Data not listed here is overwritten with zeroes when saving worlds.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x000||[[INT16LE]]||&amp;lt;i&amp;gt;WorldType&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Used to identify the world&#039;s format. ZZT uses -1 (FF FF).&lt;br /&gt;
|-&lt;br /&gt;
|2||0x002||[[INT16LE]]||&amp;lt;i&amp;gt;NumBoards&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Number of boards in the world, not including the title screen. Increment by 1 for the real number of stored boards. A value of 0 means only the title screen exists.&lt;br /&gt;
|-&lt;br /&gt;
|4||0x004||[[INT16LE]]||&amp;lt;i&amp;gt;PlayerAmmo&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Player&#039;s ammunition.&lt;br /&gt;
|-&lt;br /&gt;
|6||0x006||[[INT16LE]]||&amp;lt;i&amp;gt;PlayerGems&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Player&#039;s gems.&lt;br /&gt;
|-&lt;br /&gt;
|8||0x008||[[char]][7]||&amp;lt;i&amp;gt;PlayerKeys&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Player&#039;s keys. A nonzero value means the player has the specified key. The keys are in this order: Blue, Green, Cyan, Red, Purple, Yellow, White.&lt;br /&gt;
|-&lt;br /&gt;
|15||0x00F||[[INT16LE]]||&amp;lt;i&amp;gt;PlayerHealth&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Player&#039;s health.&lt;br /&gt;
|-&lt;br /&gt;
|17||0x011||[[INT16LE]]||&amp;lt;i&amp;gt;PlayerBoard&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;In a world file, this will be the starting board for the player (the title screen, board 0, is always shown first). In a saved game, this will be the board that the player is currently on.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|19||0x013||[[INT16LE]]||&amp;lt;i&amp;gt;PlayerTorches&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Player&#039;s torches.&lt;br /&gt;
|-&lt;br /&gt;
|21||0x015||[[INT16LE]]||&amp;lt;i&amp;gt;TorchCycles&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Game cycles left for a torch to remain lit.&lt;br /&gt;
|-&lt;br /&gt;
|23||0x017||[[INT16LE]]||&amp;lt;i&amp;gt;EnergyCycles&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Game cycles left for an energizer to be effective.&lt;br /&gt;
|-&lt;br /&gt;
|25||0x019||[[INT16LE]]||&amp;lt;i&amp;gt;(unused)&amp;lt;/i&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|27||0x01B||[[INT16LE]]||&amp;lt;i&amp;gt;PlayerScore&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Player&#039;s score.&lt;br /&gt;
|-&lt;br /&gt;
|29||0x01D||[[UINT8]]||&amp;lt;i&amp;gt;WorldNameLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the internal name of the world.&lt;br /&gt;
|-&lt;br /&gt;
|30||0x01E||[[char]][20]||&amp;lt;i&amp;gt;WorldName&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Internal name of the world.&lt;br /&gt;
|-&lt;br /&gt;
|50||0x032||[[UINT8]]||&amp;lt;i&amp;gt;Flag0Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 0.&lt;br /&gt;
|-&lt;br /&gt;
|51||0x033||[[char]][20]||&amp;lt;i&amp;gt;Flag0&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 0.&lt;br /&gt;
|-&lt;br /&gt;
|71||0x047||[[UINT8]]||&amp;lt;i&amp;gt;Flag1Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 1.&lt;br /&gt;
|-&lt;br /&gt;
|72||0x048||[[char]][20]||&amp;lt;i&amp;gt;Flag1&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 1.&lt;br /&gt;
|-&lt;br /&gt;
|92||0x05C||[[UINT8]]||&amp;lt;i&amp;gt;Flag2Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 2.&lt;br /&gt;
|-&lt;br /&gt;
|93||0x05D||[[char]][20]||&amp;lt;i&amp;gt;Flag2&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 2.&lt;br /&gt;
|-&lt;br /&gt;
|113||0x071||[[UINT8]]||&amp;lt;i&amp;gt;Flag3Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 3.&lt;br /&gt;
|-&lt;br /&gt;
|114||0x072||[[char]][20]||&amp;lt;i&amp;gt;Flag3&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 3.&lt;br /&gt;
|-&lt;br /&gt;
|134||0x086||[[UINT8]]||&amp;lt;i&amp;gt;Flag4Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 4.&lt;br /&gt;
|-&lt;br /&gt;
|135||0x087||[[char]][20]||&amp;lt;i&amp;gt;Flag4&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 4.&lt;br /&gt;
|-&lt;br /&gt;
|155||0x09B||[[UINT8]]||&amp;lt;i&amp;gt;Flag5Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 5.&lt;br /&gt;
|-&lt;br /&gt;
|156||0x09C||[[char]][20]||&amp;lt;i&amp;gt;Flag5&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 5.&lt;br /&gt;
|-&lt;br /&gt;
|176||0x0B0||[[UINT8]]||&amp;lt;i&amp;gt;Flag6Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 6.&lt;br /&gt;
|-&lt;br /&gt;
|177||0x0B1||[[char]][20]||&amp;lt;i&amp;gt;Flag6&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 6.&lt;br /&gt;
|-&lt;br /&gt;
|197||0x0C5||[[UINT8]]||&amp;lt;i&amp;gt;Flag7Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 7.&lt;br /&gt;
|-&lt;br /&gt;
|198||0x0C6||[[char]][20]||&amp;lt;i&amp;gt;Flag7&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 7.&lt;br /&gt;
|-&lt;br /&gt;
|218||0x0DA||[[UINT8]]||&amp;lt;i&amp;gt;Flag8Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 8.&lt;br /&gt;
|-&lt;br /&gt;
|219||0x0DB||[[char]][20]||&amp;lt;i&amp;gt;Flag8&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 8.&lt;br /&gt;
|-&lt;br /&gt;
|239||0x0EF||[[UINT8]]||&amp;lt;i&amp;gt;Flag9Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the name of Flag 9.&lt;br /&gt;
|-&lt;br /&gt;
|240||0x0F0||[[char]][20]||&amp;lt;i&amp;gt;Flag9&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Name of Flag 9.&lt;br /&gt;
|-&lt;br /&gt;
|260||0x104||[[INT16LE]]||&amp;lt;i&amp;gt;TimePassed&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Amount of time in seconds that has passed on the current board. Only applicable if the board the player is on has a time limit.&lt;br /&gt;
|-&lt;br /&gt;
|262||0x106||[[INT16LE]]||&amp;lt;i&amp;gt;TimePassedTicks&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;This contains information about sub-seconds on time limited boards.&lt;br /&gt;
|-&lt;br /&gt;
|264||0x108||[[UINT8]]||&amp;lt;i&amp;gt;Locked&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;A nonzero value indicates the world is actually a saved game. Additionally, worlds with a nonzero Locked byte can&#039;t be edited using the built-in editor.&lt;br /&gt;
|-&lt;br /&gt;
|265||0x109||[[UINT8]][14]||&amp;lt;i&amp;gt;(unused)&amp;lt;/i&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After this follows the boards. Boards consist of 4 parts: Board Header, RLE Tiles, Board Properties, and Status Element Properties. Status Elements are elements on the board that the game actively processes - these include the player, enemies, any animating blocks, and Scrolls and Objects which can contain ZZT-OOP code.&lt;br /&gt;
&lt;br /&gt;
=== Board header ===&lt;br /&gt;
&lt;br /&gt;
ZZT boards are 60x25 tiles.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x000||[[INT16LE]]||&amp;lt;i&amp;gt;BoardSize&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Size of the board, in bytes (excluding the two bytes from this value). Even if the board was corrupted by the built-in editor (which happens sometimes) this value will be correct; the rest of the boards remain intact and in place.&lt;br /&gt;
|-&lt;br /&gt;
|2||0x002||[[UINT8]]||&amp;lt;i&amp;gt;BoardNameLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the board&#039;s name.&lt;br /&gt;
|-&lt;br /&gt;
|3||0x003||[[char]][50]||&amp;lt;i&amp;gt;BoardName&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Board&#039;s name.&lt;br /&gt;
|-&lt;br /&gt;
|53||0x035||[[#Run-length encoded tile data|ZZT_RLE]]||&amp;lt;i&amp;gt;Tiles&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Start of the RLE tile data.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Run-length encoded tile data ===&lt;br /&gt;
&lt;br /&gt;
Tile data is represented as sets of 3 bytes. These sets are repeated until the board is completely filled. For ZZT, this will be 60*25=&amp;lt;b&amp;gt;1500&amp;lt;/b&amp;gt; tiles. The tiles are unpacked from left to right, top to bottom. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|[[UINT8]]||&amp;lt;i&amp;gt;Count&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Number of tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[UINT8]]||&amp;lt;i&amp;gt;Element&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Element of the tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[UINT8]]||&amp;lt;i&amp;gt;Color&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Color of the tiles.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A small quirk of this RLE format is when the number of tiles is set to zero. Due to the way the decoder is set up, a Count of 0 means there are actually 256 tiles encoded. The built-in editor does not encode tiles using this value despite being decoded correctly in the game, and it will probably crash some older external editors.&lt;br /&gt;
&lt;br /&gt;
=== Board properties ===&lt;br /&gt;
&lt;br /&gt;
This information follows directly after the tile RLE data.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x000||[[UINT8]]||&amp;lt;i&amp;gt;MaxPlayerShots&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Maximum number of player-owned projectiles allowed at once.&lt;br /&gt;
|-&lt;br /&gt;
|1||0x001||[[UINT8]]||&amp;lt;i&amp;gt;IsDark&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;When set to 1, the board is covered in darkness which can only be revealed by using a torch.&lt;br /&gt;
|-&lt;br /&gt;
|2||0x002||[[UINT8]]||&amp;lt;i&amp;gt;ExitNorth&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Board # that is traveled to when moving off the North side of the board.&lt;br /&gt;
|-&lt;br /&gt;
|3||0x003||[[UINT8]]||&amp;lt;i&amp;gt;ExitSouth&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Board # that is traveled to when moving off the South side of the board.&lt;br /&gt;
|-&lt;br /&gt;
|4||0x004||[[UINT8]]||&amp;lt;i&amp;gt;ExitWest&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Board # that is traveled to when moving off the West side of the board.&lt;br /&gt;
|-&lt;br /&gt;
|5||0x005||[[UINT8]]||&amp;lt;i&amp;gt;ExitEast&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Board # that is traveled to when moving off the East side of the board.&lt;br /&gt;
|-&lt;br /&gt;
|6||0x006||[[UINT8]]||&amp;lt;i&amp;gt;RestartOnZap&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;When set to 1, the player will teleport to the location where they entered the board whenever they are hurt.&lt;br /&gt;
|-&lt;br /&gt;
|7||0x007||[[UINT8]]||&amp;lt;i&amp;gt;MessageLength&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Length of the on-screen message.&lt;br /&gt;
|-&lt;br /&gt;
|8||0x008||[[char]][58]||&amp;lt;i&amp;gt;Message&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;On-screen message. This is used internally and is not loaded by the game.&lt;br /&gt;
|-&lt;br /&gt;
|66||0x042||[[UINT8]]||&amp;lt;i&amp;gt;PlayerEnterX&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;X-coordinate of the tile where the player entered the board.&lt;br /&gt;
|-&lt;br /&gt;
|67||0x043||[[UINT8]]||&amp;lt;i&amp;gt;PlayerEnterY&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Y-coordinate of the tile where the player entered the board.&lt;br /&gt;
|-&lt;br /&gt;
|68||0x044||[[INT16LE]]||&amp;lt;i&amp;gt;TimeLimit&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Time limit of the board, in seconds. The player is hurt when time runs out.&lt;br /&gt;
|-&lt;br /&gt;
|70||0x046||[[UINT8]][16]||&amp;lt;i&amp;gt;(unused)&amp;lt;/i&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|86||0x056||[[INT16LE]]||&amp;lt;i&amp;gt;StatElementCount&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Number of Status Elements on the board, not including the player. Increment by 1 to get the real stored number of status elements.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Status Elements ===&lt;br /&gt;
&lt;br /&gt;
This follows directly after board properties. It is repeated for each Status Element. The first element stored is always the player-controlled element. This element may contain strange values for Step, Leader, Follower, and Parameter information, especially in older worlds / the commercial+shareware worlds.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Hex!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||0x000||[[UINT8]]||&amp;lt;i&amp;gt;LocationX&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;X-coordinate. Location coordinates are 1-based, unlike any other coordinates in the file.&lt;br /&gt;
|-&lt;br /&gt;
|1||0x001||[[UINT8]]||&amp;lt;i&amp;gt;LocationY&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Y-coordinate.&lt;br /&gt;
|-&lt;br /&gt;
|2||0x002||[[INT16LE]]||&amp;lt;i&amp;gt;StepX&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;X-step value. This pair of values represents a vector that typically points in one of the four cardinal directions. Its use differs for each type of element.&lt;br /&gt;
|-&lt;br /&gt;
|4||0x004||[[INT16LE]]||&amp;lt;i&amp;gt;StepY&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Y-step value.&lt;br /&gt;
|-&lt;br /&gt;
|6||0x006||[[INT16LE]]||&amp;lt;i&amp;gt;Cycle&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Cycle. This represents the frequency, in ticks, at which the game will process this status element.&lt;br /&gt;
|-&lt;br /&gt;
|8||0x008||[[UINT8]]||&amp;lt;i&amp;gt;P1&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Parameter 1. Its use will differ depending on the type of element.&lt;br /&gt;
|-&lt;br /&gt;
|9||0x009||[[UINT8]]||&amp;lt;i&amp;gt;P2&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Parameter 2. Its use will differ depending on the type of element.&lt;br /&gt;
|-&lt;br /&gt;
|10||0x00A||[[UINT8]]||&amp;lt;i&amp;gt;P3&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Parameter 3. Its use will differ depending on the type of element.&lt;br /&gt;
|-&lt;br /&gt;
|11||0x00B||[[INT16LE]]||&amp;lt;i&amp;gt;Follower&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Follower status element. Its value determines if another status element is linked behind this one. Used for linking centipedes.&lt;br /&gt;
|-&lt;br /&gt;
|13||0x00D||[[INT16LE]]||&amp;lt;i&amp;gt;Leader&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Leader status element. Its value determines if another status element is linked in front of this one. Used for linking centipedes.&lt;br /&gt;
|-&lt;br /&gt;
|15||0x00F||[[UINT8]]||&amp;lt;i&amp;gt;UnderID&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Element of the tile under this status element.&lt;br /&gt;
|-&lt;br /&gt;
|16||0x010||[[UINT8]]||&amp;lt;i&amp;gt;UnderColor&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Color of the tile under this status element.&lt;br /&gt;
|-&lt;br /&gt;
|17||0x011||[[INT32LE]]||&amp;lt;i&amp;gt;Pointer&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Stores the location in memory of the code that this status element is using. Status elements typically point to their own code until they #BIND the code of another - in which case this memory location value is replaced with the new one. ZZT does not use this value when loading worlds, and always sets it to 0 when saving worlds.&lt;br /&gt;
|-&lt;br /&gt;
|21||0x015||[[INT16LE]]||&amp;lt;i&amp;gt;CurrentInstruction&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;The offset in bytes of the code block to execute ZZT-OOP from. Only Objects and Scrolls can execute ZZT-OOP.&lt;br /&gt;
|-&lt;br /&gt;
|23||0x017||[[INT16LE]]||&amp;lt;i&amp;gt;Length&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;There are two uses for this value: If this value is positive, it represents the number of bytes that are in the code block. If this value is negative, the absolute value of this value represents the Status Element number to copy code from. This saves space by removing redundant code duplication. Since code is shared in this way, all modifications to code will affect any other Status Elements using it.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After this follows 8 bytes of padding (2 unused pointers).  If &amp;quot;Length&amp;quot; is positive, the code is stored after the padding.&lt;br /&gt;
&lt;br /&gt;
=== Element properties ===&lt;br /&gt;
&lt;br /&gt;
These are all possible internal properties for each element.  They are initialized on startup and used both in-game and in the editor.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Id||Id number of the element&lt;br /&gt;
|-&lt;br /&gt;
|Hex||Hexidecimal representation of the Id number&lt;br /&gt;
|-&lt;br /&gt;
|Name||Known name of the element, which may not be present internally&lt;br /&gt;
|-&lt;br /&gt;
|Character||ASCII character for the default draw code, which may be ignored if special draw code is enabled&lt;br /&gt;
|-&lt;br /&gt;
|Color||Default color. If the color is 0xFE, then new tiles will be created with the primary color as the background and a white foreground. If the color is &amp;gt;= 0xF0, any primary color is allowed, but in the editor you can&#039;t choose the color unless the default color is 0xFF&lt;br /&gt;
|-&lt;br /&gt;
|Destructible||Element can be destroyed by bullets and by being crushed by puzzle pieces&lt;br /&gt;
|-&lt;br /&gt;
|Pushable||Element can be pushed. The NS/EW sliders are a special case in the code, so they will not be marked with this flag&lt;br /&gt;
|-&lt;br /&gt;
|Editor Floor||When using the editor, actors such as enemies can be placed on top of elements marked with this flag. Has no effect during gameplay.&lt;br /&gt;
|-&lt;br /&gt;
|Floor||Elements with this flag can freely be moved upon by actors&lt;br /&gt;
|-&lt;br /&gt;
|Shown||ZZT only. Elements marked with this flag will always be shown, even on dark boards&lt;br /&gt;
|-&lt;br /&gt;
|Special Draw||If this flag is set, the default draw code is bypassed with different draw code&lt;br /&gt;
|-&lt;br /&gt;
|Draw Code||Offset of the routine that performs the drawing, if Special Draw is set&lt;br /&gt;
|-&lt;br /&gt;
|Cycle||Default cycle. If this is -1, the element is not generated as an actor. Creatures will have cycles above zero&lt;br /&gt;
|-&lt;br /&gt;
|Act Code||Offset of the routine that performs standard behavior. For example: creature movement, bomb countdown&lt;br /&gt;
|-&lt;br /&gt;
|Interact Code||Offset of the routine that handles when a player touches the element. For example: item pickups, entering a passage&lt;br /&gt;
|-&lt;br /&gt;
|Menu#||Number of the editor menu where this element can be found&lt;br /&gt;
|-&lt;br /&gt;
|Key||Key press which is mapped to this element in the editor&lt;br /&gt;
|-&lt;br /&gt;
|Internal Name||Name of the element used in the editor. It is also used by OOP- the parser will remove all symbols and spaces and compare that&lt;br /&gt;
|-&lt;br /&gt;
|Category||When it comes time to display this element in the editor, if present, the category will be drawn in yellow first.&lt;br /&gt;
|-&lt;br /&gt;
|Edit P1||Text to show when editing the P1 of an actor that uses this element&lt;br /&gt;
|-&lt;br /&gt;
|Edit P2||Text to show when editing the P2 of an actor that uses this element&lt;br /&gt;
|-&lt;br /&gt;
|Edit P3||Text to show when editing the P3 of an actor that uses this element&lt;br /&gt;
|-&lt;br /&gt;
|Edit Board||Text to show when selecting the target board&lt;br /&gt;
|-&lt;br /&gt;
|Edit Step||Text to show when selecting the target direction&lt;br /&gt;
|-&lt;br /&gt;
|Edit Code||Text to show when editing an actor&#039;s code (scroll or object OOP)&lt;br /&gt;
|-&lt;br /&gt;
|Points||When an actor using this element is killed by the player, it&#039;s worth this much score&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ZZT elements===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Id!!Hex!!Name!!Character!!Color!!Destructible!!Pushable!!Editor Floor!!Floor!!Shown!!Special Draw!!Draw Code!!Cycle!!Act Code!!Interact Code!!Menu#!!Key!!Internal Name!!Category!!Edit P1!!Edit P2!!Edit P3!!Edit Board!!Edit Step!!Edit Code!!Points&lt;br /&gt;
|-&lt;br /&gt;
|0||0x00||Empty||0x20||0x70|| ||Yes|| ||Yes|| || ||0x0020||-1||0x0000||0x0010||0|| ||Empty|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|1||0x01||Board Edge||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x3973||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|2||0x02||Messenger||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0039||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|3||0x03||Monitor||0x20||0x07|| || || || || || ||0x0020||1||0x4481||0x0010||0|| ||Monitor|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|4||0x04||Player||0x02||0x1F||Yes||Yes|| || ||Yes|| ||0x0020||1||0x3E2F||0x0010||1||Z||Player||Items:|| || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|5||0x05||Ammo||0x84||0x03|| ||Yes|| || || || ||0x0020||-1||0x0000||0x3289||1||A||Ammo|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|6||0x06||Torch||0x9D||0x06|| || || || ||Yes|| ||0x0020||-1||0x0000||0x37B6||1||T||Torch|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|7||0x07||Gem||0x04||Any (0xFF)||Yes||Yes|| || || || ||0x0020||-1||0x0000||0x3306||1||G||Gem|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|8||0x08||Key||0x0C||Any (0xFF)|| ||Yes|| || || || ||0x0020||-1||0x0000||0x3169||1||K||Key|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|9||0x09||Door||0x0A||Any BG (0xFE)|| || || || || || ||0x0020||-1||0x0000||0x33DA||1||D||Door|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|10||0x0A||Scroll||0xE8||0x0F|| ||Yes|| || || || ||0x0020||1||0x2F9F||0x308B||1||S||Scroll|| || || || || || ||Edit text of scroll||0&lt;br /&gt;
|-&lt;br /&gt;
|11||0x0B||Passage||0xF0||Any BG (0xFE)|| || || || ||Yes|| ||0x0020||0||0x0000||0x3372||1||P||Passage|| || || || ||Room thru passage?|| || ||0&lt;br /&gt;
|-&lt;br /&gt;
|12||0x0C||Duplicator||0xFA||0x0F|| || || || || ||Yes||0x2A15||2||0x2BFF||0x0010||1||U||Duplicator|| || ||Duplication rate?;SF|| || ||Source direction?|| ||0&lt;br /&gt;
|-&lt;br /&gt;
|13||0x0D||Bomb||0x0B||Any (0xFF)|| ||Yes|| || || ||Yes||0x1872||6||0x18DA||0x19F3||1||B||Bomb|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|14||0x0E||Energizer||0x7F||0x05|| || || || || || ||0x0020||-1||0x0000||0x2034||1||E||Energizer|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|15||0x0F||Star||0x53||0x0F|| || || || || ||Yes||0x1D5D||1||0x1DE9||0x00F5||0|| ||Star|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|16||0x10||Clockwise||0x2F||Any (0xFF)|| || || || || ||Yes||0x171C||3||0x176C||0x0010||1||1||Clockwise||Conveyors:|| || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|17||0x11||Counter||0x5C||Any (0xFF)|| || || || || ||Yes||0x17C7||2||0x1817||0x0010||1||2||Counter|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|18||0x12||Bullet||0xF8||0x0F||Yes|| || || || || ||0x0020||1||0x0F65||0x00F5||0|| ||Bullet|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|19||0x13||Water||0xB0||0xF9|| || ||Yes|| || || ||0x0020||-1||0x0000||0x3B03||3||W||Water||Terrains:|| || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|20||0x14||Forest||0xB0||0x20|| || || || || || ||0x0020||-1||0x0000||0x38D0||3||F||Forest|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|21||0x15||Solid||0xDB||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||3||S||Solid||Walls:|| || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|22||0x16||Normal||0xB2||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||3||N||Normal|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|23||0x17||Breakable||0xB1||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||3||B||Breakable|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|24||0x18||Boulder||0xFE||Any (0xFF)|| ||Yes|| || || || ||0x0020||-1||0x0000||0x34E3||3||O||Boulder|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|25||0x19||Slider (NS)||0x12||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x34E3||3||1||Slider (NS)|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|26||0x1A||Slider (EW)||0x1D||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x34E3||3||2||Slider (EW)|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|27||0x1B||Fake||0xB2||Any (0xFF)|| || ||Yes||Yes|| || ||0x0020||-1||0x0000||0x3949||3||A||Fake|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|28||0x1C||Invisible||0xB0||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x3848||3||I||Invisible|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|29||0x1D||Blink wall||0xCE||Any (0xFF)|| || || || || ||Yes||0x242E||1||0x2445||0x0010||3||L||Blink wall|| ||Starting time||Period|| || ||Wall direction|| ||0&lt;br /&gt;
|-&lt;br /&gt;
|30||0x1E||Transporter||0xC5||Any (0xFF)|| || || || || ||Yes||0x1CC5||2||0x1C85||0x1C41||3||T||Transporter|| || || || || ||Direction?|| ||0&lt;br /&gt;
|-&lt;br /&gt;
|31||0x1F||Line||0xCE||Any (0xFF)|| || || || || ||Yes||0x122A||-1||0x0000||0x0010||0|| ||Line|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|32||0x20||Ricochet||0x2A||0x0A|| || || || || || ||0x0020||-1||0x0000||0x0010||3||R||Ricochet|| || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|33||0x21||Blink Ray (Horizontal)||0xCD||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|34||0x22||Bear||0x99||0x06||Yes||Yes|| || || || ||0x0020||3||0x054F||0x00F5||2||B||Bear||Creatures:||Sensitivity?|| || || || || ||1&lt;br /&gt;
|-&lt;br /&gt;
|35||0x23||Ruffian||0x05||0x0D||Yes||Yes|| || || || ||0x0020||1||0x0351||0x00F5||2||R||Ruffian|| ||Intelligence?||Resting time?|| || || || ||2&lt;br /&gt;
|-&lt;br /&gt;
|36||0x24||Object||0x02||Any (0xFF)|| || || || || ||Yes||0x2B85||3||0x2AA5||0x2BB7||2||O||Object|| ||Character?|| || || || ||Edit Program||0&lt;br /&gt;
|-&lt;br /&gt;
|37||0x25||Slime||0x2A||Any (0xFF)|| || || || || || ||0x0020||3||0x20AE||0x2295||2||V||Slime|| || ||Movement speed?;FS|| || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|38||0x26||Shark||0x5E||0x07|| || || || || || ||0x0020||3||0x2321||0x0010||2||Y||Shark|| ||Intelligence?|| || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|39||0x27||Spinning gun||0x18||Any (0xFF)|| || || || || ||Yes||0x11D0||2||0x12A7||0x0010||2||G||Spinning gun|| ||Intelligence?||Firing rate?||Firing type?|| || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|40||0x28||Pusher||0x10||Any (0xFF)|| || || || || ||Yes||0x3517||4||0x358A||0x0010||2||P||Pusher|| || || || || ||Push direction?|| ||0&lt;br /&gt;
|-&lt;br /&gt;
|41||0x29||Lion||0xEA||0x0C||Yes||Yes|| || || || ||0x0020||2||0x0113||0x00F5||2||L||Lion||Beasts:||Intelligence?|| || || || || ||1&lt;br /&gt;
|-&lt;br /&gt;
|42||0x2A||Tiger||0xE3||0x0B||Yes||Yes|| || || || ||0x0020||2||0x022D||0x00F5||2||T||Tiger|| ||Intelligence?||Firing rate?||Firing type?|| || || ||2&lt;br /&gt;
|-&lt;br /&gt;
|43||0x2B||Blink Ray (Vertical)||0xBA||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|44||0x2C||Head||0xE9||Any (0xFF)||Yes|| || || || || ||0x0020||2||0x06BF||0x00F5||2||H||Head||Centipedes||Intelligence?||Deviance?|| || || || ||1&lt;br /&gt;
|-&lt;br /&gt;
|45||0x2D||Segment||0x4F||Any (0xFF)||Yes|| || || || || ||0x0020||2||0x0EED||0x00F5||2||S||Segment|| || || || || || || ||3&lt;br /&gt;
|-&lt;br /&gt;
|46||0x2E|| ||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|47||0x2F||Text (Blue)||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|48||0x30||Text (Green)||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|49||0x31||Text (Cyan)||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|50||0x32||Text (Red)||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|51||0x33||Text (Purple)||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|52||0x34||Text (Brown)||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|53||0x35||Text (Black)||0x20||Any (0xFF)|| || || || || || ||0x0020||-1||0x0000||0x0010||0|| || || || || || || || || ||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
The ZZT file format was reverse engineered by SaxxonPike, Kev Vance and David Hammond.&lt;br /&gt;
&lt;br /&gt;
This article is based on content written by SaxxonPike as part of [https://moddingwiki.shikadi.net/wiki/ZZT_Format a corresponding article on the ModdingWiki]. Saxxon has given permission to license their edits to that article under CC BY-SA 4.0.&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=ZZT&amp;diff=704</id>
		<title>ZZT</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=ZZT&amp;diff=704"/>
		<updated>2025-12-25T03:41:24Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ZZT&#039;&#039;&#039; is an action-adventure video game released by [[Tim Sweeney]] under [[Potomac Computer Systems]] (later [[Epic MegaGames]]) on January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;&amp;gt;Sweeney, Tim. &amp;quot;ZZT Newsletter, Volume 1, Number 1, January-July 1991&amp;quot;.&amp;lt;/ref&amp;gt;. It received multiple official updates, the final one being [[ZZT 3.2]], as well as a sequel - [[Super ZZT]].&lt;br /&gt;
&lt;br /&gt;
ZZT was originally distributed in a shareware model, with the first game world in the official series, [[Town of ZZT]], being available without charge, and additional game worlds ([[Caves of ZZT]], [[Dungeons of ZZT]], [[City of ZZT]]) purchasable via mail order. On October 10th, 1997&amp;lt;ref name=&amp;quot;EpicWhatsNew1998&amp;quot;&amp;gt;[https://web.archive.org/web/19980214165401/http://www.epicgames.com:80/whatsnew.htm News Update] on epicgames.com as of February 14th, 1998.&amp;lt;/ref&amp;gt;, the full version of ZZT was made available at no cost, albeit without the source code due to it being lost in a system failure&amp;lt;ref name=&amp;quot;EpicZZT1998&amp;quot;&amp;gt;[https://web.archive.org/web/19980214170034/http://www.epicgames.com/zzt.htm ZZT] on epicgames.com as of February 14th, 1998.&amp;lt;/ref&amp;gt;.  On March 15th, 2020, the release of the [[Reconstruction of ZZT]] effectively made the ZZT game engine, as well as its documentation and reverse-engineered binary-equivalent source code, available under the terms of the MIT license.&lt;br /&gt;
&lt;br /&gt;
== Version history ==&lt;br /&gt;
&lt;br /&gt;
The full number of ZZT versions made available to the public is not known, as registered copies of ZZT would sometimes include silently added changes not made available in the shareware versions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Known ZZT builds&lt;br /&gt;
|-&lt;br /&gt;
! Version !! Compilation date !! Release date !! Available as shareware !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 2.0]] (Shareware) || December 26th, 1990 || January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;/&amp;gt; || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 2.0]] (Registered) || Unknown || January 15th, 1991&amp;lt;ref name=&amp;quot;ZZTNewsletterJan91&amp;quot;/&amp;gt; || No ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.0]] || late May, 1991 || June 10th, 1991&amp;lt;ref name=&amp;quot;asp5201&amp;quot;&amp;gt;ASP Shareware Catalog for BBS users, 2nd volume, 10th edition. Published April 2nd, 1992.&amp;lt;/ref&amp;gt; || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.1 (September 1991)]] || September 14th, 1991 || Unknown || No ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Worlds of ZZT 3.56]] || October 1st, 1991 || October 1991 || No || Licensed by SoftDisk for On Disk Monthly #60 - September 1991.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.1]] || November 2nd, 1991 || Unknown || Yes || First release under Epic MegaGames.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2 (March 1992)]] || March 9th, 1992 || Unknown || No || Included with ZZT&#039;s Revenge.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2]] || May 21st, 1992 || Unknown || Yes || Final official build.&lt;br /&gt;
|-&lt;br /&gt;
| [[ZZT 3.2]] (Free) || - || October 10th, 1997&amp;lt;ref name=&amp;quot;megaboards97&amp;quot;&amp;gt;[https://web.archive.org/web/19971122042845/http://www.epicgames.co.uk/wwwboard/messages/13479.html The &amp;quot;Thing&amp;quot; Has Happened! All Registered Worlds Released For FREE!] on epicgames.com as of November 22nd, 1997.&amp;lt;/ref&amp;gt; || - || Equivalent to a registered copy of ZZT 3.2.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Official Worlds ==&lt;br /&gt;
&lt;br /&gt;
Tim Sweeney released the following ZZT worlds as shareware:&lt;br /&gt;
&lt;br /&gt;
* DEMO.ZZT - [[Demo of the ZZT World Editor]]&lt;br /&gt;
* TOWN.ZZT - [[Town of ZZT]]&lt;br /&gt;
* TOUR.ZZT - [[Guided Tour of ZZT&#039;s Other Worlds]]&lt;br /&gt;
&lt;br /&gt;
Sweeney also created the following three worlds for registered copies of ZZT:&lt;br /&gt;
&lt;br /&gt;
* CAVES.ZZT - [[Caves of ZZT]]&lt;br /&gt;
* CITY.ZZT - [[City of ZZT]]&lt;br /&gt;
* DUNGEONS.ZZT - [[Dungeons of ZZT]]&lt;br /&gt;
&lt;br /&gt;
After releasing ZZT, Sweeney held the &#039;&#039;Best of ZZT&#039;&#039; contest. Individual boards from two dozen authors&amp;lt;ref&amp;gt;Sweeney, Tim. &amp;quot;Epic MegaGames Newsletter, Volume 1, Number 1, Spring 1992&amp;quot;, page 3.&amp;lt;/ref&amp;gt; were compiled into two worlds:&lt;br /&gt;
&lt;br /&gt;
* BESTZZT1.ZZT - [[Best of ZZT: Part I: The Secret of Headhunter Isle]]&lt;br /&gt;
* BESTZZT2.ZZT - [[Best of ZZT: Part II: The Royal Treasures]]&lt;br /&gt;
&lt;br /&gt;
Additionally, six worlds from the contest were released in their entirety for the &#039;&#039;ZZT&#039;s Revenge&#039;&#039; collection:&lt;br /&gt;
&lt;br /&gt;
* CRYPT.ZZT - [[The Crypt]] by Adam Rixey&lt;br /&gt;
* DARBYTWN.ZZT - [[Darby&#039;s Crazy Town]] by David Bishop&lt;br /&gt;
* EZANYA.ZZT - [[Ezanya]] by Beth Daggert&lt;br /&gt;
* FANTASY.ZZT - [[Fantasy]] by Allen Pilgrim&lt;br /&gt;
* MANOR.ZZT - [[Mystery Manor]] by Alan R. Zeman&lt;br /&gt;
* SMILEY.ZZT - [[Smiley Guy]] by Al Payne&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Category:Stub&amp;diff=703</id>
		<title>Category:Stub</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Category:Stub&amp;diff=703"/>
		<updated>2025-12-24T23:00:21Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Articles that should be expanded to explain their subjects satisfactorily.&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Category:Stub&amp;diff=702</id>
		<title>Category:Stub</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Category:Stub&amp;diff=702"/>
		<updated>2025-12-24T23:00:07Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Created page with &amp;quot;Articles that should be explained to explain their subjects satisfactorily.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Articles that should be explained to explain their subjects satisfactorily.&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Template:Stub&amp;diff=701</id>
		<title>Template:Stub</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Template:Stub&amp;diff=701"/>
		<updated>2025-12-24T22:56:56Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Created page with &amp;quot;&amp;lt;table class=&amp;quot;Stub Box&amp;quot; style=&amp;quot;background: #A50; color: #FFF;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;Stub Image&amp;quot;&amp;gt; The king in yellow... &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039;&amp;#039;&amp;#039;This page is a stub!&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;{{{reason|Somebody recolor the walls!}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; Category:Stub&amp;lt;noinclude&amp;gt;   Not very good, but it&amp;#039;s functional. This should probably be based off of a generic message box template or something.  Current usage:  &amp;lt;nowiki&amp;gt;{{mbox&amp;lt;/nowiki&amp;gt;  | reason= What to do.  &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; &amp;lt;/n...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table class=&amp;quot;Stub Box&amp;quot; style=&amp;quot;background: #A50; color: #FFF;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;Stub Image&amp;quot;&amp;gt;[[File:Stub.png| center | The king in yellow... ]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&#039;&#039;&#039;This page is a stub!&#039;&#039;&#039;&amp;lt;br&amp;gt;{{{reason|Somebody recolor the walls!}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; [[Category:Stub]]&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not very good, but it&#039;s functional. This should probably be based off of a generic message box template or something.&lt;br /&gt;
&lt;br /&gt;
Current usage:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{mbox&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 | reason= What to do.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=File:Stub.png&amp;diff=700</id>
		<title>File:Stub.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=File:Stub.png&amp;diff=700"/>
		<updated>2025-12-24T22:15:43Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Picture to be used with the stub template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Picture to be used with the stub template&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{PD}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Main_Page&amp;diff=699</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Main_Page&amp;diff=699"/>
		<updated>2025-12-24T22:04:41Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Wiki of ZZT!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ZZT]] is a text-mode game creation system written in 1991 by Tim Sweeney. This wiki documents various ZZT-related topics, such as its scripting language [[ZZT-OOP]], its built-in [[:Category:Elements|elements]], and technical information such as its [[ZZT file format|file formats]]. Contributions are welcome! See the [[Wiki:Contributing|contributing guide]] for details.&lt;br /&gt;
&lt;br /&gt;
For more community-related stuff, hop on over here:&lt;br /&gt;
&lt;br /&gt;
* [https://museumofzzt.com/ &#039;&#039;&#039;The Museum of ZZT&#039;&#039;&#039;] is the primary archive of ZZT games. They also host resources for [[Super ZZT]], as well as for community forks/clones of ZZT.&lt;br /&gt;
* [https://museumofzzt.com/discord/ &#039;&#039;&#039;The Discord of ZZT&#039;&#039;&#039;] is the Museum-affiliated community chat.&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Kangaroo_effect&amp;diff=698</id>
		<title>Kangaroo effect</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Kangaroo_effect&amp;diff=698"/>
		<updated>2025-12-24T18:41:38Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Removed out-of-place sentence fragment with duplicate information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;kangaroo effect&#039;&#039;&#039; is a visual technique for displaying art on dark boards outside the field of vision of the [[player]] entity.&lt;br /&gt;
&lt;br /&gt;
For gameplay reasons, [[torch|torches]], [[passage|passages]], and the player are unconditionally visible on dark boards. By placing large quantities of these entities with the same foreground and background color, one can depict inaccessible regions as solid bodies.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Early ZZT worlds used a precursor to this effect - by placing large patches of plain brown-on-black torches, a thick, forested area could be suggested&amp;lt;ref&amp;gt;Kowinsky, Jamie. (1992, June 21). &#039;&#039;Escape from the land of NOZ&#039;&#039;, board 12. [https://museumofzzt.com/file/view/noz/?file=NOZ.ZZT&amp;amp;board=12 Museum of ZZT].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Darrow, Evan. (1993, May 28). &#039;&#039;Catalog of ZZT Games From Darrow Software!&#039;&#039;, board 5. [https://museumofzzt.com/file/d/catalog.zip?file=CATALOG.ZZT&amp;amp;board=5 Museum of ZZT].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Taylor, Shaun. (1993, August 14). &#039;&#039;Adventures in OakTown&#039;&#039;, board 22. [https://museumofzzt.com/file/view/oaktown12/?file=OAKTOWN1.ZZT&amp;amp;board=22 Museum of ZZT].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The first documented use of this effect is in 1998. The game Punctuation People by Newt utilized it for intermission artwork&amp;lt;ref&amp;gt;Newt. (1998, July 3). &#039;&#039;Punctuation People, The&#039;&#039;, board 22. [https://museumofzzt.com/file/view/punctu-p/?file=PUNCTU-P.ZZT&amp;amp;board=22 Museum of ZZT].&amp;lt;/ref&amp;gt;. This use remained largely unnoticed.&lt;br /&gt;
&lt;br /&gt;
The person who went on to use this effect more extensively and raise public awareness of it was gingermuffins. Having documented the effect in January 2007&amp;lt;ref&amp;gt;gingermuffins. (2007, January 3). &#039;&#039;dark boards&#039;&#039;. [https://zzt.org/fora/viewtopic.php?p=52168#p52168 z2].&amp;lt;/ref&amp;gt;, he would go on to use it in his games throughout 2007 and 2008. The name &amp;quot;kangaroo effect&amp;quot; was coined by Ellypses in the same forum thread&amp;lt;ref&amp;gt;Ellypses. (2007, January 5). &#039;&#039;dark boards&#039;&#039;. [https://zzt.org/fora/viewtopic.php?p=52165#p52165 z2].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=ZZT-OOP&amp;diff=697</id>
		<title>ZZT-OOP</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=ZZT-OOP&amp;diff=697"/>
		<updated>2025-12-24T18:39:29Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ZZT-OOP&#039;&#039;&#039; is the scripting language used by ZZT. Officially described as &amp;quot;a small object-oriented command language&amp;quot;&amp;lt;ref&amp;gt;Sweeney, Tim. (1991) &amp;quot;ZZT-OOP Programming Language&amp;quot;.&amp;lt;/ref&amp;gt;, it implements a message-based model for communicating between independent actors called [[Object|Objects]].&lt;br /&gt;
&lt;br /&gt;
== Quirks ==&lt;br /&gt;
&lt;br /&gt;
* DEMO.ZZT claims that &amp;quot;[[Scrolls]] can contain text, interactive messages, or even complete programs!&amp;quot;&amp;lt;ref&amp;gt;Sweeney. (1991) &#039;&#039;Demo&#039;&#039;, board 2. [https://museumofzzt.com/file/view/zzt/?file=DEMO.ZZT&amp;amp;board=2#17,10 Museum of ZZT]&amp;lt;/ref&amp;gt; This is partially true. While scrolls can execute ZZT-OOP commands, they cannot perform any tasks that take longer than a single cycle, and there are some commands that outright crash ZZT if used by them.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ZZT-OOP navbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=ZZT-OOP&amp;diff=631</id>
		<title>ZZT-OOP</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=ZZT-OOP&amp;diff=631"/>
		<updated>2025-12-24T09:23:04Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: /* Quirks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ZZT-OOP&#039;&#039;&#039; is the scripting language used by ZZT. Officially described as &amp;quot;a small object-oriented command language&amp;quot;&amp;lt;ref&amp;gt;Sweeney, Tim. (1991) &amp;quot;ZZT-OOP Programming Language&amp;quot;.&amp;lt;/ref&amp;gt;, it implements a message-based model for communicating between independent actors called [[Object|Objects]].&lt;br /&gt;
&lt;br /&gt;
== Quirks ==&lt;br /&gt;
&lt;br /&gt;
* DEMO.ZZT claims that &amp;quot;[[Scrolls]] can contain text, interactive messages, or even complete programs!&amp;quot;&amp;lt;ref&amp;gt;Sweeney. &#039;&#039;Demo&#039;&#039;, board 2. [https://museumofzzt.com/file/view/zzt/?file=DEMO.ZZT&amp;amp;board=2#17,10 Museum of ZZT]&amp;lt;/ref&amp;gt; This is partially true. While scrolls can execute ZZT-OOP commands, they cannot perform any tasks that take longer than a single cycle, and there are some commands that outright crash ZZT if used by them.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ZZT-OOP navbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Scrolls&amp;diff=628</id>
		<title>Scrolls</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Scrolls&amp;diff=628"/>
		<updated>2025-12-24T09:14:44Z</updated>

		<summary type="html">&lt;p&gt;RT-55J: Redirected page to Scroll&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Scroll]]&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
</feed>