Buffet
Buffet is a food/water macro generator originally developed by tekkub and currently maintained by mZHg.
What's new :
- Added support for TBC Anniversary
Feel free to report any bug or request any feature here :)
Features:
- Dynamically scan your bag for usable food, drink, potion, rune, managem and bandage
- Provide 6 macros auto-magically updated (out of combat)
- Consumable and food/drink
- Food and Drink only
- Consumable only
- Allow configuration of modifiers used by macros
- Option to default macros to hearthstone if no item found
- Option to consider "well-fed" food items in macros
- Option to consider "toxic" potion items in macros
- Support dark and demonic runes
- Support Classic Wow
- Custom macro using lua scripting language, see here for more info
- User-defined ignore list (per characters)
Currently supporting the following localizations:
For retail:
- English (enUS)
- Deutsch (deDE)
- Español (esES)
- Français (frFR)
- Italiano (itIT)
- Русский (ruRU) provided by ZamestoTV
For Cataclysm:
- English (enUS)
- Deutsch (deDE)
- Español (esES)
- Français (frFR)
- Korean (koKR) provided by coderhyme
For Classic:
- English (enUS)
- Deutsch (deDE)
- Español (esES)
- Français (frFR)
Partially supporting the following localizations:
For Retail, Cataclysm and Classic:
- Simplified Chinese (zhCN) provided by Witnesscm, with additional fixes for WtLK by clijiac
If you want to contribute to localizations, pull requests are welcome!
-
View User Profile
-
Send Message
Posted Aug 27, 2025In reply to mZHg:
Hello,
got and using the 128 now. It is using the Cavedweller's Delight now, but only that (and on my bags I do have them, the Algari Healing Potions, and the Healtstones).
As locale, I use en_US on the EU client/Italian server.
-
View User Profile
-
Send Message
Posted Aug 29, 2025In reply to Difious:
Hello,
Please try release 129. I've fixed few issues with items detection.
I found no issue with detection of Healthstones, however.
-
View User Profile
-
Send Message
Posted Aug 31, 2025In reply to mZHg:
Hi mZHg,
I see that v130 has been released in the meantime and my CurseForge automatically updated to it.
At the time I cannot test Healthstones as I am not finding any group with a Warlock (but I will keep trying), but for the other two potions I can see that the mod is back using only Algari Healing Potion.
To double-check I tried to remove the macro from both the action bar and /macro, then I went to Option-Addons-Buffet, clicked to "HP cons", and placed it on the action bar.
-
View User Profile
-
Send Message
Posted Aug 31, 2025In reply to Difious:
Hi,
If you have both potion in your bag, Buffet will only show the one with giving the most HP.
You can check if they are correctly detected with the following command:
/buffet debug <itemLink>
-
View User Profile
-
Send Message
Posted Sep 1, 2025In reply to mZHg:
Ah OK, my bad; I thought it could auto-rotate between them depending which one is off cool-down. :)
-
View User Profile
-
Send Message
Posted Sep 1, 2025In reply to Difious:
Macro cannot be rewritten in combat so it is not possible. However, you might be able to write a custom macro with a /castsequence and reading from "availables", see wiki here:
https://github.com/HgAlexx/Buffet/wiki/Custom-Macros
-
View User Profile
-
Send Message
Posted Aug 8, 2024The BuffFood macro is not showing GrilledSquid, ItemID 13928.
-
View User Profile
-
Send Message
Posted Aug 8, 2024In reply to fireymerlin:
Hello,
This is a well-fed food, did you enabled the related options to show well-fed food in the macro?
-
View User Profile
-
Send Message
Posted Aug 9, 2024In reply to mZHg:
I have checked the option to "Also consider well fed items (all amcros)". This works for other well-fed food. I got the code from you in another comment below. Here it is:
local bests = ...
-- Best wellfed food with default to hearthstone
local bestfood = bests.wellFedFood or ''
return "#showtooltip\n/cast item:" .. bestfood
-
View User Profile
-
Send Message
Posted Aug 8, 2024In reply to fireymerlin:
The item is properly detected as food on my end, but not as well-fed.
It will be fix in next release.
If you still have an issue with release 115, please show me the output of the command:
/buffet debug [Grilled Squid]
Thanks.
-
View User Profile
-
Send Message
Posted Aug 9, 2024In reply to mZHg:
I'm using version Buffet-115.zip.
Grilled squid not showing as buff food.
Here is the debug output:
[06:06:33] Buffet: Item [Grilled Squid]:
[06:06:33] Buffet: - Is health: Yes
[06:06:33] Buffet: - Is mana: No
[06:06:33] Buffet: - Is well fed: No
[06:06:33] Buffet: - Is conjured: No
[06:06:33] Buffet: - Is percent: No
[06:06:33] Buffet: - Is food and drink: Yes
[06:06:33] Buffet: - Is potion: No
[06:06:33] Buffet: - Is toxic potion: No
[06:06:33] Buffet: - Is bandage: No
[06:06:33] Buffet: - Is over time: No
[06:06:33] Buffet: - Is restricted: No
[06:06:33] Buffet: - health value: 874
[06:06:33] Buffet: - mana value: 0
[06:06:33] Buffet: - itemClassId: 0
[06:06:33] Buffet: - itemSubClassId: 0
-
View User Profile
-
Send Message
Posted Sep 5, 2024In reply to fireymerlin:
Oups, sorry I wasn't notified of your reply, I'll have a look later today.
-
View User Profile
-
Send Message
Posted Jul 23, 2024Hi.
I don't know which addon is at fault but it seems to be a combination of 2 enabled addons (the only other addons I have enabled are bugsack and buggrabber):
Buffet and HaveIDoneThat cause errors.
I've tried disabling each of these 2 errors in turn, and when I do the errors go away, so am summising the combination of enabling these 2 addons causes the errors.
They are both causing 649 errors at the moment.
First error:
649x ...ddOns/Blizzard_Settings_Shared/Blizzard_Category.lua:79: attempt to index local 'self' (a nil value)
[string "@Blizzard_Settings_Shared/Blizzard_Category.lua"]:79: in function <...ddOns/Blizzard_Settings_Shared/Blizzard_Category.lua:76>
[string "=[C]"]: ?
[string "@Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua"]:158: in function <.../Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:127>
[string "=[C]"]: in function `SetAttribute'
[string "@Blizzard_Settings_Shared/Blizzard_SettingsInbound.lua"]:53: in function <...lizzard_Settings_Shared/Blizzard_SettingsInbound.lua:52>
[string "=(tail call)"]: ?
[string "@Buffet/Libs/tekKonfigAboutPanel.lua"]:13: in function `new'
[string "@HaveIDoneThat/config.lua"]:50: in main chunk
Locals:
self = nil
name = "About"
description = nil
subcategory = <table> {
GetID = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:13
SetCategorySet = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:53
order = 66
HasSubcategories = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:72
GetOrder = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:25
SetCategoryTutorialInfo = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:83
HasParentCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:49
SetOrder = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:29
ID = 66
Init = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:6
GetParentCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:41
GetName = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:17
name = "About"
subcategories = <table> {
}
SetParentCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:45
SetName = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:21
CreateSubcategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:76
GetCategoryTutorialInfo = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:90
GetQualifiedName = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:33
GetSubcategories = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:68
GetCategorySet = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:57
}
(*temporary) = <function> defined =[C]:-1
(*temporary) = <table> {
GetID = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:13
SetCategorySet = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:53
order = 66
HasSubcategories = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:72
GetOrder = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:25
SetCategoryTutorialInfo = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:83
HasParentCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:49
SetOrder = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:29
ID = 66
Init = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:6
GetParentCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:41
GetName = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:17
name = "About"
subcategories = <table> {
}
SetParentCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:45
SetName = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:21
CreateSubcategory = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:76
GetCategoryTutorialInfo = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:90
GetQualifiedName = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:33
GetSubcategories = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:68
GetCategorySet = <function> defined @Blizzard_Settings_Shared/Blizzard_Category.lua:57
}
(*temporary) = nil
(*temporary) = "attempt to index local 'self' (a nil value)"
Second error:
649x .../Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:768: table index is nil
[string "@Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua"]:768: in function `AssignLayoutToCategory'
[string "@Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua"]:160: in function <.../Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:127>
[string "=[C]"]: in function `SetAttribute'
[string "@Blizzard_Settings_Shared/Blizzard_SettingsInbound.lua"]:53: in function <...lizzard_Settings_Shared/Blizzard_SettingsInbound.lua:52>
[string "=(tail call)"]: ?
[string "@Buffet/Libs/tekKonfigAboutPanel.lua"]:13: in function `new'
[string "@HaveIDoneThat/config.lua"]:50: in main chunk
Locals:
self = SettingsPanel {
0 = <userdata>
GameTab = Button {
}
SetScript = <function> defined =[C]:-1
categoryLayouts = <table> {
}
RegisterCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:815
RevertSettings = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:461
ClosePanelButton = Button {
}
SetCurrentLayout = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:902
CheckTutorials = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:279
OnShow = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:241
QuestTextPreview = Frame {
}
Open = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:365
GetSettingsCanvas = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:862
SetWidth = <function> defined =[C]:-1
AssignLayoutToCategory = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:767
CategoryList = Frame {
}
SearchBox = EditBox {
}
modified = <table> {
}
AddOnsTab = Button {
}
SetSecureAttributeResults = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:204
ForEachCanvas = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:575
Bg = Frame {
}
CallRefreshOnCanvases = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:614
GetSecureAttributeResults = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:208
OnLoad = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:70
ExitWithoutCommit = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:322
TransitionBackOpeningPanel = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:353
FinalizeCommit = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:441
SetCurrentCategorySettingsToDefaults = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:519
GetAllCategories = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:811
SetHeight = <function> defined =[C]:-1
ExitWithCommit = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:342
SetApplyButtonEnabled = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:590
HasUnappliedSettings = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:562
OnKeybindRebindSuccess = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:1015
SetPoint = <function> defined =[C]:-1
secureAttributeResults = <table> {
}
OnTabSelected = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:212
OnSettingValueChanged = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:785
ClearActiveCategoryTutorial = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:1019
SetAllSettingsToDefaults = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:489
tabsGroup = <table> {
}
OnKeybindStartedListening = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:992
OnKeybindStoppedListening = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:979
SetOutputText = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:971
settings = <table> {
}
InputBlocker = Frame {
}
ClearCurrentCategoryCanvas = <function> defined @Blizzard_Settings_Shared/Blizzard_SettingsPanel.lua:910
RepairDisplay = <function> defined @Blizzard_Settings_S
Thanks
-
View User Profile
-
Send Message
Posted Jul 23, 2024In reply to UniqueUserName:
Fixed in version 114 :)
-
View User Profile
-
Send Message
Posted Jul 23, 2024In reply to mZHg: Thank you for the quick response - tested and all good. Cheers.
-
View User Profile
-
Send Message
Posted Jul 9, 2024In reply to melkoooor:
Hello,
Can you show me the result of the following command:
/buffet debug [itemLink]
Thank you.
-
View User Profile
-
Send Message
Posted Jul 10, 2024[12:56] Buffet: Item [Eau de source des Hautes-terres]:
[12:56] Buffet: - Is health: No
[12:56] Buffet: - Is mana: Yes
[12:56] Buffet: - Is well fed: No
[12:56] Buffet: - Is conjured: No
[12:56] Buffet: - Is percent: No
[12:56] Buffet: - Is food and drink: Yes
[12:56] Buffet: - Is potion: No
[12:56] Buffet: - Is toxic potion: No
[12:56] Buffet: - Is bandage: No
[12:56] Buffet: - Is over time: No
[12:56] Buffet: - Is restricted: No
[12:56] Buffet: - health value: 0
[12:56] Buffet: - mana value: 0
[12:56] Buffet: - itemClassId: 0
[12:56] Buffet: - itemSubClassId: 5
-
View User Profile
-
Send Message
Posted Jul 10, 2024In reply to melkoooor:
Can you show me a screenshot of the tooltip of "[Eau de source des Hautes-terres]" ?
I'm guessing the text format changed with Cata compared to previous extensions.
Thanks.
-
View User Profile
-
Send Message
Posted Jul 10, 2024In reply to melkoooor:
Hello again,
I've found the issue, it is the new thousand separator "-", a new version with the fix is coming.
In the meantime, you can use the following command which might help:
/run C_CVar.SetCVar("breakUpLargeNumbers", 0)
-
View User Profile
-
Send Message
Posted Jul 11, 2024In reply to mZHg: And the fix works like a charm. Thanks dude, the addon is amazing!