<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DamnedX Dev Log</title>
    <link>https://damnedx.com/devlog/</link>
    <atom:link href="https://damnedx.com/devlog/feed.xml" rel="self" type="application/rss+xml" />
    <description>Dated development updates for DamnedX.</description>
    <language>en</language>
    <lastBuildDate>Mon, 17 Aug 2026 12:00:00 GMT</lastBuildDate>
    <item>
      <title>Gauntlet's in, and Barrows finally moved underground</title>
      <link>https://damnedx.com/devlog/2026-08-17.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-08-17.html</guid>
      <pubDate>Mon, 17 Aug 2026 12:00:00 GMT</pubDate>
      <description>Gauntlet and Corrupted Gauntlet are both playable, the brothers live in their crypts instead of standing about on the grass, and we killed the bug that made everything look like it was hitting twice.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>Gauntlet took three goes. The fight went in first, then we found clicking the portal in Prifddinas did nothing, and fixing that turned up something much worse: most of Prifddinas didn't exist server side. A bug in the bridged area loader was wiping collision and objects across 74 map squares. You were clicking a picture.</p>
<p>The other one worth calling out is the double hits. Loads of you reported everything hitting twice and we went in assuming pact effects. It was neither. The server was sending every hitsplat, health bar and animation twice, one tick apart. Nothing was actually hitting twice, it just looked like it.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>The Gauntlet and the Corrupted Gauntlet. Both tiers run off one code path, so Corrupted isn't a half-finished copy <span class="dl-refs"><span>#202</span> <span>#206</span></span></li>
          <li>Real trail steps for easy and medium clues, instead of the casket opening the second you read the scroll <span class="dl-refs"><span>#184</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--changed">Changed</span></h2>
        <ul class="dl-changes">
          <li>The six Barrows brothers now live in their own crypts and only appear when you search the sarcophagus. They used to stand on the grass, all six, permanently <span class="dl-refs"><span>#212</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Every hit displayed twice. The server was broadcasting each hitsplat, health bar and animation twice, one tick apart <span class="dl-refs"><span>#198</span></span></li>
          <li>Level-0 collision and objects were missing across 74 map squares in Prifddinas, which is why the Gauntlet portal was unclickable <span class="dl-refs"><span>#208</span></span></li>
          <li>The Gauntlet lobby portal was unwired, making the whole minigame unreachable. Entry is two steps, not one <span class="dl-refs"><span>#206</span></span></li>
          <li>Eight faults from the first live Gauntlet test: two crashes sharing one root cause, missing floor drops, corridor lighting and the map reveal <span class="dl-refs"><span>#210</span></span></li>
          <li>Lava Maze ladder down to the KBD lever room landed you in the wrong room. The two ladder pairs cross-link <span class="dl-refs"><span>#211</span></span></li>
          <li>Three step-over rocks in the Karuulm dungeon blocked the walking route to the Alchemical Hydra <span class="dl-refs"><span>#197</span></span></li>
          <li>Ghorrock crevice had no exit, so the Weiss route dumped you in the dungeon with no way back out <span class="dl-refs"><span>#196</span></span></li>
          <li>Fight Caves: nothing aggressive on spawn, healers sat in a corner instead of running to Jad, and nothing dropped bones or loot <span class="dl-refs"><span>#194</span></span></li>
          <li>Dying above 20 wild refused your respawn teleport and left you stood on your own grave with your loot already on the floor <span class="dl-refs"><span>#187</span></span></li>
          <li>The sleeping Nightmare wandered around the Sisterhood Sanctuary instead of staying at her altar <span class="dl-refs"><span>#192</span></span></li>
          <li>Boot crash from a negative coordinate in the Inferno spawn table <span class="dl-refs"><span>#189</span></span></li>
          <li>Boot crash from the clue-trail script and Hans registering the same right-click option <span class="dl-refs"><span>#190</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--behind-the-scenes">Behind the scenes</span></h2>
        <ul class="dl-changes">
          <li>Diagnostic tool that dumps server-side type data for the whole Gauntlet entry chain <span class="dl-refs"><span>#207</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
    <item>
      <title>Nine bosses in one week</title>
      <link>https://damnedx.com/devlog/2026-08-15.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-08-15.html</guid>
      <pubDate>Sat, 15 Aug 2026 12:00:00 GMT</pubDate>
      <description>Zulrah, Vorkath, Kraken, Araxxor, Cerberus, Hydra, Tormented Demons, Nightmare and Muspah all landed, plus Fight Caves and the first Echo boss that's actually finished.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>Biggest week we've had. Nine bosses plus Fight Caves, most of them built against live packet captures rather than guesswork, which is why the rotations and timings line up instead of being roughly right.</p>
