Creature Comforts is an addon for hunters to combine Call, Dismiss, Feed, Mend, and Revive Pet into one button. It works by creating and editing a macro that can be dropped onto any action button, or bound directly to a key.
Download:
Currently Creature Comforts is available on WoWInterface and on Curse.
Usage:
Create a blank, character-specific macro named "AutoPet". Creature Comforts will fill in the contents of the macro for you. You can drag and drop the macro onto any action button, or bind a key directly to it with BindPad, SpellBinder, etc. In combat, the macro will Mend if you have a pet, Dismiss if you have a pet and are holding the Ctrl key, Revive if your pet is dead but not yet despawned or you are holding the Shift key, or Call if you do not have a pet.
Out of combat, the macro will smartly update itself to Revive if your pet is dead (even if it's despawned), Call if you don't have a pet, Dismiss if you're holding Ctrl, Mend if your pet is below 75% health, or Feed otherwise. It will intelligently choose food from your bags based on your pet's diet and level, and the item level and stack size of food items available.
Configuration is implemented through the Blizzard Interface Options window. As a shortcut, you can type [FONT=Courier New]/creaturecomforts[/FONT] or [FONT=Courier New]/cc[/FONT] to jump directly to the Creature Comforts panel. Options include food types (raw, bonus, conjured, etc.), modifier keys, and more.
Credits:
Creature Comforts is based heavily on Tekkub's Buffet. It also borrows ideas/code from Tekkub's FuzzyLogic, Nirek's FeedMachine (which in turn is an Ace3 rewrite of Beerke's King of the Jungle), and Gazmik's Fizzwidget Feed-O-Matic. I was primarily inspired to write Creature Comforts after using being annoyed by the fact that all three of the aforementioned addons use a(n invisible) button to do their heavy lifting. I found this problematic due to the bug with /click in patch 2.4.3, the lack of full support for macro conditionals with /click, and the fact that I couldn't see what ability would be used before using it.
A little disappointed that when I tried this mod - the macor was something I could write by hand. The feed pet did not specify any food at all resulting in a glowing hands when used.
Also - it seems that the macro code is only modified by the addon during startup? Is that true? How do you call it to update the macro with new food you've just picked up?
I hope I'm using this wrong - because it sounds great.
Also, I've not tried this addon or looked at it's code, but if it truely is "based heavily on Tekkub's Buffet" then I approve. But if Phanx totally fucked my code, then I don't!
Seriously though, I've wanted to do something like this with FuzzyLogic, but never play my tard anymore so the motivation has been nil.
A little disappointed that when I tried this mod - the macor was something I could write by hand. The feed pet did not specify any food at all resulting in a glowing hands when used.
Yes, each macro is something you could write by hand. But do you want to rewrite it each and every time you enter combat, you leave combat, your bag contents change, your pet dies, your pet becomes alive, your pet despawns, you swap pets and the new pet has a different diet, your pet's health falls below 75%, your pet's health returns to over 75%, your pet is debuffed, your pet's debuffs are removed, etc?
Showing the "glowy hand" is intentional, but only if you don't have any food your pet can eat. If the addon did not detect your food item, please specify which food item you had that it missed.
Also - it seems that the macro code is only modified by the addon during startup? Is that true? How do you call it to update the macro with new food you've just picked up?
No. It should update on all of the situations/events listed above. Did you place the macro on an action button? If so, according to your initial statement that your food wasn't detected, you should have seen the Feed Pet icon. Did you? When you entered combat, did you still see the Feed Pet icon? It should have changed to the Mend Pet icon. When you left combat, if your pet was dead, it should have changed to the Revive Pet icon; if your pet was below 75% health, or was debuffed and you have Improved Mend, it should have stayed with Mend Pet; otherwise it should have returned to Feed Pet. If you dismiss your pet, it should show you the Call Pet icon. If you didn't put the macro on an action button, please do so and watch it, and report back on whether or not it changes appropriately. Again, if the only issue is that it isn't detecting your food, post the actual food item that's causing the problem.
Quote from tekkub »
Frankly, since they're changing them to spells
Wait, what? No more mount collection taking up bank slots?!
Also, I've not tried this addon or looked at it's code, but if it truely is "based heavily on Tekkub's Buffet" then I approve. But if Phanx totally fucked my code, then I don't!
It actually started as "Buffet, edited to feed my pet instead of me". Then the /click bug started annoying me, and I had to fold in the other stuff. Essentially any code that does what Buffet did is changed very little if at all. I did get rid of the TableStuffer thing, though, and just put the data in tables to begin with. Feel free to yell at me if there was some glaringly obvious reason for doing it the way you do in Buffet. :P
Showing the "glowy hand" is intentional, but only if you don't have any food your pet can eat. If the addon did not detect your food item, please specify which food item you had that it missed.
Showing the "glowy hand" is intentional, but only if you don't have any food your pet can eat. If the addon did not detect your food item, please specify which food item you had that it missed.
[Raw Longjaw Mud Snapper] are in my bags and my pet is a lvl 25 Lion
#show
/cast [mod:ctrl] Dismiss Pet; [mod:shift] Mend Pet; Feed Pet
Is the macro that is generated...
How does this call my pet? I logged in and was out of combat, yet the macro of course wanted to feed my non-present pet.
I'm basing my expectations on the description given:
"Out of combat, clicking the macro will revive your pet if it's dead, call your pet if it's alive but missing, dismiss your pet if you're holding Ctrl, mend your pet if you're holding Shift, or feed your pet if it's alive and present and you're not holding Ctrl or Shift. "
Also, Blackened Trout (item id 27661). This is a level 70 wind serpent who eats both foods normally. Yet the addon kept saying that no food was found for my pet periodically throughout the raid and giving the glowy hand whenever I tried to use it.
I'm hoping to switch to this from FOM because the FOM author has never added Conjured Manna Biscuits to the food list despite a number of requests to do so, and if you add it in to the addon manually, it still has issues detecting them sometimes and feeds it your vendor/fished up food instead.
Semi-related to the feeding issue, it would be nice if the feeding macro took preference over the healing one after a rez (not sure if that's possible... I haven't really looked at the code). The first thing I want to do after I rez my pet is feed it, and the addon just kept healing it over and over.
I don't think it's supposed to feed those, as the original post says:
Correct. While the code supports the optional inclusion of raw foods in the diet list, there is not yet a configuration interface for enabling this option. There are a few functional kinks I want to work out in the addon itself, and then I'll start work on a GUI. In the meantime, you can enable raw foods with this command (will be saved between sessions):
/run CreatureComfortsDB.useRaw = true; CreatureComforts:Diet(); CreatureComforts:Scan()
To include combo foods (those that restore both health and mana) change useRaw in the above command to useCombo. To include bonus foods (those that give you stat buffs when eaten) use useBonus.
Quote from Aileen »
Conjured Manna Biscuit (item id 34062)
This item is in the included food database and should be recognized. Please open Core.lua in a text editor and find:
local function Debug(lvl, str, ...)
if lvl > 0 then return end
Change it to:
local function Debug(lvl, str, ...)
if lvl > 3 then return end
Save the file and reload your UI. The debug messages at level 3 are very spammy, so you won't want to actually play with this enabled, but type:
/run CreatureComforts:Diet()
...and watch what food types it's adding to the diet list. You should see "Adding Bread..." followed by "Adding Basic Bread" and then "Adding Conjured Bread..." If you don't see these messages, please tell me which messages you do see between "Updating diet..." and "Done updating diet." If you do see these messages indicating conjured bread is being added, please type:
/run CreatureComforts:Scan()
Again, it will be quite spammy, but you should see messages indicating that each bag is being scanned. Any items that your pet can eat should generate a "Considering Name of Food Item...." message, followed by a "Accepting Name of Food Item." message if the considered item is the first, or better than the previously considered item. If you don't see these messages, let me know what messages you do see after the "Scan" message.
Quote from Caliban7263 »
Is the macro that is generated...
How does this call my pet? I logged in and was out of combat, yet the macro of course wanted to feed my non-present pet.
Please enable debugging as described above (although you should set the level to 2 instead of 3 to reduce spam) and tell me what you see when you log in with no pet summoned.
Quote from Aileen »
it would be nice if the feeding macro took preference over the healing one after a rez
Again, there's not yet an interface for configuring this setting, but you can change the "out of combat Mend threshold" (just set it to 0 to disable it entirely) with this command:
/run CreatureComfortsDB.mendThreshold = 0; CreatureComforts:UNIT_HEALTH("pet")
I've been considering ignoring the "out of combat Mend threshold" in favor of Feed if the pet is less than Happy, but any changes to this behavior are low on the priority list, and likely won't be changed until after a GUI is written.
1. It's not localized yet. It says that in the first post.
2. tekKonfig should have been commented out in the toc, as it is not currently used by anything and MAY be used by the config, which doesn't exist yet. Edit: It wasn't commented out, but there shouldn't have been any kind of error or other indication in-game related to it, as nothing in any existing code tried to reference it.
3. If there is an error, please post the actual error message.
[2008/07/28 12:37:17-941-x1]: CreatureComforts-0.5\Core.lua:287: attempt to index field '?' (a nil value)
CreatureComforts-0.5\Core.lua:120: in function <Interface\AddOns\CreatureComforts\Core.lua:98>
(tail call): ?:
---
This comes after I added the AutoPet macro and have relogged to fill in the contents of the macro. Also there aren't contents in the macro after the relog.
-edit-
I'm using the latest version on wowace.com, there my problem with the tekkonfig is fixed
There wasn't a problem with tekKonfig in the first place. It was a listing in the toc file to a file that didn't exist. No existing files contained any code that referenced anything related to tekKonfig. The only "problem" would be a listing in FrameLog.xml. There would have been absolutely no in-game messages, errors, or impact on functionality.
Your error is related to the fact that the addon is not yet localized as stated in the first post and in my previous response.
In order for the addon to work in non-English locales, I need translations for all possible pet food types (Bread, Fish, Raw Fish, Meat, Raw Meat, Fruit, Cheese, Fungus) that match the return values from GetPetFoodTypes().
For food types, or the exact name like Clefthoof Ribs. The food types are:
bread = Brot
Fish = Fisch
Raw Fish = roher Fisch (raw = roh)
Meat = Fleisch
Raw Meat = rohes Fleisch
Fruit = Obst
Cheese = K?se
Fungus = i'm not sure, but I think it's also Fungus in german.
PS: I've understand, that it isn localized, but you has asked for the error message.
Whatever the character in the middle of the German "cheese" is, the forums don't like it, so I'm not sure what it is.
Also, is "raw" in "Raw Fish" is "roher", and "raw" in "Raw Meat" is "rohes", or was that a typo? (It's important because I need to not include non-raw types of meat and fish for pets that only eat raw.)
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Download:
Currently Creature Comforts is available on WoWInterface and on Curse.
Usage:
Create a blank, character-specific macro named "AutoPet". Creature Comforts will fill in the contents of the macro for you. You can drag and drop the macro onto any action button, or bind a key directly to it with BindPad, SpellBinder, etc. In combat, the macro will Mend if you have a pet, Dismiss if you have a pet and are holding the Ctrl key, Revive if your pet is dead but not yet despawned or you are holding the Shift key, or Call if you do not have a pet.
Out of combat, the macro will smartly update itself to Revive if your pet is dead (even if it's despawned), Call if you don't have a pet, Dismiss if you're holding Ctrl, Mend if your pet is below 75% health, or Feed otherwise. It will intelligently choose food from your bags based on your pet's diet and level, and the item level and stack size of food items available.
Configuration is implemented through the Blizzard Interface Options window. As a shortcut, you can type [FONT=Courier New]/creaturecomforts[/FONT] or [FONT=Courier New]/cc[/FONT] to jump directly to the Creature Comforts panel. Options include food types (raw, bonus, conjured, etc.), modifier keys, and more.
Credits:
Creature Comforts is based heavily on Tekkub's Buffet. It also borrows ideas/code from Tekkub's FuzzyLogic, Nirek's FeedMachine (which in turn is an Ace3 rewrite of Beerke's King of the Jungle), and Gazmik's Fizzwidget Feed-O-Matic. I was primarily inspired to write Creature Comforts after using being annoyed by the fact that all three of the aforementioned addons use a(n invisible) button to do their heavy lifting. I found this problematic due to the bug with /click in patch 2.4.3, the lack of full support for macro conditionals with /click, and the fact that I couldn't see what ability would be used before using it.
Also - it seems that the macro code is only modified by the addon during startup? Is that true? How do you call it to update the macro with new food you've just picked up?
I hope I'm using this wrong - because it sounds great.
Frankly, since they're changing them to spells, I think we should ask Blizzy for new macro bits....
*grin*
Also, I've not tried this addon or looked at it's code, but if it truely is "based heavily on Tekkub's Buffet" then I approve. But if Phanx totally fucked my code, then I don't!
Seriously though, I've wanted to do something like this with FuzzyLogic, but never play my tard anymore so the motivation has been nil.
Yes, each macro is something you could write by hand. But do you want to rewrite it each and every time you enter combat, you leave combat, your bag contents change, your pet dies, your pet becomes alive, your pet despawns, you swap pets and the new pet has a different diet, your pet's health falls below 75%, your pet's health returns to over 75%, your pet is debuffed, your pet's debuffs are removed, etc?
Showing the "glowy hand" is intentional, but only if you don't have any food your pet can eat. If the addon did not detect your food item, please specify which food item you had that it missed.
No. It should update on all of the situations/events listed above. Did you place the macro on an action button? If so, according to your initial statement that your food wasn't detected, you should have seen the Feed Pet icon. Did you? When you entered combat, did you still see the Feed Pet icon? It should have changed to the Mend Pet icon. When you left combat, if your pet was dead, it should have changed to the Revive Pet icon; if your pet was below 75% health, or was debuffed and you have Improved Mend, it should have stayed with Mend Pet; otherwise it should have returned to Feed Pet. If you dismiss your pet, it should show you the Call Pet icon. If you didn't put the macro on an action button, please do so and watch it, and report back on whether or not it changes appropriately. Again, if the only issue is that it isn't detecting your food, post the actual food item that's causing the problem.
Wait, what? No more mount collection taking up bank slots?!
It actually started as "Buffet, edited to feed my pet instead of me". Then the /click bug started annoying me, and I had to fold in the other stuff. Essentially any code that does what Buffet did is changed very little if at all. I did get rid of the TableStuffer thing, though, and just put the data in tables to begin with. Feel free to yell at me if there was some glaringly obvious reason for doing it the way you do in Buffet. :P
Conjured Manna Biscuit (item id 34062)
[Raw Longjaw Mud Snapper] are in my bags and my pet is a lvl 25 Lion
Is the macro that is generated...
How does this call my pet? I logged in and was out of combat, yet the macro of course wanted to feed my non-present pet.
I'm basing my expectations on the description given:
"Out of combat, clicking the macro will revive your pet if it's dead, call your pet if it's alive but missing, dismiss your pet if you're holding Ctrl, mend your pet if you're holding Shift, or feed your pet if it's alive and present and you're not holding Ctrl or Shift. "
I don't think it's supposed to feed those, as the original post says:
Also, Blackened Trout (item id 27661). This is a level 70 wind serpent who eats both foods normally. Yet the addon kept saying that no food was found for my pet periodically throughout the raid and giving the glowy hand whenever I tried to use it.
I'm hoping to switch to this from FOM because the FOM author has never added Conjured Manna Biscuits to the food list despite a number of requests to do so, and if you add it in to the addon manually, it still has issues detecting them sometimes and feeds it your vendor/fished up food instead.
Semi-related to the feeding issue, it would be nice if the feeding macro took preference over the healing one after a rez (not sure if that's possible... I haven't really looked at the code). The first thing I want to do after I rez my pet is feed it, and the addon just kept healing it over and over.
Correct. While the code supports the optional inclusion of raw foods in the diet list, there is not yet a configuration interface for enabling this option. There are a few functional kinks I want to work out in the addon itself, and then I'll start work on a GUI. In the meantime, you can enable raw foods with this command (will be saved between sessions):
/run CreatureComfortsDB.useRaw = true; CreatureComforts:Diet(); CreatureComforts:Scan()
To include combo foods (those that restore both health and mana) change useRaw in the above command to useCombo. To include bonus foods (those that give you stat buffs when eaten) use useBonus.
This item is in the included food database and should be recognized. Please open Core.lua in a text editor and find:
local function Debug(lvl, str, ...)
if lvl > 0 then return end
Change it to:
local function Debug(lvl, str, ...)
if lvl > 3 then return end
Save the file and reload your UI. The debug messages at level 3 are very spammy, so you won't want to actually play with this enabled, but type:
/run CreatureComforts:Diet()
...and watch what food types it's adding to the diet list. You should see "Adding Bread..." followed by "Adding Basic Bread" and then "Adding Conjured Bread..." If you don't see these messages, please tell me which messages you do see between "Updating diet..." and "Done updating diet." If you do see these messages indicating conjured bread is being added, please type:
/run CreatureComforts:Scan()
Again, it will be quite spammy, but you should see messages indicating that each bag is being scanned. Any items that your pet can eat should generate a "Considering Name of Food Item...." message, followed by a "Accepting Name of Food Item." message if the considered item is the first, or better than the previously considered item. If you don't see these messages, let me know what messages you do see after the "Scan" message.
Please enable debugging as described above (although you should set the level to 2 instead of 3 to reduce spam) and tell me what you see when you log in with no pet summoned.
Again, there's not yet an interface for configuring this setting, but you can change the "out of combat Mend threshold" (just set it to 0 to disable it entirely) with this command:
/run CreatureComfortsDB.mendThreshold = 0; CreatureComforts:UNIT_HEALTH("pet")
I've been considering ignoring the "out of combat Mend threshold" in favor of Feed if the pet is less than Happy, but any changes to this behavior are low on the priority list, and likely won't be changed until after a GUI is written.
First the addon whants tekKonfig.xml. I downloaded it and it has been loaded. But when there was a problem in the core.lua.
Sorry for my bad english.
2. tekKonfig should have been commented out in the toc, as it is not currently used by anything and MAY be used by the config, which doesn't exist yet. Edit: It wasn't commented out, but there shouldn't have been any kind of error or other indication in-game related to it, as nothing in any existing code tried to reference it.
3. If there is an error, please post the actual error message.
This comes after I added the AutoPet macro and have relogged to fill in the contents of the macro. Also there aren't contents in the macro after the relog.
-edit-
I'm using the latest version on wowace.com, there my problem with the tekkonfig is fixed
Your error is related to the fact that the addon is not yet localized as stated in the first post and in my previous response.
In order for the addon to work in non-English locales, I need translations for all possible pet food types (Bread, Fish, Raw Fish, Meat, Raw Meat, Fruit, Cheese, Fungus) that match the return values from GetPetFoodTypes().
Excellent feedback from the comments posted here.
I'll enable debugging next time I'm on my hunter and update here with any info found.
bread = Brot
Fish = Fisch
Raw Fish = roher Fisch (raw = roh)
Meat = Fleisch
Raw Meat = rohes Fleisch
Fruit = Obst
Cheese = K?se
Fungus = i'm not sure, but I think it's also Fungus in german.
PS: I've understand, that it isn localized, but you has asked for the error message.
Also, is "raw" in "Raw Fish" is "roher", and "raw" in "Raw Meat" is "rohes", or was that a typo? (It's important because I need to not include non-raw types of meat and fish for pets that only eat raw.)