<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Client Help — Achaea&#039;s Forums</title>
        <link>https://localforums.achaea.com/index.php?p=/</link>
        <pubDate>Fri, 10 Apr 2026 05:14:36 +0000</pubDate>
        <language>en</language>
            <description>Client Help — Achaea's Forums</description>
    <atom:link href="https://localforums.achaea.com/index.php?p=/categories/client-help/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Tintin++</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7794/tintin</link>
        <pubDate>Sun, 12 Mar 2023 22:47:49 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Voronwe</dc:creator>
        <guid isPermaLink="false">7794@/index.php?p=/discussions</guid>
        <description><![CDATA[Finally got a new laptop and was wondering if Tintin++ still a useable client for Achaea? Just looking to try something different.]]>
        </description>
    </item>
    <item>
        <title>Telnet help (Ruby TCPSocket issues)</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7791/telnet-help-ruby-tcpsocket-issues</link>
        <pubDate>Wed, 08 Mar 2023 16:36:56 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Rhodri</dc:creator>
        <guid isPermaLink="false">7791@/index.php?p=/discussions</guid>
        <description><![CDATA[Where would one go to find Achaea / IRE specifics for building my own minimal telnet client?  I've gotten as far as being able to log in, view responses from the server and send commands, but I'm having to repeat commands 2 to 3 times before the server responds.   I know it's a broad question, but any direction would be appreciated.]]>
        </description>
    </item>
    <item>
        <title>Old Nexus</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7775/old-nexus</link>
        <pubDate>Thu, 11 Aug 2022 01:24:22 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>MOSEY</dc:creator>
        <guid isPermaLink="false">7775@/index.php?p=/discussions</guid>
        <description><![CDATA[Where do I find it? New one won't work.<br />]]>
        </description>
    </item>
    <item>
        <title>Anyone else struggling to load Nexus?</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7736/anyone-else-struggling-to-load-nexus</link>
        <pubDate>Sun, 26 Dec 2021 08:36:57 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Liella</dc:creator>
        <guid isPermaLink="false">7736@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Yesterday I couldn't sign into Nexus for hours; I'd sign in and just freeze, the room wouldn't load, commands wouldn't go through. I tried again two hours later and it was a bit better, though still laggy. I wasn't the only one facing this issue; I know at least one other person who was similarly affected. Help?</p>]]>
        </description>
    </item>
    <item>
        <title>Mush client errors</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7735/mush-client-errors</link>
        <pubDate>Tue, 14 Dec 2021 15:03:25 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Racnole</dc:creator>
        <guid isPermaLink="false">7735@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hello,</p><p>For as long as I've been playing, I've been using the mush client, the most accessible client for a visually impaired player. Recently, however, I've encountered some errors that have affected the client that have inhibbited its usage. When I launch it and log into my character,  I keep getting messages such as "Alias function "handle_GMCP" cannot execute - scripting disabled/parse error", or C:\Program Files (x86)\MUSHclient\worlds\Achaea\oracle.lua contains an invalid path. Not only is scripting enabled, there doesn't seem to be any folders missing as someone mentioned in the game. This is a problem because with out sound, it is impossible for me to play at all. Would anyone happen to know how to resolve this issue? Do values need to be changed in the mush client folder itself? Is it something in the client?</p>]]>
        </description>
    </item>
    <item>
        <title>I can&#39;t sign into my character says password isn&#39;t right but I changed it!</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7719/i-can-039-t-sign-into-my-character-says-password-isn-039-t-right-but-i-changed-it</link>
        <pubDate>Sun, 07 Nov 2021 03:22:06 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Astoshan</dc:creator>
        <guid isPermaLink="false">7719@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Could anyone help me? How do I resolve this? My friends on discord say it isn't the game being down cause they can sign in :D</p>]]>
        </description>
    </item>
    <item>
        <title>Nexus sound keeps dying</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7706/nexus-sound-keeps-dying</link>
        <pubDate>Sun, 24 Oct 2021 19:13:30 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Skaath</dc:creator>
        <guid isPermaLink="false">7706@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Howdy folks. New user. </p><p>I like having sounds when I MUD, but I couldn't figure out how to use them with Mudlet. So I went to Nexus, which is generally good for me.</p><p>Alas, after a while, the sound just dies. All my triggers stop working. (I have one set to "You see exits" so I should get a beep every time I move. Perhaps I'm an odd fish, but I like the sonic feedback.) I try activating the background music, but nothing happens.</p><p>The last time this happened, I restarted my PC and it worked again. It happened just now, and I restarted Nexus and it worked. Any idea how I might prevent it from happening in the first place? Thanks in advance.</p>]]>
        </description>
    </item>
    <item>
        <title>Visually Impaired advice with dual cutting on mush.</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7701/visually-impaired-advice-with-dual-cutting-on-mush</link>
        <pubDate>Fri, 08 Oct 2021 22:42:19 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Lorance</dc:creator>
        <guid isPermaLink="false">7701@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hello,</p><p>I've recently picked up the unnamable class with the dual cutting specialisation. As a visually impaired player that uses Mush Z, I am unsure how to utilize only 100 aliases with the many venoms combined with limbs. Furthermore, I have no experience with coding or scripting, so I am lost on what I should do. Does anyone else use mush? Would anyone happen to know how I could create a limb tracker with sounds so I may know when limbs are going to break? Are there other visually impaired players I should reach out to, since mezghar and glathna have retired? Is knolege of coding or scripting required to get the full potential out of this specialisation?</p>]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.6 - Geyser, Geyser, Geyser!</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7142/mudlet-4-6-geyser-geyser-geyser</link>
        <pubDate>Sun, 08 Mar 2020 21:19:16 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Vadimuses</dc:creator>
        <guid isPermaLink="false">7142@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Geyser is the go-to way for making awesome interfaces in Mudlet and it's received a lot of improvements in this release. Read on!</p>&#13;
&#13;
<h2 data-id="geyser-in-userwindows">Geyser in Userwindows</h2>&#13;
<p>Thanks to <a rel="nofollow" href="https://github.com/edru2">Edru2</a>, it is now possible to put labels, miniconsoles, and the mapper inside userwindows! Userwindows in Mudlet are pop-up windows that you can drag around with your mouse, resize, or even move to another monitor. Previously, only miniconsoles could go into a userwindow.</p>&#13;
<p>Here's a demo of the chat capture <a rel="nofollow" href="https://forums.mudlet.org/viewtopic.php?f=6&amp;t=22797">EMCO</a> working right inside a userwindow!</p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/03/EMCO-In-a-UserWindow.gif"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/03/EMCO-In-a-UserWindow.gif" width="436" height="380" /></a></p>&#13;
&#13;
<p>Sounds interesting? <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Geyser.UserWindow">Check out the docs</a> on how to get started.</p>&#13;
<h2 data-id="tooltips-for-labels-and-gauges">Tooltips for labels and gauges</h2>&#13;
&#13;
<p>Continuing their roll, <a rel="nofollow" href="https://github.com/edru2">Edru2</a> added tooltips to labels and Geyser objects! You can now add a tooltip easily with <em>mylabel:</em><em>setToolTip("tooltip here")</em>, check out <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Adding_a_tooltip_to_a_label">some examples</a>.</p>&#13;
<h2 data-id="stylesheet-for-the-current-profile-only">Stylesheet for the current profile only</h2>&#13;
<p>Edru2 has also added <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#setProfileStyleSheet">setProfileStyleSheet()</a> - an easy to use, drop-in replacement for setAppStyleSheet() that only affects the current profile and not all of the other ones as well. Super handy!</p>&#13;
<p>If you're a UI author, it is strongly encouraged to switch over to this new feature. You can easily handle old Mudlets that don't have this feature yet with:</p>&#13;
<p><code spellcheck="false" tabindex="0">local stylesheet = [[&lt;em&gt;my stylesheet here&lt;/em&gt;]]</code></p>&#13;
<p><code spellcheck="false" tabindex="0">if setProfileStyleSheet then</code></p>&#13;
<p>  <code spellcheck="false" tabindex="0">  setProfileStyleSheet(stylesheet)</code></p>&#13;
<p><code spellcheck="false" tabindex="0">else&#13;
  </code></p>&#13;