<p>Echo Amoxliatl is the first Echo boss that's properly finished. After it went in we sat and compared our version frame by frame against a recording of the live fight, which turned up three things being off.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>Zulrah, solo instanced, full phase rotation <span class="dl-refs"><span>#157</span></span></li>
          <li>Vorkath, including the sleeping form and the wake-up <span class="dl-refs"><span>#159</span></span></li>
          <li>Kraken, in the public cove <span class="dl-refs"><span>#156</span></span></li>
          <li>Araxxor, 92 Slayer, solo instanced, melee-only vulnerability and the full rotation <span class="dl-refs"><span>#158</span></span></li>
          <li>Cerberus, full fight with all three arenas and the Slayer gate <span class="dl-refs"><span>#160</span></span></li>
          <li>Alchemical Hydra, all four phases on the verified attack clock <span class="dl-refs"><span>#167</span></span></li>
          <li>Tormented Demons, the 2024 rework version with style rotation and overhead prayers <span class="dl-refs"><span>#161</span></span></li>
          <li>The Nightmare, three phases, all seven specials, totem charging and the HUD <span class="dl-refs"><span>#169</span></span></li>
          <li>Phantom Muspah, five-form transmog fight with the shield sub-fight <span class="dl-refs"><span>#170</span></span></li>
          <li>TzHaar Fight Caves, all 63 waves and Jad, using the real wave composition algorithm <span class="dl-refs"><span>#162</span></span></li>
          <li>Echo Amoxliatl end to end: orb-on-door entry, the red model, effects and lifecycle <span class="dl-refs"><span>#152</span> <span>#153</span></span></li>
          <li>Combat Achievements backend. Task catalogue, per-player tracking, points, tiers, and auto-completion off kill counts. No interface yet, on purpose <span class="dl-refs"><span>#163</span></span></li>
          <li>Demonic Pact ranged echo core, plus a real task-based point economy and reset sources, replacing the placeholder two-task version <span class="dl-refs"><span>#155</span> <span>#164</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--changed">Changed</span></h2>
        <ul class="dl-changes">
          <li>Imported real attack speeds and immunities for 2,534 npcs <span class="dl-refs"><span>#166</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Fight Caves waves spawned into the static map instead of the instance you were stood in, so you walked into an empty arena <span class="dl-refs"><span>#174</span></span></li>
          <li>Tormented Demons showed the wrong overhead prayer icons <span class="dl-refs"><span>#175</span></span></li>
          <li>189 clue casket rewards pointed at items this cache doesn't contain <span class="dl-refs"><span>#165</span></span></li>
          <li>Echo Amoxliatl visual gaps found by frame comparison: spike fields too dense, boss HP bar plugin dormant, missing (Echo) name tag <span class="dl-refs"><span>#154</span></span></li>
          <li>Boot crash from an object serving as both entrance and exit registering itself twice <span class="dl-refs"><span>#173</span></span></li>
          <li>Nine bugs found by reviewing the whole wave, two of which broke fights outright <span class="dl-refs"><span>#172</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--behind-the-scenes">Behind the scenes</span></h2>
        <ul class="dl-changes">
          <li>Two merge trains to land the wave in one verified sequence <span class="dl-refs"><span>#168</span> <span>#171</span> <span>#183</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
    <item>
      <title>God Wars, wilderness bosses, and the bug that froze every login</title>
      <link>https://damnedx.com/devlog/2026-08-09.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-08-09.html</guid>
      <pubDate>Sun, 09 Aug 2026 12:00:00 GMT</pubDate>
      <description>All four GWD generals and the full wilderness boss set went in, Amoxliatl got reworked against the wiki, Leagues tasks passed 283 of 1,593, and we found out why logins were hanging forever.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>Every login was hanging after the handshake this week. It looked exactly like a network problem for a while and it wasn't: two world queues were re-queueing themselves every tick and spinning the game loop forever. Server was alive, server was busy, server was doing nothing.</p>
