19 August 2026
The dice do the work now, and the music behaves
Two batches in one: the dice commands finish what you started instead of handing you homework, and the music player got a week of reliability work after YouTube had a bad few days. Plus one Pokemon fix that mattered: beating a champion counts again.
- r!cast rolls the spell: attack, damage, save DC and cantrip scaling, not just the slot.
- Short rests work properly: spend hit dice, and only Pact Magic slots come back.
- Pressing stop stops the music. Autoplay no longer queues songs over your stop.
- Champion battles record your win again, including the title and the role.
At the D&D table
All prefix commands, on your active character.
It used to print the description and take the slot, and you still rolled everything yourself. Now a spell with an attack rolls it, damage is rolled with the right dice, saves quote your DC, cantrips scale with your level, and casting with a bigger slot adds the extra dice. A spell it cannot model says so and shows the text rather than guessing a number.
r!rest short asks how many hit dice you want to spend and heals you for them. Only Pact Magic slots return on a short rest, and a long rest gives back half your hit dice, not all of them. Your hit die comes off your sheet, so a multiclass does not fall back to the wrong die.
Sheets hold resources now: a name, a number of uses, and what kind of rest brings them back. r!use spends one, r!res shows and adjusts them, and rests restore the right ones. Works the same for homebrew as for a Monk.
r!c stealth str rolls Stealth with Strength, the way the optional rule in the book works, keeping everything your training adds. r!init rolls initiative off your sheet. Levelling up now grants the spell slots your new level is owed and offers the extra ability score increases Fighters and Rogues get.
Music that holds together
A run of fixes after YouTube spent a weekend refusing songs.
Pressing stop used to let autoplay wander off and queue related tracks anyway. Stopping now switches autoplay off for that session and clears everything queued. Your autoplay setting is untouched: the next session plays the way you set it.
When YouTube refuses songs, the bot retries them through its own cache, swaps its connection when that is what is broken, and posts one notice instead of skipping through your whole queue in silence. A genuinely dead video is skipped once, by name.
A song added from Spotify sometimes plays a slightly longer video, and the bar used to run past the end of the listed time. The player shows the length of what is actually playing, and seek can reach all of it. When the exact length is not knowable the total is marked with a tilde rather than stated wrongly.
Skip, pause, seek and friends acknowledge you first and act second, so a slow music server no longer shows "interaction failed" over a command that actually worked.
One Pokemon fix
For a while, defeating a region champion in battle quietly recorded nothing: no title, no role, and the challenge stayed stuck. Fixed. If you beat a champion and got nothing for it, challenge again and the win will stick.
Sharing this somewhere else? Plain text version, ready to paste into Discord or Patreon.