<p>  <code spellcheck="false" tabindex="0">&amp;nbsp;setAppStyleSheet(stylesheet)</code></p>&#13;
<p><code spellcheck="false" tabindex="0">end</code></p>&#13;
&#13;
<h2 data-id="explicit-formatting-for-geyser-labels-and-gauges">Explicit formatting for Geyser labels and gauges</h2>&#13;
<p>Previously, if you wanted to format the way a label looks like, your only option was to use the <a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserLabel.html#Geyser.Label:echo">format string</a> every time you echo'd something to a label. No longer! Now there are explicit :setBold(), :setUnderline(), :setItalics(), :setStrikeThrough(), :setFont(), :setFontSize(), and :setAlignment() functions available thanks to <a rel="nofollow" href="https://github.com/demonnic">demonnic</a>'s work on this.</p>&#13;
<h2 data-id="geyser-child-show-fix-in-next-update">Geyser child show fix in next update</h2>&#13;
&#13;
<p>Okay, that was a ton of Geyser improvements. Ready for one more?</p>&#13;
<p>In Geyser, when you hide a container, all of its children get hidden as well. Makes sense, right? However, there is a way you can still get a child to show - if you call :show() on it explicitly. This means that you can get a child of a hidden container to show up! This obviously doesn't sound right, and it affects things like <a rel="nofollow" href="https://github.com/demonnic/animatedtimers">anitimers</a> working correctly.</p>&#13;
<p>We've fixed it - but in QA testing, we've discovered that a few UIs have been built that <em>rely</em> on this broken behavior to work: that is, getting a child to show up even though their container is hidden. As we don't want to introduce an update that fixes-but-really-breaks things, we've postponed this change until the next 4.7 release. Meanwhile, if you're a UI author, test this <a rel="nofollow" href="https://make.mudlet.org/snapshots/8c04b7/Mudlet-4.4.0-testing-b7c569f4-windows.zip">Windows</a> / <a rel="nofollow" href="https://make.mudlet.org/snapshots/0853b0/Mudlet-4.4.0-testing-b7c569f.dmg">macOS</a> / <a rel="nofollow" href="https://make.mudlet.org/snapshots/763fa7/Mudlet-4.4.0-testing-b7c569f-linux-x64.AppImage.tar">Linux</a> version of Mudlet to see if your UI is affected and if you need to fix it.</p>&#13;
<h2 data-id="all-fonts-unlocked">All fonts unlocked</h2>&#13;
<p>The setting for picking a main window font was previously only limited to monospace fonts, as those are the ones that we've optimised our custom-made text display for. As part of our internalisation work, we've added emoji and non-English letter support to the display as well - which now makes it good enough to be used with all fonts!</p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/03/Workspace-1_451.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/03/Workspace-1_451.png" width="579" height="281" /></a></p>&#13;
<p>Non-monospace fonts in Mudlet still aren't perfect, and not all fonts are designed to be used for their letters, so beware. On top of that text games are still optimised for monospace fonts - those are easier to align text and columns with!</p>&#13;
&#13;
<h2 data-id="ire-composer-improvements">IRE Composer improvements</h2>&#13;
&#13;
<div>&#13;
<div><a rel="nofollow" href="https://github.com/Mudlet/Mudlet/commits?author=atari2600tim">atari2600tim</a> took it into their own hands to improve the IRE Composer - a pop-up window for GMCP that allows you to edit a fair bit of text at once and send it back to the game. It now won't eat backwards slashes \ and it's more resilient as well.</div>&#13;
<h2 data-id="new-function-geyser-color-find-color-name">New function: Geyser.Color.find_color_name()</h2>&#13;
<div><a rel="nofollow" href="https://github.com/demonnic/">Demonnic</a> added Geyser.Color.find_color_name(color) which allows you to use "Orange", "orAnge", "ORANGE", etc and get back the proper name from the color table. This will also allow you to match multiword colors, such as "OrangeRed" and "orange_red" as "oranGERED" or "oRANGE_red", etc. This new function is also now used by Geyser.color.parse and its descendants in order to make Geyser color parsing more robust!</div>&#13;
</div>&#13;
&#13;
<h2 data-id="new-function-unzipasync">New function: unzipAsync()</h2>&#13;
&#13;
<p>Have a zip, need to unzip it? The new <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Miscellaneous_Functions#unzipAsync">unzipAsync()</a> function by <a rel="nofollow" href="https://github.com/vadi2">Vadi</a> will do that just for you! It also won't freeze Mudlet up while it's unzipping because it's asyncronous and multithreaded.</p>&#13;
<h2 data-id="notepad-now-for-all-languages-and-emoji-s">Notepad: now for all languages and emoji's</h2>&#13;
<p>The notepad now will correctly store and load contents in utf8, allowing for all languages and emoji's to show up. Thanks to <a rel="nofollow" href="https://github.com/slysven">SlySven </a>for making this work!</p>&#13;
<h2 data-id="mudlet-410-bounty-for-better-screenreader-support">Mudlet $410 bounty for better screenreader support</h2>&#13;
<p>We have an <a rel="nofollow" href="https://www.bountysource.com/issues/88866989-make-mudlet-s-text-window-readable-by-screenreaders">outstanding bounty</a> of 410 USD to add screenreader support to our super quick, custom-made game text display widget - so visually impaired users can get game text read out to them. Interested in making some cash? <a rel="nofollow" href="http://wiki.mudlet.org/w/Compiling_Mudlet">Dive in</a>, and join us on <a rel="nofollow" href="https://discord.gg/kuYvMQ9">Discord</a> to talk about it!</p>&#13;
<h2 data-id="are-you-on-mudlet-4-5-1-de">Are you on Mudlet 4.5.1-de?</h2>&#13;
<p>Unfortunately due to a publication error, Mudlet 4.5.1-de will not automatically update to 4.6.0. Go to <a rel="nofollow" href="https://www.mudlet.org/download/">mudlet.org/download</a> and manually install the new version. Don't worry - all your profiles will stay.</p>&#13;
&#13;
<h2 data-id="credits">Credits</h2>&#13;
&#13;
<p>Thanks to all coders: atari2600tim, demonnic, Edru, Faenriis, mpconley, shacknetisp, SlySven, and vadi2 who made this release possible!</p>&#13;
&#13;
<p>Thanks to all translators Gandalf07, Leris, Marco "M0lid3us" Tironi (wiploo), Vadim Peretokin (vperetokin), vingi, and Ömer Albulak (albulak) for translating Mudlet into their own language.</p>&#13;
&#13;
<h2 data-id="changelog">Changelog</h2>&#13;
&#13;
<p><strong>added:</strong></p>&#13;
&#13;
<ul><li>Geyser objects (as well as the usual labels, miniconsoles and mapper) can now go into userwindows</li><li>unzipAsync() function</li><li>setLabelToolTip() and Geyser equivalents :setToolTip() functions</li></ul><p><strong>improved:</strong></p>&#13;
&#13;
<ul><li>tab order in connection screen now makes better sense (a11y)</li><li>all connection screen input fields now have their names read out for a screenreader (a11y)</li><li>Mud Client Media Protocol: Client.Media has been renamed to Client.Media.Default <a rel="nofollow" href="https://wiki.mudlet.org/w/Standards:MUD_Client_Media_Protocol#Client.Media.Default">per protocol change</a></li><li>notepad now works with utf8</li><li>IRE Composer now handles \</li><li>blinking text will now show up as italics (like in MUSHclient), as opposed to normal text like before</li><li>all fonts can now be selected in main window settings</li></ul><p><strong>fixed:</strong></p>&#13;
&#13;
<ul><li>labels being really slow over the mapper window</li><li>gmod not re-enabling modules properly on reconnect</li><li>possible crash if you managed to close a profile without closing Mudlet while settings window was open</li><li>module priorities not to get lost</li></ul><div></div>&#13;
&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/03/Selection_452.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/03/Selection_452.png" width="909" height="533" /></a></p>&#13;
<br />]]>
        </description>
    </item>
    <item>
        <title>Some Mudlet Questions</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7672/some-mudlet-questions</link>
        <pubDate>Mon, 16 Aug 2021 00:34:37 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Gerrick</dc:creator>
        <guid isPermaLink="false">7672@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>I've started editing a GUI in Mudlet and have come across some issues I hope some of you fine folks can help me with:</p><p>1) For which modules is gmod.enableModule() required?</p><p>2) The main command line grows in height after receiving input for the first time, how do I fix that?</p><p>3) Is there any way to get an echoPopup to not show a tooltip?</p><p>4) Is there another way to reset Mudlet besides resetProfile or restarting?</p><p>5) How do you delete old permKeys?</p>]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.12 losing svof settings</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7654/mudlet-4-12-losing-svof-settings</link>
        <pubDate>Fri, 30 Jul 2021 17:57:04 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Zbaco</dc:creator>
        <guid isPermaLink="false">7654@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Just upgraded to Mudlet 4.12 using the in-app "Upgrade..." selection, and the program seems to have forgotten I have svof installed. The modules all show up in the Module Manager, but my custom prompt is gone, and no svof-specific commands work, even vinstall. Before the upgrade, I was running the latest in-client version of svof. </p><p><br /></p><p>Any suggestions? Something simple I'm missing?</p>]]>
        </description>
    </item>
    <item>
        <title>ANTI-THEFT BACKPACK</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7631/anti-theft-backpack</link>
        <pubDate>Thu, 24 Jun 2021 12:59:51 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Korjin</dc:creator>
        <guid isPermaLink="false">7631@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>how can i automatically waer my pack when it is unwear?</p>]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.12 - sustainability edition</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7617/mudlet-4-12-sustainability-edition</link>
        <pubDate>Wed, 02 Jun 2021 16:43:56 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Vadimuses</dc:creator>
        <guid isPermaLink="false">7617@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Sustainability is a hot topic in 2021 for all the right reasons: We want to ensure that we can keep doing what we’re doing. It is, coincidentally, the theme of Mudlet 4.12 as well – We’d like to be sure that we can keep building Mudlet as the game client you know &amp; like well into the future. It’s been difficult for the last little while with the conditions that we’ve faced – the certificate signing, moving off of Travis, and most recently: The challenges of working on an international, remote-only project while we’re faced with external stressors. For these reasons it’s important to take the time to charge your batteries.</p><p>Brand new package manager<br /></p><p>Edru has been busy revamping how Mudlet interacts with packages! First up, the new package manager, as seen below, allows you to see a package’s description with additional details like images, links, styling with markdown, etc.</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/05/Package-Manager-experimental-Achaea_028-1024x965.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/05/Package-Manager-experimental-Achaea_028-1024x965.png" alt="Package-Manager-experimental-Achaea_028-1024x965.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>How do these descriptions arrive in new packages? Where do they come from? Well, we’re glad you asked:</p><h2>Brand new package exporter</h2><p>Edru has revamped the package exporter as well, making it much easier to create, update and (re-)export packages as well as add a description and other information to them:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/05/Package-Exporter-experimental_annotated.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/05/Package-Exporter-experimental_annotated.png" alt="Package-Exporter-experimental_annotated.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Want inspiration for creating your own package descriptions? Check out some of <a href="https://marketplace.visualstudio.com/" rel="nofollow noreferrer ugc">these popular extensions</a> for Visual Studio.</p><h2>Scripting news</h2><p><a href="https://wiki.mudlet.org/w/Manual:Lua_Functions#addFileWatch" rel="nofollow noreferrer ugc">File watches</a> are now in Mudlet! Wilk’s work allows your scripts to get notified whenever an external file is changed. This enables some interesting possibilities, such as editing code outside of Mudlet and having it <a href="https://github.com/Mudlet/Mudlet/pull/4942#issuecomment-803592717" rel="nofollow noreferrer ugc">show up live.</a> (link to 45sec video demonstration)</p><p>Another great feature for multiplayers by SlySven is an improvement to the central debug console, which will now say which profile an information came from.</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/05/debug_multiplay.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/05/debug_multiplay.png" alt="debug_multiplay.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Leveraging that momentum, SlySven has also improved the multiplayed profile tabs so they can now be re-arranged as you desire.</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/05/profile_swap.gif" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/05/profile_swap.gif" alt="profile_swap.gif" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><h2>Credits</h2><p>Thanks to all coders who made this release happen – Andrew Eisenberg, Andrew Waters, atari2600tim, Chris Mitchell, Damian Monogue, Gustavo Sousa, Kamil Tunkiewicz, Kebap, Manuel Wegmann, Mike Conley, mudlet-machine-account, OzlynnJeez, Piotr, Serity, Stephen Lyons, and Vadim Peretokin.</p><p>Thanks to all translators who contributed to keeping the translations up to date: Alan Sneath (alsneath), Hsin-Hsiang Peng (Hsins), Leris, Marco “M0lid3us” Tironi (wiploo), Matthieu (Jack_potta), and vingi.</p><h2>Changelog</h2><p><strong>added:</strong></p><ul><li>AdjustableContainerRepositionFinish event, change in AdjustableContainerReposition event</li><li>file watch functions (addFileWatch, removeFileWatch) and event (sysPathChanged)</li><li>getPackages and getModules functions</li><li>brand new package manager to view your installed packages</li><li>brand new package exporter to share your Mudlet things with others</li><li>dreplaceLine, hreplaceLine as well as support for windows other than the main one</li><li>getConnectionInfo() will now also say if you’re currently connected or not</li></ul><p><strong>improved:</strong></p><ul><li>getOS() extended to include extra version (and for GNU/Linux, distribution) return values.</li><li>new keys without a name will automatically get assigned one</li><li>StickMUD will have the IRE mapper script installed by default for new profiles</li><li>Discord toggle for Clessidra will work right away, without needing to connect first</li><li>area parsing in XML files is now more resilient</li><li>mudlet will no longer freeze when exporting really large packages</li><li>top buttons in Mudlet are no longer monospaced</li><li>profile tabs in multiplay mode can now be re-arranged by dragging</li><li>debug console will now show which profile a message comes from</li><li>clicking on the line # in the code editor will let you type in it</li><li>mapper right-click menu will no longer hide custom items if you open it low</li><li>saveJsonMap() can be used without a path, just like saveMap()</li><li>you can add new variables in editor without having to click on one first</li><li>cleaned up mapper right-click menu; it’ll only show items relevant to current selection</li><li>unknown MSP elements will be skipped and Mudlet will do its best to play the sound anyway</li><li>duplicate parent names won’t be included anymore when exporting/importing packages (but if you’d like to, you can right-click to do it anyway)</li></ul><p><strong>fixed:</strong></p><ul><li>fixed crash when using MSSP with the * event handler</li><li>clicking on a label/miniconsole in a floating userwindow will no longer steal focus from the input line</li><li>changing tabs in multiview will no longer cause consoles to flash</li><li>there will no longer be a line across the screen for a split moment when a new profile is opening</li><li>searchAreaUserData() will work again when both key and value are provided for searching</li><li>clicking on the timestamp will now visually select the whole line</li><li>auto-complete will no longer try to complete on short words like ‘do’</li><li>text will now longer be automatically deselected while typing with the spellchecker on</li><li>–quiet command line explanation fixed</li><li>cancelling a package download will now actually cancel it</li><li>perm* functions are working well again</li><li>getMapLabels() won’t crash when used on an area that doesn’t exist</li><li>generic mapper update notifications will work well again</li><li>miniconsole message if you don’t pass enough parameters fixed</li><li>fixed nonsense message for when there’s no rooms in the map</li><li>generic mapper will stop responding to the map opening after it’s been uninstalled</li><li>code won’t run twice on setScript and resetProfile</li><li>resize events won’t be emitted anymore if the size didn’t actually change</li><li>getMapMenus() fixed</li><li>small memory leak when JSON map export is aborted</li></ul><p><strong>infrastructure:</strong></p><ul><li>added automation to auto-link Linux and macOS PTB to updater (#4861</li><li>added tests for variable interface</li><li>added support for building Mudlet in Docker on Linux</li><li>added mpackage for testing cecho/decho/hecho and console transparency to tests</li><li>added an automated check to verify improvements against Mudlet’s C++ style guide</li><li>Qt 5.14.2 is now used for all official builds</li></ul><p> </p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/05/Screenshot-2021-05-30-4.32.39-PM-1024x552.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/05/Screenshot-2021-05-30-4.32.39-PM-1024x552.png" alt="Github Stats for 4.12" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p>]]>
        </description>
    </item>
    <item>
        <title>User Window questions</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7588/user-window-questions</link>
        <pubDate>Thu, 29 Apr 2021 00:01:04 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Caelan</dc:creator>
        <guid isPermaLink="false">7588@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>How do you set fields in a user window?  I was looking at some GUIs and am trying to re-write my own system which doesn't really have any GUI stuff, just a target window, a chat window, and a personal detail window (planned).</p><p><br /></p><p>If I want to track which limb I'm parrying in a window (or the limb I'm targetting, or just about anything), do I just trigger the line, assign it to a variable, and call the window, with the window itself displaying the variable ?  I know I can use GMCP but I don't see any GMCP for targetting or limb parrying. </p><p><br /></p><p>Or is there a better way?  I'd like one that doesn't make a lot of unnecessary calls and whatnot. Would prefer an efficient re-write as that is half the reason I'm currently re-doing stuff.  If there's a way to just throw it to the window or that one section of the window, without re-drawing the whole thing every time a value/variable changes, that would be preferred.</p>]]>
        </description>
    </item>
    <item>
        <title>Assorted Scripts</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7574/assorted-scripts</link>
        <pubDate>Fri, 16 Apr 2021 05:58:39 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Shecks</dc:creator>
        <guid isPermaLink="false">7574@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Just a thread to share scripts that I think other people might like to use, instead of making a new thread every time.</p><p><br /></p><h2>Multi-name city charging script</h2><p>Lets you charge any number of dirty criminals all at once.  Uses multi-line command, so be sure to set the <strong>command_separator </strong>variable if you have changed your in-game command separator from the default setting.</p><div><div><p>SYNTAX:</p><p>city charge player [player...] with [crime]</p></div></div><p><br /></p><pre spellcheck="false" tabindex="0">regex:  ^city charge (.+) with (\w+)$