<p>Rest of the week was bosses. All four GWD generals plus the entire wilderness set, singles and multi variants both, not one pretending to be the other.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>General Graardor, Kree'arra, K'ril Tsutsaroth and Commander Zilyana <span class="dl-refs"><span>#131</span></span></li>
          <li>Callisto and Artio, Vet'ion and Calvar'ion <span class="dl-refs"><span>#126</span></span></li>
          <li>Venenatis, Spindel and the Chaos Elemental <span class="dl-refs"><span>#127</span></span></li>
          <li>Leagues VI echo bosses across five regions, region milestones, and tasks wired up to 283 of 1,593 <span class="dl-refs"><span>#147</span> <span>#150</span></span></li>
          <li>Rune Mysteries, and the quest-requirement framework that came with it <span class="dl-refs"><span>#137</span></span></li>
          <li>Full consumable food and potion engine, reconciled against our fork <span class="dl-refs"><span>#136</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--changed">Changed</span></h2>
        <ul class="dl-changes">
          <li>Amoxliatl reworked against the wiki and capture footage: real attack rotation, pools, Unstable Ice, the icicle projectile, and she chases to melee between casts so the kite rhythm matches live <span class="dl-refs"><span>#135</span> <span>#145</span> <span>#146</span></span></li>
          <li>Amoxliatl's hail confined to the platform shape it actually uses <span class="dl-refs"><span>#144</span></span></li>
          <li>Her chamber is multi-combat now, so the ice blocks are attackable mid-fight instead of throwing &quot;I'm already under attack&quot; <span class="dl-refs"><span>#142</span></span></li>
          <li>Real animation priorities packed into the cache, so animations stop overtaking each other when they shouldn't <span class="dl-refs"><span>#134</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Every login hung after the handshake. Two world queues were re-queueing themselves every tick and froze the game loop <span class="dl-refs"><span>#129</span></span></li>
          <li>Echo door handlers were bound to the parent object instead of the variant you actually click <span class="dl-refs"><span>#149</span></span></li>
          <li>Echo entry is &quot;use the orb on the entrance&quot;, not &quot;use the orb from your inventory&quot; <span class="dl-refs"><span>#148</span></span></li>
          <li>Instance npcs marked spawn-on-first-join didn't spawn when the creator entered <span class="dl-refs"><span>#130</span></span></li>
          <li>Boot crash from unset animation priorities after the cache change <span class="dl-refs"><span>#140</span></span></li>
          <li>Cache build crash on a rev-239-only item <span class="dl-refs"><span>#139</span></span></li>
          <li>Hunt combat-delay check now degrades gracefully when packed vars are missing <span class="dl-refs"><span>#132</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--behind-the-scenes">Behind the scenes</span></h2>
        <ul class="dl-changes">
          <li><code>::combatdebug</code> to pinpoint what's blocking a single-way &quot;already under attack&quot; <span class="dl-refs"><span>#141</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
    <item>
      <title>Barrows, Hespori, and kill counts that actually count</title>
      <link>https://damnedx.com/devlog/2026-08-02.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-08-02.html</guid>
      <pubDate>Sun, 02 Aug 2026 12:00:00 GMT</pubDate>
      <description>The six wights and their set effects went in, Hespori is instanced, three more bosses landed, and Amoxliatl got her first real build straight off live captures.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>Amoxliatl got her first real implementation this week, built off captures in an instanced arena. We wrote the boss-building docs while doing it, because this was the fight where we worked out the pattern everything since has followed.</p>
