<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SweptThrone Code Circular]]></title><description><![CDATA[Weekly updates about what SweptThrone has been up to.]]></description><link>https://sweptthr.one</link><generator>RSS for Node</generator><lastBuildDate>Thu, 15 Oct 2026 01:20:10 GMT</lastBuildDate><atom:link href="https://sweptthr.one/progress/feed" rel="self" type="application/rss+xml"/><item><title><![CDATA[Week of October 5, 2026]]></title><description><![CDATA[<h4>Code Circular</h4>

<p>Along with the recent improvements to post tags, I added the ability to navigate among tagged posts from the post page.  So if you go to a tag page, click a post, then click \"Previous\", you now see the previous post with that tag instead of the previous post overall.</p>

<h4>Tale of Flocksworth</h4>

<p>I spent the entire week learning, trying, and fixing errors relating to multithreading and multitasking in general.  I also played a lot of Star Wars Galactic Racer.  Each day was spent trying something essentially completely new, overwriting what I'd done the day before, so I actually didn't really go forward in any tangible manner.  I did however, learn a whole lot about multithreading and asynchronous programming, a concept I was only mildly familiar with (and forced to use) thanks to STAssistant.  I think I'm getting close, so hopefully I can wrap up this hurdle soon enough.</p>

<h4>STA On-the-Go</h4>

<p>Last month, I mentioned that STAssistant's --timesince command couldn't be added to STA On-the-Go because user bots cannot access message data.  I did a bit of research and thinking and found out you can add commands to the context menu of messages, so by adding a command and simply reading the message's ID, I was able to add this command to STA On-the-Go.</p>

<h4>Turf War RP</h4>

<p>Turf War RP's Halloween event began, so I had to do a few things for it.  I wrote a small script in two parts to translate map creation IDs of doors on the original map to doors on the new map, then added the festive kill rewards.</p>

]]></description><link>https://sweptthr.one/progress/wpr-323</link><guid isPermaLink="false">wpr-323</guid><pubDate>Sun, 11 Oct 2026 23:58:06 GMT</pubDate></item><item><title><![CDATA[Week of September 28, 2026]]></title><description><![CDATA[<h4>Tale of Flocksworth</h4>

<p>I fixed the two issues from last week, which were props spawning within towns and parts of houses disappearing when you opened their doors.  Next, I added a few more Pois:  flower patches, which are made up of four different types of flowers; cave entrances, which have doors that cannot be closed; and ritual circles, which required introducing \"ambients,\" basically just textures that are always above the terrain but below the player.  After that, I was looking for rivers because I think I broke them and ended up noticing some Poi areas had multiple centers.  I figured out this was because of the way I was finding the center but also because the cache I implemented didn't work properly.  I fixed this but then ran into the issue of large Pois causing extreme hitches.  This led me to dive into teaching myself multithreading.  I spent two short days trying to figure it out but didn't manage to get anywhere yet.  I'll keep at it for a few more days.</p>

<h4>Code Circular</h4>

<p>Post \"categories,\" as they previously were, are now \"tags.\"  I improved how linking to tag pages works.  Previously, you could go to the category page for \"t\" and it would give you all posts in the \"tof\" category.  Now it's stricter and works as you expect it should, using the whole tag.</p>

<h4>Turf War RP</h4>

<p>I ported the Artist's Workbench from AnkoRP to Turf War RP.  It was a bit of a mess so I ended up accidentally deleting my Turf War RP inventory.  Oops!  Everything's all good now though, and all players can now purchase Artist's Workbenches.</p>

]]></description><link>https://sweptthr.one/progress/wpr-322</link><guid isPermaLink="false">wpr-322</guid><pubDate>Mon, 05 Oct 2026 00:05:28 GMT</pubDate></item><item><title><![CDATA[Week of September 21, 2026]]></title><description><![CDATA[<h4>Tale of Flocksworth</h4>

<p>I kept adding more Pois, slowly working my way down the list.  Giant trees, giant rocks, giant mushrooms, cave entrances, and mushroom patches are all spawnable, though they aren't finished yet.  Giant mushrooms spawn with normal mushrooms of a matching type all around them.  I added support for animated props and first demonstrated this with an animated campfire that now spawns in the middle of camps instead of the tent.  Previously, the player's view bounds would get much larger when zooming in—which will not be a final feature—so I fixed that.  There were also a few fundamental changes I wanted to make, such as decoupling tile types from scenery pieces and clarifying how houses store their data, but I ended up slightly breaking the features instead of finishing the changes.  Oops!  Just means I got stuff to do next week.</p>

<h4>Aspect Ratio Helper</h4>

