[WoW Addon] GM Genie

[SIZE=24px]About GM Genie[/SIZE]


GM Genie is an all-round GM addon for Trinitycore, aimed at making common tasks easier and quicker to accomplish. It provides tools for managing tickets, interacting with players on the server, building/spawning and much much more.

GM Genie is not and is never going to be a collection of buttons just to eliminate the need to type commands. I have personally never understood how that is useful in any way, so please don’t make requests to add button x for command y, it is not going to happen. However, if you have ideas for new functionality that could provide new possibilities or make existing tasks vastly easier, be sure to mention them!

[SIZE=24px]Installation Instructions[/SIZE]

[li]Download most recent release (0.7.3).[/li][li]Download previous release (0.7.2), for servers that still use the old playerinfo format (not updated for >1 year).[/li][li]Download older versions.[/li][/ul]
Download the addon using one of the links above and extract it to the interface/addons directory in your WoW installation. When logging in, the addon should be enabled by default.

Supported emulators: TrinityCore (3.3.5 and 4.3.4)

Supported client versions: 3.3.5 and 4.3.4

Supported client locales: enUS and enGB

[SIZE=24px]Current Functionaility[/SIZE]

[li]Hud aka the main window Shows the amount of open tickets, both online and offline. Shows gm status and allows changing it. And provides quick access to the ticket and builder interface.[/li][li]Tickets May not sound all too interesting, but decent ticket addons are hard to find these days. This one is extra cool as it has some neat functionality, including but not limited to:[/li]Read marking: easily see which tickets have and have not yet been read.
[li]Differentiation between online and offline tickets, including the option to hide offline tickets if you wish.[/li][li]Sort by tickets by id, name, creation date, modified date or assigned to.[/li][li]Show who else is reading the ticket while you are reading it.[/li][li]Quickly assigning the ticket to yourself with a single click, or to someone else by right clicking.[/li][li]The ability to set comments from within the ticket window, instantly updating the comment if someone else has the ticket open as well.[/li][li]Fully integrated with the awesome spy (see below).[/li][/ul]

[li]Spy aka playerinfo Spy is a window showing all relevant info from the usefull playerinfo command. In addition, it provides access to several quick commands, macros and advanced character tools. Spy is opened automatically when a ticket is opened, and can be initialized manually by typing /why charactername or by right clicking a name in chat, going to quick commands and clicking spy.[/li]Appear, summon, freeze, unfreeze, revive, rename, customize, change race, change class, etc.
[li]Lookup other accounts and characters from the player.[/li][li]Show any current or past bans.[/li][li]Quick ccess to all whisper, mail and discipline macros (see below).[/li][/ul]

[li]Player macros There are three types of player macros: whisper macros (which send pre-defined whispers), mail macros (to send pre-defined mails) and discipline macros (for any kind of pre-defined mutes or bans). Macros can be easily defined from the interface settings. Each type comes with several neat options to customise the macros to your needs. The macros can be accessed from the spy window, and when right clicking a player in chat (or somewhere else, as long as there is normally a player menu on right click).[/li][li]Builder The builder allows exact movement, rotation and spawning of npcs and objects. The combination of these two options make it a pretty powerful tool that can be used to make almost anything in-game. In addition there is also a window to make “spawn macros”. Usage requires a basic understanding of lua. A few examples:[ul][/li]A cirlce with 18 chairs:
for i=1, 18, 1 do
go(5, 0, 0, 180, -1, 1, 176232);
go(5, 0, 0, 200, -1, 0, 0);

[li]A spiral of torches going up:[/li]for i=1, 400, 1 do local rotate = 2+0.05*(2.71828183^(0.0125*i)) local up = rotate/100; go(0.25, 0, up, rotate, -1, 1, 180352); end
An example of what can be accomplished once you are familiar with the builder: http://www.youtube.com/watch?v=A_4r1vEJ3MQ

