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.

6 thoughts on “Making custom emotes in PetEmote 1.5.2

  1. Kohelani, I am not currently using PetEmote, as when patch 3.0.2 came out, a conflict with the addon was preventing me from seeing any chat that I typed, and basically seemed to bug stuff.

    I therefore do not have an answer for you right now.

    However, after the craziness of Wrath releases gets out of my system, I promise you I’ll be trying the latest version, and I’ll let you know what if anything I can figure out!


  2. I have PetEmote 1.5.3 and I do not see a custom-emotes.lua file. I tried to create one, but can only create new text files, not .lua files. Any suggestions?


  3. WoW its really improved since earlier versions. Glad you posted or i prolly wouldn’t have downloaded it again. My emote editor works though, so less pain.


  4. It’s especially funny when Doodle is there too and he throws on his Fire Festival gear when he’s in Tree form. Yeah…Nas doesn’t like me mentioning hot wings around her. >:-)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.