spellbook, music and presets

This one is mostly about the parts of the game you touch every session. The magic tab is now the live OSRS spellbook, the music tab finally works instead of rendering blank, and the preset manager has been rebuilt into something you can actually manage gear with. Vardorvis is open to everyone, and a long list of combat maths and sound faults have been corrected along the way.
Highlights
- The standard spellbook, 1:1 with OSRS - the magic tab is now the live game's book: 70 spells in the right order with the right art, the four Surge spells castable for the first time, and OSRS's spell info box on hover.
- A working music player - the bottom right sidebar tab used to be clickable and permanently blank. It is now a real music player with the full 291 track roster, every track playable from your first login, and Auto, Manual and Loop modes.
- Preset manager rebuilt - create, duplicate, rename, overwrite, delete, lock and reorder presets, pick a spellbook, and edit levels by clicking the stats strip. Before this there was no working way to create a preset at all.
- Vardorvis is live - the first of the Desert Treasure 2 bosses is out of the owner-only commands and onto the Bosses tab of the teleports window.
- Blood Tournaments play like real PK - the safe bracket now hands out authentic endgame loadouts, contact is forced so nobody wins a fight by running, and the backfill bots got a pile of behaviour fixes.
- Every whip in the game swung in silence - two stacked sound bugs meant plain and tentacle whips, and eight other ids, produced no audio at all. Both are fixed, and the sound bank now proves an id really makes a noise before listing it as playable.
New content
- Vardorvis - the Desert Treasure 2 boss is reachable by everyone from the Bosses teleport tab. The other three of the Forgotten Four stay held back for now.
- Ornate granite maul - sold built in the Armoury for 5,000,000 coins or 10,000 blood money. It drains 50 percent per special instead of 60, so it gets two smashes out of a full bar, and unlike OSRS it is tradeable and drops to whoever kills you.
- Combat Achievement rewards - every tier you finish now pays a bundle you claim by hand: coins, blood money, noted supplies and blood keys or caskets, plus a capstone for clearing all 144 tasks.
- Tournament shop cosmetics - the tournament points shop is cosmetic only now, stocking the Vengeance scroll and the Death scroll at 50 points each. Reading one permanently swaps the graphic your Vengeance casts, or your death slump and respawn.
- Examine text for everything - this revision of the cache ships no examine descriptions at all, so we imported them: 10,753 NPC lines and 26,639 object lines. Objects that used to examine as "It's a null." now say something real.
Combat and balance
- Boss melee landed a tick late - a dozen scripted bosses queued their melee hits one tick behind the swing, so the splat arrived 600ms after the animation and read in-client as the boss being out of sync. They all land with the swing now.
- Special attack costs swept against the wiki - five drains were wrong and none of them had a source. Armadyl crossbow goes 40 to 50 percent, brine sabre 50 to 75, burning claws 30 to 35, eldritch nightmare staff 75 down to 55, and the plain granite maul back up to 60.
- Every magic special's accuracy bonus was doing nothing - the accuracy multiplier was only ever read on the melee and ranged paths, so Immolate's advertised 50 percent boost, and every other magic special's, was inert. It now applies on all three.
- Nightmare staff specials corrected - Invocate counted the staff's own magic damage twice, both staves rolled damage in a way that could never hit 0 and only landed on multiples of your bonus, Invocate's prayer restore now overheals to 120, and both specials finally draw their cast and hit graphics.
- Granite maul switch specs - only the plain maul could spec straight off a weapon switch. The clamped, duplicate and ornate mauls all do it now.
- An armed special used to lose to autocast - if you were autocasting, hitting the spec bar cast the spell instead, which meant the nightmare staves and the Accursed sceptre could never spec at all while autocasting.
- The Grand Exchange was an item escape route - an item on a sell offer is out of your hands and safe, which meant listing one could smuggle a safe tournament kit out of a tournament, or save your gear from a Wilderness death. The exchange now refuses to open anywhere a bank would.
Interface and quality of life
- Teleports window rework - cut from seven categories to two, Bosses and Wilderness, with a tab bar across the top and Home pinned to the footer. Bosses used to show four and a half rows at a time in a narrow column; it now shows the list. Duel Arena, Castle Wars and Pest Control lost their teleport, so those are a walk.
- The home Portal Nexus works - clicking it opens the teleports window, and so does every standard spellbook teleport except Home, at no rune or level cost.
- Combat Achievements got a layout pass - scrolling lists, proper panel insets, widths measured off the longest real string, and the icon art that was previously missing.
- Magic tab icon follows your spellbook - the book on the sidebar now matches the book you are actually using.
- Presets open somewhere useful - a first login lands on the Global tab with a loadout already selected rather than on ten empty slots.
- Update notes on the website - every update now gets a post on the site's Updates page as well as the Discord.
Client and performance
- New audio engine - sound runs on OSRS's own mixer now, so effects sit where they should in the world and do not crackle or stack up. The volume slider is a real sliding scale rather than three steps.
- Music plays on the OSRS synthesiser - the game's own instrument bank is imported into the cache, so tracks render on the authentic synth rather than whatever MIDI device your system happens to provide.
- Take the client update before you play - object examine moved to the server this release, which changes the wire protocol. An old client against the new server misreads every click after an examine until you relog, which is what a "Please wait..." dialogue freeze turned out to be.
Fixes
- 190 of the 291 music tracks never actually started - the instrument decoder was restarted rather than resumed each tick, so most of the roster, including both login tracks, was silently doing nothing. The whole roster is now proven to render.
- A sound that looped forever - some effects played on a loop that nothing could stop, and stayed with you for the rest of the session. They play once now.
- Clicking a spell then a target did nothing - every spell you cast by picking a target afterwards silently failed, on the whole spellbook. They all cast now.
- Tournament bots fight properly - they did not take a single combat action until you attacked them back, ate at a hardcoded 30 hitpoints regardless of their loadout, ate their combo karambwan as a meal, and skipped the one heal that decides whether they live.