</pre><p><br /></p><pre spellcheck="false" tabindex="0">local command_separator = ";"  --default is ;
local s = ""
local t = string.split(matches[2])
local name = ""
local i = 0
local c = 0
while c &lt; #t do
  assert(c &lt; 100,"overrun")
  i=i+1 c=c+1 
  if i == 12 then
    send(s)
    i = 0
    s = ""
  end
  name = t[c]
  s = s.."city charge "..name.." with "..matches[3]
  if i &lt; #t and i ~= 11 and c ~= #t then s = s..command_separator end
end
send(s)
</pre><p><br /></p><div>
    <div>
        <a href="https://us.v-cdn.net/5019940/uploads/KJTASGRL34M5/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5019940/uploads/KJTASGRL34M5/image.png" alt="image.png" height="432" width="711" /></a>
    </div>
</div>
<p><br /></p>]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.11 – smoother mapper</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7527/mudlet-4-11-smoother-mapper</link>
        <pubDate>Sat, 13 Mar 2021 10:15:11 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Vadimuses</dc:creator>
        <guid isPermaLink="false">7527@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>After a (once again) forced updates hiatus of a couple of months, monthly Mudlet updates are back! Enjoy improvements to drag &amp; drop and a much better mapper.</p><p>What is Mudlet?<br /></p><p>Mudlet is a platform with which you can play multiplayer, pure-text online games – called MUDs, precursors to today’s online games. There are thousands of unique worlds online – <a href="https://www.mudlet.org/download/" rel="nofollow noreferrer ugc">download</a> Mudlet for free on Windows/macOS/Linux, join one and enjoy!</p><h2>New games in Mudlet</h2><h2>Cleft of Dimensions</h2><p>Do you have a soft spot for an old SNES RPG? Are you a fan of retro gaming? The Cleft of Dimensions is an adventure-driven MUD with content inspired by a variety of classic video games. Do you want to jump on goombas? Maybe you’d rather immolate them with lava or bombard them with meteors. Then again, why fight when enslavement’s an option? If that doesn’t work out, you’ve got this motorcycle you could crash into them. The Cleft has 16 character classes, each with a distinctive playstyle.</p><p> </p><p>Gameplay in the Cleft features exploration, puzzles, quests, and combat. At time of writing, the world contains 98 areas. Quests range from deciphering treasure maps and committing industrial espionage to seeking the blessings of the mana spirits or just going fishing. A remort system facilitates repeat playthroughs to find content you missed the first time around.</p><p> </p><p>The Cleft opened in July 2000 and has been in active development ever since. We’re always innovating. Recent features include Discord integration and areas written with artificial intelligence. Check us out!</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/mudlet_cleftofdimensions-1024x503.gif" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/mudlet_cleftofdimensions-1024x503.gif" alt="mudlet_cleftofdimensions-1024x503.gif" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><h2>Core MUD</h2><p>Core Mud is an interactive text MUD set on the planet formal star-charts refer to as Hermes 571-G, but that everyone <em>in the know</em> refers to simply as “Core”. Core is one of the most distant settlements known to mankind, most famous for its lucrative yet oppressive mines. But more than mankind can be found here; Core is a diverse group of 9 races in total, all vying for recognition or profits, or both, working for The Company, the megalithic entity running the colony itself. To The Company, everything is secondary to profits. It is up to you to determine how best to survive in this environment, whether that be through combat training, superior mining skills, or technical prowess.</p><p> </p><p>Core MUD is always free to play and features a fun and supportive atmosphere. Roleplaying is encouraged but not mandatory. <a href="https://coremud.org/wiki/doku.php?id=core:economy:mining:mining" rel="nofollow noreferrer ugc">Mining</a> is your primary source of income, but there are multiple ways to scrape together a few <a href="https://coremud.org/wiki/doku.php?id=core:economy:credits" rel="nofollow noreferrer ugc">credits</a>… or a few million. Core Mud also features an economy which is player-driven; players own merchandise <a href="https://coremud.org/wiki/doku.php?id=core:economy:shops" rel="nofollow noreferrer ugc">shops</a> featuring energy weaponry or useful tools, pubs featuring assorted alcoholic (of course) and non-alcoholic beverages, and clinics for healing, to name a few. Come join us today!</p><div>
    <div>
        <a href="https://i.imgur.com/b1Rf57k.gif" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://i.imgur.com/b1Rf57k.gif" alt="CoreMUD gameplay" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Want to add your game in here? <a href="https://wiki.mudlet.org/w/Listing_Your_MUD" rel="nofollow noreferrer ugc">It’s free</a>.</p><h2>Drag and drop link to install a package</h2><p>Yes you read that right – just drag and drop a link onto Mudlet and it’ll download and install the package for you:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/install-package-dnd.gif" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/install-package-dnd.gif" alt="install-package-dnd.gif" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Carrion Fields UI</p><p>Alternatively, you can also drag and drop the package file itself and it’ll install as well.</p><h2>New core dev team member, Delwing</h2><p>Please welcome Piotr, aka <a href="https://github.com/Delwing" rel="nofollow noreferrer ugc">Delwing</a> / WilK to the team! Delwing has previously made the excellent web-based <a href="https://github.com/Delwing/mudlet-map-browser" rel="nofollow noreferrer ugc">Mudlet map viewer</a>, VS Code <a href="https://github.com/Delwing/mudlet-docs" rel="nofollow noreferrer ugc">autocompletion for Mudlet</a>, and with scripts for the Polish game Arkadia.</p><p>This time around in Mudlet, Delwing added room borders:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_071.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_071.png" alt="Selection_071.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Along with a complete customizable map info panel:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_072.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_072.png" alt="Selection_072.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>And some very sleek-looking room selection:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/new-room-selection-1.gif" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/new-room-selection-1.gif" alt="new-room-selection-1.gif" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>You can also now customise the colour of the room character. Thanks to Delwing for adding these in, and looking forward to more!</p><p>SlySven has put a huge amount of work into the mapper as well – and it can now save/load in JSON as well. This is something that crowdmaps will find handy to integrate so changes to the map can be clearly seen as text.</p><h2>View-only mapper</h2><p>Thanks to <a href="https://github.com/ktunkiewicz" rel="nofollow noreferrer ugc">ktunkiewicz</a>‘s work, the mapper now has a view-only mode – instead of editing – and of course it starts off in view-only off the bat:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Workspace-1_074.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Workspace-1_074.png" alt="Workspace-1_074.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Map makers no longer have to worry about players messing the map up with an accidental click.</p><p>Profile autosave<br /></p><p>We’ve listened and new profiles created on 4.11 will now save automatically by default! Something so simple can go a long way to a better player experience.</p><p>Named patterns<br /></p><p>matches[2] and friends is a good workhorse in Mudlet, and now they’ve been joined by new friends – you can now use matches.<em>mycustomname</em>!</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_077.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_077.png" alt="Selection_077.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Before</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_079.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_079.png" alt="Selection_079.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>After</p><p>Notice how the attacker and weapon are changing places, being either first or second – but that doesn’t affect our echo at all. Try <a href="https://forums.mudlet.org/viewtopic.php?f=6&amp;t=23040" rel="nofollow noreferrer ugc">this out</a> for yourself, and find the <a href="https://wiki.mudlet.org/w/Manual:Technical_Manual#Named_patterns" rel="nofollow noreferrer ugc">docs for it</a> here.</p><h2>String interpolation</h2><p>It sounds pretty complicated, but it actually makes things easier – a new function, <a href="https://wiki.mudlet.org/w/Manual:String_Functions#f" rel="nofollow noreferrer ugc">f()</a>, allows you to combine text and variables together in a more intuitive manner:</p><pre spellcheck="false" tabindex="0">-- old way:
cecho("\nHello, "..matches[2]..", how is it going?")