<p>Also added <code>::god</code>, <code>::heal</code> and <code>::bosstele</code>. Nobody will ever see those, but they're the reason the bosses above got tested more than once each.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>Barrows v1. All six wights with their set effects <span class="dl-refs"><span>#124</span></span></li>
          <li>Hespori, instanced, so the patch fight is yours and nobody can crash it <span class="dl-refs"><span>#124</span></span></li>
          <li>Chaos Fanatic, Crazy Archaeologist and the Thermonuclear Smoke Devil <span class="dl-refs"><span>#121</span></span></li>
          <li>Amoxliatl, capture-faithful fight in an instanced arena, plus the boss-building docs <span class="dl-refs"><span>#118</span></span></li>
          <li>Grotesque Guardians, found by auditing drop tables across the whole boss set <span class="dl-refs"><span>#120</span></span></li>
          <li>Per-npc kill count tracking <span class="dl-refs"><span>#115</span></span></li>
          <li>Hammer construction <span class="dl-refs"><span>#111</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--changed">Changed</span></h2>
        <ul class="dl-changes">
          <li>Scythe of Vitur does its real sweep now: proper graphic, and a separate damage roll per target instead of one roll smeared across all three. Bopper-family double-hit weapons went in with it <span class="dl-refs"><span>#114</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Construction had drifted out of sync with the rest of the codebase and stopped compiling cleanly <span class="dl-refs"><span>#112</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--behind-the-scenes">Behind the scenes</span></h2>
        <ul class="dl-changes">
          <li><code>::god</code>, <code>::heal</code> and <code>::bosstele</code> so bosses can be tested without gearing up for twenty minutes first <span class="dl-refs"><span>#116</span></span></li>
          <li>Verified eight player-effect primitives against live behaviour and added two helpers for the gaps <span class="dl-refs"><span>#119</span> <span>#123</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
    <item>
      <title>A boring week on the engine</title>
      <link>https://damnedx.com/devlog/2026-07-26.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-07-26.html</guid>
      <pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate>
      <description>No new content this week. Ironman framework, shooting stars and currency handling came in from upstream, and we found a right-click bug we'd inherited from stock code and never noticed.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>Nothing to screenshot this week, it was all engine. The one interesting find was a bug we'd been carrying since day one: object right-click options 2 through 5 were all mapping to option 1. That's a copy-paste bug in stock rsmod that we inherited and just never hit in a way that made it obvious.</p>
<p>Some weeks are like this.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>Ironman framework <span class="dl-refs"><span>#99</span></span></li>
          <li>Shooting stars <span class="dl-refs"><span>#104</span></span></li>
          <li>Better currency handling, so buying something picks the best coin type you have instead of failing because the exact one isn't in your inventory <span class="dl-refs"><span>#103</span> <span>#105</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Object right-click options 2 through 5 all mapped to option 1, inherited from stock rsmod <span class="dl-refs"><span>#107</span></span></li>
          <li>Npcs could spawn before login finished <span class="dl-refs"><span>#99</span></span></li>
          <li>Boot crash from an upstream teleport-spells module colliding with ours. Ours won <span class="dl-refs"><span>#106</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
    <item>
      <title>Drawing the League borders</title>
      <link>https://damnedx.com/devlog/2026-07-19.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-07-19.html</guid>
      <pubDate>Sun, 19 Jul 2026 12:00:00 GMT</pubDate>
      <description>Region borders, crossing archways and Yama waystones went in, progression gates got wired to area unlocks and relic points, and a one-byte bug was quietly wrecking any map square with 256 zones.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>Regions have real borders now, painted by hand against the official anchor tiles instead of the rough polygons we started with. Archways are the official crossings and Yama waystones handle travel between regions.</p>
<p>The nasty one this week was the 256 zone bug. Map areas store how many zones they contain and that count was being written as a single byte, so any square with 256 zones wrapped to zero and corrupted the cache from there on. No error, no crash, no symptom, just a map that's quietly wrong somewhere you haven't walked yet.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>Owner-painted region borders, replacing the draft polygons <span class="dl-refs"><span>#86</span> <span>#85</span></span></li>
          <li>Border archways as the official crossing gateways <span class="dl-refs"><span>#88</span> <span>#90</span></span></li>
          <li>Yama waystones for in-world travel between regions <span class="dl-refs"><span>#87</span></span></li>
          <li>Progression gates: area unlocks, relic point gating and the pact point economy all reading the same state <span class="dl-refs"><span>#79</span> <span>#82</span></span></li>
          <li>Barbarian Village west wall <span class="dl-refs"><span>#94</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--changed">Changed</span></h2>
        <ul class="dl-changes">
          <li>Login and boot performance work adopted from upstream, plus hardening around shutdown <span class="dl-refs"><span>#97</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Map-area zone counts were written as a byte, so any square with 256 zones wrapped to zero and corrupted the cache <span class="dl-refs"><span>#83</span></span></li>
          <li>Teleports validated after playing the animation and consuming your runes or item, then told you no. They validate first now <span class="dl-refs"><span>#98</span></span></li>
          <li>Endless Harvest fishing and mining couldn't be escaped by walking away <span class="dl-refs"><span>#78</span></span></li>
          <li>Shops counted the item you bought instead of the coins you paid with <span class="dl-refs"><span>#77</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--behind-the-scenes">Behind the scenes</span></h2>
        <ul class="dl-changes">
          <li><code>::locdump</code> pulls in-game object placements straight out as data <span class="dl-refs"><span>#92</span></span></li>
          <li><code>::lb</code> spawns blockade pieces without digging through a menu <span class="dl-refs"><span>#93</span></span></li>
          <li>Region border scan tooling <span class="dl-refs"><span>#91</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
    <item>
      <title>Friends lists, the boss framework, and actually getting into the Sewers</title>
      <link>https://damnedx.com/devlog/2026-07-12.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-07-12.html</guid>
      <pubDate>Sun, 12 Jul 2026 12:00:00 GMT</pubDate>
      <description>Friends, ignore and PMs work across worlds now, the boss framework everything since is built on went in, and we wired up the routes to Scurrius and KBD so you can actually reach them.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>This is the week boss work became possible. Instances, the boss definition layer, HP bars, with Scurrius and KBD as the first two built on top.</p>
