Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 16:55
· 16 commits to main since this release
1d95365

BetterRations

v0.2.0 (2026-10-03)

Full Changelog Previous Releases

  • fix: stop rewriting all macros at every login
    GetMacroBody returns the stored body with a trailing newline after a
    reload, so the first scan of every session saw three mismatches and
    rewrote macros that had not changed. Compare without trailing
    whitespace.
  • fix: rescan after landing from a flight path
    A /reload in flight scanned while no item was usable and wrote the
    empty macros, and nothing rescanned on landing. Scans are now deferred
    while on a taxi, like in combat, and a scan runs a second after
    PLAYER_CONTROL_GAINED, the same grace a level-up gets.
  • feat: healthstone then potion in one fight
    When both a healthstone and a healing potion are picked, BR Eat becomes
    a castsequence: first press in a fight uses the stone, second the
    potion, reset when combat ends. With one combat item it stays a plain
    /use. /br prints the sequence.
  • fix: only consumables count, not recipes
    A potion recipe quotes the tooltip of the potion it makes and has Potion
    in its name, so it was picked as the combat item. Judge by item class
    before reading the tooltip: anything that is not a Consumable is marked
    useless without parsing, which also spares most of the bag at login.
  • feat: potions in combat as an option
    Off by default. With potions on, BR Eat uses the best healing potion in
    combat when there is no healthstone, and BR Drink uses the best mana
    potion. Potions are recognised by name and the "Restores X to Y" range
    in the tooltip, ranked by the low end. /br now also lists the combat
    item per macro, and /br potions toggles the setting.
  • fix: retry scans that could not read an item
    A freshly crafted bandage was not picked up until the next bag event:
    the scan right after crafting could not read the new item yet, and
    nothing scheduled a second look. A scan that leaves an item unread now
    retries after a second, up to three times. /br perf shows how many
    items the last scan left unresolved.
  • perf: cheaper bag scans, guard uncached items
    Read slots with GetContainerItemID instead of GetContainerItemInfo,
    which built a table per slot (46.7 KB and 1.63 ms per scan with 34
    items), and fetch counts with GetItemCount only for consumables. Cache
    false for items with no use, so the pick loop and IsUsableItem only see
    consumables. Hoist the pick list and the debounce callback out of the
    hot paths.
    Also skip items whose data the client has not loaded yet: the tooltip
    would read "Retrieving item information" and the item would be cached
    as useless for the session. Request the data and rescan on
    ITEM_DATA_LOAD_RESULT.
  • feat: add /br perf with scan timing and memory
    Counts scans and macro edits, times each update and measures what it
    allocates, so the optimisation pass has before and after numbers.
    Mirrors /bqt perf.