<?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>Tech Talk — Aetolia&#039;s Forums</title>
        <link>https://forums.aetolia.com/index.php?p=/</link>
        <pubDate>Wed, 29 Apr 2026 11:41:22 +0000</pubDate>
        <language>en</language>
            <description>Tech Talk — Aetolia's Forums</description>
    <atom:link href="https://forums.aetolia.com/index.php?p=/categories/techtalk/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Aetolia Mudlet Code Compilation</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/4679/aetolia-mudlet-code-compilation</link>
        <pubDate>Tue, 25 Jul 2023 16:55:18 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Julea</dc:creator>
        <guid isPermaLink="false">4679@/index.php?p=/discussions</guid>
        <description><![CDATA[It was a little challenging to find all the lovely things people have coded and released for public consumption over the years (as well as which ones are still available), so I went through them all and made a list. Figured I'd share.

<h2>Tech Talk Forum</h2>

<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/4323/rp-mode-wip">RP-Mode</a></del> by Tetcha - Unavailable, invalid zip
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/3914/">After Dark GUI by Tetcha</a></del> - Unavailable, no download link
<b><a rel="nofollow" href="https://forums.aetolia.com/discussion/4407/aetolian-kill-medals-featuring-the-halo-announcer">Kill Medals (Halo Announcer)</a></b> by Tetcha - <a rel="nofollow" href="https://forums.aetolia.com/uploads/editor/fe/fvc7il4hhdmy.zip">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/comment/114907#Comment_114907">Help Pop-Ups</a> by Ealric &amp; Lisa- <a rel="nofollow" href="https://forums.aetolia.com/uploads/editor/6l/boev85q4bc3s.zip">Download!</a>
<b><a rel="nofollow" href="https://forums.aetolia.com/discussion/2175/">Fishing Module</a></b> by Mihaketi - <a rel="nofollow" href="https://www.dropbox.com/s/cs1yzhjgznlu4m2/aet_fishing.mpackage.zip?dl=0">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/3752/aetolia-gui">zGUI for Aetolia</a> by Deva - <a rel="nofollow" href="https://drive.google.com/file/d/1uBlZ7_X3nlyVdiRg5AV5pwCkfHnZQR52/view">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/2850/sunder/p1">Sunder, Full System with GUI</a> by Jory - <a rel="nofollow" href="https://discord.com/invite/XXZn6radqT">Discord with Download!</a>
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/3111/minimal-mudlet-aetolia-package-for-events#latest">Minimal Events Package</a></del> by Eliadon - Unavailable, broken link
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/2489/project-source-1-4-support">Project Source, Full System with GUI</a></del> by Aoi - Unavailable, no links, dead Discord
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/2769/project-spooky#latest">Project Spooky, Full System with GUI</a></del> by Toz - Unavailable, no links, never finished
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/2301/i-made-a-thing#latest">NDB Tracker</a></del> by Elyni - Unavailable, broken links
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/1774/the-oasis-project/p1">Oasis, Full System with GUI</a></del> by Ashmer - Unavailable, broken links
<a rel="nofollow" href="https://forums.aetolia.com/discussion/1004/kikons-system-framework#latest">System Frameworks</a> by Kikon - <a rel="nofollow" href="https://pastebin.com/Gkfpm5bM">Framework</a>, <a rel="nofollow" href="https://pastebin.com/bJwMsk93">Aetolia.lua</a>, <a rel="nofollow" href="https://pastebin.com/BWKmJ43b">Afftracker.lua</a>
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/1813/numerology-system-mudlet#latest">Numerology System</a></del> by Cylano - Unavailable, invalid zip
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/1484/serenity-update#latest">Serenity, Full System with GUI</a></del> by Ashmer - Unavailable, messy situation?
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/12/earthshaker-soulreaper-for-mudlet">Soulreaper, Full System with GUI</a></del> - Unavailable, broken links
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/12/earthshaker-soulreaper-for-mudlet">Earthshaker, Full System with GUI</a></del> - Unavailable, no links

<h2>Scripts Forum</h2>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4268/denizen-management">Denizen Management</a> by Akrios - <a>Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4508/how-to-demoralize-yourself-exp-edition">Demoralize Yourself: EXP Edition</a> by Akrios - <a rel="nofollow" href="https://drive.google.com/file/d/1tHCTUogd99iHjMQXM0MWFUmw9z4Q9V-Q/view">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4417/aetolia-hunting-database">Hunting Database</a> by Akrios - <a rel="nofollow" href="https://drive.google.com/file/d/1viJu1su4xKEJiqOfm-wPR2uNNrv7Q86y/view">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4408/aetolia-killing-sprees-unreal-tournament-style">Killing Sprees (Unreal Tournament)</a> by Akrios - <a rel="nofollow" href="https://drive.google.com/file/d/12UyP0iQsNmPkOOYKOVkH5aUKdnpfQVrB/view">Download!</a>
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/2780/valkyrior-system-mudlet">Valkyrior, Full System with GUI</a></del> by Evalyne - Unavailable, broken links
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4332/explorers-atlas">Atlas Exploration</a> by Akrios - <a rel="nofollow" href="https://drive.google.com/file/d/1I7XA0zznZwbKCiFZzWcVuQPgI3rsVKEv/view">Download!</a> (requires atlas arte power)
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4097/to-do-list">ToDo List</a> by Rhine - <a rel="nofollow" href="https://drive.google.com/uc?export=download&amp;id=1GpbUAy70VO32MzFQwRMvJ_yeFKWQm7ow">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4302/gradient-text-rainbow-text">Gradient Text</a> by Akrios - <a rel="nofollow" href="https://drive.google.com/file/d/1Nlsm3No9jHKEr5OpYn5S5QNJ2vbbaAGk/view">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4078/ylem-activity-level-logger">Ylem Activity Level Logger</a> by Sarran - <a rel="nofollow" href="https://drive.google.com/uc?id=1EWvdinfSfNq7pw2nrw9GqOrRJkZYhR4s&amp;export=download">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/3876/universal-throttle">Universal Throttle</a> by Lin - <a rel="nofollow" href="http://www.mercymyqueen.com/aetolia/Universal%20Throttle.mpackage">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/2961/gadget#latest">Gadget, Full System with GUI</a> by Galadriel - <a rel="nofollow" href="https://www.dropbox.com/s/g9zufsn8g0llk3x/GadgetTriggers.xml?dl=0">Triggers</a>, <a rel="nofollow" href="https://www.dropbox.com/s/993efqlga4wsuvk/GadgetAliases.xml?dl=0">Aliases</a>, <a rel="nofollow" href="https://www.dropbox.com/s/69bojjuwa1shdks/GadgetScripts.xml?dl=0">Scripts</a>
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/1344/fortress-for-mudlet-gui">Fortress, Full System with GUI</a></del> by Irruel - Unavailable, broken links, never finished(?)
<a rel="nofollow" href="https://forums.aetolia.com/discussion/1905/ylemlog-lifetime-tracker-mudlet">Ylem Lifetime Tracker</a> by Toz - <a rel="nofollow" href="https://www.dropbox.com/s/bfbjpi78f8sigtx/ylemtracker.trigger.xml?dl=0">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/1928/auto-rock-harvester-mudlet">Auto Rock Harvester</a> by Malok - <a rel="nofollow" href="https://www.dropbox.com/s/pld7otii5dd12g4/rockharvester.mpackage?dl=0">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/1958/auto-fishing-system-mudlet">Auto Fishing</a> by Malok - <a rel="nofollow" href="https://www.dropbox.com/s/f73udz23t8r46p2/Fishing%20System.mpackage?dl=0">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/2745/map-and-chat-capture">Map and Chat Capture</a> by Eowyn - <a rel="nofollow" href="https://forums.aetolia.com/discussion/2745/map-and-chat-capture">Download!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4686/teeny-tiny-auto-swim-trigger/">Teeny-Tiny Auto-Swim Trigger</a> by Arianwen - <a rel="nofollow" href="https://forums.aetolia.com/discussion/4686/teeny-tiny-auto-swim-trigger/">Grab it!</a>

<h2>Sparring Grounds Forum</h2>
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/777/xarians-free-system-redux">Redux, Full System with GUI</a></del> by Xarian - Unavailable, broken rar
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/4406/rime-the-pk-system-mjoll-gave-me">Rime, Full System with GUI</a></del> by Bulrok - Unavailable, no longer given out

<h2>Snippets</h2>

<a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) IC Missing Clean-Up</a> by Rhyot - <a rel="nofollow" href="https://ada-young.com/pastebin/pJzGCvjw">Snippet!</a><a>
</a><a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) Fishing Holes Checker</a> by Tirria - <a rel="nofollow" href="https://ada-young.com/pastebin/vHexQEa8">Snippet!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) IC Calendar w/Timezones</a> by Teani - <a rel="nofollow" href="https://ada-young.com/pastebin/Q0lmScXv">Snippet!</a>
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) Emote Previewer</a></del> by Tetcha - Unavailable, invalid ZIP
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) Accent Characters Script</a> by Tetcha - <a rel="nofollow" href="https://ada-young.com/pastebin/zKvSCdJ8">Snippet!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) Affliction Show Alias</a> by Aukan - <a rel="nofollow" href="https://ada-young.com/pastebin/vCvTAS27">Snippet!</a>
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) Night Pendant Chaser</a></del> by Kagura - Unavailable, invalid ZIP
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/4006/useful-qol-code">(QoL) Letter IDs on Letterlist</a></del> by Holbrook - Unavailable, invalid ZIP
<del><a rel="nofollow" href="https://forums.aetolia.com/discussion/2914/performer#latest">(QoL) Performer</a></del> by Vharen - Unavailable, broken link
<a rel="nofollow" href="https://forums.aetolia.com/discussion/2498/a-very-important-script#latest">Automated Roar Offence Output</a> by Mihaketi - <a rel="nofollow" href="https://ada-young.com/pastebin/pcvsAWhs">Snippet!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/1561/targetting#latest">Simple Targeting</a> by Elyni - <a rel="nofollow" href="https://ada-young.com/pastebin/ohGKBgTB">Snippet!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/209/the-razorbird-scriptorium">Lin's Extra Colors</a> by Lin - <a rel="nofollow" href="https://ada-young.com/pastebin/5FZX5Bjp">Snippet!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/209/the-razorbird-scriptorium">Lin's Iecho/Infoecho</a> by Lin - <a rel="nofollow" href="https://ada-young.com/pastebin/ds7jTSAH">Snippet!</a> (requires Lin's Extra Colors)
<a rel="nofollow" href="https://forums.aetolia.com/discussion/209/the-razorbird-scriptorium">Lin's Iecho/Infoecho</a> by Lin - <a rel="nofollow" href="https://ada-young.com/pastebin/-WeY2PR6">Snippet!</a> (doesn't require Lin's Extra Colors)
<a rel="nofollow" href="https://forums.aetolia.com/discussion/2781/small-solver-script-for-mudlet#latest">Solver Piece Script</a> by Mihaketi - <a rel="nofollow" href="https://ada-young.com/pastebin/FGN5Mcqd">Snippet!</a>
<a rel="nofollow" href="https://forums.aetolia.com/discussion/950/s-s-s-stutter-script-for-mudlet">S- S- S- Stutter Script</a> by Lin - <a rel="nofollow" href="https://pastebin.com/LfkQ1eUL">Snippet!</a>]]>
        </description>
    </item>
    <item>
        <title>Help Popup Module for Mudlet</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3938/help-popup-module-for-mudlet</link>
        <pubDate>Wed, 21 Apr 2021 15:40:15 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Tetchta</dc:creator>
        <guid isPermaLink="false">3938@/index.php?p=/discussions</guid>
        <description><![CDATA[Hey guys,

One of my favorite, and I mean <i>favorite</i> features of Nexus is that, if you look up a help file, it pops up in its own separate window. this makes reading files a snap. Instead of painfully scrolling up while bashing to try and read, you can literally just have a liddle window that overlays over everything and can be moved around at your convenience. 

When I first started getting into coding, I really wanted to emulate this feature, but it turns out it's <i>surprisingly tricky</i> to make work. Instead of piping help text into the GMCP table, Nexus instead uses a proprietary GMCP flag to remove the page length limits on generic help files, and then individually copy-pastes each line in the help file <i>into the window</i> and then deletes it from  your screen. It's a pain, and a bit goofy, but it works. I gave up on that project then, but came back to it now that I'm better at coding. A year later, I'm like, "Hey, I'm just dangerous enough to copy multiple lines and delete them." And mostly that's because I already had the code in my system to do that, because I shamelessly stole it verbatim from @Lin. 

Anyway, if you want it, here it is, a help popup window that's very similar to Nexus. It's actually better in some ways--mainly in that, since it's a UserWindow in Mudlet, you can actually move it all the way off your mudlet main window and completely out of the way. It works with MXP clickables, and I <i>think</i> I got all of the bugs out:
<img src="https://us.v-cdn.net/5020116/uploads/editor/87/shyk9n87nf40.png" alt="" />

There are a few settings you might want to tweak in the help_grabber script, mainly setBackgroundColor() setting if you have a color other than black as your background (it uses RGBA format), and setWindowWrap() if you find you want it to be narrower or wider to your tastes. 
<img src="https://us.v-cdn.net/5020116/uploads/editor/kr/y9lhk4z53aub.png" alt="" />

Other than that, I <i>think</i> this should be plug-and-play with any system out there, providing the system in question isn't already scraping command strings for help messages. ]]>
        </description>
    </item>
    <item>
        <title>RP Mode (WIP)</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/4323/rp-mode-wip</link>
        <pubDate>Fri, 25 Feb 2022 15:23:32 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Tetchta</dc:creator>
        <guid isPermaLink="false">4323@/index.php?p=/discussions</guid>
        <description><![CDATA[Hey everyone. Someone was wanting my help to make Mudlet's main output look a bit more like  Nexus's, which has linebreaks, hides excess prompts, and doesn't display your sent commands. Basically, it's less cluttered. Been working on it a few hours here and there, and thanks to @mjoll, I'm dubbing it "RP Mode." Here's an example of how it works:

<img src="https://us.v-cdn.net/5020116/uploads/editor/la/5a4uvnloz1k2.png" alt="" />
<b>It toggles on and off with "rpmode on" and "rpmode off" respectively.
</b>
This is mostly meant to make the onscreen experience more pleasurable while RPing. It has some quirks, which is why WIP is highlighted heavily in the title. It functions using a series of deleteLine() commands, since disabling command output stuff isn't (presently) possible via scripts in Mudlet, so this was the only way to get it to work in a toggleable way. I definitely wouldn't reject people workshopping this and getting it tighter. 

]]>
        </description>
    </item>
    <item>
        <title>Challenger Deep 0.5 (Public Release)</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3860/challenger-deep-0-5-public-release</link>
        <pubDate>Sun, 24 Jan 2021 04:34:04 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Lin</dc:creator>
        <guid isPermaLink="false">3860@/index.php?p=/discussions</guid>
        <description><![CDATA[Edit on <b>Jul 14th, 2022</b>:
Unfortunately the file attached to this post did not survive the forum changeover, and I no longer have a copy of it. If you are still insistent on trying Challenger Deep, you may have to ask around for a copy, at least until I can get one of my own and reinstate it in this post. Please also see Sunder and Rime for far more practical and newbie-friendly systems!





Hi! Today it's time for a new public release of Challenger Deep, the system I've been using since Mudlet became the new standard.

A long time ago, I released the first version of my system, not as some all-in-one PK solution or a generalized system like Sunder, but as a sort of reference project for aspiring system builders. It has been a constant source of pleasure and flattery for me that most of the systems in circulation today typically feature code pulled straight from the original edition of CD. I've insisted on doing things myself, figuring out what works best and what doesn't, and that policy remains to this day.

Given the frequency of discussions centered around crashing clients, heavy lag during fights, and other difficulties, I thought it'd be fun to push out the latest edition of my system, which doesn't suffer from those problems and never has!

I think that I'm ready to wipe the slate clean and rewrite this entire thing from scratch, so it's my pleasure to release Challenger Deep in its final form, at version 0.5. You can find the download at the bottom of this post.

<h2>Terms of Use</h2>

Challenger Deep is free to use, modify, and distribute. I try to be as permissive as I can about it. The only thing you <i>can't</i> do with my system is claim that you wrote it. Technically I guess you could sell it, but it's right here for free so you'd look like a real idiot.

However, this comes with a catch!

<span style="color: #FF0000;">This system is released with minimal support.</span> You get a readme file, a reference image so that you can tell whether or not the system looks right, and that's it. I will answer questions if need be, but I'm afraid I have no interest in providing live tech support. This system is for learning, but it may not necessarily be for newbies.

The best way to reach me is at Earthcrusher#0001 on Discord. Please don't bother me in-game with system questions!

<h2>What's the Big Deal About Challenger Deep?</h2>

<ul>
<li> CD was built to be as character-agnostic as possible. I can safely say I've reached the limit of what I can do without saving any information about you. The only data the system saves, at all, is Mudlet's internal color table (in case you modify it), and a module I wrote to track my area exploration progress.
</li><li> CD makes use of the "pulse", a 0.1s timer that raises a custom event by the same name. I learned early on that the pulse (or "heartbeat" as some have called it) was a vastly superior method to triggering off the prompt, being much more consistent and therefore predictable. It will burden your computer's resources the same amount at all times, rather than use a sudden spike of CPU as soon as you encounter spam.
</li><li> An optimized method of initializing the system and its table-based structure, one that won't forget things or suddenly break into pieces if you accidentally look at its script file or click on the wrong ones in some arcane order.
</li><li> The system ships with numerous extensions to Lua's libraries, including a fun little hack to give the language Python-style string substitution. <a rel="nofollow" href="https://forums.aetolia.com/discussion/2900/streamlined-string-formatting-with-metatables-clean-up-your-display-code#latest">More info on that here.</a>
</li><li> No hacky nonsense, no lazy workarounds. No spamming ent orders every balance or making sure you're mounted every single prompt. I have taken incredible pains to make sure the system doesn't do things until it <i>needs</i> to. The use of GMCP has been maximized so we don't have to do silly things like check INFO HERE. In the rare event that it has to resort to a cheap trick, I've hidden it the best I can, and ensured it won't slow things down.
</li><li> It includes a well-designed UI that displays information about your current room in a dynamic and extremely useful way. Once you've gotten used to the room info screen, it's hard to play without it.
</li><li> CD has the sexiest prompt replacer you have ever seen. I'm proud of it.
</li><li> Animated balance bars.
</li><li> Lovely replacements for certain game messages and displays. My custom displays have been ported to the actual game time and time again!
</li><li> Every single conceivable module in the system was given an optimization pass; any piece of code that runs without your say-so (read: triggers, scripts, anything but aliases) was written and rewritten until I could get the lowest possible execution time, all in accordance with Roberto Ierusalimschy's <i>Lua Performance Tips</i>, among other reference documents. And then I said screw it, and optimized most of the aliases too.
</li><li> The input throttling API makes the system virtually spam-proof.
</li></ul>

<h2>What You Will and Will Not Get</h2>

You will get:
<ul>
<li> A competent system that can bash, craft, get around pretty easily, and hold its own in team combat, all without breaking a sweat.
</li><li> Tons of little quality-of-life additions, cosmetic displays and even replacements, and more. A lot of these are outlined in the readme, but you can't go wrong with looking through the code.
</li><li> My own custom-written affliction tracking.
</li><li> Reasonable feature completeness (read: bashing and defup routines) for many classes in the game.
</li><li> The Terminus TTF for Windows font, which incidentally the system needs or it will look like garbage!
</li><li> A working prototype offensive routine for Shapeshifters.
</li></ul>

You will not get:
<ul>
<li> A fully-fledged combat system, or the advanced defensive strategies that come with it.
</li><li> Out-of-the-box functional autobashing for many defined classes. I overhauled the way bashing works, and several classes fell by the wayside. See the FAQ section of the readme for what to do about this - it's not that bad.
</li></ul>

<h2>Why Use Challenger Deep At All?</h2>

Truth be told, I don't expect you to. I'm releasing this system under the same premise as the last one - you can use it for learning, tinkering, or even simply ripping its guts out and Frankensteining them into your own work.

I partake or have partaken in nearly every activity in the game except for 1v1 PVP, an activity I see as increasingly niche and a little outmoded. Over ten years, this system has made these things very comfortable for me. It's a little weird getting used to someone else's setup, but if you're a casual player, Challenger Deep might have something you like.

<h2>Known Issues</h2>

<ul>
<li> First things first: the bashing. It's in a weird place. Several months ago, I rewrote it to finally use Aetolia's server-side queueing, and it hasn't been quite the same since. It stops on a dime as soon as you've cleared the room, but if you need to say, stop hitting the enemy to run, you're going to have a little trouble. If you're fighting things that probably won't kill you, it will run 100% perfectly.
</li><li> I attempted to automate Blackjack, and never got too far. It'll throw errors, but won't interrupt your game.
</li><li> I wrote the affliction tracking months ago, and have not updated it. If they've made any adjustments to afflictions, they are not in the system. It should be trivial to compensate.
</li><li> There is an outstanding bug when playing a new character going through the Academy, in which some rather frequent newbie hint message fires off the map capture window, and causes all further game input to route to that instead. If this happens, the only way to fix it is to restart the client. Recommend disabling the map capture until you're out of the Academy.
</li><li> From the standpoint of Mudlet itself, the system is very messy! The "API" folder isn't actually an API, it just contains a big assortment of utility functions and helper tables that could be folded into more sensible parts of the project. There are tons of unfinished modules and other bits and bobs sitting around. Much like the stereotype of plumbers whose pipes leak at home, I worked as hard as I can to keep things clean on the Lua side - the Mudlet side became a little neglected.
</li></ul>]]>
        </description>
    </item>
    <item>
        <title>Aetolia After Dark: A new, immersive Aetolia UI meant to make your game more exciting</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3914/aetolia-after-dark-a-new-immersive-aetolia-ui-meant-to-make-your-game-more-exciting</link>
        <pubDate>Thu, 08 Apr 2021 16:48:56 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Tetchta</dc:creator>
        <guid isPermaLink="false">3914@/index.php?p=/discussions</guid>
        <description><![CDATA[Hello! One of my pet projects/hobbies is making GUIs in Mudlet, and a few weeks ago I started a project with one goal: make Mudlet as pretty as possible. Something I always hated about using mudclients over, say, Nexus (even way back in the day of javaclient) was how much better Nexus looked compared to even the most hardcore coded systems by the most awesome people that play the game. And there's just something about that harsh black background that I find unimersive. I loved how Nexus thematically fits the MUD you're playing. So I said "screw it" and set out to make a UI that would match Nexus toe-for-toe when it came to aesthetics and immersion-building, and what I got was Aetolia After Dark:

<img src="https://us.v-cdn.net/5020116/uploads/editor/br/znpf48oiy2tj.png" alt="" />

This system builds on some ideas @Lin gave me from his system, mainly the utilization of Pulse events, which are fairly central to the structure of this system. I also just straight-up stole his map code. I think it looks pretty good, if I do say so myself. Anyway, here's what you'll get:
<ul>
<li> A fully-fuctional information display with hp, mana, willpower, endurance, and ylem reserves.
</li><li> dps, exp/hour, gold/hour, and commands-per-second display
</li><li> dynamic "who" list
</li><li> individualized comm channels that greatly reduce mistell risk
</li><li> a barely-useful inventory display
</li><li> something pretty to look at for once
</li></ul>
What is NOT included:
<ul>
<li> anything combat-related aside from a combat feed
</li><li> a defense list
</li><li> automated def-ups. I do have defups written for me, but it was well-outside the scope of this project for me to write dynamic defup code for every class
</li><li> target calling/following
</li><li> any autobashing
</li><li> The world's most efficient system. I'm a creative coder, but not the best. There's definitely things that could be optimized I'm sure.
</li></ul>

Little features I'm fond of: 
Gold/Exp-per-hour dot/line graphs: 
<img src="https://us.v-cdn.net/5020116/uploads/editor/6h/ibnhpknw7wmf.png" alt="" /><img src="https://us.v-cdn.net/5020116/uploads/editor/3z/99ln6s80rw1d.png" alt="" />


A character sheet: 
<img src="https://us.v-cdn.net/5020116/uploads/editor/fb/0cr5zwd1wb5b.png" alt="" />

<b>TERMS OF USE:</b>
You might have noticed that most of the assets are modifications from the video game Diablo. I did this without any legal concerns because I was just making it for myself, but now that I'm giving it to <i>y'all</i>, you probalby shouldn't be trying to profit from its distribution or you'll get destroyed legally. Otherwise, use is completely free. Modify at your own risk, I'm offering minimal support, if any. There's also a folder of fonts you'll want to install before running it.

<b>THINGS TO BE AWARE OF:</b>
At the very top there's a "GUI Options" script that's pretty small. This is something you'll want to take a look at upon opening, as it is how the WHO list is populated. I could have automated it, but that would've been a lot harder. In order to customized it to your character, you'll have to follow the instructions in the file. And if you have the death location relic for deathsight, there's an option to enable that in the deathsight window display. edit: lol of course because I added this last minute, it's slightly broken. If you want to turn it on, you have to navigate to Template -&gt;GUI-&gt;Right Panel Stuff-&gt;deathsight and delete the "local" before "death_location". That should fix it.

<b>READ THE README</b>

You'll want to run "startup config" upon installation to get your configs right, and the system <i>does</i> require one (1) restart in order to make sure all the colors and fonts are working correctly. 

I may update this UI with more features in the future (like clicky noises when buttons are clicked), but at the moment this is the release, bugs and all (though I've done my very best to make it as class/character agnostic as possible.) For the more visually-inclined, here's a video featuring some more of the features in action: 
https://www.youtube.com/watch?v=XgmdM6vmwAo

SPECIAL NOTES: 
<ul>
<li>You <i>MUST</i> have <b>Mudlet 4.11.2</b> or higher installed for it to work. It uses several features exclusive to this version and higher. If you do not update Mudlet, it'll freak the heck out.
</li><li>the UI scales fairly well to most layout sizes, but will only really optimally work if your monitor dimension are at least 1650x750 if you hide the Main Toolbar. Also it's not been tested fullscreen on a 4k monitor, some of the borders may not like that. 
</li></ul>

P.S. Please be nice. This is my first thing I've ever released at large and I'm still a fairly novice coder.]]>
        </description>
    </item>
    <item>
        <title>need android phone how to?</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3507/need-android-phone-how-to</link>
        <pubDate>Mon, 13 Apr 2020 19:03:38 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Verlina</dc:creator>
        <guid isPermaLink="false">3507@/index.php?p=/discussions</guid>
        <description><![CDATA[I wasn't sure whether to put this in tech talk or newbie.

I tried logging into the game for the first time yesterday and please keep in mind that I am playing from an android phone. How can I optimize the display for an android phone? I downloaded an app called Blowtorch. Do any class elementals use this system? 

Is there a better app to use? Is it impossible to play this game on a phone? I know this is an Aetolia forum, but are there other better games best suited for an android phone? 

Also for any names, I find that it is a bit hard to see what is listed for example any names with I and L are a bit confusing. 

I hope I didn't ask too much. I really like the game so far. Hope this takes away my boredom now that I'm working from home. ]]>
        </description>
    </item>
    <item>
        <title>Request for help in gathering some data (Mudlet)</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/4497/request-for-help-in-gathering-some-data-mudlet</link>
        <pubDate>Sat, 13 Aug 2022 21:58:12 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Irrillian</dc:creator>
        <guid isPermaLink="false">4497@/index.php?p=/discussions</guid>
        <description><![CDATA[Hello!

Most of you probably know me better as "demonnic" from various Mudlet related places, as it's been a while since I was particular active in any game. But I've been around, in the background, fiddling with things.

Anyway, the Mudlet team has been working on some exciting new features, but in the process realized: we have not done display performance benchmarking in ages. So we're working on that. But it also occurred to me that we should know what kind of spam and stress the Mudlet display is asked to deal with in the real world, so we have something to compare our performance benchmarks against, as otherwise we're just guessing if the numbers we get are any good or not.

Enter, the spamtabulator! When you turn it on, it counts the lines from the game until you turn it off, and then sends me how long it ran and how many lines it got in that time frame, and a couple other values calculated based on those two. 

If anyone is interested in helping, I made a <a rel="nofollow" href="https://forums.mudlet.org/viewtopic.php?f=5&amp;t=23158">Mudlet forum post</a> with more information.

Thanks in advance!]]>
        </description>
    </item>
    <item>
        <title>Aetolian Kill Medals (Featuring the Halo Announcer)</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/4407/aetolian-kill-medals-featuring-the-halo-announcer</link>
        <pubDate>Sun, 22 May 2022 23:31:51 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Tetchta</dc:creator>
        <guid isPermaLink="false">4407@/index.php?p=/discussions</guid>
        <description><![CDATA[Hi I was bored today and made a script that will award you medals based on kill streaks and multikills, featuring the Halo Announcer. 

Multikill:
https://youtu.be/RL8zYKDtUYs

Killing Spree:
https://youtu.be/ycMlexY5Kas

Caveats: I did minimal bug testing, it might break. Just a dumb thing I made. Also sorry Bene, you were the person I chose to test this with XD. Download below, just drag it into mudlet and it...<i>should</i> just work? Also the numbers aren't really adjusted to Aetolia, they're straight rips from Halo, so good luck ever getting 40 kills in a row.]]>
        </description>
    </item>
    <item>
        <title>Mudlet Help Desk</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/312/mudlet-help-desk</link>
        <pubDate>Tue, 19 Feb 2013 04:59:59 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Osmond</dc:creator>
        <guid isPermaLink="false">312@/index.php?p=/discussions</guid>
        <description><![CDATA[Not a lot of people used it in the last forums, but I am bringing this back.  So I am trying to create some buttons to toggle fucntions, so I am using geyser labels.  I can make the button and all that just fine, but I am having trouble with the setClickCallback function.  Here is what I am using<br /><br />[spoiler]<br />testlabel = Geyser.Label:new({&#13;
<p>  name = "testlabel",</p>&#13;
<p>  x = "1", y = 691,</p>&#13;
<p>  width = "85", height = "25",</p>&#13;
<p>  fgColor = "DodgerBlue",</p>&#13;
<p>  color = "navy",</p>&#13;
<p>  message = [[&lt;center&gt;Precache&lt;/center&gt;]]</p>&#13;
<p>})</p>&#13;
<p>setClickCallback("precache_off")</p>&#13;
<p><br /></p>&#13;
<p>function precache_off()</p>&#13;
<p>if osmosis.precache then</p>&#13;
<p>	send("i_off precache")</p>&#13;
<p>else</p>&#13;
<p>	send("i_on precache")</p>&#13;
<p>end</p><p>[/spoiler]</p><p><br /></p>This isn't working, anyone have any ideas?<br /><p><br /></p><br />]]>
        </description>
    </item>
    <item>
        <title>Fishing module.</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/2175/fishing-module</link>
        <pubDate>Sat, 26 Mar 2016 15:28:07 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Mihaketi</dc:creator>
        <guid isPermaLink="false">2175@/index.php?p=/discussions</guid>
        <description><![CDATA[Hello! This is a Mudlet package that automates some of the more annoying parts of fishing. It handles automatically leading/reeling in fish, casting and cutting. It also includes a means of automatically keeping track of fishing holes and pathing to them based on a short or incomplete string. The package requires GMCP for a couple of minor things (checking if you are mounted and tracking the room vnum).

What this module does <b>not</b> do:
<ul>
<li> Automatically keep track of fishing holes as you discover them - you need to enter FISHING DISCERN yourself for that.
</li><li> Intelligently lead or reel fish. I don't have the skill rank to have worked out an optimal algorithm for this yet. It just leads them to 0 and then spams reel.
</li><li> Track your bucket contents.
</li><li> Track XP or gold per fish or hole.
</li><li> Cut the line if you run out of fish to catch.
</li><li> Path automatically between fishing holes.
</li></ul>

<a rel="nofollow" href="https://dl.dropboxusercontent.com/u/16913760/img/aet_fishing_tracker.png">Here is an example of the output of the fishing hole tracker</a>.

Full syntax is as follows:
<ul>
<li> afish - Toggles autofishing on and off. If you are currently fishing and turn it off, it will cut the line
</li><li> fgo blah - Searches the fishing hole list for 'blah' (case insensitive) and returns results. If there is only one result, it will path you to that vnum.
</li><li> fishing search [full] blah - Lists matches for 'blah'. If full is specified, lists details such as fish count.
</li></ul>

Using 'fishing discern' will automatically add the fishing hole to your database and update the 'unfamiliar creatures' status if present or previously present and now gone.

This is the first time I have made a Mudlet package so feedback and advice is appreciated. Also, a final reminder: fishing generates XP and gold so you should be at the keyboard at all times while using this. Don't blame me if you get banned.

<a rel="nofollow" href="https://dl.dropboxusercontent.com/u/16913760/work/aet/aet_fishing.mpackage.zip">Here is a download link for the module</a>. You can install it by opening Mudlet, connecting to Aetolia, selecting Package Manager in the top menu, then Install, then navigating to the package.

Thanks!]]>
        </description>
    </item>
    <item>
        <title>Useful QoL Code</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/4006/useful-qol-code</link>
        <pubDate>Thu, 03 Jun 2021 17:52:17 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Rhyot</dc:creator>
        <guid isPermaLink="false">4006@/index.php?p=/discussions</guid>
        <description><![CDATA[Have you ever wanted something coded for some silly quality of life purpose? 

Have you never realized you wanted something because you never thought of it before, but the new script helps you a lot?? 

Have you made something you thought was a nice QoL script and think other people might enjoy it??

That's what this thread is for!! Useful quality of life code buckets to help make your Aetolia experience better.

-------------------------------------------------

To start, an IC deletion list based off of IC MISSING. I got tired of so many things bogging down what I felt was important to just look at with a quick IC MISSING, so I deleted it all. 

https://ada-young.com/pastebin/pJzGCvjw]]>
        </description>
    </item>
    <item>
        <title>Aetolia GUI</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3752/aetolia-gui</link>
        <pubDate>Sat, 14 Nov 2020 04:32:09 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Deva</dc:creator>
        <guid isPermaLink="false">3752@/index.php?p=/discussions</guid>
        <description><![CDATA[Hello, as promised on the Sunder Discord...
<b><i>eta: Make sure if you're using this with sunder, do disable Sunder's gui.</i></b>

Courtesy (and with permission) of Zulah, in Achaea, I have made his GUI work in Aetolia (may be a hiccup or two, I'm not yet 100% familiar with his code).

This is a suite of prebuilt movable, resizable, saveable, style-able, generally able individual windows. <a rel="nofollow" href="https://i.imgur.com/wp44Gcb.mp4">A short display of it can be seen here.</a>
Download is available <a rel="nofollow" href="https://drive.google.com/file/d/1uBlZ7_X3nlyVdiRg5AV5pwCkfHnZQR52/view?usp=sharing">here.</a>

<b>Right click on the menu bar area of any window to bring up the window options.</b>
<img src="https://i.imgur.com/5eiDJ39.jpg" alt="" />

<b>Double Click the area highlighted blue in this picture to switch the window back and forth from a userwindow to an adjustable window</b>
<img src="https://i.imgur.com/j5bglez.jpg" alt="" />

<b>If and WHEN you lose a window and can't find it. use zshow</b>

4 Aliases: ZSHOW and ZSTYLE being the most important:

    zgui - refreshes the entire gui. Should never need but included.
    zguis - Open this alias and change the font sizes you want to use for each window, Then run the alias to update
    zshow - Show a window you've closed or can no longer find for some reason.
    zstyle - Change the look of the gui, colors, borders, etc

I'd <b>strongly suggest</b> reading through <a rel="nofollow" href="https://forums.achaea.com/discussion/7391/mudlet-4-9-gui#latest">his actual thread here</a>, for more information.

Current Included Windows:

    Chat
    Map
    Balances
    Exp
    Logger
    Prompt window
    Allies
    Enemies
    Afflictions (currently not working)
    AffLock (also not yet working, soon!)
    Target Afflictions (Requires Sunder to function)
    Players in Room (Requires Sunder ndb, because it highlights the names. Easily adjustable, though.)
    Denizens in Room
    Items in Room

Screenshots (from Zulah):
<img src="https://i.imgur.com/sqrbaSV.jpg" alt="" />
My own setup in Aetolia: <img src="https://cdn.discordapp.com/attachments/555456094986829824/776338393423806474/unknown.png" alt="" />


]]>
        </description>
    </item>
    <item>
        <title>Toz&#39;s Intro to Coding</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/1577/toz-039-s-intro-to-coding</link>
        <pubDate>Wed, 10 Sep 2014 00:03:46 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Toz</dc:creator>
        <guid isPermaLink="false">1577@/index.php?p=/discussions</guid>
        <description><![CDATA[So, I've decided to write a basic guide for coding in MUDs. While it'll be Mudlet-oriented, the beginning bits will at least generalize to other clients as well (or so I assume). This isn't the only post I'll make (hopefully?) but it is going to be the first one for awhile (because man this took like an hour!) So, without further ado, here we go.

<b>Basic Coding Information</b>
I'd rather assume nothing, and leave nothing to chance. I'm sure this quick'n'dirty thing won't cover something - if you think of something easy that I missed, let me know and I'll add it!

Variables:
Think of it as a box. It stores a value for you. Variables are initialized in Mudlet by doing simply variableName = value. Some examples:
<code>
number = 13
text = "This is how you store a string of text!"
truefalse = true --true, false and nil are booleans. Nil means 'there's no value at all in here'.
number = text --This is how you'd copy a variable's value
</code>
If we want to COMPARE variables, we use ==
<code>
if text == number then
 
end
</code>

This brings us to our next topic...
Logic/Loops:
The statement exemplified above is an 'if' statement. It means exactly how it reads: IF the variable 'text' EQUALS the variable named 'number', THEN do whatever. And then it ends. You can do several other kinds of statements - loops. The most common one I use is the WHILE loop.
<code>
while text == number do
 
end
</code>
Please note that this will execute forever if text and number are the same, unless you have some way within the loop for that condition to no longer be true. And it will crash your Mudlet, and if you go have a cry I won't judge you because I do it all the damn time.

Math:
+ for addition, - for subtraction, * for multiplication and / for division. You can add/subtract/multiply/divide variables and numbers freely.

Wildcards:
Sometimes we don't know what's going to happen. Maybe Toz punches you in the face. Maybe it's Moirean. Maybe it's you punching yourself - maybe it was always you punching yourself. Do you have 1 gold, or 100000 gold? Did you swing an elegant rapier inlaid with rubies, or a short cudgel covered in grease? These questions would matter if it wasn't for wildcards - your new best friend.
If we need a placeholder for a single word?
<code>Toz punches you in the face.</code>
becomes
<code>(\w+) punches you in the face.</code>

What if it's two words? Or...or three words? OR MORE THAN THREE?!
<code>You suddenly feel like eating a giant pickle sundae.</code>
can be done as
<code>You suddenly feel like eating (.+)</code>

...Don't look now, but there's a number behind you!
<code>You have 2 sets.</code>
turns into
<code>You have (\d+) sets</code>
OR for extra credit,
<code>You have (\d+) (\w+)</code>
since you can have 1 set, or 2 set<b>s</b>

And now time to terrify you:
<code>A pack with 3000 gold is here.</code>
can become, simply
<code>A pack with (.*) is here.</code>
Be careful with (.+) and (.*) - they're REALLY grabby. Additionally, if you have a wildcard that you don't want to save for later? Just drop off the ()s and leave it as \w+ or whatever - they won't mind.

And now that you've crammed some value into your new best friend (remind me to never be friends with you), you're going to want to pull it out some time. I...hope. To do that, we're going to touch upon another topic briefly and then run away screaming: an array. An array is a bunch of boxes that exist in numbered order. And now we scream. And scream. And ok we're back - so the values we save from a trigger are stored in an array called matches[]. To reference a specific part of an array, we use the format arrayName[value]. So for matches, we'd do matches[1] to see the WHOLE LINE. Please note this, because it messes newbies up lots. If you want the FIRST VARIABLE YOU USED A WILDCARD FOR, use matches[2]. The 2nd variable is matches[3]. Etc. It's about as clear as mud to a newbie (heh, MUD/mud) - but if you remember it, you'll be ok.

I'm sure I've left something off from here, so lemme know and I'll add it. And now onto...

<b>The Big 3</b>
There are four aspects to coding within Mudlet. They are <i>Aliases</i>, <i>Triggers</i>, and <i>Scripts</i>. Before we go any further, it is important to know what these things are, so allow me to give an overview. I'll go a little more in-depth after each is explained, so if you're already solid on these feel free to skip ahead.

<b>Aliases</b>
An <i>alias</i> is nothing more than a shortcut. When you type in an alias into the input line, instead of sending the text to the MUD, it will execute the code. An example alias, and its output, is below:
<code>Alias: ^toz$

echo("Toz is our name.\n")
echo(".Eman rou si zoT")
</code>

<div><img src="https://us.v-cdn.net/5020116/uploads/editor/d5/71jkalkpidie.png" alt="" />
</div>
<div><img src="https://us.v-cdn.net/5020116/uploads/editor/9t/x4ikq54x3jml.png" alt="" />

</div>

What that will do, is any time I type in 'toz' into the input line, it will display the echoes. Specifically why that works (scripts!) is something coming up soon, but for now just know that it works - any time you type in something in the pattern line of an alias into the input line, it'll execute whatever is in the big box instead of sending what you typed in to the MUD.

<b>Triggers</b>
A <i>trigger</i> is almost the opposite of an alias. Whereas aliases are active things you type in, a trigger runs reactively. When the MUD sends you a line, Mudlet (or your client) will try to match the line against all the triggers you currently have, and if a match is found, it will run the code it is supposed to. An example
<div><img src="https://us.v-cdn.net/5020116/uploads/editor/nx/qgak17txvjjv.png" alt="" />
</div>
To explain the above, if the line 'Password correct. Welcome to Aetolia.' appears on your screen (as it does every time you login), you'll attempt to FARSEE TOZ. Mileage/hammerage may vary, depending on how often you log in, but I digress.

A discerning eye will notice a drop-down menu that I left strategically open, to the right of the trigger line. Just know that is there, for now - I'll get to what it does later!

<b>Script</b>
Ahh, <i>scripts</i>. You could go your entire life without ever using one, but that would also make me cry. It is the nature of problems to reoccur, with slightly different forms - so if you find yourself running into the same problem (as in, requiring the same code or similar code) over and over, you could simplify your life and put everything in a script!

<div><img src="https://us.v-cdn.net/5020116/uploads/editor/ne/da9t4t0dh0a9.png" alt="" />
</div>

A simple example of a real script I use is an infoEcho() - on the system I'm building, I like a pretty format display to come up on my screen that reads [CATS]: . So if I ran 

<code>infoEcho("The cake is a lie.") </code>

I would see 

<code>[CATS]: The cake is a lie. </code>

appear on my screen. Note the format for calling functions - it is functionName(things to send).  Multiple things to send (parameters) can be sent using functionName(parameter, parameter2, parameter3). You can send numbers, strings, even variables to a function!

So now that you've been properly introduced to aliases, triggers and scripts, we can move on to more advanced interplay between them. This post is already fairly long, so I'm going leave you in a cliffhanger of sorts - instead of doing advanced stuff, I'm going to underscore some things in case they aren't as clear as I want them to be. Then I'll review, wrap it up, and take a break from writing!

<b>Aliases 2: The Aliasing</b>
Sometimes it's not enough to just type my name into the input line - an unfortunate twist of fate. Sometimes we may want to have an alias work for many different things, because we are fundamentally lazy (and that's okay!); instead of making a million different aliases for every possible solution, I'm going to reference something from the beginning: wildcards.

That's right, your best friend wildcard is back, fresh from having the last value you crammed into them (and then promptly forgot about as you read the rest of this guide) removed with the jaws of life, and they're back for more. So first let's attach some anchors!

...What is an anchor? Glad I asked! An anchor is what you use to specify the BEGINNING and END of your alias. If you don't anchor your toz alias, any time you type toz EVER, it'll trigger. If you do ^toz$ instead, it'll only ever work if you type in 'toz' with nothing around it/no spaces. So from now on, whenever we work with aliases (OR TRIGGERS, sometimes), remember to slap some anchors on it so it doesn't float away. So let's have an example! What if we want to smack someone with our weapon? Well, using the magic of wildcards, picking your target is as simple as one alias!

<code>
alias: ^smack (\w+)$ --Notice, the wildcard!

send("draw smacker")
send("smack "..matches[2]) --Notice we use the wildcard!</code>

Now when we type in 'smack toz', you draw your smacker (...whatever that is), and smack me with it. But if you type in 'smack fallon', you'll hit them instead. Just use the appropriate wildcard for what you want to do, and you'll be okay!

<b>Triggers: <del>Tumblr Edition</del>Toz Edition</b>
So, we've touched upon wildcards in triggers before, but I'd like to take a moment to reinforce some basics, because that's important. When you work with triggers, anchor them. Or else they'll fly away and take your entire script with them! If you know the start of the line, lead your trigger with ^. If you know the whole line, wrap it up in ^ and $. If you only know the last few bits at the end, feel free to just use $ at the end - but remember to anchor as much as you can! 

Additionally, to make wildcards work with triggers, you'll need to set the type as PERL REGEX. You're using regular expression (REGEX) to capture via wildcards, so you have to let the client know. There are things in regex that exist as wildcard/functions that you may not want to be read as regex, as well - what if you wanted to (for whatever reason) trigger off seeing a '.*'? You're able to, using a backslash! \.\* tells regex to interpret those LITERALLY, that is, they're not a wildcard. They're just a dot then an asterisk.

<code>
^This is a valid trigger\.$
^(\w+) is this\.$
is valid too\!$
^I can do this too
I can even do this, but I shouldn't\.
</code>]]>
        </description>
    </item>
    <item>
        <title>Fireworks maker!</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/2547/fireworks-maker</link>
        <pubDate>Wed, 12 Apr 2017 15:46:09 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Aishia</dc:creator>
        <guid isPermaLink="false">2547@/index.php?p=/discussions</guid>
        <description><![CDATA[@Hadoryu Fixed this up again!! 

LINK HERE: https://www.dropbox.com/s/nyuw3qnfmm0r1lq/fireworks.jar?dl=0]]>
        </description>
    </item>
    <item>
        <title>Web Client Down?</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3812/web-client-down</link>
        <pubDate>Sat, 19 Dec 2020 07:21:37 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Yvo</dc:creator>
        <guid isPermaLink="false">3812@/index.php?p=/discussions</guid>
        <description><![CDATA[I haven't been able to open the web client for a few hours now. Does anyone know when it will be back up? It seemed to be IRE wide when I tried earlier.]]>
        </description>
    </item>
    <item>
        <title>Sunder</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/2850/sunder</link>
        <pubDate>Sun, 06 May 2018 00:57:23 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Jory</dc:creator>
        <guid isPermaLink="false">2850@/index.php?p=/discussions</guid>
        <description><![CDATA[Hey everyone, I've been working on a system I call Sunder since I started. It began as something just for me, but I quickly started sharing it with other templars, and then when we realized how darn powerful the functionality to track and call afflictions in a uniform manner was, suddenly I was adding other classes and now it's grown into something that works pretty much across the board.

I've been happily sharing Sunder with anyone who asks for a while now, regardless of class/faction, but I've been getting a lot more people asking about it or needing help recently, so I wanted to put it out here publicly for anyone and in a place where I can more readily respond to frequent questions and stuff instead of having to repeat instructions and what have you to each individual.

So! Here's a public link to a dropbox folder. There's a sunder.trigger in there, along with several .txt files with the important information like how to install and set up Sunder, how to update, and so on. I'll try to remember to post here when I update! The folder link will remain static, so when I do push an update you'll just go to the same one and download the new sunder.trigger inside it.

Let me know if there's any questions, or if something's broken or unclear! My biggest goal with Sunder is to make it as newbie-friendly as possible, to help lower the entry barrier on PvP and get more people out there playing with us! If there's something in the way of that, or something I could change to do it better, I definitely want to know.]]>
        </description>
    </item>
    <item>
        <title>Swarm</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3690/swarm</link>
        <pubDate>Sun, 16 Aug 2020 22:27:38 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Lemongrab</dc:creator>
        <guid isPermaLink="false">3690@/index.php?p=/discussions</guid>
        <description><![CDATA[I forgot to mention this before I locked myself out of my actual accounts, so I'm going to say it with this one.

While I recognize there's nothing I can do to enforce this, I hereby revoke permission for players of Aetolia to use the collection of scripts known as 'Swarm'. You're no longer authorized to use or distribute the scripts in any form, either as an add-on or as part of another system (e.g. Sunder). They're my original work and intellectual property, for which I've never been compensated or entered a contractual agreement to provide, so I believe this is well within my rights.

Thank you, and ta-ta.
Hawa / Vyxsis / author of Swarm]]>
        </description>
    </item>
    <item>
        <title>MUSHclient Help Desk</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/914/mushclient-help-desk</link>
        <pubDate>Sat, 02 Nov 2013 14:52:10 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Kikon</dc:creator>
        <guid isPermaLink="false">914@/index.php?p=/discussions</guid>
        <description><![CDATA[So I thought I'd open up a thread for MUSHclient help, since everyone else has one and us minorities need some love too. If you have a question specific to MUSHclient, feel free to ask it here and I'll check through and answer what I can.<br /><br />Your questions can be as pathetically simple or stupidly complex as you'd like, I'll try my best to answer in a fashion that helps you out!<br />]]>
        </description>
    </item>
    <item>
        <title>Small Coding Questions</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/111/small-coding-questions</link>
        <pubDate>Sun, 09 Dec 2012 20:32:11 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Arbre</dc:creator>
        <guid isPermaLink="false">111@/index.php?p=/discussions</guid>
        <description><![CDATA[This is mainly so Theosomething will quit making new threads.  &gt;.&gt;<br />And because we used to have one before.<br />]]>
        </description>
    </item>
    <item>
        <title>Iron Realms Open Source Mudlet GUI</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3053/iron-realms-open-source-mudlet-gui</link>
        <pubDate>Fri, 25 Jan 2019 21:43:30 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Razmael</dc:creator>
        <guid isPermaLink="false">3053@/index.php?p=/discussions</guid>
        <description><![CDATA[Hello Aetolians!

I am pleased to announce the inception of a new project targeting the second largest userbase in IRE (after Nexus): Mudlet!

With initial help from the Mudlet community (and a special shout out to Vadi), we have created the framework for an open source Mudlet gui!

The intention of this GUI is to mimic, as much as possible, the functionality provided by our Nexus client. To-date, we have the GUI Windowing framework, but not implemented the internals of any of the tabs. That's where the community comes in!

You can find the project <a rel="nofollow" href="https://github.com/IronRealms/MudletUI">here</a>! Fork the project, add functionality, and then create a pull request! After submission, your pull request will be reviewed by the IRE person that's running this project.

If you implement functionality outside of the functionality available in Nexus, your pull request may be rejected - our goal is to have a package that lets people jump into the game, but not give them a particular advantage over out-of-the-box Nexus users.

Once the project has a good amount of functionality implemented, it will be available for automatic installation via an in-game command.

If you have any questions, feel free to post here, open tickets on the project, or send any e-mail to the project's head at eoghan (at) imperian (dot) com.

Happy coding! ]]>
        </description>
    </item>
    <item>
        <title>Linux/Mac terminal client - Blightmud</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3572/linux-mac-terminal-client-blightmud</link>
        <pubDate>Tue, 26 May 2020 07:44:33 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Zoglin</dc:creator>
        <guid isPermaLink="false">3572@/index.php?p=/discussions</guid>
        <description><![CDATA[Hey people. Old player, not active at all these days. Mostly just logging in to test client stuff. Writing clients seems to take away playing time. Who'd have known?

Anywho, when I was active some years ago I always enjoyed Tinyfugue which is an "in terminal" client with a powerful but awkward scripting language. I liked it so much that I always had the idea to create my own client like that but with a more "standard" scripting language.

Along came the pandemic and I found myself looking into it.

So now I'm presenting "Blightmud", find it <a rel="nofollow" href="https://github.com/LiquidityC/Blightmud">here</a>.

It's written in the Rust programming language which makes it "memory safe" and lightning fast. It works great for all of the IRE muds (GMCP, MCCP2 support).
Some people have started using it but none from an IRE game as far as I know. If you have some linux skills then please check it out. I need bug reports and suggestions to keep going. If you have some Rust skills then you're more then welcome to get into the code. It's fairly easy to follow (because it's Rust).

Cheers]]>
        </description>
    </item>
    <item>
        <title>Small Mudlet scripts</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3569/small-mudlet-scripts</link>
        <pubDate>Sat, 23 May 2020 16:35:47 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Teani</dc:creator>
        <guid isPermaLink="false">3569@/index.php?p=/discussions</guid>
        <description><![CDATA[I thought I'd share a few small things I made for Mudlet that just looks neat and can be of some use to people. The only reason they are in Pastebin is because I use color tags, and they do not translate when writing these posts for some reason. If someone lets me know how, I'll edit the post and put them in!

Having trouble with date/time conversion? Here's a small script with the more common timezones and how they correspond to the Aetolian weekdays. (Note OZ = Australia, KIWI = New Zealand)

https://pastebin.com/WGDJ4YXc


The colors can be removed by taking out all  markers. You can also change the color names if you do not have the proper ones scripted.

--------------------------------

If you want the full color table I use, this is it. Just put it in a script, and you have it too.

<div>color_table = {
AliceBlue             = {240, 248, 255},
alice_blue             = {240, 248, 255},
amaranth              = {159, 43, 104},
amber                 = {255, 191, 0},
amethyst              = {153, 102, 204}, 
AntiqueWhite          = {250, 235, 215},
antique_white          = {250, 235, 215},
apple                 = {141, 182, 0},           
aqua                  = {2, 132, 130} ,           
aquamarine            = {127, 255, 212},
ash                   = {178, 190, 181},
azure                 = {51, 102, 153},
BabyBlue              = {137, 207, 240},
beige                 = {245, 245, 220},
bisque                = {255, 228, 196},
black                 = {0, 0, 0},
BlanchedAlmond        = {255, 235, 205},
blanched_almond        = {255, 235, 205},
blood                  = {138, 7, 7},
blue                  = {0, 0, 255},
BlueGray              = {102, 153, 204},
blue_gray              = {102, 153, 204},
blue_grey              = {102, 153, 204},
BlueGreen             = {13, 152, 186},
blue_green             = {13, 152, 186},
BlueViolet            = {138, 43, 226},
blue_violet            = {138, 43, 226},
bronze                = {205, 127, 50},
brown                 = {165, 42, 42},
burgundy              = {144, 0, 32},
burlywood             = {222, 184, 135},
BurntOrange           = {204, 85, 0},
burnt_orange           = {204, 85, 0},
CadetBlue             = {95, 158, 160},
cadet_blue             = {95, 158, 160},
cardinal              = {196, 30, 58},
carmine               = {150, 0, 24},
carnelian             = {179, 27, 27},
cerise                = {222, 49, 99},
cerulean              = {0, 123, 167},
charcoal              = {54, 69, 79},
chartreuse            = {127, 255, 0},
chestnut              = {149, 69, 53},
chocolate             = {123, 36, 0},
citrine               = {228, 208, 10},
cobalt                = {0, 71, 171},
cold_black            = {0, 46, 99},
copper                = {184, 115, 51},
coral                 = {255, 127, 80},
CornflowerBlue        = {100, 149, 237},
cornflower_blue        = {100, 149, 237},
cornsilk              = {255, 248, 220},
cream                 = {255, 253, 208},
crimson               = {220, 20, 60},
cyan                  = {0, 255, 255},
DarkBlue              = {0, 0, 139},
dark_blue              = {0, 0, 139},
DarkGoldenrod         = {184, 134, 11},
dark_goldenrod         = {184, 134, 11},
DarkGreen             = {0, 100, 0},
dark_green             = {0, 100, 0},
dark_khaki             = {189, 183, 107},
DarkKhaki             = {189, 183, 107},
dark_olive_green        = {85, 107, 47},
DarkOliveGreen        = {85, 107, 47},
dark_orange            = {255, 140, 0},
DarkOrange            = {255, 140, 0},
dark_orchid            = {153, 50, 204},
DarkOrchid            = {153, 50, 204},
dark_red               = {139, 0, 0},
DarkRed               = {139, 0, 0},
dark_salmon            = {233, 150, 122},
DarkSalmon            = {233, 150, 122},
dark_sea_green          = {143, 188, 143},
DarkSeaGreen          = {143, 188, 143},
DarkSlateBlue         = {72, 61, 139},
dark_slate_blue         = {72, 61, 139},
DarkSlateGray         = {47, 79, 79},
dark_slate_gray         = {47, 79, 79},
dark_slate_grey         = {47, 79, 79},
DarkTurquoise         = {0, 206, 209},
dark_turquoise         = {0, 206, 209},
DarkViolet            = {148, 0, 211},
dark_violet            = {148, 0, 211},
DeepPink              = {255, 20, 147},
deep_pink              = {255, 20, 147},
DeepSkyBlue           = {0, 191, 255},
deep_sky_blue           = {0, 191, 255},
dim_gray               = {105, 105, 105},
dim_grey               = {105, 105, 105},
DimGray               = {105, 105, 105},
dodger_blue            = {30, 144, 255},
DodgerBlue            = {30, 144, 255},
earthy                = {225, 169, 95},
ebony                 = {85, 93, 80},
eggplant              = {97, 64, 81},
emerald               = {80, 200, 120},
fallow                = {193, 154, 107},
fawn                  = {229, 170, 112},
fern                  = {113, 188, 120},
firebrick             = {178, 34, 34},
flaxen                = {238, 220, 130},
FloralWhite           = {255, 250, 240},
floral_white           = {255, 250, 240},
ForestGreen           = {1, 68, 33},
forest_green           = {1, 68, 33},
fuchsia               = {199, 67, 117},
gainsboro             = {220, 220, 220},
garnet                = {135, 7, 31},
GhostWhite            = {248, 248, 255},
ghost_white            = {248, 248, 255},
gold                  = {212, 175, 55},
golden                = {240, 169, 10}, 
goldenrod             = {218, 165, 32},
gray                  = {190, 190, 190},
grey                  = {190, 190, 190},
green                 = {0, 255, 0},
GreenYellow           = {173, 255, 47},
green_yellow           = {173, 255, 47},
honeydew              = {240, 255, 240},
HotPink               = {255, 105, 180},
hot_pink               = {255, 105, 180},
hunter_green           = {53, 94, 59},
HunterGreen           = {53, 94, 59},
IndianRed             = {205, 92, 92},
indian_red             = {205, 92, 92},
indigo                = {75, 0, 130},
iris                  = {138, 43, 226},
ivory                 = {255, 255, 240},
jade                  = {0, 168, 107},
jet_black             = {5, 0, 2},
kawhe                 = {111, 78, 55},
khaki                 = {240, 230, 140},
lavender              = {181, 126, 220},
LavenderBlush         = {255, 240, 245},
lavender_blush         = {255, 240, 245},
lawn_green             = {124, 252, 0},
LawnGreen             = {124, 252, 0},
lemon                 = {255, 244, 79},
lemon_chiffon          = {255, 250, 205},
LemonChiffon          = {255, 250, 205},
LightBlue             = {173, 216, 230},
light_blue             = {173, 216, 230},
LightCoral            = {240, 128, 128},
light_coral            = {240, 128, 128},
LightCyan             = {224, 255, 255},
light_cyan             = {224, 255, 255},
LightGoldenrod        = {238, 221, 130},
light_goldenrod        = {238, 221, 130},
LightGoldenrodYellow  = {250, 250, 210},
light_goldenrod_yellow  = {250, 250, 210},
LightGray             = {211, 211, 211},
light_gray             = {211, 211, 211},
light_grey             = {211, 211, 211},
LightPink             = {255, 182, 193},
light_pink             = {255, 182, 193},
LightSalmon           = {255, 160, 122},
light_salmon           = {255, 160, 122},
LightSeaGreen         = {32, 178, 170},
light_sea_green         = {32, 178, 170},
LightSkyBlue          = {135, 206, 250},
light_sky_blue          = {135, 206, 250},
LightSlateBlue        = {132, 112, 255},
light_slate_blue        = {132, 112, 255},
LightSlateGray        = {119, 136, 153},
light_slate_gray        = {119, 136, 153},
light_slate_grey        = {119, 136, 153},
LightSteelBlue        = {176, 196, 222},
light_steel_blue        = {176, 196, 222},
LightYellow           = {255, 255, 224},
light_yellow           = {255, 255, 224},
lilac                 = {220, 208, 255},
lime                   = {50, 205, 50},
lime_green             = {50, 205, 50},
LimeGreen             = {50, 205, 50},
linen                 = {250, 240, 230},
madder                = {118, 79, 82},
magenta               = {255, 0, 255},
mahogany              = {192, 64, 0},
maroon                = {128, 0, 0},
mauve                 = {224, 176, 255},
medium_aquamarine      = {102, 205, 170},
MediumAquamarine      = {102, 205, 170},
medium_blue            = {0, 0, 205},
MediumBlue            = {0, 0, 205},
medium_orchid          = {186, 85, 211},
MediumOrchid          = {186, 85, 211},
medium_purple          = {147, 112, 219},
MediumPurple          = {147, 112, 219},
medium_sea_green        = {60, 179, 113},
MediumSeaGreen        = {60, 179, 113},
medium_slate_blue       = {123, 104, 238},
MediumSlateBlue       = {123, 104, 238},
medium_spring_green     = {0, 250, 154},
MediumSpringGreen     = {0, 250, 154},
medium_turquoise       = {72, 209, 204},
MediumTurquoise       = {72, 209, 204},
medium_violet_red       = {199, 21, 133},
MediumVioletRed       = {199, 21, 133},
midnight_blue          = {25, 25, 112},
MidnightBlue          = {25, 25, 112},
mint                  = {62, 180, 137},
mint_cream             = {245, 255, 250},
MintCream             = {245, 255, 250},
misty_rose             = {255, 228, 225},
MistyRose             = {255, 228, 225},
moccasin              = {255, 228, 181},
moss_green            = {173, 223, 173},
MossGreen             = {173, 223, 173},
mustard               = {255, 219, 88},
navajo_white           = {255, 222, 173},
NavajoWhite           = {255, 222, 173},
navy                  = {0, 0, 128},
obsidian              = {52, 54, 55},
ocean_blue             = {28, 169, 201},
OceanBlue             = {28, 169, 201},
old_lace               = {253, 245, 230},
OldLace               = {253, 245, 230},
olive                 = {174, 176, 93},
olive_drab             = {107, 142, 35},
OliveDrab             = {107, 142, 35},
onyx                  = {53, 56, 57},
orange                = {255, 127, 0},
orange_red             = {255, 69, 0},
OrangeRed             = {255, 69, 0},
orange_yellow          = {255, 159, 0},
OrangeYellow          = {255, 159, 0},
orchid                = {218, 112, 214},
pale_goldenrod         = {238, 232, 170},
PaleGoldenrod         = {238, 232, 170},
pale_green             = {152, 251, 152},
PaleGreen             = {152, 251, 152},
pale_turquoise         = {175, 238, 238},
PaleTurquoise         = {175, 238, 238},
pale_violet_red         = {219, 112, 147},
PaleVioletRed         = {219, 112, 147},
papaya_whip            = {255, 239, 213},
PapayaWhip            = {255, 239, 213},
peach                 = {255, 229, 180},
peach_puff             = {255, 218, 185},
PeachPuff             = {255, 218, 185},
peacock               = {35, 179, 231},
pear                  = {209, 226, 49},
periwinkle            = {204, 204, 255},
peru                  = {205, 133, 63},
pink                  = {255, 192, 203},
plum                  = {142, 69, 133},
pomegranate           = {242, 31, 31},
powder_blue            = {176, 224, 230},
PowderBlue            = {176, 224, 230},
purple                = {128, 0, 128},
red                   = {255, 0, 0},
rose                  = {255, 0, 127},
rosy_brown             = {188, 143, 143},
RosyBrown             = {188, 143, 143},
royal_blue             = {65, 105, 225},
RoyalBlue             = {65, 105, 225},
ruby                  = {224, 17, 95},
ruddy                 = {187, 101, 40},
russet                = {128, 70, 27},
rust                  = {183, 65, 14},
sable                 = {62, 53, 38},
saddle_brown           = {139, 69, 19},
SaddleBrown           = {139, 69, 19},
saffron               = {244, 196, 48},
salmon                = {250, 128, 114},
sand                  = {194, 178, 128},
sandy_brown            = {244, 164, 96},
SandyBrown            = {244, 164, 96},
sanguine              = {108, 55, 54},
sapphire              = {15, 82, 186},
scarlet               = {255, 36, 0},
sea_green              = {46, 139, 87},
SeaGreen              = {46, 139, 87},
seashell              = {255, 245, 238},
sepia                 = {112, 66, 20},
sienna                = {160, 82, 45},
silver                = {192, 192, 192},
sky_blue               = {135, 206, 235},
SkyBlue               = {135, 206, 235},
slate_blue             = {106, 90, 205},
SlateBlue             = {106, 90, 205},
slate_gray             = {112, 128, 144},
slate_grey             = {112, 128, 144},
SlateGray             = {112, 128, 144},
sloe_black            = {0, 10, 51},
sloe_blue             = {82, 118, 137},
smoke                 = {245, 245, 245},
smoky                 = {95, 95, 95},
snow                  = {255, 250, 250},
spring_green           = {0, 255, 127},
SpringGreen           = {0, 255, 127},
steel                 = {123, 144, 149},
steel_blue             = {70, 130, 180},
SteelBlue             = {70, 130, 180},
straw                 = {228, 217, 111},
sunglow               = {255, 204, 51},
sunset                = {253, 94, 83},
tan                   = {210, 180, 140},
tawny                 = {205, 87, 0},
teal                  = {0, 128, 128},
thistle               = {216, 191, 216},
tomato                = {255, 99, 71},
turquoise             = {64, 224, 208},
umber                 = {99, 81, 71},
verdigris             = {26, 70, 68},
vermilion             = {227, 66, 52},
violet                = {127, 0, 255},
violet_red             = {208, 32, 144},
VioletRed             = {208, 32, 144},
viridian              = {64, 130, 109},
WarmBlack             = {0, 66, 66},
warm_black             = {0, 66, 66},
wheat                 = {245, 222, 179},
white                 = {255, 255, 255},
white_smoke            = {245, 245, 245},
WhiteSmoke            = {245, 245, 245},
wine                  = {114, 47, 55},
woad_blue              = {23, 23, 63},
WoadBlue              = {23, 23, 63},
yellow                = {255, 255, 0},
yellow_green           = {154, 205, 50},
YellowGreen           = {154, 205, 50},
}</div>

And for a neat display of all the colors, simply add this alias:

https://pastebin.com/vU4kLnCN]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.8 - Drag and drop packages, custom cursors, and amazing maps</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3518/mudlet-4-8-drag-and-drop-packages-custom-cursors-and-amazing-maps</link>
        <pubDate>Sat, 02 May 2020 17:32:17 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Vadi2</dc:creator>
        <guid isPermaLink="false">3518@/index.php?p=/discussions</guid>
        <description><![CDATA[
<p>This is an amazing release that adds drag and drop packages, custom cursors, draggable labels and more! Mudlet is now more powerful than ever for building stunning, modern interfaces for MUDs.</p>



<h2>Drag and drop packages</h2>



<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>
<a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/04/drag-and-drop-package-install.gif"><img src="https://www.mudlet.org/wp-content/uploads/2020/04/drag-and-drop-package-install.gif" alt="" width="1513" height="851" /></a> Credit: <a rel="nofollow" href="https://forums.mudlet.org/viewtopic.php?f=6&amp;t=22728">Eraene's DarkTheme</a>



<p>Along with this comes a <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Event_Engine#sysDropEvent">sysDropEvent</a>, so you can code a custom action when a file is dropped into Mudlet. If 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>
<h2>Carrion Fields added</h2>
<p><a rel="nofollow" href="http://www.carrionfields.net/">This game</a> has put together a seriously impressive Mudlet package and we're honoured to have them added to Mudlet officially! Double-click on CF in the Connection screen to play :)</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_591.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_591-1024x572.png" alt="" width="1024" height="572" /></a> </p>
<p><span data-code-marker="+">Carrion Fields is a unique blend of high-caliber roleplay and complex, hardcore player-versus-player combat that has been running continuously, and 100% free, for over 25 years.</span></p>
<p><span data-code-marker="+">Choose from among 21 races, 17 highly customizable classes, and several cabals and religions to suit your playstyle and the story you want to tell. Our massive, original world is full of secrets and envied limited objects that take skill to acquire and great care to keep.</span></p>
<p><span data-code-marker="+">We like to think of ourselves as the Dark Souls of MUDs, with a community that is supportive of new players - unforgiving though our world may be. Join us for a real challenge and real rewards: adrenalin-pumping battles, memorable quests run by our volunteer immortal staff, and stories that will stick with you for a lifetime.</span></p>



<h2>Adjustable Containers</h2>
<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> are in as well! What does it mean? It means labels/miniconsoles that you can move around and reposition just by dragging! No code needed.</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/adjustable-container.gif"><img src="https://www.mudlet.org/wp-content/uploads/2020/05/adjustable-container.gif" alt="" width="1457" height="739" /></a></p>
<p>Try this code in Mudlet:</p>
<pre>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>
<h2>Search within the script</h2>
<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>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_583.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_583.png" alt="" width="818" height="255" /></a></p>
<p>He didn't just stop there either - you can now toggle whenever you'd like to search within variables, default off so it's quicker:</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Workspace-1_585.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/05/Workspace-1_585.png" alt="" width="356" height="176" /></a></p>
<h2>CP437 encoding now supported</h2>
<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 :)</p>
<p><a rel="nofollow" href="https://user-images.githubusercontent.com/62970949/80146038-2a957480-857f-11ea-860e-e127feeec9c1.JPG"><img src="https://user-images.githubusercontent.com/62970949/80146038-2a957480-857f-11ea-860e-e127feeec9c1.JPG" alt="CP437 encoding with a custom font" width="1334" height="938" /></a></p>
<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>
<h2>Custom cursors</h2>
<h2>

</h2>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/custom-cursors-demo.gif"><img src="https://www.mudlet.org/wp-content/uploads/2020/05/custom-cursors-demo.gif" alt="" width="701" height="307" /></a></p>
<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 :)</p>
<p>Big thanks to Edru for adding these in.</p>
<h2>New API features</h2>



<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>
<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>
<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>
<p>Edru also improved on the userwindows - you can now choose whenever they should be popped out or docked at start, and if docked, which area should they be in. Autodocking while dragging can now be disabled, too!</p>
<p>A few more improvements are also present - see the full changelog below.</p>



<h2>Geyser:show() fixed</h2>
<p>As mentioned <a rel="nofollow" href="https://www.mudlet.org/2020/03/4-6-geyser-geyser-geyser/">two months ago</a>, we've fixed an issue where you could still :show() the child of a hidden container. If your UI relied on this broken behaviour, make sure to update it!</p>
<h2>Script editor sizes</h2>



<p>Alias/trigger/script editors are no longer huge by default, and they'll remember their sizes as well. Thanks to dicene for covering this off!</p>
<h2>Polish translation ⭐</h2>
<p>Big thanks to mwarzec for translating the entirety of Mudlet into Polish! In his own words, it was possible thanks to:</p>
<p>home.. sweet home.. and no reasons to go outside..</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_589.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_589-1024x329.png" alt="" width="1024" height="329" /></a></p>
<p>&nbsp;</p>



<h2>Did I miss 4.7?</h2>



<p>We skipped 4.7 because that was the <a rel="nofollow" href="https://mudlet.org/4-7">April Fools</a> version ;)</p>



<h2>Credits</h2>



<p>Thanks to all coders who made this release amazing! atari2600tim, Damian Monogue, Edru2, gcms, Ian Adkins, Jim Tryon, Kebap, keneanung, Mike Conley, Richard Moffitt, Slobodan Terzić, Stephen Lyons, and Vadim Peretokin.</p>



<p>Thanks to all translators: DarkApocalypse , Dawid Chomaniuk (pd.chomaniuk), Jelle Z. (jelle619), Leris, Marco "M0lid3us" Tironi (wiploo), mwarzec, vingi, and thomazleventhal for their work in this.</p>



<h2>Changelog</h2>



<p><strong>added:</strong></p>



<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>



<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 at all was using the function and it wasn't needed, so no backwards compat is broken</li>
</ul>



<p><strong>fixed:</strong></p>



<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>
<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>







<a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_588.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/05/Selection_588.png" alt="" width="910" height="602" /></a> This is just half of what went into this two-month release. Seems interesting? Join our team! All are welcome :)
]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.7 – Here come the MIB</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3483/mudlet-4-7-here-come-the-mib</link>
        <pubDate>Wed, 01 Apr 2020 06:31:35 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Vadi2</dc:creator>
        <guid isPermaLink="false">3483@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Mudlet has regularly brought forward new standards towards the decades long standing art of text games, and will continue to do so with this release as well. We also have a few improvements and information for special groups of users.</p>
<h2 id="mud-information-broadcasts">Mud Information Broadcasts</h2>
<p>Thanks to demonnic, games can now send short information bits to their players at any time, next to the regular text flow. While this has been possible with <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Supported_Protocols#GMCP">the GMCP standard</a> for quite some time, those messages would mostly stay under the surface, and need to be handled by coders and UI packages alike.</p>
<p>This new MIB standard however will be displayed directly to players in their known Mudlet window and style. This can be used as an easy starter GUI for new games, but also allows additional types of content to be shown to users.</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/03/MIB.gif"><img src="https://www.mudlet.org/wp-content/uploads/2020/03/MIB.gif" alt="" /></a></p>
<p>Sounds interesting? <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Geyser">Check out the docs</a> on how to get started.</p>
<h2 id="text-gaming-with-younger-players">Text gaming with younger players</h2>
<p>As more and more new players are trying text games, we have received reports from concerned parents about some rather dark games out there. Therefore, to protect our young players, all new versions of Mudlet will come with an explicit profanity filter enabled from the start.</p>
<p>The filter will remove or replace a list of vulgar words and phrases from these games. We won’t go into details here. You know what we mean. Disabling the filter will not be a simple check box in preferences either, as children may still find these too easily. Instead, you will receive the secret code in <a rel="nofollow" href="https://discord.gg/73M8NbG">our Mudlet Discord</a> after a simple age check by using the command <strong>!code I am over 18 years old</strong>.</p>
<h2 id="simplified-languages">Simplified Languages</h2>
<p>This month, the Chinese translation of Mudlet has received their golden star ⭐ as it approached 100% completion. Meanwhile, there is still some work to do on the Chinese variant used in Taiwan, Hong Kong, etc. As all this political detail may be too confusing to foreigners, these languages are simply called &quot;Chinese (Traditional)&quot; and &quot;Chinese (Simplified)&quot; in the Mudlet language selector.</p>
<p>Mudlet continues to gain more and more international users due to the <a rel="nofollow" href="https://mudlet.org/translation">ongoing translation work</a>. We will now also simplify away the histories of European colonization of the Americas by renaming British and (US) American English as well as Brasilian Portuguese languages in a same manner as just &quot;Traditional&quot; and &quot;Simplified&quot; respectively.</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/04/Languages.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/04/Languages.png" alt="" /></a></p>
<h2 id="attention-on-summer-time-changes-daylight-saving-time-dst-">Attention on Summer Time changes (Daylight Saving Time, DST)</h2>
<p>Due to a recently discovered issue with our autosaving code we recommend that anyone playing during a Summer Time change such that the wall-clock time goes backwards relative to UTC does not end a session for the amount of time of the switch - otherwise they risk a save made with the new time being ignored in favour of an older one with an apparently newer time. Thanks to SlySven for noticing this and working on resolving the issue as soon as possible.</p>
<h2 id="are-you-still-on-mudlet-4-5-1-">Are you still on Mudlet 4.5.1?</h2>
<p>Does your Mudlet say <strong>Mudlet 4-5.1.de</strong> on top? Go to <a rel="nofollow" href="https://www.mudlet.org/download/"><strong>mudlet.org/download</strong></a> to update it by installing a new version. Don’t worry – your profiles will stay.</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/03/bad-mudlet-4.5.1-de.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/03/bad-mudlet-4.5.1-de.png" alt="" /></a></p>
<p>You can <a rel="nofollow" href="https://www.mudlet.org/2020/03/update-from-mudlet451de/">find more information on this</a> in our detailed blog post.</p>
<h2 id="credits">Credits</h2>
<p>Thanks to all coders: commandore420, demonnic, Edna, Freddy, keneanung, meetorlov, Razor, shagwell, SlySven, syd, and vadi2 who made this release possible!</p>
<p>Thanks to all translators: Ghandi69, Leris, Marco “M0lid3us” Tironi (wiploo), Vadim Peretokin (vperetokin), vingi, and Ömer Albulak (albulak) for translating Mudlet into their own language.</p>
<h2 id="changelog">Changelog</h2>
<p><strong>Added:</strong></p>
<ul>
<li>Often requested <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Lua_Functions#wait">wait()</a> functionality is now in Mudlet API</li>
<li>Atari ST was added to the list of supported platforms</li>
<li>You may now use Mudlet as a client for <a rel="nofollow" href="https://en.wikipedia.org/wiki/Folding@home">folding@home</a> research</li>
<li>Enter cheat mode by entering a special key sequence</li>
<li>Added a combat AI system. Please don&#39;t leave it unattended</li>
</ul>
<p><strong>Improved:</strong></p>
<ul>
<li>Mudlet&#39;s energy consumption reduced to help fight climate change</li>
<li>Scripts will now error if not formatted properly (right click - format all)</li>
<li>Future-proofed Mudlet for use on quantum processors</li>
<li>Turbo mode feature can now be activated easily by holding Alt while pressing F4 key</li>
<li>Magical portals allow Mudlet users to play with negative latency</li>
<li>Automatic script formatting will now minify code as well</li>
<li>Comic Sans is the new default font for new profiles</li>
<li>Adjusted magic smoke algorithm for better crypto farming</li>
</ul>
<p><strong>Fixed:</strong></p>
<ul>
<li>Fixed a crash when player pressed <a rel="nofollow" href="https://en.wikipedia.org/wiki/Konami_Code">the konami code</a></li>
<li>Return nil+error if Garthok not successfully gnarfled</li>
<li>Fixed accidentally sending login names and passwords to 4chan</li>
<li>Limited packets to one every six feet of cable (approx. - YMMV)</li>
</ul>
<p><strong>Infrastructure:</strong></p>
<ul>
<li>Mudlet TLS now uses only military grade <a rel="nofollow" href="https://en.wikipedia.org/wiki/Dual_EC_DRBG#Security">Dual_EC_DRBG</a> as the single cypher</li>
<li>Games can now download the game data to the local machine to improve responsiveness and limit bandwidth usage</li>
</ul>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2020/04/github-4-7.png"><img src="https://www.mudlet.org/wp-content/uploads/2020/04/github-4-7.png" alt="" /></a></p>
]]>
        </description>
    </item>
    <item>
        <title>Sunder / Darkness</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3451/sunder-darkness</link>
        <pubDate>Thu, 27 Feb 2020 18:18:32 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Kadgar</dc:creator>
        <guid isPermaLink="false">3451@/index.php?p=/discussions</guid>
        <description><![CDATA[Is there a more in-depth location where one can read about SUNDER or Darkness and learn how it works? A  readme or a GITHUB for it? I want to learn how the autobasher works and what commands are available to use inside of Aetolia. ]]>
        </description>
    </item>
    <item>
        <title>XML Woes</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3448/xml-woes</link>
        <pubDate>Thu, 20 Feb 2020 17:37:35 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Bulrok</dc:creator>
        <guid isPermaLink="false">3448@/index.php?p=/discussions</guid>
        <description><![CDATA[Does anyone have a sane way of managing xml mergers? Git doesn't report half the conflicts there are and throws hissy fits over spaces instead of tabs, meanwhile throwing the xml code into a blender before puking it back out at me. This has caused my system to show signs of sentient life and self awareness. For the sake of John and Sarah Conner, someone please tell me how to handle xml files when collaborating with other people. The best solution I have heard so far is to just write the triggers through lua &gt;.&gt;]]>
        </description>
    </item>
    <item>
        <title>Old CMUD systems</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3389/old-cmud-systems</link>
        <pubDate>Tue, 31 Dec 2019 18:01:19 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Mepoki</dc:creator>
        <guid isPermaLink="false">3389@/index.php?p=/discussions</guid>
        <description><![CDATA[Hey everyone, i'm just out here trying to find any old CMUD/Zmud systems. It's a personal quest of mine that I want to accomplish. Thanks!]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.4 – MSP, mapper dot option, stopwatch improvements, and selection fix</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3364/mudlet-4-4-msp-mapper-dot-option-stopwatch-improvements-and-selection-fix</link>
        <pubDate>Sat, 07 Dec 2019 15:13:41 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Vadi2</dc:creator>
        <guid isPermaLink="false">3364@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Added a new option for customising the mapper&#39;s &quot;you are here&quot; location marker, added notepad autosave, re-added stopwatches overhaul and fixed a possible crash when copying text in this update!</p>
<h2 id="msp-mud-sound-protocol-">MSP (Mud Sound Protocol)</h2>
<p>Thanks to Tamarindo from <a rel="nofollow" href="https://www.stickmud.com/index.php/Home">StickMUD</a>, Mudlet now supports <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Technical_Manual#MSP">MSP</a>! This allows the game to ask Mudlet to play sounds automatically (say, when you enter a room or start a fight). This is different from <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Miscellaneous_Functions#playSoundFile">playSoundFile()</a>, a function you can use in triggers/aliases to play sounds.</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2019/12/Selection_143.png"><img src="https://www.mudlet.org/wp-content/uploads/2019/12/Selection_143.png" alt="" /></a></p>
<p>If your game already supports MSP, try enabling it today! If you&#39;re a game admin and you only allow specific clients to enable MSP, add Mudlet to the list :)</p>
<p>Tamarindo also developed a more modern replacement for MSP (last updated in 2001) called <a rel="nofollow" href="https://wiki.mudlet.org/w/Standards:MUD_Client_Media_Protocol">MUD Client Media Protocol (MCMP)</a> - something that is more fitting for 2020. If you&#39;re interested in adding media to your game today, consider adding this.</p>
<h2 id="customisable-room-marker">Customisable room marker</h2>
<p><a rel="nofollow" href="https://github.com/SlySven/">SlySven</a> added a feature to customise the room marker - there&#39;s now several different styles as well as an option to create your own!</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2019/12/custom-room-marker.gif"><img src="https://www.mudlet.org/wp-content/uploads/2019/12/custom-room-marker.gif" alt="" /></a></p>
<h2 id="overhauled-stopwatches">Overhauled stopwatches</h2>
<p>SlySven put in a lot of work to improve stopwatches: they can now persist across sessions, be deleted/recreated as needed, adjusted on the fly, be given names and more. See all of the new functions <a rel="nofollow" href="https://wiki.mudlet.org/w/Manual:Mudlet_Object_Functions">in the API</a>.</p>
<p>While stopwatches worked as expected, their functionality was very limited. Additionally, they worked differently from their real world counterparts which made their use not very intuitive.</p>
<h2>Credits</h2>
<p>Thanks to all coders: aaronjoslyn, CriusMacOldenly, demonnic, keneanung, mpconley, SlySven, and vadi2.</p>
<p>Thanks to all translators: finalcn, Garagoth, Leris, Marco &quot;M0lid3us&quot; Tironi (wiploo), Shoryu Shin (shoryu49), and wendeli alves (wilcoxjvkb).</p>
<h2>Changelog</h2>
<p><strong>added:</strong></p>
<ul>
<li>custom look&#39;n&#39;feel for the mapper red &#39;you are here&#39; dot in settings</li>
<li>support for more than 3 mouse buttons for the event engine</li>
<li>overhauled stopwatches with a ton of new features</li>
<li>portugese (brazilian) language for translation</li>
<li>MSP (Mud Sound Protocol)!</li>
</ul>
<p><strong>improved:</strong></p>
<ul>
<li>notepad content is autosaved every 2mins (previously, only ever saved on profile close)</li>
</ul>
<p><strong>fixed:</strong></p>
<ul>
<li>crash on selection</li>
<li>temporary aliases are now removed like everything else with resetProfile()</li>
<li>font size in composer no longer huge</li>
</ul>
<p><strong>infrastructure:</strong></p>
<ul>
<li>support for 64bit Discord libraries on Windows (Mudlet on Windows does not yet do 64bit, but it does on Linux and macOS)</li>
<li>Mudlet now uses latest Qt 5.13.2 on Windows</li>
<li>Travis CI configuration modernised</li>
</ul>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2019/12/2019-12-07_10-32.png"><img src="https://www.mudlet.org/wp-content/uploads/2019/12/2019-12-07_10-32.png" alt="" /></a></p>
]]>
        </description>
    </item>
    <item>
        <title>Mudlet 4.3 – Fixed selection</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3340/mudlet-4-3-fixed-selection</link>
        <pubDate>Sun, 10 Nov 2019 20:27:30 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Vadi2</dc:creator>
        <guid isPermaLink="false">3340@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>This short update fixes text selection in Mudlet, improves the generic mapper script, and a few things in the background.</p>
<h2 id="fixed-text-selection">Fixed text selection</h2>
<p><a rel="nofollow" href="https://github.com/CriusMacOldenly">Crius MacOldenly</a> from Accursed Lands has taken it upon themselves to rewrite text selection in Mudlet, and the result is really good! It now behaves as you&#39;d expect.</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2019/11/Peek-2019-11-10-16-35.gif"><img src="https://www.mudlet.org/wp-content/uploads/2019/11/Peek-2019-11-10-16-35.gif" alt="" /></a></p>
<h2>Credits</h2>
<p>Thanks to all coders: CriusMacOldenly, demonnic, keneanung, SlySven, and vadi2 for contributing to the code!</p>
<p>Thanks to all translators: Leris, Marco &quot;M0lid3us&quot; Tironi (wiploo), and vadi2 for helping translate Mudlet.</p>
<h2>Changelog</h2>
<p><strong>added:</strong></p>
<ul>
<li>&#39;show moves&#39; alias to generic mapper script</li>
<li>support for a &#39;Public Test Build&#39; version of Mudlet (coming soon)</li>
</ul>
<p><strong>improved:</strong></p>
<ul>
<li>table.is_empty() now gives a better error message</li>
<li>text selection redone</li>
<li>emoji rendering is a bit better (still working on it)</li>
<li>showColors() now appends the clicked colour instead of replacing text in the input line</li>
</ul>
<p><strong>infrastructure:</strong></p>
<ul>
<li>modernised cmake files</li>
</ul>
<p>It might look like we haven&#39;t done much for you in this release, as compared to the previous ones - but fear not, there&#39;s been plenty of work in the background that&#39;ll come to fruition in the future :)</p>
<p><a rel="nofollow" href="https://www.mudlet.org/wp-content/uploads/2019/11/Selection_085.png"><img src="https://www.mudlet.org/wp-content/uploads/2019/11/Selection_085.png" alt="Github monthly pulse" /></a></p>
]]>
        </description>
    </item>
    <item>
        <title>Not sure if this belongs here but found a puzzle that is impossible to complete.</title>
        <link>https://forums.aetolia.com/index.php?p=/discussion/3318/not-sure-if-this-belongs-here-but-found-a-puzzle-that-is-impossible-to-complete</link>
        <pubDate>Tue, 22 Oct 2019 03:09:58 +0000</pubDate>
        <category>Tech Talk</category>
        <dc:creator>Azarae</dc:creator>
        <guid isPermaLink="false">3318@/index.php?p=/discussions</guid>
        <description><![CDATA[Greetings, this is my first post and I'm unsure as to where I should be really posting this as I saw no topic about reporting bugs and such, but I noticed that (Unless it resets) the current box slider puzzle is impossible to do with their formula/way they set it up. There is even a video on youtube lec 3 | MIT 6.042J Mathematics for Computer Science, Fall 2010 that goes through this in detail. But because of the odd number in the way it is set up, it is impossible to complete. It is the quest titled 'Missing Child' part two "A simple request" where you must find the order of the blocks, and then find the grid stone to then complete the slider puzzle. There are a few global completions, and only one ever of the entire chain, globally. 

So either the code/way it functions needs to be looked at so one can complete it, or it scrambles itself every so often, and I have yet to figure out if it does. I even resorted to using software for slider puzzles specifically which it even told me aswell 'It is impossible'

I do hope someone can look into this, and I will check back perioidically to see if it has shuffled around to anything that one can actually complete, or if it glitched at some point. Thank you.]]>
        </description>
    </item>
   </channel>
</rss>