-- new way:
cecho(f("\nHello {matches[2]}, how is it going?")
</pre><h2>Coding improvements</h2><p><a href="https://github.com/Kebap/" rel="nofollow noreferrer ugc">Kebap</a> has put a lot of work in and improved <strong>all</strong> of the “wrong argument type” errors to be much more descriptive, and they’ll now tell you what went wrong and where:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_091.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_091.png" alt="Selection_091.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>The function needs a name/id, but none was given</p><p>I have to say that on the technical side of things, this makes the code look much cleaner – if you’re curious, <a href="https://github.com/Mudlet/Mudlet/blob/development/src/TLuaInterpreter.cpp" rel="nofollow noreferrer ugc">have a peek</a>.</p><p>Additionally, whenever a function couldn’t do its job for some reason, it previously returned nil+message – the message will now show up in the Debug console as well, which can aid you in debugging:</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_080.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_080.png" alt="Selection_080.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p> </p><h2>Mudlet in Polish</h2><p>Thanks to Delwing and Sirith, Mudlet is now available in Polish! There is a community of Polish games out there; now when a new player starts Mudlet for the first time, it’ll be in their native language.</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_093.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/01/Selection_093.png" alt="Selection_093.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p>Text games are a great way to learn a language, so if you were thinking of picking up Polish – now’s your chance!</p><h2>macOS scrolling</h2><p>Touchpad scrolling for macOS now behaves a lot more naturally, we hope you like it!</p><h2>More updates?</h2><p>Regular monthly updates were interrupted by one of our partners, Travis CI, suddenly turning their back on the open-source community. We’ve taken the time to migrate our macOS and Linux builds to Github instead, and in the process switched to using CMake for building in combination with a C++ package manager, <a href="https://github.com/microsoft/vcpkg" rel="nofollow noreferrer ugc">vcpkg</a>.</p><p>Regular, monthly updates are now back on track for the foreseeable future.</p><p> </p><h2>Credits</h2><p>Big thanks to all coders who made it happen: Damian Monogue, Dustin Heywood, ethorondil, Gustavo Sousa, Jonathan Picazo, Kamil Tunkiewicz, Kebap, Manuel Wegmann, Matthias Urlichs, Mike Conley, Piotr Wilczyński, Stephen Lyons, tdk1069, Vadim Peretokin, and wiploo.</p><p>Of course, our fantastic translators as well: Alan Sneath (alsneath), Heimen Stoffels (vistausss), Hsin-Hsiang Peng (Hsins), Leris, lostnow, Marco “M0lid3us” Tironi (wiploo), Mi11et, Piotr Wilczyński, Sirith (Senareil), Vadim Peretokin, and vingi.</p><p> </p><h2>Changelog</h2><p><strong>added:</strong></p><ul><li>‘look’ command in generic_mapper can now be translated</li><li>addCmdLineSuggestion() allows you to add words to the tab completion</li><li>custom HTTP method requests are now supported (ie PATCH)</li><li>debug console now shows warnings from functions (which are returned as nil+message normally)</li><li>f() function for string interpolation, ie send(f(“My target is {target}”))</li><li>functions are now accepted everywhere [[code here]] is as well</li><li>generic mapper: new ‘lazy’ map mode to match room names only, ignoring exits</li><li>getProfileTabNumber() to return the # of the current tab</li><li>getWindowWrap() so you can make echo’s that don’t wrap</li><li>registerMapInfo() allows you to customise the map info label</li><li>launching Mudlet for the first time ever? The input line will now have a placeholder text saying where to type the text</li><li>map info box is now customizable</li><li>modules can now be loaded before scripts in a profile with the -1 module priority</li><li>named captures are now supported in regex triggers (matches.)</li><li>placeholder text for command fields to explain what are they for</li><li><a href="https://mudlet.org/it" rel="nofollow noreferrer ugc">mudlet.org/it/</a>for our Italian players</li><li>room characters can now be custom-coloured</li><li>rooms now have borders in the 2D view</li><li>saveJsonMap() and loadJsonMap() now support the Mudlet map format in JSON</li><li>setRoomCharColor() allows you to customise the colour of a room character</li><li>showNotification() to show an OS (computer) notification</li><li>sysDownloadFileProgress event to monitor download progress</li><li>view-only mode in the mapper, which is on by default</li><li>X11 (Linux middle-click) selection is now supported</li><li>you can now install a package by dragging the URL onto Mudlet</li></ul><p> </p><p><strong>improved:</strong></p><ul><li>‘deleteOldProfiles’ now deletes old modules as well</li><li>‘no map loaded’ will now differentiate between actually no map loaded, and not knowing where you are</li><li>Adjustable.Container now deals with corrupted save files and table for save slots</li><li>all “wrong argument type” errors are now gone, will give an actual explanation instead</li><li>c/d/hecho text formatting can do italics and bold</li><li>connection dialog now looks better in dark themes</li><li>default background color is now transparent, not black, in c/d/hecho</li><li>default, unused profiles no longer require a confirmation to delete</li><li>event engine can now pass large numbers through OK</li><li>exists() function will now error on a wrong input type</li><li>expired timers are now periodically deleted when you’re offline, instead of in bulk when you reconnected (which made Mudlet freeze for a while)</li><li>getMapLabel() now returns foreground/background colors and the image as base64</li><li>GMCP package names are now parsed in a case-insensitive way, per spec</li><li>installing a package by dragging it into Mudlet will now give a notification</li><li>installPackage will now return true/false indicating if it worked</li><li>internal: history code is now a single code path, not duplicated</li><li>italics and emojis won’t overlap each other anymore</li><li>line spacer pattern now uses a spinbox instead of a free-text line edit</li><li>loading a map will now choose a better folder to start in</li><li>more functions will now validate their arguments instead of throwing an error</li><li>name search function can now be customised in the generic mapper</li><li>new profiles are not preinstalled the “send text to all games” </li><li>script anymore. There’s a better package available now </li><li><a href="https://forums.mudlet.org/viewtopic.php?f=6&amp;t=23023" rel="nofollow noreferrer ugc">https://forums.mudlet.org/viewtopic.php?f=6&amp;t=23023</a></li><li>newline is now its own entry in the history buffer(edited)</li><li>profile save is enabled by default on new profiles</li><li>permGroup can now be used for keys</li><li>removed all QPalettes from forms/dialogues, enabling stylesheets to cover more aspects of Mudlet</li><li>response size limit is removed in HTTP calls</li><li>right-clicking on a room will select it for the pop-up</li><li>room selection now looks better</li><li>scrolling is now smoother in general</li><li>scrolling transition is smoother when screen splits using scrollwheel</li><li>setFont() won’t work with unknown fonts</li><li>settings dialog will now close when the button is released, and not pressed, as expected</li><li>simplified unknown text for given encoding message</li><li>small text under icons in the connection dialog is gone</li><li>telnet options within subnegotiations are now ignored, instead of breaking output</li><li>timestamps are now copied as well when they’re visible</li><li>trigger patterns now have an explanation of where the text goes for newbies</li><li>TTS won’t try to speak out &lt;, &gt;, and no text</li><li>typing in the connection dialog will now highlight the relevant icons</li><li>using Alt+O will now re-focus on the package manager if it was open</li><li>you can drag left/right to increase selection after double or triple-clicking on a word</li><li>you can now copy text from the update dialog</li><li>you can now multi-select in the package manager</li></ul><p> </p><p><strong>fixed:</strong></p><ul><li>Adjustable container attached menu shows elements now on hover (or similar)</li><li>crash with reloadModule()</li><li>Discord link in Mudlet will now always work</li><li>display() won’t freeze on Geyser labels anymore, can show _G as well</li><li>export action isn’t enabled anymore in Variables view, as those weren’t exportable</li><li>flyout labels will close when leaving the parent item</li><li>generic mapper script: correctly handle ‘set player location’</li><li>IRC ‘/quit’ no longer crashes Mudlet</li><li>just one ‘about’ button will now be on screen, instead of many if Mudlet was left running for a while and an update was available</li><li>Lua trigger conditions are now properly deleted when the profile is closed, fixing a small memory leak</li><li>map labels for an area are now deleted with the area</li><li>MXP playing MSP handles with no attribute names won’t crash anymore</li><li>MXP tags with UTF8 strings are now shown correctly</li><li>pressing Alt won’t steal focus from the input line anymore</li><li>room exits that go off the map are now drawn</li><li>some games appeared twice in the connection dialog</li><li>speedwalk() in reverse mode won’t reverse the numbers as well</li><li>tempTimer() won’t have a small memory leak anymore</li><li>unhighlighting during control-selection now works OK</li><li>module contents aren’t lost anymore if <code spellcheck="false" tabindex="0">saveProfile()</code> is called during load</li></ul><p><strong>infrastructure:</strong></p><ul><li>CMake is now the primary source for macOS and Linux releases</li><li>CMake build now generates translations properly</li><li>PTB and snapshot builds now get separate icons</li><li>Apple has stopped supporting macOS 10.13 – Mudlet’s minimum is now 10.14</li></ul><p>What has happened in Mudlet in just the last month alone? See below. This of course doesn’t cover everything since the last release in November!</p><div>
    <div>
        <a href="https://www.mudlet.org/wp-content/uploads/2021/03/Selection_099-1024x554.png" rel="nofollow noreferrer noopener ugc" target="_blank">
            <img src="https://www.mudlet.org/wp-content/uploads/2021/03/Selection_099-1024x554.png" alt="Selection_099-1024x554.png" height="180" width="320" /></a>
    </div>
</div>
<p><br /></p><p> </p><p><br /></p><h3></h3><p><br /></p>]]>
        </description>
    </item>
    <item>
        <title>Mudlet Discord Invite?</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7466/mudlet-discord-invite</link>
        <pubDate>Wed, 13 Jan 2021 20:44:48 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Colden</dc:creator>
        <guid isPermaLink="false">7466@/index.php?p=/discussions</guid>
        <description><![CDATA[Sorry for making a topic with a simple question like this. But, could someone shoot me a Mudlet discord invite, please? I have coding issues...<br />]]>
        </description>
    </item>
    <item>
        <title>Nexus Documentation!</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7445/nexus-documentation</link>
        <pubDate>Fri, 01 Jan 2021 17:53:05 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Solaine</dc:creator>
        <guid isPermaLink="false">7445@/index.php?p=/discussions</guid>
        <description><![CDATA[<h1 data-id="nexus-documentation">Nexus documentation!</h1><div>Since Mudlet has oodles of documentation and Nexus has next to nothing, here's a bunch of things I know about Nexus. Hope this helps you all out! Be it a veteran Nexus user (stay strong guys) or a new player on the field. Please feel free to add your own findings onto this and let me know if you have any questions at all! </div><div><br /></div><div>I'll start this off with the really simple stuff, and work my way up to the really advanced things. Start wherever you feel comfortable.</div><div><h2 data-id="the-basics">THE BASICS</h2></div><div>PACKAGES are your friend! Keep everything organized and capitals matter! 'Reflex packages' tab to manage them. </div><div>GROUPS are a great way to keep all of your stuff organized. Recommended! Especially useful if you need to mass enable/disable certain code for certain things.</div><div>ALIASES are what you type in to the actual game that can execute any number of things.</div><div>KEYBINDS are a set combination of key-presses that will execute just like an alias would.</div><div>TRIGGERS are how you tell the game to respond to certain inputs. Be it an exact string of words, anytime you see a certain instance, or a super complicated regular expression.</div><div>EVENTS are certain types of thing that happen (moved rooms, someone enters your room, etc.)</div><div>FUNCTIONS are a way to store neat bundles of code in one place, and these can be called (executed) through aliases, functions, triggers, etc. </div><div><h2 data-id="variables-and-objects">VARIABLES AND OBJECTS</h2></div><div>Variables are great, but try not to use tons and tons of them as they do take up space. Here's a tip! Get in the habit of deleting variables when you don't need them, or when they definitely won't be in use. More commonly, instead of always doing <code spellcheck="false" tabindex="0">let variable = true</code> and <code spellcheck="false" tabindex="0">let variable = false</code> do <code spellcheck="false" tabindex="0">let variable = true</code> and <code spellcheck="false" tabindex="0">delete variable</code> when saving them globally (locally doesn't much matter). </div><div><br /></div><div>Speaking of globally! To store a global variable using Nexus, you </div><div><pre spellcheck="false" tabindex="0">set_variable("variableName", value)</pre></div><div>and to retrieve it you</div><div><pre spellcheck="false" tabindex="0">get_variable("variableName")</pre></div><div>The second parameter can be numbers or Boolean outside of quotes, and strings must be inside of quotes. Deleting works with</div><div><pre spellcheck="false" tabindex="0">delete_variable("variableName")</pre></div><div><br /></div><div>I periodically like to go through my Variables list, since there's a whole tab for it, and often find a bunch of variables I can clear out that I haven't used in a while. It's a great way to help free up space.</div><div><br /></div><div></div><div></div><div>As to objects, the best way to globally store and access these is using JSON. </div><div></div>&#13;
<pre spellcheck="false" tabindex="0">let obj = {&#13;
    key: "value1",&#13;
    keyTwo: "value2"&#13;
}&#13;
&#13;
set_variable("obj", JSON.stringify(obj));&#13;
</pre><div></div><div></div><div>And to retrieve that:</div><div><pre spellcheck="false" tabindex="0">let obj = JSON.parse(get_variable("obj"));</pre></div><h2 data-id="functions">FUNCTIONS</h2><div>Functions! Simplified scripting allows you to run functions within the same package, but if you're trying to run a function in a different package, you'll need to 'Execute script' for that. To do so is actually very easy.  Keep in mind that both names are case sensitive!</div><div><pre spellcheck="false" tabindex="0">run_function("functionName", false, "Package name");</pre></div><h2 data-id="reflexes">REFLEXES</h2><div>REFLEX is a sort of catch-all word for nearly everything that's in your Nexus settings and code, and a great IC term to refer to things. To enable and disable reflexes, I've found this to be most efficient:</div><pre spellcheck="false" tabindex="0">let reflex = reflex_find_by_name("Group", "Enable/disable", true, false, "Bashing")&#13;
reflex_enable(reflex);&#13;
reflex_disable(reflex);&#13;
</pre><div>This is an actual example I've used to enable and disable a large group of code for my auto-bashing package. </div><div>- "Group" refers to the fact that it's a group (other valid parameters are "Trigger", "Alias", and "Function")</div><div>- "Enable/disable" is the case-sensitive name of the group I'm referring to</div><div>- <code spellcheck="false" tabindex="0">true</code> refers to the fact that it is case-sensitive and <code spellcheck="false" tabindex="0">false</code> would render that the opposite</div><div>- <code spellcheck="false" tabindex="0">false</code> means I'm looking at ALL groups regardless of if they're already enabled or not and <code spellcheck="false" tabindex="0">true</code> would be more selective</div><div>- "Bashing" is the name of the package this is in</div><div><h2 data-id="string-replacement">STRING REPLACEMENT</h2></div><div>Replacement can be super useful but is also fairly tricky to get going. Each instance often takes some trial and error so here's an example that is very useful:</div><div><br /></div><div>Trigger text: <code spellcheck="false" tabindex="0">A sigil in the shape of a small, rectangular monolith is on the ground\.</code></div><div></div><pre spellcheck="false" tabindex="0">const index = current_line.parsed_line.text().indexOf(args[0]);&#13;
replace_current_line(index, args[0].length, " MONO ", '#8a8986', '#000000');&#13;
</pre><div></div><div>Note that the trigger text has to be in regular expression form for this to work. You CAN'T put <code spellcheck="false" tabindex="0">^</code> and <code spellcheck="false" tabindex="0">$</code> because you want this to trigger in large paragraphs of room descriptions containing a monolith sigil to work. Index refers to where in the paragraph this line occurs, the next parameter refers to the length of the text I'm trying to replace, " MONO " is what to replace it with, and the following parameters are the fgcolour and bgcolour. </div><h2 data-id="more-nexus-basics">MORE NEXUS BASICS</h2><div>More things like this exist such as highlighting, gagging,  buttons, etc. The link is:</div><div><a rel="nofollow" href="https://nexus.ironrealms.com/Functions">https://nexus.ironrealms.com/Functions</a></div><div><br /></div><div>Some helpful hints:</div><div>  - <code spellcheck="false" tabindex="0">client.print("Text", fgcolour, bgcolour)</code> will NOT provide another line afterwards regardless of if it's inputted and <code spellcheck="false" tabindex="0">display_notice("Text", fgcolour, bgcolour)</code> will.</div><div>  - colorize_current_line and <code spellcheck="false" tabindex="0">replace_current_line</code> use regular expression inputs for their starting parameter. 0 would be the very first character that appears (whitespace included) and args[0].length is a good parameter for length in almost every instance</div><div>  - Button manipulation is great if you hunt a lot in different classes.</div><div><br /></div><div>Some great websites:</div><div>  - <a rel="nofollow" href="https://www.rexegg.com/regex-quickstart.html">https://www.rexegg.com/regex-quickstart.html </a>[ A regular expression cheat sheet ]</div><div>  - <a rel="nofollow" href="https://regexr.com/">https://regexr.com/</a> [ A regular expression tester, extremely useful! ]</div><div>  - <a rel="nofollow" href="https://beautifier.io/">https://beautifier.io/</a> [ Beautify JSON code which helps dissect large segments of GMCP ]</div><div>  - <a rel="nofollow" href="https://jshint.com/">https://jshint.com/</a> [ JS validator: check if your JS code has proper syntax ]</div><div>  - You can Google 'colour picker' for hex codes, which are valid inputs as fg and bgcolour for client.print, display_notice, colorize_current_line, etc. </div><div><h2 data-id="functions-and-documentation-links">FUNCTIONS AND DOCUMENTATION LINKS</h2></div><div>-- main package-- : The built-in package Nexus gives you for storing everything. You can add more in the 'Reflex Packages' tab.</div><div><br /></div><div>onLoad: A built-in Nexus function that runs every time you log in or sometimes when you come back from a disconnect. These are great to use for setting up all your defenses and resetting anything that might've stayed active when you qq'd</div><div><br /></div><div>onGMCP: Mostly used to check for certain GMCP information (we'll get to that!) but can also be used to frequently check for something specific since the onGMCP function automatically ticks every second or so</div><div><br /></div><div>GMCP: GMCP is a set of documentation that tells all about your character. This includes things like your name, age, race, class and class-specific information, your current room and area, the speaking channels you have access to (city, House, Order, clans, etc), and a plethora of other information. Here's all the documentation urls I have on GMCP that I reference frequently</div><div><br /></div><div><a rel="nofollow" href="https://nexus.ironrealms.com/GMCP">https://nexus.ironrealms.com/GMCP</a></div><div>[ Nexus documentation on IRE. This mostly tells you how to access certain parts of GMCP and what it'll actually show up as: an object, an array, a value, etc ]</div><div><br /></div><div><a rel="nofollow" href="https://www.achaea.com/local/Achaea_GMCP_Spec_20140311.pdf">https://www.achaea.com/local/Achaea_GMCP_Spec_20140311.pdf</a></div><div>[ 14 page PDF file detailing specifically CORE and IRE parts of GMCP ]</div><div>[ Namely good for Character, Room, Area, and Rift information ]</div><div><br /></div><div><a rel="nofollow" href="https://nexus.ironrealms.com/GMCP_Data">https://nexus.ironrealms.com/GMCP_Data</a></div><div>[ Very, very basic documentation that shows you essentially how to start using GMCP in your code ]</div><h2 data-id="gmcp">GMCP </h2><div>The specifics of GMCP! Here are some code examples within onGMCP funcitons and we can break down each one. </div><div><br /></div><div></div><pre spellcheck="false" tabindex="0">if (args.gmcp_method == "Room.Info") {&#13;
    let room = args.gmcp_args.name;&#13;
    let area = args.gmcp_args.area;&#13;
    set_variable("currentArea", area);&#13;
    set_variable("currentRoom", room);&#13;
}</pre><div></div><div>Essentially, if the method that GMCP is ticking on (args.gmcp_method) is the Room Information (Room.Info), let's pull the specifics of that information. Let's zoom in on the name and area parts (using dot notation since they show up as objects). Save them, and done!</div><div><br /></div><div></div><pre spellcheck="false" tabindex="0">if (args.gmcp_method == "Room.Info") {&#13;
    set_variable('roomEnvironment', args.gmcp_args.environment);&#13;
}</pre><div></div><div>Does the same as the above, but specifically for the environment. Useful for harvesting and extracting scripts. </div><div><br /></div><div></div><pre spellcheck="false" tabindex="0">if (args.gmcp_method == "Char.Items.List") {&#13;
    let mobs = args.gmcp_args.items.filter(e =&gt; e.attrib == 'm') || [];&#13;
    set_variable("mobs", mobs)&#13;
}</pre><div></div><div>Here's another I used in my bashing package. This one looks at the items that are in my current room. The reason I'm filtering is so that I can look at only the things in the room with the 'm' attribute (monsters that are killable!). Since this can be such a large object, filtering is very useful in this particular case. </div><div><br /></div><div></div><pre spellcheck="false" tabindex="0">if (args.gmcp_method == "Char.Vitals") {&#13;
    let rage = parseInt(args.gmcp_args.charstats[1].substring(6));&#13;
    set_variable("rage", rage);&#13;
}</pre><div></div><div>This one pulls my rage value! Note that <code spellcheck="false" tabindex="0">args.gmcp_method</code> remains the same through essentially every GMCP function that you'll have and often to access various parts of these objects, you only need to dot notate the particular key value you're searching for. This is why the documentation above is so helpful because it tells you exactly what that'd look like. </div><div><br /></div><div>Finally, rift requests are a little tricky as you need to actually tell GMCP to request the information, since this isn't on the normal ticks. To do so:</div><div><pre spellcheck="false" tabindex="0">send_GMCP("IRE.Rift.Request");</pre></div><div>Then you would access the rift itself (inside of an onGMCP function) with:</div><div><pre spellcheck="false" tabindex="0">if (args.gmcp_method == 'IRE.Rift.List') {&#13;
    let rift = args.gmcp_args;&#13;
    set_variable("rift", JSON.stringify(rift))&#13;
}</pre></div><div>This is displayed as an object, with the keys being the actual rift items (sileris, red clay, etc.) and the values being the amount. If you don't have an item in your rift, it doesn't exist in the object. </div><h2 data-id="miscalleneous">MISCALLENEOUS</h2><div>That's the really hard stuff! If you're interested in simple scripting, this is your site:</div><div><a rel="nofollow" href="https://nexus.ironrealms.com/Simplified_Scripting">https://nexus.ironrealms.com/Simplified_Scripting</a></div><div><br /></div><div>And advanced scripting:</div><div><a rel="nofollow" href="https://nexus.ironrealms.com/Functions">https://nexus.ironrealms.com/Functions</a></div><div><br /></div><div>If you're interested in advanced scripting, you're more often than not going to change the `Send a command` dropdown to the very last 'Execute script' instead. JSON.stringify (briefly mentioned above in 'Variables and Objects') is also a great way to look at the full extent of your personal GMCP information. Which you can do with:</div><div><pre spellcheck="false" tabindex="0">display_notice(JSON.stringify(GMCP), 'gold')</pre></div><div>Be careful! This is gonna give you a huge output of information.</div><h2 data-id="nexus-packages">NEXUS PACKAGES</h2><div><a rel="nofollow" href="https://forums.achaea.com/discussion/6527/character-db-nexus">https://forums.achaea.com/discussion/6527/character-db-nexus</a></div><div>A forum post that links to a wonderful Character DB for specifically Nexus.</div><div><br /></div><div><a rel="nofollow" href="https://github.com/jhuiAchaea/Nexsys">https://github.com/jhuiAchaea/Nexsys</a></div><div>A Github link for a defense system. Also has neat features for things like bombs and sigils. <br /><br /><a rel="nofollow" href="https://github.com/goldrose51/Nexus-Mapper" title="Link: https://github.com/goldrose51/Nexus-Mapper">https://github.com/goldrose51/Nexus-Mapper</a> <br />Couldn't find the original so I made an attempt at putting it in a Github: here's a great mapper and way to edit the existing map with room-finder and walk-to features.</div><div><br /></div><h2 data-id="ui-documentation">UI DOCUMENTATION </h2><div>The UI documentation link was initially a dropbox and seems to have since been deleted. If you're interested in this at all, please message me oocly and I can send you a download of the package I currently have, and walk you through how to build your own.</div><div>----</div><div><br /></div><div>And that's it! I hope this helps you in your Nexus endeavors. Even though it can be really frustrating sometimes, hang in there! It becomes worth it once it all comes together, I swear. Any questions, or want help on Nexus, or help on some code? Please ask me! I love helping, and I'm available to talk oocly through messages or in discord. </div><div></div>]]>
        </description>
    </item>
    <item>
        <title>best client/client mod for visually impaired players</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/3087/best-client-client-mod-for-visually-impaired-players</link>
        <pubDate>Thu, 22 Jan 2015 08:26:33 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Krota</dc:creator>
        <guid isPermaLink="false">3087@/index.php?p=/discussions</guid>
        <description><![CDATA[Just wondering, has anyone found a good client or plugin pack good for blind/visually impaired players. Some other MUDS I've tried have plugin packs that add sounds and other things so I'm just wondering if there is anything like that for Achaea.<br />]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.10 – extra command lines, background images, and more</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7407/mudlet-4-10-extra-command-lines-background-images-and-more</link>
        <pubDate>Tue, 03 Nov 2020 21:35:09 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Vadimuses</dc:creator>
        <guid isPermaLink="false">7407@/index.php?p=/discussions</guid>
        <description><![CDATA[<div>&#13;
					&#13;
<p>This release has been a long time coming, thanks to the vagaries of &#13;
obtaining a new code signing certificate for our Windows builds. &#13;
Consequently there are a lot of changes which made it into Mudlet 4.10. &#13;
Let’s go over some of the highlights!</p><br /><h2 data-id="extra-command-lines">Extra command lines</h2>&#13;
<div>&#13;
<div>&#13;
<div>You’ve been asking for it, you waited patiently, now thanks to <a rel="nofollow" href="https://github.com/Edru2/">Edru</a>&#13;
 you can have… multiple command lines! Whenever you want a second one &#13;
for role-playing, your chat window to have configuration, or anything &#13;
else, this is now possible:</div>&#13;
</div>&#13;
</div>&#13;
<p><img alt="extra command line" src="https://wiki.mudlet.org/images/0/0c/AdditionalCommandLine.png" title="Image: https://wiki.mudlet.org/images/0/0c/AdditionalCommandLine.png" width="976" height="137" /></p>&#13;
&#13;
&#13;
&#13;
<p>To turn on a commandline in a miniconsole, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Enable_and_use_your_miniconsole_command_line">see here</a>. To create a stand-alone, free floating command line, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Geyser.CommandLine">see here</a>.</p>&#13;
<h2 data-id="background-images-for-miniconsoles">Background images for miniconsoles</h2>&#13;
<p>You know what else you’ve been waiting and asking for? Background images on miniconsoles! Edru has been on a roll!</p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/11/Selection_363.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/11/Selection_363.png" width="446" height="409" /></a></p>&#13;
<p>This also means that the usual c/d/heho color formatting functions now accept transparency as a parameter. <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Change_your_miniconsole_background_image">See here</a> on how to set a background image.</p>&#13;
<p>This also means that you can try setting a background image for the &#13;
main window as well – but you might find that games often hardcode the &#13;
black background, so it’s not ideal.</p>&#13;
<h2 data-id="math-in-geyser">Math in Geyser</h2>&#13;
<p>Have you been struggling to get your Geyser elements lined up <strong>just right</strong>&#13;
 and wished you could nudge it over just a few pixels? Been avoiding &#13;
Geyser and using another option so you could have math in your &#13;
constraints? Well, now you can use Geyser and receive all of its updates&#13;
 and use math in your constraints.</p>&#13;
<p>This means for example if you have a 32×32 label you want to center you can do so by using Label1:move(“50%-16px“,“50%+10px“), or using “50%-16px” for both the x and y when making the label.</p>&#13;
<h3 data-id="other-geyser-improvements">Other Geyser Improvements</h3>&#13;
&#13;
&#13;
&#13;
<p>Geyser.Label also allows you to use “nocolor” as the text color, &#13;
which will then allow for coloring the text via CSS. It also picked up &#13;
the Geyser.Label:rawEcho(txt) function, which skips over all the &#13;
formatting assistance normally provided by Geyser.Label:echo().</p>&#13;
<p>Geyser.MiniConsole gains Geyser.MiniConsole:display() which works &#13;
just like regular display(), but outputs in the miniconsole instead of &#13;
your main display.</p>&#13;
<div>&#13;
<div>&#13;
<div>Tired of copying things&#13;
 to a miniconsole and not being able to click them? Wish you could keep &#13;
your MXP links intact in a miniconsole? Well, now you can! Edru once &#13;
again stepped up to the plate for this one.</div>&#13;
</div>&#13;
</div>&#13;
<h2 data-id="new-color-functions-for-feedtriggers">New color functions for feedTriggers</h2>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>Have you struggled to &#13;
test your color triggers? Tired of hand-crafting escape sequences when &#13;
using feedTriggers()? Well, Demonnic was even if you weren’t, so he &#13;
added some new functions for working with feedTriggers. decho2ansi() and&#13;
 hecho2ansi() will take any decho or hecho string and return an ansi &#13;
colored string. The functions are used by the new feedTriggers variants,&#13;
 dfeedTriggers and hfeedTriggers which allow for you to send colored &#13;
text to the trigger engine for testing your color triggers. Also added &#13;
is cfeedTriggers, which uses color names but uses a limited color table &#13;
which corresponds to the ansi standard colors, IE black, red, green, &#13;
yellow, blue, magenta, cyan, white, and lightBlack, lightRed, etc. You &#13;
can also use a number from 0-255 to get the ansi 256 color equivalent.</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
&#13;
&#13;
&#13;
<h2 data-id="multi-view-forever">Multi-view forever!</h2>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>Now you can open ALL &#13;
THE PROFILES! and move between them with your mouse and keyboard &#13;
shortcuts without it turning multiview off. Have fun multiplaying!</div>&#13;
</div>&#13;
<div>&#13;
<div>&#13;
<div> </div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/11/Selection_368.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/11/Selection_368-1024x446.png" width="1024" height="446" /></a></p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="telnet-charset-support">Telnet CHARSET support</h2>&#13;
&#13;
&#13;
&#13;
<p>Game admins will be happy about this feature – it is now possible to &#13;
automatically set Mudlet’s text encoding – for example, to be utf8 in &#13;
case your game supports emojis – using the CHARSET protocol. Big thanks &#13;
to <a rel="nofollow" href="https://tools.ietf.org/html/rfc2066">Tamarindo</a> from <a rel="nofollow" href="https://www.stickmud.com/">StickMUD</a> for pulling that one in.</p>&#13;
<h2 data-id="music-sound-in-mxp">Music/sound in MXP</h2>&#13;
<p>Tamarindo also went ahead and added sound/music support to Mudlet’s MXP implementation. That said, there’s a much more modern <a rel="nofollow" href="https://wiki.mudlet.org/w/Special:MyLanguage/Standards:MUD_Client_Media_Protocol">Mud Client Media Protocol</a> that you should aim to use <img src="https://localforums.achaea.com/resources/emoji/wink.png" title=";)" alt=";)" height="20" /><br /></p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="scrollbar-improvements">Scrollbar improvements</h2>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>&#13;
<div>You’ll not be surprised&#13;
 to hear this one is Edru as well. Had you noticed Mudlet’s scrollbars &#13;
behaving a bit… oddly? Jumping around, not resizing itself, stuff like &#13;
that? Well, Edru’s put a lot of work into this and it should all work &#13;
much more smoothly now.</div>&#13;
<div> </div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
</div>&#13;
<h2 data-id="macos-10-13-high-sierra">macOS 10.13 High Sierra</h2>&#13;
&#13;
&#13;
&#13;
<p>Apple will stop supporting 10.13 High Sierra in November 2020, and &#13;
Mudlet will have to follow suit. Thus Mudlet 4.10 will be the last &#13;
version to support 10.13, which had a good run of 3 years!</p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="credits">Credits</h2>&#13;
&#13;
&#13;
&#13;
<p>Thanks to all coders that have contributed to this massive release: &#13;
Andre Castellanos, Damian Monogue, Eraene, Fae, Gustavo Sousa, Ian &#13;
Adkins, Jonathan Mohrbacher, Kebap, keneanung, Manuel Wegmann, Matthias &#13;
Urlichs, Mike Conley, Stack, Stephen Lyons, and Vadim Peretokin.</p>&#13;
&#13;
&#13;
&#13;
<p>Thanks to all translators to translated Mudlet into their language: &#13;
Alan Sneath (alsneath), Anubisa, emeraldboy, Hsin Hsiang Peng (Hsins), &#13;
Kae (itsTheFae), Leris, Marco “M0lid3us” Tironi (wiploo), rodeos, &#13;
rodeos, Vadim Peretokin (vperetokin), vingi, and 王AQ (Anselmus).</p>&#13;
<p>This massive piece of work would not be possible without all of you <img src="https://localforums.achaea.com/resources/emoji/smile.png" title=":)" alt=":)" height="20" /></p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="changelog">Changelog</h2>&#13;
&#13;
&#13;
&#13;
<p><strong>added:</strong></p>&#13;
&#13;
&#13;
&#13;
<ul><li>ability to display room names on the map (no auto-align them yet)</li><li>an event to catch all events – `*`</li><li>background image for miniconsoles is now possible, same as labels</li><li>background image for the main window is now possible</li><li>English spellchecking dictionaries are now included</li><li>game admins can now set encoding via telnet CHARSET (so utf8 for emojis)</li><li>miniconsoles can now have commandlines in them</li><li>music is now supported in MXP</li><li>option not to highlight text (history) when pressing the ↑ button</li><li>option to use your own pathfinding algorithm instead of the built-in one</li><li>you can now create standalone commandlines now allow you to ask the player for info</li><li>transparency in now supported by cecho/decho/hecho</li><li>you can now use math in Geyser constraints, ie “50% + 3px”</li></ul><p><strong>added &amp; improved functions:</strong></p>&#13;
<ul><li>ansi2string() given a string with ANSI codes in it, remove them all</li><li>cfeedTriggers(), dfeedTriggers(), and hfeedTriggers() to enable testing color triggers</li><li>createCommandLine(), enableCommandLine() for creating custom commandlines</li><li>enableHorizontalScrollBar() to show a horizontal scrollbar in miniconsoles as needed</li><li>getClipboardText() and setClipboardText() for interacting with the clipboard</li><li>getFgColor() and getBgColor() now report how many characters the same color applies to</li><li>getHTTP() downloadFile’s cousin and allows you to pass custom headers, joins putHTTP(), postHTTP() family for consistency</li><li>Geyser.Label:createRightClickMenu() to create menus in labels</li><li>Geyser.MiniConsole:display() to display straight into a miniconsole</li><li>Geyser.UserWindow:setStyleSheet(), setUserWindowStyleSheet() to adjust the userwindow title and borders – great for dark themes</li><li>hecho() can now set the background color only, without affecting foreground</li><li>isActive() and exists() now work with buttons</li><li>keepcolor parameter to replaceWildcard() and replaceAll() functions</li><li>purgeMediaCache() to remove MCMP &amp; MSP media files</li><li>setCmdLineStyleSheet() to customize the font, colors, position of the command line</li><li>setMapBackgroundColor() to change background color of the map from the usual black</li><li>setMapRoomExitsColor() to customize the color of room exits drawn on the map</li><li>spairs() which iterates over a table in a sorted way</li><li>tempAlias() and tempKey() now can take Lua functions and not just text</li><li>tempAnsiColor() trigger now works as it should</li></ul><p><strong>improved:</strong></p>&#13;
&#13;
&#13;
&#13;
<ul><li>‘errors’ button text is now capitalized</li><li>a message is now shown when a replay ends</li><li>Client.Media – package messages themselves are no longer case sensitive</li><li>compact input line option is now per-profile</li><li>errors console now shows a horizontal scrollbar when needed</li><li>exit line in generic mapper is now case-insensitive, and a few other triggers improved</li><li>in case of compiling Mudlet yourself without TTS support, TTS functions won’t error anymore</li><li>links at the end of the line now won’t be clickable in the empty space</li><li>more accurate row and column reporting through NAWS protocol</li><li>Mudlet logo artwork, now sharper and better-looking. Dev and PTB builds are now clearly distinguishable</li><li>Mudlet’s savefiles are now saved with a more sorting-friendly name</li><li>Mudlet’s usual, development and PTB icons got improved</li><li>multiview tabbars aren’t re-arrangeable anymore, as doing so didn’t re-arrange the views anyhow</li><li>profile history in connection dialog now translates dates</li><li>scrolling now uses the upper pane’s height, so you aren’t missing text when scrolling, or getting too much of it</li><li>shrinking rooms in the mapper will keep everything in its place</li><li>string.split() now works with many more characters</li><li>stylesheets can now manipulate color of Geyser Labels</li><li>tabs and tab stops in profile preferences now make sense, which is a bit friendlier for a11y</li><li>upped the limit of regex capture groups in aliases and triggers to 33</li><li>zooming the mouse in and out in 2D mapper will keep the position more stable</li></ul><p><strong>fixed:</strong></p>&#13;
&#13;
&#13;
&#13;
<ul><li>‘map config’ alias in generic mapper now works</li><li>appendBuffer() now keeps links, so copying text with links in it to miniconsoles works</li><li>crash when closing a profile with toolbars</li><li>crash when selecting/copying text</li><li>crash trying to move too many rooms at once via right-click</li><li>fixed MXP with values containing =</li><li>Materia Magica’s MXP now works better with Mudlet</li><li>multiview now stays when you change focus between profiles</li><li>resetProfile() to work again</li><li>static items in HBox/VBoxes won’t be resized anymore when the box changes size</li><li>sysDataSendEvent will no longer reveal the password</li><li>vertical scrollbar now moves when you scroll with PgUp/PgDown</li><li>vertical scrollbar now shrinks in size as you get more text</li></ul><p><strong>infrastructure:</strong></p>&#13;
<ul><li>added some useful defaults for Visual Studio Code’s C++ integration</li><li>building with libzip 1.70.0 that lacks version numbers now works</li><li>cleaned up IRC code</li><li>debug output now spams a bit less for unprintable codepoints</li><li>deleted Github Action for clearing whitespace (more spam than help)</li><li>enabled Github’s new CodeQL security code scanning</li><li>fixed crash importing map with custom exit lines on Qt 5.14+ (macOS)</li><li>internal code that only works with the main window is now in a separate class of its own, making the programmers happier</li><li>Lua binding code cleaned up and improved for consistency and code style, now more fresh!</li><li>Mudlet can now be built &amp; run remotely in the browser with Github Codespaces</li><li>Mudlet can now be built in MSYS2 on Windows</li><li>Mudlet’s wiki is now upgraded to latest and greatest</li><li>new PTBs are only built on days where there are new changes</li><li>updated Linux builds to use Qt 5.12.9</li></ul></div><br />]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.9.X SSL/TLS connection</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7268/mudlet-4-9-x-ssl-tls-connection</link>
        <pubDate>Fri, 03 Jul 2020 23:01:55 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Eranis</dc:creator>
        <guid isPermaLink="false">7268@/index.php?p=/discussions</guid>
        <description><![CDATA[Hi,<br /><br />New player here. I am exploring Mudlet and cannot determine how to use a SSL/TLS connection connection for password and username transfer.<br /><br />Can someone point out if I can or how I should?<br /><br /><br />Thank you.]]>
        </description>
    </item>
    <item>
        <title>Help with Tables</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7368/help-with-tables</link>
        <pubDate>Mon, 05 Oct 2020 18:56:06 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Glathna</dc:creator>
        <guid isPermaLink="false">7368@/index.php?p=/discussions</guid>
        <description><![CDATA[Note: I am a Mushclient user, but I think a lot of Mudlet info transfers over.<br /><br />I would like to have a local table within a trigger. For example,<br /><br />local Entered = {<br />Bill,<br />Bob,<br />Frank<br />}<br /><br />And then I would like a sound to fire off of the information within that table. For example,<br /><br />Bob has entered.<br /><br />I would hear a sound indicating that someone on that list has entered, but not if someone not on the list has entered.<br /><br />Jack has entered.<br /><br />Any help would be much appreciated.<br /><br /><br />]]>
        </description>
    </item>
    <item>
        <title>Submitting new rooms for Mudlet Mapper?</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7362/submitting-new-rooms-for-mudlet-mapper</link>
        <pubDate>Mon, 28 Sep 2020 15:57:59 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Zbaco</dc:creator>
        <guid isPermaLink="false">7362@/index.php?p=/discussions</guid>
        <description><![CDATA[<div>I have a few areas that I've mapped manually, but every time the mapper script updates, it wipes my changes. <br /></div><div><br /></div><div>How do I submit rooms for inclusion in the mapper?<br /></div>]]>
        </description>
    </item>
    <item>
        <title>HTML5 Client Questions and Such</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/65/html5-client-questions-and-such</link>
        <pubDate>Tue, 21 Aug 2012 17:11:04 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Cromm</dc:creator>
        <guid isPermaLink="false">65@/index.php?p=/discussions</guid>
        <description><![CDATA[Hello, all! I'm the guy responsible for the new HTML5 Client, and I thought it high-time I made myself available to anyone using the client for any questions, concerns, ideas, etc. you might have.<div><br /></div><div>So lay it on me. Can't get a trigger to work like you want it to?  Something breaking?  Random javascript question?  Idea for the fancy-logger?  I'll do my best to help wherever I can. </div><div><br /></div><div>The client is very much a work in progress, so I look forward to your ideas and to helping figure stuff out that needs figuring out.  Thanks a million!</div><div><br /></div><div>- Cromm</div>]]>
        </description>
    </item>
    <item>
        <title>Script To Client Command</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7317/script-to-client-command</link>
        <pubDate>Mon, 17 Aug 2020 18:24:50 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Glorinifer</dc:creator>
        <guid isPermaLink="false">7317@/index.php?p=/discussions</guid>
        <description><![CDATA[How do I send a command to the game via a Java Script script in the nexus client settings?]]>
        </description>
    </item>
    <item>
        <title>Mushclient Buddy Needed</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7302/mushclient-buddy-needed</link>
        <pubDate>Sun, 26 Jul 2020 01:40:29 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Glathna</dc:creator>
        <guid isPermaLink="false">7302@/index.php?p=/discussions</guid>
        <description><![CDATA[Hello, I am looking for someone who knows Mushclient and LUA well. I would like to learn more about it. Reading and doing text chat with people has gotten me as far as I can go. If you are willing to voice chat with me every now and again on Discord about LUA and Mushclient, please send me a message. I need someone live who I can discuss and ask questions of, and who is reasonably patient.<br /><br />thank you ahead of time!<br /><br />Jashiri#4958<br />]]>
        </description>
    </item>
    <item>
        <title>Nexus: keybind to open/close boxes</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7252/nexus-keybind-to-open-close-boxes</link>
        <pubDate>Thu, 11 Jun 2020 23:18:05 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Eldoran</dc:creator>
        <guid isPermaLink="false">7252@/index.php?p=/discussions</guid>
        <description><![CDATA[<div>Hi!</div><div>Is there any way we can set an alias or a keybind to open/close a certain box in the Nexus client?</div><div>For example: Ctrl+I will open the Inventory box; Ctrl+M will open/close the Map box, etc.</div><div>Thanks in advance<br /></div>]]>
        </description>
    </item>
    <item>
        <title>How to log on Nexus?</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7207/how-to-log-on-nexus</link>
        <pubDate>Sun, 03 May 2020 23:48:55 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Airyal</dc:creator>
        <guid isPermaLink="false">7207@/index.php?p=/discussions</guid>
        <description><![CDATA[Hi, is there a way to log what's happening in-game in colour on nexus? How do you turn it on and off and where does it save to?<br />Thanks]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.8 - Drag and drop packages, custom cursors, and amazing maps</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7204/mudlet-4-8-drag-and-drop-packages-custom-cursors-and-amazing-maps</link>
        <pubDate>Sat, 02 May 2020 17:31:35 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Vadimuses</dc:creator>
        <guid isPermaLink="false">7204@/index.php?p=/discussions</guid>
        <description><![CDATA[<div>&#13;
					&#13;
<p>This is an amazing release that adds drag and drop packages, custom &#13;
cursors, draggable labels and more! Mudlet is now more powerful than &#13;
ever for building stunning, modern interfaces for MUDs.</p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="drag-and-drop-packages">Drag and drop packages</h2>&#13;
&#13;
&#13;
&#13;
<p>Thanks to Edru, who massively improved Geyser and Userwindows in the <a rel="nofollow" href="http://mudlet.org/4-6">last update</a>, you can now drag and drop packages into Mudlet to install them. Pretty simple!</p>&#13;
<div><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/04/drag-and-drop-package-install.gif"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/04/drag-and-drop-package-install.gif" title="Image: https://www.mudlet.org/wp-content/uploads/2020/04/drag-and-drop-package-install.gif" width="1513" height="851" /></a><p>Credit: <a rel="nofollow" href="https://forums.mudlet.org/viewtopic.php?f=6&amp;t=22728" title="Link: https://forums.mudlet.org/viewtopic.php?f=6&amp;t=22728">Eraene’s DarkTheme</a></p></div>&#13;
&#13;
&#13;
&#13;
<p>Along with this comes a <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Event_Engine#sysDropEvent">sysDropEvent</a>,&#13;
 so you can code a custom action when a file is dropped into Mudlet. If &#13;
you’re a package author, remember you can make use of the <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Event_Engine#sysInstall">sysInstall</a> event to notify that your package has been installed. Enjoy!</p>&#13;
<h2 data-id="carrion-fields-added">Carrion Fields added</h2>&#13;
<p><a rel="nofollow" href="http://www.carrionfields.net/">This game</a> has put &#13;
together a seriously impressive Mudlet package and we’re honoured to &#13;
have them added to Mudlet officially! Double-click on CF in the &#13;
Connection screen to play <img src="https://localforums.achaea.com/resources/emoji/smile.png" title=":)" alt=":)" height="20" /></p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_591.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_591-1024x572.png" width="1024" height="572" /></a> </p>&#13;
<p>Carrion&#13;
 Fields is a unique blend of high-caliber roleplay and complex, hardcore&#13;
 player-versus-player combat that has been running continuously, and &#13;
100% free, for over 25 years.</p>&#13;
<p>Choose&#13;
 from among 21 races, 17 highly customizable classes, and several cabals&#13;
 and religions to suit your playstyle and the story you want to tell. &#13;
Our massive, original world is full of secrets and envied limited &#13;
objects that take skill to acquire and great care to keep.</p>&#13;
<p>We&#13;
 like to think of ourselves as the Dark Souls of MUDs, with a community &#13;
that is supportive of new players – unforgiving though our world may be.&#13;
 Join us for a real challenge and real rewards: adrenalin-pumping &#13;
battles, memorable quests run by our volunteer immortal staff, and &#13;
stories that will stick with you for a lifetime.</p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="adjustable-containers">Adjustable Containers</h2>&#13;
<p>Edru didn’t just stop with drag and drop – <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Adjustable.Container">adjustable containers</a>&#13;
 are in as well! What does it mean? It means labels/miniconsoles that &#13;
you can move around and reposition just by dragging! No code needed.</p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/adjustable-container.gif"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/05/adjustable-container.gif" width="1457" height="739" /></a></p>&#13;
<p>Try this code in Mudlet:</p>&#13;
<pre spellcheck="false" tabindex="0">testCon = testCon or Adjustable.Container:new({name="testContainer"})<br />testLabel = Geyser.Label:new({x=0, y=0, height="100%", width="100%", color="green"},testCon)</pre>&#13;
<h2 data-id="search-within-the-script">Search within the script</h2>&#13;
<p>Dicene also added a cool feature – you can now hit <strong>Ctrl+F</strong> to search within the script only, not your entire Mudlet profile!</p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_583.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_583.png" width="818" height="255" /></a></p>&#13;
<p>He didn’t just stop there either – you can now toggle whenever you’d &#13;
like to search within variables, default off so it’s quicker:</p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Workspace-1_585.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/05/Workspace-1_585.png" width="356" height="176" /></a></p>&#13;
<h2 data-id="cp437-encoding-now-supported">CP437 encoding now supported</h2>&#13;
<p>Thanks to SlySven, the CP437 encoding is now supported. Along with a custom font, <a rel="nofollow" href="http://www.medievia.com/">Medievia</a> makes use of this to draw amazing custom maps <img src="https://localforums.achaea.com/resources/emoji/smile.png" title=":)" alt=":)" height="20" /></p>&#13;
<p><a rel="nofollow" href="https://user-images.githubusercontent.com/62970949/80146038-2a957480-857f-11ea-860e-e127feeec9c1.JPG"><img alt="CP437 encoding with a custom font" src="https://user-images.githubusercontent.com/62970949/80146038-2a957480-857f-11ea-860e-e127feeec9c1.JPG" width="1334" height="938" /></a></p>&#13;
<p>Check out a <a rel="nofollow" href="https://user-images.githubusercontent.com/62970949/80146037-29fcde00-857f-11ea-9ae0-40f316bc5687.JPG">few more</a> <a rel="nofollow" href="https://user-images.githubusercontent.com/62970949/80146039-2b2e0b00-857f-11ea-9f13-03c0ea082276.JPG">screenshots</a>.</p>&#13;
<h2 data-id="custom-cursors">Custom cursors</h2>&#13;
<h2 data-id="n-a">&#13;
&#13;
</h2>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/custom-cursors-demo.gif"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/05/custom-cursors-demo.gif" width="701" height="307" /></a></p>&#13;
<p>Yep, custom cursors are here! Curious? Download, drag, and drop <a rel="nofollow" href="https://wiki.mudlet.org/w/File:Cursor_grid.zip">this demo package</a> into Mudlet to try all the cursors out <img src="https://localforums.achaea.com/resources/emoji/smile.png" title=":)" alt=":)" height="20" /></p>&#13;
<p>Big thanks to Edru for adding these in.</p>&#13;
<h2 data-id="new-api-features">New API features</h2>&#13;
&#13;
&#13;
&#13;
<p>gcms added MXP as another format that you can get data / events from, just like GMCP. <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Supported_Protocols#MXP">Check it out</a>!</p>&#13;
<p>demonnic did a pass over the table functions – <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.contains">table.contains()</a> can now check within multiple nested tables, and <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.collect">table.collect()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.n_collect">table.n_collect()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.matches">table.matches()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.n_matches">table.n_matches()</a> to make working with tables easier.</p>&#13;
<p>Thanks to Edru, you can now manipulate the syncing of a module with <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Miscellaneous_Functions#enableModuleSync">enableModuleSync()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#disableModuleSync">disableModuleSync()</a>, and <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#getModuleSync">getModuleSync()</a>, and add/edit the Scripts as you see them in Mudlet with <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#enableScript">enableScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#disableScript">disableScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#setScript">setScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#getScript">getScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#permScript">permScript()</a>, and <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#appendScript">appendScript()</a>.</p>&#13;
<p>Edru also improved on the userwindows – you can now choose whenever &#13;
they should be popped out or docked at start, and if docked, which area &#13;
should they be in. Autodocking while dragging can now be disabled, too!</p>&#13;
<p>A few more improvements are also present – see the full changelog below.</p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="geyser-show-fixed">Geyser:show() fixed</h2>&#13;
<p>As mentioned <a rel="nofollow" href="https://www.mudlet.org/2020/03/4-6-geyser-geyser-geyser/">two months ago</a>,&#13;
 we’ve fixed an issue where you could still :show() the child of a &#13;
hidden container. If your UI relied on this broken behaviour, make sure &#13;
to update it!</p>&#13;
<h2 data-id="script-editor-sizes">Script editor sizes</h2>&#13;
&#13;
&#13;
&#13;
<p>Alias/trigger/script editors are no longer huge by default, and &#13;
they’ll remember their sizes as well. Thanks to dicene for covering this&#13;
 off!</p>&#13;
<h2 data-id="polish-translation">Polish translation ⭐</h2>&#13;
<p>Big thanks to mwarzec for translating the entirety of Mudlet into Polish! In his own words, it was possible thanks to:</p>&#13;
<p>home.. sweet home.. and no reasons to go outside..</p>&#13;
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_589.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_589-1024x329.png" width="1024" height="329" /></a></p>&#13;
<p> </p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="did-i-miss-4-7">Did I miss 4.7?</h2>&#13;
&#13;
&#13;
&#13;
<p>We skipped 4.7 because that was the <a rel="nofollow" href="https://mudlet.org/4-7">April Fools</a> version <img src="https://localforums.achaea.com/resources/emoji/wink.png" title=";)" alt=";)" height="20" /></p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="credits">Credits</h2>&#13;
&#13;
&#13;
&#13;
<p>Thanks to all coders who made this release amazing! atari2600tim, &#13;
Damian Monogue, Edru2, gcms, Ian Adkins, Jim Tryon, Kebap, keneanung, &#13;
Mike Conley, Richard Moffitt, Slobodan Terzić, Stephen Lyons, and Vadim &#13;
Peretokin.</p>&#13;
&#13;
&#13;
&#13;
<p>Thanks to all translators: DarkApocalypse , Dawid Chomaniuk &#13;
(pd.chomaniuk), Jelle Z. (jelle619), Leris, Marco “M0lid3us” Tironi &#13;
(wiploo), mwarzec, vingi, and thomazleventhal for their work in this.</p>&#13;
&#13;
&#13;
&#13;
<h2 data-id="changelog">Changelog</h2>&#13;
&#13;
&#13;
&#13;
<p><strong>added:</strong></p>&#13;
&#13;
&#13;
&#13;
<ul><li>‘sysDropEvent’ event that allows drag and drop over labels/miniconsoles/main window</li><li>Adjustable Containers are now part of Mudlet. This means nice labels you can drag to move without having to code it</li><li>CLI option –profile to load a specific profile on start</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#copy2decho">copy2decho()</a> and <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#copy2html">copy2html()</a> utility functions</li><li>CP437 encoding is now supported</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#enableModuleSync">enableModuleSync()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#disableModuleSync">disableModuleSync()</a>, and <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#getModuleSync">getModuleSync()</a></li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#enableScript">enableScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#disableScript">disableScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#setScript">setScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#getScript">getScript()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#permScript">permScript()</a>, and <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#appendScript">appendScript()</a></li><li>getMudletInfo() to show debugging information about Mudlet</li><li><a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserGeyser.html#Geyser:changeContainer">Geyser.changeContainer()</a> to change the parent of a label/window</li><li>Geyser.container raiseAll/lowerAll()</li><li><a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserLabel.html#Geyser.Label:setCursor">Geyser:setCursor()</a>, <a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserLabel.html#Geyser.Label:setCustomCursor">Geyser:setCustomCursor()</a>, and <a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserLabel.html#Geyser.Label:resetCursor">Geyser:resetCursor()</a> (and non-Geyser equivalents) to set a custom cursor over a label</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Supported_Protocols#MXP">mxp events</a> and an ‘mxp.’ table for MXP content (similar to GMCP)</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#setMapWindowTitle">set</a>/<a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#resetMapWindowTitle">resetMapWindowTitle()</a> to change the name of the mapper</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#setUserWindowTitle">set</a>/<a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#resetUserWindowTitle">resetUserWindowTitle()</a> and shorter titles by default</li><li><a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserGauge.html#Geyser.Gauge:setFgColor">setFgColor()</a> for Gauges</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#setWindow">setWindow()</a> to change the parent of a label/window</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.collect">table.collect()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.n_collect">table.n_collect()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.matches">table.matches()</a>, <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.n_matches">table.n_matches()</a> to make working with tables easier</li><li>you can now drag and drop packages into Mudlet to install them!</li><li>you can now search just within the script, and not the whole of Mudlet, with <strong>Ctrl+F</strong>. Enter/Shift+Enter navigate results</li><li>Mapper is a Geyser object now as well under <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Create_Map_Window">Geyser.Mapper</a></li></ul><p><strong>improved:</strong></p>&#13;
&#13;
&#13;
&#13;
<ul><li>echo() is now limited to 10k characters on a single line</li><li><a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserLabel.html#Geyser.Label:setOnEnter">Geyser:setOnEnter</a>/<a rel="nofollow" href="https://www.mudlet.org/geyser/files/geyser/GeyserLabel.html#Geyser.Label:setOnLeave">setOnLeave()</a> now support tables of arguments like other functions</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:UI_Functions#setLabelClickCallback">setLabelClick</a> and others now accept Lua functions directly</li><li>3D mapper is only loaded when clicked on now</li><li>Mudlet’s language is auto-detected and set for new players automatically</li><li>Noto Font only included where it’s useful (Linux), smaller Mudlet size for macOS and Windows</li><li>searching for variables in editor is now optional and defaults to off (faster search)</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#setConsoleBufferSize">setConsoleBufferSize()</a> won’t allow you to set the limit to be bigger than your computer’s/processes memory anymore</li><li>splash screens are now different for official / dev / public test build versions</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Table_Functions#table.contains">table.contains()</a> can now check for multiple items</li><li><a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Mudlet_Object_Functions#tempComplexRegexTrigger">tempComplexRegexTrigger()</a> won’t throw an error if expiration is set to 0</li><li>the collapse/expand icon for search is now sharper</li><li>there’s now a frame around the search line in Mudlet</li><li>trigger/script/etc sizes in the editor are now better by default and will remember their position</li><li>updated algorithm for calculating the width of a character</li><li>updated Noto Font to a newer version</li><li>updater window now mentions ‘update’ explicitly</li><li>UserWindows: you can now choose dockPosition on start</li><li>UserWindows: you can now disable automatic docking</li><li>removed getMudletLuaDefaultPaths(). This is a rare case where nobody&#13;
 at all was using the function and it wasn’t needed, so no backwards &#13;
compat is broken</li></ul><p><strong>fixed:</strong></p>&#13;
&#13;
&#13;
&#13;
<ul><li>echoLink() fixed to show text right away</li><li>logging in other languages will now record characters properly</li><li>MXP now handles &amp;text; tag correctly</li><li>toolbar turning black on old macOS when 3D mapper window is opened</li><li>many issues with <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser#Flyout_Labels">Geyser Flyout</a> labels fixed</li><li>Geyser:show() won’t allow showing children of a hidden parent anymore</li></ul><p><strong>infrastructure:</strong></p>&#13;
<ul><li>big thanks to TheFae for refreshing the frontpage and the downloads page on the website</li><li>added use of Github Actions to automate infrastructure tasks (updating dependencies, translations, etc)</li><li>added use of Github Actions to build Mudlet in macOS and Windows</li><li>createButton() deprecated, now uses an internal wrapper</li><li>text available for translation improved, some \n’s removed</li></ul><div><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_588.png"><img alt="" src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_588.png" width="910" height="602" /></a><p>This is just half of what went into this two-month release. Seems interesting? Join our team! All are welcome <img src="https://localforums.achaea.com/resources/emoji/smile.png" title=":)" alt=":)" height="20" /></p></div>&#13;
					</div><br />]]>
        </description>
    </item>
    <item>
        <title>Short Nexus Questions</title>
        <link>https://localforums.achaea.com/index.php?p=/discussion/7197/short-nexus-questions</link>
        <pubDate>Thu, 30 Apr 2020 07:30:52 +0000</pubDate>
        <category>Client Help</category>
        <dc:creator>Celadriel</dc:creator>
        <guid isPermaLink="false">7197@/index.php?p=/discussions</guid>
        <description><![CDATA[A few questions I have about Nexus, thanks!<br /><br />- Is there a way to echo emotes/says to a tab to track roleplay?<br /><br />- Is there a way to add multiple channels to one tab, eg city/guild or several clans?<br /><br />- How do I see the rest of the channel tabs after I've reached a certain number? I currently have 9 tabs and can't find the rest of the channel tabs I have open<br /><br />- Is there a way to script echoing to those tabs directly? In line with that, is there a way to trigger off colors (eg for capturing emotes)?<br /><br />- I've turned off extra spacing, but there is still an extra blank line above every emote, say, action, etc. See attached pic. Is there another setting to do this?<br /><br />- How do I gag lines in Nexus?<br /><br />Thank you!]]>
        </description>
    </item>
   </channel>
</rss>
