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,794
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 10-21-09, 12:56 PM  
Sano
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 29
Uploads: 4
Edit: in 0.0.5 "if spells[X].usable == 1 and spells[X].enabled ~= 1 then ..." should work. [/b]
Awesome, I'll play around with .enabled tonight. I also may take a stab at adding multiple queue frames.
Report comment to moderator  
Reply With Quote
Unread 10-21-09, 01:17 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Sano
Awesome, I'll play around with .enabled tonight. I also may take a stab at adding multiple queue frames.
i also moved the createFrames function to Faceroller:createFrames so you can easily create a new frame from inside your module. But unlocking, moving etc. will not be handled for you. Still not convinced there is a real use for multiple frames though. Let me know how it goes
Report comment to moderator  
Reply With Quote
Unread 10-21-09, 01:37 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by acapela
the way this addon is packaged within its ZIP (or something, but that is my guess) is apparently making it difficult for the WoWI Minion to manage the addon... burying the actual installed addons inside a folder, rather than just directly within the ZIP, etc. i can't get it to update in any kind of automated fashion.

FYI.
Thanks for letting me know. Just downloaded that thing to get an idea what the issue could be. Unfortunately, i got an "Internal Error" on every addon i tried to update. I will wait some time and try this again. But at the moment there is nothing i can do about this.

Edit: looked in the mmoui minion forum and noticed this is a known bug with the client. Will pack the next release with just the addons in the zip and not in an extra folder. But of course i won't be able to check if that fixes it.

Edit: 0.0.6 is packed as described above. let's hope that fixes it.
Last edited by hungtar : 10-21-09 at 10:25 PM.
Report comment to moderator  
Reply With Quote
Unread 10-21-09, 04:27 PM  
Kunstbanause
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 54
Uploads: 4
Updated Faceroller_RetPaladin with your newest additions and gave it a proper module name.
Report comment to moderator  
Reply With Quote
Unread 10-21-09, 10:30 PM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Kunstbanause
Updated Faceroller_RetPaladin with your newest additions and gave it a proper module name.
great, with the new hunter module in 0.0.6, there are now only modules for about 20 specs missing
Report comment to moderator  
Reply With Quote
Unread 10-22-09, 01:49 AM  
Psychophan7
A Chromatic Dragonspawn

Forum posts: 153
File comments: 47
Uploads: 0
Wowhead is down right now, but I'm currently working on modules for mut rogues, shadow priests, and demo locks.

EDIT: I won't mind if anyone beats me to these, though.
Last edited by Psychophan7 : 10-22-09 at 01:50 AM.
Report comment to moderator  
Reply With Quote
Unread 10-22-09, 05:56 AM  
wurmfood
A Flamescale Wyrmkin
AddOn Author - Click to view AddOns

Forum posts: 122
File comments: 33
Uploads: 5
Possible bug in the simplehunter module.

Around lines 234 - 241 there appears to be an option to enable/disable Hunter's Mark. However, it's impossible to toggle it. I'm guessing that on line 235 it should say "if options.hunters_makr == 0 then", as that would actually allow a toggle.
Report comment to moderator  
Reply With Quote
Unread 10-22-09, 07:27 AM  
Psychophan7
A Chromatic Dragonspawn

Forum posts: 153
File comments: 47
Uploads: 0
Originally posted by Kunstbanause
Hei man don't hate me please... but ...here are some bug reports XD

/fr
Prints "Faceroller: Faceroller options:"
and nothing more
I found out why. A lot of the Print function calls aren't written right. Roughly 12 or so of them are:
Code:
Print ("blah blah blah")
There's a space between function and arguments!


-- register the module. (the last arg, which we pass as
-- nil here, would be the function to handle module options.
-- see FR_test2.lua for an example on how to do that).
Faceroller:RegisterModule(MODULE_NAME, Init, NextShot, nil)
I wasn't able to find FR_test2.lua, and it's not covered in FR_test3.lua either. How do we use the last argument?
Report comment to moderator  
Reply With Quote
Unread 10-22-09, 07:46 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by wurmfood
Possible bug in the simplehunter module.

Around lines 234 - 241 there appears to be an option to enable/disable Hunter's Mark. However, it's impossible to toggle it. I'm guessing that on line 235 it should say "if options.hunters_makr == 0 then", as that would actually allow a toggle.
Ugh .. yeah, thats impossible to toggle. Thanks for the bug report. Fix is in 0.0.7.
Report comment to moderator  
Reply With Quote
Unread 10-22-09, 07:54 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by Psychophan7
I found out why. A lot of the Print function calls aren't written right. Roughly 12 or so of them are:
Code:
Print ("blah blah blah")
There's a space between function and arguments!




I wasn't able to find FR_test2.lua, and it's not covered in FR_test3.lua either. How do we use the last argument?
No, you didn't find out why. The space between function and arguments doesn't matter.

You didn't see any output because it wasn't there. However, that was already adressed in 0.0.2 or something. Please make sure you are using the latest version before you post comments here.

The references in Faceroller_ExampleModule to an non-existing module FR_test2 is corrected in 0.0.7. FR_test2 is now Faceroller_SimpleHunter.
Report comment to moderator  
Reply With Quote
Unread 10-22-09, 09:28 AM  
Psychophan7
A Chromatic Dragonspawn

Forum posts: 153
File comments: 47
Uploads: 0
Originally posted by hungtar
You didn't see any output because it wasn't there. However, that was already adressed in 0.0.2 or something. Please make sure you are using the latest version before you post comments here.
Right now I'm just writing modules for it, I haven't actually logged on yet to use the addon. I was working with 0.0.6, though. I just grabbed the archived 0.0.4 to find FR_test2, in any case.
Report comment to moderator  
Reply With Quote
Unread 10-22-09, 02:55 PM  
Kunstbanause
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 54
Uploads: 4
Faceroller_ShadPriest is out.
Still needs testing and is missing some features. Please give me your feedback in the comments!

Cheers!
Last edited by Kunstbanause : 10-22-09 at 02:55 PM.
Report comment to moderator  
Reply With Quote
Unread 10-23-09, 08:46 AM  
tobblerone
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
MM Hunter Plugin didnt work for me. (German Client)

A Grey White Icon instead of Skillicon appears.
Last edited by tobblerone : 10-23-09 at 08:59 AM.
Report comment to moderator  
Reply With Quote
Unread 10-23-09, 10:02 AM  
hungtar
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 151
Uploads: 9
Originally posted by tobblerone
MM Hunter Plugin didnt work for me. (German Client)

A Grey White Icon instead of Skillicon appears.
Which version of faceroller are you using? Did you follow the instructions on the page? With the latest version, after executing /fr mod simplehunter it should work. If it doesn't work for what ever reason, you should at least get a error message.
Last edited by hungtar : 10-23-09 at 10:02 AM.
Report comment to moderator  
Reply With Quote
Unread 10-23-09, 01:42 PM  
TekNoir
Premium Member
 
TekNoir's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 23
File comments: 15
Uploads: 1
SimpleEnhancementShaman

I was just about to rewrite ShamWow to be more generic (for any class) when I saw this addon newly posted. Your addon is exactly what I wanted. Great work so far!

I made some changes to your included SimpleEnhancementShaman that others might like to use.

With the changes to Flame Shock if glyphed (increased duration and crits), I added a check to see if the shaman has the needed glyph and whether or not the target already has the debuff. It will replace the first earth shock in the melee rotation if both conditions are met. It will also suggest flame shock over earth shock if ranged and both conditions are met. If in melee range, it will suggest using Stormstrike before flame shock or earth shock for the bonus damage.

I also added Shamanistic Rage and an emergency heal if low on life. I forget if I added more or changed anything else. Those are the big changes.

---

If I might make some requests?

1. Perhaps a way to detect combat status (in or out of combat)? I was going to put in a suggestion to heal if low on life, high on mana, and out of combat. When I target something and the Faceroller button appears, it would yell "Heal yourself before you do something stupid!" or at least display the heal icon (preferably just the icon). That way I don't waltz into combat with too low of life, especially if I have the mana to spare.

2. Perhaps a better way to detect if in melee range than the way I have scripted? The way I wrote it feels a bit awkward. It also sometimes but rarely requires me to be struck once before it realizes I'm in melee range.

3. Perhaps an easier way to access glyphs and possibly talents? It took me quite some time to figure out exactly which spell id to use for a detected glyph.

4. Perhaps a better way to exclude spells from the rotation when you still need to keep up with their cooldown (e.g. Shamanistic Rage)? I used the p-variable and v.data (detecting zero; anything other than zero sorts according to priority), but it currently feels awkward. Acceptable as it currently is so it's certainly a low priority. Currently I believe you can just give anything you want out of rotation a .data of zero and then number everything else according to priority (with bigger == better) and then exclude zeros after the fact (as I did in my example).

That is all that I can think of for now. Thank you for your time and the wonderful addon!

---

PS: Cannot figure how to add a file, so here is my revised code.
Code:
--
-- Enhancement Shaman module.
--
do
	local _, playerClass = UnitClass("player")
	if playerClass ~= "SHAMAN" then return end
end

local MODULE = "enh"
local Faceroller = _G["Faceroller"]
local gsi = Faceroller.gsi

local b_maelstrom
local b_lightning
local b_fshock
local fshock = false
local ranged = 0
local mana = 0
local maxMana = 0
local health = 0
local maxHealth = 0


local Init = function()
	local skills = {
		[17364] = 400,		-- Stormstrike
		[8042] = 200,		-- Earth Shock
		[60103] = 100,		-- Lava Lash
		[30823] = 0,		--Shamanistic Rage
	}

	for k, v in pairs(skills) do
		if Faceroller:HasSpell (k) == false then
			return nil, "spell not found"
		end
	end

	Faceroller:RegisterBuff(324)	-- lightning shield
	Faceroller:RegisterBuff(51532)	-- maelstrom weapon
	
	-- check for glyph of flame shock and register debuff
	fshock = false
	for i = 1, 6 do
		local _, _, g, _ = GetGlyphSocketInfo(i, atg)
		if g == 55447 then
			fshock = true
			Faceroller:RegisterDebuff(8050, true) --Flame Shock
			print (MODULE .. ": found Glyph of Flame Shock")
		end
	end

	b_maelstrom = gsi[51532]
	b_lightning = gsi[324]
	b_fshock = gsi[8050]

	return skills
end


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

	mana = UnitPower('player');
	maxMana = UnitPowerMax('player');
	health = UnitHealth('player');
    maxHealth = UnitHealthMax('player');

	if spells[30823].cd < th and (mana < .2 * maxMana) then
		return 30823
	end
	
	-- check if we have 5 stacks of maelstrom weapon
	local v = buffs[b_maelstrom]
	if v.active and v.count == 5 and v.time_left > th then
		return 403
	end

	-- no lightning shield
	if not buffs[b_lightning].active then
		return 324
	end

	-- check if Stormstrike should be used in melee range before Shock.
	ranged = IsSpellInRange("Stormstrike", "target") == 0
	if not ranged and spells[17364].cd < th then
		return 17364
	end	

	-- no flame shock and glyphed
	if fshock == true then
		local v = myDebuffs[b_fshock]
		if v.active == false or v.time_left < 2 then
			return 8050
		end
	end
	
	-- find highest priority skill to use
	local n = 0
	local p = 0

	for k, v in pairs(spells) do
		if v.cd < th then
			if v.data > p then
				n = k
				p = v.data
			end
		end
	end

	if n == 0 or p == 0 then
		-- nothing to do. refresh lightning shield or emergency heal
		if buffs[b_lightning].count < 3 then
			return 324
		elseif (health < .25 * maxHealth) then
			return 331
		else
			return 0
		end
	end

	return n
end


Faceroller:RegisterModule(MODULE, Init, NextShot, nil)
Last edited by TekNoir : 10-23-09 at 02:06 PM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: