<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>mux.world on StompyMUX Documentation</title><link>https://stompymux.com/docs/scripting/packages/mux/world/</link><description>Recent content in mux.world on StompyMUX Documentation</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://stompymux.com/docs/scripting/packages/mux/world/index.xml" rel="self" type="application/rss+xml"/><item><title>mux.world.access</title><link>https://stompymux.com/docs/scripting/packages/mux/world/access/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/access/</guid><description>&lt;p&gt;&lt;code&gt;mux.world.access&lt;/code&gt; is an immutable namespace of typed &lt;code&gt;Access&lt;/code&gt; constants. Use
these values for the optional &lt;code&gt;access&lt;/code&gt; field in Lua command entries; raw
strings are rejected.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Constant&lt;/th&gt;
					&lt;th&gt;Allowed invokers&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;PUBLIC&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Everyone. This is the default when &lt;code&gt;access&lt;/code&gt; is omitted.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;WIZARD&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Wizards and God.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;GOD&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;God only.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Constants compare by access identity and stringify to the displayed uppercase
name. Unknown lookups and attempts to modify a constant or the namespace raise
&lt;code&gt;mux.access.invalid&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>mux.world.flags</title><link>https://stompymux.com/docs/scripting/packages/mux/world/flags/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/flags/</guid><description>&lt;p&gt;&lt;code&gt;mux.world.flags&lt;/code&gt; is an immutable namespace of typed &lt;code&gt;Flag&lt;/code&gt; constants. Use
these values with &lt;a href="../type-flags/"&gt;&lt;code&gt;Flags&lt;/code&gt;&lt;/a&gt; methods; raw strings are rejected.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Constant&lt;/th&gt;
					&lt;th&gt;Constant&lt;/th&gt;
					&lt;th&gt;Constant&lt;/th&gt;
					&lt;th&gt;Constant&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ANSI&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;AUDIBLE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;AUDITORIUM&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;BLIND&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;CONNECTED&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;DARK&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;FLOATING&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;GAGGED&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;GOING&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;HALTED&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;IN_CHARACTER&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;LIGHT&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;MONITOR&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;NO_COMMAND&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;SAFE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;SUSPECT&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;TRANSPARENT&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;WIZARD&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ZOMBIE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Constants compare by flag identity and stringify to the displayed uppercase
