<?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=Pharap</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=Pharap"/>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/Special:Contributions/Pharap"/>
		<updated>2026-07-11T09:56:10Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3633</id>
		<title>Os.pullEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3633"/>
				<updated>2012-11-05T15:30:14Z</updated>
		
		<summary type="html">&lt;p&gt;Pharap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.pullEvent&lt;br /&gt;
 |args=([[string]]) only-event-to-accept&lt;br /&gt;
 |api=os&lt;br /&gt;
 |returns=(string)event, variable parameters(see table below)&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Yields computer until event occurs&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program requires to wait for a keypress to do something:&lt;br /&gt;
|code=[[function]] clear()&lt;br /&gt;
    [[term.clear]]()&lt;br /&gt;
    [[term.setCursorPos]] (1,1)&lt;br /&gt;
 end&lt;br /&gt;
 while true do&lt;br /&gt;
    clear()&lt;br /&gt;
    [[print]] (&amp;quot;Press E to do something.&amp;quot;)&lt;br /&gt;
    local event, param1 = os.pullEvent (&amp;quot;char&amp;quot;) -- limit os.pullEvent to the char event&lt;br /&gt;
    if param1 == &amp;quot;e&amp;quot; then -- if the returned value was 'e'&lt;br /&gt;
        clear()&lt;br /&gt;
        [[write]] (&amp;quot;Name: &amp;quot;)&lt;br /&gt;
        local name = [[read]]()&lt;br /&gt;
        [[print]] (name)&lt;br /&gt;
        break&lt;br /&gt;
    else&lt;br /&gt;
        clear()&lt;br /&gt;
        [[print]] (&amp;quot;Wrong button!&amp;quot;)&lt;br /&gt;
        [[sleep]] (1.5) -- I don't like a whole 2 seconds but 1 second is too short&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== How it Works ==&lt;br /&gt;
When os.pullEvent() is called, regardless of whether it has variables to set, the computer is yielded until an event occurs. An event is anything the computer can use as input, such as a button being pushed on the keyboard or a redstone input.&lt;br /&gt;
When said event occurs, the event's name is placed in the first variable (the variable 'event' in the section below). With the event comes returned values, and, depending on the event type, there can be different amounts and different data types of returned values.&lt;br /&gt;
&lt;br /&gt;
For example, the event &amp;quot;char&amp;quot; returns &amp;quot;char&amp;quot; as the event and (let's say E was pressed) the first parameter will be set to &amp;quot;e&amp;quot;, although whether or not Shift was pressed can change that &amp;quot;e&amp;quot; to an &amp;quot;E&amp;quot; as well.&lt;br /&gt;
&lt;br /&gt;
The event &amp;quot;redstone&amp;quot; only returns the event type since any other information needed can be retrieved with [[redstone.getInput]].&lt;br /&gt;
&lt;br /&gt;
=== Common Syntax ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event, param1, param2, param3 = os.pullEvent()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Event Types==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
! colspan=&amp;quot;6&amp;quot; | Parameters&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! 3&lt;br /&gt;
! 4&lt;br /&gt;
! 5&lt;br /&gt;
! 6&lt;br /&gt;
|-&lt;br /&gt;
![[char]]&lt;br /&gt;
|Fired when text is typed on the keyboard&lt;br /&gt;
|(string)the letter typed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[key]]&lt;br /&gt;
|Fired when a key is pressed on the keyboard&lt;br /&gt;
|(number)numerical keycode&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[timer]]&lt;br /&gt;
|Fired when a timeout started by os.startTimer() completes&lt;br /&gt;
|(number)Value of the timer as returned by os.startTimer()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[alarm]]&lt;br /&gt;
|Fired when a time passed to os.setAlarm() is reached&lt;br /&gt;
|(number)Value of the alarm as returned by os.setAlarm()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[redstone]]&lt;br /&gt;
|Fired when the state of any of the redstone inputs change&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[disk]]&lt;br /&gt;
|Fired when a disk is inserted into an adjacent disk drive&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[disk_eject]]&lt;br /&gt;
|Fired when a disk is removed from an adjacent disk drive&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[peripheral]]&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[peripheral_detach]]&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[rednet_message]]&lt;br /&gt;
|Fired when a rednet message is received from the [[Rednet_(API)|rednet API]]&lt;br /&gt;
|(number)senderID&lt;br /&gt;
|(string)message&lt;br /&gt;
|(number)distance travelled&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[http_success]]&lt;br /&gt;
|Fired when an attempt to receieve text from / post text on a website is successful&lt;br /&gt;
|(string)url of the site&lt;br /&gt;
|(table)text on the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[http_failure]]&lt;br /&gt;
|Fired when an attempt to receive text from / post text on a website is unsuccessful&lt;br /&gt;
|(string)url of the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_click]]&lt;br /&gt;
|Fired when a mouse button is pressed&lt;br /&gt;
|(number)mouse button&lt;br /&gt;
|(number)x coordinate&lt;br /&gt;
|(number)y coordinate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_scroll]]&lt;br /&gt;
|Fired when a mousewheel is scrolled.&lt;br /&gt;
|(number)scroll direction (-1 for up, 1 for down)&lt;br /&gt;
|(number)x coordinate(in screen chars)&lt;br /&gt;
|(number)y coordinate(in screen chars)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_drag]]&lt;br /&gt;
|Fired when the mouse is moved after clicking.&lt;br /&gt;
|(number)x coordinate(in screen chars)&lt;br /&gt;
|(number)y coordinate(in screen chars)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
[http://www.computercraft.info/forums2/index.php?/topic/1516-ospullevent-what-is-it-and-how-is-it-useful/page__view__findpost__p__11156 ''Onionnion's Guide on os.pullEvent()'']&lt;/div&gt;</summary>
		<author><name>Pharap</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3632</id>
		<title>Os.pullEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3632"/>
				<updated>2012-11-05T15:28:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pharap: /* Event Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.pullEvent&lt;br /&gt;
 |args=[[string]] only-event-to-accept&lt;br /&gt;
 |api=os&lt;br /&gt;
 |returns=event, parameters&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Yields computer until event occurs&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program requires to wait for a keypress to do something:&lt;br /&gt;
|code=[[function]] clear()&lt;br /&gt;
    [[term.clear]]()&lt;br /&gt;
    [[term.setCursorPos]] (1,1)&lt;br /&gt;
 end&lt;br /&gt;
 while true do&lt;br /&gt;
    clear()&lt;br /&gt;
    [[print]] (&amp;quot;Press E to do something.&amp;quot;)&lt;br /&gt;
    local event, param1 = os.pullEvent (&amp;quot;char&amp;quot;) -- limit os.pullEvent to the char event&lt;br /&gt;
    if param1 == &amp;quot;e&amp;quot; then -- if the returned value was 'e'&lt;br /&gt;
        clear()&lt;br /&gt;
        [[write]] (&amp;quot;Name: &amp;quot;)&lt;br /&gt;
        local name = [[read]]()&lt;br /&gt;
        [[print]] (name)&lt;br /&gt;
        break&lt;br /&gt;
    else&lt;br /&gt;
        clear()&lt;br /&gt;
        [[print]] (&amp;quot;Wrong button!&amp;quot;)&lt;br /&gt;
        [[sleep]] (1.5) -- I don't like a whole 2 seconds but 1 second is too short&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== How it Works ==&lt;br /&gt;
When os.pullEvent() is called, regardless of whether it has variables to set, the computer is yielded until an event occurs. An event is anything the computer can use as input, such as a button being pushed on the keyboard or a redstone input.&lt;br /&gt;
When said event occurs, the event's name is placed in the first variable (the variable 'event' in the section below). With the event comes returned values, and, depending on the event type, there can be different amounts and different data types of returned values.&lt;br /&gt;
&lt;br /&gt;
For example, the event &amp;quot;char&amp;quot; returns &amp;quot;char&amp;quot; as the event and (let's say E was pressed) the first parameter will be set to &amp;quot;e&amp;quot;, although whether or not Shift was pressed can change that &amp;quot;e&amp;quot; to an &amp;quot;E&amp;quot; as well.&lt;br /&gt;
&lt;br /&gt;
The event &amp;quot;redstone&amp;quot; only returns the event type since any other information needed can be retrieved with [[redstone.getInput]].&lt;br /&gt;
&lt;br /&gt;
=== Common Syntax ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event, param1, param2, param3 = os.pullEvent()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Event Types==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
! colspan=&amp;quot;6&amp;quot; | Parameters&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! 3&lt;br /&gt;
! 4&lt;br /&gt;
! 5&lt;br /&gt;
! 6&lt;br /&gt;
|-&lt;br /&gt;
![[char]]&lt;br /&gt;
|Fired when text is typed on the keyboard&lt;br /&gt;
|(string)the letter typed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[key]]&lt;br /&gt;
|Fired when a key is pressed on the keyboard&lt;br /&gt;
|(number)numerical keycode&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[timer]]&lt;br /&gt;
|Fired when a timeout started by os.startTimer() completes&lt;br /&gt;
|(number)Value of the timer as returned by os.startTimer()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[alarm]]&lt;br /&gt;
|Fired when a time passed to os.setAlarm() is reached&lt;br /&gt;
|(number)Value of the alarm as returned by os.setAlarm()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[redstone]]&lt;br /&gt;
|Fired when the state of any of the redstone inputs change&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[disk]]&lt;br /&gt;
|Fired when a disk is inserted into an adjacent disk drive&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[disk_eject]]&lt;br /&gt;
|Fired when a disk is removed from an adjacent disk drive&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[peripheral]]&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[peripheral_detach]]&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[rednet_message]]&lt;br /&gt;
|Fired when a rednet message is received from the [[Rednet_(API)|rednet API]]&lt;br /&gt;
|(number)senderID&lt;br /&gt;
|(string)message&lt;br /&gt;
|(number)distance travelled&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[http_success]]&lt;br /&gt;
|Fired when an attempt to receieve text from / post text on a website is successful&lt;br /&gt;
|(string)url of the site&lt;br /&gt;
|(table)text on the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[http_failure]]&lt;br /&gt;
|Fired when an attempt to receive text from / post text on a website is unsuccessful&lt;br /&gt;
|(string)url of the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_click]]&lt;br /&gt;
|Fired when a mouse button is pressed&lt;br /&gt;
|(number)mouse button&lt;br /&gt;
|(number)x coordinate&lt;br /&gt;
|(number)y coordinate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_scroll]]&lt;br /&gt;
|Fired when a mousewheel is scrolled.&lt;br /&gt;
|(number)scroll direction (-1 for up, 1 for down)&lt;br /&gt;
|(number)x coordinate(in screen chars)&lt;br /&gt;
|(number)y coordinate(in screen chars)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_drag]]&lt;br /&gt;
|Fired when the mouse is moved after clicking.&lt;br /&gt;
|(number)x coordinate(in screen chars)&lt;br /&gt;
|(number)y coordinate(in screen chars)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
[http://www.computercraft.info/forums2/index.php?/topic/1516-ospullevent-what-is-it-and-how-is-it-useful/page__view__findpost__p__11156 ''Onionnion's Guide on os.pullEvent()'']&lt;/div&gt;</summary>
		<author><name>Pharap</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3631</id>
		<title>Os.pullEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3631"/>
				<updated>2012-11-05T15:27:32Z</updated>
		
		<summary type="html">&lt;p&gt;Pharap: /* Event Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.pullEvent&lt;br /&gt;
 |args=[[string]] only-event-to-accept&lt;br /&gt;
 |api=os&lt;br /&gt;
 |returns=event, parameters&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Yields computer until event occurs&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program requires to wait for a keypress to do something:&lt;br /&gt;
|code=[[function]] clear()&lt;br /&gt;
    [[term.clear]]()&lt;br /&gt;
    [[term.setCursorPos]] (1,1)&lt;br /&gt;
 end&lt;br /&gt;
 while true do&lt;br /&gt;
    clear()&lt;br /&gt;
    [[print]] (&amp;quot;Press E to do something.&amp;quot;)&lt;br /&gt;
    local event, param1 = os.pullEvent (&amp;quot;char&amp;quot;) -- limit os.pullEvent to the char event&lt;br /&gt;
    if param1 == &amp;quot;e&amp;quot; then -- if the returned value was 'e'&lt;br /&gt;
        clear()&lt;br /&gt;
        [[write]] (&amp;quot;Name: &amp;quot;)&lt;br /&gt;
        local name = [[read]]()&lt;br /&gt;
        [[print]] (name)&lt;br /&gt;
        break&lt;br /&gt;
    else&lt;br /&gt;
        clear()&lt;br /&gt;
        [[print]] (&amp;quot;Wrong button!&amp;quot;)&lt;br /&gt;
        [[sleep]] (1.5) -- I don't like a whole 2 seconds but 1 second is too short&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== How it Works ==&lt;br /&gt;
When os.pullEvent() is called, regardless of whether it has variables to set, the computer is yielded until an event occurs. An event is anything the computer can use as input, such as a button being pushed on the keyboard or a redstone input.&lt;br /&gt;
When said event occurs, the event's name is placed in the first variable (the variable 'event' in the section below). With the event comes returned values, and, depending on the event type, there can be different amounts and different data types of returned values.&lt;br /&gt;
&lt;br /&gt;
For example, the event &amp;quot;char&amp;quot; returns &amp;quot;char&amp;quot; as the event and (let's say E was pressed) the first parameter will be set to &amp;quot;e&amp;quot;, although whether or not Shift was pressed can change that &amp;quot;e&amp;quot; to an &amp;quot;E&amp;quot; as well.&lt;br /&gt;
&lt;br /&gt;
The event &amp;quot;redstone&amp;quot; only returns the event type since any other information needed can be retrieved with [[redstone.getInput]].&lt;br /&gt;
&lt;br /&gt;
=== Common Syntax ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event, param1, param2, param3 = os.pullEvent()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Event Types==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
! colspan=&amp;quot;6&amp;quot; | Parameters&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! 3&lt;br /&gt;
! 4&lt;br /&gt;
! 5&lt;br /&gt;
! 6&lt;br /&gt;
|-&lt;br /&gt;
![[char]]&lt;br /&gt;
|Fired when text is typed on the keyboard&lt;br /&gt;
|(string)the letter typed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[key]]&lt;br /&gt;
|Fired when a key is pressed on the keyboard&lt;br /&gt;
|(number)numerical  [[http://computercraft.info/wiki/index.php?title=Raw_key_events|keycode]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[timer]]&lt;br /&gt;
|Fired when a timeout started by os.startTimer() completes&lt;br /&gt;
|(number)Value of the timer as returned by os.startTimer()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[alarm]]&lt;br /&gt;
|Fired when a time passed to os.setAlarm() is reached&lt;br /&gt;
|(number)Value of the alarm as returned by os.setAlarm()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[redstone]]&lt;br /&gt;
|Fired when the state of any of the redstone inputs change&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[disk]]&lt;br /&gt;
|Fired when a disk is inserted into an adjacent disk drive&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[disk_eject]]&lt;br /&gt;
|Fired when a disk is removed from an adjacent disk drive&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[peripheral]]&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[peripheral_detach]]&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|(string)side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[rednet_message]]&lt;br /&gt;
|Fired when a rednet message is received from the [[Rednet_(API)|rednet API]]&lt;br /&gt;
|(number)senderID&lt;br /&gt;
|(string)message&lt;br /&gt;
|(number)distance travelled&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[http_success]]&lt;br /&gt;
|Fired when an attempt to receieve text from / post text on a website is successful&lt;br /&gt;
|(string)url of the site&lt;br /&gt;
|(table)text on the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[http_failure]]&lt;br /&gt;
|Fired when an attempt to receive text from / post text on a website is unsuccessful&lt;br /&gt;
|(string)url of the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_click]]&lt;br /&gt;
|Fired when a mouse button is pressed&lt;br /&gt;
|(number)mouse button&lt;br /&gt;
|(number)x coordinate&lt;br /&gt;
|(number)y coordinate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_scroll]]&lt;br /&gt;
|Fired when a mousewheel is scrolled.&lt;br /&gt;
|(number)scroll direction (-1 for up, 1 for down)&lt;br /&gt;
|(number)x coordinate(in screen chars)&lt;br /&gt;
|(number)y coordinate(in screen chars)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
![[mouse_drag]]&lt;br /&gt;
|Fired when the mouse is moved after clicking.&lt;br /&gt;
|(number)x coordinate(in screen chars)&lt;br /&gt;
|(number)y coordinate(in screen chars)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
[http://www.computercraft.info/forums2/index.php?/topic/1516-ospullevent-what-is-it-and-how-is-it-useful/page__view__findpost__p__11156 ''Onionnion's Guide on os.pullEvent()'']&lt;/div&gt;</summary>
		<author><name>Pharap</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3569</id>
		<title>Os.pullEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.pullEvent&amp;diff=3569"/>
				<updated>2012-10-30T12:53:43Z</updated>
		
		<summary type="html">&lt;p&gt;Pharap: new event discovered&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.pullEvent&lt;br /&gt;
 |args=[[string]] only-event-to-accept&lt;br /&gt;
 |api=os&lt;br /&gt;
 |returns=event, parameters&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Yields computer until event occurs&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program requires to wait for a keypress to do something:&lt;br /&gt;
|code=[[function]] clear()&lt;br /&gt;
    [[term.clear]]()&lt;br /&gt;
    [[term.setCursorPos]] (1,1)&lt;br /&gt;
 end&lt;br /&gt;
 while true do&lt;br /&gt;
    clear()&lt;br /&gt;
    [[print]] (&amp;quot;Press E to do something.&amp;quot;)&lt;br /&gt;
    local event, param1 = os.pullEvent (&amp;quot;char&amp;quot;) -- limit os.pullEvent to the char event&lt;br /&gt;
    if param1 == &amp;quot;e&amp;quot; then -- if the returned value was 'e'&lt;br /&gt;
        clear()&lt;br /&gt;
        [[write]] (&amp;quot;Name: &amp;quot;)&lt;br /&gt;
        local name = [[read]]()&lt;br /&gt;
        [[print]] (name)&lt;br /&gt;
        break&lt;br /&gt;
    else&lt;br /&gt;
        clear()&lt;br /&gt;
        [[print]] (&amp;quot;Wrong button!&amp;quot;)&lt;br /&gt;
        [[sleep]] (1.5) -- I don't like a whole 2 seconds but 1 second is too short&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== How it Works ==&lt;br /&gt;
When os.pullEvent() is called, regardless of whether it has variables to set, the computer is yielded until an event occurs. An event is anything the computer can use as input, such as a button being pushed on the keyboard or a redstone input.&lt;br /&gt;
When said event occurs, the event's name is placed in the first variable (the variable 'event' in the section below). With the event comes returned values, and, depending on the event type, there can be different amounts and different data types of returned values.&lt;br /&gt;
&lt;br /&gt;
For example, the event &amp;quot;char&amp;quot; returns &amp;quot;char&amp;quot; as the event and (let's say E was pressed) the first parameter will be set to &amp;quot;e&amp;quot;, although whether or not Shift was pressed can change that &amp;quot;e&amp;quot; to an &amp;quot;E&amp;quot; as well.&lt;br /&gt;
&lt;br /&gt;
The event &amp;quot;redstone&amp;quot; only returns the event type since any other information needed can be retrieved with [[redstone.getInput]].&lt;br /&gt;
&lt;br /&gt;
=== Common Syntax ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event, param1, param2, param3 = os.pullEvent()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Event Types==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
! colspan=&amp;quot;6&amp;quot; | Parameters&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! 3&lt;br /&gt;
! 4&lt;br /&gt;
! 5&lt;br /&gt;
! 6&lt;br /&gt;
|-&lt;br /&gt;
!char&lt;br /&gt;
|Fired when text is typed on the keyboard&lt;br /&gt;
|the letter typed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!key&lt;br /&gt;
|Fired when a key is pressed on the keyboard&lt;br /&gt;
|numerical keycode&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!timer&lt;br /&gt;
|Fired when a timeout started by os.startTimer() completes&lt;br /&gt;
|Value of the timer as returned by os.startTimer()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!alarm&lt;br /&gt;
|Fired when a time passed to os.setAlarm() is reached&lt;br /&gt;
|Value of the alarm as returned by os.setAlarm()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!redstone&lt;br /&gt;
|Fired when the state of any of the redstone inputs change&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!disk&lt;br /&gt;
|Fired when a disk is inserted into an adjacent disk drive&lt;br /&gt;
|side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!disk_eject&lt;br /&gt;
|Fired when a disk is removed from an adjacent disk drive&lt;br /&gt;
|side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!peripheral&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!peripheral_detach&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|side&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!rednet_message&lt;br /&gt;
|Fired when a rednet message is received from the [[Rednet_(API)|rednet API]]&lt;br /&gt;
|senderID&lt;br /&gt;
|message&lt;br /&gt;
|distanceTravelled&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!http_success&lt;br /&gt;
|Fired when an attempt to recieve text from / post text on a website is successful&lt;br /&gt;
|url of the site&lt;br /&gt;
|text on the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!http_failure&lt;br /&gt;
|Fired when an attempt to recieve text from / post text on a website is unsuccessful&lt;br /&gt;
|url of the site&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!mouse_click&lt;br /&gt;
|Fired when a mouse button is pressed&lt;br /&gt;
|mouse button&lt;br /&gt;
|x coordinate&lt;br /&gt;
|y coordinate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!mouse_scroll&lt;br /&gt;
|Fired when a mousewheel is scrolled.&lt;br /&gt;
|scroll direction (-1 for up, 1 for down)&lt;br /&gt;
|x coordinate&lt;br /&gt;
|y coordinate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!mouse_drag&lt;br /&gt;
|Fired when the mouse is moved after clicking.&lt;br /&gt;
|x coordinate&lt;br /&gt;
|y coordinate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
[http://www.computercraft.info/forums2/index.php?/topic/1516-ospullevent-what-is-it-and-how-is-it-useful/page__view__findpost__p__11156 ''Onionnion's Guide on os.pullEvent()'']&lt;/div&gt;</summary>
		<author><name>Pharap</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3568</id>
		<title>Os.queueEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3568"/>
				<updated>2012-10-30T10:12:03Z</updated>
		
		<summary type="html">&lt;p&gt;Pharap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.queueEvent&lt;br /&gt;
 |args=[[string]] eventName, param1, param2, param3&lt;br /&gt;
 |api=os&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Adds an event &amp;lt;var&amp;gt;eventName&amp;lt;/var&amp;gt; with the specified parameters to the event queue.&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program adds an event which it will eventually pull.&lt;br /&gt;
|code=&lt;br /&gt;
function clear()&lt;br /&gt;
   term.clear()&lt;br /&gt;
   term.setCursorPos(1,1) end &lt;br /&gt;
   os.queueEvent(&amp;quot;abc&amp;quot;, 2, &amp;quot;meow&amp;quot;)&lt;br /&gt;
   while true do&lt;br /&gt;
    local event, param1, param2 = os.pullEvent()&lt;br /&gt;
    if event == &amp;quot;abc&amp;quot; then&lt;br /&gt;
        print(&amp;quot;ABC EVENT! Parameters: &amp;quot;..param1..&amp;quot; / &amp;quot; ..param2)&lt;br /&gt;
    else&lt;br /&gt;
        print(&amp;quot;Event: &amp;quot;  .. event )&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=To easily have a redstone and a key input do the same,&amp;lt;br /&amp;gt;&lt;br /&gt;
it queues a key event with the appropriate key if a redstone event happens.&lt;br /&gt;
|code=&lt;br /&gt;
 while true do&lt;br /&gt;
     local event, param1 = os.pullEvent()&lt;br /&gt;
     if event == &amp;quot;redstone&amp;quot; then&lt;br /&gt;
       if rs.getInput(&amp;quot;left&amp;quot;) then&lt;br /&gt;
         os.queueEvent(&amp;quot;key&amp;quot;,28)&lt;br /&gt;
       end&lt;br /&gt;
     elseif event == &amp;quot;key&amp;quot; then&lt;br /&gt;
       if param1 == 28 then&lt;br /&gt;
         print(&amp;quot;Hello&amp;quot;)&lt;br /&gt;
       end&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pharap</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3567</id>
		<title>Os.queueEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3567"/>
				<updated>2012-10-30T10:09:35Z</updated>
		
		<summary type="html">&lt;p&gt;Pharap: Fixing code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.queueEvent&lt;br /&gt;
 |args=[[string]] eventName, param1, param2, param3&lt;br /&gt;
 |api=os&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Adds an event &amp;lt;var&amp;gt;eventName&amp;lt;/var&amp;gt; with the specified parameters to the event queue.&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program adds an event which it will eventually pull.&lt;br /&gt;
|code=function clear()&lt;br /&gt;
   term.clear()&lt;br /&gt;
   term.setCursorPos (1,1)&lt;br /&gt;
end&lt;br /&gt;
os.queueEvent(&amp;quot;abc&amp;quot;, 2, &amp;quot;meow&amp;quot;)&lt;br /&gt;
while true do&lt;br /&gt;
   local event, param1, param2 = os.pullEvent()&lt;br /&gt;
   if event == &amp;quot;abc&amp;quot; then&lt;br /&gt;
       print(&amp;quot;ABC EVENT! Parameters: &amp;quot;..param1..&amp;quot; / &amp;quot; ..param2)&lt;br /&gt;
   else&lt;br /&gt;
       print(&amp;quot;Event: &amp;quot;  .. event )&lt;br /&gt;
   end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=To easily have a redstone and a key input do the same,&amp;lt;br /&amp;gt;&lt;br /&gt;
it queues a key event with the appropriate key if a redstone event happens.&lt;br /&gt;
|code=&lt;br /&gt;
 while true do&lt;br /&gt;
     local event, param1 = os.pullEvent()&lt;br /&gt;
     if event == &amp;quot;redstone&amp;quot; then&lt;br /&gt;
       if rs.getInput(&amp;quot;left&amp;quot;) then&lt;br /&gt;
         os.queueEvent(&amp;quot;key&amp;quot;,28)&lt;br /&gt;
       end&lt;br /&gt;
     elseif event == &amp;quot;key&amp;quot; then&lt;br /&gt;
       if param1 == 28 then&lt;br /&gt;
         print(&amp;quot;Hello&amp;quot;)&lt;br /&gt;
       end&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pharap</name></author>	</entry>

	</feed>