<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://fulcrum.mu/wiki/index.php?action=history&amp;feed=atom&amp;title=User%3AEdith</id>
	<title>User:Edith - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://fulcrum.mu/wiki/index.php?action=history&amp;feed=atom&amp;title=User%3AEdith"/>
	<link rel="alternate" type="text/html" href="https://fulcrum.mu/wiki/index.php?title=User:Edith&amp;action=history"/>
	<updated>2026-06-10T02:27:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://fulcrum.mu/wiki/index.php?title=User:Edith&amp;diff=3605&amp;oldid=prev</id>
		<title>Edith at 01:15, 11 February 2024</title>
		<link rel="alternate" type="text/html" href="https://fulcrum.mu/wiki/index.php?title=User:Edith&amp;diff=3605&amp;oldid=prev"/>
		<updated>2024-02-11T01:15:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:15, 11 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot; &gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@link Temporary Places=me&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@link Temporary Places=me&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@desc Temporary Places=%rTEMPORARY PLACES HELP&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;,&lt;/del&gt;%r%r[ljust(+pl,25)]Show available places%r[ljust(+pl/join &amp;lt;num&amp;gt;,25)]Join place &amp;lt;num&amp;gt;%r%r[ljust(+pl &amp;lt;say&amp;gt;,25)]Tabletalk say/pose/emit%r[ljust(+pl :&amp;lt;pose&amp;gt;,25)]%r[ljust(+pl \;&amp;lt;pose&amp;gt;,25)]%r[ljust(+pl |&amp;lt;emit&amp;gt;,25)]%r%r[ljust(+pl/leave,25)]Leave a place%r[ljust(+pl/depart,25)]%r%r[ljust(+pl/look &amp;lt;num&amp;gt;,25)]Look at a place&amp;#039;s description%r[ljust(+pl/cleanup,25)]Manual cleanup of disconned/absent players%r%rOwner: use +pl/ownerhelp for owner only commands.%r&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@desc Temporary Places=%rTEMPORARY PLACES HELP%r%r[ljust(+pl,25)]Show available places%r[ljust(+pl/join &amp;lt;num&amp;gt;,25)]Join place &amp;lt;num&amp;gt;%r%r[ljust(+pl &amp;lt;say&amp;gt;,25)]Tabletalk say/pose/emit%r[ljust(+pl :&amp;lt;pose&amp;gt;,25)]%r[ljust(+pl \;&amp;lt;pose&amp;gt;,25)]%r[ljust(+pl |&amp;lt;emit&amp;gt;,25)]%r%r[ljust(+pl/leave,25)]Leave a place%r[ljust(+pl/depart,25)]%r%r[ljust(+pl/look &amp;lt;num&amp;gt;,25)]Look at a place&amp;#039;s description%r[ljust(+pl/cleanup,25)]Manual cleanup of disconned/absent players%r%rOwner: use +pl/ownerhelp for owner only commands.%r&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;prefix Temporary Places=%ccTemp Places:%cn&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;prefix Temporary Places=%ccTemp Places:%cn&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Edith</name></author>
	</entry>
	<entry>
		<id>https://fulcrum.mu/wiki/index.php?title=User:Edith&amp;diff=3604&amp;oldid=prev</id>
		<title>Edith: Created page with &quot;===== Temporary Places Code ===== This code provides temporary places code that you can put on an object and drop into a scene. It&#039;s useful for big events such as parties, cou...&quot;</title>
		<link rel="alternate" type="text/html" href="https://fulcrum.mu/wiki/index.php?title=User:Edith&amp;diff=3604&amp;oldid=prev"/>
		<updated>2024-02-10T23:18:36Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;===== Temporary Places Code ===== This code provides temporary places code that you can put on an object and drop into a scene. It&amp;#039;s useful for big events such as parties, cou...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===== Temporary Places Code =====&lt;br /&gt;