<p>Then the bit nobody thinks about, which is that you have to be able to walk there. The Varrock Sewers manhole and ladders weren't wired, so Scurrius may as well not have existed. Same story with the Lava Maze ladders down to KBD.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>Boss framework: instances, the boss definition layer and HP bars, with Scurrius and KBD on top <span class="dl-refs"><span>#62</span></span></li>
          <li>Friends lists, ignore lists and private messaging, routed through the central server so they work across worlds <span class="dl-refs"><span>#76</span></span></li>
          <li>Varrock Sewers manhole and ladder wiring, so Scurrius is reachable <span class="dl-refs"><span>#70</span></span></li>
          <li>Lava Maze antechamber ladders down to KBD, plus a map-wide climb audit tool <span class="dl-refs"><span>#74</span></span></li>
          <li>Clue scrolls as a stop-gap: reading one rolls straight into that tier's real reward table as if you'd finished the last step. Conniving Clues gives its 1 in 3 shot at a second chest <span class="dl-refs"><span>#47</span></span></li>
          <li>Pact effects for the minimum hit floor and the recoil bonus <span class="dl-refs"><span>#58</span></span></li>
          <li>Autocast spellbook restrictions and spell picker fixes <span class="dl-refs"><span>#67</span></span></li>
          <li>Quest journal centralisation <span class="dl-refs"><span>#63</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Thorns was granted by the wrong effect id, and the doubling effect pointed at the wrong thing entirely <span class="dl-refs"><span>#51</span></span></li>
          <li>Pact effects 23 and 71 corrected against the actual talent tree text <span class="dl-refs"><span>#49</span></span></li>
          <li>Thorns reflect hitsplats used the wrong hitmark <span class="dl-refs"><span>#52</span></span></li>
          <li>Bank placeholders now replace in place on deposit instead of leaving a gap. Turned out to be a data flag flipped during a cache conversion, not a code bug <span class="dl-refs"><span>#57</span></span></li>
          <li>Guide Prices crashed on close, another flipped inventory flag from the same conversion <span class="dl-refs"><span>#75</span></span></li>
          <li>Pact reset button was never wired up <span class="dl-refs"><span>#45</span></span></li>
          <li>Teleport overlay didn't cancel its coroutine properly <span class="dl-refs"><span>#44</span></span></li>
          <li>Small engine and combat fixes from upstream: retaliation, ranged null-safety, object reaching <span class="dl-refs"><span>#65</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--behind-the-scenes">Behind the scenes</span></h2>
        <ul class="dl-changes">
          <li>Water, fire and earth pact branches audited against real cache data rather than what we assumed they did <span class="dl-refs"><span>#53</span> <span>#59</span> <span>#60</span> <span>#48</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
    <item>
      <title>Every skill, done to the wiki</title>
      <link>https://damnedx.com/devlog/2026-07-05.html</link>
      <guid isPermaLink="true">https://damnedx.com/devlog/2026-07-05.html</guid>
      <pubDate>Sun, 05 Jul 2026 12:00:00 GMT</pubDate>
      <description>The first entry. Fifteen skills went in during one week, all built against the wiki rather than eyeballed, plus charged weapons that had been crashing instead of charging.</description>
      <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="dl-note"><p>This is where the log starts, and it all happened in one week, so it reads like a list. Every skill was built against the wiki rather than from memory, which is slower up front and the reason we're not still finding wrong XP rates now.</p>
