promotional bannermobile promotional banner

SaltyDog Loot Tracker • Pro Fishing • Social & RP

SaltyDog provides the most sophisticated fishing and loot tracking tools & options on the market and let's you die like a movie star!
Back to Files

SaltyDog-0.9.8.1-forever

File nameSaltyDog-0.9.8.1-forever.zip
Uploader
SaltyDogDevSaltyDogDev
Uploaded
Oct 3, 2026
Downloads
17
Size
2.2 MB
Flavors
Forever
File ID
9048049
Type
R
Release
Supported game versions
  • 1.60.1

What's new

2026-10-03 — 0.9.8.1: stutter on item loot removed

  • Report (WoW: Forever beta players): "a large stutter occurs when an item is looted (non currency)".
  • Cause: after every stored item, DB:NotifyModulesUpdate() (Core/GlobalDatabase.lua) ran collectgarbage("collect"). That is a full, blocking garbage-collection cycle over the memory of every loaded addon, not just SaltyDog's, so the bigger the UI, the longer the freeze. Money and currency are not stored as loot, so they never triggered it, which matches the report exactly. The same full collect also ran when any Loot/Fish page or the world-map panel was hidden (8 more places), and every page refresh ran its own collectgarbage("step", 50).
  • API check: warcraft.wiki.gg collectgarbage (current for mainline 12.x, Classic Era 1.15.x and TBC Anniversary 2.5.x): "collect" performs a full cycle, "step" performs one incremental step. WoW runs Lua's incremental collector on its own, so a forced full collect is never required.
  • Fix:
    • New SaltyDog.RequestGC() in Core/Init.lua. Requests are merged into one small job that waits until nothing new has come in for 2 s (a whole loot pile counts once), never runs in combat (it waits for PLAYER_REGEN_ENABLED), and then does at most 8 small incremental steps (64 KB each), one per frame. It stops early once a cycle finishes.
    • All 9 collectgarbage("collect") calls and all 8 per-refresh collectgarbage("step", 50) calls now go through RequestGC().
  • No return of the old CPU buildup: the buildup we fixed earlier came from tickers running twice a second forever. RequestGC creates no ticker or OnUpdate: it only runs after a request, finishes within 8 frames and then stops. Nothing repeats while idle, and nothing polls during combat.
  • Offline test (WoW-like stubs, sandbox globals removed; the same results for Forever, Retail and Classic):
    • no GC work while items keep coming in, and never a full collect;
    • one bounded job after a 30-item burst (8 steps);
    • nothing at all during 10 idle minutes, with no timer left running;
    • nothing in combat, and the job runs after combat;
    • 500 page refreshes produce at most 8 steps (previously 500);
    • memory still comes back: +42 KB after 200 loot rounds.
  • Version 0.9.8 → 0.9.8.1 in all .toc files and the splash screen (new top bullet).
  • Not tested in a live Forever client (none installed locally). Published to CurseForge for WoW Forever.

This mod has no additional files