<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>mux package on StompyMUX Documentation</title><link>http://stompymux.com/docs/scripting/packages/mux/</link><description>Recent content in mux package on StompyMUX Documentation</description><generator>Hugo</generator><language>en</language><atom:link href="http://stompymux.com/docs/scripting/packages/mux/index.xml" rel="self" type="application/rss+xml"/><item><title>Attribute</title><link>http://stompymux.com/docs/scripting/packages/mux/type-attribute/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/type-attribute/</guid><description>&lt;p&gt;An &lt;code&gt;Attribute&lt;/code&gt; handle exposes the same safe native-attribute set as the
Wizard-only &lt;code&gt;@attribute&lt;/code&gt; command. It is distinct from dynamic &lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;.
Create a handle with &lt;a href="../object-attribute/"&gt;&lt;code&gt;Object:attribute&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Only descriptions and BattleTech-native attributes are exposed. Names are
matched by the native attribute registry; unsupported names raise an error.&lt;/p&gt;
&lt;h2 id="methods"&gt;Methods&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Method&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../attribute-get/"&gt;&lt;code&gt;Attribute:get&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Gets an attribute value.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../attribute-set/"&gt;&lt;code&gt;Attribute:set&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Sets or clears an attribute.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../attribute-entries/"&gt;&lt;code&gt;Attribute:entries&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Returns every supported attribute.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../object-attribute/"&gt;&lt;code&gt;Object:attribute&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Attribute:entries</title><link>http://stompymux.com/docs/scripting/packages/mux/attribute-entries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/attribute-entries/</guid><description>&lt;p&gt;Returns every supported native attribute and its current value.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;attributes:entries( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table entries&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A name-to-string table of all supported attributes.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Unset attributes are included with an empty-string value.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-attribute/"&gt;&lt;code&gt;Attribute&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../attribute-get/"&gt;&lt;code&gt;Attribute:get&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Attribute:get</title><link>http://stompymux.com/docs/scripting/packages/mux/attribute-get/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/attribute-get/</guid><description>&lt;p&gt;Gets a supported native attribute.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;attributes:get( name )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string name&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A supported native attribute name.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string or nil value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The raw value, or &lt;code&gt;nil&lt;/code&gt; when unset.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Unsupported names and invalid handles raise a Lua error.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-attribute/"&gt;&lt;code&gt;Attribute&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../attribute-set/"&gt;&lt;code&gt;Attribute:set&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Attribute:set</title><link>http://stompymux.com/docs/scripting/packages/mux/attribute-set/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/attribute-set/</guid><description>&lt;p&gt;Sets or clears a supported native attribute.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;attributes:set( name, value )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string name&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A supported native attribute name.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string or nil value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The new raw value; &lt;code&gt;nil&lt;/code&gt; clears the attribute.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;p&gt;Nothing.&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Values must fit the native attribute buffer and cannot contain embedded NUL bytes. Unsupported names, invalid values, and failed native updates raise an error. This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-attribute/"&gt;&lt;code&gt;Attribute&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../attribute-get/"&gt;&lt;code&gt;Attribute:get&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../attribute-entries/"&gt;&lt;code&gt;Attribute:entries&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.connected_players</title><link>http://stompymux.com/docs/scripting/packages/mux/connected-players/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/connected-players/</guid><description>&lt;p&gt;Lists player connections visible to the normal &lt;code&gt;who&lt;/code&gt; command.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.connected_players( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table players&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An array of connection records.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; _, player &lt;span style="color:#66d9ef"&gt;in&lt;/span&gt; ipairs(mux.connected_players()) &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mux.notify(ctx.enactor, player.name)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Each record contains &lt;code&gt;object&lt;/code&gt; (&lt;code&gt;Object&lt;/code&gt;), &lt;code&gt;name&lt;/code&gt; (string), &lt;code&gt;connected_for&lt;/code&gt; (elapsed seconds), and &lt;code&gt;idle_for&lt;/code&gt; (elapsed seconds). Hidden players and privileged connection details are omitted.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../who-summary/"&gt;&lt;code&gt;mux.who_summary&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.flow_start</title><link>http://stompymux.com/docs/scripting/packages/mux/flow-start/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/flow-start/</guid><description>&lt;p&gt;Attaches an &lt;a href="../../../flows/"&gt;interactive flow&lt;/a&gt; to a descriptor and shows its
first prompt.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.flow_start( descriptor, module, first_step )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number descriptor&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A live descriptor ID, normally &lt;code&gt;ctx.descriptor&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string module&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The flow module path, resolved like &lt;code&gt;require&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string first_step&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A key in the module&amp;rsquo;s &lt;code&gt;flows&lt;/code&gt; table.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;p&gt;Nothing.&lt;/p&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.flow_start(ctx.descriptor, &lt;span style="color:#e6db74"&gt;&amp;#34;confirm_delete.lua&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;confirm&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Raises an error if the descriptor does not exist, already has a flow, or the module lacks the requested step. This function is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>mux.is_printable_ascii</title><link>http://stompymux.com/docs/scripting/packages/mux/is-printable-ascii/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/is-printable-ascii/</guid><description>&lt;p&gt;Tests whether every byte in a string is printable ASCII.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.is_printable_ascii( value )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The byte string to inspect.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;boolean printable&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Whether every byte is between space (&lt;code&gt;0x20&lt;/code&gt;) and &lt;code&gt;~&lt;/code&gt; (&lt;code&gt;0x7e&lt;/code&gt;), inclusive.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;assert(mux.is_printable_ascii(&lt;span style="color:#e6db74"&gt;&amp;#34;Atlas-1&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;assert(&lt;span style="color:#f92672"&gt;not&lt;/span&gt; mux.is_printable_ascii(&lt;span style="color:#e6db74"&gt;&amp;#34;café&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The empty string is valid. Control bytes, embedded NUL bytes, DEL, and non-ASCII UTF-8 characters return &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.markup</title><link>http://stompymux.com/docs/scripting/packages/mux/markup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/markup/</guid><description>&lt;p&gt;Validates styled-text markup and returns it unchanged.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.markup( value )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Styled-text markup to validate.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string markup&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The validated input string.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; warning &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.markup(&lt;span style="color:#e6db74"&gt;&amp;#34;[fg=#ff7000][bold]Warning[/][/]&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; look &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.markup(&lt;span style="color:#e6db74"&gt;&amp;#39;[send=&amp;#34;look&amp;#34;]Look[/]&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Invalid tags, colors, link targets, or nesting raise a Lua error. &lt;code&gt;[send]&lt;/code&gt; and &lt;code&gt;[prompt]&lt;/code&gt; targets are percent-encoded during rendering; &lt;code&gt;[link]&lt;/code&gt; accepts &lt;code&gt;http:&lt;/code&gt;, &lt;code&gt;https:&lt;/code&gt;, and &lt;code&gt;ftp:&lt;/code&gt; URIs.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../style/"&gt;&lt;code&gt;mux.style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../strip-style/"&gt;&lt;code&gt;mux.strip_style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.notify</title><link>http://stompymux.com/docs/scripting/packages/mux/notify/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/notify/</guid><description>&lt;p&gt;Sends a message to an object.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.notify( object, message )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number or Object object&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The recipient.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string message&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Valid UTF-8 text without embedded NUL bytes.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;p&gt;Nothing.&lt;/p&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.notify(ctx.enactor, &lt;span style="color:#e6db74"&gt;&amp;#34;The counter advances.&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The recipient must be a live object. Output styling is adapted to each recipient&amp;rsquo;s negotiated terminal color depth. This function is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../markup/"&gt;&lt;code&gt;mux.markup&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../style/"&gt;&lt;code&gt;mux.style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.object</title><link>http://stompymux.com/docs/scripting/packages/mux/object/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object/</guid><description>&lt;p&gt;Creates a validated handle for a native database object.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.object( dbref )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number or Object dbref&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A live database reference or an existing object handle.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;Object object&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A handle for the referenced object.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; object &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.object(ctx.object)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.notify(ctx.enactor, object.name)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;This function is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;. Passing an invalid object raises a Lua error.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.strip_style</title><link>http://stompymux.com/docs/scripting/packages/mux/strip-style/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/strip-style/</guid><description>&lt;p&gt;Removes styled-text markup and ANSI styling from a string.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.strip_style( value )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Styled or unstyled text.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string plain&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The visible unstyled text.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; command &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.strip_style(styled_name)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;This is useful before using player-facing text as a command or identifier.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../markup/"&gt;&lt;code&gt;mux.markup&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../text-width/"&gt;&lt;code&gt;mux.text_width&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.style</title><link>http://stompymux.com/docs/scripting/packages/mux/style/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/style/</guid><description>&lt;p&gt;Applies styled-text markup described by an options table.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.style( value, options )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The text to style; it must not contain an embedded NUL byte.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;table options&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Style fields to apply.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string styled&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The input wrapped in validated styled-text markup.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; heading &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.style(&lt;span style="color:#e6db74"&gt;&amp;#34;Warning&amp;#34;&lt;/span&gt;, {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; foreground &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;#ff7000&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; bold &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;})
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;options.foreground&lt;/code&gt; and &lt;code&gt;options.background&lt;/code&gt; accept a built-in or configured color name or &lt;code&gt;#RRGGBB&lt;/code&gt;. &lt;code&gt;bold&lt;/code&gt;, &lt;code&gt;underline&lt;/code&gt;, and &lt;code&gt;inverse&lt;/code&gt; are booleans. Missing fields have no effect; invalid types and colors raise an error.&lt;/p&gt;</description></item><item><title>mux.telnet_environment_get</title><link>http://stompymux.com/docs/scripting/packages/mux/telnet-environment-get/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/telnet-environment-get/</guid><description>&lt;p&gt;Gets an RFC 1572 NEW-ENVIRON variable from a live connection.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.telnet_environment_get( descriptor, kind, name )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number descriptor&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A live descriptor ID, normally &lt;code&gt;ctx.descriptor&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string kind&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Either &lt;code&gt;&amp;quot;var&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;uservar&amp;quot;&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string name&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The binary-safe variable name.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string or nil value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The binary-safe value, or &lt;code&gt;nil&lt;/code&gt; when the variable is absent.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; mux.telnet_environment_has(ctx.descriptor, &lt;span style="color:#e6db74"&gt;&amp;#34;var&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;USER&amp;#34;&lt;/span&gt;) &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; user &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.telnet_environment_get(ctx.descriptor, &lt;span style="color:#e6db74"&gt;&amp;#34;var&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;USER&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;A defined empty value returns &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;. The two kinds are distinct namespaces and all received data is untrusted. An invalid descriptor or kind raises an error; this function is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>mux.telnet_environment_has</title><link>http://stompymux.com/docs/scripting/packages/mux/telnet-environment-has/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/telnet-environment-has/</guid><description>&lt;p&gt;Tests whether an RFC 1572 NEW-ENVIRON variable is defined on a live connection.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.telnet_environment_has( descriptor, kind, name )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number descriptor&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A live descriptor ID, normally &lt;code&gt;ctx.descriptor&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string kind&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Either &lt;code&gt;&amp;quot;var&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;uservar&amp;quot;&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string name&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The binary-safe variable name.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;boolean defined&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Whether the variable is present, including with an empty value.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The two kinds are distinct namespaces. Client-provided names and values are untrusted input. An invalid descriptor or kind raises an error; this function is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>mux.text_width</title><link>http://stompymux.com/docs/scripting/packages/mux/text-width/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/text-width/</guid><description>&lt;p&gt;Measures the visible byte width of styled text.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.text_width( value )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Styled or unstyled text.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number width&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The number of visible bytes, excluding markup and ANSI styling.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The result is a byte width, not a Unicode display-cell calculation.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../truncate-text/"&gt;&lt;code&gt;mux.truncate_text&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../strip-style/"&gt;&lt;code&gt;mux.strip_style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.truncate_text</title><link>http://stompymux.com/docs/scripting/packages/mux/truncate-text/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/truncate-text/</guid><description>&lt;p&gt;Truncates styled text to a maximum visible width.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.truncate_text( value, width )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Styled or unstyled text.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;number width&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A non-negative maximum visible byte width.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string truncated&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The safely truncated text, including any resets needed for active styles.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; label &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.truncate_text(mux.style(&lt;span style="color:#e6db74"&gt;&amp;#34;Atlas&amp;#34;&lt;/span&gt;, { bold &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt; }), &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;A negative width raises a Lua error. Markup and ANSI sequences do not count toward the limit.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../text-width/"&gt;&lt;code&gt;mux.text_width&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../strip-style/"&gt;&lt;code&gt;mux.strip_style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mux.who_summary</title><link>http://stompymux.com/docs/scripting/packages/mux/who-summary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/who-summary/</guid><description>&lt;p&gt;Returns the non-privileged WHO summary.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.who_summary( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table summary&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A table with &lt;code&gt;hidden&lt;/code&gt;, &lt;code&gt;record&lt;/code&gt;, and &lt;code&gt;maximum&lt;/code&gt; fields.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; summary &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.who_summary()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; maximum &lt;span style="color:#f92672"&gt;=&lt;/span&gt; summary.maximum &lt;span style="color:#f92672"&gt;or&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;no&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;hidden&lt;/code&gt; and &lt;code&gt;record&lt;/code&gt; are numbers. &lt;code&gt;maximum&lt;/code&gt; is a number or &lt;code&gt;nil&lt;/code&gt; when the game has no player limit.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../connected-players/"&gt;&lt;code&gt;mux.connected_players&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Object</title><link>http://stompymux.com/docs/scripting/packages/mux/type-object/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/type-object/</guid><description>&lt;p&gt;An &lt;code&gt;Object&lt;/code&gt; is a validated handle for a native database object. Create one with
&lt;a href="../object/"&gt;&lt;code&gt;mux.object&lt;/code&gt;&lt;/a&gt;. Handles become invalid if their object is destroyed
or its database slot is reused. Two handles for the same live object compare
equal, and &lt;code&gt;tostring(object)&lt;/code&gt; produces a value such as &lt;code&gt;object(#123)&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="properties"&gt;Properties&lt;/h2&gt;
&lt;p&gt;All properties are read-only.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Property&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;dbref&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;number&lt;/td&gt;
 &lt;td&gt;The native database reference.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;The object&amp;rsquo;s current name.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;room&lt;/code&gt;, &lt;code&gt;thing&lt;/code&gt;, &lt;code&gt;exit&lt;/code&gt;, or &lt;code&gt;player&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string or nil&lt;/td&gt;
 &lt;td&gt;The native description, if set.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;inside_description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string or nil&lt;/td&gt;
 &lt;td&gt;The native inside description, if set.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="methods"&gt;Methods&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Method&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../object-contents/"&gt;&lt;code&gt;Object:contents&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Lists directly contained objects.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../object-contents-visible/"&gt;&lt;code&gt;Object:contents_visible&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Applies native content visibility rules.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../object-exits/"&gt;&lt;code&gt;Object:exits&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Lists directly attached exits.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../object-exits-visible/"&gt;&lt;code&gt;Object:exits_visible&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Applies native exit visibility rules.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../object-enter-lock-passes/"&gt;&lt;code&gt;Object:enter_lock_passes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Tests an exit&amp;rsquo;s traversal lock.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../object-attribute/"&gt;&lt;code&gt;Object:attribute&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Opens the native attribute interface.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../object-state/"&gt;&lt;code&gt;Object:state&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Opens a persistent state namespace.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../object/"&gt;&lt;code&gt;mux.object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Object:attribute</title><link>http://stompymux.com/docs/scripting/packages/mux/object-attribute/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object-attribute/</guid><description>&lt;p&gt;Creates an attribute handle for this object.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;object:attribute( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;Attribute attributes&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A handle for the object&amp;rsquo;s supported native attributes.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; attributes &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.object(ctx.object):attribute()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;attributes:set(&lt;span style="color:#e6db74"&gt;&amp;#34;Mechname&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;H-7&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; attributes:get(&lt;span style="color:#e6db74"&gt;&amp;#34;Mechname&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-attribute/"&gt;&lt;code&gt;Attribute&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Object:contents</title><link>http://stompymux.com/docs/scripting/packages/mux/object-contents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object-contents/</guid><description>&lt;p&gt;Returns the objects directly contained by this object.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;object:contents( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table contents&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An array of &lt;code&gt;Object&lt;/code&gt; handles in native database order.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The receiver must be able to contain objects. Results are unfiltered; use &lt;code&gt;Object:contents_visible&lt;/code&gt; to apply native look visibility rules. This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../object-contents-visible/"&gt;&lt;code&gt;Object:contents_visible&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Object:contents_visible</title><link>http://stompymux.com/docs/scripting/packages/mux/object-contents-visible/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object-contents-visible/</guid><description>&lt;p&gt;Tests whether a directly contained object is visible to a viewer.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;object:contents_visible( viewer, member )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number or Object viewer&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The object viewing the container.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;number or Object member&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An object directly contained by the receiver.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;boolean visible&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Whether native look rules expose the member.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; _, member &lt;span style="color:#66d9ef"&gt;in&lt;/span&gt; ipairs(room:contents()) &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; room:contents_visible(ctx.enactor, member) &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mux.notify(ctx.enactor, member.name)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The receiver must be able to contain objects, and &lt;code&gt;member&lt;/code&gt; must be directly contained by it. This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Object:enter_lock_passes</title><link>http://stompymux.com/docs/scripting/packages/mux/object-enter-lock-passes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object-enter-lock-passes/</guid><description>&lt;p&gt;Tests whether an enactor passes this exit&amp;rsquo;s default traversal lock.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit:enter_lock_passes( enactor )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number or Object enactor&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The object attempting traversal.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;boolean passes&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Whether the lock passes.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The receiver must be an exit. The check sends no lock messages and does not move the enactor. This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Object:exits</title><link>http://stompymux.com/docs/scripting/packages/mux/object-exits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object-exits/</guid><description>&lt;p&gt;Returns the exits directly attached to this object.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;object:exits( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table exits&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An array of &lt;code&gt;Object&lt;/code&gt; handles in native database order.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The receiver must be able to have exits. Results are unfiltered; use &lt;code&gt;Object:exits_visible&lt;/code&gt; to apply native look visibility rules. This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../object-exits-visible/"&gt;&lt;code&gt;Object:exits_visible&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Object:exits_visible</title><link>http://stompymux.com/docs/scripting/packages/mux/object-exits-visible/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object-exits-visible/</guid><description>&lt;p&gt;Tests whether a directly attached exit is visible to a viewer.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;object:exits_visible( viewer, exit )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;number or Object viewer&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The object viewing the location.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;number or Object exit&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An exit directly attached to the receiver.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;boolean visible&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Whether native exit-display rules expose the exit.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The receiver must be able to have exits. &lt;code&gt;exit&lt;/code&gt; must be an exit attached directly to it. This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Object:state</title><link>http://stompymux.com/docs/scripting/packages/mux/object-state/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/object-state/</guid><description>&lt;p&gt;Creates a persistent-state handle for one namespace on this object.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;object:state( namespace )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string namespace&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A valid, exact, case-sensitive state namespace.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;State state&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A handle for the namespace.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; state &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.object(ctx.object):state(&lt;span style="color:#e6db74"&gt;&amp;#34;counter&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;local&lt;/span&gt; count &lt;span style="color:#f92672"&gt;=&lt;/span&gt; state:get(&lt;span style="color:#e6db74"&gt;&amp;#34;count&amp;#34;&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;) &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:set(&lt;span style="color:#e6db74"&gt;&amp;#34;count&amp;#34;&lt;/span&gt;, count)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The namespace must begin with an ASCII letter and may contain letters, digits, &lt;code&gt;_&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;.&lt;/code&gt;, and &lt;code&gt;/&lt;/code&gt;. This method is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State</title><link>http://stompymux.com/docs/scripting/packages/mux/type-state/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/type-state/</guid><description>&lt;p&gt;A &lt;code&gt;State&lt;/code&gt; handle accesses persistent values belonging to one named subsystem on
one object. Create a handle with &lt;a href="../object-state/"&gt;&lt;code&gt;Object:state&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Namespaces and keys are exact and case-sensitive. They begin with an ASCII
letter and may contain letters, digits, &lt;code&gt;_&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;.&lt;/code&gt;, and &lt;code&gt;/&lt;/code&gt;; keys are at most
255 bytes. Values retain their Lua scalar type across reloads and restarts.
Supported values are strings, booleans, integers, and finite numbers. Empty
strings are values; &lt;code&gt;nil&lt;/code&gt; deletes a value.&lt;/p&gt;</description></item><item><title>State:delete</title><link>http://stompymux.com/docs/scripting/packages/mux/state-delete/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-delete/</guid><description>&lt;p&gt;Deletes a persistent state value.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:delete( key )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string key&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A valid state key.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;boolean existed&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Whether the key existed before deletion.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The deletion belongs to the current callback transaction.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-set/"&gt;&lt;code&gt;State:set&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State:entries</title><link>http://stompymux.com/docs/scripting/packages/mux/state-entries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-entries/</guid><description>&lt;p&gt;Lists the entries in this state namespace.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:entries( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table entries&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An array of &lt;code&gt;{ key = ..., value = ... }&lt;/code&gt; records sorted by key.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Enumeration requires an active callback transaction and includes earlier writes from that transaction.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-keys/"&gt;&lt;code&gt;State:keys&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-get-many/"&gt;&lt;code&gt;State:get_many&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State:get</title><link>http://stompymux.com/docs/scripting/packages/mux/state-get/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-get/</guid><description>&lt;p&gt;Gets a persistent state value.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:get( key [, default] )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string key&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A valid state key.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;any default&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Optional value returned when the key is absent.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string, boolean, number, or any value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The stored value, the supplied default, or &lt;code&gt;nil&lt;/code&gt;.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Reads observe writes made earlier in the current callback transaction.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-has/"&gt;&lt;code&gt;State:has&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-get-many/"&gt;&lt;code&gt;State:get_many&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State:get_many</title><link>http://stompymux.com/docs/scripting/packages/mux/state-get-many/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-get-many/</guid><description>&lt;p&gt;Gets every present value from a requested set of keys.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:get_many( keys )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table keys&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An array of valid state-key strings.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table values&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A key-to-value table containing only keys that are present.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Duplicate requested keys do not change the result. Reads observe earlier writes from the current callback transaction.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-get/"&gt;&lt;code&gt;State:get&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-entries/"&gt;&lt;code&gt;State:entries&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State:has</title><link>http://stompymux.com/docs/scripting/packages/mux/state-has/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-has/</guid><description>&lt;p&gt;Tests whether a persistent state key exists.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:has( key )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string key&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A valid state key.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;boolean exists&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Whether the key has a value.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;An empty string is a present value. Reads observe writes made earlier in the current callback transaction.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-get/"&gt;&lt;code&gt;State:get&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State:keys</title><link>http://stompymux.com/docs/scripting/packages/mux/state-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-keys/</guid><description>&lt;p&gt;Lists the keys in this state namespace.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:keys( )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table keys&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An array of strings sorted by key.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;Enumeration requires an active callback transaction.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-entries/"&gt;&lt;code&gt;State:entries&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State:set</title><link>http://stompymux.com/docs/scripting/packages/mux/state-set/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-set/</guid><description>&lt;p&gt;Sets or deletes a persistent state value.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:set( key, value )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;string key&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A valid state key.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;string, boolean, finite number, or nil value&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The new value; &lt;code&gt;nil&lt;/code&gt; deletes the key.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;p&gt;Nothing.&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The update belongs to the current callback transaction. Invalid types, non-finite numbers, and configured storage-limit violations raise an error.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-delete/"&gt;&lt;code&gt;State:delete&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-set-many/"&gt;&lt;code&gt;State:set_many&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>State:set_many</title><link>http://stompymux.com/docs/scripting/packages/mux/state-set-many/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://stompymux.com/docs/scripting/packages/mux/state-set-many/</guid><description>&lt;p&gt;Applies several persistent state updates.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&lt;/h2&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;state:set_many( values )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arguments"&gt;Arguments&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table values&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A string-keyed table of supported state values.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="returns"&gt;Returns&lt;/h3&gt;
&lt;p&gt;Nothing.&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;All updates join the current callback transaction. Every key must be a valid string and every value must be a string, boolean, or finite number. Lua tables cannot carry a &lt;code&gt;nil&lt;/code&gt; entry, so use &lt;code&gt;State:set&lt;/code&gt; or &lt;code&gt;State:delete&lt;/code&gt; to remove keys.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stompymux.com/docs/scripting/packages/"&gt;&lt;code&gt;mux&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../type-state/"&gt;&lt;code&gt;State&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-set/"&gt;&lt;code&gt;State:set&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../state-delete/"&gt;&lt;code&gt;State:delete&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>