The above certainly isn’t a complete list of what the addon can do, but there’s no point making a wall of text that no one will read anyway. I’d highly encourage just testing some things out and see what it can do for you. If you know lua, a peek at the source code may also shed some light on the functionality.
The addon is released under the GPL (v3), so feel free to modify, redistribute or whatever you’d like to do with it. If you find any bugs, have ideas for improvements, want to provide a patch or whatever, please feel free to post it here.

[SIZE=24px]Reposts and modifications[/SIZE]

Since GM Genie is under an open source license, any modifications and redistributions of the addon are explicitely allowed, as long as copyright and license notices remain intact.

However, I would appreciate it if you could drop me a message if you post/publish GM Genie somewhere. Partly because I like to know where it is being spread, but also so I can add new versions to those threads when they are released. It would be a shame if everyone keeps using some ancient version because it was once posted on a forum, and never updated there.

You can drop me an e-mail at gmgenie [at] chocochaos [dot] com

It’s not a requirement to inform me, but I would appreciate it =)


Version 0.7.3

[ul][li]Small changes and fixes:[/li]Code cleanup in several areas.
[li]Fixed the spy window (the new TrinityCore output format broke it).[/li][li]Security fix for ip banning functionality.[/li][/ul]

Version 0.7.2[ul]
[li]Cataclysm (up until 4.3.4) is now supported. Some quick testing has been done, but there may also be some issues that I missed. Consider cataclysm support to be in beta for now. Also, please note that the addon should still work fine in Wrath of the Lich King.[/li]Replaced all references to global variable this, event and arg1 with something else that does work.
[li]Manually updated the chronos library. Replaced the VARIABLES_LOADED event with ADDON_LOADED. AceTimer was also considered, but would have required more work to implement.[/li][li]Changed the loading process of GMGenie windows and textareas, so that backgrounds are once again loaded and the size is set correctly.[/li][li]Updated the interface version to 40300.[/li][/ul]

[li]Small changes and fixes[ul]Fixed a small lua error on first load of the addon (related to the minimap button position).[/li][/ul]

Version 0.7.1[ul][li]Small changes and fixesWhen there is a large amount of offline tickets online tickets will now show up properly once again.[/li][/ul]

Version 0.7[ul]
[li]General changes:[/li]New hud, replacing the old minimap menu. This hud also shows gm/chat/visibility/whisper/fly/speed status, and allows changing it.
[li]When porting to a different map flight mode is automatically re-enabled (if it was enabled previously).[/li][li]Hyperlinks for gameobjects, gameobjects entries, creatures and creature entries now give a nice dropdown with usefull options when you click on them, instead of an annoying lua error. Options include: spawning/removing, porting to and listing spawned creatures/gameobjects.[/li][li]Generally a more consistent interface.[/li][li]Names in anticheat messages are now clickable (left click opens the spy window, makes you invisible, appears and show the kind of cheats detected, right click opens the usual player menu). This was tested on a non-standard anti-cheat though, so it may not work on all servers.[/li][/ul]

[li]Changes to ticket interface:[ul][/li]When showing offline tickets is enabled, offline tickets show up in red.
[li]Previously read tickets show up in a little darker colour than unread tickets.[/li][li]The ticket you’re currently reading is shown in white.[/li][li]Refresh button moved to the top of the window, settings button removed (settings can be accessed through the interface options, like for all addons).[/li][li]Ticket count at the bottom of the window now separates online and offline tickets.[/li][li]Fixed a bug where some tickets would incorrectly be highlighted (as if they were being read) in the list.[/li][/ul]

[li]Changes to the spy (playerinfo) window:[ul][/li]You can now right click in the spy window to copy the playerinfo.
[li]A refresh button has been added at the top of the window.[/li][li]Latencies of 1k and higher now show up in red. Stripped the ms of the latency so that larger numbers fit in.[/li][li]Fixed using /spy without a name (using target instead when no name is specified).[/li][/ul]

Version 0.6.1[ul][li]Small changes and fixesViewing ticket comments bugged out for tickets with multiple lines of text.[/li][/ul]

Version 0.6[ul]
[li]Major visible changes[/li]Ticket comment and assign/unassign fully fixed and implemented.
[li]Added mute and ban macros, with the option to announce to the server.[/li][li]The ticket window now shows other GMs reading the ticket, provided the GMs are in the same guild.[/li][li]Added character customisation options to the macro menus.[/li][/ul]

[li]Small changes and fixes[ul][/li]Fixed a very rare lua error in the ticket tracker.
[li]When pressing enter or escape in a text box it now automatically looses focus.[/li][li]Fixed all lua errors while tabbing through text boxes in the settings.[/li][/ul]

Version 0.5[ul]
[li]Major visible changes:[/li]Added teleport macros.
[li]Added an extra dropdown to the spy window for advanced commands (currently lookup player and baninfo).[/li][li]Added an advanced building tool (can be opened with /builder).[/li][li]Overhauled user interface.[/li][li]Added a minimap button with a menu for GM Genie. The button shows the number of tickets.[/li][/ul]

[li]Small changes and fixes[ul][/li]Fixed the previous and next page buttons that were missing from the ticket window.
[li]Double click the window title to reset it to it’s default position.[/li][li]Made the text at the bottom of the ticket window a button (doesn’t look like one but it is!). You can use it to easily turn offlines tickets on and off.[/li][li]Changed the spy window to show more detailed location information and include the player’s phase (if online).[/li][li]Changed the (Un)root button from a secure button to a normal button and named in (Un)freeze. Now also works for players not in range and offline players. Also added freeze and unfreeze to the quick commands menu.[/li][li]Fix a bug where refreshing the spy window would sometimes give an error.[/li][li]Further code cleanup.[/li][li]Fixed a lua error when trying to open a ticket while the list was being refreshed.[/li][li]Fixed the auto-refresh of the ticket window and count.[/li][/ul]

Version 0.3.1[ul][li]Small changes and fixesFixed a bug where dropdowns were loaded before checking saved variables, resulting in LUA errors is the defaults needed to be loaded.[/li][/ul]

Version 0.3[ul]
[li]Major visible changes:[/li]Added several quick commands (revive, appear, summon, spy) on right clicking someone’s name.
[li]Added mail macros.[/li][li]Added dropdowns for mail and whisper macros when spying someone and when right clicking a name in the game.[/li][/ul]

[li]Small changes and fixes[ul][/li]Changed the regular expression to read ticket listings and tickets from chat, so that it now allows spaces in the created and last modified time (this will make the addon work on new TC revisions).
[li]Fixed a bug where tickets with an empty line at the start would not display correctly.[/li][li]All regular expressions and functions to read from chat moved to Chatreader.lua.[/li][li]Load saved variabled in Savedvariables.lua and allow setting defaults in that file (this allows creating a default preset for a server-specific distribution of GM Genie).[/li][li]Big code cleanup in several areas. Consistent naming for variables and functions, as far as possible without creating unnescessary extra variables.[/li][/ul]

Version 0.2 and older[ul][li]No changelogs kept.[/li][/ul]

Great addon, thanks /emoticons/default_biggrin.png

Kudos! Toggles are something I’ve wanted for a long time. Excellent work. Can’t wait to see further progress. I dig the GOB implementation; It’s bothered me for the longest time why Blizz didn’t develop GOB functions further.

Thanks for your hard work. Will donate if there’s somewhere for it to go.


A nice addon, thanks!

hey man, thought you totally vanished from the wow scene, nice to see you still working on the BEST GM ADDON EVER!

Updated to fix a bug with the listing of online tickets. Thanks opcode for reporting it /emoticons/default_smile.png

I have not been able to test with more than one pages of online tickets (more than 11 online tickets), if someone could that would be quite nice. I think it should work fine, but it doesn’t hurt to double check.

I’m very interested in any ideas you might have for future progress. At the moment I am not too imaginative myself. Most of what I have thought of is already in the addon, so fresh ideas are very welcome.