This code provides temporary places code that you can put on an object and drop into a scene. It&amp;#039;s useful for big events such as parties, courts, performances, duels, etc. Gossip with your character&amp;#039;s friends while not spamming everyone or missing the main action! It&amp;#039;s usable by anyone: you don&amp;#039;t need wizard or staff permissions to make it work.&lt;br /&gt;
&lt;br /&gt;
Just copy and paste all the code below to make your own object, and drop it in a room to use it. Look at the description for help.&lt;br /&gt;
&lt;br /&gt;
A couple caveats: I&amp;#039;ve tested this, but testing it myself on my own server and handing it to actual players are two different things. I also suspect it&amp;#039;s vulnerable to race conditions, but it&amp;#039;s temporary places code so I&amp;#039;m not terribly concerned; if your table for four ends up with five players, I&amp;#039;m not sure it really matters.&lt;br /&gt;
&lt;br /&gt;
All bug reports should go to Gabriela/Jess/Eithne in game.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:90%;background-color:#c2c2d6;border-color:black;border-style:solid;border-width:2px;vertical-alignment:middle;padding:1em 2em 1em 2em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Temporary Places Code - Expand Me!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot; style=&amp;quot;font-family:monospace;background-color:#f0f0f5;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
@create Temporary Places&lt;br /&gt;
&lt;br /&gt;
@link Temporary Places=me&lt;br /&gt;
&lt;br /&gt;
@desc Temporary Places=%rTEMPORARY PLACES HELP,%r%r[ljust(+pl,25)]Show available places%r[ljust(+pl/join &amp;lt;num&amp;gt;,25)]Join place &amp;lt;num&amp;gt;%r%r[ljust(+pl &amp;lt;say&amp;gt;,25)]Tabletalk say/pose/emit%r[ljust(+pl :&amp;lt;pose&amp;gt;,25)]%r[ljust(+pl \;&amp;lt;pose&amp;gt;,25)]%r[ljust(+pl |&amp;lt;emit&amp;gt;,25)]%r%r[ljust(+pl/leave,25)]Leave a place%r[ljust(+pl/depart,25)]%r%r[ljust(+pl/look &amp;lt;num&amp;gt;,25)]Look at a place&amp;#039;s description%r[ljust(+pl/cleanup,25)]Manual cleanup of disconned/absent players%r%rOwner: use +pl/ownerhelp for owner only commands.%r&lt;br /&gt;
	&lt;br /&gt;
&amp;amp;prefix Temporary Places=%ccTemp Places:%cn&lt;br /&gt;
	&lt;br /&gt;