<p>This log went up on 17 August 2026. Anything dated before then was written up afterwards from our commit history, so the dates are the real dates the work landed rather than picked after the fact.</p></div>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--added">Added</span></h2>
        <ul class="dl-changes">
          <li>Fishing: 15 spot families, tools and bait, attire, the rotation and the shop <span class="dl-refs"><span>#19</span></span></li>
          <li>Mining: every ore tier, gem rocks, amethyst, and the Mining Guild +7 <span class="dl-refs"><span>#22</span></span></li>
          <li>Woodcutting: felling axes, nests, boosts, attire, axe charges and Forestry <span class="dl-refs"><span>#21</span></span></li>
          <li>Farming: a full per-player state engine for 73 crops across 98 patches <span class="dl-refs"><span>#26</span></span></li>
          <li>Herblore: the missing potions, attire tiers and the reagent pouch <span class="dl-refs"><span>#18</span></span></li>
          <li>Crafting: gems, jewellery, glassblowing, pottery, spinning <span class="dl-refs"><span>#17</span></span></li>
          <li>Fletching: carving, stringing, ammo, crossbows, cape <span class="dl-refs"><span>#28</span></span></li>
          <li>Hunter: traps, creatures, catching, attire and boosts <span class="dl-refs"><span>#30</span></span></li>
          <li>Runecrafting: every altar, entry, items, attire, combination runes, blood and soul <span class="dl-refs"><span>#29</span></span></li>
          <li>Thieving: 23 pickpocket families, attire effects, 13 stalls, 5 chests <span class="dl-refs"><span>#16</span></span></li>
          <li>Agility: courses, Marks of Grace and the graceful economy <span class="dl-refs"><span>#24</span></span></li>
          <li>Smithing: audited to the wiki, including the gold smelting level and Smiths' Uniform XP <span class="dl-refs"><span>#25</span></span></li>
          <li>Firemaking: camphor and pyre logs, log basket, light source fixes <span class="dl-refs"><span>#14</span></span></li>
          <li>Cooking: exact burn model, 25 new foods, dairy churn, sounds <span class="dl-refs"><span>#10</span></span></li>
          <li>Prayer: overhead effects, altar recharge, potions and the training extras <span class="dl-refs"><span>#9</span></span></li>
          <li>Charging for tridents, Sanguinesti staff, sceptres and the Scythe <span class="dl-refs"><span>#6</span></span></li>
        </ul>
      </section>
      <section class="dl-group">
        <h2 class="dl-group-title"><span class="dl-tag dl-tag--fixed">Fixed</span></h2>
        <ul class="dl-changes">
          <li>Charged weapons crashed instead of charging <span class="dl-refs"><span>#6</span></span></li>
          <li>Twisted bow damage wasn't clamped, and chinchompas didn't work in multi <span class="dl-refs"><span>#6</span></span></li>
          <li>Grimoire only unlocked some prayers. It grants all of them now, Chivalry and Piety and Rigour included <span class="dl-refs"><span>#12</span></span></li>
          <li>Regenerate checks the rune requirement per rune, so a powered staff supplying the water rune still triggers the heal <span class="dl-refs"><span>#5</span> <span>#7</span></span></li>
          <li>Crash when an npc queued a hit with zero delay, hit by Flask of Fervour and pact burn <span class="dl-refs"><span>#20</span></span></li>
          <li>Baseline pass over the four bosses that already existed: DKs, Scorpia, Gemstone Crab and Doom <span class="dl-refs"><span>#8</span></span></li>
          <li>Invalid impling npc names broke the cache build <span class="dl-refs"><span>#38</span></span></li>
          <li>Gameval id collisions between currency, forestry, agility and jewellery content <span class="dl-refs"><span>#33</span> <span>#41</span> <span>#42</span></span></li>
          <li>Stale and conflicting entries in the committed content mapping file <span class="dl-refs"><span>#34</span></span></li>
        </ul>
      </section>]]></content:encoded>
    </item>
  </channel>
</rss>
