<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.computercraft.info/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bomb+Bloke</id>
		<title>ComputerCraft Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.computercraft.info/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bomb+Bloke"/>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/Special:Contributions/Bomb_Bloke"/>
		<updated>2026-07-11T06:20:19Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings_(API)&amp;diff=7438</id>
		<title>Settings (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings_(API)&amp;diff=7438"/>
				<updated>2016-06-11T03:40:26Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Set script link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
The '''settings API''' allows to store values and save them to a file for persistent configurations for your and CraftOS programs. The default file for saving settings is &amp;lt;var&amp;gt;.settings&amp;lt;/var&amp;gt; sitting in the root of the computer. Settings can also be changed and added to all computers through [[ComputerCraft.cfg]]'s &amp;lt;var&amp;gt;S:default_computer_settings&amp;lt;/var&amp;gt; value. It became available as of ComputerCraft 1.77, the first build for Minecraft 1.8.9.&lt;br /&gt;
&lt;br /&gt;
See also: [[Set|the set script]].&lt;br /&gt;
&lt;br /&gt;
{{API table|settings|image=Grid_disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.set]]({{type|string}} name, {{type|any}} value)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Sets the setting &amp;lt;var&amp;gt;name&amp;lt;/var&amp;gt; to &amp;lt;var&amp;gt;value&amp;lt;/var&amp;gt;.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.get]]({{type|string}} name [, {{type|any}} default])&lt;br /&gt;
|{{type|any}} value&lt;br /&gt;
|Returns the setting's &amp;lt;var&amp;gt;name&amp;lt;/var&amp;gt; value, or &amp;lt;var&amp;gt;default&amp;lt;/var&amp;gt; if the setting does not exist.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.unset]]({{type|string}} name)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Removes the setting &amp;lt;var&amp;gt;name&amp;lt;/var&amp;gt;.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.clear]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Removes all settings.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.getNames]]()&lt;br /&gt;
|{{type|table}} settingNames&lt;br /&gt;
|Returns a numerically-indexed table of all the setting's names.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.load]]({{type|string}} path)&lt;br /&gt;
|{{type|boolean}} loaded&lt;br /&gt;
|Loads settings from a file.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.save]]({{type|string}} path)&lt;br /&gt;
|{{type|boolean}} saved&lt;br /&gt;
|Saves current settings to a file.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* Settings changed via this API are '''not''' automatically saved to a file, you have to do this [[settings.save|manually]].&lt;br /&gt;
* Setting's names can only be of type {{type|string}}.&lt;br /&gt;
* Setting's values can only be [[textutils.serialize|serializable]] types: {{type|string}}, {{type|number}}, {{type|boolean}} or {{type|table}}.&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
These are the default settings of a computer (as seen in CC 1.77 and later):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  [ &amp;quot;bios.use_multishell&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;shell.autocomplete&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;shell.allow_disk_startup&amp;quot; ] = true  --# (for all Computer types except Command Computers),&lt;br /&gt;
  [ &amp;quot;shell.allow_startup&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;lua.autocomplete&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;list.show_hidden&amp;quot; ] = false,&lt;br /&gt;
  [ &amp;quot;edit.autocomplete&amp;quot; ] = true,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''&amp;lt;var&amp;gt;shell.autocomplete&amp;lt;/var&amp;gt;''' - enables auto-completion in the [[Shell]].&lt;br /&gt;
*'''&amp;lt;var&amp;gt;lua.autocomplete&amp;lt;/var&amp;gt;''' - enables auto-completion in the [[Lua]] program.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;edit.autocomplete&amp;lt;/var&amp;gt;''' - enables auto-completion in the [[Edit]] program.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;bios.use_multishell&amp;lt;/var&amp;gt;''' - enables [[Multishell]] on [[Advanced Computer]]s, [[Advanced Turtle|Turtles]], [[Advanced Pocket Computer|Pocket Computers]] and [[Command Computer]]s.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;shell.allow_disk_startup&amp;lt;/var&amp;gt;''' - if a [[Disk Drive]] with a [[Disk]] inside that has a 'startup' script is attached to a computer, this setting allows to automatically run that script when the computer starts.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;shell.allow_startup&amp;lt;/var&amp;gt;''' - if there is a 'startup' script in a computer's root, this setting allow to automatically run that script when the computer runs.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;list.show_hidden&amp;lt;/var&amp;gt;''' - determines, whether the [[List]] program will list hidden files or not.&lt;br /&gt;
&lt;br /&gt;
==.settings==&lt;br /&gt;
If a file titled &amp;quot;.settings&amp;quot; is [[settings.save|saved]] to the root of a given computer's drive, it will be automatically [[settings.load|loaded]] after the default settings on boot (note &amp;quot;after&amp;quot;, as opposed to &amp;quot;instead of&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
For example, if the file simply contains:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  [ &amp;quot;bios.use_multishell&amp;quot; ] = false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... then all regular defaults will apply except for the use of [[multishell]], which will be disabled.&lt;br /&gt;
&lt;br /&gt;
==ComputerCraft.cfg==&lt;br /&gt;
You can change or add default settings for all computers through [[ComputerCraft.cfg]]. The format is as follows:&lt;br /&gt;
* each setting is separated by a comma (&amp;lt;var&amp;gt;,&amp;lt;/var&amp;gt;)&lt;br /&gt;
* setting's name and value is separated by an equals sign (&amp;lt;var&amp;gt;=&amp;lt;/var&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This example will disable auto-completion features in the default programs.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
S:default_computer_settings=shell.autocomplete=false,lua.autocomplete=false,edit.autocomplete=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Set&amp;diff=7437</id>
		<title>Set</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Set&amp;diff=7437"/>
				<updated>2016-06-11T03:37:44Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;Added by ComputerCraft 1.77, the '''set''' command allows manipulation of system settings, such as the defaults listed here. Changes are au...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Added by ComputerCraft 1.77, the '''set''' command allows manipulation of system settings, such as the [[Settings_(API)#Default_Settings|defaults listed here]]. Changes are automatically saved to [[Settings_(API)#.settings|the .settings file]], and will hence also be automatically re-applied on the next boot.&lt;br /&gt;
&lt;br /&gt;
Specifying a value of &amp;quot;nil&amp;quot; completely unsets a setting. Doing this to a system default setting means that it will take on its original value when the system is next restarted.&lt;br /&gt;
&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Disables shell auto-completion.&lt;br /&gt;
|code=set shell.autocomplete false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Programs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=CraftOS_Shell&amp;diff=7436</id>
		<title>CraftOS Shell</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=CraftOS_Shell&amp;diff=7436"/>
				<updated>2016-06-11T03:20:40Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Reformatted + added: paint, chat, set, wget, commands, exec&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Regular Shell Commands ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
CraftOS Shell Programs&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Program Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Version Added&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-alias&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[alias]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;alias &amp;lt;alias&amp;gt; &amp;lt;program&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Maps an alias string to a program.&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-apis&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[apis]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;apis&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Lists all loaded APIs.&lt;br /&gt;
|1.2&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-bg&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[bg]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;bg &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Opens the specified script in a new [[multishell]] tab.&lt;br /&gt;
|1.6&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-cd&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[cd]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;cd &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Changes to the specified directory&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-chat&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[chat]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;chat host &amp;lt;hostname&amp;gt;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;chat join &amp;lt;hostname&amp;gt; &amp;lt;nickname&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Peer-to-peer rednet-based messaging software.&lt;br /&gt;
|1.6&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-clear&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[clear]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;clear&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Clears the terminal.&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-copy&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[copy]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;copy &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Copies a source file or folder to a destination&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-delete&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[delete]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;delete &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Deletes the specified file (in the same manner as [[rm]]).&lt;br /&gt;
|1.2&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-dj&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[dj]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;dj&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Music box DJ - use &amp;lt;tt&amp;gt;dj&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-drive&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[drive]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;drive&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;drive &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Lists the mount location of the current directory, or the path specified.&lt;br /&gt;
|1.2&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-edit&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[edit]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;edit &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Edits the file specified.&lt;br /&gt;
|&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-eject&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[eject]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;eject &amp;lt;side&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Ejects the disk on the side specified.&lt;br /&gt;
|1.2&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-exit&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[exit]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Exits the currently running shell session - if it is the only shell session, the computer will power off.&lt;br /&gt;
|&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-fg&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[fg]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;fg &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Opens the specified script in a new [[multishell]] tab, then switches to it.&lt;br /&gt;
|1.6&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-gps&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[Gps (program)|gps]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;gps &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Minecraft Global Positioning tool. Use &amp;lt;tt&amp;gt;gps&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
|1.31&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-help&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[help]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;help&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;help &amp;lt;topic&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Help utility. Opens the specified topic, or the introduction if no topic is specified.&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-id&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[id]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;id &amp;lt;side&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Returns the ID of the computer, or if a side is specified, the ID of the disk in the specified side.&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-label&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[label]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;label&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Gets and sets the ID of the computer, or, the ID of a disk in a specified side. Use &amp;lt;tt&amp;gt;label&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
|1.2&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-list&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[list]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;list&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;list &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Lists the content of the current directory, or, the directory specified.&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-lua&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[lua]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;lua&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Interactive Lua interpreter at the shell.&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-mkdir&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[mkdir]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;mkdir &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Makes the directory at the path specified.&lt;br /&gt;
|&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-monitor&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[Monitor (program)|monitor]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;monitor &amp;lt;side&amp;gt; &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Redirects a specified program to a monitor on the specified side.&lt;br /&gt;
|1.31&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-move&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[move]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;move &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Moves a file or folder at a specified source path to the specified destination path.&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-multishell&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[multishell]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;multishell&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Opens a new instance of multishell, running within the ''current'' multishell session.&lt;br /&gt;
|1.6&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-paint&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[paint]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;paint &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Edits the image specified.&lt;br /&gt;
|1.45&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-pastebin&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[Pastebin_(program)|pastebin]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;pastebin &amp;lt;get/run/put&amp;gt; &amp;lt;pastebin code/file&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Allows the user to either retrieve a file from [http://pastebin.com/ pastebin.com], run it directly after downloading, or upload a file from the computer/turtle.&lt;br /&gt;
|1.31&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-peripherals&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[peripherals_(program)|peripherals]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;peripherals&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Lists all peripherals attacked to the system.&lt;br /&gt;
|1.76&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-programs&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[programs]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;programs&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Lists all programs on the system.&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-reboot&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[reboot]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;reboot&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Reboots the Computer.&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-redstone&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[redstone (program)|redstone]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;redstone &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Controls the redstone output state(s) of the system.&lt;br /&gt;
|1.6&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-repeat&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[repeat]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;repeat&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Configures the system to act as a [[rednet (API)|rednet]] repeater.&lt;br /&gt;
|1.6&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-rename&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rename]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;rename &amp;lt;old-name&amp;gt; &amp;lt;new-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Renames a file or directory.&lt;br /&gt;
|1.2&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-rm&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rm]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;rm &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Deletes the specified file (in the same manner as [[delete]]).&lt;br /&gt;
|&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-set&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[set]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;set &amp;lt;env variable&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Changes system settings.&lt;br /&gt;
|1.77&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-shell&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[shell]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;shell, shell &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Opens another shell session. Runs a program if specified.&lt;br /&gt;
|&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-shutdown&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[shutdown]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;shutdown&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Powers off the Computer.&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-time&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[time]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;time&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Returns the Minecraft time of day.&lt;br /&gt;
|1.2&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-type&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[type]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;type &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Returns the type of the object or file at the specified path.&lt;br /&gt;
|&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-wget&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[wget]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;wget &amp;lt;url&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Fetches the content at the specified web address and saves it to the specified file.&lt;br /&gt;
|1.77&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Turtle-specific Commands ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
Additional TurtleOS Shell Programs&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Program Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Version Added&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-craft&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[craft]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;craft&amp;lt;/tt&amp;gt;&lt;br /&gt;
|The turtle will, if it is able, craft an item from the contents of its inventory.&lt;br /&gt;
|1.4&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-dance&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[dance]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;dance&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Initiates &amp;quot;get down&amp;quot; procedure.&lt;br /&gt;
|1.3&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-equip&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[equip]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;equip &amp;lt;side&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|The turtle will attempt to place a tool on its specified side.&lt;br /&gt;
|1.6&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-excavate&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[excavate]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;excavate &amp;lt;width&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Digs a square-shaped quarry to bedrock, of width equal to that specified.&lt;br /&gt;
|1.3&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-go&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[go]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;go &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Moves the turtle.&lt;br /&gt;
|1.3&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-refuel&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[refuel]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;refuel &amp;lt;amount&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Attempts to replenish the turtle's [[fuel]] supply with items from its inventory.&lt;br /&gt;
|1.4&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-tunnel&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[tunnel]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;tunnel &amp;lt;width&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Digs a horizontal tunnel leading off in the direction the turtle is facing.&lt;br /&gt;
|1.3&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-turn&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[turn]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;turn &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Causes the turtle to rotate.&lt;br /&gt;
|1.3&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-unequip&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[unequip]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;unequip&amp;lt;width&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Attempts to remove a tool from the turtle's specified side.&lt;br /&gt;
|1.6&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Command Computer-specific Commands ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
Additional Command Computer Programs&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Program Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Version Added&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-commands&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[commands]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;commands&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Lists all commands available to the [[Command Computer]] under the current version of Minecraft.&lt;br /&gt;
|1.7&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-exec&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[exec]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;exec &amp;lt;command&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Executes the specified [http://minecraft.gamepedia.com/Commands operator command] as if through a Command Block.&lt;br /&gt;
|1.7&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Removed Commands ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
Removed Commands&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Program Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Version Removed&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-redprobe&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[redprobe]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;redprobe&amp;lt;/tt&amp;gt;&lt;br /&gt;
|List redstone stats.&lt;br /&gt;
|1.6&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-redpulse&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[redpulse]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;redpulse&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Redstone output pulse tool. Use &amp;lt;tt&amp;gt;redpulse&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
|1.6&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;cmd-redset&amp;quot;&amp;gt;&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[redset]]&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;redset&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Redstone output set tool. Use &amp;lt;tt&amp;gt;redset&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
|1.6&lt;br /&gt;
|odd}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Built In Turtle Programs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programs]][[Category:Lists]][[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings_(API)&amp;diff=7435</id>
		<title>Settings (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings_(API)&amp;diff=7435"/>
				<updated>2016-06-10T03:38:30Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: .settings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
The '''settings API''' allows to store values and save them to a file for persistent configurations for your and CraftOS programs. The default file for saving settings is &amp;lt;var&amp;gt;.settings&amp;lt;/var&amp;gt; sitting in the root of the computer. Settings can also be changed and added to all computers through [[ComputerCraft.cfg]]'s &amp;lt;var&amp;gt;S:default_computer_settings&amp;lt;/var&amp;gt; value. It became available as of ComputerCraft 1.78, the first build for Minecraft 1.8.9.&lt;br /&gt;
&lt;br /&gt;
{{API table|settings|image=Grid_disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.set]]({{type|string}} name, {{type|any}} value)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Sets the setting &amp;lt;var&amp;gt;name&amp;lt;/var&amp;gt; to &amp;lt;var&amp;gt;value&amp;lt;/var&amp;gt;.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.get]]({{type|string}} name [, {{type|any}} default])&lt;br /&gt;
|{{type|any}} value&lt;br /&gt;
|Returns the setting's &amp;lt;var&amp;gt;name&amp;lt;/var&amp;gt; value, or &amp;lt;var&amp;gt;default&amp;lt;/var&amp;gt; if the setting does not exist.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.unset]]({{type|string}} name)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Removes the setting &amp;lt;var&amp;gt;name&amp;lt;/var&amp;gt;.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.clear]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Removes all settings.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.getNames]]()&lt;br /&gt;
|{{type|table}} settingNames&lt;br /&gt;
|Returns a numerically-indexed table of all the setting's names.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.load]]({{type|string}} path)&lt;br /&gt;
|{{type|boolean}} loaded&lt;br /&gt;
|Loads settings from a file.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[settings.save]]({{type|string}} path)&lt;br /&gt;
|{{type|boolean}} saved&lt;br /&gt;
|Saves current settings to a file.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* Settings are '''not''' automatically saved to a file, you have to do this [[settings.save|manually]].&lt;br /&gt;
* Setting's names can only be of type {{type|string}}.&lt;br /&gt;
* Setting's values can only be [[textutils.serialize|serializable]] types: {{type|string}}, {{type|number}}, {{type|boolean}} or {{type|table}}.&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
These are the default settings of a computer (as seen in CC 1.77 and later):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  [ &amp;quot;bios.use_multishell&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;shell.autocomplete&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;shell.allow_disk_startup&amp;quot; ] = true  --# (for all Computer types except Command Computers),&lt;br /&gt;
  [ &amp;quot;shell.allow_startup&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;lua.autocomplete&amp;quot; ] = true,&lt;br /&gt;
  [ &amp;quot;list.show_hidden&amp;quot; ] = false,&lt;br /&gt;
  [ &amp;quot;edit.autocomplete&amp;quot; ] = true,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''&amp;lt;var&amp;gt;shell.autocomplete&amp;lt;/var&amp;gt;''' - enables auto-completion in the [[Shell]].&lt;br /&gt;
*'''&amp;lt;var&amp;gt;lua.autocomplete&amp;lt;/var&amp;gt;''' - enables auto-completion in the [[Lua]] program.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;edit.autocomplete&amp;lt;/var&amp;gt;''' - enables auto-completion in the [[Edit]] program.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;bios.use_multishell&amp;lt;/var&amp;gt;''' - enables [[Multishell]] on [[Advanced Computer]]s, [[Advanced Turtle|Turtles]], [[Advanced Pocket Computer|Pocket Computers]] and [[Command Computer]]s.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;shell.allow_disk_startup&amp;lt;/var&amp;gt;''' - if a [[Disk Drive]] with a [[Disk]] inside that has a 'startup' script is attached to a computer, this setting allows to automatically run that script when the computer starts.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;shell.allow_startup&amp;lt;/var&amp;gt;''' - if there is a 'startup' script in a computer's root, this setting allow to automatically run that script when the computer runs.&lt;br /&gt;
*'''&amp;lt;var&amp;gt;list.show_hidden&amp;lt;/var&amp;gt;''' - determines, whether the [[List]] program will list hidden files or not.&lt;br /&gt;
&lt;br /&gt;
==.settings==&lt;br /&gt;
If a file titled &amp;quot;.settings&amp;quot; is [[settings.save|saved]] to the root of a given computer's drive, it will be automatically [[settings.load|loaded]] after the default settings on boot (note &amp;quot;after&amp;quot;, as opposed to &amp;quot;instead of&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
For example, if the file simply contains:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  [ &amp;quot;bios.use_multishell&amp;quot; ] = false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... then all regular defaults will apply except for the use of [[multishell]], which will be disabled.&lt;br /&gt;
&lt;br /&gt;
==ComputerCraft.cfg==&lt;br /&gt;
You can change or add default settings for all computers through [[ComputerCraft.cfg]]. The format is as follows:&lt;br /&gt;
* each setting is separated by a comma (&amp;lt;var&amp;gt;,&amp;lt;/var&amp;gt;)&lt;br /&gt;
* setting's name and value is separated by an equals sign (&amp;lt;var&amp;gt;=&amp;lt;/var&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This example will disable auto-completion features in the default programs.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
S:default_computer_settings=shell.autocomplete=false,lua.autocomplete=false,edit.autocomplete=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.set&amp;diff=7434</id>
		<title>Settings.set</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.set&amp;diff=7434"/>
				<updated>2016-06-10T03:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=settings.set |args={{type|string}} name, {{type|any}} value |api=settings |addon=ComputerCraft |desc=Sets the specified setting to the specified...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.set&lt;br /&gt;
|args={{type|string}} name, {{type|any}} value&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Sets the specified setting to the specified value. Values may be in the form of strings, numbers, booleans, or [[textutils.serialize|serialisable]] tables.&lt;br /&gt;
&lt;br /&gt;
Settings apply until the next reboot, at which time the [[Settings_(API)#Default_Settings|defaults]] are reloaded. If you wish your custom settings to persist, either [[settings.save|save]] them to a file and [[settings.load|reload]] them on startup, or save them to &amp;quot;.settings&amp;quot; specifically if you wish them to be automatically reloaded.&lt;br /&gt;
&lt;br /&gt;
Settings may not be cleared by use of settings.set(); for eg, settings.set(&amp;quot;shell.autocomplete&amp;quot;, nil) is invalid. Instead use [[settings.unset]]() for this purpose.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Disables use of startup files from floppies on subsequent reboots by saving a new default settings file.&lt;br /&gt;
|code= settings.set(&amp;quot;shell.allow_disk_startup&amp;quot;, false)&lt;br /&gt;
 [[settings.save]](&amp;quot;.settings&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.get&amp;diff=7433</id>
		<title>Settings.get</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.get&amp;diff=7433"/>
				<updated>2016-06-10T03:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=settings.get |args={{type|string}} name [, {{type|any}} default] |returns={{type|any}} value |api=settings |addon=ComputerCraft |desc=Returns th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.get&lt;br /&gt;
|args={{type|string}} name [, {{type|any}} default]&lt;br /&gt;
|returns={{type|any}} value&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Returns the value of a given setting, or if the setting doesn't exist and a &amp;quot;default&amp;quot; is specified, returns the specified default instead.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Indicates whether the system is currently configured to boot from disk.&lt;br /&gt;
|code= local bootFromDisk = settings.get(&amp;quot;shell.allow_disk_startup&amp;quot;, &amp;quot;not set&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Ability to boot from disk is currently &amp;quot; .. tostring( bootFromDisk ) )&lt;br /&gt;
|output=Either states &amp;quot;true&amp;quot;, &amp;quot;false&amp;quot;, or &amp;quot;not set&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.clear&amp;diff=7432</id>
		<title>Settings.clear</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.clear&amp;diff=7432"/>
				<updated>2016-06-10T03:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Extra link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.clear&lt;br /&gt;
|args=&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Simply wipes all currently loaded settings. Compare [[settings.unset]](), which wipes one setting at a time.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that when the system reboots, first the [[Settings_(API)#Default_Settings|default settings]] will be reloaded, and then (if it exists on the root of the drive) the &amp;quot;.settings&amp;quot; file will also be reloaded. Saving an empty &amp;quot;.settings&amp;quot; file will not in any way affect the loaded defaults - if you want all default settings completely cleared on boot, then settings.clear() must be called on startup.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7431</id>
		<title>Settings.load</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7431"/>
				<updated>2016-06-10T03:14:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Code fix.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.load&lt;br /&gt;
|args={{Type|string}} path&lt;br /&gt;
|returns={{Type|boolean}} success&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Loads settings from the specified file. Any settings that've already been loaded (eg [[Settings_(API)#Default_Settings|the defaults]]) will not be affected unless the target file contains entries with the same names.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a file titled &amp;quot;.settings&amp;quot; is [[settings.save|saved]] to the root of a computer's drive, it will be automatically loaded on startup after the default settings (without need to call this function manually).&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Loads all settings specified within the file &amp;quot;mySettings&amp;quot;, displaying before / after lists.&lt;br /&gt;
|code=print(&amp;quot;Initial loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
 &lt;br /&gt;
 settings.load(&amp;quot;mySettings&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;\nResulting loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.unset&amp;diff=7430</id>
		<title>Settings.unset</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.unset&amp;diff=7430"/>
				<updated>2016-06-10T03:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.unset&lt;br /&gt;
|args={{Type|string}} setting&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Removes a setting from the currently loaded set. If you wish to unload all settings, refer to [[settings.clear]]().&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that when the system reboots, first the [[Settings_(API)#Default_Settings|default settings]] will be reloaded, and then (if it exists on the root of the drive) the &amp;quot;.settings&amp;quot; file will also be reloaded. Saving an empty &amp;quot;.settings&amp;quot; file will not in any way affect the loaded defaults - if you want a particular default setting completely cleared on boot, then settings.unset(''setting'') must be called on startup.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Randomly unsets a setting.&lt;br /&gt;
|code= local curSettings = [[settings.getNames]]()&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Initial loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( curSettings  )&lt;br /&gt;
 &lt;br /&gt;
 if #curSettings &amp;gt; 0 then settings.unset( curSettings[ math.random( #curSettings ) ] ) end&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;\nResulting loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.unset&amp;diff=7429</id>
		<title>Settings.unset</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.unset&amp;diff=7429"/>
				<updated>2016-06-10T03:10:04Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=settings.unset |args={{Type|string}} setting |api=settings |addon=ComputerCraft |desc=Removes a setting from the currently loaded set. If you wi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.unset&lt;br /&gt;
|args={{Type|string}} setting&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Removes a setting from the currently loaded set. If you wish to unload all settings, refer to [[settings.clear]]().&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Randomly unsets a setting.&lt;br /&gt;
|code= local curSettings = [[settings.getNames]]()&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Initial loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( curSettings  )&lt;br /&gt;
 &lt;br /&gt;
 if #curSettings &amp;gt; 0 then settings.unset( curSettings[ math.random( #curSettings ) ] ) end&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;\nResulting loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.clear&amp;diff=7428</id>
		<title>Settings.clear</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.clear&amp;diff=7428"/>
				<updated>2016-06-10T03:02:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=settings.clear |args= |api=settings |addon=ComputerCraft |desc=Simply wipes all currently loaded settings.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;  Note that when the system re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.clear&lt;br /&gt;
|args=&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Simply wipes all currently loaded settings.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that when the system reboots, first the [[Settings_(API)#Default_Settings|default settings]] will be reloaded, and then (if it exists on the root of the drive) the &amp;quot;.settings&amp;quot; file will also be reloaded. Saving an empty &amp;quot;.settings&amp;quot; file will not in any way affect the loaded defaults - if you want all settings cleared on boot, then settings.clear() must be called on startup.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7427</id>
		<title>Settings.load</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7427"/>
				<updated>2016-06-10T02:56:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: .settings is loaded &amp;quot;in addition to&amp;quot; the defaults, as opposed to &amp;quot;instead of&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.load&lt;br /&gt;
|args={{Type|string}} path&lt;br /&gt;
|returns={{Type|boolean}} success&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Loads settings from the specified file. Any settings that've already been loaded (eg [[Settings_(API)#Default_Settings|the defaults]]) will not be affected unless the target file contains entries with the same names.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a file titled &amp;quot;.settings&amp;quot; is [[settings.save|saved]] to the root of a computer's drive, it will be automatically loaded on startup after the default settings (without need to call this function manually).&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Loads all settings specified within the file &amp;quot;mySettings&amp;quot;, displaying before / after lists.&lt;br /&gt;
|code=print(&amp;quot;Initial loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
 &lt;br /&gt;
 settings.load(&amp;quot;mySettings&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Resulting loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.getNames&amp;diff=7426</id>
		<title>Settings.getNames</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.getNames&amp;diff=7426"/>
				<updated>2016-06-10T02:46:45Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=settings.getNames |args= |returns={{Type|table}} setting names |api=settings |addon=ComputerCraft |desc=Returns a numerically indexed table cont...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.getNames&lt;br /&gt;
|args=&lt;br /&gt;
|returns={{Type|table}} setting names&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Returns a numerically indexed table containing all currently loaded setting names.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Prints all current settings alongside their values.&lt;br /&gt;
|code= local curSettings = settings.getNames()&lt;br /&gt;
 &lt;br /&gt;
 for i = 1, #curSettings do&lt;br /&gt;
   [[textutils.pagedPrint]]( curSettings[i] .. &amp;quot;: &amp;quot; .. tostring( [[settings.get]]( curSettings[i] ) ) )&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.save&amp;diff=7425</id>
		<title>Settings.save</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.save&amp;diff=7425"/>
				<updated>2016-06-10T02:37:35Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=settings.save |args={{Type|string}} path |returns={{Type|boolean}} success |api=settings |addon=ComputerCraft |desc=Saves all current settings -...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.save&lt;br /&gt;
|args={{Type|string}} path&lt;br /&gt;
|returns={{Type|boolean}} success&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Saves all current settings - including those loaded as [[Settings_(API)#Default_Settings|defaults]] - to the specified file, as a serialised table.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a file titled &amp;quot;.settings&amp;quot; is saved to the root of a computer's drive, it will be automatically loaded on startup (without need to call [[settings.load|settings.load()]]).&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Disables use of startup files from floppies on subsequent reboots by saving a new default settings file.&lt;br /&gt;
|code= [[settings.set]](&amp;quot;shell.allow_disk_startup&amp;quot;, false)&lt;br /&gt;
 settings.save(&amp;quot;.settings&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7424</id>
		<title>Settings.load</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7424"/>
				<updated>2016-06-10T02:37:18Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Type templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.load&lt;br /&gt;
|args={{Type|string}} path&lt;br /&gt;
|returns={{Type|boolean}} success&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Loads settings from the specified file. Any settings that've already been loaded (eg [[Settings_(API)#Default_Settings|the defaults]]) will not be affected unless the target file contains entries with the same names.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a file titled &amp;quot;.settings&amp;quot; is [[settings.save|saved]] to the root of a computer's drive, it will be automatically loaded on startup (without need to call this function manually).&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Loads all settings specified within the file &amp;quot;mySettings&amp;quot;, displaying before / after lists.&lt;br /&gt;
|code=print(&amp;quot;Initial loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
 &lt;br /&gt;
 settings.load(&amp;quot;mySettings&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Resulting loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7423</id>
		<title>Settings.load</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Settings.load&amp;diff=7423"/>
				<updated>2016-06-10T02:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=settings.load |args=string path |returns=boolean success |api=settings |addon=ComputerCraft |desc=Loads settings from the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=settings.load&lt;br /&gt;
|args=[[string]] path&lt;br /&gt;
|returns=[[boolean_(type)|boolean]] success&lt;br /&gt;
|api=settings&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Loads settings from the specified file. Any settings that've already been loaded (eg [[Settings_(API)#Default_Settings|the defaults]]) will not be affected unless the target file contains entries with the same names.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a file titled &amp;quot;.settings&amp;quot; is [[settings.save|saved]] to the root of a computer's drive, it will be automatically loaded on startup (without need to call this function manually).&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Loads all settings specified within the file &amp;quot;mySettings&amp;quot;, displaying before / after lists.&lt;br /&gt;
|code=print(&amp;quot;Initial loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
 &lt;br /&gt;
 settings.load(&amp;quot;mySettings&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Resulting loaded settings:\n&amp;quot;)&lt;br /&gt;
 [[textutils.pagedTabulate]]( [[settings.getNames]]() )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{SettingsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Template:SettingsAPIFunctions&amp;diff=7422</id>
		<title>Template:SettingsAPIFunctions</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Template:SettingsAPIFunctions&amp;diff=7422"/>
				<updated>2016-06-10T02:16:31Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;&amp;lt;center&amp;gt; {| class=&amp;quot;wikitable&amp;quot; ! style=&amp;quot;background: #D3FFC2; text-align: center&amp;quot; | 18px Settings API Functions |- |settings.set -...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #D3FFC2; text-align: center&amp;quot; | [[File:Grid_disk.png|18px]] [[Settings_(API)|Settings API]] Functions&lt;br /&gt;
|-&lt;br /&gt;
|[[settings.set]] - [[settings.get]] - [[settings.unset]] - [[settings.clear]] - [[settings.getNames]] - [[settings.load]] - [[settings.save]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Turtle.dig&amp;diff=7421</id>
		<title>Turtle.dig</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Turtle.dig&amp;diff=7421"/>
				<updated>2016-06-10T02:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Undo revision 7419 by Dan200 (talk) Reverted without comment? Appears to've been a mistake.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=turtle.dig&lt;br /&gt;
|args=&lt;br /&gt;
|api=turtle&lt;br /&gt;
|returns={{Type|boolean}} whether the turtle succeeded in digging, {{type|string}} error message&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Attempts to dig the block in front of the turtle.  If successful, [[Turtle.suck|suck()]] is automatically called, placing the item in turtle inventory in the selected slot if possible (block type matches and the slot is not a full stack yet), or in the next available slot.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a hoe is used to attempt to &amp;quot;dig&amp;quot; a dirt block, it will be tilled instead. Tilling is also possible if the space in front of the turtle is empty but dirt exists below that point.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Digs the block in front of the turtle.&lt;br /&gt;
|code=[[print]](turtle.dig())&lt;br /&gt;
|output=true if the turtle could dig the block, false if it could not or no block present.&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Digs the block in front of the turtle, but only if there is a block to dig (saves time).&lt;br /&gt;
|code=if [[turtle.detect]]() then&lt;br /&gt;
  turtle.dig()&lt;br /&gt;
 end&lt;br /&gt;
|output=the turtle digs if there is a block in front.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[turtle.digUp]]&lt;br /&gt;
*[[turtle.digDown]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Turtle.digDown&amp;diff=7418</id>
		<title>Turtle.digDown</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Turtle.digDown&amp;diff=7418"/>
				<updated>2016-06-09T11:44:44Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Tilling specifics.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=turtle.digDown&lt;br /&gt;
|args=&lt;br /&gt;
|api=turtle&lt;br /&gt;
|returns={{Type|boolean}} whether the turtle succeeded in digging, {{type|string}} error message&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Attempts to dig the block below the turtle. If successful, [[Turtle.suck|suck()]] is automatically called, placing the item in turtle inventory in the selected slot if possible (block type matches and the slot is not a full stack yet), or in the next available slot.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using a hoe, if the space beneath the turtle consists of air and the space beneath ''that'' is dirt, then the turtle may till that dirt by use of this function.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Attempts to dig the block below the turtle.&lt;br /&gt;
|code=print(turtle.digDown())&lt;br /&gt;
|output=true if the turtle could dig the block, false if it could not or no block present.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[turtle.dig]]&lt;br /&gt;
*[[turtle.digUp]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Turtle.dig&amp;diff=7417</id>
		<title>Turtle.dig</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Turtle.dig&amp;diff=7417"/>
				<updated>2016-06-09T11:41:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Tilling specifics.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=turtle.dig&lt;br /&gt;
|args=&lt;br /&gt;
|api=turtle&lt;br /&gt;
|returns={{Type|boolean}} whether the turtle succeeded in digging, {{type|string}} error message&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Attempts to dig the block in front of the turtle.  If successful, [[Turtle.suck|suck()]] is automatically called, placing the item in turtle inventory in the selected slot if possible (block type matches and the slot is not a full stack yet), or in the next available slot.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a hoe is used to attempt to &amp;quot;dig&amp;quot; a dirt block, it will be tilled instead. Tilling is also possible if the space in front of the turtle is empty but dirt exists below that point.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Digs the block in front of the turtle.&lt;br /&gt;
|code=[[print]](turtle.dig())&lt;br /&gt;
|output=true if the turtle could dig the block, false if it could not or no block present.&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Digs the block in front of the turtle, but only if there is a block to dig (saves time).&lt;br /&gt;
|code=if [[turtle.detect]]() then&lt;br /&gt;
  turtle.dig()&lt;br /&gt;
 end&lt;br /&gt;
|output=the turtle digs if there is a block in front.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[turtle.digUp]]&lt;br /&gt;
*[[turtle.digDown]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Turtle_(API)&amp;diff=7416</id>
		<title>Turtle (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Turtle_(API)&amp;diff=7416"/>
				<updated>2016-06-09T11:37:47Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Tilling specifics.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Turtle API is used to work with your [[Turtle|Turtles]].&lt;br /&gt;
&lt;br /&gt;
===Key===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Color  !! Turtles that can perform this&lt;br /&gt;
|-&lt;br /&gt;
| White  ||All&lt;br /&gt;
|-{{row-lightgreen}}&lt;br /&gt;
|Green   || Crafty&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
| Yellow || Mining, Felling, Digging, Farming&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
| Red    || Any tool&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- ##################&lt;br /&gt;
To add additional colors, visit Template:row-lightgreen, copy the source, do a search for Template:row-yourcolor and hit Create Page. ################## --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===API===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! width=&amp;quot;100px&amp;quot; | Return&lt;br /&gt;
! width=&amp;quot;200px&amp;quot; | Method name&lt;br /&gt;
! Description&lt;br /&gt;
! Min version&lt;br /&gt;
|-{{row-lightgreen}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.craft]]({{type|number}} quantity)&lt;br /&gt;
|Craft items using ingredients anywhere in the turtle's inventory and place results in the active slot. If a quantity is specified, it will craft only up to that many items, otherwise, it will craft as many of the items as possible.&lt;br /&gt;
|1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.forward]]()&lt;br /&gt;
|Try to move the turtle forward&lt;br /&gt;
|?&lt;br /&gt;
|- &lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.back]]()&lt;br /&gt;
|Try to move the turtle backward&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.up]]()&lt;br /&gt;
|Try to move the turtle up&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.down]]()&lt;br /&gt;
|Try to move the turtle down &lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.turnLeft]]()&lt;br /&gt;
|Turn the turtle left&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.turnRight]]()&lt;br /&gt;
|Turn the turtle right&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.select]]({{type|number}} slotNum)&lt;br /&gt;
|Make the turtle select slot &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; (1 is top left, 16 (9 in 1.33 and earlier) is bottom right)&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} slot&lt;br /&gt;
|[[turtle.getSelectedSlot]]()&lt;br /&gt;
|Indicates the currently selected inventory slot&lt;br /&gt;
| 1.6&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} count&lt;br /&gt;
|[[turtle.getItemCount]]([&amp;lt;nowiki/&amp;gt;{{type|number}} slotNum])&lt;br /&gt;
|Counts how many items are in the currently selected slot or, if specified, &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} count&lt;br /&gt;
|[[turtle.getItemSpace]]([&amp;lt;nowiki/&amp;gt;{{type|number}} slotNum])&lt;br /&gt;
|Counts how many remaining items you need to fill the stack in the currently selected slot or, if specified, &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|table}} data&lt;br /&gt;
|[[turtle.getItemDetail]]([&amp;lt;nowiki/&amp;gt;{{type|number}} slotNum])&lt;br /&gt;
|Returns the ID string, count and damage values of currently selected slot or, if specified, &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; slot &lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.equipLeft]]()&lt;br /&gt;
|Attempts to equip an item in the current slot to the turtle's left side, switching the previously equipped item back into the inventory&lt;br /&gt;
|1.6&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.equipRight]]()&lt;br /&gt;
|Attempts to equip an item in the current slot to the turtle's right side, switching the previously equipped item back into the inventory&lt;br /&gt;
|1.6&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.attack]]()&lt;br /&gt;
|Attacks in front of the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|{{type|boolean}} success &lt;br /&gt;
|[[turtle.attackUp]]()&lt;br /&gt;
|Attacks above the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.attackDown]]()&lt;br /&gt;
|Attacks under the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.dig]]()&lt;br /&gt;
|Breaks the block in front. With hoe: tills the dirt in front of it.&lt;br /&gt;
|?&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.digUp]]()&lt;br /&gt;
|Breaks the block above.&lt;br /&gt;
|?&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.digDown]]()&lt;br /&gt;
|Breaks the block below. With hoe: tills the dirt beneath the space below it.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.place]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|string}} signText])&lt;br /&gt;
|Places a block of the selected slot in front. Engrave &amp;lt;var&amp;gt;signText&amp;lt;/var&amp;gt; on signs if provided. Collects [[water]] or [[lava]] if the currently selected slot is an empty bucket.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.placeUp]]()&lt;br /&gt;
|Places a block of the selected slot above. Collects water or lava if the currently selected slot is an empty bucket.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.placeDown]]()&lt;br /&gt;
|Places a block of the selected slot below. Collects water or lava if the currently selected slot is an empty bucket.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.detect]]()&lt;br /&gt;
|Detects if there is a block in front.  Does not detect mobs.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.detectUp]]()&lt;br /&gt;
|Detects if there is a block above&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.detectDown]]()&lt;br /&gt;
|Detects if there is a block below&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success, {{type|table}} data/{{type|string}} error message&lt;br /&gt;
|[[turtle.inspect]]()&lt;br /&gt;
|Returns the ID string and metadata of the block in front of the Turtle&lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success, {{type|table}} data/{{type|string}} error message&lt;br /&gt;
|[[turtle.inspectUp]]()&lt;br /&gt;
|Returns the ID string and metadata of the block above the Turtle&lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success, {{type|table}} data/{{type|string}} error message&lt;br /&gt;
|[[turtle.inspectDown]]()&lt;br /&gt;
|Returns the ID string and metadata of the block below the Turtle&lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compare]]()&lt;br /&gt;
|Detects if the block in front is the same as the one in the currently selected slot&lt;br /&gt;
|1.31&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compareUp]]()&lt;br /&gt;
|Detects if the block above is the same as the one in the currently selected slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compareDown]]()&lt;br /&gt;
|Detects if the block below is the same as the one in the currently selected slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compareTo]]({{type|number}} slot)&lt;br /&gt;
|Compare the current selected slot and the given slot to see if the items are the same. Returns true if they are the same, false if not.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.drop]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} count])&lt;br /&gt;
|Drops all items in the selected slot, or specified, drops &amp;lt;var&amp;gt;count&amp;lt;/var&amp;gt; items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e in front of the turtle) it will try to place into the inventory, returning false if the inventory is full.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.dropUp]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} count])&lt;br /&gt;
|Drops all items in the selected slot, or specified, drops &amp;lt;var&amp;gt;count&amp;lt;/var&amp;gt; items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e above the turtle) it will try to place into the inventory, returning false if the inventory is full. &lt;br /&gt;
|1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.dropDown]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} count])&lt;br /&gt;
|Drops all items in the selected slot, or specified, drops &amp;lt;var&amp;gt;count&amp;lt;/var&amp;gt; items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e below the turtle) it will try to place into the inventory, returning false if the inventory is full. If above a furnace, will place item in the top slot.&lt;br /&gt;
|1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.suck]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} amount])&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory in front of the turtle, then places it in the selected slot. If the turtle can't pick up the item, the function returns false. &amp;lt;var&amp;gt;amount&amp;lt;/var&amp;gt; parameter requires ComputerCraft 1.6 or later.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.suckUp]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} amount])&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory above the turtle, then places it in the selected slot. If the turtle can't pick up the item, the function returns false. &amp;lt;var&amp;gt;amount&amp;lt;/var&amp;gt; parameter requires ComputerCraft 1.6 or later.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.suckDown]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} amount])&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory below the turtle, then places it in the selected slot. If the turtle can't pick up the item, the function returns false. &amp;lt;var&amp;gt;amount&amp;lt;/var&amp;gt; parameter requires ComputerCraft 1.6 or later.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.refuel]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} quantity])&lt;br /&gt;
|If the current selected slot contains a fuel item, it will consume it to give the turtle the ability to move.&amp;lt;br /&amp;gt;Added in 1.4 and is only needed in needfuel mode. If the current slot doesn't contain a fuel item, it returns false. Fuel values for different items can be found at [[Turtle.refuel#Fuel_Values]]. If a quantity is specified, it will refuel only up to that many items, otherwise, it will consume all the items in the slot.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} fuel&lt;br /&gt;
|[[turtle.getFuelLevel]]()&lt;br /&gt;
|Returns the current fuel level of the turtle, this is the number of blocks the turtle can move.&amp;lt;br /&amp;gt;If &amp;lt;var&amp;gt;turtleNeedFuel = 0&amp;lt;/var&amp;gt; then it returns &amp;lt;var&amp;gt;&amp;quot;unlimited&amp;quot;&amp;lt;/var&amp;gt;.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} fuel&lt;br /&gt;
|[[turtle.getFuelLimit]]()&lt;br /&gt;
|Returns the maximum amount of fuel a turtle can store - by default, 20,000 for regular turtles, 100,000 for advanced.&amp;lt;br /&amp;gt;If &amp;lt;var&amp;gt;turtleNeedFuel = 0&amp;lt;/var&amp;gt; then it returns &amp;lt;var&amp;gt;&amp;quot;unlimited&amp;quot;&amp;lt;/var&amp;gt;.&lt;br /&gt;
| 1.6&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.transferTo]]({{type|number}} slot [, {{type|number}} quantity])&lt;br /&gt;
|Transfers &amp;lt;var&amp;gt;quantity&amp;lt;/var&amp;gt; items from the selected slot to &amp;lt;var&amp;gt;slot&amp;lt;/var&amp;gt;. If &amp;lt;var&amp;gt;quantity&amp;lt;/var&amp;gt; isn't specified, will attempt to transfer everything in the selected slot to &amp;lt;var&amp;gt;slot&amp;lt;/var&amp;gt;.&lt;br /&gt;
| 1.45&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Turtle_(API)&amp;diff=7415</id>
		<title>Turtle (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Turtle_(API)&amp;diff=7415"/>
				<updated>2016-06-09T11:28:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: dropUp/dropDown pages now exist.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Turtle API is used to work with your [[Turtle|Turtles]].&lt;br /&gt;
&lt;br /&gt;
===Key===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Color  !! Turtles that can perform this&lt;br /&gt;
|-&lt;br /&gt;
| White  ||All&lt;br /&gt;
|-{{row-lightgreen}}&lt;br /&gt;
|Green   || Crafty&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
| Yellow || Mining, Felling, Digging, Farming&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
| Red    || Any tool&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- ##################&lt;br /&gt;
To add additional colors, visit Template:row-lightgreen, copy the source, do a search for Template:row-yourcolor and hit Create Page. ################## --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===API===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! width=&amp;quot;100px&amp;quot; | Return&lt;br /&gt;
! width=&amp;quot;200px&amp;quot; | Method name&lt;br /&gt;
! Description&lt;br /&gt;
! Min version&lt;br /&gt;
|-{{row-lightgreen}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.craft]]({{type|number}} quantity)&lt;br /&gt;
|Craft items using ingredients anywhere in the turtle's inventory and place results in the active slot. If a quantity is specified, it will craft only up to that many items, otherwise, it will craft as many of the items as possible.&lt;br /&gt;
|1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.forward]]()&lt;br /&gt;
|Try to move the turtle forward&lt;br /&gt;
|?&lt;br /&gt;
|- &lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.back]]()&lt;br /&gt;
|Try to move the turtle backward&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.up]]()&lt;br /&gt;
|Try to move the turtle up&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.down]]()&lt;br /&gt;
|Try to move the turtle down &lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.turnLeft]]()&lt;br /&gt;
|Turn the turtle left&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.turnRight]]()&lt;br /&gt;
|Turn the turtle right&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.select]]({{type|number}} slotNum)&lt;br /&gt;
|Make the turtle select slot &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; (1 is top left, 16 (9 in 1.33 and earlier) is bottom right)&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} slot&lt;br /&gt;
|[[turtle.getSelectedSlot]]()&lt;br /&gt;
|Indicates the currently selected inventory slot&lt;br /&gt;
| 1.6&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} count&lt;br /&gt;
|[[turtle.getItemCount]]([&amp;lt;nowiki/&amp;gt;{{type|number}} slotNum])&lt;br /&gt;
|Counts how many items are in the currently selected slot or, if specified, &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} count&lt;br /&gt;
|[[turtle.getItemSpace]]([&amp;lt;nowiki/&amp;gt;{{type|number}} slotNum])&lt;br /&gt;
|Counts how many remaining items you need to fill the stack in the currently selected slot or, if specified, &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|table}} data&lt;br /&gt;
|[[turtle.getItemDetail]]([&amp;lt;nowiki/&amp;gt;{{type|number}} slotNum])&lt;br /&gt;
|Returns the ID string, count and damage values of currently selected slot or, if specified, &amp;lt;var&amp;gt;slotNum&amp;lt;/var&amp;gt; slot &lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.equipLeft]]()&lt;br /&gt;
|Attempts to equip an item in the current slot to the turtle's left side, switching the previously equipped item back into the inventory&lt;br /&gt;
|1.6&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.equipRight]]()&lt;br /&gt;
|Attempts to equip an item in the current slot to the turtle's right side, switching the previously equipped item back into the inventory&lt;br /&gt;
|1.6&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.attack]]()&lt;br /&gt;
|Attacks in front of the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|{{type|boolean}} success &lt;br /&gt;
|[[turtle.attackUp]]()&lt;br /&gt;
|Attacks above the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.attackDown]]()&lt;br /&gt;
|Attacks under the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.dig]]()&lt;br /&gt;
|Breaks the block in front. With hoe: tills the dirt in front of it.&lt;br /&gt;
|?&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.digUp]]()&lt;br /&gt;
|Breaks the block above. With hoe: tills the dirt above it.&lt;br /&gt;
|?&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.digDown]]()&lt;br /&gt;
|Breaks the block below. With hoe: tills the dirt below it.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.place]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|string}} signText])&lt;br /&gt;
|Places a block of the selected slot in front. Engrave &amp;lt;var&amp;gt;signText&amp;lt;/var&amp;gt; on signs if provided. Collects [[water]] or [[lava]] if the currently selected slot is an empty bucket.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.placeUp]]()&lt;br /&gt;
|Places a block of the selected slot above. Collects water or lava if the currently selected slot is an empty bucket.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.placeDown]]()&lt;br /&gt;
|Places a block of the selected slot below. Collects water or lava if the currently selected slot is an empty bucket.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.detect]]()&lt;br /&gt;
|Detects if there is a block in front.  Does not detect mobs.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.detectUp]]()&lt;br /&gt;
|Detects if there is a block above&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.detectDown]]()&lt;br /&gt;
|Detects if there is a block below&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success, {{type|table}} data/{{type|string}} error message&lt;br /&gt;
|[[turtle.inspect]]()&lt;br /&gt;
|Returns the ID string and metadata of the block in front of the Turtle&lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success, {{type|table}} data/{{type|string}} error message&lt;br /&gt;
|[[turtle.inspectUp]]()&lt;br /&gt;
|Returns the ID string and metadata of the block above the Turtle&lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success, {{type|table}} data/{{type|string}} error message&lt;br /&gt;
|[[turtle.inspectDown]]()&lt;br /&gt;
|Returns the ID string and metadata of the block below the Turtle&lt;br /&gt;
|1.64&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compare]]()&lt;br /&gt;
|Detects if the block in front is the same as the one in the currently selected slot&lt;br /&gt;
|1.31&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compareUp]]()&lt;br /&gt;
|Detects if the block above is the same as the one in the currently selected slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compareDown]]()&lt;br /&gt;
|Detects if the block below is the same as the one in the currently selected slot&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} result&lt;br /&gt;
|[[turtle.compareTo]]({{type|number}} slot)&lt;br /&gt;
|Compare the current selected slot and the given slot to see if the items are the same. Returns true if they are the same, false if not.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.drop]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} count])&lt;br /&gt;
|Drops all items in the selected slot, or specified, drops &amp;lt;var&amp;gt;count&amp;lt;/var&amp;gt; items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e in front of the turtle) it will try to place into the inventory, returning false if the inventory is full.&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.dropUp]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} count])&lt;br /&gt;
|Drops all items in the selected slot, or specified, drops &amp;lt;var&amp;gt;count&amp;lt;/var&amp;gt; items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e above the turtle) it will try to place into the inventory, returning false if the inventory is full. &lt;br /&gt;
|1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.dropDown]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} count])&lt;br /&gt;
|Drops all items in the selected slot, or specified, drops &amp;lt;var&amp;gt;count&amp;lt;/var&amp;gt; items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e below the turtle) it will try to place into the inventory, returning false if the inventory is full. If above a furnace, will place item in the top slot.&lt;br /&gt;
|1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.suck]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} amount])&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory in front of the turtle, then places it in the selected slot. If the turtle can't pick up the item, the function returns false. &amp;lt;var&amp;gt;amount&amp;lt;/var&amp;gt; parameter requires ComputerCraft 1.6 or later.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.suckUp]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} amount])&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory above the turtle, then places it in the selected slot. If the turtle can't pick up the item, the function returns false. &amp;lt;var&amp;gt;amount&amp;lt;/var&amp;gt; parameter requires ComputerCraft 1.6 or later.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.suckDown]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} amount])&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory below the turtle, then places it in the selected slot. If the turtle can't pick up the item, the function returns false. &amp;lt;var&amp;gt;amount&amp;lt;/var&amp;gt; parameter requires ComputerCraft 1.6 or later.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.refuel]]([&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;{{type|number}} quantity])&lt;br /&gt;
|If the current selected slot contains a fuel item, it will consume it to give the turtle the ability to move.&amp;lt;br /&amp;gt;Added in 1.4 and is only needed in needfuel mode. If the current slot doesn't contain a fuel item, it returns false. Fuel values for different items can be found at [[Turtle.refuel#Fuel_Values]]. If a quantity is specified, it will refuel only up to that many items, otherwise, it will consume all the items in the slot.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} fuel&lt;br /&gt;
|[[turtle.getFuelLevel]]()&lt;br /&gt;
|Returns the current fuel level of the turtle, this is the number of blocks the turtle can move.&amp;lt;br /&amp;gt;If &amp;lt;var&amp;gt;turtleNeedFuel = 0&amp;lt;/var&amp;gt; then it returns &amp;lt;var&amp;gt;&amp;quot;unlimited&amp;quot;&amp;lt;/var&amp;gt;.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|{{type|number}} fuel&lt;br /&gt;
|[[turtle.getFuelLimit]]()&lt;br /&gt;
|Returns the maximum amount of fuel a turtle can store - by default, 20,000 for regular turtles, 100,000 for advanced.&amp;lt;br /&amp;gt;If &amp;lt;var&amp;gt;turtleNeedFuel = 0&amp;lt;/var&amp;gt; then it returns &amp;lt;var&amp;gt;&amp;quot;unlimited&amp;quot;&amp;lt;/var&amp;gt;.&lt;br /&gt;
| 1.6&lt;br /&gt;
|-&lt;br /&gt;
|{{type|boolean}} success&lt;br /&gt;
|[[turtle.transferTo]]({{type|number}} slot [, {{type|number}} quantity])&lt;br /&gt;
|Transfers &amp;lt;var&amp;gt;quantity&amp;lt;/var&amp;gt; items from the selected slot to &amp;lt;var&amp;gt;slot&amp;lt;/var&amp;gt;. If &amp;lt;var&amp;gt;quantity&amp;lt;/var&amp;gt; isn't specified, will attempt to transfer everything in the selected slot to &amp;lt;var&amp;gt;slot&amp;lt;/var&amp;gt;.&lt;br /&gt;
| 1.45&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7386</id>
		<title>Ender Modem</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7386"/>
				<updated>2016-01-21T06:42:55Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Unaffected by height or weather.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''This page is for the Modem blocks. For the modem API, see [[Modem_(API)|Modem (API)]]''&lt;br /&gt;
{{Block&lt;br /&gt;
|name=Ender Modem&lt;br /&gt;
|image=EnderModem.png&lt;br /&gt;
|id=computercraft:advanced_modem&lt;br /&gt;
|damage-value=0&lt;br /&gt;
|is-peripheral=Yes&lt;br /&gt;
|peripheral-api=Modem (API)&lt;br /&gt;
}}&lt;br /&gt;
'''Ender Modems''' are advanced versions of the [[Wireless Modem]], introduced by ComputerCraft version 1.76 (for Minecraft 1.8). They use the same [[Modem_(API)|Modem API]], but are capable of cross-dimensional transmissions.&lt;br /&gt;
&lt;br /&gt;
They have an extreme range, capable of functioning across distances of up to 2,147,483,647 blocks (2^31-1, unaffected by height or weather), and are compatible with regular Wireless Modem signals. If the modems are not located with the same dimension, however, then the &amp;quot;distance&amp;quot; parameter will be excluded from the resulting [[modem_message (event)|modem_message events]].&lt;br /&gt;
&lt;br /&gt;
Whether or not communications between two modems are possible depends only on the range of the stronger of the two. This means, for example, that a single system running the [[Repeat]] script through an Ender Modem effectively opens up [[Rednet (API)|Rednet]] communications between regular Wireless Modems server-wide; while one Ender Modem-equipped [[Gps (API)|GPS cluster]] per dimension is sufficient to handle most all location requests.&lt;br /&gt;
&lt;br /&gt;
See also: [[Wired Modem]], [[Wireless Modem]].&lt;br /&gt;
&lt;br /&gt;
== Recipe ==&lt;br /&gt;
{{Crafting grid&lt;br /&gt;
 |A1=Gold_Ingot |B1=Gold_Ingot |C1=Gold_Ingot&lt;br /&gt;
 |A2=Gold_Ingot |B2=Eye_of_Ender |C2=Gold_Ingot&lt;br /&gt;
 |A3=Gold_Ingot |B3=Gold_Ingot |C3=Gold_Ingot&lt;br /&gt;
 |Output=Ender_Modem&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
== Example (Modem API)==&lt;br /&gt;
* Place 2 computers and add modems to them by clicking the right mouse button while sneaking.&lt;br /&gt;
* Access them, and start Lua.&lt;br /&gt;
* Once Lua has started, wrap your modem using peripheral.wrap() (something like &amp;quot;modem = peripheral.wrap(&amp;quot;&amp;lt;side of modem&amp;gt;&amp;quot;)&lt;br /&gt;
* Type &amp;quot;[[modem_(API)|modem.open]] (&amp;lt;A modem port number, anything from 1 to 65535&amp;gt;)&amp;quot; on one computer.&lt;br /&gt;
* Check if there exists a connection: a dim, red light should be found on the modem.&lt;br /&gt;
* Now, type &amp;quot;[[modem_(API)|modem.transmit]] (&amp;lt;Same number as above&amp;gt;, &amp;lt;Also the same number&amp;gt;, 'Your message')&amp;quot; on the other computer. This should send your message to all computers connected.&lt;br /&gt;
* Opening the first computer should show the message written on the second computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modem as a Peripheral==&lt;br /&gt;
To use a Modem as a peripheral, you need to either call a method directly using [[peripheral.call]](), or, wrap the modem using the [[Peripheral_(API)|Peripheral API]]. Wrapped modems provide all functions listed in the [[Modem_(API)|Modem API]].&lt;br /&gt;
&lt;br /&gt;
For this example, we have a Modem connected to the top of our [[Computer]], we are going to open channel 5:&lt;br /&gt;
&lt;br /&gt;
 ''-- Immediately invoke a method without wrapping''&lt;br /&gt;
 [[peripheral.call]]( &amp;quot;top&amp;quot;, &amp;quot;open&amp;quot;, 5 )&lt;br /&gt;
&lt;br /&gt;
 ''-- You can also &amp;quot;wrap&amp;quot; the peripheral side to a variable:''&lt;br /&gt;
 local modem = [[peripheral.wrap]]( &amp;quot;top&amp;quot; )&lt;br /&gt;
 [[modem.open]]( 5 )&lt;br /&gt;
&lt;br /&gt;
{{BlocksItemsList}}&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Disk_Drive&amp;diff=7379</id>
		<title>Disk Drive</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Disk_Drive&amp;diff=7379"/>
				<updated>2016-01-16T02:04:50Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: 1.77&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Block&lt;br /&gt;
|name=Disk Drive&lt;br /&gt;
|image=Iso_DiskDrive.png&lt;br /&gt;
|id=ComputerCraft:CC-Peripheral&lt;br /&gt;
|damage-value=0&lt;br /&gt;
|is-peripheral=Yes&lt;br /&gt;
|peripheral-api=Disk (API)&lt;br /&gt;
}}&lt;br /&gt;
The Disk Drive arrived with the [[ComputerCraft]] 1.2 update and with that also came [[Floppy Disk]]s. The Disk Drive is an object that, when placed adjacently but not diagonally next to a [[computer]], does the same as a disk drive for real computers in the real world would do: they allow the access to portable data storage devices ([[Floppy Disk]]s). Since the [[ComputerCraft]] 1.6 update, both types of [[Pocket Computer]]s can also be inserted into disk drives, allowing access to their files. As of 1.77, all systems other than [[Command Computer]]s can be used as disks.&lt;br /&gt;
== Recipe ==&lt;br /&gt;
{{Crafting grid&lt;br /&gt;
 |A1=stone |B1=stone    |C1=stone&lt;br /&gt;
 |A2=stone |B2=Redstone |C2=stone&lt;br /&gt;
 |A3=stone |B3=Redstone |C3=stone&lt;br /&gt;
 |Output=Disk_Drive&lt;br /&gt;
 }}&lt;br /&gt;
== Usage ==&lt;br /&gt;
[[File:Computer_w_DiskDrive_w_Monitor.png|frame|428x241px|right|A 2x2 [[Monitor]], connected to a [[Computer]], with a [[Disk Drive]] connected.]]&lt;br /&gt;
[[File:DiskDriveGUI.png|thumb|350px|GUI of the Disk Drive]]&lt;br /&gt;
To use a disk drive, place it adjacently but not diagonally next to a computer (left, right, top, bottom, front, or back side). Insert a disk by right-clicking on the disk drive and placing the disk in the slot above the inventory. When a disk is inserted, a [[Disk (event)|disk]] event is fired, and when a disk is removed or ejected, a [[Disk eject (event)|disk_eject]] event is fired.&lt;br /&gt;
&lt;br /&gt;
If you sneak and right click the disk drive with a disk/music disc in 1.4+ the disk will placed into the Disk Drive without needing to open the disk drives interface.&lt;br /&gt;
&lt;br /&gt;
In [[ComputerCraft]] 1.6 and above, [[Pocket Computer]]s can also be inserted into a disk drive to browse their files. 1.77 and later allow all systems othat than [[Command Computer]]s.&lt;br /&gt;
&lt;br /&gt;
==Renaming with Anvils==&lt;br /&gt;
In [[ComputerCraft]] 1.7 and above Disk Drives can be renamed using [http://minecraft.gamepedia.com/Anvil#Renaming Anvils].&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
See [[Disk (API)]] for the disk API.&lt;br /&gt;
&lt;br /&gt;
{{BlocksItemsList}}&lt;br /&gt;
[[Category:Blocks]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Modem.isPresentRemote&amp;diff=7372</id>
		<title>Modem.isPresentRemote</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Modem.isPresentRemote&amp;diff=7372"/>
				<updated>2016-01-10T23:13:07Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=''modem''.isPresentRemote |args={{type|string}} peripheralName |returns={{type|boolean}} present |api=Modem |addon=ComputerCraft |desc=Tells you...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=''modem''.isPresentRemote&lt;br /&gt;
|args={{type|string}} peripheralName&lt;br /&gt;
|returns={{type|boolean}} present&lt;br /&gt;
|api=Modem&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Tells you whether a peripheral is currently connected to the [[Wired Modem]]. Note that [[peripheral.isPresent]]() can do the same for all peripherals attached to the computer, through modems or otherwise.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Outputs whether a peripheral is detected under the specified network name.&lt;br /&gt;
|code=local modem = [[peripheral.wrap]](&amp;quot;top&amp;quot;)  -- Or whichever side the modem is connected to.&lt;br /&gt;
 &lt;br /&gt;
 print( modem.isPresentRemote( &amp;quot;printer_0&amp;quot; ) )&lt;br /&gt;
|output=&amp;quot;true&amp;quot; if a peripheral called &amp;quot;printer_0&amp;quot; is connected to the modem, otherwise &amp;quot;false&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Modem.getTypeRemote&amp;diff=7371</id>
		<title>Modem.getTypeRemote</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Modem.getTypeRemote&amp;diff=7371"/>
				<updated>2016-01-10T01:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=''modem''.getTypeRemote |args={{type|string}} peripheralName |returns={{type|string}} peripheralType |api=Modem |addon=ComputerCraft |desc=Retur...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=''modem''.getTypeRemote&lt;br /&gt;
|args={{type|string}} peripheralName&lt;br /&gt;
|returns={{type|string}} peripheralType&lt;br /&gt;
|api=Modem&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Returns the type of peripheral that's connected to the [[Wired Modem]], under the specified network name. Note that [[peripheral.getType]]() can do exactly the same thing for ALL peripherals which are attached to the system, through modems or otherwise.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Prints the type of the first peripheral detected through the modem.&lt;br /&gt;
|code=local modem = [[peripheral.wrap]](&amp;quot;left&amp;quot;)  -- Or whatever side the modem is connected to.&lt;br /&gt;
 &lt;br /&gt;
 print( modem.getTypeRemote( [[modem.getNamesRemote]]()[1] or &amp;quot;none&amp;quot;) )&lt;br /&gt;
|output=Either &amp;quot;[[computer]]&amp;quot;, &amp;quot;[[Disk Drive|drive]]&amp;quot;, &amp;quot;[[monitor]]&amp;quot;, &amp;quot;[[printer]]&amp;quot;, or nothing if nothing is connected.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Modem.getNamesRemote&amp;diff=7370</id>
		<title>Modem.getNamesRemote</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Modem.getNamesRemote&amp;diff=7370"/>
				<updated>2016-01-09T14:12:16Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{Function |name=''modem''.getNamesRemote |returns={{type|table}} peripheralNames |api=Modem |addon=ComputerCraft |desc=Essentially the same as peripheral.getNames(), whic...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Function&lt;br /&gt;
|name=''modem''.getNamesRemote&lt;br /&gt;
|returns={{type|table}} peripheralNames&lt;br /&gt;
|api=Modem&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Essentially the same as [[peripheral.getNames]](), which returns a numerically-indexed table containing the names of all peripherals attached to the system; however, this function only returns peripherals which are specifically connected to the [[Wired Modem]] you called it through.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Prints a list of all peripherals attached to a modem, along with their type.&lt;br /&gt;
|code=local modem = [[peripheral.wrap]](&amp;quot;top&amp;quot;)  -- Or whatever side the modem is attached to.&lt;br /&gt;
 &lt;br /&gt;
 local periList = modem.getNamesRemote()&lt;br /&gt;
 &lt;br /&gt;
 for i = 1, #periList do&lt;br /&gt;
 	print(&amp;quot;I have a &amp;quot;..[[peripheral.getType]](periList[i])..&amp;quot; attached as \&amp;quot;&amp;quot;..periList[i]..&amp;quot;\&amp;quot;.&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
|output=Depending on the peripherals available, along the lines of:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;I have a monitor attached as &amp;quot;monitor_0&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
I have a printer attached as &amp;quot;printer_0&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
etc...&amp;lt;/i&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Modem_(API)&amp;diff=7369</id>
		<title>Modem (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Modem_(API)&amp;diff=7369"/>
				<updated>2016-01-09T03:33:13Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Additional functions for wired modems.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''This page is for the modem API. For the blocks, see [[Modem]].''&lt;br /&gt;
{{PeripheralAPI}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available to [[peripheral.wrap|wrapped]] [[Wireless Modem|Wireless]], [[Ender Modem|Ender]], or [[Wired Modem|Wired]] Modems.&lt;br /&gt;
&lt;br /&gt;
Direct use of modems requires understanding of the &amp;quot;channels&amp;quot; system - these are essentially networks which can be [[modem.open|opened]], [[modem.close|closed]] and [[modem_message_(event)|listened]] on by any [[Computer]] within range, without need of independent computer IDs. To interact with channels, one must [[peripheral.wrap|wrap]] or otherwise interact directly with the peripheral. The [[Rednet_(API)|Rednet API]] acts as a wrapper for your modem's functionality, handling the channel system for you (basically by having each system listen on a channel equal to its ID number).&lt;br /&gt;
&lt;br /&gt;
Functions in ''italics'' are only available to [[Wired Modem]]s, which are able to connect to remote peripherals and control them from afar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{API table|Modem|image=Grid disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.isOpen|''modem''.isOpen]]({{type|number}} channel)&lt;br /&gt;
|{{type|boolean}} isChannelOpen&lt;br /&gt;
|Checks to see if ''channel'' is open.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.open|''modem''.open]]({{type|number}} channel)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Opens ''channel'' to allow for listening. The channel specified must be larger than 0 and less than 65535.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.close|''modem''.close]]({{type|number}} channel)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Closes an open channel to disallow listening.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.closeAll|''modem''.closeAll]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Closes all open channels.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.transmit|''modem''.transmit]]({{type|number}} channel, {{type|number}} replyChannel, {{type|any}} message)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Transmits a message on the specified channel.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.isWireless|''modem''.isWireless]]()&lt;br /&gt;
|{{type|boolean}} isWireless&lt;br /&gt;
|Returns if the modem is wireless or wired.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|''[[modem.getNamesRemote|modem.getNamesRemote]]()''&lt;br /&gt;
|{{type|table}} peripheralNames&lt;br /&gt;
|Returns a table containing the network names of the peripherals connected to the modem.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|''[[modem.getTypeRemote|modem.getTypeRemote]]({{type|string}} peripheralName)''&lt;br /&gt;
|{{type|string}} type&lt;br /&gt;
|Returns the type of a given peripheral connected to the modem.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|''[[modem.isPresentRemote|modem.isPresentRemote]]({{type|string}} peripheralName)''&lt;br /&gt;
|{{type|boolean}} present&lt;br /&gt;
|Returns whether a given peripheral is actively connected to the modem.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|''[[modem.getMethodsRemote|modem.getMethodsRemote]]({{type|string}} peripheralName)''&lt;br /&gt;
|{{type|table}} methodNames&lt;br /&gt;
|Returns a list strings naming the functions available to the specified peripheral.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|''[[modem.callRemote|modem.callRemote]]({{type|string}} peripheralName, {{type|string}} method, ...)''&lt;br /&gt;
|any&lt;br /&gt;
|Has the remote peripheral execute its specified function.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
|name=modem_message&lt;br /&gt;
|return1={{type|string}} modemSide&lt;br /&gt;
|return2={{type|number}} senderChannel&lt;br /&gt;
|return3={{type|number}} replyChannel&lt;br /&gt;
|return4= message&lt;br /&gt;
|return5={{type|number}} distance&lt;br /&gt;
|desc=Fired when a modem message is received.}}&lt;br /&gt;
&lt;br /&gt;
== Sending Messages ==&lt;br /&gt;
Sending a message is simple and does not require that you open any channels. Simply use the transmit function like so:&lt;br /&gt;
 local modem = [[peripheral.wrap]](&amp;quot;right&amp;quot;) -- Wraps the modem on the right side.&lt;br /&gt;
 [[modem.transmit]](3, 1, &amp;quot;Hello world!&amp;quot;) &lt;br /&gt;
 &lt;br /&gt;
 [[peripheral.call]](&amp;quot;right&amp;quot;, &amp;quot;transmit&amp;quot;, 3, 1, &amp;quot;This will also work!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
What did that do? First I wrapped the peripheral in order to interact with it. Second, I used [[modem.transmit]](channel, replyChannel, message) in order to send my message. In case you were wondering, the reply channel is captured by the listening computer and suggests which channel they should reply on.&lt;br /&gt;
&lt;br /&gt;
== Receiving Messages ==&lt;br /&gt;
Receiving a message requires that you be familiar with [[os.pullEvent|events]]. An example:&lt;br /&gt;
 local modem = [[peripheral.wrap]](&amp;quot;left&amp;quot;)&lt;br /&gt;
 [[modem.open]](3)  -- Open channel 3 so that we can listen on it&lt;br /&gt;
 local event, modemSide, senderChannel, &lt;br /&gt;
   replyChannel, message, senderDistance = [[os.pullEvent]](&amp;quot;modem_message&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;I just received a message on channel: &amp;quot;..senderChannel)&lt;br /&gt;
 print(&amp;quot;I should apparently reply on channel: &amp;quot;..replyChannel)&lt;br /&gt;
 print(&amp;quot;The modem receiving this is located on my &amp;quot;..modemSide..&amp;quot; side&amp;quot;)&lt;br /&gt;
 print(&amp;quot;The message was: &amp;quot;..message)&lt;br /&gt;
 print(&amp;quot;The sender is: &amp;quot;..(senderDistance or &amp;quot;an unknown number of&amp;quot;)..&amp;quot; blocks away from me.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
So what did I do? Quite simply, I called [[os.pullEvent]]() with the string argument &amp;quot;modem_message&amp;quot;, which blocks all other events from being returned. When [[modem_message_(event)|the &amp;quot;modem_message&amp;quot; event]] is captured, it returns the arguments: event, modemSide, senderChannel, replyChannel, message, senderDistance. I captured these and then printed them out.&lt;br /&gt;
&lt;br /&gt;
== Modem Limitations ==&lt;br /&gt;
* You can only open 128 channels at any given time, per modem.&lt;br /&gt;
* The highest channel you can open is 65535.&lt;br /&gt;
* You can listen on more than one channel at a time. For example, if the modem has channel 3 and channel 5 open, and somebody sends a message on channel 5, the modem will receive it. If a message is sent on channel 3, the modem will also receive the message.&lt;br /&gt;
* Sending messages does not require you to open any channels prior to sending it.&lt;br /&gt;
* If you aren't receiving a message when you think you should, check to make sure that you have opened the channel first.&lt;br /&gt;
* Modems and channels are not secure - if you are sending a message using the Modem API, messages are still available to any computer listening on the sent channel. By extension, the [[rednet (API)|Rednet API]] (which handles your modems for you using their peripheral APIs) is also insecure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripheral APIs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7368</id>
		<title>Ender Modem</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7368"/>
				<updated>2015-12-27T11:47:58Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''This page is for the Modem blocks. For the modem API, see [[Modem_(API)|Modem (API)]]''&lt;br /&gt;
{{Block&lt;br /&gt;
|name=Ender Modem&lt;br /&gt;
|image=EnderModem.png&lt;br /&gt;
|id=computercraft:advanced_modem&lt;br /&gt;
|damage-value=0&lt;br /&gt;
|is-peripheral=Yes&lt;br /&gt;
|peripheral-api=Modem (API)&lt;br /&gt;
}}&lt;br /&gt;
'''Ender Modems''' are advanced versions of the [[Wireless Modem]], introduced by ComputerCraft version 1.76 (for Minecraft 1.8). They use the same [[Modem_(API)|Modem API]], but are capable of cross-dimensional transmissions.&lt;br /&gt;
&lt;br /&gt;
They have an extreme range, capable of functioning across distances of up to 2,147,483,647 blocks (2^31-1), and are compatible with regular Wireless Modem signals. If the modems are not located with the same dimension, however, then the &amp;quot;distance&amp;quot; parameter will be excluded from the resulting [[modem_message (event)|modem_message events]].&lt;br /&gt;
&lt;br /&gt;
Whether or not communications between two modems are possible depends only on the range of the stronger of the two. This means, for example, that a single system running the [[Repeat]] script through an Ender Modem effectively opens up [[Rednet (API)|Rednet]] communications between regular Wireless Modems server-wide; while one Ender Modem-equipped [[Gps (API)|GPS cluster]] per dimension is sufficient to handle most all location requests.&lt;br /&gt;
&lt;br /&gt;
See also: [[Wired Modem]], [[Wireless Modem]].&lt;br /&gt;
&lt;br /&gt;
== Recipe ==&lt;br /&gt;
{{Crafting grid&lt;br /&gt;
 |A1=Gold_Ingot |B1=Gold_Ingot |C1=Gold_Ingot&lt;br /&gt;
 |A2=Gold_Ingot |B2=Eye_of_Ender |C2=Gold_Ingot&lt;br /&gt;
 |A3=Gold_Ingot |B3=Gold_Ingot |C3=Gold_Ingot&lt;br /&gt;
 |Output=Ender_Modem&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
== Example (Modem API)==&lt;br /&gt;
* Place 2 computers and add modems to them by clicking the right mouse button while sneaking.&lt;br /&gt;
* Access them, and start Lua.&lt;br /&gt;
* Once Lua has started, wrap your modem using peripheral.wrap() (something like &amp;quot;modem = peripheral.wrap(&amp;quot;&amp;lt;side of modem&amp;gt;&amp;quot;)&lt;br /&gt;
* Type &amp;quot;[[modem_(API)|modem.open]] (&amp;lt;A modem port number, anything from 1 to 65535&amp;gt;)&amp;quot; on one computer.&lt;br /&gt;
* Check if there exists a connection: a dim, red light should be found on the modem.&lt;br /&gt;
* Now, type &amp;quot;[[modem_(API)|modem.transmit]] (&amp;lt;Same number as above&amp;gt;, &amp;lt;Also the same number&amp;gt;, 'Your message')&amp;quot; on the other computer. This should send your message to all computers connected.&lt;br /&gt;
* Opening the first computer should show the message written on the second computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modem as a Peripheral==&lt;br /&gt;
To use a Modem as a peripheral, you need to either call a method directly using [[peripheral.call]](), or, wrap the modem using the [[Peripheral_(API)|Peripheral API]]. Wrapped modems provide all functions listed in the [[Modem_(API)|Modem API]].&lt;br /&gt;
&lt;br /&gt;
For this example, we have a Modem connected to the top of our [[Computer]], we are going to open channel 5:&lt;br /&gt;
&lt;br /&gt;
 ''-- Immediately invoke a method without wrapping''&lt;br /&gt;
 [[peripheral.call]]( &amp;quot;top&amp;quot;, &amp;quot;open&amp;quot;, 5 )&lt;br /&gt;
&lt;br /&gt;
 ''-- You can also &amp;quot;wrap&amp;quot; the peripheral side to a variable:''&lt;br /&gt;
 local modem = [[peripheral.wrap]]( &amp;quot;top&amp;quot; )&lt;br /&gt;
 [[modem.open]]( 5 )&lt;br /&gt;
&lt;br /&gt;
{{BlocksItemsList}}&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Rednet_(API)&amp;diff=7367</id>
		<title>Rednet (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Rednet_(API)&amp;diff=7367"/>
				<updated>2015-12-27T11:46:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: /* Range */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''For a tutorial on how to use the API, visit [[Rednet Tutorial]].''&lt;br /&gt;
&lt;br /&gt;
The Rednet API allows systems to communicate between each other without using redstone. It serves as a wrapper for the [[modem (API)|modem API]], offering ease of functionality (particularly in regards to [[Repeat|repeating signals]]) with some expense of fine control. &lt;br /&gt;
&lt;br /&gt;
In order to send and receive data, a [[modem]] (either [[Wired Modem|wired]], [[Wireless Modem|wireless]], or [[Ender Modem|ender]]) is required. The data reaches any possible destinations immediately after sending it, but is [[#Range|range limited]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
{{API table|rednet|image=Grid_disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.open]]({{type|string}} side)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Tells the computer that the side can be used for networking.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.close]]({{type|string}} side)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Tells the computer that the side can no longer be used for networking.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.send]]({{type|number}} receiverID, {{type|any}} message, [&amp;lt;nowiki/&amp;gt;{{type|string}} protocol])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Sends a message &amp;quot;intended&amp;quot; for another system with a specific ID, using the currently opened sides. The &amp;lt;var&amp;gt;receiverID&amp;lt;/var&amp;gt; is the ID {{type|number}} (note - '''not''' a {{type|string}}) of the computer you're sending the message to. The [[Variables|types]] that can be sent as the message vary depending on the version of ComputerCraft in use.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.broadcast]]({{type|any}} message, [&amp;lt;nowiki/&amp;gt;{{type|string}} protocol])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Sends the message to ''all'' connected and open computers.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.receive]]([&amp;lt;nowiki/&amp;gt; [&amp;lt;nowiki/&amp;gt;{{type|string}} protocolFilter, ] {{type|number}} timeout])&lt;br /&gt;
|{{type|number}} senderID, {{type|any}} message, {{type|number}} distance / {{type|string}} protocol&lt;br /&gt;
|Waits until a rednet message of the specified protocol has been received, or until &amp;lt;var&amp;gt;timeout&amp;lt;/var&amp;gt; seconds have passed. Leave all arguments empty to wait for any message indefinitely. If only a single, numerical argument is passed, will wait that many seconds for a message of any protocol. Versions of ComputerCraft prior to 1.6 may return the distance to the transmitting computer - 1.6 or later returns message protocols instead, though distance can still be obtained via direct use of the [[Modem (API)|Modem API]].}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.isOpen]]({{type|string}} side)&lt;br /&gt;
|{{type|boolean}} isOpen&lt;br /&gt;
|Returns [[Boolean_(type)|true]] if the wireless modem is open.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.host]]({{type|string}} protocol, {{type|string}} hostname)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Registers &amp;lt;var&amp;gt;hostname&amp;lt;/var&amp;gt; against &amp;lt;var&amp;gt;protocol&amp;lt;/var&amp;gt; for the purposes of [[rednet.lookup]](). '''Only available in ComputerCraft 1.6 and above.'''}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.unhost]]({{type|string}} protocol, {{type|string}} hostname)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Unregisters &amp;lt;var&amp;gt;hostname&amp;lt;/var&amp;gt; from &amp;lt;var&amp;gt;protocol&amp;lt;/var&amp;gt;. '''Only available in ComputerCraft 1.6 and above.'''&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.lookup]]({{type|string}} protocol, {{type|string}} hostname)&lt;br /&gt;
|{{type|number}} ID1, {{type|number}} ID2, ...&lt;br /&gt;
|Searches the local network for systems registered with a matching &amp;lt;var&amp;gt;hostname&amp;lt;/var&amp;gt; and/or &amp;lt;var&amp;gt;protocol&amp;lt;/var&amp;gt;, and returns matching IDs found. '''Only available in ComputerCraft 1.6 and above.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.run]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Internal use function - runs automatically and does not need to be called directly. Waits for [[Modem_message_(event)|modem_message]] events to appear within the event queue and generates corresponding [[Rednet_message_(event)|rednet_message]] events for use with this API. Also responds to [[rednet.lookup]]() requests.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
{{Event|name=[[rednet_message_(event)|rednet_message]]&lt;br /&gt;
|desc=Fired when a rednet message is received (can be pulled via [[os.pullEvent|os.pullEvent()]] directly as an alternative to using [[rednet.receive|rednet.receive()]]).&lt;br /&gt;
|return1={{type|number}} senderId&lt;br /&gt;
|return2={{type|any}} message&lt;br /&gt;
|return3={{type|number}} distance / {{type|string}} protocol&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Range==&lt;br /&gt;
The range of a wireless network transmission can be determined via the following formula:&lt;br /&gt;
&lt;br /&gt;
 minRange + (position.yCoord - 96.0) * ((maxRange - minRange) / ((world.getHeight() - 1) - 96.0))&lt;br /&gt;
&lt;br /&gt;
Where, for a [[Wireless Modem]]:&lt;br /&gt;
&lt;br /&gt;
 minRange = 64  (or 16 in a storm)&lt;br /&gt;
 maxRange = 384 (or 96 in a storm)&lt;br /&gt;
 world.getHeight() = 256&lt;br /&gt;
&lt;br /&gt;
For an [[Ender Modem]], the maximum range is thought to be 2,147,483,647 blocks. It's unknown if this is affected by world height or weather.&lt;br /&gt;
&lt;br /&gt;
Catch is, that formula is quite capable of returning values that are well below 0... More research is required, it seems. Anyway, min/max range figures can be altered in [[ComputerCraft.cfg]], and the maximum range of a system located at world height will generally be equal to the maxRange for the current weather.&lt;br /&gt;
&lt;br /&gt;
Even for the purposes of two-way communications, only the system with the best range is checked - a system located at the bottom of the world may hence send to and receive from a system at the top. Range is calculated in three dimensions, so the area a given system can reach wirelessly is represented by a sphere.&lt;br /&gt;
&lt;br /&gt;
For wired networks, range between devices is 256 blocks of [[Networking_Cable|network cable]] (unconfigurable). Either method of communication works regardless as to whether the intervening chunks are loaded or not.&lt;br /&gt;
&lt;br /&gt;
As of ComputerCraft 1.6, a [[Repeat|repeater script]] is available to all systems by default.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
Introduced by ComputerCraft 1.6, &amp;quot;protocols&amp;quot; are simple string names indicating what [[rednet.send|sent messages]] are about. [[rednet.receive|Receiving systems]] may filter messages according to their protocols, thereby automatically ignoring incoming messages which don't specify an identical string. It's also possible to [[rednet.lookup|lookup]] which systems in the area are interested in certain protocols, hence making it easier to determine where given messages should be sent in the first place.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Before the creation of the in-game wireless networking API, the term &amp;quot;Rednet&amp;quot; referred to a system created by a ComputerCraft user based on bundled cables from the popular Minecraft mod [http://www.eloraam.com RedPower]. That also allowed communication between computers, but the data was transferred slowly - every bit was converted to redstone signal (using the [[redstone (API)|redstone API]]) that lasted about 0.05 seconds (the length of a Minecraft &amp;quot;tick&amp;quot;). That system was rendered redundant by the release of ComputerCraft 1.3, as this heralded the arrival of [[Wireless Modem|wireless networking]] to the mod and allowed instant communications between computers.&lt;br /&gt;
&lt;br /&gt;
Later, ComputerCraft 1.51 brought forward [[Wired Modem]]s, which could not only be used for regular network communications, but to interact with [[peripheral]]s remotely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
In current versions of ComputerCraft (1.5 or later), Rednet is not to be considered a &amp;quot;secure&amp;quot; method of communication. The identity data indicating who sent a given message is set ''by the sender'', and hence cannot be trusted. Messages intended for a given system may be received and read by any other system in range.&lt;br /&gt;
&lt;br /&gt;
This is because Rednet is simply a convenience wrapper for the [[modem (API)|modem API]], and while it typically sends/receives using channel numbers matching the IDs of systems you control, the latter offers ''complete control'' over channel usage. Another user can hence easily task the modem API directly to sniff and find out what messages a computer is receiving if he knows (or can even guess) its ID, or pretend to send from any ID he wishes.&lt;br /&gt;
&lt;br /&gt;
When using Rednet for anything with security implications, be sure to implement your own methods of protection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Deprecated Functions==&lt;br /&gt;
{{Deprecated&lt;br /&gt;
|plural=yes&lt;br /&gt;
|type=These functions&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{API table|Deprecated Rednet Functions|image=Grid disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.announce]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Broadcasts an empty rednet message. Removed from ComputerCraft by version ''1.5'' in favor of [[rednet.broadcast]]()&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Repeat&amp;diff=7366</id>
		<title>Repeat</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Repeat&amp;diff=7366"/>
				<updated>2015-12-27T11:43:41Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Added by ComputerCraft 1.6, the &amp;quot;repeat&amp;quot; script can be started by typing its name into any system with an attached [[modem]] (either [[Wired Modem|wired]], [[Wireless Modem|wireless]], or [[Ender Modem|ender]]).&lt;br /&gt;
&lt;br /&gt;
While running, it constantly monitors modem channel 65533 for incoming rednet messages, and re-sends anything it detects (as of CC 1.6, all messages sent via [[rednet.send|rednet.send()]] are automatically distributed both on the channel the coder specifies ''and'' on channel 65533, making it possible for repeater systems to pick them up without monitoring the entire channel range).&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that the [[Rednet_(API)#Range|wireless range]] of a given system will be higher the closer it is to world height, and that two-way communications are possible between systems so long as at least ''one'' of them has sufficient range, one repeater system placed at max altitude can provide coverage between quite a large number of systems down below that otherwise might not be able to reach each other. If an [[Ender Modem]] is used, then a single repeater system will typically cover the needs of an entire server.&lt;br /&gt;
&lt;br /&gt;
The system running the repeat script will maintain a visible running tally of how many messages it has repeated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Launching==&lt;br /&gt;
If you wish to have a system automatically boot the repeat script every time it becomes chunk-loaded, you might create a [[startup]] script with the following content:&lt;br /&gt;
&lt;br /&gt;
 [[shell.run]](&amp;quot;repeat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
If you wish to continue using a system while it's acting as a repeater, consider firing it up in a new [[multishell]] tab:&lt;br /&gt;
&lt;br /&gt;
 [[bg]] repeat&lt;br /&gt;
&lt;br /&gt;
[[Category:Programs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Peripherals_(program)&amp;diff=7365</id>
		<title>Peripherals (program)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Peripherals_(program)&amp;diff=7365"/>
				<updated>2015-12-27T11:41:53Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Added by ComputerCraft 1.76, &amp;quot;peripherals&amp;quot; a [[CraftOS Shell|CraftOS Shell command]] which simply lists all [[peripheral]]s attached to the system. Output is in a &amp;quot;&amp;lt;side&amp;gt; (&amp;lt;type&amp;gt;)&amp;quot; format.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Peripherals_(program)&amp;diff=7364</id>
		<title>Peripherals (program)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Peripherals_(program)&amp;diff=7364"/>
				<updated>2015-12-27T11:40:29Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;Added by ComputerCraft 1.76, &amp;quot;peripherals&amp;quot; a CraftOS Shell command which simply lists all peripherals attached to the system. Output is formatted in a &amp;quot;&amp;lt;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Added by ComputerCraft 1.76, &amp;quot;peripherals&amp;quot; a [[CraftOS Shell|CraftOS Shell command]] which simply lists all [[peripheral]]s attached to the system. Output is formatted in a &amp;quot;&amp;lt;side&amp;gt; (&amp;lt;type&amp;gt;)&amp;quot; format.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=CraftOS_Shell&amp;diff=7363</id>
		<title>CraftOS Shell</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=CraftOS_Shell&amp;diff=7363"/>
				<updated>2015-12-27T11:36:01Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: peripherals script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
CraftOS Shell Programs&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Program Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-alias&amp;quot;&amp;gt;[[alias]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;alias &amp;lt;alias&amp;gt; &amp;lt;program&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Maps an alias string to a program.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-apis&amp;quot;&amp;gt;[[apis]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;apis&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Lists all loaded APIs.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-apis&amp;quot;&amp;gt;[[bg]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;bg &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Opens the specified script in a new [[multishell]] tab. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Added by ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-cd&amp;quot;&amp;gt;[[cd]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;cd &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Changes to the specified directory&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-clear&amp;quot;&amp;gt;[[clear]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;clear&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Clears the terminal.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-copy&amp;quot;&amp;gt;[[copy]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;copy &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Copies a source file or folder to a destination&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-dj&amp;quot;&amp;gt;[[delete]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;delete &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Deletes the specified file (in the same manner as [[rm]]).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-dj&amp;quot;&amp;gt;[[dj]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;dj&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Music box DJ - use &amp;lt;tt&amp;gt;dj&amp;lt;/tt&amp;gt; for help.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-drive&amp;quot;&amp;gt;[[drive]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;drive&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;drive &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Lists the mount location of the current directory, or the path specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-edit&amp;quot;&amp;gt;[[edit]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;edit &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Edits the file specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-eject&amp;quot;&amp;gt;[[eject]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;eject &amp;lt;side&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Ejects the disk on the side specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-exit&amp;quot;&amp;gt;[[exit]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Exits the currently running shell session - if it is the only shell session, the computer will power off.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-exit&amp;quot;&amp;gt;[[fg]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;fg &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Opens the specified script in a new [[multishell]] tab, then switches to it. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Added by ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-gps&amp;quot;&amp;gt;[[Gps (program)|gps]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;gps &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Minecraft Global Positioning tool. Use &amp;lt;tt&amp;gt;gps&amp;lt;/tt&amp;gt; for help.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-help&amp;quot;&amp;gt;[[help]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;help&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;help &amp;lt;topic&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Help utility. Opens the specified topic, or the introduction if no topic is specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-id&amp;quot;&amp;gt;[[id]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;id &amp;lt;side&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the ID of the computer, or if a side is specified, the ID of the disk in the specified side.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-label&amp;quot;&amp;gt;[[label]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;label&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Gets and sets the ID of the computer, or, the ID of a disk in a specified side. Use &amp;lt;tt&amp;gt;label&amp;lt;/tt&amp;gt; for help.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-list&amp;quot;&amp;gt;[[list]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;list&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;list &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Lists the content of the current directory, or, the directory specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-lua&amp;quot;&amp;gt;[[lua]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;lua&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Interactive Lua interpreter at the shell.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-mkdir&amp;quot;&amp;gt;[[mkdir]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;mkdir &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Makes the directory at the path specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-monitor&amp;quot;&amp;gt;[[Monitor (program)|monitor]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;monitor &amp;lt;side&amp;gt; &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Redirects a specified program to a monitor on the specified side.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-move&amp;quot;&amp;gt;[[move]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;move &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Moves a file or folder at a specified source path to the specified destination path.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-move&amp;quot;&amp;gt;[[multishell]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;multishell&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Opens a new instance of multishell, running within the ''current'' multishell session. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Added by ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-pastebin&amp;quot;&amp;gt;[[Pastebin_(program)|pastebin]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;pastebin &amp;lt;get/run/put&amp;gt; &amp;lt;pastebin code/file&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Allows the user to either retrieve a file from [http://pastebin.com/ pastebin.com], run it directly after downloading, or upload a file from the computer/turtle.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-peripherals&amp;quot;&amp;gt;[[peripherals_(program)|peripherals]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;peripherals&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Lists all peripherals attacked to the system.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-programs&amp;quot;&amp;gt;[[programs]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;programs&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Lists all programs on the system.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-reboot&amp;quot;&amp;gt;[[reboot]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;reboot&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Reboots the Computer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-redprobe&amp;quot;&amp;gt;[[redprobe]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;redprobe&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;List redstone stats. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Removed in ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-redpulse&amp;quot;&amp;gt;[[redpulse]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;redpulse&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Redstone output pulse tool. Use &amp;lt;tt&amp;gt;redpulse&amp;lt;/tt&amp;gt; for help. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Removed in ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-redset&amp;quot;&amp;gt;[[redset]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;redset&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Redstone output set tool. Use &amp;lt;tt&amp;gt;redset&amp;lt;/tt&amp;gt; for help. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Removed in ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-redset&amp;quot;&amp;gt;[[redstone (program)|redstone]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;redstone &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Controls the redstone output state(s) of the system. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Added by ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-redset&amp;quot;&amp;gt;[[repeat]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;repeat&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Configures the system to act as a [[rednet (API)|rednet]] repeater. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Added by ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-time&amp;quot;&amp;gt;[[time]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;time&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the Minecraft time of day.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-type&amp;quot;&amp;gt;[[type]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;type &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the type of the object or file at the specified path.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-rename&amp;quot;&amp;gt;[[rename]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;rename &amp;lt;old-name&amp;gt; &amp;lt;new-name&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Renames a file or directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-rename&amp;quot;&amp;gt;[[rm]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;rm &amp;lt;path&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Deletes the specified file (in the same manner as [[delete]]).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-shell&amp;quot;&amp;gt;[[shell]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;shell, shell &amp;lt;program&amp;gt; &amp;lt;arguments&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Opens another shell session. Runs a program if specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-shutdown&amp;quot;&amp;gt;[[shutdown]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;shutdown&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Powers off the Computer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Added TurtleOS programs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
Additional TurtleOS Shell Programs&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Program Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-apis&amp;quot;&amp;gt;[[craft]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;craft&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;The turtle will, if it is able, craft an item from the contents of its inventory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-alias&amp;quot;&amp;gt;[[dance]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;dance&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Initiates &amp;quot;get down&amp;quot; procedure.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-alias&amp;quot;&amp;gt;[[equip]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;equip &amp;lt;side&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;The turtle will attempt to place a tool on its specified side. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Added by ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-apis&amp;quot;&amp;gt;[[excavate]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;excavate &amp;lt;width&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Digs a square-shaped quarry to bedrock, of width equal to that specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-alias&amp;quot;&amp;gt;[[go]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;go &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Moves the turtle.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-apis&amp;quot;&amp;gt;[[refuel]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;refuel &amp;lt;amount&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Attempts to replenish the turtle's [[fuel]] supply with items from its inventory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-alias&amp;quot;&amp;gt;[[tunnel]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;tunnel &amp;lt;width&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Digs a horizontal tunnel leading off in the direction the turtle is facing.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-apis&amp;quot;&amp;gt;[[turn]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;turn &amp;lt;?&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Causes the turtle to rotate.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;cmd-alias&amp;quot;&amp;gt;[[unequip]]&amp;lt;/div&amp;gt;&amp;lt;tt&amp;gt;unequip&amp;lt;width&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Attempts to remove a tool from the turtle's specified side. &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Added by ComputerCraft 1.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Built In Turtle Programs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programs]][[Category:Lists]][[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs.open&amp;diff=7362</id>
		<title>Fs.open</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs.open&amp;diff=7362"/>
				<updated>2015-12-27T11:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: CC 1.76&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=fs.open&lt;br /&gt;
|args={{Type|string}} path, {{Type|string}} mode&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns={{Type|table}} the file handle, or [[nil]] on error (e.g. if &amp;lt;var&amp;gt;mode&amp;lt;/var&amp;gt; was &amp;quot;r&amp;quot; and the file did not exist, or if &amp;lt;var&amp;gt;mode&amp;lt;/var&amp;gt; was &amp;quot;w&amp;quot; or &amp;quot;a&amp;quot; and the file was in a read-only location)&lt;br /&gt;
|desc=&lt;br /&gt;
'''Supported File Modes'''&lt;br /&gt;
Opens a file so it can be read or written. &amp;lt;var&amp;gt;mode&amp;lt;/var&amp;gt; consists of a first character which is one of the following:&lt;br /&gt;
* &amp;quot;r&amp;quot; to open the file read-only, &lt;br /&gt;
* &amp;quot;w&amp;quot; to open it for writing and remove any existing data on file open, or &lt;br /&gt;
* &amp;quot;a&amp;quot; to open for writing but keep existing data and append any writes to the end of the file&lt;br /&gt;
Any of the three may be optionally followed by &amp;quot;b&amp;quot; to open the file for binary access instead of the default text access (eg, &amp;quot;wb&amp;quot; opens a file for binary output).&lt;br /&gt;
&lt;br /&gt;
Text mode file handles assume UTF-8 encoding for both input and output purposes, and supports all characters within the [https://en.wikipedia.org/wiki/ISO/IEC_8859-1 ISO 8859-1 codepage] (plus a few extras). Prior to ComputerCraft 1.76, instead only [https://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters printable ASCII] characters are supported. In either case, any characters ''not'' supported are translated to 0x3F (representing a question mark).&lt;br /&gt;
&lt;br /&gt;
When you have opened a file you must always [[#Closing a file handle|close the file handle]], or else data may not be saved.&lt;br /&gt;
&lt;br /&gt;
Append mode and write mode both create a new file if none already exists (and write mode creates a new one even if one does); however, under a few builds of ComputerCraft in the 1.5x range, append mode will fail if an existing file cannot be found.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Creates the file &amp;quot;abcd&amp;quot; for writing, and holds a file handle to it&lt;br /&gt;
|code=local h = fs.open(&amp;quot;abcd&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Opens &amp;quot;abcd&amp;quot; in either append or write mode, depending on whether it already exists or not.&lt;br /&gt;
|code=local h = fs.open(&amp;quot;abcd&amp;quot;, fs.exists(&amp;quot;abcd&amp;quot;) and &amp;quot;a&amp;quot; or &amp;quot;w&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== File Handles ==&lt;br /&gt;
&lt;br /&gt;
A file handle allows access to a file. A file handle is a table; the functions within the table are accessed with the dot operator (&amp;lt;em&amp;gt;not&amp;lt;/em&amp;gt; the colon operator, as may be more intuitive!). The examples below assume a file has already been opened and the handle stored in the variable &amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Closing a file handle ===&lt;br /&gt;
&lt;br /&gt;
When you open a file you must remember to close the handle when you've finished with it! The write modes supported by ComputerCraft may not actually output data until this is done. A file opened in any mode exposes the following close function:&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.close&lt;br /&gt;
|api=fs&lt;br /&gt;
|desc=Closes the file handle, after which it can no longer be used&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Files opened in text read mode ===&lt;br /&gt;
&lt;br /&gt;
A file opened in mode &amp;quot;r&amp;quot; (text read mode) exposes the following functions.&lt;br /&gt;
&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.readLine&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns=[[string]] the next line read from the file, with the end-of-line character stripped; or nil if there are no more lines in the file&lt;br /&gt;
|desc=Reads the next line from the file&lt;br /&gt;
}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.readAll&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns=[[string]] the entire rest of the file, with the end-of-line character on the very last line (if present) stripped&lt;br /&gt;
|desc=Reads the all the text in the file&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Files opened in text write/append mode ===&lt;br /&gt;
&lt;br /&gt;
A file opened in mode &amp;quot;w&amp;quot; (text write mode) or &amp;quot;a&amp;quot; (text append mode) exposes the following functions:&lt;br /&gt;
&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.write&lt;br /&gt;
|args=[[string (type)|string]] data&lt;br /&gt;
|api=fs&lt;br /&gt;
|desc=Writes a string of characters to the file exactly as they appear in the string &amp;lt;var&amp;gt;data&amp;lt;/var&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.writeLine&lt;br /&gt;
|args=[[string (type)|string]] data&lt;br /&gt;
|api=fs&lt;br /&gt;
|desc=Writes a string of characters to the file, then appends an end-of-line character&lt;br /&gt;
}}&lt;br /&gt;
if you just want to save a file, without closing the handle, then you could do a flush. ( this is normally used for logging etc...)&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.flush&lt;br /&gt;
|api=fs&lt;br /&gt;
|desc=Flushes the data to the specified file. (keeps the handle available afterwards)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Files opened in binary read mode ===&lt;br /&gt;
&lt;br /&gt;
A file opened in mode &amp;quot;rb&amp;quot; (binary read mode) exposes the following functions:&lt;br /&gt;
&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.read&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns={{type|number}} the byte read from the file, or [[Nil|nil]] if there are no more bytes&lt;br /&gt;
|desc=Reads a single byte from the file and returns it&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Files opened in binary write/append mode ===&lt;br /&gt;
&lt;br /&gt;
A file opened in mode &amp;quot;wb&amp;quot; (binary write mode) or &amp;quot;ab&amp;quot; (binary append mode) exposes the following functions:&lt;br /&gt;
&lt;br /&gt;
{{Function&lt;br /&gt;
|name=&amp;lt;var&amp;gt;h&amp;lt;/var&amp;gt;.write&lt;br /&gt;
|args={{type|number}} byte&lt;br /&gt;
|api=fs&lt;br /&gt;
|desc=Writes a single byte into the file&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Template:Changelog&amp;diff=7361</id>
		<title>Template:Changelog</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Template:Changelog&amp;diff=7361"/>
				<updated>2015-12-27T11:25:44Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 15%&amp;quot; | Version&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | New Features or Changes&lt;br /&gt;
! style=&amp;quot;width: 15%&amp;quot; | Minecraft Version&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2015/12/24/computercraft-1-76/ ComputerCraft 1.76]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.8&lt;br /&gt;
*Added [[Ender Modem]]s for cross-dimensional communication&lt;br /&gt;
*Fixed handling of 8-bit characters. All the characters in the [https://en.wikipedia.org/wiki/ISO/IEC_8859-1 ISO 8859-1 codepage] can now be displayed&lt;br /&gt;
*Added some extra graphical characters in the unused character positions, including a suite of characters for [http://teletextart.tumblr.com/ Teletext-style drawing]&lt;br /&gt;
*Added support for the new commands in Minecraft 1.8 to the [[Command Computer]]&lt;br /&gt;
*The return values of [[turtle.inspect]]() and [[commands.getBlockInfo]]() now include blockstate information&lt;br /&gt;
*Added [[commands.getBlockInfos]]() function for Command Computers&lt;br /&gt;
*Added new &amp;quot;[[Peripherals (program)|peripherals]]&amp;quot; program&lt;br /&gt;
*Replaced the &amp;quot;_CC_VERSION&amp;quot; and &amp;quot;_MC_VERSION&amp;quot; constants with a new &amp;quot;_HOST&amp;quot; constant&lt;br /&gt;
*Shortened the length of time that &amp;quot;Ctrl+T&amp;quot;, &amp;quot;Ctrl+S&amp;quot; and &amp;quot;Ctrl+R&amp;quot; must be held down to terminate, shutdown or reboot the computer&lt;br /&gt;
*[[textutils.serializeJSON]]() now takes an optional parameter allowing it to produce JSON text with unquoted object keys. This is used by all autogenerated methods in the [[commands (API)|commands API]] except for &amp;quot;title&amp;quot; and &amp;quot;tellraw&amp;quot;&lt;br /&gt;
*Fixed many bugs&lt;br /&gt;
|align=center|1.8&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2015/12/04/computercraft-1-75/ ComputerCraft 1.75]&lt;br /&gt;
|&lt;br /&gt;
*Fixed monitors sometimes rendering without part of their text.&lt;br /&gt;
*Fixed a regression in the [[Bit_(API)|“bit” API]].&lt;br /&gt;
|align=center|1.7.10&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2015/06/27/computercraft-1-74/ ComputerCraft 1.74]&lt;br /&gt;
|&lt;br /&gt;
*Added tab completion to [[Edit|“edit”]], [[Lua|“lua”]] and the [[shell]].&lt;br /&gt;
*Added [[textutils.complete]](), [[fs.complete]](), [[shell.complete]](), [[shell.completeProgram]](), [[shell.setCompletionFunction]](), [[shell.getCompletionInfo]](), and [[help.completeTopic]]().&lt;br /&gt;
*Added tab completion options to [[read]]().&lt;br /&gt;
*Added [[key_up_(event)|“key_up”]] and [[mouse_up_(event)|“mouse_up”]] events.&lt;br /&gt;
*Non-advanced terminals now accept both grey [[Color_(API)|colour]]s.&lt;br /&gt;
*Added [[term.getTextColor]](), [[term.getBackgroundColor]]() and [[term.blit]]().&lt;br /&gt;
*Improved the performance of text rendering on [[Advanced Computer]]s.&lt;br /&gt;
*Added a “Run” button to the [[edit|“edit”]] program on [[Advanced Computer]]s.&lt;br /&gt;
*[[Turtle]]s can now push players and entities ([[ComputerCraft.cfg|configurable]]).&lt;br /&gt;
*[[Turtle]]s now respect server spawn protection ([[ComputerCraft.cfg|configurable]]).&lt;br /&gt;
*Added a turtle permissions API for mod authors.&lt;br /&gt;
*Implemented a subset of the Lua 5.2 API so programs can be written against it now, ahead of a future Lua version upgrade.&lt;br /&gt;
*Added a [[ComputerCraft.cfg|config option]] to disable parts of the Lua 5.1 API which will be removed when a future Lua version upgrade happens.&lt;br /&gt;
*[[Command Computer]]s can no longer be broken by survival players.&lt;br /&gt;
*Fixed the “pick block” key not working on ComputerCraft items in creative mode.&lt;br /&gt;
*Fixed the [[edit|“edit”]] program being hard to use on certain European keyboards.&lt;br /&gt;
*Added “_CC_VERSION” and “_MC_VERSION” constants.&lt;br /&gt;
|align=center|1.7.10&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2015/02/22/computercraft-1-73/ ComputerCraft 1.71 - 1.73]&lt;br /&gt;
|&lt;br /&gt;
*[CC 1.71] The [[exec|“exec”]] program, [[commands.exec]]() and all related [[Command Computer]] functions now return the console output of the command.&lt;br /&gt;
*[CC 1.72 - 1.73] Fixed two multiplayer-only crash bugs when placing certain blocks.&lt;br /&gt;
|align=center|1.7.10&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2015/02/15/computercraft-1-7/ ComputerCraft 1.7]&lt;br /&gt;
|&lt;br /&gt;
*Added [[Command Computer]]s.&lt;br /&gt;
*Added new API: [[commands_(API)|commands]].&lt;br /&gt;
*Added new programs: [[commands]], [[exec]].&lt;br /&gt;
*Added [[textutils.serializeJSON]]().&lt;br /&gt;
*Added ILuaContext.executeMainThreadTask() for peripheral developers.&lt;br /&gt;
*[[Disk Drive]]s and [[Printer]]s can now be renamed with Anvils.&lt;br /&gt;
*Fixed problems with HD texture packs.&lt;br /&gt;
*Fixed various bugs and crashes.&lt;br /&gt;
*Documented all the new features in the in-game help system.&lt;br /&gt;
|align=center|1.7.10&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2014/10/09/computercraft-1-65/ ComputerCraft 1.65]&lt;br /&gt;
|&lt;br /&gt;
*Fixed a multiplayer-only crash with [[turtle.place]]().&lt;br /&gt;
*Fixed some problems with [[http.post]]().&lt;br /&gt;
*Fixed [[fs.getDrive]]() returning incorrect results on remote peripherals.&lt;br /&gt;
|align=center|1.7.10&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2014/09/27/computercraft-1-64/ ComputerCraft 1.64]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.7.10.&lt;br /&gt;
*New [[turtle_(API)|turtle API]] functions: [[turtle.inspect]](), [[turtle.inspectUp]](), [[turtle.inspectDown]](), [[turtle.getItemDetail]]().&lt;br /&gt;
*Lots of bug fixes and crash fixes, a huge stability improvement over previous versions.&lt;br /&gt;
*New [[paintutils_(API)|paintutils API]] functions: [[paintutils.drawBox]]( startX, startY, endX, endY [, color] ), [[paintutils.drawFilledBox]]( startX, startY, endX, endY [, color] ).&lt;br /&gt;
|align=center|1.7.10&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2014/04/16/computercraft-1-63/ ComputerCraft 1.63]&lt;br /&gt;
|&lt;br /&gt;
*[[Turtle]]s can now be painted with dyes, and cleaned with water buckets.&lt;br /&gt;
*Added a new game: [[Redirection]] – ComputerCraft Edition by [http://www.computercraft.info/forums2/index.php?/user/16414-ramilego4game/ RamiLego] (type “redirection” on an Advanced Computer to play).&lt;br /&gt;
*[[Turtle]] label nameplates now only show when the [[Turtle]] is moused-over.&lt;br /&gt;
*The HTTP API is now enabled by default, and can be configured with a whitelist of permitted domains.&lt;br /&gt;
*[[http.get]]() and [[http.post]]() now accept parameters to control the request headers.&lt;br /&gt;
*New [[Fs_(API)|fs API]] function: [[fs.getDir]]( path ).&lt;br /&gt;
*Fixed some bugs.&lt;br /&gt;
|align=center|1.6.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2014/04/04/computercraft-1-62/ ComputerCraft 1.62]&lt;br /&gt;
|&lt;br /&gt;
*Fixed some bugs which were crashing the game.&lt;br /&gt;
*[[Chat]] now supports IRC commands.&lt;br /&gt;
|align=center|1.6.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2014/04/01/computercraft-1-61-bug-fix-update/ ComputerCraft 1.61]&lt;br /&gt;
|&lt;br /&gt;
*Fixed a bug where newly placed [[Computer]]s would share their folder structure until game restart.&lt;br /&gt;
*Fixed a bug where running [[Computer]]s might not automatically restart as the game did so.&lt;br /&gt;
|align=center|1.6.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2014/03/27/computercraft-1-6-is-here/ ComputerCraft 1.6]&lt;br /&gt;
|&lt;br /&gt;
*Added [[Pocket Computer]]s.&lt;br /&gt;
*Added a [[Multishell|multi-tasking system]] for [[Advanced Computer]]s and [[Turtle]]s.&lt;br /&gt;
*[[Turtle]]s can now [[Equip|swap out their tools and peripherals]] at runtime.&lt;br /&gt;
*[[Turtle]]s can now carry two tools or peripherals at once in any combination.&lt;br /&gt;
*[[Turtle]]s and [[Computer]]s can now be labelled using Name Tags and Anvils.&lt;br /&gt;
*Added a [[ComputerCraft.cfg|configurable fuel limit]] for [[Turtle]]s.&lt;br /&gt;
*Added hostnames, protocols and long distance routing to the [[Rednet (API)|rednet API]].&lt;br /&gt;
*Added a peer-to-peer [[chat]] program to demonstrate new rednet capabilities.&lt;br /&gt;
*Added a new game, only on [[Pocket Computer]]s: “[[falling]]” by [http://www.computercraft.info/forums2/index.php?/user/3545-gopheratl/ GopherATL].&lt;br /&gt;
*File system commands in the shell now accept wildcard arguments.&lt;br /&gt;
*The shell now accepts long arguments in quotes.&lt;br /&gt;
*[[term.redirect|Terminal redirection]] now no longer uses a stack-based system. Instead: [[term.current]]() gets the current terminal object and [[term.redirect]]() replaces it. [[term.restore]]() has been removed.&lt;br /&gt;
*Added a new [[Window (API)|Windowing API]] for addressing sub-areas of the terminal.&lt;br /&gt;
*New programs: [[fg]], [[bg]], [[multishell]], [[chat]], [[repeat]], [[Redstone (program)|redstone]], [[equip]], [[unequip]].&lt;br /&gt;
*Improved programs: [[copy]], [[move]], [[delete]], [[rename]], [[paint]], [[CraftOS|shell]].&lt;br /&gt;
*Removed programs: redset, redprobe, redpulse.&lt;br /&gt;
*New [[:Category:APIs|APIs]]: [[Window (API)|window]], [[Multishell (API)|multishell]].&lt;br /&gt;
*New [[Turtle (API)|turtle API]] functions: [[turtle.equipLeft]](), [[turtle.equipRight]](), [[turtle.getFuelLimit]](), [[turtle.getSelectedSlot]]().&lt;br /&gt;
*New [[Peripheral (API)|peripheral API]] functions: [[peripheral.find]]( [type] ).&lt;br /&gt;
*New [[Rednet (API)|rednet API]] functions: [[rednet.host]]( protocol, hostname ), [[rednet.unhost]]( protocol ), [[rednet.lookup]]( protocol, [hostname] ).&lt;br /&gt;
*Improved [[Rednet (API)|rednet API]] functions: [[rednet.send]](), [[rednet.broadcast]]() and [[rednet.receive]]() now take optional protocol parameters.&lt;br /&gt;
*New [[fs (API)|fs API]] function: [[fs.find]]( wildcard ).&lt;br /&gt;
*New [[Shell (API)|shell API]] functions: [[shell.openTab]]( command ), [[shell.switchTab]]( number ).&lt;br /&gt;
*New event “[[Term_resize_(event)|term_resize]]” fired when the size of a terminal changes.&lt;br /&gt;
*[[turtle.craft]](0) and [[turtle.refuel]](0) now return true if there is a valid recipe or fuel item, but do not craft or refuel anything.&lt;br /&gt;
*[[turtle.suck]]( [limit] ) can now be used to limit the number of items picked up.&lt;br /&gt;
*Users of [[turtle.dig]]() and [[turtle.attack]]() can now specify which side of the turtle to look for a tool to use (by default, both will be considered).&lt;br /&gt;
*[[textutils.serialize]]() now produces human-readable output.&lt;br /&gt;
*Refactored most of the codebase and fixed many old bugs and instabilities, [[Turtle]]s should never ever lose their content now.&lt;br /&gt;
*Fixed the “[[turtle_inventory_(event)|turtle_inventory]]” event firing when it shouldn’t have.&lt;br /&gt;
*Added error messages to many more [[Turtle_(API)|turtle API]] functions after they return false.&lt;br /&gt;
*Documented all new programs and API changes in the “[[help]]” system.&lt;br /&gt;
|align=center|1.6.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/12/09/computercraft-1-58/ ComputerCraft 1.58]&lt;br /&gt;
|&lt;br /&gt;
*Fixed a long standing bug where [[Turtle]]s could lose their identity.&lt;br /&gt;
*Fixed use of deprecated code, ensuring mod compatibility with the latest versions of Minecraft Forge and world compatibility with future versions of Minecraft.&lt;br /&gt;
|align=center|1.6.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/10/14/new-versions/ ComputerCraft 1.57]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.6.4.&lt;br /&gt;
*Added two new [[Treasure Disks]]: Conway’s Game of Life by [http://www.computercraft.info/forums2/index.php?/user/1823-vilsol/ vilsol] and Protector by [http://www.computercraft.info/forums2/index.php?/user/6929-fredthead/ fredthead].&lt;br /&gt;
*Fixed a very nasty item duplication bug.&lt;br /&gt;
|align=center|1.6.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/08/04/computercraft-1-56/ ComputerCraft 1.56]&lt;br /&gt;
|&lt;br /&gt;
*Added [[Treasure Disks]]: Rare [[Floppy Disk]]s found only in dungeons, which contain fun programs made by the community. Find them all!&lt;br /&gt;
*All [[Turtle_(API)|turtle API]] functions now return additional error messages when they fail.&lt;br /&gt;
*Resource Packs with Lua Programs can now be loaded when extracted to a folder, for easier editing.&lt;br /&gt;
|align=center|1.6.2&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/07/11/computercraft-1-55/ Computercraft 1.55]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.6.2.&lt;br /&gt;
*Added [[Advanced Turtle]]s.&lt;br /&gt;
*Added [[turtle_inventory_(event)|“turtle_inventory”]] event. Fires when any change is made to the inventory of a [[Turtle]].&lt;br /&gt;
*Added missing [[IO_(API)|io API]] functions: io.close, io.flush, io.input, io.lines, io.output.&lt;br /&gt;
*Tweaked the screen colours used by [[Advanced Computer]]s, [[Advanced Monitor]]s and [[Advanced Turtle]]s.&lt;br /&gt;
*Added several new features for Peripheral authors.&lt;br /&gt;
*Lua programs can now be included in Resource Packs.&lt;br /&gt;
|align=center|1.6.2&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/05/23/computercraft-1-53/ ComputerCraft 1.53]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.5.2.&lt;br /&gt;
*[[redstone.setBundledOutput]]() and [[redstone.getBundledOutput]]() now work with cables from Minefactory Reloaded, as well as RedPower.&lt;br /&gt;
*[[Monitor]]s and [[Advanced Monitor]]s can now be placed on floors and ceilings.&lt;br /&gt;
|align=center|1.5.2&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/03/26/computercraft-1-52/ Computercraft 1.52]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.5.1.&lt;br /&gt;
|align=center|1.5.1&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/03/15/computercraft-1-51/ Computercraft 1.51]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.5.&lt;br /&gt;
*Added [[Wired Modem]]s.&lt;br /&gt;
*Added [[Networking Cable]]s.&lt;br /&gt;
*Made [[Wireless Modem]]s more expensive to craft.&lt;br /&gt;
*New [[redstone_(API)|redstone API]] functions: [[redstone.getAnalogInput]](), [[redstone.setAnalogOutput]](), [[redstone.getAnalogOutput]]().&lt;br /&gt;
*Peripherals can now be controlled remotely over wired networks.&lt;br /&gt;
*New [[peripheral_(API)|peripheral API]] function: [[peripheral.getNames]]().&lt;br /&gt;
*New event: [[monitor_resize_(event)|“monitor_resize”]]is fired when the size of a monitor changes.&lt;br /&gt;
*Except for labelled [[Computer]]s and [[Turtle]]s, ComputerCraft blocks no longer drop items in creative mode.&lt;br /&gt;
*The pick block function works in creative mode now works for all ComputerCraft blocks.&lt;br /&gt;
*All blocks and items now use the IDs numbers assigned by FTB by default.&lt;br /&gt;
*Fixed [[Turtle]]s sometimes placing blocks with incorrect orientations.&lt;br /&gt;
*Fixed [[Wireless Modem]]s being able to send messages to themselves.&lt;br /&gt;
*Fixed [[turtle.attack]]() having a very short range.&lt;br /&gt;
*Various bugfixes.&lt;br /&gt;
|align=center|1.5&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2013/02/11/computercraft-1-5/ Computercraft 1.5]&lt;br /&gt;
|&lt;br /&gt;
*Redesigned [[Wireless Modem]]s; they can now send and receive on multiple channels, independent of the computer ID. To use these features, interface with modem peripherals [[Modem_(API)|directly]]. The [[Rednet_(API)|rednet API]] still functions as before.&lt;br /&gt;
*[[Floppy Disk]]s can now be dyed with multiple dyes, just like armour.&lt;br /&gt;
*The [[Excavate|“excavate”]] program now retains fuel in it’s inventory, so can run unattended.&lt;br /&gt;
*[[turtle.place]]() now tries all possible block orientations before failing.&lt;br /&gt;
*[[turtle.refuel]](0) returns true if a fuel item is selected.&lt;br /&gt;
*[[turtle.craft]](0) returns true if the inventory is a valid recipe.&lt;br /&gt;
*The in-game help system now has documentation for all the peripherals and their methods, including the new [[Modem]] functionality.&lt;br /&gt;
*A romantic surprise.&lt;br /&gt;
|align=center|1.4.7&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/12/27/computercraft-1-481-miscperipherals-fix/ Computercraft 1.481]&lt;br /&gt;
|&lt;br /&gt;
*Fixed compatibility bug with MiscPeripherals.&lt;br /&gt;
|align=center|1.4.6&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/12/23/computercraft-1-48/ Computercraft 1.48]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.4.6.&lt;br /&gt;
*[[Advanced Monitor]]s can now be used as touchscreens.&lt;br /&gt;
*[[Advanced Monitor]]s are now easier to craft.&lt;br /&gt;
*[[Turtle]]s now get slightly less movement from fuel.&lt;br /&gt;
*[[Turtle]]s can now push items.&lt;br /&gt;
*[[Computer]]s can now [[Command_Block_(API)|control Command Blocks]], if enabled in the [[ComputerCraft.cfg|config]].&lt;br /&gt;
*New [[OS_(API)|os API]] function: [[os.day]]().&lt;br /&gt;
*A Christmas surprise.&lt;br /&gt;
|align=center|1.4.6&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/11/15/computercraft-1-47-and-minecon-news/ ComputerCraft 1.47]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.4.4.&lt;br /&gt;
*Fixed label tooltips not showing up in SMP.&lt;br /&gt;
|align=center|1.4.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/10/25/computercraft-1-46-minecraft-update/ ComputerCraft 1.46]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.4.2.&lt;br /&gt;
*ComputerCraft items now have their own tab in Creative Mode.&lt;br /&gt;
|align=center|1.4.2&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/10/22/computercraft-1-45-now-with-colors/ ComputerCraft 1.45]&lt;br /&gt;
|&lt;br /&gt;
*Added [[Advanced Computer]]s.&lt;br /&gt;
*Added [[Advanced Monitor]]s.&lt;br /&gt;
*New program: [[paint]] (by [http://www.computercraft.info/forums2/index.php?/user/643-nitrogenfingers/ nitrogenfingers]).&lt;br /&gt;
*New API: [[paintutils_(API)|paintutils]].&lt;br /&gt;
*New term functions: [[term.setBackgroundColor]]( color ), [[term.setTextColor]]( color ), [[term.isColor]]().&lt;br /&gt;
*New [[Turtle|Turtle API]] function: [[turtle.transferTo]]().&lt;br /&gt;
|align=center|1.3.2&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/10/04/computercraft-1-43-books/ ComputerCraft 1.43]&lt;br /&gt;
|&lt;br /&gt;
*Added [[Printed Page]]s (bind several [[Printed Page]] items into one with a string).&lt;br /&gt;
*Added [[Printed_book|Printed Books]] (add a leather cover to the above).&lt;br /&gt;
*Labelled [[Turtle]]s now keep their fuel when broken.&lt;br /&gt;
*Fixed incompatibility with Forge 275 and above.&lt;br /&gt;
|align=center|1.3.2&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/09/22/computercraft-1-42-is-released/ ComputerCraft 1.42]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.3.2 and the Forge mod system.&lt;br /&gt;
*Added [[Printer]]s.&lt;br /&gt;
*[[Floppy Disk]]s can now be dyed different colours.&lt;br /&gt;
*[[Turtle|Wireless Crafty Turtles]] can now be crafted.&lt;br /&gt;
*All new textures.&lt;br /&gt;
*New Forge [[ComputerCraft.cfg|config file]].&lt;br /&gt;
*Various tweaks and bug fixes.&lt;br /&gt;
|align=center|1.3.2&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/07/29/computercraft-1-41-bugfix-update/ ComputerCraft 1.41]&lt;br /&gt;
|&lt;br /&gt;
*Fixed labelled [[Computer]]s not keeping their data when destroyed.&lt;br /&gt;
*Fixed the [[Excavate|“excavate”]] program outputting lots of spam.&lt;br /&gt;
*File system size limits now take into account empty files and directories.&lt;br /&gt;
*Some small changes to the Turtle Upgrade API ahead of it’s impending release. (Update: The API has now been released).&lt;br /&gt;
|align=center|1.2.5&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/07/27/computercraft-1-4-is-released/ ComputerCraft 1.4]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Forge Mod Loader: ComputerCraft can now be ran directly from the .zip without extraction.&lt;br /&gt;
*Added Farming [[Turtle]]s, Felling [[Turtle]]s, Digging [[Turtle]]s, Melee [[Turtle]]s and Crafty [[Turtle]]s.&lt;br /&gt;
*Added 14 new [[Turtle]] combinations accessible by combining the turtle upgrades above.&lt;br /&gt;
*Labelled [[Computer]]s and [[Turtle]]s can now be crafted into [[Turtle]]s or other [[Turtle]] types without losing their ID, label and data.&lt;br /&gt;
*Added a “[[Turtle]] Upgrade API” for mod developers to create their own tools and peripherals for [[Turtle]]s.&lt;br /&gt;
*[[Turtle]]s can now attack entities with [[turtle.attack]]() and collect their dropped items.&lt;br /&gt;
*[[Turtle]]s can now use [[turtle.place]]() with any item the player can and can interact with entities.&lt;br /&gt;
*[[Turtle]]s can now craft items with [[turtle.craft]]().&lt;br /&gt;
*[[Turtle]]s can now place items into inventories with [[turtle.drop]]().&lt;br /&gt;
*Changed the behaviour of [[turtle.place]]() and [[turtle.drop]]() to only consider the currently selected slot.&lt;br /&gt;
*[[Turtle]]s can now pick up items from the ground or from inventories with [[turtle.suck]]().&lt;br /&gt;
*[[Turtle]]s can now compare items in their inventories.&lt;br /&gt;
*[[Turtle]]s can place signs with text on them with [[turtle.place]]( [signText] ).&lt;br /&gt;
*[[Turtle]]s now optionally require fuel items to move, and can [[turtle.refuel|refuel]] themselves.&lt;br /&gt;
*The size of the the [[Turtle]] inventory has been increased to 16 slots.&lt;br /&gt;
*The size of the [[Turtle]] screen has been increased.&lt;br /&gt;
*New [[Turtle_(API)|turtle API]] functions: [[turtle.compareTo]]( [slotNum] ), [[turtle.craft]](), [[turtle.attack]](), [[turtle.attackUp]](), [[turtle.attackDown]](), [[turtle.dropUp]](), [[turtle.dropDown]](), [[turtle.getFuelLevel]](), [[turtle.refuel]]().&lt;br /&gt;
*New [[Disk_(API)|disk API]] function: [[disk.getID]]().&lt;br /&gt;
*New [[Turtle]] programs: [[craft]], [[refuel]].&lt;br /&gt;
*[[Excavate|“excavate”]] program is now much smarter: will return items to a chest when full, attack mobs, and refuel itself automatically.&lt;br /&gt;
*New API: [[Keys_(API)|keys]].&lt;br /&gt;
*Added optional [[Floppy Disk]] and Hard Drive space limits for [[Computer]]s and [[Turtle]]s.&lt;br /&gt;
*New [[Fs_(API)|fs API]] function: [[fs.getFreeSpace]]( path ). Also [[fs.getDrive]]() works again.&lt;br /&gt;
*The send and receive range of wireless modems now increases with altitude, allowing long range networking from high-altitude [[Computer]]s (great for GPS networks).&lt;br /&gt;
*[[http.request]]() now supports &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; URLs.&lt;br /&gt;
*Right clicking a [[Disk Drive]] with a [[Floppy Disk]] or a Record when sneaking will insert the item into the [[Disk Drive]] automatically.&lt;br /&gt;
*The default size of the [[Computer]] screen has been increased.&lt;br /&gt;
*Several stability and security fixes: LuaJ can now no longer leave dangling threads when a [[Computer]] is unloaded, [[Turtle]]s can no longer be destroyed by tree leaves or walking off the edge of the loaded map. [[Computer]]s no longer crash when used with RedPower frames.&lt;br /&gt;
|align=center|1.2.5&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/04/23/computercraft-updated-to-1-2-5/ ComputerCraft 1.33]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.2.5.&lt;br /&gt;
|align=center|1.2.5&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/03/30/computercraft-1-32-out-now/ ComputerCraft 1.32]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.2.4.&lt;br /&gt;
*Fixed a big memory leak in LuaJ that caused extra threads to stay around forever when [[Computer]]s were shut down.&lt;br /&gt;
|align=center|1.2.4&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/03/13/computercraft-1-31-is-released/ ComputerCraft 1.31]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft 1.2.3.&lt;br /&gt;
*Added [[Monitor]]s (thanks to Cloudy). Build huge external displays for your [[Computer]]s!&lt;br /&gt;
*New positioning capabilities for [[Computer]]s and [[Turtle]]s. Build GPS networks and triangulate the positions of your [[Turtle]]'s position so they never get lost!&lt;br /&gt;
*New [[turtle.compare]]() function for [[Turtle]]s for more intelligent mining.&lt;br /&gt;
*New programs and APIs: [[Gps_(program)|gps]], [[Monitor_(program)|monitor]], [[Vector_(API)|vector API]].&lt;br /&gt;
*New program: [[Pastebin_(program)|pastebin]] (requires &amp;lt;code&amp;gt;enableAPI_HTTP=1&amp;lt;/code&amp;gt; in [[ComputerCraft.cfg]]), upload and download programs made by other users ingame!&lt;br /&gt;
*Added a new top secret program designed for use with [[Monitor]]s, see if you can find it.&lt;br /&gt;
*Lots of additions to existing APIs and programs. Type &amp;quot;help whatsnew&amp;quot; in game for full details.&lt;br /&gt;
|align=center|1.2.3&lt;br /&gt;
|-&lt;br /&gt;
|align=center|[http://www.computercraft.info/2012/02/23/computercraft-1-3-trailer/ ComputerCraft 1.3]&lt;br /&gt;
|&lt;br /&gt;
*Ported to Minecraft Forge.&lt;br /&gt;
*Added [[Turtle]]s, Mining [[Turtle]]s, Wireless [[Turtle]]s and Wireless Mining [[Turtle]]s (Block ID 209).&lt;br /&gt;
*Added a Peripheral API to allow mod developers to create custom peripherals for ComputerCraft. Details on this will be posted in the next few days.&lt;br /&gt;
*Added [[Wireless Modem]]s. Use the [[Rednet_(API)|rednet API]] to send data wirelessly between [[Computer]]s and [[Turtle]]s!&lt;br /&gt;
*[[Computer]]s and [[Disk Drive]]s no longer get destroyed by water.&lt;br /&gt;
*[[Computer]]s and [[Turtle]]s can now be labelled, destroyed, and moved around, keeping their state.&lt;br /&gt;
*[[Computer]]s and [[Turtle]]s can connect to adjacent devices and turn them on or off.&lt;br /&gt;
*User programs now give line numbers in their error messages, for easier debugging.&lt;br /&gt;
*New APIs and programs for [[Turtle]]s: [[Turtle_(API)|turtle]], [[excavate]], [[tunnel]], [[go]], [[turn]] and [[dance]].&lt;br /&gt;
*Lots of additions to existing APIs and programs. Type &amp;quot;help whatsnew&amp;quot; in game for the full details.&lt;br /&gt;
|align=center|1.1&lt;br /&gt;
|-&lt;br /&gt;
|align=center|ComputerCraft 1.21&lt;br /&gt;
|&lt;br /&gt;
*Added shortcut key to shutdown the computer (CTRL + S).&lt;br /&gt;
*Added a [[Help_(API)|help API]] add-on pack.&lt;br /&gt;
*Various bug fixes.&lt;br /&gt;
|align=center|1.1&lt;br /&gt;
|-&lt;br /&gt;
|align=center|ComputerCraft 1.2&lt;br /&gt;
|&lt;br /&gt;
*Added [[Disk Drive]]s.&lt;br /&gt;
*Added shortcut keys to terminate the current program (CTRL + T) and reboot the computer (CTRL + R).&lt;br /&gt;
*Added [[os.loadAPI|a new system]] for user created APIs.&lt;br /&gt;
*Added [[Rednet_(API)|RedNet]].&lt;br /&gt;
*Added [[shell.setPath]]() and [[shell.setAlias]]().&lt;br /&gt;
*Added a new ROM startup script.&lt;br /&gt;
*Added [[os.clock]](), [[os.time]]() and [[os.setAlarm]]().&lt;br /&gt;
*Added game: [[Worm|&amp;quot;Worm!&amp;quot;]].&lt;br /&gt;
*Added programs: [[alias]], [[apis]], [[copy]], [[delete]], [[dj]], [[drive]], [[eject]], [[id]], [[label]], [[list]], [[move]], [[reboot]], [[redset]], [[rename]], [[time]].&lt;br /&gt;
*Added APIs: [[Bit_(API)|bit]], [[Colours_(API)|colours]], [[Disk_(API)|disk]], [[Help_(API)|help]], [[Rednet_(API)|rednet]], [[Parallel_(API)|parallel]], [[Textutils_(API)|textutils]].&lt;br /&gt;
*Text can be edited with left and right arrow keys.&lt;br /&gt;
*Many bug fixes.&lt;br /&gt;
|align=center|1.0&lt;br /&gt;
|-&lt;br /&gt;
|align=center|ComputerCraft 1.11&lt;br /&gt;
|&lt;br /&gt;
*Fixed bug where [[Computer]]s could not read input from RedPower cables which had a bend in the immediately adjacent square.&lt;br /&gt;
|align=center|1.0&lt;br /&gt;
|-&lt;br /&gt;
|align=center|ComputerCraft 1.1&lt;br /&gt;
|&lt;br /&gt;
*Changed the default block ID for the [[Computer]] to 207.&lt;br /&gt;
*Added multiplayer support.&lt;br /&gt;
*Added connectivity with RedPower bundled cables.&lt;br /&gt;
*Added [[HTTP_(API)|HTTP API]].&lt;br /&gt;
*Fixed support for HD textures on the front of [[Computer]]s.&lt;br /&gt;
*Added command history to the [[Computer]].&lt;br /&gt;
*Added [[ComputerCraft.cfg|config]] options to change the size of the [[Computer]] GUI and the text color.&lt;br /&gt;
*Programs with infinite loops that don't yield will no longer freeze Minecraft and will terminate after 10 seconds.&lt;br /&gt;
*Extended Help and fixed typos/small errors in various programs.&lt;br /&gt;
|align=center|1.0&lt;br /&gt;
|-&lt;br /&gt;
|align=center|ComputerCraft 1.02&lt;br /&gt;
|&lt;br /&gt;
*Fixed the MCPatcher HD textures incompatibility that was causing the computer texture to replace cobblestone blocks.&lt;br /&gt;
|align=center|1.0&lt;br /&gt;
|-&lt;br /&gt;
|align=center|ComputerCraft 1.01&lt;br /&gt;
|&lt;br /&gt;
*Added a ModLoader configuration file, so the computers block ID can be changed.&lt;br /&gt;
*Made the error message that displays when Lua files are not correctly installed much more clear, no more &amp;quot;Assertion failed.&amp;quot;&lt;br /&gt;
|align=center|1.0&lt;br /&gt;
|-&lt;br /&gt;
|align=center|ComputerCraft 1.0&lt;br /&gt;
|&lt;br /&gt;
*First Release.&lt;br /&gt;
|align=center|1.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Modem_message_(event)&amp;diff=7360</id>
		<title>Modem message (event)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Modem_message_(event)&amp;diff=7360"/>
				<updated>2015-12-27T10:54:26Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Event&lt;br /&gt;
|name=modem_message&lt;br /&gt;
|desc=Fired when any modem message arrives through an open modem channel. If the message arrived cross-dimensionally, then the distance argument is set to nil.&lt;br /&gt;
|return1=The side of the computer where the message was received.&lt;br /&gt;
|return2=The frequency that the message has been received on.&lt;br /&gt;
|return3=The frequency that the sender defined when sending the message.&lt;br /&gt;
|return4=The message received. It will remain the same type as was transmitted.&lt;br /&gt;
|return5=The distance (in blocks) between the two computers.&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Prints details of the message received. &lt;br /&gt;
|code=&lt;br /&gt;
 while true do&lt;br /&gt;
   event, side, frequency, replyFrequency, message, distance = [[os.pullEvent]](&amp;quot;modem_message&amp;quot;)&lt;br /&gt;
   [[print]](&amp;quot;Message received from the open modem on the &amp;quot;..side..&amp;quot; side of this computer.&amp;quot;)&lt;br /&gt;
   [[print]](&amp;quot;Frequency: &amp;quot;..frequency..&amp;quot;)&lt;br /&gt;
   [[print]](&amp;quot;Requested reply frequency: &amp;quot;..replyFrequency..&amp;quot;)&lt;br /&gt;
   [[print]](&amp;quot;Distance: &amp;quot;..distance..&amp;quot;)&lt;br /&gt;
   [[print]](&amp;quot;Message is as follows: &amp;quot;..message)&lt;br /&gt;
 end&lt;br /&gt;
|output=Will print out all details of the message received on the modem.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Modem_(API)&amp;diff=7359</id>
		<title>Modem (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Modem_(API)&amp;diff=7359"/>
				<updated>2015-12-27T10:52:30Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''This page is for the modem API. For the blocks, see [[Modem]].''&lt;br /&gt;
&lt;br /&gt;
{{PeripheralAPI}}&lt;br /&gt;
&lt;br /&gt;
Available to [[Wireless Modem|Wireless]], [[Ender Modem|Ender]], and [[Wired Modem|Wired]] Modems.&lt;br /&gt;
&lt;br /&gt;
Modem channels are essentially networks which can be [[modem.open|opened]], [[modem.close|closed]] and [[modem_message_(event)|listened]] on by any [[Computer]] within range, without need of independant computer IDs. To interact with channels, one must [[peripheral.wrap|wrap]] or interact directly with the peripheral as opposed to the previous interaction with the [[Rednet_(API)|Rednet API]].&lt;br /&gt;
&lt;br /&gt;
This is not an actual API called &amp;quot;modem&amp;quot;. This is the API for [[peripheral.wrap|wrapped]] modem peripherals.&lt;br /&gt;
&lt;br /&gt;
{{API table|Modem|image=Grid disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.isOpen|''modem''.isOpen]]({{type|number}} channel)&lt;br /&gt;
|{{type|boolean}} isChannelOpen&lt;br /&gt;
|Checks to see if ''channel'' is open.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.open|''modem''.open]]({{type|number}} channel)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Opens ''channel'' to allow for listening. The channel specified must be larger than 0 and less than 65535.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.close|''modem''.close]]({{type|number}} channel)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Closes an open channel to disallow listening.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.closeAll|''modem''.closeAll]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Closes all open channels.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.transmit|''modem''.transmit]]({{type|number}} channel, {{type|number}} replyChannel, {{type|any}} message)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Transmits a message on the specified channel.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[modem.isWireless|''modem''.isWireless]]()&lt;br /&gt;
|{{type|boolean}} isWireless&lt;br /&gt;
|Returns if the modem is wireless or wired.}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
|name=modem_message&lt;br /&gt;
|return1={{type|string}} modemSide&lt;br /&gt;
|return2={{type|number}} senderChannel&lt;br /&gt;
|return3={{type|number}} replyChannel&lt;br /&gt;
|return4= message&lt;br /&gt;
|return5={{type|number}} distance&lt;br /&gt;
|desc=Fired when a modem message is received.}}&lt;br /&gt;
&lt;br /&gt;
==Sending Messages==&lt;br /&gt;
Sending messages is simple and does not require that you open any channels. Simply use the transmit function like so:&lt;br /&gt;
 local modem = [[peripheral.wrap]](&amp;quot;right&amp;quot;) --Wraps the modem on the right side.&lt;br /&gt;
 &lt;br /&gt;
 [[modem.transmit]](3, 1, &amp;quot;Hello world!&amp;quot;)  &lt;br /&gt;
 [[peripheral.call]](&amp;quot;right&amp;quot;, &amp;quot;transmit&amp;quot;, 3, 1, &amp;quot;This will also work!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
What did that do? First I wrapped the peripheral in order to interact with it. Second, I used [[modem.transmit]](channel, replyChannel, message) in order to send my message. In case you were wondering, the reply channel is captured by the listening computer and suggests which channel they should reply on.&lt;br /&gt;
&lt;br /&gt;
==Receiving Messages==&lt;br /&gt;
Receiving messages requires that you be familiar with events. As of this moment, there is no API which cuts out events from the process. Here is an example of how to receive messages:&lt;br /&gt;
 local modem = [[peripheral.wrap]](&amp;quot;left&amp;quot;)&lt;br /&gt;
 [[modem.open]](3)--Open channel 3 so that we can listen on it&lt;br /&gt;
 local event, modemSide, senderChannel, &lt;br /&gt;
   replyChannel, message, senderDistance = [[os.pullEvent]](&amp;quot;modem_message&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;I just received a message from: &amp;quot;..senderChannel)&lt;br /&gt;
 print(&amp;quot;I should apparently reply on: &amp;quot;..replyChannel)&lt;br /&gt;
 print(&amp;quot;The modem receiving this is located on the &amp;quot;..modemSide..&amp;quot; side&amp;quot;)&lt;br /&gt;
 print(&amp;quot;The message was: &amp;quot;..message)&lt;br /&gt;
 print(&amp;quot;The sender is: &amp;quot;..senderDistance..&amp;quot; blocks away from me.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
So what did I do? Quite simply, I called [[os.pullEvent]]() with the string argument &amp;quot;modem_message&amp;quot;, which blocks all other events from being returned. When the &amp;quot;modem_message&amp;quot; event is captured, it returns the arguments: event, modemSide, senderChannel, replyChannel, message, senderDistance. I captured these and then printed them out.&lt;br /&gt;
&lt;br /&gt;
== Modem Limitations ==&lt;br /&gt;
* You can only open 128 channels at any given time.&lt;br /&gt;
* The maximum channel you can open is 65535.&lt;br /&gt;
* You can listen on more than one channel at a time. For example, if the modem has channel 3 and channel 5 open, and somebody sends a message on channel 5, the modem will receive it. If a message is sent on channel 3, the modem will also receive the message.&lt;br /&gt;
* Sending messages does not require you to open any channels prior to sending it.&lt;br /&gt;
* If you aren't receiving a message when you think you should, check to make sure that you have opened the channel first.&lt;br /&gt;
* Modems and channels are not secure - if you are sending a message using the Modem API, messages are still available to any computer listening on the sent channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripheral APIs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Commands.getBlockInfo&amp;diff=7358</id>
		<title>Commands.getBlockInfo</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Commands.getBlockInfo&amp;diff=7358"/>
				<updated>2015-12-27T10:50:48Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=commands.getBlockInfo&lt;br /&gt;
|args={{type|number}} x, {{type|number}} y, {{type|number}} z&lt;br /&gt;
|returns={{type|table}} block info&lt;br /&gt;
|api=commands&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Available only to [[Command Computer]]s, returns a table containing information on the block at the specified world co-ordinate, formatted as follows:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   state = {{type|table}} state information&lt;br /&gt;
   name = {{type|string}} block's name,&lt;br /&gt;
   metadata = {{type|number}} block's metadata&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The block inspected will be in the same dimension as the computer. This function yields until the data is available to be returned. If the queried block exists in an ungenerated chunk, this function will cause that chunk to be generated.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;state&amp;quot; sub-table is only present in Minecraft 1.8+, and contains the [http://minecraft.gamepedia.com/Block_states block state] info for the block being observed. For example, a log of wood's state table contains the keys &amp;quot;variant&amp;quot; (which may be set to eg &amp;quot;oak&amp;quot;), and &amp;quot;axis&amp;quot; (which may be set to eg &amp;quot;y&amp;quot;, indicating an upright orientation).&lt;br /&gt;
&lt;br /&gt;
See also: [[commands.getBlockInfos]](), [http://minecraft.gamepedia.com/Data_values Data Values @ Minecraft wiki]&lt;br /&gt;
&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Prints the [[Command Computer]]'s internal name and metadata value.&lt;br /&gt;
|code=local blockInfo = '''commands.getBlockInfo( [[commands.getBlockPosition]]() )'''&lt;br /&gt;
 &lt;br /&gt;
 [[print]]( &amp;quot;Computer block's name: &amp;quot;, blockInfo.name )&lt;br /&gt;
 [[print]]( &amp;quot;Computer block's metadata: &amp;quot;, blockInfo.metadata )&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Under MC 1.8, prints the facing of the [[Command Computer]] running the script by inspecting its own block state info.&lt;br /&gt;
|code=local blockInfo = '''commands.getBlockInfo( [[commands.getBlockPosition]]() )'''&lt;br /&gt;
 &lt;br /&gt;
 [[print]]( &amp;quot;My facing is &amp;quot; .. blockInfo.state.facing )&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Under MC 1.7.10, prints the facing of the [[Command Computer]] running the script by inspecting its own metadata.&lt;br /&gt;
|code=local directions = {&amp;quot;unknown&amp;quot;, &amp;quot;north&amp;quot;, &amp;quot;south&amp;quot;, &amp;quot;west&amp;quot;, &amp;quot;east&amp;quot;}&lt;br /&gt;
 local blockInfo = '''commands.getBlockInfo( [[commands.getBlockPosition]]() )'''&lt;br /&gt;
 &lt;br /&gt;
 [[print]]( &amp;quot;My facing is &amp;quot;, directions[ blockInfo.metadata ], &amp;quot;.&amp;quot; )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{CommandsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Talk:Ender_Modem&amp;diff=7357</id>
		<title>Talk:Ender Modem</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Talk:Ender_Modem&amp;diff=7357"/>
				<updated>2015-12-27T10:37:46Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things I don't know, can't be bothered testing right now, but will need to go on the page:&lt;br /&gt;
&lt;br /&gt;
* Is there a range limit on these things? ''(Yes, 2^31-1 blocks, or [http://www.computercraft.info/forums2/index.php?/topic/25318-computercraft-176-beta-information-minecraft-18-updated-december-24th/page__view__findpost__p__240074 so says SquidDev])'' They should be able to go between dimensions, but is there still a requirement for &amp;quot;similar&amp;quot; x/y/z co-ords for that to work? If so, does world height still matter? ''(Still dunno about these two points, but the range is so huge I doubt anyone'll ever find out let alone care)''&lt;br /&gt;
* Can Ender Modems detect transmissions from regular [[Wireless Modem]]s, and vice versa? If so, is there a range limit, and if there is, how does that work? ''(A wireless modem a couple of thousand blocks away and in another dimension can send to / receive from an ender modem just fine)''&lt;br /&gt;
* How well does this all work with the [[Repeat]] script? ''(Really well, as it turns out)''&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;span style=&amp;quot;font-size:xx-small&amp;quot;&amp;gt;&amp;amp;nbsp;[[User:Bomb_Bloke|Bomb Bloke]] ([[User_talk:Bomb_Bloke|Talk]]/[[Special:Contributions/Bomb_Bloke|Contribs]])&amp;lt;/span&amp;gt; 03:10, 26 December 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
''Answered my own questions in italics. - &amp;lt;span style=&amp;quot;font-size:xx-small&amp;quot;&amp;gt;&amp;amp;nbsp;[[User:Bomb_Bloke|Bomb Bloke]] ([[User_talk:Bomb_Bloke|Talk]]/[[Special:Contributions/Bomb_Bloke|Contribs]])&amp;lt;/span&amp;gt; 10:37, 27 December 2015 (UTC)''&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7356</id>
		<title>Ender Modem</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7356"/>
				<updated>2015-12-27T10:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: More info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''This page is for the Modem blocks. For the modem API, see [[Modem_(API)|Modem (API)]]''&lt;br /&gt;
{{Block&lt;br /&gt;
|name=Ender Modem&lt;br /&gt;
|image=EnderModem.png&lt;br /&gt;
|id=computercraft:advanced_modem&lt;br /&gt;
|damage-value=0&lt;br /&gt;
|is-peripheral=Yes&lt;br /&gt;
|peripheral-api=Modem (API)&lt;br /&gt;
}}&lt;br /&gt;
'''Ender Modems''' are advanced versions of the [[Wireless Modem]], introduced by ComputerCraft version 1.76 (for Minecraft 1.8). They use the same [[Modem_(API)|Modem API]], but are capable of cross-dimensional transmissions.&lt;br /&gt;
&lt;br /&gt;
They have an extreme range, capable of transmitting across distances of up to 2,147,483,647 blocks (2^31-1), and are compatible with regular Wireless Modem signals. If the modems are not located with the same dimension, however, then the &amp;quot;distance&amp;quot; parameter will be excluded from the resulting [[modem_message (event)|modem_message events]].&lt;br /&gt;
&lt;br /&gt;
Whether or not communications between two modems are possible depends only on the range of the stronger of the two. This means, for example, that a single system running the [[Repeat]] script through an Ender Modem effectively opens up [[Rednet (API)|Rednet]] communications between regular Wireless modems server-wide; while one Ender Modem-equipped [[Gps (API)|GPS cluster]] per dimension is sufficient to handle most all location requests.&lt;br /&gt;
&lt;br /&gt;
See also: [[Wired Modem]], [[Wireless Modem]].&lt;br /&gt;
&lt;br /&gt;
== Recipe ==&lt;br /&gt;
{{Crafting grid&lt;br /&gt;
 |A1=Gold_Ingot |B1=Gold_Ingot |C1=Gold_Ingot&lt;br /&gt;
 |A2=Gold_Ingot |B2=Eye_of_Ender |C2=Gold_Ingot&lt;br /&gt;
 |A3=Gold_Ingot |B3=Gold_Ingot |C3=Gold_Ingot&lt;br /&gt;
 |Output=Ender_Modem&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
== Example (Modem API)==&lt;br /&gt;
* Place 2 computers and add modems to them by clicking the right mouse button while sneaking.&lt;br /&gt;
* Access them, and start Lua.&lt;br /&gt;
* Once Lua has started, wrap your modem using peripheral.wrap() (something like &amp;quot;modem = peripheral.wrap(&amp;quot;&amp;lt;side of modem&amp;gt;&amp;quot;)&lt;br /&gt;
* Type &amp;quot;[[modem_(API)|modem.open]] (&amp;lt;A modem port number, anything from 1 to 65535&amp;gt;)&amp;quot; on one computer.&lt;br /&gt;
* Check if there exists a connection: a dim, red light should be found on the modem.&lt;br /&gt;
* Now, type &amp;quot;[[modem_(API)|modem.transmit]] (&amp;lt;Same number as above&amp;gt;, &amp;lt;Also the same number&amp;gt;, 'Your message')&amp;quot; on the other computer. This should send your message to all computers connected.&lt;br /&gt;
* Opening the first computer should show the message written on the second computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modem as a Peripheral==&lt;br /&gt;
To use a Modem as a peripheral, you need to either call a method directly using [[peripheral.call]](), or, wrap the modem using the [[Peripheral_(API)|Peripheral API]]. Wrapped modems provide all functions listed in the [[Modem_(API)|Modem API]].&lt;br /&gt;
&lt;br /&gt;
For this example, we have a Modem connected to the top of our [[Computer]], we are going to open channel 5:&lt;br /&gt;
&lt;br /&gt;
 ''-- Immediately invoke a method without wrapping''&lt;br /&gt;
 [[peripheral.call]]( &amp;quot;top&amp;quot;, &amp;quot;open&amp;quot;, 5 )&lt;br /&gt;
&lt;br /&gt;
 ''-- You can also &amp;quot;wrap&amp;quot; the peripheral side to a variable:''&lt;br /&gt;
 local modem = [[peripheral.wrap]]( &amp;quot;top&amp;quot; )&lt;br /&gt;
 [[modem.open]]( 5 )&lt;br /&gt;
&lt;br /&gt;
{{BlocksItemsList}}&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Eye_of_Ender&amp;diff=7355</id>
		<title>Eye of Ender</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Eye_of_Ender&amp;diff=7355"/>
				<updated>2015-12-27T10:28:54Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;[http://www.minecraftwiki.net/wiki/Eye_of_Ender Eye of Ender at Minecraft Wiki]  Category:Vanilla_Minecraft&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.minecraftwiki.net/wiki/Eye_of_Ender Eye of Ender at Minecraft Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Vanilla_Minecraft]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Template:CommandsAPIFunctions&amp;diff=7343</id>
		<title>Template:CommandsAPIFunctions</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Template:CommandsAPIFunctions&amp;diff=7343"/>
				<updated>2015-12-26T04:10:43Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: commands.getBlockInfos()&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: #D3FFC2; text-align: center&amp;quot; | [[File:Grid_disk.png|18px]] [[Commands (API)|Commands API]] Functions&lt;br /&gt;
|-&lt;br /&gt;
|[[commands.exec]] - [[commands.execAsync]] - [[commands.list]] - [[commands.getBlockPosition]] - [[commands.getBlockInfo]] - [[commands.getBlockInfos]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Commands.getBlockInfos&amp;diff=7342</id>
		<title>Commands.getBlockInfos</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Commands.getBlockInfos&amp;diff=7342"/>
				<updated>2015-12-26T04:10:31Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{lowercase}} {{Function |name=commands.getBlockInfos |args={{type|number}} x1, {{type|number}} y1, {{type|number}} z1, {{type|number}} x2, {{type|number}} y2, {{type|number}}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=commands.getBlockInfos&lt;br /&gt;
|args={{type|number}} x1, {{type|number}} y1, {{type|number}} z1, {{type|number}} x2, {{type|number}} y2, {{type|number}} z2&lt;br /&gt;
|returns={{type|table}} blocks info&lt;br /&gt;
|api=commands&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Available only to [[Command Computer]]s as of ComputerCraft version 1.76, returns a numerically-indexed table containing information on the blocks within the specified world co-ordinates. Each sub-table is formatted per the output of [[commands.getBlockInfo]]():&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   state = {{type|table}} state information&lt;br /&gt;
   name = {{type|string}} block's name,&lt;br /&gt;
   metadata = {{type|number}} block's metadata&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A maximum of 4096 (2^12) blocks may be inspected at a time (for example, a 16x16x16 cube); the function will error if the block count exceeds this.&lt;br /&gt;
&lt;br /&gt;
The blocks are returned in the order of lowest x-co-ord to highest x-co-ord, then lowest z-co-ord to highest z-co-ord, then lowest y-co-ord to highest y-co-ord; that is to say, west to east, then north to south, then lowest altitude to highest altitude.&lt;br /&gt;
&lt;br /&gt;
See also: [[commands.getBlockInfo]](), [http://minecraft.gamepedia.com/Data_values Data Values @ Minecraft wiki]&lt;br /&gt;
&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Reports on a 2x2x2 area, with the Command Computer being at the lowest north-west point.&lt;br /&gt;
|code=local x, y, z = commands.getBlockPosition()&lt;br /&gt;
 &lt;br /&gt;
 local blocks = commands.getBlockInfos(x, y, z, x + 1, y + 1, z + 1)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;North-west low block:&amp;quot;..blocks[1].name)&lt;br /&gt;
 print(&amp;quot;North-east low block:&amp;quot;..blocks[2].name)&lt;br /&gt;
 print(&amp;quot;South-west low block:&amp;quot;..blocks[3].name)&lt;br /&gt;
 print(&amp;quot;South-east low block:&amp;quot;..blocks[4].name)&lt;br /&gt;
 print(&amp;quot;North-west high block:&amp;quot;..blocks[5].name)&lt;br /&gt;
 print(&amp;quot;North-east high block:&amp;quot;..blocks[6].name)&lt;br /&gt;
 print(&amp;quot;South-west high block:&amp;quot;..blocks[7].name)&lt;br /&gt;
 print(&amp;quot;South-east high block:&amp;quot;..blocks[8].name)&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{CommandsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Commands.getBlockInfo&amp;diff=7341</id>
		<title>Commands.getBlockInfo</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Commands.getBlockInfo&amp;diff=7341"/>
				<updated>2015-12-26T03:40:32Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: See also&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=commands.getBlockInfo&lt;br /&gt;
|args={{type|number}} x, {{type|number}} y, {{type|number}} z&lt;br /&gt;
|returns={{type|table}} block info&lt;br /&gt;
|api=commands&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Available only to [[Command Computer]]s, returns a table containing information on the block at the specified world co-ordinate, formatted as follows:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   state = {{type|table}} state information&lt;br /&gt;
   name = {{type|string}} block's name,&lt;br /&gt;
   metadata = {{type|number}} block's metadata&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The block inspected will be in the same dimension as the computer. This function yields until the data is available to be returned. If the queried block exists in an ungenerated chunk, this function will cause that chunk to be generated.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;state&amp;quot; sub-table is only present in Minecraft 1.8+, and contains keys relevant to the block being observed. For example, a log of wood's state table contains the keys &amp;quot;variant&amp;quot; (which may be set to eg &amp;quot;oak&amp;quot;), and &amp;quot;axis&amp;quot; (which may be set to eg &amp;quot;y&amp;quot;, indicating an upright orientation).&lt;br /&gt;
&lt;br /&gt;
See also: [[commands.getBlockInfos]](), [http://minecraft.gamepedia.com/Data_values Data Values @ Minecraft wiki]&lt;br /&gt;
&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Prints the [[Command Computer]]'s internal name and metadata value.&lt;br /&gt;
|code=local blockInfo = '''commands.getBlockInfo( [[commands.getBlockPosition]]() )'''&lt;br /&gt;
 &lt;br /&gt;
 [[print]]( &amp;quot;Computer block's name: &amp;quot;, blockInfo.name )&lt;br /&gt;
 [[print]]( &amp;quot;Computer block's metadata: &amp;quot;, blockInfo.metadata )&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Prints the facing of the [[Command Computer]] running the script by inspecting its own metadata.&lt;br /&gt;
|code=local directions = {&amp;quot;unknown&amp;quot;, &amp;quot;north&amp;quot;, &amp;quot;south&amp;quot;, &amp;quot;west&amp;quot;, &amp;quot;east&amp;quot;}&lt;br /&gt;
 local blockInfo = '''commands.getBlockInfo( [[commands.getBlockPosition]]() )'''&lt;br /&gt;
 &lt;br /&gt;
 [[print]]( &amp;quot;My facing is &amp;quot;, directions[ blockInfo.metadata ], &amp;quot;.&amp;quot; )&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{CommandsAPIFunctions}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Commands_(API)&amp;diff=7340</id>
		<title>Commands (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Commands_(API)&amp;diff=7340"/>
				<updated>2015-12-26T03:39:40Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: commands.getBlockInfos()&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Only available to the fabled [[Command Computer]] (itself only available to ops in creative mode, running CC 1.7 or later), the '''commands API''' allows your system to directly execute [http://minecraft.gamepedia.com/Commands Minecraft commands] and gather data from the results.&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
{{API table|commands|image=Grid_disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[commands.exec]]({{type|string}} command)&lt;br /&gt;
|{{type|boolean}} success, {{type|table}} output&lt;br /&gt;
|Executes the specified command, yields until the result is determined, then returns it.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[commands.execAsync]]({{type|string}} command)&lt;br /&gt;
|{{type|number}} taskID&lt;br /&gt;
|Executes the specified command, but doesn't yield. Queues a [[task_complete_(event)|&amp;quot;task_complete&amp;quot;]] event after the command is executed.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[commands.list]]()&lt;br /&gt;
|{{type|table}} commands&lt;br /&gt;
|Returns a numerically indexed table filled with strings representing acceptable commands for [[commands.exec]]() / [[commands.execAsync]]().&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[commands.getBlockPosition]]()&lt;br /&gt;
|{{type|number}} x, {{type|number}} y, {{type|number}} z&lt;br /&gt;
|Returns the Minecraft world coordinates of the computer running the command.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[commands.getBlockInfo]]({{type|number}} x, {{type|number}} y, {{type|number}} z)&lt;br /&gt;
|{{type|table}} block info&lt;br /&gt;
|Returns a table containing info about the block at the specified world location. Keys are &amp;quot;name&amp;quot; (a string) and &amp;quot;metadata&amp;quot; (a number).&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[commands.getBlockInfos]]({{type|number}} x1, {{type|number}} y1, {{type|number}} z1, {{type|number}} x2, {{type|number}} y2, {{type|number}} z2)&lt;br /&gt;
|{{type|table}} blocks info&lt;br /&gt;
|Returns a table containing sub-tables with info about the blocks within the specified world locations. ''Added by CC 1.76''&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==commands.&amp;lt;command&amp;gt;()/commands.async.&amp;lt;command&amp;gt;()==&lt;br /&gt;
Every command returned by [[commands.list]]() is available as commands.''command'' and commands.async.''command''. For example, instead of writing this:&lt;br /&gt;
&lt;br /&gt;
 [[commands.exec]](&amp;quot;say Hi&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
...you can write:&lt;br /&gt;
&lt;br /&gt;
 commands.say(&amp;quot;Hi&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Same with async:&lt;br /&gt;
&lt;br /&gt;
 [[commands.execAsync]](&amp;quot;say Hi&amp;quot;)&lt;br /&gt;
 ''-- same as:''&lt;br /&gt;
 commands.async.say(&amp;quot;Hi&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
On top of that you can pass to them multiple parameters including strings, numbers, booleans and tables. All those parameters are [[textutils.serializeJSON|serialized]] if necessary (such as tables) and concatenated into one string. All these functions will run the same command with the same parameters:&lt;br /&gt;
&lt;br /&gt;
 [[commands.exec]](&amp;quot;tellraw @p {text:'Hello!',bold:true}&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 commands.tellraw(&amp;quot;@p {text:'Hello!',bold:true}&amp;quot;) ''-- one or more parameters may be put into one string''&lt;br /&gt;
 &lt;br /&gt;
 commands.tellraw(&amp;quot;@p&amp;quot;, &amp;quot;{text:'Hello!',bold:true}&amp;quot;) ''-- or you can separate them to different parameters''&lt;br /&gt;
 &lt;br /&gt;
 commands.tellraw(&amp;quot;@p&amp;quot;, {text=&amp;quot;Hello!&amp;quot;, bold=true}) ''-- you can also pass a {{type|table}} directly to it''&lt;br /&gt;
&lt;br /&gt;
The same applies for commands.async.&amp;lt;command&amp;gt;().&lt;br /&gt;
&lt;br /&gt;
All the commands inside commands.&amp;lt;command&amp;gt;()/commands.async.&amp;lt;command&amp;gt;() are also case insensitive. Running commands.TellRAW( ... ) is the same as running commands.tellraw( ... ).&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
*ComputerCraft enforces a limit of 1000 commands per server tick on Command Computers. Consider [[os.pullEvent|yielding]] manually every so often (eg, sleeping for a second) when making large amounts of [[commands.execAsync]] calls.&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Rednet_(API)&amp;diff=7339</id>
		<title>Rednet (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Rednet_(API)&amp;diff=7339"/>
				<updated>2015-12-26T03:16:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Ender Modem&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''For a tutorial on how to use the API, visit [[Rednet Tutorial]].''&lt;br /&gt;
&lt;br /&gt;
The Rednet API allows systems to communicate between each other without using redstone. It serves as a wrapper for the [[modem (API)|modem API]], offering ease of functionality (particularly in regards to [[Repeat|repeating signals]]) with some expense of fine control. &lt;br /&gt;
&lt;br /&gt;
In order to send and receive data, a [[modem]] (either [[Wired Modem|wired]], [[Wireless Modem|wireless]], or [[Ender Modem|ender]]) is required. The data reaches any possible destinations immediately after sending it, but is [[#Range|range limited]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
{{API table|rednet|image=Grid_disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.open]]({{type|string}} side)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Tells the computer that the side can be used for networking.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.close]]({{type|string}} side)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Tells the computer that the side can no longer be used for networking.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.send]]({{type|number}} receiverID, {{type|any}} message, [&amp;lt;nowiki/&amp;gt;{{type|string}} protocol])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Sends a message &amp;quot;intended&amp;quot; for another system with a specific ID, using the currently opened sides. The &amp;lt;var&amp;gt;receiverID&amp;lt;/var&amp;gt; is the ID {{type|number}} (note - '''not''' a {{type|string}}) of the computer you're sending the message to. The [[Variables|types]] that can be sent as the message vary depending on the version of ComputerCraft in use.}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.broadcast]]({{type|any}} message, [&amp;lt;nowiki/&amp;gt;{{type|string}} protocol])&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Sends the message to ''all'' connected and open computers.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.receive]]([&amp;lt;nowiki/&amp;gt; [&amp;lt;nowiki/&amp;gt;{{type|string}} protocolFilter, ] {{type|number}} timeout])&lt;br /&gt;
|{{type|number}} senderID, {{type|any}} message, {{type|number}} distance / {{type|string}} protocol&lt;br /&gt;
|Waits until a rednet message of the specified protocol has been received, or until &amp;lt;var&amp;gt;timeout&amp;lt;/var&amp;gt; seconds have passed. Leave all arguments empty to wait for any message indefinitely. If only a single, numerical argument is passed, will wait that many seconds for a message of any protocol. Versions of ComputerCraft prior to 1.6 may return the distance to the transmitting computer - 1.6 or later returns message protocols instead, though distance can still be obtained via direct use of the [[Modem (API)|Modem API]].}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.isOpen]]({{type|string}} side)&lt;br /&gt;
|{{type|boolean}} isOpen&lt;br /&gt;
|Returns [[Boolean_(type)|true]] if the wireless modem is open.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.host]]({{type|string}} protocol, {{type|string}} hostname)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Registers &amp;lt;var&amp;gt;hostname&amp;lt;/var&amp;gt; against &amp;lt;var&amp;gt;protocol&amp;lt;/var&amp;gt; for the purposes of [[rednet.lookup]](). '''Only available in ComputerCraft 1.6 and above.'''}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.unhost]]({{type|string}} protocol, {{type|string}} hostname)&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Unregisters &amp;lt;var&amp;gt;hostname&amp;lt;/var&amp;gt; from &amp;lt;var&amp;gt;protocol&amp;lt;/var&amp;gt;. '''Only available in ComputerCraft 1.6 and above.'''&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.lookup]]({{type|string}} protocol, {{type|string}} hostname)&lt;br /&gt;
|{{type|number}} ID1, {{type|number}} ID2, ...&lt;br /&gt;
|Searches the local network for systems registered with a matching &amp;lt;var&amp;gt;hostname&amp;lt;/var&amp;gt; and/or &amp;lt;var&amp;gt;protocol&amp;lt;/var&amp;gt;, and returns matching IDs found. '''Only available in ComputerCraft 1.6 and above.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.run]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Internal use function - runs automatically and does not need to be called directly. Waits for [[Modem_message_(event)|modem_message]] events to appear within the event queue and generates corresponding [[Rednet_message_(event)|rednet_message]] events for use with this API. Also responds to [[rednet.lookup]]() requests.&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
{{Event|name=[[rednet_message_(event)|rednet_message]]&lt;br /&gt;
|desc=Fired when a rednet message is received (can be pulled via [[os.pullEvent|os.pullEvent()]] directly as an alternative to using [[rednet.receive|rednet.receive()]]).&lt;br /&gt;
|return1={{type|number}} senderId&lt;br /&gt;
|return2={{type|any}} message&lt;br /&gt;
|return3={{type|number}} distance / {{type|string}} protocol&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Range==&lt;br /&gt;
The range of a wireless network transmission can be determined via the following formula:&lt;br /&gt;
&lt;br /&gt;
 minRange + (position.yCoord - 96.0) * ((maxRange - minRange) / ((world.getHeight() - 1) - 96.0))&lt;br /&gt;
&lt;br /&gt;
Where, by default:&lt;br /&gt;
&lt;br /&gt;
 minRange = 64  (or 16 in a storm)&lt;br /&gt;
 maxRange = 384 (or 96 in a storm)&lt;br /&gt;
 world.getHeight() = 256&lt;br /&gt;
&lt;br /&gt;
Catch is, that formula is quite capable of returning values that are well below 0... More research is required, it seems. Anyway, min/max range figures can be altered in [[ComputerCraft.cfg]], and the maximum range of a system located at world height will generally be equal to the maxRange for the current weather.&lt;br /&gt;
&lt;br /&gt;
Even for the purposes of two-way communications, only the system with the best range is checked - a system located at the bottom of the world may hence send to and receive from a system at the top. Range is calculated in three dimensions, so the area a given system can reach wirelessly is represented by a sphere.&lt;br /&gt;
&lt;br /&gt;
For wired networks, range between devices is 256 blocks of [[Networking_Cable|network cable]] (unconfigurable). Either method of communication works regardless as to whether the intervening chunks are loaded or not.&lt;br /&gt;
&lt;br /&gt;
As of ComputerCraft 1.6, a [[Repeat|repeater script]] is available to all systems by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
Introduced by ComputerCraft 1.6, &amp;quot;protocols&amp;quot; are simple string names indicating what [[rednet.send|sent messages]] are about. [[rednet.receive|Receiving systems]] may filter messages according to their protocols, thereby automatically ignoring incoming messages which don't specify an identical string. It's also possible to [[rednet.lookup|lookup]] which systems in the area are interested in certain protocols, hence making it easier to determine where given messages should be sent in the first place.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Before the creation of the in-game wireless networking API, the term &amp;quot;Rednet&amp;quot; referred to a system created by a ComputerCraft user based on bundled cables from the popular Minecraft mod [http://www.eloraam.com RedPower]. That also allowed communication between computers, but the data was transferred slowly - every bit was converted to redstone signal (using the [[redstone (API)|redstone API]]) that lasted about 0.05 seconds (the length of a Minecraft &amp;quot;tick&amp;quot;). That system was rendered redundant by the release of ComputerCraft 1.3, as this heralded the arrival of [[Wireless Modem|wireless networking]] to the mod and allowed instant communications between computers.&lt;br /&gt;
&lt;br /&gt;
Later, ComputerCraft 1.51 brought forward [[Wired Modem]]s, which could not only be used for regular network communications, but to interact with [[peripheral]]s remotely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
In current versions of ComputerCraft (1.5 or later), Rednet is not to be considered a &amp;quot;secure&amp;quot; method of communication. The identity data indicating who sent a given message is set ''by the sender'', and hence cannot be trusted. Messages intended for a given system may be received and read by any other system in range.&lt;br /&gt;
&lt;br /&gt;
This is because Rednet is simply a convenience wrapper for the [[modem (API)|modem API]], and while it typically sends/receives using channel numbers matching the IDs of systems you control, the latter offers ''complete control'' over channel usage. Another user can hence easily task the modem API directly to sniff and find out what messages a computer is receiving if he knows (or can even guess) its ID, or pretend to send from any ID he wishes.&lt;br /&gt;
&lt;br /&gt;
When using Rednet for anything with security implications, be sure to implement your own methods of protection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Deprecated Functions==&lt;br /&gt;
{{Deprecated&lt;br /&gt;
|plural=yes&lt;br /&gt;
|type=These functions&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{API table|Deprecated Rednet Functions|image=Grid disk.png|2=&lt;br /&gt;
&lt;br /&gt;
{{API table/row&lt;br /&gt;
|[[rednet.announce]]()&lt;br /&gt;
|{{type|nil}}&lt;br /&gt;
|Broadcasts an empty rednet message. Removed from ComputerCraft by version ''1.5'' in favor of [[rednet.broadcast]]()&lt;br /&gt;
|odd}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Modem&amp;diff=7338</id>
		<title>Modem</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Modem&amp;diff=7338"/>
				<updated>2015-12-26T03:15:43Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Ender Modem&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Modems are a peripheral which allow computers to communicate with other computers.&lt;br /&gt;
&lt;br /&gt;
==Wireless Modems==&lt;br /&gt;
[[Wireless Modem|Wireless modems]] allow communication wirelessly between computers through channels.&lt;br /&gt;
==Ender Modems==&lt;br /&gt;
[[Ender Modem|Ender modems]] act as long-distance wireless modems, and are capable of cross-dimensional communications.&lt;br /&gt;
==Wired Modems==&lt;br /&gt;
[[Wired Modem|Wired modems]] allow communication through Networking Cables to other computers, and also allow long-distance peripheral usage.&lt;br /&gt;
&lt;br /&gt;
[[Category:Disambiguation_Pages]]&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Talk:Ender_Modem&amp;diff=7337</id>
		<title>Talk:Ender Modem</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Talk:Ender_Modem&amp;diff=7337"/>
				<updated>2015-12-26T03:10:21Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;Things I don't know, can't be bothered testing right now, but will need to go on the page:  * Is there a range limit on these things? They should be able to go between dimensi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things I don't know, can't be bothered testing right now, but will need to go on the page:&lt;br /&gt;
&lt;br /&gt;
* Is there a range limit on these things? They should be able to go between dimensions, but is there still a requirement for &amp;quot;similar&amp;quot; x/y/z co-ords for that to work? If so, does world height still matter?&lt;br /&gt;
* Can Ender Modems detect transmissions from regular [[Wireless Modem]]s, and vice versa? If so, is there a range limit, and if there is, how does that work?&lt;br /&gt;
* How well does this all work with the [[Repeat]] script?&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;span style=&amp;quot;font-size:xx-small&amp;quot;&amp;gt;&amp;amp;nbsp;[[User:Bomb_Bloke|Bomb Bloke]] ([[User_talk:Bomb_Bloke|Talk]]/[[Special:Contributions/Bomb_Bloke|Contribs]])&amp;lt;/span&amp;gt; 03:10, 26 December 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7336</id>
		<title>Ender Modem</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Ender_Modem&amp;diff=7336"/>
				<updated>2015-12-26T03:05:22Z</updated>
		
		<summary type="html">&lt;p&gt;Bomb Bloke: Created page with &amp;quot;{{Stub}} :''This page is for the Modem blocks. For the modem API, see Modem (API)'' {{Block |name=Ender Modem |image=EnderModem.png |id=computercraft:advanced_...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
:''This page is for the Modem blocks. For the modem API, see [[Modem_(API)|Modem (API)]]''&lt;br /&gt;
{{Block&lt;br /&gt;
|name=Ender Modem&lt;br /&gt;
|image=EnderModem.png&lt;br /&gt;
|id=computercraft:advanced_modem&lt;br /&gt;
|damage-value=0&lt;br /&gt;
|is-peripheral=Yes&lt;br /&gt;
|peripheral-api=Modem (API)&lt;br /&gt;
}}&lt;br /&gt;
'''Ender Modems''' are advanced versions of the [[Wireless Modem]], introduced by ComputerCraft version 1.76 (for Minecraft 1.8). They use the same [[Modem_(API)|Modem API]], but are capable of cross-dimensional transmissions.&lt;br /&gt;
&lt;br /&gt;
See also: [[Wired Modem]], [[Ender Modem]].&lt;br /&gt;
&lt;br /&gt;
== Recipe ==&lt;br /&gt;
{{Crafting grid&lt;br /&gt;
 |A1=Gold_Ingot |B1=Gold_Ingot |C1=Gold_Ingot&lt;br /&gt;
 |A2=Gold_Ingot |B2=Eye_of_Ender |C2=Gold_Ingot&lt;br /&gt;
 |A3=Gold_Ingot |B3=Gold_Ingot |C3=Gold_Ingot&lt;br /&gt;
 |Output=Ender_Modem&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
== Example (Modem API)==&lt;br /&gt;
* Place 2 computers and add modems to them by clicking the right mouse button while sneaking.&lt;br /&gt;
* Access them, and start Lua.&lt;br /&gt;
* Once Lua has started, wrap your modem using peripheral.wrap() (something like &amp;quot;modem = peripheral.wrap(&amp;quot;&amp;lt;side of modem&amp;gt;&amp;quot;)&lt;br /&gt;
* Type &amp;quot;[[modem_(API)|modem.open]] (&amp;lt;A modem port number, anything from 1 to 65535&amp;gt;)&amp;quot; on one computer.&lt;br /&gt;
* Check if there exists a connection: a dim, red light should be found on the modem.&lt;br /&gt;
* Now, type &amp;quot;[[modem_(API)|modem.transmit]] (&amp;lt;Same number as above&amp;gt;, &amp;lt;Also the same number&amp;gt;, 'Your message')&amp;quot; on the other computer. This should send your message to all computers connected.&lt;br /&gt;
* Opening the first computer should show the message written on the second computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modem as a Peripheral==&lt;br /&gt;
To use a Modem as a peripheral, you need to either call a method directly using [[peripheral.call]](), or, wrap the modem using the [[Peripheral_(API)|Peripheral API]]. Wrapped modems provide all functions listed in the [[Modem_(API)|Modem API]].&lt;br /&gt;
&lt;br /&gt;
For this example, we have a Modem connected to the top of our [[Computer]], we are going to open channel 5:&lt;br /&gt;
&lt;br /&gt;
 ''-- Immediately invoke a method without wrapping''&lt;br /&gt;
 [[peripheral.call]]( &amp;quot;top&amp;quot;, &amp;quot;open&amp;quot;, 5 )&lt;br /&gt;
&lt;br /&gt;
 ''-- You can also &amp;quot;wrap&amp;quot; the peripheral side to a variable:''&lt;br /&gt;
 local modem = [[peripheral.wrap]]( &amp;quot;top&amp;quot; )&lt;br /&gt;
 [[modem.open]]( 5 )&lt;br /&gt;
&lt;br /&gt;
{{BlocksItemsList}}&lt;/div&gt;</summary>
		<author><name>Bomb Bloke</name></author>	</entry>

	</feed>