&amp;amp;fn_get.player.place Temporary Places=if(setr(+,iter(lattr(me/place_members.*),if(member(v(%i0),%0),[after(%i0,.)][ibreak()]), ,),num),%q&amp;lt;num&amp;gt;,0)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;fn_get.place.name Temporary Places=default(me/place_name.%0, place %0)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;fn_list.players Temporary Places=if(hasattr(me,place_members.%0),%r[wrap(Present: [iter(v(place_members.%0),name(%i0), ,[lit(,)]%b)],70,left,space(5))])&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_places Temporary Places=$+pl:@include me/do_cleanup;@trigger me/do_places=%#&lt;br /&gt;
&lt;br /&gt;
&amp;amp;do_places Temporary Places=@pemit %0=%r%cc[v(prefix)]%cn%r[iter(lattr(me/place_totalslots.*),%b%b[capstr(u(fn_get.place.name,setr(+,after(%i0,.),num)))] \(#%q&amp;lt;num&amp;gt;\) has [setr(+,sub(v(place_totalslots.%q&amp;lt;num&amp;gt;),words(v(place_members.%q&amp;lt;num&amp;gt;))),slots)] spot[if(neq(%q&amp;lt;slots&amp;gt;,1),s)] available[u(fn_list.players,%q&amp;lt;num&amp;gt;)], ,%r)]%r&lt;br /&gt;
	&lt;br /&gt;
&amp;amp;cmd_cleanup Temporary Places=$+pl/cleanup:@include me/do_cleanup&lt;br /&gt;
&lt;br /&gt;
&amp;amp;do_cleanup Temporary Places=@dolist [lattr(me/place_members.*)]=@set/quiet me=##:[iter(v(##),if(cand(neq(conn(%i0),-1),strmatch(loc(me),loc(%i0))),%i0))]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;check_is.valid.place Temporary Places=@assert [hasattr(me/place_totalslots.%1)]=@pemit %0=[v(prefix)] That isn&amp;#039;t a valid place.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_join Temporary Places=$+pl/join *:@include me/do_cleanup;@trigger me/do_join=%#,[trim(objeval(%#,%0))]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;do_join Temporary Places=@include me/check_is.valid.place=%0,%1;@switch/first 0=[not(u(fn_get.player.place,%0))],@pemit %0=[v(prefix)] You&amp;#039;re already at a place!,[lt(words(v(place_members.%1)),v(place_totalslots.%1))],@pemit %0=[v(prefix)] [capstr(u(fn_get.place.name,%1))] is full.,{@emit [v(prefix)] [name(%0)] joins [u(fn_get.place.name,%1)].;@set/quiet me=place_members.%1:[setunion([v(place_members.%1)], %0)]}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_leave Temporary Places=$+pl/leave:@include me/do_cleanup;@trigger me/do_leave=%#&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_depart Temporary Places=$+pl/depart:@include me/do_cleanup;@trigger me/do_leave=%#&lt;br /&gt;
&lt;br /&gt;
&amp;amp;do_leave Temporary Places=@assert [setr(0,u(fn_get.player.place,%0),num)]=@pemit %0=[v(prefix)] You&amp;#039;re not at a place!;@set/quiet me=place_members.%q&amp;lt;num&amp;gt;:[setdiff([v(place_members.%q&amp;lt;num&amp;gt;)], %0)];@emit [v(prefix)] [name(%0)] leaves [u(fn_get.place.name,%q&amp;lt;num&amp;gt;)].&lt;br /&gt;
	&lt;br /&gt;
&amp;amp;cmd_tabletalk Temporary Places=$+pl *:@include me/do_cleanup;@trigger me/do_tabletalk=%#,[objeval(%#,%0)]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;do_tabletalk Temporary Places=@assert [setr(+,u(fn_get.player.place,%0),num)]=@pemit %0=[v(prefix)] You&amp;#039;re not at a place!;@pemit/list [v(place_members.%q&amp;lt;num&amp;gt;)]=At [u(fn_get.place.name,%q&amp;lt;num&amp;gt;)], [switch(left(%1,1),:,[name(%0)] [delete(%1,0,1)],\;,[name(%0)][delete(%1,0,1)],|,delete(%1,0,1),[name(%0)] says\, &amp;quot;%1&amp;quot;)]	&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_look Temporary Places=$+pl/look *:@include me/do_cleanup;@trigger me/do_look=%#,[objeval(%#,%0)]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;do_look Temporary Places=@include me/check_is.valid.place=%0,%1;@pemit %0=%r[capstr(u(fn_get.place.name,%1))]%r[default(v(place_desc.%1),You see nothing special.)][u(fn_list.players,%1)]%r&lt;br /&gt;
&lt;br /&gt;
&amp;amp;check_is.owner Temporary Places=@assert [eq(%0,owner(me))]=@pemit %0=[v(prefix)] Only the owner can do that.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;check_is.valid.slot.num Temporary Places=@assert [cand(isnum(%1),gt(%1,0))]=@pemit %0=[v(prefix)] That isn&amp;#039;t a valid number of slots.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_wipe Temporary Places=$+pl/wipe:@include me/check_is.owner=%#;@wipe me/place_*;@pemit %#=[v(prefix)] All places wiped from [name(me)]. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_create Temporary Places=$+pl/create *:@include me/check_is.owner=%#;@include me/check_is.valid.slot.num=%#,[setr(+,before(objeval(%#,%0),=),slots)];@set me=place_totalslots.[setr(+,inc(words(lattr(me/place_totalslots.*))),num)]:%q&amp;lt;slots&amp;gt;;@set me=place_name.%q&amp;lt;num&amp;gt;:[setr(+,after(objeval(%#,%0),=),name)];@pemit %#=[v(prefix)] You create [u(fn_get.place.name,%q&amp;lt;num&amp;gt;)] with %q&amp;lt;slots&amp;gt; slot[if(neq(%q&amp;lt;slots&amp;gt;,1),s)][if(%q&amp;lt;name&amp;gt;, as place %q&amp;lt;num&amp;gt;)].	&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_rename Temporary Places=$+pl/rename *:@include me/check_is.owner=%#;@include me/check_is.valid.place=%#,[setr(+,before(objeval(%#,%0),=),num)];@set me=place_name.%q&amp;lt;num&amp;gt;:[after(objeval(%#,%0),=)][setq(+,u(fn_get.place.name,%q&amp;lt;num&amp;gt;),oldname)];@pemit %#=[v(prefix)] You rename %q&amp;lt;oldname&amp;gt; to [u(fn_get.place.name,%q&amp;lt;num&amp;gt;)].&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_slots Temporary Places=$+pl/slots *=*:@include me/check_is.owner=%#;@include me/check_is.valid.place=%#,[setr(+,objeval(%#,%0),num)];@include me/check_is.valid.slot.num=%#,[setr(+,objeval(%#,%1),slots)];@set me=place_totalslots.%q&amp;lt;num&amp;gt;:%q&amp;lt;slots&amp;gt;;@pemit %#=[v(prefix)] [capstr(u(fn_get.place.name,%q&amp;lt;num&amp;gt;))] now has %q&amp;lt;slots&amp;gt; slot[if(neq(%q&amp;lt;slots&amp;gt;,1),s)].&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_desc Temporary Places=$+pl/desc *:@include me/check_is.owner=%#;@include me/check_is.valid.place=%#,[setr(+,before(objeval(%#,%0),=),num)];@set me=place_desc.%q&amp;lt;num&amp;gt;:[after(objeval(%#,%0),=)];@pemit %#=[v(prefix)] You redesc [u(fn_get.place.name,%q&amp;lt;num&amp;gt;)].&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_delete Temporary Places=$+pl/delete *:@include me/check_is.owner=%#;@include me/check_is.valid.place=%#,[setr(+,objeval(%#,%0),num)];@include me/do_delete=%q&amp;lt;num&amp;gt;;@dolist [iter(lattr(me/place_totalslots.*),if(gt(after(%i0,.),%0),after(%i0,.)))]={@mvattr me=place_totalslots.##,place_totalslots.[dec(##)];@mvattr me=place_members.##,place_members.[dec(##)];@mvattr me=place_desc.##,place_desc.[dec(##)];@mvattr me=place_name.##,place_name.[dec(##)]};@pemit %#=[v(prefix)] You delete place %q&amp;lt;num&amp;gt;. All higher numbered places have been moved down.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;cmd_ownerhelp Temporary Places=$+pl/ownerhelp:@pemit %#=%rTEMPORARY PLACES OWNER COMMANDS%R%R[ljust(+pl/create &amp;lt;slots&amp;gt;,30)]Create a place with &amp;lt;slots&amp;gt;%r[ljust(+pl/create &amp;lt;slots&amp;gt;=&amp;lt;name&amp;gt;,30)]Create a place called &amp;lt;name&amp;gt; with &amp;lt;slots&amp;gt;%r%r[ljust(+pl/slots &amp;lt;num&amp;gt;=&amp;lt;slots&amp;gt;,30)]Change available slots in place &amp;lt;num&amp;gt;%r%r[ljust(+pl/rename &amp;lt;num&amp;gt;=&amp;lt;name&amp;gt;,30)]Rename &amp;lt;num&amp;gt; to &amp;lt;name&amp;gt;%r[ljust(+pl/rename &amp;lt;num&amp;gt;,30)]Clear the name of place &amp;lt;num&amp;gt;%r%r[ljust(+pl/desc &amp;lt;num&amp;gt;=&amp;lt;desc&amp;gt;,30)]Redesc place &amp;lt;num&amp;gt;%r[ljust(+pl/desc &amp;lt;num&amp;gt;,30)]Clear the desc of place &amp;lt;num&amp;gt;%r%r[ljust(+pl/delete &amp;lt;num&amp;gt;,30)]Delete &amp;lt;num&amp;gt; and move all higher numbered%r[ljust( ,30)]places down a number%r[ljust(+pl/wipe,30)]Wipe all places%r%r[ljust(&amp;amp;prefix [name(me)]=&amp;lt;prefix&amp;gt;,30)]Change the prefix added to error messages%r&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Edith</name></author>
	</entry>
</feed>