<p>I made a high school-level program to calculate aspect ratios given two numbers, then to maintain the ratio when either number is changed.  Usually when I want to do this, I would open Paint, but that got annoying.  This was another Windows Forms project, so this was kind of an excuse to learn a bit more about it.</p>

<h4>Code Circular</h4>

<p>I added post category checkboxes to the Code Circular's dashboard in case I ever need to change the category a post belongs to.  There's only one category other than \"all\" so it's really no big deal, but if I ever need to change it, it's now much easier than poking through the database.</p>

]]></description><link>https://sweptthr.one/progress/wpr-321</link><guid isPermaLink="false">wpr-321</guid><pubDate>Mon, 28 Sep 2026 00:33:51 GMT</pubDate></item><item><title><![CDATA[Week of September 14, 2026]]></title><description><![CDATA[<h4>Tale of Flocksworth</h4>

<p>I made graveyards graveyards, spawning multiple graves in an area; shacks which are currently just fully random houses; and tents which have custom doors.  This required me to overhaul how doors are handled since they could previously only be a house material, but \"tent\" is not a house material.  I also never actually had a way to spawn any structures other than houses, so I had to figure that out.  There was a bug with house interiors having an infinite width, a bug where entities weren't cleaning themselves up, and a bizarre Z-indexing bug that have all been fixed.  I improved how props draw which now allows me to easily make props of any width, then added Z-index randomization so wide props look less uniform.</p>

<h4>STAssistant</h4>

<p>I added a new command, --timesince, to STAssistant.  Use it as a reply to a message or with a message ID or link to see how long it's been since the message was sent, for comedic purposes.  I also tried adding it to STA On-the-Go, but user bots cannot access message data.</p>

<h4>Swept's Radios Definitive Edition</h4>

<p>Someone commented on Swept's Radios 2 and it reminded me that I never made some improvements to Swept's Radios that I'd wanted to make for a while.  I spent an hour or so making a new \"definitive edition\" that you can experience right now on The Big Apple.</p>

]]></description><link>https://sweptthr.one/progress/wpr-320</link><guid isPermaLink="false">wpr-320</guid><pubDate>Mon, 21 Sep 2026 02:12:56 GMT</pubDate></item><item><title><![CDATA[Week of September 7, 2026]]></title><description><![CDATA[<h4>STAssistant</h4>

<p>I felt like learning something new, so I kicked off the week by rewriting STAssistant in TypeScript.  Initially showing 527 errors, I went through and fixed each and every one, adding and removing stuff until it was error-free.  Everything seems to work the same way it used to with the exception of the birthday module, which has been removed because it was gross and no one—not even me—ever used it.  \"TSAssistant\" has been running since Monday!</p>

<h4>Voice Relay Testing</h4>

<p>I briefly played around with GM_8Bit to try to see if I could stream voice chat from one server to another, to be used in The Big Apple.  I couldn't figure it out because I had no idea what I was looking at, and it started getting late so I put this project on hold.</p>

<h4>Tale of Flocksworth</h4>

<p>This week was, yet again, a lot of refactoring.  Entity spawning is less stupid now, important global objects are stored in a more sensible way, and I'm actually using some types I defined but never used for some reason.  I then ended the week by fixing the random grave spawning from two weeks ago and finally enabling myself to spawn entire Pois.</p>

<h4>The Big Apple</h4>

<p>I noticed someone caused The Big Apple to spam errors, so I investigated.  I put a bandage on it because I have no clue how it happens, despite happening to me during my testing.  I also added a command to allow players to disconnect with a wider reconnect window because sometimes map models will refuse to render and the only fix is to restart the entire game.</p>

]]></description><link>https://sweptthr.one/progress/wpr-319</link><guid isPermaLink="false">wpr-319</guid><pubDate>Mon, 14 Sep 2026 00:17:33 GMT</pubDate></item><item><title><![CDATA[Week of August 31, 2026]]></title><description><![CDATA[<h4>Get Out Countdown</h4>

<p>I made a thing two years ago that would play a song and display a countdown timer along with the text \"GET OUT\".  It would pulse and flash to the beat of the song, except it wouldn't actually be in-time.  I tackled it this week out of boredom and made it better.</p>

<h4>The Contact</h4>

<p>I was playing on The Big Apple alone to continue to make sure everything works smoothly and remembered I didn't like how The Contact's Dead Drops looked.  I changed them to ping periodically, like a radar, instead of being a constant image on-screen.  It's a lot better this way.</p>

]]></description><link>https://sweptthr.one/progress/wpr-318</link><guid isPermaLink="false">wpr-318</guid><pubDate>Mon, 07 Sep 2026 00:34:21 GMT</pubDate></item><item><title><![CDATA[Week of August 24, 2026]]></title><description><![CDATA[<h4>Infiltrator</h4>

<p>In preparation of the very exciting play session of Infiltrator that took place on Friday night, I reviewed and rewrote most of the team-rolling code to be more sane and to work with the also-reviewed and also-rewritten spectate-only feature.  There's still some odd bug where the game refuses to start under some conditions, so I still need to look into that.</p>

<h4>Tale of Flocksworth</h4>

<p>I kicked off this week by lumping characters' attributes, skills, health, and mana into one big data structure and then gave each character two of them:  one for their base stats and one that holds active modifiers.  There's also a function to apply some stats to others but without actual characters, I can't say for sure if it works.  I then got an idea for how to handle honorable duels—as opposed to barbaric combat—loosely inspired by Reigns' dueling system and made a <a href=\"https://tof.sweptthr.one/duel/\">dueling demo</a> with some visuals very blatantly based on those of Reigns.  Finally, I was going to work on making entire graveyards spawn but got thoroughly stumped by an insanely bizarre bug that was causing graves to spawn wherever they wanted.  It took me a very long time and setting up proper debugging tools to fix it, but I'm not really sure how it even happened in the first place.</p>

]]></description><link>https://sweptthr.one/progress/wpr-317</link><guid isPermaLink="false">wpr-317</guid><pubDate>Mon, 31 Aug 2026 00:05:30 GMT</pubDate></item><item><title><![CDATA[Week of August 17, 2026]]></title><description><![CDATA[<h4>The Big Apple</h4>

<p>I set up all three Big Apple maps for STGarbageCollector before deciding that I'd need to modify the addon slightly to work on the maps.  As I got working on that, I thought of a new way for players to get money from it, but decided that I'm gonna hold off on major new systems and stuff unless the server gets a playerbase to warrant the time and effort.</p>

<h4>Status Page</h4>

<p>Another power outage made me realize the status page restarts itself periodically, resetting the times and improperly stating that projects had been offline for over 20'000 days.  I updated the page to actually store the times to disk and read them on startup, meaning this shouldn't happen again.  Also, this page is now located at a subdomain, <a href=\"https://status.sweptthr.one\">status.sweptthr.one</a>, instead of a directory so my traffic logs don't get polluted with status pings.</p>

<h4>Tale of Flocksworth</h4>

<p>I got distracted out of making features work again.  This week, I focused on rewriting how I handle scenery to allow props to pick a random sprite each from an atlas of options.  This has already been the case with terrain tiles, but props were left in the dust until this week.  I also changed how graves—the only feature I have sprites for yet—spawn so that they're 100% reliable as opposed to sometimes just missing for seemingly no reason.</p>

]]></description><link>https://sweptthr.one/progress/wpr-316</link><guid isPermaLink="false">wpr-316</guid><pubDate>Mon, 24 Aug 2026 00:22:58 GMT</pubDate></item><item><title><![CDATA[Week of August 10, 2026]]></title><description><![CDATA[<h4>Infiltrator</h4>

<p>I updated the cameras in Infiltrator to use a render target instead of setting the player's view entity.  This fixes an issue where changing cameras would cause players' voices to lag behind and also helped me learn a small bit about render targets.  This was done because I was planning an Infiltrator game session, but then my power went out for most of the week!</p>

<h4>Status Page</h4>

<p>Once it came back on, I decided to make a <a href=\"https://status.sweptthr.one\">status page</a> for all of my projects that would benefit from having one.  Each project sends a ping to the site every five minutes, and if ten or more minutes pass without getting a ping from any one of them, it is considered offline.</p>

]]></description><link>https://sweptthr.one/progress/wpr-315</link><guid isPermaLink="false">wpr-315</guid><pubDate>Mon, 17 Aug 2026 00:13:39 GMT</pubDate></item><item><title><![CDATA[Week of August 3, 2026]]></title><description><![CDATA[<h4>Code Circular</h4>

<p>I spent a small amount of time making lite pages for the Code Circular.  This was done for the sole reason that the auto-detected \"simplified\" version of the pages in Firefox's print dialog were inconsistent across posts.  Append ?lite=1 to any WPR page to see the lite version.</p>

<h4>Hunt Damage</h4>

<p>I was bored one night so I went Garry's Mod map touring and ended up slightly improving how my <a href=\"https://github.com/SweptThrone/HuntDamage\">unreleased Hunt Damage addon</a> works.  It no longer relies on causing damage to limit health but I'm not sure if this hacky way I've done it is any better.</p>

]]></description><link>https://sweptthr.one/progress/wpr-314</link><guid isPermaLink="false">wpr-314</guid><pubDate>Mon, 10 Aug 2026 00:01:58 GMT</pubDate></item><item><title><![CDATA[Week of July 27, 2026]]></title><description><![CDATA[<h4>Tale of Flocksworth</h4>

