v1.1.0-classic
What's new
SwingTime
v1.1.0 (2026-07-26)
Full Changelog Previous Releases
- Add on-screen text warnings (OUT OF RANGE / NOT ATTACKING)
A centered, draggable text block that warns when the target is out of
range or auto-attack isn't running. Each message is independently
toggleable and styled (custom text, LSM font, size, outline, color);
both stack vertically when they apply at once. Shown only with a live
attackable target in combat, and revealed by /st unlock for positioning
(which doubles as the style preview).
Detection lives in a new CombatState.lua rather than SwingCore.lua, whose
contract is to run an OnUpdate only while auto-shooting; a 10 Hz range
poll is a different concern, and the timing engine is the least testable
code here. It reads only public SwingCore state, so that file is
untouched.
Range detection is layered by confidence: IsActionInRange off the scanned
action slots, then IsSpellInRange, then CheckInteractDistance for melee
only. Ranged fails open, since a false OUT OF RANGE while shooting at
30 yd is worse than no warning. A Range check option overrides the
melee/ranged heuristic. Both states are debounced asymmetrically so the
text can't strobe at the range boundary or between auto-shots.
Action slots are matched by spell id via GetActionInfo, because
IsAttackAction/IsAutoRepeatAction report whether that attack is running
right now rather than what the action is, and so find nothing when
scanned at login. Ranged state reconciles via IsAutoRepeatAction, not
IsCurrentAction, which goes false during the reload gap.
Event registration is wrapped in pcall: an event name retired between
client builds would otherwise throw and leave the module half-defined.
Core gates both modules behind an init check so a failure there can never
take down the bars or the config window.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com - Revise DESCRIPTION.md for improved clarity
Updated the features and getting started sections for clarity and added a help command.
This mod has no additional files