And what exactly do you dig about the gob implementation? I’ve always thought trinity’s implementation is quite powerfull. The only drawback I’ve encountered is that it requires a bit more typing of guids than other emus I have tried in the past.

Just took a break for a while, but I’ve never really been gone. Still checking most forums daily /emoticons/default_tongue.png


thank you for the great addon.

I think there is another issue with the ticket tab. As you can see in my attached file, there are no on-/offline tickets shown in the ticket tab?

My GMlvl is up to 4. Whats the Problem? Another issue: my gm-settings are not shown in the GMGenie tab?

Sorrry for my bad english.

Testet with version released after 21.02,2013 (0.7.1)

Thank you!




if your gm lvl is 4, you are console, and don’t need to see tickets? Hopefully, the rbac system will be completed soon, and all external projects will start handling access levels properly, and this won’t be an issue, but, I’m sure it has to do with normal security levels being 0-3 with 4 as console…

Paradox, his GM levels are fine. Check the chat window, he clearly is getting a response from the ticket commands.
Ashikaga, it appears the responses you receive from the server in your chat are in German. This addon assumes that you get English texts in chat, it will simply not understand any other language. I’m not sure how to instruct tc to give you English texts though, perhaps it looks at the client locale and bases it off that? Try using an enUS or enGB wow client and see if that makes any difference.

Alternatively, you could try converting the regular expressions in Chatreader.lua to interpret the german texts instead, but that requires at least some basic lua knowledge.

I’ll add this to my to-do list for future gm genie versions, but it will probably take a while before I can implement other languages fully /emoticons/default_smile.png

Oh yes, right. German client, i forgot to tell /emoticons/default_smile.png, and thats the “issue” /emoticons/default_smile.png

I’ll take a look in chatreader.lua. Think i can get it work for my version, befor you implement other languages /emoticons/default_smile.png

Thanks for great support.



Spawning GOs based on player position (is what I dislike about the WoW approach). There’s a patch floating around that allows spawning of GOs with a spell (which allows positioning via cursor and AoE style marker) which is definitely superior. Obviously you wouldn’t be able to implement this with LUA (would you?), but it’s something I thought was strongly needed for those that deal with GOs on a daily basis.

No, I wouldn’t be able to do that. The only possible way would be porting there, spawning the object, and then porting back to the original position.

What I’ve done with the builder in genie is saving the last location you moved to using the movement buttons. So you can build a few things in a line or circle or whatever, then fly away to see what your creation looks like, and then continue again without too much hassle. It’s not the same as spawning the objects away from you, but it already allows for much more precision that doing it all by hand.

New version released: GMGenie 0.7.2.zip

The most important change in this version is support for cataclysm clients (tested on 4.3.4). It still works fine on Wrath of the Lich King too, so I think any patches in-between should be fine as well.

I have only had time for some quick testing so far, so there may still be some small issues. If you come across any, please let me know and I will try to fix is asap /emoticons/default_smile.png

This is awesome and you should feel awesome! Thank you very much, for this fantastic addon!

best addon eu and us for sure, must have for every truthful gamemaster in the way of troubleshooter


I just seen in the Screenshot, that there are actually more options… When i log in, in that little box shown up i only can toggle the option “gm fly on / off”, but no other Option. Is there any fix for that?

Ehr, that little window holds the toggles for a few things, as well as two buttons to open the ticket interface and the builder. Furthermore, if you right click a player name, you should have access to plenty of other options regarding character information and customisations, mutes and bans.

If you can’t see any of that, please post a screenshot here so I can investigate it /emoticons/default_smile.png



May that have something to do with SOAP?

Uhm, this is an in-game addon, it has nothing to do with soap at all /emoticons/default_tongue.png

Anyway, you are having exactly the same problem as Ashikaga earlier in this thread. You have a German WoW installation, which means the messages you receive from the server are also localized. The addon is only able to read English system messages at this time, which is why it does not work for you. You’ll either have to switch to an English wow client, or wait until the next version in which I will try to come up with a good solution /emoticons/default_smile.png