<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.zzt.org/w/index.php?action=history&amp;feed=atom&amp;title=Duplicator</id>
	<title>Duplicator - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zzt.org/w/index.php?action=history&amp;feed=atom&amp;title=Duplicator"/>
	<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Duplicator&amp;action=history"/>
	<updated>2026-07-03T10:10:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=554&amp;oldid=prev</id>
		<title>RT-55J at 22:10, 22 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=554&amp;oldid=prev"/>
		<updated>2025-12-22T22:10:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:10, 22 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l40&quot;&gt;Line 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the duplication timer reaches 5, the timer is reset and the duplicator attempts to duplicate the element in the source direction.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the duplication timer reaches 5, the timer is reset and the duplicator attempts to duplicate the element in the source direction.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The duplication procedure first checks if a [[player]] (or player clone) is at the destination tile. If so, then the game has the player touch the source tile&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This can cause the player to destroy the source tile if it is destructible on contact (e.g. if it&#039;s an item like a [[gem]] or an enemy like a [[tiger]]). This will also send the [[touch]] message to the object on the other &lt;/del&gt;side&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This can also be used to force other interactions such as the player going through a [[passage]], though that will result in the &quot;[[koopo bug]]&quot; occurring. If a [[boulder]] or [[slider]] is at the source tile, then ZZT will crash &lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TODO: explain why concisely&lt;/del&gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The duplication procedure first checks if a [[player]] (or player clone) is at the destination tile. If so, then the game has the player touch the source tile&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, with several possible &lt;/ins&gt;side &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;effects &lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;listed below&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If a player is not at the destination tile, the game instead attempts to push the destination tile away. If the push is unsuccessful, then the duplicator plays its &amp;quot;blocked&amp;quot; sound and then does nothing. If the push is successful, then the contents of the source tile are copied to the destination and the duplication sound is played. If the source tile has stats, then all stats are carried over to the duplicate (including the code).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If a player is not at the destination tile, the game instead attempts to push the destination tile away. If the push is unsuccessful, then the duplicator plays its &amp;quot;blocked&amp;quot; sound and then does nothing. If the push is successful, then the contents of the source tile are copied to the destination and the duplication sound is played. If the source tile has stats, then all stats are carried over to the duplicate (including the code).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l47&quot;&gt;Line 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Duplicators support non-standard x/y-step values, but as always care should be taken to avoid out-of-bounds interactions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Duplicators support non-standard x/y-step values, but as always care should be taken to avoid out-of-bounds interactions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Touching through a Duplicator ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;If a player or player clone is at the destination tile of a duplicator, the player will touch the element on the source tile. Various different side effect can happen depending on the element.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Collectible items (e.g. [[gem|gems]], [[torch|torches]]: The item is collected and destroyed. However, due to a visual bug the item will appear to stay in place until the board is redrawn.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Built-in enemies (e.g. [[lion|lions]], [[tiger|tigers]]): The player takes damage, and the enemy is destroyed.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Object]]: The object receives a [[touch]] message.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Passage]] or [[Edge]]: The player is forced through the passage. This will result in the &quot;[[koopo bug]]&quot; occurring (stat parameters on the next board getting corrupted).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Boulder]] or [[Slider]]: ZZT will crash due to a stack overflow.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{ElementsNavbox}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{ElementsNavbox}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key zztwiki:diff:1.41:old-553:rev-554:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=553&amp;oldid=prev</id>
		<title>RT-55J at 21:53, 22 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=553&amp;oldid=prev"/>
		<updated>2025-12-22T21:53:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:53, 22 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l40&quot;&gt;Line 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the duplication timer reaches 5, the timer is reset and the duplicator attempts to duplicate the element in the source direction.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the duplication timer reaches 5, the timer is reset and the duplicator attempts to duplicate the element in the source direction.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The duplication procedure first checks if a [[player]] (or player clone) is at the destination tile. If so, then the game has the player touch the source tile. This can cause the player to destroy the source tile if it is destructible on contact (e.g. if it&#039;s an item like a [[gem]] or an enemy like a [[tiger]]). This can also force other interactions such as the player going through a [[passage]], though that will result in the &quot;[[koopo bug]]&quot; occurring. If a [[boulder]] or [[slider]] is at the source tile, then ZZT will crash (TODO: explain why concisely).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The duplication procedure first checks if a [[player]] (or player clone) is at the destination tile. If so, then the game has the player touch the source tile. This can cause the player to destroy the source tile if it is destructible on contact (e.g. if it&#039;s an item like a [[gem]] or an enemy like a [[tiger]])&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This will also send the [[touch]] message to the object on the other side&lt;/ins&gt;. This can also &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;be used to &lt;/ins&gt;force other interactions such as the player going through a [[passage]], though that will result in the &quot;[[koopo bug]]&quot; occurring. If a [[boulder]] or [[slider]] is at the source tile, then ZZT will crash (TODO: explain why concisely).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If a player is not at the destination tile, the game instead attempts to push the destination tile away. If the push is unsuccessful, then the duplicator plays its &amp;quot;blocked&amp;quot; sound and then does nothing. If the push is successful, then the contents of the source tile are copied to the destination and the duplication sound is played. If the source tile has stats, then all stats are carried over to the duplicate (including the code).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If a player is not at the destination tile, the game instead attempts to push the destination tile away. If the push is unsuccessful, then the duplicator plays its &amp;quot;blocked&amp;quot; sound and then does nothing. If the push is successful, then the contents of the source tile are copied to the destination and the duplication sound is played. If the source tile has stats, then all stats are carried over to the duplicate (including the code).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key zztwiki:diff:1.41:old-552:rev-553:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=552&amp;oldid=prev</id>
		<title>RT-55J at 20:53, 22 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=552&amp;oldid=prev"/>
		<updated>2025-12-22T20:53:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:53, 22 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l40&quot;&gt;Line 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the duplication timer reaches 5, the timer is reset and the duplicator attempts to duplicate the element in the source direction.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the duplication timer reaches 5, the timer is reset and the duplicator attempts to duplicate the element in the source direction.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The duplication procedure first checks if a [[player]] (or player clone) is at the destination tile. If so, then the game has the player touch the source tile. This can cause the player to destroy the source tile if it is destructible on contact (e.g. if it&#039;s an item like a [[gem]] or an enemy like a [[tiger]]). This can also force other interactions such as the player going through a passage, though that will result in the &quot;[[koopo bug]]&quot; occurring. If a [[boulder]] or [[slider]] is at the source tile, then ZZT will crash (TODO: explain why concisely).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The duplication procedure first checks if a [[player]] (or player clone) is at the destination tile. If so, then the game has the player touch the source tile. This can cause the player to destroy the source tile if it is destructible on contact (e.g. if it&#039;s an item like a [[gem]] or an enemy like a [[tiger]]). This can also force other interactions such as the player going through a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;passage&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;, though that will result in the &quot;[[koopo bug]]&quot; occurring. If a [[boulder]] or [[slider]] is at the source tile, then ZZT will crash (TODO: explain why concisely).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If a player is not at the destination tile, the game instead attempts to push the destination tile away. If the push is unsuccessful, then the duplicator plays its &amp;quot;blocked&amp;quot; sound and then does nothing. If the push is successful, then the contents of the source tile are copied to the destination and the duplication sound is played. If the source tile has stats, then all stats are carried over to the duplicate (including the code).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If a player is not at the destination tile, the game instead attempts to push the destination tile away. If the push is unsuccessful, then the duplicator plays its &amp;quot;blocked&amp;quot; sound and then does nothing. If the push is successful, then the contents of the source tile are copied to the destination and the duplication sound is played. If the source tile has stats, then all stats are carried over to the duplicate (including the code).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key zztwiki:diff:1.41:old-551:rev-552:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
	<entry>
		<id>https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=551&amp;oldid=prev</id>
		<title>RT-55J: Created page with &quot;{{Element |zzt-oop name=Duplicator |id={{Byte|12}} |char={{CharSwatch|250}} |color={{ColorSwatch|fg=white|bg=black}} |category=Item |stats=yes |x-y step=Source Direction |cycle=(9-P2)*3 |p1=Duplication Timer |p2=Duplication Rate |destructible=no |effect on movement=Wall |uses zzt-oop color=Default only }}  The &#039;&#039;&#039;duplicator&#039;&#039;&#039; is device that copies an element from its source direction to the tile in its opposite direction. The frequency at which it duplicates can be chan...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.zzt.org/w/index.php?title=Duplicator&amp;diff=551&amp;oldid=prev"/>
		<updated>2025-12-22T20:52:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Element |zzt-oop name=Duplicator |id={{Byte|12}} |char={{CharSwatch|250}} |color={{ColorSwatch|fg=white|bg=black}} |category=Item |stats=yes |x-y step=Source Direction |cycle=(9-P2)*3 |p1=Duplication Timer |p2=Duplication Rate |destructible=no |effect on movement=Wall |uses zzt-oop color=Default only }}  The &amp;#039;&amp;#039;&amp;#039;duplicator&amp;#039;&amp;#039;&amp;#039; is device that copies an element from its source direction to the tile in its opposite direction. The frequency at which it duplicates can be chan...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Element&lt;br /&gt;
|zzt-oop name=Duplicator&lt;br /&gt;
|id={{Byte|12}}&lt;br /&gt;
|char={{CharSwatch|250}}&lt;br /&gt;
|color={{ColorSwatch|fg=white|bg=black}}&lt;br /&gt;
|category=Item&lt;br /&gt;
|stats=yes&lt;br /&gt;
|x-y step=Source Direction&lt;br /&gt;
|cycle=(9-P2)*3&lt;br /&gt;
|p1=Duplication Timer&lt;br /&gt;
|p2=Duplication Rate&lt;br /&gt;
|destructible=no&lt;br /&gt;
|effect on movement=Wall&lt;br /&gt;
|uses zzt-oop color=Default only&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;duplicator&amp;#039;&amp;#039;&amp;#039; is device that copies an element from its source direction to the tile in its opposite direction. The frequency at which it duplicates can be changed with the &amp;quot;duplication rate&amp;quot; parameter, with higher numbers resulting in faster duplication.&lt;br /&gt;
&lt;br /&gt;
Every tick the duplicator increments its duplication timer by one, and then draws the tile according to the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Duplicator Characters&lt;br /&gt;
|-&lt;br /&gt;
! P1 !! Character&lt;br /&gt;
|-&lt;br /&gt;
| 1 || {{CharSwatch|250}}&lt;br /&gt;
|-&lt;br /&gt;
| 2 || {{CharSwatch|249}}&lt;br /&gt;
|-&lt;br /&gt;
| 3 || {{CharSwatch|248}}&lt;br /&gt;
|-&lt;br /&gt;
| 4 || {{CharSwatch|111}}&lt;br /&gt;
|-&lt;br /&gt;
| 5 || {{CharSwatch|79}}&lt;br /&gt;
|-&lt;br /&gt;
| Default || {{CharSwatch|250}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When the duplication timer reaches 5, the timer is reset and the duplicator attempts to duplicate the element in the source direction.&lt;br /&gt;
&lt;br /&gt;
The duplication procedure first checks if a [[player]] (or player clone) is at the destination tile. If so, then the game has the player touch the source tile. This can cause the player to destroy the source tile if it is destructible on contact (e.g. if it&amp;#039;s an item like a [[gem]] or an enemy like a [[tiger]]). This can also force other interactions such as the player going through a passage, though that will result in the &amp;quot;[[koopo bug]]&amp;quot; occurring. If a [[boulder]] or [[slider]] is at the source tile, then ZZT will crash (TODO: explain why concisely).&lt;br /&gt;
&lt;br /&gt;
If a player is not at the destination tile, the game instead attempts to push the destination tile away. If the push is unsuccessful, then the duplicator plays its &amp;quot;blocked&amp;quot; sound and then does nothing. If the push is successful, then the contents of the source tile are copied to the destination and the duplication sound is played. If the source tile has stats, then all stats are carried over to the duplicate (including the code).&lt;br /&gt;
&lt;br /&gt;
Note that every tick the duplicator sets its cycle according to the formula &amp;lt;code&amp;gt;Cycle := (9 - P2) * 3&amp;lt;/code&amp;gt;, with P2 representing the &amp;quot;Duplication Rate,&amp;quot; which limits the granularity and maximum speed of duplicators even when using external editors. &lt;br /&gt;
&lt;br /&gt;
Duplicators support non-standard x/y-step values, but as always care should be taken to avoid out-of-bounds interactions.&lt;br /&gt;
&lt;br /&gt;
{{ElementsNavbox}}&lt;/div&gt;</summary>
		<author><name>RT-55J</name></author>
	</entry>
</feed>