Repository navigation
Releases
BetterSpellWheel 0.4.7 — Frame rate fix for older UE4SS builds
BetterSpellWheel 0.4.7 — Frame rate fix for older UE4SS builds
- Fixes the frame-rate drop with the wheel closed on UE4SS builds from before late August 2026 (the 3.0.1 release and older experimental builds). 0.4.2–0.4.6 looked up the player controller every frame, and on those builds each lookup scans every game object (about 12 ms). Measured on an AMD Ryzen 9 9950X3D with UE4SS
0196ef29(CPU-bound, wheel closed): 0.4.6 ran at 59–61 fps, 0.4.7 at 154 fps, the same as current UE4SS builds. Thanks to dhenriques for the report and the A/B testing. - The controller is now checked through the engine's local player. A replaced controller (leaving and rejoining a World) is still noticed immediately, and a respawn now is too.
- Opening, hovering and casting no longer look up objects either.
- No change on current UE4SS builds such as the one the easy installer ships. Settings are unchanged.
Native results and limits: docs/performance/20261027/RESULTS.md.
Requires Dragonwilds-compatible UE4SS. Easy installation: https://www.rsence.com/mods/betterspellwheel/
BetterSpellWheel 0.4.6 — Smaller artwork and cached spell data
BetterSpellWheel 0.4.6 — Smaller artwork and cached spell data
- Cropped wheel artwork preserves the original pixels and reduces decoded texture data from 15.58 MB to 1.45 MB.
- Cache spell catalogues per World, refresh unlocks per skill and show rune-count feedback immediately. Thanks to dhenriques for the community performance contributions.
- Centre the cursor before opening; reduce input-release polling after casting. Keep controller/panel lifetime safeguards and the join-settle protection.
- Existing configuration keys remain supported. The experimental casting-reuse branch is excluded.
Performance measurements were mixed: open-idle p99 improved, closed-idle ranges overlapped, navigation was worse than PR #6 alone, and opening-event frames were longer. This is not an overall FPS improvement claim. Full results and coverage limits are in docs/performance/20261023/NATIVE-RESULTS.md and tests/performance-integration.md.
Requires Dragonwilds-compatible UE4SS. Easy installation: https://www.rsence.com/mods/betterspellwheel/
BetterSpellWheel 0.4.5
0.4.5 — Join crash fix
- Fix a crash a few seconds after joining a server. The wheel now waits until the World has finished loading (5 s
after your character appears) before it connects to the game's spell wheel, and binds only live game objects.
BetterSpellWheel 0.4.4 — Responsive navigation
0.4.4 — Instant wheel navigation
- Keep icons resident in Unreal and preload spell icons while the wheel is closed,
preventing repeat synchronous asset loads during rapid navigation. - Select and highlight in the current frame, with no dwell, smoothing or fades.
Spatial boundary hysteresis still prevents accidental edge flicker. - Update the open wheel every game frame; retain throttled background work.
- Measure only tooltip text and retain bounded text-fit results across openings.
- Read rune totals from the local player’s inventory components without a world-wide search.
Measured against the native wheel on SudoBlade; see docs/INSTANT-VALIDATION.md.
Install with the RSence Installer or download the separate Windows setup EXE at https://www.rsence.com/mods/betterspellwheel/. The manual ZIP requires Dragonwilds-compatible UE4SS and contains only .lua/.txt files.
BetterSpellWheel 0.4.3
- Much lower background cost. The mod no longer searches the game's objects every
frame: with the wheel closed it now uses about 2-3 ms of game-thread time per second
instead of about 35, and about half as much while the wheel is open. The wheel only
redraws what changed. - Cooldown timers keep updating from the game after a cast while the wheel is closed,
so the right time shows as soon as you open the wheel again. - Instant spells (such as Tempest Shield and Windstep) start their timer when the cast
animation ends; aimed and placed spells still wait for your confirmation, and a
cancelled cast starts no timer. - The game still decides whether a spell can be cast; timers never block a cast.
- New troubleshooting setting
PerfLoginconfig.txt(defaultfalse): settrueto
log the mod's per-second cost and the frame time to UE4SS.log. Leave it off for normal
play. Updating keeps your existingconfig.txt; add the line if you need it.
Measured and checked in-game: tests/live-perf-0.4.3.txt, docs/COOLDOWN-VALIDATION.md.
| File | SHA-256 |
|---|---|
| BetterSpellWheel-0.4.3-setup.exe (easy installer, includes UE4SS) | 71ab7fdc5d4d3df2cb6fffd61905fbe0c80c602a9f2ac01c66527e9d3a531fff |
| BetterSpellWheel-0.4.3.zip (manual install, CurseForge-compliant) | 1df71a99df9c29db979e9e44d3f726b56e7310257249838fb359acee8feaa057 |
| BetterSpellWheel-0.4.3.rspkg (RSence Installer package) | 62b6ab67a43c51fcda21c56f1b73d1612b3bb615f85d4d7e28f3e86d90d830cb |
The installer is not code-signed.
BetterSpellWheel 0.4.2
Cooldowns follow the game: no-cooldown mods work again.
- Fixed: with a mod that removes spell cooldowns (e.g. Utility Spells - No Cooldowns), the wheel still showed cooldown timers and refused to cast those spells, mostly when playing on someone else's server.
- The game now always decides. The wheel never refuses a cast because of its own timer; it says "On cooldown" only when the game refuses the spell.
- When the game accepts a spell the timer thought was on cooldown, the timer is dropped for that spell until the game itself reports a cooldown.
- Cooldown lengths are read live from the game's spell data; a cooldown of 0 shows nothing.
- New
ShowCooldownssetting inconfig.txt(defaulttrue). Updating keeps your config; addShowCooldowns=falseto hide the timers. - Creative worlds don't enforce spell cooldowns; the wheel no longer blocks casts there either.
- Normal cooldown display is unchanged for everyone else.
| File | SHA-256 |
|---|---|
| BetterSpellWheel-0.4.2-setup.exe (easy installer, includes UE4SS) | cd7e0eb9379f686b8fb4de2992af3f3cc2877534bce6dabb34b852dbd36e6194 |
| BetterSpellWheel-0.4.2.zip (manual install, CurseForge-compliant) | c363f04051e10a8645412c747ba703f61b084121d132ab9dd00fbbfe4e9849d5 |
The installer is not code-signed.
BetterSpellWheel 0.4.1
0.4.1 — CurseForge-ready packages
- The release ZIP now contains only
.luaand.txtfiles, as CurseForge requires for
Dragonwilds UE4SS mods. The wheel artwork is no longer shipped as images: the mod draws
it on first launch (about a second, once) and keeps it in itsAssetsfolder. - README, LICENSE and NOTICE ship as
README.txt,LICENSE.txtandNOTICE.txt. - No change to the wheel, casting or cooldowns since 0.4.0.
Downloads
- BetterSpellWheel-0.4.1-setup.exe: easy installer (finds Steam, installs UE4SS if needed, update/uninstall). Unsigned.
- BetterSpellWheel-0.4.1.zip: manual install and CurseForge upload (only .lua/.txt files; see INSTALL.txt). Requires Dragonwilds UE4SS.
- SHA256SUMS.txt
Checked in-game (wheel art drawn on first launch, casting, saved slots). Licensed Apache-2.0; derivatives must credit the original (NOTICE.txt).
BetterSpellWheel 0.4.0
0.4.0 — Centred radial, cooldowns, move while choosing
Brings in the improvements from the community fork (jackisace/rsdw-betterspellwheel,
PR #1 and its later 1.x builds), reviewed and adapted:
- The wheel is centred on screen with no background or side list. The hovered
spell's name, tool requirement and rune costs appear in the middle of the wheel;
each rune count is green when you carry enough and red when you don't. Its
description appears in a tooltip bar under the wheel. - Live cooldown timers on the outer ring. They come from the game itself: the last
cast time of every spell (so cooldowns started before loading in or outside the
wheel show correctly), the server's "on cooldown" notices, and the perk-adjusted
duration (a spell's cooldown modifier perk, once unlocked). A spell still on
cooldown can't be selected; the wheel says when it's ready. - Keep walking while the wheel is open (WASD / left stick). Only the wheel's own
buttons and the right stick are captured; the camera doesn't turn while the right
stick drives the wheel. - Controller: the right stick picks skills and, after choosing one, points straight
at a spell (wider slices than the mouse). X / Square hands over to the game's emote wheel. - Mouse: smoother pointing (light angular smoothing, wider rings with no gap, and
hysteresis so slices don't flicker at their edges). - The native wheel no longer flashes for a frame when the custom wheel opens or closes
(KeepNativeHidden, on by default). The game's select sound is muted for the cast. - The click or button that casts must be released for a moment before gameplay sees
input again, so it can't also swing a tool or confirm targeting. - If the game ignores the slot hand-off, the selected spell is written directly and
re-checked, so the first cast after launch fires the spell you chose. - A refused selection (on cooldown, missing runes or a tool) says why, in red, in the
tooltip bar. - Fixed a crash in the fork's code: it re-hid the game's own wheel every frame and could
call into it after the game had rebuilt it. The mod now leaves it alone while closed
and checks it still exists before touching it.
Tested in-game with mouse and keyboard (instant and aimed casts, cancel, cooldowns,
rune colours, walking while open). The new controller behaviour (right stick, emote
hand-off) has not been tested on a gamepad yet.
Downloads
- BetterSpellWheel-0.4.0-setup.exe: easy installer (finds Steam, installs UE4SS if needed, update/uninstall). Unsigned.
- BetterSpellWheel-0.4.0.zip: manual install (see INSTALL.txt inside).
- SHA256SUMS.txt
Installer suite: 10/10 passed (tests/installer-results-0.4.0.txt). Licensed Apache-2.0; derivatives must credit the original (NOTICE).
BetterSpellWheel 0.3.0 — Controller support
BetterSpellWheel 0.3.0 adds controller navigation to the skill-based spell wheel.
- Y / Triangle opens the wheel using the game's normal binding.
- Either stick or D-pad browses skills; A / Cross enters a skill, then selects its spell.
- B / Circle returns to skills, then closes. Held confirm/back cannot skip stages.
- Native casting, targeting, rune requirements and all saved spellbook assignments remain intact.
- Xbox / PlayStation button hints, configurable with ControllerPrompts; mouse movement switches back to mouse navigation.
Download the setup EXE for easy installation, or the ZIP for manual installation. INSTALL.txt is included in the ZIP; the EXE is a separate download. Close the game before installing.
Verified in-game with a virtual Xbox controller on TradeTester / local MODTEST: all 12 skills, held-button behavior, D-pad navigation, Windstep and Axtral casting, RT targeting confirmation, LT cancellation, all 48 saved slots, movement isolation, mouse handoff and layout checks. The Windows installer suite and interactive install/update/uninstall passed.
Physical controllers and native PlayStation input remain unverified; PlayStation labels were visually checked. See tests/TEST-REPORT.md for exact coverage and remaining limits. Installer is unsigned.
BetterSpellWheel 0.2.2 (beta)
BetterSpellWheel now ships with a separate Windows installer and a manual ZIP containing INSTALL.txt.
- BetterSpellWheel-0.2.2-setup.exe: easy installation, automatic Steam game discovery, UE4SS included for fresh installs, update/uninstall support. Existing UE4SS, other mods and customized settings are preserved on update.
- BetterSpellWheel-0.2.2.zip: manual mod installation; instructions are at the ZIP's top level. Requires an existing Dragonwilds-compatible UE4SS installation. The EXE is not inside this ZIP.
The wheel and casting behavior are unchanged from 0.2.1. The installer is unsigned. This remains a keyboard/mouse beta; multiplayer-client and alternative display configurations remain unverified.
Validation: source/payload hash parity, Windows fresh/update/repeat/uninstall cases, existing UE4SS layouts, other-mod/config/data preservation, running-game refusal, invalid targets, loader conflicts, old-name collisions and junction refusal; interactive install/update/uninstall and read-only Steam detection also passed. Full results are in tests/TEST-REPORT.md.