<p>I took a detour and expanded the moral alignment system.  Previously, it was a simple number that represented how good or bad you were, but now it's a complex number that when parsed, results in one of the nine classic alignments.  In the actual game, this is accomplished via a few clever (in my opinion) tricks with bits.  None of these tricks are in the complement <a href=\"https://tof.sweptthr.one/alignment\">web page</a>, but that page shows how your character portrait will react to the full range of alignments.</p>

]]></description><link>https://sweptthr.one/progress/wpr-313</link><guid isPermaLink="false">wpr-313</guid><pubDate>Mon, 03 Aug 2026 00:16:36 GMT</pubDate></item><item><title><![CDATA[Week of July 20, 2026]]></title><description><![CDATA[<h4>The Contact</h4>

<p>I updated how The Contact works to \"require\" the sell functions to return a number and a string instead of forcing users to update money and send messages manually.  This took about ten minutes.</p>

<h4>Tale of Flocksworth</h4>

<p>I implemented what I started last week.  The \"centers\" of Poi zones are now properly marked and stored, even if the panel doesn't exist yet.  To make sure it works properly, I now spawn a single grave at this position, which is a part of one of the 22 currently-planned Poi types.  I still need to make art assets for the other 21, and I'm gonna try to start really pushing myself to get work truly going.</p>

]]></description><link>https://sweptthr.one/progress/wpr-312</link><guid isPermaLink="false">wpr-312</guid><pubDate>Mon, 27 Jul 2026 00:11:17 GMT</pubDate></item><item><title><![CDATA[Week of July 13, 2026]]></title><description><![CDATA[<h4>Open Sourcing</h4>

<p>This week, I decided to officially make all of my addons open source on GitLab.  To accomplish this, I wrote a JavaScript script to parse addon names into valid repository names, a Batch script to create repositories for each addon, another JavaScript script to collect the IDs of all of those repositories, a Bash script to change the visibility of them all, then finally a third JavaScript script to add a repository link to the description of each addon.  Whew!</p>

<h4>Tale of Flocksworth</h4>

<p>Unfortunately, I didn't do much over here this week.  I added a precaution to protect against cases where the centers of PoIs would spawn in a panel that does not yet exist, causing the center point to never be marked.  I didn't get around to testing or properly implementing it yet.  Oops!</p>

]]></description><link>https://sweptthr.one/progress/wpr-311</link><guid isPermaLink="false">wpr-311</guid><pubDate>Mon, 20 Jul 2026 03:49:38 GMT</pubDate></item><item><title><![CDATA[Week of July 6, 2026]]></title><description><![CDATA[<h4>Tale of Flocksworth</h4>

<p>I slowly eased back into it and tackled features again, but not before editing a bunch of stuff to take advantage of cool modern C# features.  Certain values are now C# properties, which makes them look and work slightly nicer than they did before.  I then fixed the issue I mentioned last month, where feature zones would be cut off by towns.  Features don't yet spawn properly yet, as the reference center tile will either appear late or disappear after it's been generated.  I think I know how I'm going to fix that, but first I'll have to make some super sweet art assets for all of these features, of which I currently have 22 in mind.</p>

]]></description><link>https://sweptthr.one/progress/wpr-310</link><guid isPermaLink="false">wpr-310</guid><pubDate>Mon, 13 Jul 2026 00:18:24 GMT</pubDate></item><item><title><![CDATA[Week of June 29, 2026]]></title><description><![CDATA[<h4>STMarket</h4>

<p>I was looking for some relevant dates and numbers in history and stumbled upon an old addon idea that had been lost to time.  STMarket allows you to create 16 generic products from 4 different departments, box them up, and sell them for cash.  Raw materials are bought in randomized packs of eight, and each product takes a different number of materials and amount of time to make.  STWholesale might be a better name for this one, but I didn't think of that back then.  You can play with this one right now as a Supplier on The Big Apple!</p>

]]></description><link>https://sweptthr.one/progress/wpr-309</link><guid isPermaLink="false">wpr-309</guid><pubDate>Mon, 06 Jul 2026 00:41:33 GMT</pubDate></item><item><title><![CDATA[Week of June 22, 2026]]></title><description><![CDATA[<h4>STA On-the-Go</h4>

<p>I was insanely busy last week, this week, and perhaps even next week so all I did was port STAssistant's --viz/--vis command to STA On-the-Go as /viz.  This command takes a hexadecimal color code and sends a block of that color in response.</p>

]]></description><link>https://sweptthr.one/progress/wpr-308</link><guid isPermaLink="false">wpr-308</guid><pubDate>Mon, 29 Jun 2026 00:05:21 GMT</pubDate></item></channel></rss>