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,855
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 01-13-10, 04:06 PM  
audreyj
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
FYI, The Elemental Shaman module should have have a shield warning IMO. If you are like me, you hit your shield and weapon chant at the same time anyway.

Other than that, GREAT addon!
Report comment to moderator  
Reply With Quote
Unread 01-13-10, 08:06 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Noxarious
btw. it keeps spamming using bla for primary talent when I type:
/fr opt tclap or demo

and /fr opt
says it want arguments but souldn't t be sending my list of commands?
When module options are changed, the module is reinitialized completely. Thats why faceroller spams you every time you mess with the options. But yeah there should be an options to make it less spammy.

I will change the behaviour of /fr opt in the next version. The way it currently works isn't good.

Edit: When the behaviour of /fr opt is changed in the next version to call the modules option function, even if no argument was passed to /fr opt, make sure your modules does check for that first. E.g.:

Code:
local Options = function(cmd)
	if cmd == nil or cmd == "help" then
		-- print help text

		return
	end

	local Cmd, Args = strsplit(" ", cmd:lower(), 2)
	-- do other stuff
...
Edit 2: change is in 0.2.9
Last edited by hungtar : 01-15-10 at 09:54 AM.
Report comment to moderator  
Reply With Quote
Unread 01-13-10, 05:42 AM  
Noxarious
Premium Deadmeat
 
Noxarious's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 60
Uploads: 1
btw. it keeps spamming using bla for primary talent when I type:
/fr opt tclap or demo

and /fr opt
says it want arguments but souldn't t be sending my list of commands?
Last edited by Noxarious : 01-13-10 at 07:07 AM.
Report comment to moderator  
Reply With Quote
Unread 01-12-10, 01:07 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by atticu5
it stacks to 2. when you crit you get 2 stacks of it and each cast lowers it by 1.
Please post your complete module code and i'll try to figure out what the issue is.
Report comment to moderator  
Reply With Quote
Unread 01-11-10, 09:55 PM  
atticu5
A Defias Bandit

Forum posts: 3
File comments: 8
Uploads: 0
Originally posted by hungtar
Probably the part marked red is the problem. Or does the buff have stacks?
it stacks to 2. when you crit you get 2 stacks of it and each cast lowers it by 1.
Report comment to moderator  
Reply With Quote
Unread 01-11-10, 05:17 AM  
riph
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 8
Uploads: 1
Is there a way to return a custom icon instead of a specific spell? For example in my enhancement shaman module I would like to show a custom icon for using Chain Lightning or Lightning Bolt instead of just showing the Lightning Bolt.
Report comment to moderator  
Reply With Quote
Unread 01-11-10, 04:00 AM  
Noxarious
Premium Deadmeat
 
Noxarious's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 60
Uploads: 1
Nvm lazy people
Last edited by Noxarious : 01-12-10 at 09:39 AM.
Report comment to moderator  
Reply With Quote
Unread 01-10-10, 07:15 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Kunstbanause
Hei Hungtar,

I am currently updating my Retribution module. The new EasyRegister function works great and its much easier to create new modules.

But I would like to request a new key in the skills table. Ret palas need to check if the buff Art of War is active before using Exorcism.

My key should be able to look like this:
Code:
	[48801] = {				-- Exorcism
		priority = 250,
		type = "spell",
		requiredBuff = "53488", -- Art of War
	},
____
@Noxarious:
Change buff with debuff and it should work. Read http://wiki.github.com/hungtar/Facer...entation#funcs carefully.
Maybe in the next version. In the mean time, you could use a mix of the "easy" api functions on the other ones. Like the enhancement shaman module does.
Report comment to moderator  
Reply With Quote
Unread 01-10-10, 12:05 AM  
Kunstbanause
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 54
Uploads: 4
Hei Hungtar,

I am currently updating my Retribution module. The new EasyRegister function works great and its much easier to create new modules.

But I would like to request a new key in the skills table. Ret palas need to check if the buff Art of War is active before using Exorcism.

My key should be able to look like this:
Code:
	[48801] = {				-- Exorcism
		priority = 250,
		type = "spell",
		requiredBuff = "53488", -- Art of War
	},
____
@Noxarious:
Change buff with debuff and it should work. Read http://wiki.github.com/hungtar/Faceroller/api-documentation#funcs carefully.
Last edited by Kunstbanause : 01-10-10 at 05:18 PM.
Report comment to moderator  
Reply With Quote
Unread 01-08-10, 04:36 AM  
Noxarious
Premium Deadmeat
 
Noxarious's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 60
Uploads: 1
Possible to add Thunderclap and Demo shout to the warrior?

I tried myself

Code:
	[47502] = {	-- thunderclap
		priority = 250,
		type = "spell",
	},

	[47437] = {	-- demoralizing shout
		priority = 200,
		type = "spell",
	},
with
Faceroller:RegisterDebuff(47502, true)
Faceroller:RegisterDebuff(47437, true)
Last edited by Noxarious : 01-08-10 at 05:06 AM.
Report comment to moderator  
Reply With Quote
Unread 01-04-10, 07:09 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Fendryl
I've been working on a DK blood dps module & ran across a bug that's in all the DK modules. NextShot() gets called with a filtered list of buffs so you only get back your self-cast ones, as such the logic in the DK modules for using Horn of Winter only if there's no Strength of Earth always assumes SoE isn't present.

would:
Code:
local soe = UnitBuff("player", b_soe)
if soe == nil then
    .
    .
end
be the proper way of checking?
You get a list of buffs you previously told faceroller (with RegisterBuff) you want information about. For buffs you register it is (or was, see below) assumed, you are the one who cast it.

So the problem with SoE totem and horn of winter you are referring to comes from the limitation that buffs were only regarded if the buff was cast by the player. No idea how this didn't occur to me as the problem earlier. I guess not touching the source code over the hollydays was a good idea then.

As of 0.2.8 RegisterBuff will work a bit differently.
  • RegisterBuff(<spell>) will work as before. This is what all modules use exclusively at the moment (with the exception of the arcane mage module)
  • RegisterBuff(<spell>, true) will register a buff cast by anyone (e.g. SoE totem. The buff would appear here if it's your own totem or someone elses).
  • RegisterBuff(<spell>, false, true): register a debuff cast by yourself on yourself. (I included this use here only for completeness as it is only used for the arcane blast debuff).

Now the most important part if you need to check for buffs cast by others. The table with the buffs cast by anyone is passed to your next skill function as the last argument:

Code:
local function Next(gcd, spells, buffs, tarDebuffs, tarMyDebuffs, pDebuffs, buffsAny)
buffsAny will contain the buffs registered with RegisterBuff(<spell>, true).

Note: If your module did work before this change (i.e. with FR version 0.2.7), it should work with the latest version, without any changes.
Last edited by hungtar : 01-04-10 at 07:15 AM.
Report comment to moderator  
Reply With Quote
Unread 01-03-10, 03:39 PM  
Fendryl
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 1
File comments: 7
Uploads: 1
Originally posted by hungtar
Probably the part marked red is the problem. Or does the buff have stacks?
I've been working on a DK blood dps module & ran across a bug that's in all the DK modules. NextShot() gets called with a filtered list of buffs so you only get back your self-cast ones, as such the logic in the DK modules for using Horn of Winter only if there's no Strength of Earth always assumes SoE isn't present.

would:
Code:
local soe = UnitBuff("player", b_soe)
if soe == nil then
    .
    .
end
be the proper way of checking?
Report comment to moderator  
Reply With Quote
Unread 01-03-10, 06:06 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by atticu5
how do i get it to only display chain lightning when i have the clearcasting buff? i tried copying and altering some of the code from the enhance module and i got:

Code:
local Init = function()
	if Faceroller:EasySetup (skills) == nil then
		return nil, "Missing Spell?"
	end

	Faceroller:RegisterBuff(16246)	-- clearcasting
	b_clearcasting = Faceroller.gsi[16246]
	b_water = Faceroller.gsi[57960]
	b_lightning = Faceroller.gsi[49271]
	return skills
end


local NextShot = function(gcd, spells, buffs, debuffs, myDebuffs)
	local th = max(1, gcd) + 0.1
	local n = 0

	-- check if we have clearcasting
	local v = buffs[b_clearcasting]
	if v.active and v.count == 2 and v.time_left > 1 then
		return 49271
	end

	n = Faceroller:EasyChooseSpell(th)

	if n == 0 then
		-- nothing to do. refresh water shield
		if buffs[b_57960].count < 4 then
			return 57960
		end
	end

	return n
end
but it doesnt show chain lightning when i have the clearcasting buff. so where did i mess up?
Probably the part marked red is the problem. Or does the buff have stacks?
Report comment to moderator  
Reply With Quote
Unread 01-02-10, 05:46 PM  
atticu5
A Defias Bandit

Forum posts: 3
File comments: 8
Uploads: 0
how do i get it to only display chain lightning when i have the clearcasting buff? i tried copying and altering some of the code from the enhance module and i got:

Code:
local Init = function()
	if Faceroller:EasySetup (skills) == nil then
		return nil, "Missing Spell?"
	end

	Faceroller:RegisterBuff(16246)	-- clearcasting
	b_clearcasting = Faceroller.gsi[16246]
	b_water = Faceroller.gsi[57960]
	b_lightning = Faceroller.gsi[49271]
	return skills
end


local NextShot = function(gcd, spells, buffs, debuffs, myDebuffs)
	local th = max(1, gcd) + 0.1
	local n = 0

	-- check if we have clearcasting
	local v = buffs[b_clearcasting]
	if v.active and v.count == 2 and v.time_left > 1 then
		return 49271
	end

	n = Faceroller:EasyChooseSpell(th)

	if n == 0 then
		-- nothing to do. refresh water shield
		if buffs[b_57960].count < 4 then
			return 57960
		end
	end

	return n
end
but it doesnt show chain lightning when i have the clearcasting buff. so where did i mess up?
Report comment to moderator  
Reply With Quote
Unread 12-16-09, 05:06 PM  
cashdash
A Deviate Faerie Dragon
 
cashdash's Avatar
AddOn Author - Click to view AddOns

Forum posts: 12
File comments: 14
Uploads: 4
Originally posted by Gizim
Just got it and the Unholy DK set and i get a coffee cup.. did i miss something?
The coffecup shows up when all runes are in use and none of the Skills are usable.
__________________
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: