Making custom emotes in PetEmote 1.5.2

A while back I mentioned the addon PetEmote, and how delighted I was to finally try it.

Since then, I have had a lot of fun making my own custom emotes, and a lot less fun trying to figure out exactly how to do it.

You see, there have been a lot of changes made since Ammunition Company wrote their guide on customizing it.

For one thing, they have added a built-in custom emote editor (that can be found right in the PetEmote folder you installed in the Interface/Addons folder).

I’ve loaded it, and it seems awesome… but every time I personally try to use it on my Windows XP PC, it crashes.

A second little issue I’ve had to deal with was that the guide/FAQ no their website for building custom emotes in 1.5x describes starting with the partially filled-in form in custom-emotes.lua. My version of the Addon custom-emotes.lua file is blank. 

No big deal, just means I had a teeny bit more of a learning curve that expected to add my own emotes for Moonclaw. The Addon is just awesome, I’m probably the only one that had to spend 15 minutes figuring it out. 

About a week ago now, version 1.5.2 was added to Curse’s website.

Since I had done a half-assed job of making my own emotes, it turns out the file I modified, default-emotes.lua, got wiped out.

Apparently, I should have modified the custom-emotes.lua file instead, addon notes say taht it will import and convert an old custom-emotes.lua file to the newest revision automagically.

Regardless, the new 1.5.2 emote structure in the ‘dot lua’ has changed a lot.

So while I spent a little time rebuilding my custom emotes last night, I thought I’d throw together a little guide to help you do it too, if you have any of the same issues.

The first thing to know is, after you download and install the latest PetEmote addon, there are only two files in the Interface/Addons/PetEmote folder you will need to deal with to add your own custom emotes.

default-emotes.lua and custom-emotes.lua

The default-emotes.lua file holds all of the emotes, arranged in pet order, in both german and english, that PetEmote can load by default.

The custom-emotes.lua file starts out blank. If you add your own emotes to this file, then when PetEmote loads, it will check here, and load any emotes it finds here for the appropriate pet family (or specific pet name) first, before checking the default-emotes.lua file.

To help hunters follow along, I’ll attach my custom-emotes.lua file, so if you would like you could see what I am actually using as my live file as of PetEmote version 1.5.2. custom-emotes.lua

Now, the first thing that Ammunition Company tells you on their custom emote guide on their website, is that you can’t edit the .lua files using a normal text editor like Notepad. They say you need to use a text editor that can handle better text editing with UTF-8 encoding, like Notepad ++.

So of course I downloaded Notepad++ just as they suggested. I like it too, it nests the default-emotes.lua line structures very nicely. It makes it very easy to keep track of nested lines of text.

As I said, when I started, my custom-emotes.lua document was empty by default.

The guide suggested I copy the entire section of the default-emotes.lua that was relevant to my particular animal family, and paste it into the custom-emotes.lua file.

Then, make all your changes to the custom-emotes.lua file, and leave the default alone.

Clearly, the implication is, if you have a pet family section in the custom-emotes.lua file, then it will load that one first, and NOT load the default-emotes.lua version. 

There was a brief mention that you could make the custom-emotes.lua section only apply to a specifically named pet. I am assuming that they mean that if I were to put the name Moonclaw in place of the name of the pet family, “cat”, in the header, that it would only apply when I had Moonclaw out. I have not tried it. I only have the one pet.

I can totally see doing it if you have a few different cats, or a Hyena and a Black Wolf, or some other combination of different individually appearing pets of the same family. You might want one set of emotes to refer to smoothing his “reddish gold fur”, and wouldn’t want that to show up when your black as a shadow wolf was out.

Back to the walkthrough.

I copied the entire cat family section, in English, from default-emotes.lua and pasted it into custom-emotes.lua. I only have the one pet.

I imagine that if you use a ton of different pets, you’d want to copy the entire default file. I expect it would work just fine.

Let me show you what part of my PetEmote custom-emotes.lua file looks like when opened with Notepad++.


As you can see, Notepad++ shows you what line item you are on, and nests everything well.

Since I almost 100% of the time keep my pet fully fed, my pet is always in the “PetIsHappy” emotional state.

Since all of my custom emotes are dead simple one liners, I chose a single sentence emote from the list, #15 from the default-emotes.lua, and copied it.

I then went to the end of the cat section, and pasted that one section over and over just before that very last bracket that closes the cat family section.

I then renumbered them so they contined the numerical sequence… in version 1.5.2, the cat family emotes ended at #50, and my first custom emote started as #51, as shown above. 

In the image above, the bracket and comma just above number 51,  }, was the last piece of code from number 50.

So a single complete section of emote code looks like this;


You can see how each section is nestled within it’s own brackets.

I bet you’re wondering, “What are all those words in quotes on the fourth line?”

Those are how the Addon decides if this emote is stand alone, or if it can be combined with other emotes.

I don’t have any idea how you configure this line to make it work with other emotes.

I know that you are supposed to be able to make a tiny snippet, like “wags his tail”, be available for the Addon to choose at random to add it in after otehr emotes, such as “shakes his head”, with the word “and” automagically added in between, so you have a new custom emote that pops up sometimes saying “Moonclaw shakes his head”, Moonclaw wags his tail”, or “Moonclaw shakes his head and wags his tail”.

I have no idea how to configure it to do that. 

What I do know is, the more words you put in quotes on that line for your custom emote, the less likely the addon will try and add more stuff you didn’t plan into the mix.

And when I made my custom emotes, I didn’t want any extras. No frills. Just the joke, thank you very much.

So I put every single word of my emote in quotes on that line, to try and keep the emote the way I want it, and not have it say, “Moonclaw wags his tail and is hungry for Hot Wings. Has anyone seen a Moonkin?”

In the old version, without that line of words in quotes, it used to do that, and it annoyed me.

After you save your custom-emotes.lua file, you are pretty much done.

There is one other, optional part to this process.

When you have the addon, what you see when your pet does something, looks like this to you; “Moonclaw is hungry for Hot Wings. Has anyone seen a Moonkin?”

If someone around you does not have the addon (like, oh… 99.9% of the other players), what they see is different.

They see “Windstar’s cat Moonclaw is hungry for Hot Wings. Has anyone seen a Moonkin?”

You can’t change your name being displayed, and you can’t change your pet’s name being displayed, but you can change what it calls the pets family.

If you were to enter /pet family kitty, directly into chat in the game, then in the above example, what people would see would be “Windstar’s kitty Moonclaw is hungry for Hot Wings. Has anyone seen a Moonkin?”

The addon knows what pet family you have at the moment, and when you enter in /pet family xxx, you are telling it you want the displayed name for that pet family changed to xxx.

And that change to the pet family displayed name would be saved. All future cats you have will be called ‘kitty’ as the family.

You can change that to whatever you like. “puppy” for a Wolf pet, for example.

Onec you are done making your shiny new emotes, just save the custom-emotes.lua file, load up the game, and start testing them out by typing /pet random in the chat window.

It forces your PetEmote addon to generate responses rapidly, so you can do it over and over until you see some of your new custom ones.

That’s it. Finished. If you want to do the fancy branching intelligent emotes, this is not the place to learn how.

But I really hope this helps you to take the plunge and add your own emotes…

I have to tell you, the /squeal that Shrinnpoof made the first time Moonclaw said, in passing, in Karazhan “Moonclaw enjoys eating Gnome. Gnome… it’s whats for dinner.” was hilarious.

And of course, it never gets old to be standing near Nasirah in Moonkin form when Moonclaw is hungry for Hot Wings. Hehe.

Well, it never gets old for ME.

Quick tanking Addon question for y’alls

I’m loving my Warlock, level 17 and a half, yay!

i’m using the addon Necrosis. Everyone recommended it, and it is great. I love all the features. At least, the ones I understand. I don’t use the Curse menu since I use Curse of Agony all the time rather than Curse of Weakness, and I don’t have Horror effects for Curse of Recklessness ping pong yet.

But the fast pet summon, the healthstone bar, and most especially being able to set a limit on how many shards I get before it automatically deletes new ones… priceless.

It’s very nice knowing that, with my Ebon Shadowbag and a 28 shard capacity, I can set Necrosis to store 28 shards tops, and when I Drain Soul over that, it just deletes the shard instead of filling my bags. Love it.

BUT… my favorite function of Necrosis is that I can set it to announce to me in my chat window when I target a mob that is immune to fear or horror effects.

It’s amazing.

As a person that knows only one class/spec inside out, it is so refreshing to start an alt of a totally different class, and have the addon warn me, say for example on the isle full of dragonwhelps north of Bloodmyst Isle, that they are “Immune to Fear effects” when I target one. I will absolutely learn that in time and remember, from the repetition of the warning… but having that warning rocks.

That led me to wonder… is there already existing an addon that automatically provides a warning if your targeted mob is immune to class effects, like Necrosis does? One that is made to warn about immunities to ALL class CC types?

As a tank, one of the things that is my job normally is marking mobs. And as a tank, everyone assumes that it’s my job to have memorized what every possible mob in every instance can do in advance, and what they are immune to.

Well, I know that there are people out there that do know that. Good for you. I have met you in the past, and I have been absolutely amazed. When I was a lot younger, I had the same encyclopediac knowledge of comic books and firearms. I appreciate your incredible depth of knowledge on that subject.

But I haven’t even run every instance on regular, let alone heroic. And what mobs can do what changes between the two. I do not even make the attempt to remember what everyone can do everywhere. Half the time I don’t even remember what mobs can do in an instance I ran the day before.

Instead I keep WoWwiki’s instance portal guide on my second monitor screen so I can quickly flip to the appropriate page if I am blindsided by a mob doing something that was unexpected.

I have also in the past used Atlas to show me who can do what, such as in the Moroes room for the adds in Karazhan. But my Atlas bugged so I uninstalled that addon long ago.

So here’s my thought. Having an addon that announces in my chat window, when I target a mob that I am about to mark up anyway, that “Mob is immune to stun and fear effects” would let me know immediately, with zero confusion, that this mob is not a subject for a Rogue to sap or a Warlock to fear, it is instead a good target for Ice Trap.

So first, does anyone know if such an addon already exists?

And second, if one does not exist, does anyone know how hard it would be to make one?

I know that we have a few addon programming masters, such as the legendary Tekkub himself, who sometimes reads the blog. So I am serious in wanting to know if this is possible. Because I would install it immediately and live in admiration of the genius who made it. It would be my tanks best new friend. I would hug it and hold it and call it George.

From the mailbox – Relic Emanation addon Ogri’lazy

Szobi said:
Quite a nice guide. Thanks to you I finally did the chain and started the Ogri’la dailies.As for wrangling: getting them down below 20% is sufficient to wrangle. I found it most comfortable to do in bear form, I tended to over-dps in cat.As for the relics: I found whispering to myself better than writing down on paper. I just number the pads from one to four, then pop enter and write the sequence down. There’s also a mod here to keep track of it: i haven’t tried it yet.

Thank you for the comments Szobi. You’re right, the amount is 20%, and as soon as I see the comment on being able to be wrangled, I try to switch to caster form instantly to stop doing DPS. I like your idea of not letting it get so close before switching forms, and switching to bear instead of caster to slow down the pain. Thank you very much, I’ll have to do that. Although if I do that, how will I ever level my staff skill? Lol.

As far as the addon is concerned, on your suggestion I downloaded it and took it for a spin.

The addon is called Ogri’lazy, and what it does is, when you start the Relics Emanations quest, it automatically opens a small popup on your screen that has some empty space, and four colored icon buttons.

As you can see from the image above, the box that appears has four colored icons in the right hand side. In the image, the colors of the icon buttons are aligned with the four mini-game buttons from the Relics Emanations.

In real life, the buttons do not align themselves. Also, be aware the box appears only after you have activated the quest. (Maybe you can open the box early. I didn’t see a way to yet though.) So when you start the quest by inserting your Apexis Shard, the box pops up and you need to either have already spun and zoomed your view so that your colors will match, or take the time to do so now.

As the mini-lightning bolt lights up each button, you must physically click each of the tiny icon buttons in the addon window. This adds an icon to your string in the addon. As you can see from the picture, I am at round 6 of the quest when the screenie was taken.

As soon as the mini-game has finished activating buttons, you can follow the sequence as shown in your addon window.

The neat thing is, as you click on a button, one of the buttons vanishes from the addon window, so you can always keep track of which color is next.

I have NOT tested a few things on it… such as, if I click the wrong color by mistake, does the displayed icon in the addon window vanish anyway? I wonder if it is looking for a correct button press, or just ANY button press to trigger the icon to vanish.

At any rate, I used it successfully, first time, and I have to say that it worked better than paper and pen.

Personally, for all the people that wrote in suggesting to use the /say box to keep track….

What can I say? Sometimes I’m just not that bright. I like the /say box method now that I’ve tried it, but I’ll probably give the addon a chance for a while, since I installed it already.