name. Unknown lookups and attempts to modify the namespace raise
&lt;code&gt;mux.flag.invalid&lt;/code&gt;. Command-only aliases from &lt;code&gt;[aliases.flags]&lt;/code&gt; are not
constants. String conversion raises the invariant-only &lt;code&gt;mux.internal&lt;/code&gt; error if
a registered native flag name exceeds the internal conversion buffer.&lt;/p&gt;</description></item><item><title>mux.world.lock_passes</title><link>https://stompymux.com/docs/scripting/packages/mux/world/lock-passes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/lock-passes/</guid><description>&lt;p&gt;Tests a native object lock without emitting lock messages or performing the
associated action.&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.world.lock_passes({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; object &lt;span style="color:#f92672"&gt;=&lt;/span&gt; object,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; enactor &lt;span style="color:#f92672"&gt;=&lt;/span&gt; enactor,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lock &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.world.locks.TRAVERSE,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cause &lt;span style="color:#f92672"&gt;=&lt;/span&gt; cause,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; subject &lt;span style="color:#f92672"&gt;=&lt;/span&gt; subject,
&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;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 object whose lock is tested.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;number or Object enactor&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;The object attempting the action.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;Lock lock&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;A typed &lt;a href="../locks/"&gt;&lt;code&gt;mux.world.locks&lt;/code&gt;&lt;/a&gt; constant identifying the lock to test.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;number or Object cause&lt;/code&gt; (optional)&lt;/dt&gt;
&lt;dd&gt;The object that caused the action. Defaults to &lt;code&gt;enactor&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;number or Object subject&lt;/code&gt; (optional)&lt;/dt&gt;
&lt;dd&gt;The object acted upon within the lock context. Defaults to &lt;code&gt;enactor&lt;/code&gt;.&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 selected lock passes.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;The function is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;. It evaluates the same Lua
lock callback as the corresponding native action, but always sets &lt;code&gt;ctx.silent&lt;/code&gt;
to true and discards any lock messages returned by the callback.&lt;/p&gt;</description></item><item><title>mux.world.locks</title><link>https://stompymux.com/docs/scripting/packages/mux/world/locks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/locks/</guid><description>&lt;p&gt;&lt;code&gt;mux.world.locks&lt;/code&gt; is an immutable namespace of typed &lt;code&gt;Lock&lt;/code&gt; constants for
&lt;a href="../lock-passes/"&gt;&lt;code&gt;mux.world.lock_passes&lt;/code&gt;&lt;/a&gt;. Each constant corresponds directly
to a supported key in an object module&amp;rsquo;s &lt;code&gt;locks&lt;/code&gt; table. Raw strings are
rejected.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Constant&lt;/th&gt;
					&lt;th&gt;Object-module key&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;MATCH&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;match&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Prefer an object that passes during key-aware matching.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;TRAVERSE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;traverse&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Traverse an exit.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;TAKE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;take&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Take an object.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;USE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;use&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Use an object.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;DROP&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;drop&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Drop an object.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;GIVE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;give&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Give an object.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;RECEIVE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;receive&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Receive a given object.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ENTER&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;enter&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Enter an object, room, BattleTech unit, bay, or hangar.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;LEAVE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;leave&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Leave an object or room.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;TELEPORT&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teleport&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Teleport into a destination.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;TELEPORT_OUT&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teleport_out&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Teleport out of an origin.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;LINK&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;link&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Link an exit or object.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;SET_HOME&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;set_home&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Set an object&amp;rsquo;s home to a destination.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;SPEAK&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;speak&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Speak in a location.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;CHANNEL_JOIN&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;channel_join&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Join a channel.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;CHANNEL_TRANSMIT&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;channel_transmit&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Transmit on a channel.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;CHANNEL_RECEIVE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;channel_receive&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Receive channel traffic.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;IDENTIFY_BUILDING&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;identify_building&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Identify a BattleTech building contact.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&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; passes &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.world.lock_passes({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; object &lt;span style="color:#f92672"&gt;=&lt;/span&gt; exit,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; enactor &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ctx.enactor,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lock &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.world.locks.TRAVERSE,
&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;p&gt;Constants compare by lock identity and stringify as their uppercase name.
Unknown lookups and attempts to modify a constant or the namespace raise
&lt;code&gt;mux.arg.invalid&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>mux.world.powers</title><link>https://stompymux.com/docs/scripting/packages/mux/world/powers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/powers/</guid><description>&lt;p&gt;&lt;code&gt;mux.world.powers&lt;/code&gt; is an immutable namespace of typed &lt;code&gt;Power&lt;/code&gt; constants. Use
these values with &lt;a href="../type-powers/"&gt;&lt;code&gt;Powers&lt;/code&gt;&lt;/a&gt; methods; raw strings are rejected.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Constant&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;IDLE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Exempts a connected player from the inactivity timeout.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Constants compare by power identity and stringify to their uppercase name.
Unknown lookups and attempts to modify the namespace raise
&lt;code&gt;mux.power.invalid&lt;/code&gt;. String conversion raises the invariant-only &lt;code&gt;mux.internal&lt;/code&gt;
error if a registered native power name exceeds the internal conversion
buffer.&lt;/p&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; powers &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.world.object(ctx.object):powers()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;powers:add(mux.world.powers.IDLE)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>mux.world.types</title><link>https://stompymux.com/docs/scripting/packages/mux/world/types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/types/</guid><description>&lt;p&gt;Provides immutable typed constants for native database object kinds.&lt;/p&gt;
&lt;h2 id="constants"&gt;Constants&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Constant&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;mux.world.types.ROOM&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;A room.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;mux.world.types.THING&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;A thing.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;mux.world.types.EXIT&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;An exit.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;mux.world.types.PLAYER&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;A player.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Constants compare by native type identity within one Lua runtime. Their string
forms are their canonical uppercase names. Unknown lookups and attempted
mutation raise &lt;code&gt;mux.arg.invalid&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Use these constants with &lt;a href="../create-object/"&gt;&lt;code&gt;create_object&lt;/code&gt;&lt;/a&gt;,
&lt;a href="../list-objects/"&gt;&lt;code&gt;list_objects&lt;/code&gt;&lt;/a&gt;, &lt;a href="../type-object/type/"&gt;&lt;code&gt;Object:type&lt;/code&gt;&lt;/a&gt;, and
&lt;a href="../type-object/contents/"&gt;&lt;code&gt;Object:contents&lt;/code&gt;&lt;/a&gt; rather than comparing or passing
magic strings. &lt;code&gt;PLAYER&lt;/code&gt; identifies existing players but is not accepted by
&lt;code&gt;create_object&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>create_object</title><link>https://stompymux.com/docs/scripting/packages/mux/world/create-object/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/create-object/</guid><description>&lt;p&gt;Creates a room, thing, or exit selected by a typed object-kind constant.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&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.world.create_object({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; type &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.world.types.THING,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Console&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; location &lt;span style="color:#f92672"&gt;=&lt;/span&gt; room,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; home &lt;span style="color:#f92672"&gt;=&lt;/span&gt; room,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; zone &lt;span style="color:#f92672"&gt;=&lt;/span&gt; equipment_zone,
&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="parameters"&gt;Parameters&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;table options&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An exact options table. Every object accepts these common fields:
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Field&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;type&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ObjectType&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required &lt;code&gt;ROOM&lt;/code&gt;, &lt;code&gt;THING&lt;/code&gt;, or &lt;code&gt;EXIT&lt;/code&gt; constant from &lt;a href="../types/"&gt;&lt;code&gt;mux.world.types&lt;/code&gt;&lt;/a&gt;.&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;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required UTF-8 name. It may contain valid styled-text markup.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;zone&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;number or &lt;a href="../type-object/"&gt;&lt;code&gt;Object&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Optional live thing or room to assign as the object&amp;rsquo;s zone.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;The remaining accepted fields depend on &lt;code&gt;type&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>destroy_object</title><link>https://stompymux.com/docs/scripting/packages/mux/world/destroy-object/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/destroy-object/</guid><description>&lt;p&gt;Silently schedules a live object for destruction by the normal maintenance
purge. The object remains accessible, with the same handle generation, until
that purge runs.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&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.world.destroy_object(object)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mux.world.destroy_object(object, { override &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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The optional Boolean &lt;code&gt;override&lt;/code&gt; field bypasses a target&amp;rsquo;s &lt;code&gt;SAFE&lt;/code&gt; flag. It does
not bypass protection for God, database object &lt;code&gt;#0&lt;/code&gt;, configured start/default
homes, or Wizard players. Rooms, things, exits, and non-Wizard players are
supported. Repeated destruction requests are rejected.&lt;/p&gt;</description></item><item><title>list_objects</title><link>https://stompymux.com/docs/scripting/packages/mux/world/list-objects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/list-objects/</guid><description>&lt;p&gt;Returns database objects matching optional filters.&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.world.list_objects( options&lt;span style="color:#960050;background-color:#1e0010"&gt;?&lt;/span&gt; )
&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 or nil options&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Optional filters. Omitting this argument, passing &lt;code&gt;nil&lt;/code&gt;, or passing &lt;code&gt;{}&lt;/code&gt;
returns every valid, non-garbage database object.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 id="filter-table-keys-and-values"&gt;Filter table keys and values&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;ObjectType[] options.types&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Include only objects whose types appear in this array. Values must be typed
constants from &lt;a href="../types/"&gt;&lt;code&gt;mux.world.types&lt;/code&gt;&lt;/a&gt;. An empty array matches
nothing.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;number or Object options.in_zone&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Include only objects whose directly assigned zone is this object. The zone
object itself is not implicitly included.&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 objects&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;An array of matching &lt;code&gt;Object&lt;/code&gt; handles in ascending dbref order.&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; zone_things &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mux.world.list_objects({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; types &lt;span style="color:#f92672"&gt;=&lt;/span&gt; { mux.world.types.THING },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; in_zone &lt;span style="color:#f92672"&gt;=&lt;/span&gt; zone,
&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;Zone matching uses the object&amp;rsquo;s direct zone assignment and does not follow
nested zone relationships. A zone being destroyed raises
&lt;code&gt;mux.object.unavailable&lt;/code&gt;. Objects scheduled for destruction may remain in the
results until the native object purge runs; garbage dbrefs are excluded. This
function scans the full database, so its cost grows with the database size. It
is unavailable during &lt;code&gt;@lua/check&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>object</title><link>https://stompymux.com/docs/scripting/packages/mux/world/object/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/object/</guid><description>&lt;p&gt;Creates a validated handle for a native database &lt;a href="../type-object/"&gt;Object&lt;/a&gt;.
Since this function raises errors, it&amp;rsquo;s best to wrap its invocation in a
&lt;a href="https://www.lua.org/pil/8.4.html"&gt;pcall()&lt;/a&gt; (see below).&lt;/p&gt;
&lt;p&gt;Once you&amp;rsquo;ve retrieved an &lt;a href="../type-object/"&gt;Object&lt;/a&gt;, its methods provide access
to native metadata and handles for features such as &lt;a href="../type-state/"&gt;State&lt;/a&gt;.&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.world.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;h3 id="raises"&gt;Raises&lt;/h3&gt;
&lt;p&gt;Raises an error with code &lt;code&gt;mux.object.invalid&lt;/code&gt; when passed an invalid dbref.&lt;/p&gt;</description></item><item><title>pemit</title><link>https://stompymux.com/docs/scripting/packages/mux/world/pemit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/pemit/</guid><description>&lt;p&gt;Privately emits a message to an object, matching the purpose and naming of the
&lt;code&gt;@pemit&lt;/code&gt; command. “Pemit” stands for “private emit.”&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.world.pemit( 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.world.pemit(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;</description></item><item><title>teleport_object</title><link>https://stompymux.com/docs/scripting/packages/mux/world/teleport-object/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://stompymux.com/docs/scripting/packages/mux/world/teleport-object/</guid><description>&lt;p&gt;Teleports a thing or player to a destination using the native movement path.
The operation updates both locations&amp;rsquo; contents lists and emits the normal
teleport and movement callbacks.&lt;/p&gt;
&lt;h2 id="function"&gt;Function&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.world.teleport_object({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; object &lt;span style="color:#f92672"&gt;=&lt;/span&gt; thing,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; destination &lt;span style="color:#f92672"&gt;=&lt;/span&gt; room,
&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;p&gt;The exact options table currently accepts these fields:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Field&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;object&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;dbref or &lt;code&gt;Object&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required thing or player to teleport.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;destination&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;dbref or &lt;code&gt;Object&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required object capable of containing objects.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Unknown fields are rejected so additional options can be introduced later
without expanding the function&amp;rsquo;s positional signature. The destination may not
be the object itself or anything contained by it. Rooms and exits cannot be the
moving object.&lt;/p&gt;</description></item></channel></rss>