Skip to content

Releases: Langmans/FeedPetEmotes

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:44

Changelog

1.2.0 - 2026-10-10

  • Fixed: feeding could give an "AddOn tried to call the protected function"
    error instead of an emote. WoW: Forever only lets an addon send chat as
    part of a key press or click, so the emote now goes out on your next key
    press (moving counts) or click after the feeding, and is skipped if none
    comes within ten seconds. It is also skipped while the game blocks addon
    chat altogether (in combat, for instance); /fpe debug says why, and
    /fpe selftest shows whether chat is locked.
  • Optional support for the MessageQueue addon: when it is installed, it
    holds the emote until your next input of any kind (any click, the mouse
    wheel, a gamepad, or a key from its AutoHotkey helper).
  • The options panel has a "Your pet's sex" section: male, female or from the
    game for the summoned pet, the same choice as /fpe sex.
  • The sex chosen for a pet you have since released is forgotten at the next
    login.
  • More variety in English and German: instead of always "feeds Fluffy ...",
    the emote often starts differently ("tosses Fluffy a ...", "bribes Fluffy
    with a ..."), and some emotes are a small scene of their own ("turns around
    for one second. The Mystery Meat is gone, and Fluffy looks very
    innocent."), including two per pet family ("puts some Mystery Meat on the
    table. Fluffy knocks it off, then eats it off the floor.").
  • English says "some" for food you do not count and plurals: "feeds Fluffy
    some Mystery Meat", "some Alterac Swiss", "some Deep Fried Plantains",
    while "a Haunch of Meat" keeps its "a".

1.1.1 - 2026-10-07

  • Fixed: the options panel showed none of your settings (boxes unticked, the
    chance slider without title or position) when it was opened right after
    another addon's options panel.

1.1.0 - 2026-10-06

  • Your own emote lines: add them with /fpe add <line> or in the options
    panel, see them with /fpe list, remove them with /fpe remove <number>
    or the X next to a line in the panel's scrollable list. Each character has its own list, or ticks
    "Share my lines with all characters" (/fpe shared on|off) to use one
    list for all your characters.
  • Own lines take the same placeholders as the built-in ones ({pet}, and
    {he} for he/she), plus {food} for the food's name.
  • Conditions on your own lines: only for some pet families, foods or sexes,
    ticked in the panel or typed in brackets (/fpe add [cat,fish] ...).
    Lines can be edited in the panel.
  • How often your own lines come up: by default every fitting line counts the
    same; /fpe chance <0-100> or the panel's slider sets a fixed share of
    emotes that want one of your lines, up to 100% for your lines only.
  • When an own line is wanted but none fits, a built-in line is used; untick
    "Use a built-in line when none of mine fits" (/fpe fallback off) to send
    just "feeds Fluffy a Mystery Meat." instead.
  • /fpe sex male|female|auto tells the addon your pet's sex, which WoW:
    Forever does not report for hunter pets, so the he/she lines and pronouns
    work. Each pet keeps its own choice through renames, relogs and stable
    swaps.
  • New placeholder {boy} for boy or girl ("Good {boy}!"), with its own word
    in every language ({Junge}, {chico}, {garçon}, {мальчик}, {소년}).
    New lines for every pet use it, such as "Who's a good {boy}?"; without a
    known sex they name the pet ("Who's a good Fluffy?").
  • New placeholder {his} for his or her ("Fluffy's" when the sex is not
    known); German {sein}, Korean {그의}. With a few new lines, such as
    "Hey, those are my fingers, not {his} dessert!".
  • Many more built-in lines in English and German: 20 for every pet and 10
    for each of the 17 pet families, so each pet has about 30 to pick from.
  • The options panel scrolls.
  • The options panel shows the version, author and license, and the
    website in a box you can copy it from.
  • Settings you never changed follow the addon's defaults, also when a later
    version changes one: only the settings you changed are saved.
  • On characters that are not hunters the addon stays idle: it no longer
    watches your cursor and bags there. /fpe says so, and the settings can
    still be changed.

1.0.0 - 2026-10-05

First release, for WoW: Forever.

  • Sends a random /emote naming the food whenever you feed your hunter pet,
    however you feed it.
  • Lines for every pet, for each kind of food and for all 17 tameable pet
    families; "he" or "she" when the game tells the pet's sex.
  • Emote lines in English, German, Spanish, French, Korean and Russian.
  • Options panel (/fpe config): turn emotes off, or always use the pet's
    name.

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 07 Oct 17:07

Changelog

1.1.1 - 2026-10-07

  • Fixed: the options panel showed none of your settings (boxes unticked, the
    chance slider without title or position) when it was opened right after
    another addon's options panel.

1.1.0 - 2026-10-06

  • Your own emote lines: add them with /fpe add <line> or in the options
    panel, see them with /fpe list, remove them with /fpe remove <number>
    or the X next to a line in the panel's scrollable list. Each character has its own list, or ticks
    "Share my lines with all characters" (/fpe shared on|off) to use one
    list for all your characters.
  • Own lines take the same placeholders as the built-in ones ({pet}, and
    {he} for he/she), plus {food} for the food's name.
  • Conditions on your own lines: only for some pet families, foods or sexes,
    ticked in the panel or typed in brackets (/fpe add [cat,fish] ...).
    Lines can be edited in the panel.
  • How often your own lines come up: by default every fitting line counts the
    same; /fpe chance <0-100> or the panel's slider sets a fixed share of
    emotes that want one of your lines, up to 100% for your lines only.
  • When an own line is wanted but none fits, a built-in line is used; untick
    "Use a built-in line when none of mine fits" (/fpe fallback off) to send
    just "feeds Fluffy a Mystery Meat." instead.
  • /fpe sex male|female|auto tells the addon your pet's sex, which WoW:
    Forever does not report for hunter pets, so the he/she lines and pronouns
    work. Each pet keeps its own choice through renames, relogs and stable
    swaps.
  • New placeholder {boy} for boy or girl ("Good {boy}!"), with its own word
    in every language ({Junge}, {chico}, {garçon}, {мальчик}, {소년}).
    New lines for every pet use it, such as "Who's a good {boy}?"; without a
    known sex they name the pet ("Who's a good Fluffy?").
  • New placeholder {his} for his or her ("Fluffy's" when the sex is not
    known); German {sein}, Korean {그의}. With a few new lines, such as
    "Hey, those are my fingers, not {his} dessert!".
  • Many more built-in lines in English and German: 20 for every pet and 10
    for each of the 17 pet families, so each pet has about 30 to pick from.
  • The options panel scrolls.
  • The options panel shows the version, author and license, and the
    website in a box you can copy it from.
  • Settings you never changed follow the addon's defaults, also when a later
    version changes one: only the settings you changed are saved.
  • On characters that are not hunters the addon stays idle: it no longer
    watches your cursor and bags there. /fpe says so, and the settings can
    still be changed.

1.0.0 - 2026-10-05

First release, for WoW: Forever.

  • Sends a random /emote naming the food whenever you feed your hunter pet,
    however you feed it.
  • Lines for every pet, for each kind of food and for all 17 tameable pet
    families; "he" or "she" when the game tells the pet's sex.
  • Emote lines in English, German, Spanish, French, Korean and Russian.
  • Options panel (/fpe config): turn emotes off, or always use the pet's
    name.

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 17:57

Changelog

1.1.0 - 2026-10-06

  • Your own emote lines: add them with /fpe add <line> or in the options
    panel, see them with /fpe list, remove them with /fpe remove <number>
    or the X next to a line in the panel's scrollable list. Each character has its own list, or ticks
    "Share my lines with all characters" (/fpe shared on|off) to use one
    list for all your characters.
  • Own lines take the same placeholders as the built-in ones ({pet}, and
    {he} for he/she), plus {food} for the food's name.
  • Conditions on your own lines: only for some pet families, foods or sexes,
    ticked in the panel or typed in brackets (/fpe add [cat,fish] ...).
    Lines can be edited in the panel.
  • How often your own lines come up: by default every fitting line counts the
    same; /fpe chance <0-100> or the panel's slider sets a fixed share of
    emotes that want one of your lines, up to 100% for your lines only.
  • When an own line is wanted but none fits, a built-in line is used; untick
    "Use a built-in line when none of mine fits" (/fpe fallback off) to send
    just "feeds Fluffy a Mystery Meat." instead.
  • /fpe sex male|female|auto tells the addon your pet's sex, which WoW:
    Forever does not report for hunter pets, so the he/she lines and pronouns
    work. Each pet keeps its own choice through renames, relogs and stable
    swaps.
  • New placeholder {boy} for boy or girl ("Good {boy}!"), with its own word
    in every language ({Junge}, {chico}, {garçon}, {мальчик}, {소년}).
    New lines for every pet use it, such as "Who's a good {boy}?"; without a
    known sex they name the pet ("Who's a good Fluffy?").
  • New placeholder {his} for his or her ("Fluffy's" when the sex is not
    known); German {sein}, Korean {그의}. With a few new lines, such as
    "Hey, those are my fingers, not {his} dessert!".
  • Many more built-in lines in English and German: 20 for every pet and 10
    for each of the 17 pet families, so each pet has about 30 to pick from.
  • The options panel scrolls.
  • The options panel shows the version, author and license, and the
    website in a box you can copy it from.
  • Settings you never changed follow the addon's defaults, also when a later
    version changes one: only the settings you changed are saved.
  • On characters that are not hunters the addon stays idle: it no longer
    watches your cursor and bags there. /fpe says so, and the settings can
    still be changed.

1.0.0 - 2026-10-05

First release, for WoW: Forever.

  • Sends a random /emote naming the food whenever you feed your hunter pet,
    however you feed it.
  • Lines for every pet, for each kind of food and for all 17 tameable pet
    families; "he" or "she" when the game tells the pet's sex.
  • Emote lines in English, German, Spanish, French, Korean and Russian.
  • Options panel (/fpe config): turn emotes off, or always use the pet's
    name.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 18:57

Feed Pet Emotes

v1.0.0 (2026-10-05)

Full Changelog Previous Releases

  • Point the packager at the CurseForge project
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Add the CurseForge project logo
    media/logo.svg is the source, media/logo.png the 400x400 render used as
    the project avatar. .pkgmeta keeps media/ out of the addon zip.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Package releases for CurseForge with BigWigsMods/packager
    A pushed tag runs the tests, then the packager builds the zip (leaving out
    the dev files listed in .pkgmeta), uploads it to CurseForge and attaches it
    to a GitHub release. The X-Curse-Project-ID in the .toc is a placeholder
    until the CurseForge project exists; without the CF_API_KEY secret the
    upload is skipped.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Translate the options panel
    German, Spanish, French, Korean and Russian labels and notes for the
    three checkboxes. A test makes every locale carry every OPTION_ string.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Move the Feed-O-Matic exclusion from LICENSE to NOTICE
    With the extra paragraph GitHub no longer recognised LICENSE as MIT.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • License the addon under MIT
    The emote lines taken from Feed-O-Matic are excluded: that addon was
    published without a license, so they remain its authors' work.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Keep the README to what applies to every reader
    One top-level heading (markdownlint MD025): the technical part is a
    section with its own subsections. The local junction setup and the name
    of one particular bag addon are gone; they only described one machine.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Put the player documentation first in the README
    What the addon says, install, settings, languages and how to report a
    problem come first; files, internals, localization and development
    follow under a separate heading. The install section no longer describes
    one machine's junction; that moved to Development as a generic example.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Add an options panel and /fpe config
    Options.lua registers a panel in the game's settings (Settings API) with
    checkboxes for emotes on/off, always naming the pet, and the debug trace.
    The boxes are filled from FeedPetEmotesDBPC whenever the panel is shown,
    so changes made with /fpe show up; a click saves straight away.
    /fpe config (or /fpe options) opens it.
    The test client now gives frames scripts, CheckButtons and a Settings
    stub; tests/options.test.lua covers registration, opening and the boxes.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Rename the addon to FeedPetEmotes
    Folder, .toc, main file, saved variables (FeedPetEmotesDBPC) and slash
    commands (/fpe, /feedpetemotes) now use the shorter name.
    Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
  • Document that the UseContainerItem hook does not fire on Forever
    Verified in game: the Feed Pet: Forever button's secure target-bag click,
    like Feed Pet from the spellbook with EllesmereUIBags, never reaches the
    hook, and the food is recognised by leaving the bags instead. The hook
    stays for clients where it fires; the README and the FoodTracker comment
    now say which route does the work on Forever.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Count the bags without building tables
    countBags ran on every BAG_UPDATE_DELAYED and called GetContainerItemInfo
    per slot, which builds a table with an item link for each, plus a new
    count table per update. It now reads GetContainerItemID per slot (a plain
    number), totals each distinct item once with C_Item.GetItemCount, and
    reuses two count tables that swap roles, emptied with wipe(). Tests check
    that a scan makes no GetContainerItemInfo calls and reuses its tables.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Split the addon into modules
    FeedPetForeverEmotes.lua held helpers, emote text, food recognition,
    commands and events in one file. It now has:
    • Core.lua: helpers and the saved settings (E.LoadSettings, E.db)
    • Emote.lua: the emote text, no state
    • FoodTracker.lua: E.FoodTracker, one object with all state of the food
      recognition (targeted, cursor, eaten), its claim and the wait for bags
    • Commands.lua: /fpfe and the selftest
    • FeedPetForeverEmotes.lua: only the event frame, the hook and sending
      No change in behaviour: the 80 tests pass unchanged, coverage stays at
      100%, now per module. The .toc lists the new files, so WoW needs a full
      restart.
      Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Handle each event in its own method on the frame
    OnEvent now dispatches self[event](self, ...): ADDON_LOADED,
    CURSOR_CHANGED, BAG_UPDATE_DELAYED and UNIT_SPELLCAST_SUCCEEDED each get
    a method with named parameters instead of one if-chain over arg1..arg3.
    A test checks that every registered event has a handler.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Save /fpfe debug per character
    The debug trace stays on across reloads and relogs until switched off,
    instead of having to be turned on again after every /reload.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Recognise food fed from the spellbook by what leaves the bags
    Feed Pet cast from the spellbook and a click on food in EllesmereUIBags
    reached the client without any Lua call, so the food was unknown, and
    ITEM_LOCK_CHANGED showed nothing either. Item counts in the bags are now
    kept per BAG_UPDATE_DELAYED; the item whose count dropped is the food.
    The bags may update after the cast is reported (they did in game), so a
    cast with no other sign of its food waits up to a second for them, then
    sends with or without the food. Targeted and cursor food still go at once.
    Verified in game on Forever 1.60.1.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Rename saved settings to FeedPetForeverEmotesDBPC
    The variable is saved per character; the DBPC suffix says so, following
    the usual DB/DBPC convention. Settings saved under the old name are not
    carried over (two switches, both back to their defaults).
    The tests now read the saved-variable name from the .toc, seed the
    settings under it and read them through Saved(), so the .toc and the
    code cannot drift apart.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Add pronoun placeholders that follow UnitSex, and /fpfe name
    Emote lines can hold {pet} (always the pet's name) or a pronoun from the
    locale's own pronouns table, e.g. enUS {he} -> he/she, deDE {er} ->
    er/sie. The pronoun follows UnitSex("pet"); with an unknown or secret
    sex, with /fpfe name on, or for a token the locale does not define, the
    pet's name is used instead. Pronouns never fall back to enUS.
    Lines that said "it" for the pet (cheese, crab, crocolisk) and a Russian
    line with a masculine verb now use the placeholder. /fpfe selftest shows
    how pronouns are chosen.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Add food-type lines for vendor food
    E.FoodTypes maps the food sold by vendors on Forever to bread, meat,
    fish, cheese, fruit or fungus, classified by name from Wowhead's Forever
    vendor list (the client cannot tell an item's type). Every locale gets
    three lines per type; a food with its own joke also gets its type's
    lines. The mushrooms move from a food group to the fungus type.
    The README now also describes how food is recognised (targeted or from
    the cursor) and the item link in the emote.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Name food fed from the cursor; put an item link in the emote
    Dragging food onto the pet, or clicking it in a bag and then on the pet,
    never calls UseContainerItem, so the food was unknown. CURSOR_CHANGED is
    now watched: the item last on the cursor, let go of shortly before the
    Feed Pet cast, is the food. Food picked as Feed Pet's target still wins.
    The emote uses the item link instead of the plain name; English takes
    a/an from the name inside the link. /fpfe debug traces cursor pickup and
    release and says whether the food was targeted or from the cursor.
    Verified in game on Forever 1.60.1 (70205).
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Give every pet family at least three lines in every locale
    Covers the 17 Forever families and the three Wrath exotics in enUS,
    deDE, esES, frFR, koKR and ruRU; esES gains Spider, Crocolisk and
    Chimaera, which Feed-O-Matic never translated. A test now requires
    three lines per family per locale.
    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
  • Add tests with coverage, lint script, /fpfe selftest and /fpfe debug
    tests/ runs the addon against a simulated WoW client (tests/wow.lua) in
    fengari: 42 tests over locale fallback, emote p...
Read more