<?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, 03 Sep 2026 07:02:48 GMT</lastBuildDate><atom:link href="https://sweptthr.one/progress/feed" rel="self" type="application/rss+xml"/><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><item><title><![CDATA[Week of June 15, 2026]]></title><description><![CDATA[<h4>Project Counter</h4>

<p>I broke my rule yet again and wrote a quick program that counts the number of distinct headings I've written for progress reports.  In a super quick, unrefined sample, I've reported on 213 different projects.</p>

<h4>ScamBusta</h4>

<p>Crypto casino scams continue to get out-of-hand so I edited ScamBusta to handle a tried and true honeypot channel.  Implemented in another server, it has banned 11 people.</p>

<h4>Turf War RP</h4>

<p>Turf War RP, previously named Gang War RP, received an updated minimap using 3D \"models\" from Microsoft Word.  It looks silly and tacky but I kinda like the charm it has.  I also modified the loadout menu of Turf War RP to allow you to unset a slot in your loadout by right-clicking the dropdown box.</p>

<h4>STCuffs</h4>

<p>Someone asked about how STCuffs worked which made me remember that I was never really truly satisfied with how they worked, so I rewrote the dragging movement to be more in-line with how I envisioned.  The power of trigonometry!</p>

]]></description><link>https://sweptthr.one/progress/wpr-307</link><guid isPermaLink="false">wpr-307</guid><pubDate>Mon, 22 Jun 2026 02:00:55 GMT</pubDate></item><item><title><![CDATA[Week of June 8, 2026]]></title><description><![CDATA[<h4>Tale of Flocksworth</h4>

<p>I figured out the \"center\" of feature zones, so now I can actually put stuff there.  For some odd reason, this doesn't work with exceedingly small zones, so that's something I'll have to look into.  There are also really jarring cut-offs if a feature zone is too close to a town, but because of the trickery I wrote three weeks ago, it was unavoidable.  I'm not happy with it, so I might have to do some trickery on top of my trickery to get it to work.  I'm trying to be too clever for my own good.  In this midst of figuring this all out, I accidentally made houses stop spawning again, so I had to take a detour and fix that.  And finally once more, I did some more minor and boring reorganizing and revising of some stuff I'd written.</p>

]]></description><link>https://sweptthr.one/progress/wpr-306</link><guid isPermaLink="false">wpr-306</guid><pubDate>Mon, 15 Jun 2026 00:15:11 GMT</pubDate></item><item><title><![CDATA[Week of June 1, 2026]]></title><description><![CDATA[<h4>Code Circular</h4>

<p>I started the week by breaking my rule and adding a confirmation form for deleting WPRs in the Code Circular's dashboard.  Even though I don't think I'll be deleting reports all that often, it was neat and only slightly infuriating to learn how HTML dialog forms work.</p>

<h4>Addon Tag Updater</h4>

<p>For a long time, it's bothered me that most of my non-tool addons were labeled as tools on the Workshop.  I wrote a program to read through all of my addon folders, find the ones that are marked as tools, edit them to be labeled as server content, then update them.  Altogether, 84 addons were affected and caused suspicious-looking updates on the Workshop.</p>

<h4>Tale of Flocksworth</h4>

<p>I was lazy so all I did was edit tiles to only populate some data depending on a bitfield given to it.  As it stood, every time a tile's data is requested—which, for features, will need to be several times in a very short period—the game would generate different noise values and populate the data with them.  I don't think this caused a major performance hit, but I didn't like the idea of filling the data with values that would normally never be used.  This change required just a little bit of review and rewriting, so I did that too.</p>

]]></description><link>https://sweptthr.one/progress/wpr-305</link><guid isPermaLink="false">wpr-305</guid><pubDate>Mon, 08 Jun 2026 00:14:03 GMT</pubDate></item><item><title><![CDATA[Week of May 25, 2026]]></title><description><![CDATA[<h4>The Big Apple</h4>

<p>I spent almost the whole week bug-hunting on The Big Apple and found a ton of things to fix.  Most of them weren't noteworthy enough to make into a report, but what <em>is</em> enough to make it into a report is the addition of STPottery to the economy.  Suppliers can now purchase kilns and clay to make precious pottery and sell it to The Contact.  I made a lot of edits to STPottery that should probably be pushed to the Workshop, but we'll get to that later.</p>

<h4>Tale of Flocksworth</h4>

<p>I fixed the single issue from last week and made some more proactive optimizations.  After that, I continued working on getting features to spawn.  As I was doing an informal survey of the land using the new spawning method, I realized there were way too few features to be interesting.  Most of the world would end up being empty and boring, so I started to revert to the old way of spawning features, which will result in a <em>lot</em> more features spawning.  I'll have to figure out how to not cause an infinite loop, but I think I have an idea that will work.</p>

]]></description><link>https://sweptthr.one/progress/wpr-304</link><guid isPermaLink="false">wpr-304</guid><pubDate>Mon, 01 Jun 2026 00:02:54 GMT</pubDate></item><item><title><![CDATA[Week of May 18, 2026]]></title><description><![CDATA[<h4>Neon Signs</h4>

<p>I game-sniped my friend in DarkRP the other day and the server he was playing on had these cool neon signs, so I ripped them off for myself.  You can use them on The Big Apple right now!</p>

<h4>Tale of Flocksworth</h4>

<p>I saw an angry post about problems with Godot C# and even though this game wouldn't suffer too hard, I decided to make the optimizations to prevent these problems.  Now, just about every commonly-used string is cached.  After that, I was going to continue making features spawn using the new method from three weeks ago, but I realized I'd be taking way more memory than necessary, so I did some trickery to try to reduce it.  This ended up causing a single, minor issue that I didn't get around to fixing yet but other than that, it went surprisingly well.  These things might seem unnecessary and overly proactive, but I want to do things the \"right\" way now so I don't run into mystery problems later.</p>

]]></description><link>https://sweptthr.one/progress/wpr-303</link><guid isPermaLink="false">wpr-303</guid><pubDate>Mon, 25 May 2026 00:46:04 GMT</pubDate></item><item><title><![CDATA[Week of May 11, 2026]]></title><description><![CDATA[<h4>BCD Converter</h4>

<p>I was lazy and played too much Overwatch this week, so this is all I got done.  I recently learned about binary-coded decimals through Atari games so I wrote two different functions to translate from BCD to a decimal number, one using strings and one using logarithms.  I might also be extra busy next week, but we'll see.</p>

]]></description><link>https://sweptthr.one/progress/wpr-302</link><guid isPermaLink="false">wpr-302</guid><pubDate>Mon, 18 May 2026 00:09:28 GMT</pubDate></item></channel></rss>