Download
(120Kb)
Download
Updated: 01-15-10 09:53 AM
Pictures
File Info
Updated:01-15-10 09:53 AM
Created:10-19-09 04:54 PM
Downloads:74,821
Favorites:257
MD5:

Faceroller  Popular! (More than 5000 hits)

Version: 0.2.9
by: hungtar [More]

please accept my apology for abandoning this addon and not answering your support requests.

I don't play wow anymore and thus any request will remain unaswered.


What is Faceroller?

Faceroller is an addon in the spirit of Event Horizon with the look of Faceshooter. It's focus lies on using a minimal amount of screen space while showing anything you need to know at the moment.

It will show you only one icon on the screen: the highest priority ability, which should be used next. Once the ability was used, it will reevaluate all cooldowns and debuffs on your target and present you the next spell.

As this needs tracking of cooldowns and debuffs and making decisions what to suggest when, Faceroller is split into modules. And to get some use out of Faceroller, you will need a module that fits your talent spec (See below for a list of modules).

You will get little or no use out of Faceroller if your toon is below level 80!


What Faceroller is NOT

First and foremost, Faceroller is not all knowing. It only keeps track of your current target and therefore can assist you only with a single target.


How to use Faceroller

First, you will need a module that works with your spec. There are currently modules available for the following specs:

  • Warrior:
  • Shadow Priest
  • Balance Druid
  • Deathknight:
    • Frost 1 (included, experimental*, by hectolight, module name: dkdwfrost)
    • Frost 2 (included, experimental*, by Kallsuh, module name: dkdwfrost_Kall)
    • unholy
    • blood
  • Paladin:
    • Retribution
    • Prot (included, experimental*, by lloydbates)
  • Warlock:
  • Hunter:
    • mm/sv/bm hunters (included, all in one module named simplehunter)
  • Shaman:
    • Enhancement (included)
    • Elemental (included, experimental*)
  • Mage:
    • FFB (included, experimental*)
    • Arcane (included, experimental*)
  • Rogue:

* These modules may not always work as expected. If they don't, please leave a comment.

If you see the message "init failed for module ... (Reason: none given)" enable debug output with /fr debug. Make sure your character knows all the spells, required by the module you are using, before reporting it as a bug!

Install a module of your choice along with Faceroller. Start WoW. You can fire up the GUI with /fr config or by clicking on the LDB plugin (if you have a broker display).

Note: Faceroller rememberrs different modules for both specs, if you have dual spec. If you switch specs for the first time after installing Faceroller, don't forget to configure!

Note: All modules require your character to be level 80 to work!

Getting started with your own module

Writing your own module can be as easy as editing a lua table. See Faceroller_EasyExample (included in the zip) for an example how that works.

If the possibilities provided by the Easy* API are too restraining, you will need some knowledge of lua or you will have a hard time writing your own module. Have a look at Faceroller_ExampleModule (included in the zip). It's a simple module that does the same as Faceroller_EasyExample but with a more complex API. The comments are quiet extensive and should give you a good overview how things work.

The module Faceroller_SimpleEnhancementShaman uses a mixture of both and might help you as well with getting started.

Also, have a look at the documentation at github. If you have further questions, leave a comment.


Want to share your module?

If you wrote a module but you don't want to maintain it yourself, i can include it in the zip here. Just send me a PM or leave a comment where i can find your module. Note: since i won't be able to test all modules, new included modules will be marked as experimental for a few weeks. If too many people complain about an experimental module, it will get deleted. So please make sure it really works.

Following is a (possibly incomplete) list of specs, for which there is currently no module:
  • Feral Druid
  • Rogue: assassination, subtlety

Credits
  • Icon skin taken from oUF_Fleetfood.
  • Idea for corner indicators from Grid.
  • and a big Thank You to everyone that used an early Faceroller version and to those who report bugs and write modules!

version 0.2.9:
- added option for silent module init.
- call module option function even if /fr opt is called without argument.

version 0.2.8:
- toc update.
- removed deadca7s unholy dk module.
- API changes for RegisterBuff:
- RegisterBuff(<spell>) works as before
- RegisterBuff(<spell>, true) now checks for buffs on player cast by anyone.
- RegisterBuff(<spell>, false, true) now checks for debuffs on player cast by player (used only in arcane mage module).

version 0.2.7:
- added deadca7s unholy dk module.

version 0.2.6:
- added Kallsuhs frost dk module.

version 0.2.5:
- added Opaques prot warrior module.

version 0.2.4:
- frame is now click-through.
- added options to arcane mage module.

version 0.2.3:
- frost dk module: HoW / SoE totem check.

version 0.2.2:
- bug fix in EasyChooseSpell.

version 0.2.1:
- bug fix: reset everything that can be set by a module when no module is set for the current spec.

version 0.2.0:
- don't load example modules.
- moved simplehunter and enh module to experimental modules.
- option to disable/enable corner indicators (disabled by default).

version 0.1.9.5:
- update to frost dk module, courtesy of hectolight (strength of earth totem overwriting horn of winter).

version 0.1.9.4:
- two times a charm ...

version 0.1.9.3:
- bug fix (check for possibly invalid gui saved variable).

version 0.1.9.2:
- hide old modules options when selecting another.
- with buttonfacade enabled, only use fade animations that will show properly.
- added hectolights frost dk module.
- added debug message to HasSpell to see which spell can't be found (/fr debug to enable debug messages).

version 0.1.9.1:
- call modules next skill function once in a while to make sure everything is up to date.
- LDB plugin icon update and tooltip added.

version 0.1.9:
- added /fr skin command.
- added more corner indicators to simplehunter module.
- fixed corner indicator scaling bug.

version 0.1.8:
- added lloydbates prot pala module.

version 0.1.7.3:
- guess arcane blast debuff.

version 0.1.7.2:
- more changes to arcane mage module.

version 0.1.7.1:
- track player debuffs.
- some changes to arcane mage module.

version 0.1.7:
- new gui (if i become discontent about the gui again, it will be gone for good).
- added arcane mage module (experimental).

version 0.1.6.2:
-fixed wrong spell id in elemental shaman module.
-fixed improved scorch and hot streak in ffb mage module (thanks to Baine, who did all the testing!)

version 0.1.6.1:
- faster updates for debuffs.

version 0.1.6:
- some stuff to reduce cpu load.
- ffb mage and ele shaman module (untested stuff).

version 0.1.5:
- bug fix: frame should once again show on unit that become attackable while they are targeted.

version 0.1.4:
- fadein/fadeout animation for frame.
- corner indicators for SimpleEnhancementShaman module.

version 0.1.3b:
- buttonfacade should work now ...

version 0.1.3:
- broke ldb and bf support when merging the modules. should work again.

version 0.1.2:
- reorganized sourcecode.
- fixed strata of corner indicators.
- added key binding to open the config.

version 0.1.1:
- gui improvements.

version 0.1.0:
- removed Faceroller_Config and Faceroller_Toy
- new gui: Faceroller_GUI
- gui features: ButtonFacade support, LDB plugin.

version 0.0.25:
- fixed typo in simplehunter module.

version 0.0.24:
- spell icon path for buffs and debuffs.

version 0.0.23:
- API improvements.

version 0.0.22:
- new API function UnregisterModule.
- new module: Faceroller_toy.

version 0.0.21:
- new API function EasyRegister.
- improvements to EasyChooseSpell.
- cooldowns, time left on buffs/debuffs should now always be correct.

version 0.0.20:
- fixed bugs in gui and core that keept it from working with secondary spec after login.
- option to show/hide frame in vehicles.

version 0.0.19:
- fixed a bug with saved variables and module init.
- added Faceroller_EasyExample module.

version 0.0.18:
- changed Easy* functions to work less stupid.

version 0.0.17:
- module options should now work with dual spec
- added EasySetup and EasyChooseSpell to API.

version 0.0.16:
- added module options to the GUI.

version 0.0.15:
- corner indicators
- destro wl module included.

version 0.0.14:
- module init fix with uninitialized options.

version 0.0.13:
- trying so set an invalid module should no longer destroy an existing, working setup.
- Faceroller_Config added (gui).

version 0.0.12:
- fix(?) for reactive abilities being incorrectly disabled.

version 0.0.11:
- updates to example module.
- update time_left for myTargetDebuffs.

version 0.0.10:
- Faceroller:HasGlyph(spellid) function
- Faceroller:GetSetItemSlotItems() (returns item id of head, shoulder, chest, legs, gloves)
- Faceroller.in_combat flag (boolean).
- hide frame when no module is set.
- unset current module with /fr mod none.

version 0.0.9:
- color frame red when out of range.
- color frame blue when out of power.
- FR_test3 is now Faceroller_SimpleEnhancementShaman.
- module init functions: may now 'return nil, <error-string>'
- some module updates.

version 0.0.8:
- show frame when target becomes attackable.
- simplehunter module: fixed handling of ES with lock and load.

version 0.0.7:
- example module update.
- hm fix in simplehunter module.

version 0.0.6:
- changed packing to fix minion problem.
- some module stuff

version 0.0.5:
- some more stuff for reactive abilities.

version 0.0.4:
- support for reactive abilities.
- options for when to show/hide the frame.

version 0.0.3:
- added missing slash commands.

version 0.0.2:
- fixed a "typo"

version 0.0.1:
- first beta release.
Optional Files (7)
File Name
Version
Size
Author
Date
Type
1.2c
2kB
05-14-11 03:29 AM
Addon
1.7
2kB
05-08-11 07:38 AM
Addon
1.2.1
102kB
02-13-11 02:06 PM
Patch
1.2
2kB
02-13-11 05:15 AM
Addon
4.0
1kB
01-02-11 01:25 PM
Addon
1.3.2
2kB
03-24-10 04:44 PM
Addon
1.1
2kB
10-25-09 01:16 PM
Addon


Post A Reply Comment Options
Unread 11-28-09, 10:03 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Opaque
Ok great... last question!

Right now, the way I have it, it's suggesting Revenge even when it's not usable (it's only usable after I block, dodge, or parry). How would I go about making it only suggest it when actually available?

Thanks again!!!!
You would have to add another table entry that tells Faceroller that Revenge is a reactive ability. Add a value, named reactive, and set it to true. You might also want to add values to check if you have enough rage to actually use the abilities. The table entries name for that would be power. For revenge the entry should look like:
Code:
	[57823] = {	-- revenge
		priority = 300,
		type = "spell",
		reactive = true,
		power = 5,
	},
That should do the trick.
Report comment to moderator  
Reply With Quote
Unread 11-28-09, 09:47 PM  
Opaque
A Fallenroot Satyr
 
Opaque's Avatar

Forum posts: 23
File comments: 138
Uploads: 0
Originally posted by hungtar
You don't. Just add one. As long as they all have the same cooldown and same costs, it doesn't really make any difference so add the lowest rank so the module might work before level 80, if you care about that. (Personally i wouldn't and just use the highest ranks spell id).
Ok great... last question!

Right now, the way I have it, it's suggesting Revenge even when it's not usable (it's only usable after I block, dodge, or parry). How would I go about making it only suggest it when actually available?

Thanks again!!!!
__________________
Report comment to moderator  
Reply With Quote
Unread 11-28-09, 09:25 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Opaque
Thanks! You were right, I had just added it to the experimental folder. I edited the TOC and now it's coming up... how would I go about adding multiple ranks of the same spell then? Just give them their own separate segment of code in the function but with the same priority number as the other ranking version of the same spell?
You don't. Just add one. As long as they all have the same cooldown and same costs, it doesn't really make any difference so add the lowest rank so the module might work before level 80, if you care about that. (Personally i wouldn't and just use the highest ranks spell id).
Report comment to moderator  
Reply With Quote
Unread 11-28-09, 09:20 PM  
Opaque
A Fallenroot Satyr
 
Opaque's Avatar

Forum posts: 23
File comments: 138
Uploads: 0
Originally posted by hungtar
Do you use this as a stand alone module or did you put it into the ~/Faceroller/modules/ somewhere? Probably the second, because you don't get any errors on login/reload ui, right? you would have to add the file then to the Faceroller.toc file.

Stuff like "[47498, 47497, 30022, 30016] = {" in a table declaration is not valid syntax. Just put one spell id inside the square brackets.
Thanks! You were right, I had just added it to the experimental folder. I edited the TOC and now it's coming up... how would I go about adding multiple ranks of the same spell then? Just give them their own separate segment of code in the function but with the same priority number as the other ranking version of the same spell?
__________________
Report comment to moderator  
Reply With Quote
Unread 11-28-09, 09:05 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Opaque


Have a peek...

Code:
-- snip snip --


local spells = {

--  snip snip --

	[57823, 30357] = {	-- revenge
		priority = 300,
		type = "spell",
	},

	[47498, 47497, 30022, 30016] = {	-- devastate
		priority = 250,
		type = "spell",
	},
}

Faceroller:EasyRegister("experimental_warrior_prot", spells)
Looking forward to your reply... thanks!!!
Do you use this as a stand alone module or did you put it into the ~/Faceroller/modules/ somewhere? Probably the second, because you don't get any errors on login/reload ui, right? you would have to add the file then to the Faceroller.toc file.

Stuff like "[47498, 47497, 30022, 30016] = {" in a table declaration is not valid syntax. Just put one spell id inside the square brackets.
Report comment to moderator  
Reply With Quote
Unread 11-28-09, 08:52 PM  
Opaque
A Fallenroot Satyr
 
Opaque's Avatar

Forum posts: 23
File comments: 138
Uploads: 0
I tried to make a Prot Warrior module... but it's not coming up as available in my module list in game. Any idea what's wrong? And does the rest of the coding look right? I'm no LUA coder, but I do have some experience with ActionScript so I'm not 100% lost at least.

Have a peek...

Code:
-- Protection Warrior VERY experimental module 11/25/09
-- Using the priority system of: "Shield Slam > Shockwave > Concussion Blow > Revenge > Devastate"

do
	local _, playerClass = UnitClass("player")
	if playerClass ~= "WARRIOR" then return end
end


local spells = {

	[47488, 47487, 30356, 25258] = {	-- shield slam
		priority = 450,
		type = "spell",
	},

	[46968] = {	-- shockwave
		priority = 400,
		type = "spell",
	},

	[12809] = {	-- concussion blow
		priority = 350,
		type = "spell",
	},

	[57823, 30357] = {	-- revenge
		priority = 300,
		type = "spell",
	},

	[47498, 47497, 30022, 30016] = {	-- devastate
		priority = 250,
		type = "spell",
	},
}

Faceroller:EasyRegister("experimental_warrior_prot", spells)
Looking forward to your reply... thanks!!!
__________________
Report comment to moderator  
Reply With Quote
Unread 11-25-09, 05:24 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Opaque
I'd suggest you format the code in "ExampleModule" and "EasyExample"... it's currently a big wall of text.

EDIT:
I found a site with a free little code viewer that makes things much easier to view... for those interested.

http://sourceforge.net/projects/universalindent/files/
set your editors tab width to 8 and use a fixed width font.
Report comment to moderator  
Reply With Quote
Unread 11-25-09, 02:22 AM  
Opaque
A Fallenroot Satyr
 
Opaque's Avatar

Forum posts: 23
File comments: 138
Uploads: 0
I'd suggest you format the code in "ExampleModule" and "EasyExample"... it's currently a big wall of text.

EDIT:
I found a site with a free little code viewer that makes things much easier to view... for those interested.

http://sourceforge.net/projects/universalindent/files/
__________________
Last edited by Opaque : 11-25-09 at 02:30 AM.
Report comment to moderator  
Reply With Quote
Unread 11-24-09, 10:32 AM  
Kyuuzo
A Kobold Labourer

Forum posts: 0
File comments: 88
Uploads: 0
You said i can remove the cup icon, but i can't find the script or module of the rotation in order to remove it :/

And i wonder why the lightning orb icon appers.. is it a bug or? I mean it appears even when the shield is up, fully charged.
Report comment to moderator  
Reply With Quote
Unread 11-24-09, 09:12 AM  
loganvi
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 23
Uploads: 5
Originally posted by hungtar
Err, that "2M" thing on the icon, by any chance is that OmniCC displaying some cooldown? Because there is nothing in the faceroller code that would produce anything like that. Then again, why would you see a 2 minute cooldown where the gcd is supposed to be displayed? Edited the code a little, did you?

the module getting stuck on lifetap is probably a module issue. or did the same module work in an older version?

Edit: IF you did switch specs before the module got stuck and didn't have a module set for the other spec and the other spec doesn't have the life tap glyph, then thats a bug and should be fixed in 0.2.1. But in that case you would have noticed, that you didn't get the buff from the life tap glyph, right?
Yeah I couldn't find anything in FR that would produce the cooldown, so it must be OmniCC. Still trying to figure out why it would stop suggesting appropriately though. I'll test later with no other addons and see if maybe it's a conflict issue.

I made no edits of the FR code That would totally hose the people using my module!
__________________
Kanban - Illidan(US)
Addon Author Portal
Report comment to moderator  
Reply With Quote
Unread 11-24-09, 05:51 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by loganvi
Couple things:

First I'm getting a weird behavior when using a spell that has a cooldown (i.e. Death Coil) that isn't specified in the rotation. Basically what happens is the Next Skill function somehow stops evaluating spells appropriately and returns some spell constantly that doesn't have a cooldown and places the cooldown of the other spell on the frame.

Example:

I start casting my destruction rotation. I cast life tap, curse of elements, immolate all as suggested. Next should be chaos bolt. I cast death coil instead. Now faceroller displays lifetap again with a "2M" on the icon, and no matter what I cast, this choice is stuck.

If this is something I can handle in my mod that I've done wrong then lmk. Otherwise I think it may be a bug.

Second thing, minor thing, when trying to debug the problem above, I notice that the calls to next skill are constant, even when no enemy is targeted. Is this desired behavior?
Err, that "2M" thing on the icon, by any chance is that OmniCC displaying some cooldown? Because there is nothing in the faceroller code that would produce anything like that. Then again, why would you see a 2 minute cooldown where the gcd is supposed to be displayed? Edited the code a little, did you?

the module getting stuck on lifetap is probably a module issue. or did the same module work in an older version?

Edit: IF you did switch specs before the module got stuck and didn't have a module set for the other spec and the other spec doesn't have the life tap glyph, then thats a bug and should be fixed in 0.2.1. But in that case you would have noticed, that you didn't get the buff from the life tap glyph, right?
Last edited by hungtar : 11-24-09 at 07:28 AM.
Report comment to moderator  
Reply With Quote
Unread 11-23-09, 07:04 PM  
Opaque
A Fallenroot Satyr
 
Opaque's Avatar

Forum posts: 23
File comments: 138
Uploads: 0
Would love to see a module for a Prot Warrior!! Please someone put that together. I imagine it should be too tough being they are on a priority "rotation".
__________________
Report comment to moderator  
Reply With Quote
Unread 11-23-09, 06:13 PM  
loganvi
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 23
Uploads: 5
Couple things:

First I'm getting a weird behavior when using a spell that has a cooldown (i.e. Death Coil) that isn't specified in the rotation. Basically what happens is the Next Skill function somehow stops evaluating spells appropriately and returns some spell constantly that doesn't have a cooldown and places the cooldown of the other spell on the frame.

Example:

I start casting my destruction rotation. I cast life tap, curse of elements, immolate all as suggested. Next should be chaos bolt. I cast death coil instead. Now faceroller displays lifetap again with a "2M" on the icon, and no matter what I cast, this choice is stuck.

If this is something I can handle in my mod that I've done wrong then lmk. Otherwise I think it may be a bug.

Second thing, minor thing, when trying to debug the problem above, I notice that the calls to next skill are constant, even when no enemy is targeted. Is this desired behavior?
__________________
Kanban - Illidan(US)
Addon Author Portal
Report comment to moderator  
Reply With Quote
Unread 11-23-09, 04:46 AM  
dubcat
A Defias Bandit
 
dubcat's Avatar
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 42
Uploads: 4
Would be nice if someone could make this for Unholy Death knight

Check if Blood Plague is up, if not Plague Strike
Check if Frost Fever is up, if not Icy Touch
If Blood Rune is ready, do Blood Strike (You should be doing 2x Blood Strike in a row)
If Frost and Unholy Rune is ready, do Scourge Strike
If 40+ Runic Power do Death Coil

And repeat!

When unholy you should only use Plague Strike/Icy Touch to debuff. And 2x Blood Strike, Scourge Strike and Death Coil to dps.
Last edited by dubcat : 11-23-09 at 04:50 AM.
Report comment to moderator  
Reply With Quote
Unread 11-22-09, 05:14 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Kyuuzo
That happens to shaman module as well, after you use all your spells there is a short gap that everything is on cooldown, so all you can do is auto-attack, that's when the faceroller picture appears (that cup thingy ^^) maybe you could make it dissapear or calculate the next spell while showing the cooldown. That's just a suggestion or an assumption, don't mean to offend you by any mean

P.s : i am using the latest version, i suppose there is nothing i can do.. i can only wait for the next version
Hiding the frame when it would display the coffee mug would be possible and maybe I include an option for that in the next version.

If you want to look further into the future and have faceroller suggest something that will not be ready for the next, say, 4 seconds, that would be something the module has to handle.

Personally, i don't think a module should suggest something that you can't use because it kind of defeats the purpose of Faceroller: aiding you with using the right spell at the right time. When something is not ready for the next 4 seconds, it's just not the right time to mash that button. It may be the right time to do something else, though. Something the module was not programmed to suggest to you.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: