Giter VIP home page Giter VIP logo

hero-rotation's Introduction

Not everything is updated for Dragonflight, so please check the table below (Supported Rotations). If a spec is in WIP or KO status, please do not report an issue about it.

If you are missing dependencies, (HeroDBC and HeroLib), you have to install them.

If you are experiencing issues with AoE rotations (likely abilities not being recommended), be sure to have enemies nameplates enabled and enough nameplates shown (camera can hide them).

If you see an icon with "POOL" written inside, it means you have to pool your resources. It's a normal behavior. Please see this link explaining resource pooling.

If you update the addon via the Twitch Client and wish to get every change as they are released, please set the addon type to Alpha by right clicking the addon name and selecting Alpha under Release Type. Note that this can potentially include updates that break functionality!

HeroRotation

GitHub license GitHub contributors GitHub forks GitHub stars
GitHub issues GitHub pull requests GitHub closed issues GitHub closed pull requests
GitHub release GitHub Release Date GitHub commits since latest release (by date) GitHub last commit

HeroRotation is a World of Warcraft addon to provide the player useful and precise information to execute the best possible DPS rotation in every PvE situation at max level.
The project is hosted on GitHub and powered by HeroLib & HeroDBC.
It is maintained by Aethys and the HeroTC team.
Also, you can find it on CurseForge.

There are a lot of helpful commands. Do '/hr help' to see them in-game!
Most of the commands and options are being moved to Addons Panels, and you can see them by going into Interface -> Addons -> HeroRotation.

Feel free to join our Discord. Feedback is highly appreciated!

Key Features

  • Main icon that shows the next ability you should cast.
  • Two smaller icons above the previous one that shows the useful abilities to use (they are mostly off-gcd).
  • One medium icon on the left that shows every ability that should be cycled (i.e. multi-dotting) using nameplates.
  • One medium-small icon on the upper-left that does proposals about situational offensive/utility abilities (trinkets, potions, ...).
  • One medium-small icon on the upper-left that does proposals about situational defensive abilities (trinkets, potions, ...).
  • Toggles to turn On/Off the CDs or AoE to adjust the rotation according to the situation (the addon can be paused this way aswell).

Toggles can assigned to keybinds. Set them in 'Game Menu -> Key Bindings -> AddOns'.

Every rotation is based on SimulationCraft Action Priority Lists.
This means that the accuracy of the addon heavily depends on how well the SimC APL is made.
Be aware that some APLs are pretty good in some simulations circumstances but behaves pretty poorly in-game due to too much sequencing / lack of priority. We do our best to account for this in HeroRotation.

Special Features

  • Handle both single target and AoE rotations (it auto adapts).
  • Range radar to also detect enemies around the target (the more players in your party, the more accurate it is).
  • Optimized pooling of resources when needed (ex: energy before using cooldowns as a rogue).
  • Next cast prediction (mainly for casters).
  • Accurate TimeToDie / FightRemains prediction.
  • Special handlers for tricky abilities (ex: finality or exsanguinated bleeds for rogues).
  • Solo mode to prioritize survivability over DPS. (Not available in every rotation, disabled in dungeon/raid)

Supported Rotations

Class Specs
Death Knight Blood Frost Unholy
Demon Hunter Havoc Vengeance
Druid Balance Feral Guardian
Evoker Augmentation Devastation Preservation
Hunter Beast Mastery Marksmanship Survival
Mage Arcane Fire Frost
Monk Brewmaster Windwalker Mistweaver
Paladin Protection Retribution Holy
Priest Shadow Discipline Holy
Rogue Assassination Outlaw Subtlety ⚠️
Shaman Elemental Enhancement Restoration
Warlock Affliction Demonology Destruction
Warrior Arms Fury Protection

Spec - The rotation does have an optimal SimC APL and is optimally implemented in the addon.
Spec - The rotation does not have an optimal SimC APL but is optimally implemented in the addon.
Spec - The rotation is not optimally implemented in the addon.
Spec - The rotation is not supported on SimC or is not yet implemented in the addon.
⚠️ - The rotation is maintained by the community (through Pull Requests) and not by the core team.

Do you want to contribute? Feel free to open a pull request, an issue or ask around in our Discord.
You can look at our Battle for Azeroth, Legion, and Shadowlands branches too if you want to see earlier versions. Rogue rotations are usually the most polished ones, so you can take inspiration from them.

Support the team

Name Maintaining Since Donate Watch
Aethys Project Founder Aug 2016 Donate Stream
KutiKuti Core, Mage Mar 2017 Donate
Kojiyama Core, DH, Rogue Sep 2017 Donate
Cilraaz Core, VDH, Evoker, all but Rogue Jan 2019 Donate Donate Stream
Synecdoche Rogue, Tanks Apr 2019

Past members

Skasch, Riff, Tael, Locke, 3L00DStrike, Lithium, Glynny, Nia, Mystler, Krich, Blackytemp, Hinalover

Special Mention About SimC APL

As said earlier, every rotation is based on SimulationCraft Action Priority Lists (APL).
What this means is it heavily relies on how optimized those APLs are, especially for some talents, items and any specific mechanic/gimmick.
Do remember that what the addon tells you is what the robot on SimulationCraft would do in your situation (except he never fails, so you could end up in situations that were never seen).
It also means that you can improve the current APL by using the addon and reporting any issues you might encounter.
Rogue theorycrafters uses both SimulationCraft and HeroRotation, so both SimC APL and addon rotations are 100% synced. Both tools are used to do Rogue theorycrafting.

Special Thanks

  • SimulationCraft for everything the project gives to the whole WoW Community.
  • KutiKuti & Nia for their daily support.
  • Skasch for what we built together and the motivation he gave to me.
  • Mystler & Kojiyama & Fuu for their work on everything related to rogues that frees me a lot of time.

Advanced Users / Developer Notes

If you want to use the addon directly from the GitHub repository, you would have to symlink every folder from this repository (HeroRotation folder and every class module, except for the template) to your WoW Addons folder.
Furthermore, to make it work, you need to add the dependencies, which are HeroLib (includes HeroCache as well) and HeroDBC, following the same process (symlink HeroLib, HeroCache, and HeroDBC from the repositories).
There is a script that does this for you. Open symlink.bat (or symlink.sh) and modify the two vars (WoWRep and GHRep) to match your local setup.
Make sure HeroRotation's directories doesn't already exist as it will not override them.
Finally, launch symlink.bat.

Stay tuned ! Aethys

hero-rotation's People

Contributors

3l00dstrike avatar aethys256 avatar belakjg avatar capull0 avatar chrislopez24 avatar cilraaz avatar cyfirgit avatar evanmichaels avatar fbrusch-ik avatar furizaa avatar ghr74 avatar glynnyx avatar hinalover avatar idubs avatar kutikuti avatar lithium720 avatar lockem90 avatar mrdmnd avatar mwojtkowski avatar mystler avatar nianel avatar nmxsz avatar seny951 avatar skasch avatar smadam813 avatar tae-l avatar talst avatar tombell avatar vincentcassiau avatar yihsiaoliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hero-rotation's Issues

Elemental Shaman Error

Message: Interface\AddOns\AethysRotation_Shaman\Elemental.lua:272: attempt to compare boolean with number
Time: 10/18/17 16:34:15
Count: 1
Stack: Interface\AddOns\AethysRotation_Shaman\Elemental.lua:272: attempt to compare boolean with number
[C]: ?
Interface\AddOns\AethysRotation_Shaman\Elemental.lua:272: in function `?'
Interface\AddOns\AethysRotation\Main.lua:300: in function <Interface\AddOns\AethysRotation\Main.lua:290>

I know it's still a WIP, however I figured this might help push it along a little. Looks like it might run into this same error further down. This just happens to be the Ascendance part, there's the same code for Ice Fury and Lightening Rod.

[UI] Predictive icon for second ability to use.

There's an icon for what to use right now, but it's typically a very short window (1 or 1.5 sec GCD) to see the ability used and the next ability suggested, visually process the icon change, and decide which button to press (and typically AethysRotation would have a very small delay AFTER pressing the button to calculate the ability change as well, shortening that already short window)
Other rotation helpers I've used all have at least 1-step-forward predictive icons to help guide the brain in processing the next ability, and I found it heavily disconcerting not having that aid in AethysRotation as a new user.

OnSpecGearTalentUpdate Handler Hides Character Panel Inappropriately

The event handler for OnSpecGearTalentUpdate / Player Inspector triggers on PLAYER_EQUIPMENT_CHANGED and ZONE_CHANGED_NEW_AREA, which in turn calls Spell:ArtifactScan();

This ends up calling SocketInventoryItem(INVSLOT_MAINHAND) which hides the character panel automatically in the Blizzard UI.

Once these events are registered, the character panel will disappear every time the player swaps gear in the panel, or whenever changing zones.

Enhancement wrong spell ID for 2 set bonus

Currently the config has the following spell ID as the 2 set buff "187878" while the id is "242284". This causes the addon to advise Crash Lightning on cooldown.

I've also removed S.CrashingStorm:IsAvailable() from the fillers since it was telling me to use Crash Lightning on cooldown when using this talent in a single target situation.

[Outlaw] Blunderbuss Icon re-appearing

Blunderbuss Icon was previously removed since it looks exactly like Between the Eyes and serves no purpose (Pistol Shot icon is used for all procs, blunderbuss or not)

It's been randomly re-appearing for me and driving me crazy - and when it does, it appears even for regular pistol shot opportunity procs. I finally managed to replicate this on target dummies, and it seems to involve changing equipment sets. if I change between sets with various combinations of Greenskins / Ravenholdt ring / Mantle (going OOC and then attacking the dummies), it will often cause this error, and the only way to revert to normal Pistol Shot icons is keep changing armor sets and (sometimes) reloadui. super annoying in M+

happens in all versions of addon and with no other addons loaded. Hopefully someone can replicate this.

[Blood] Blood DK issues

Could icons be greyed out icons when out of range rather than no icons at all?

'Mind Freeze' is not showing up when interruptable spell is being cast.

[Rotation] Subtlety: DfA Vanish Conditional Issues

When the APL was updated a few weeks ago, a Vanish condition was added to the Sub DfA conditionals. This causes problems with DfA usage with the cooldown button disabled as Vanish is not used and thus DfA will never be suggested even when appropriate.

The "or not S.Vanish:CooldownUp()" conditional in the DfA line should be altered to consider AR.CDsON()

As an additional note about this conditional in general:

Given the relatively small gain of this Vanish conditional in optimal play (very, very small gain, even at high iterations--need to be at 0.03% error to see a difference within the margin of error,) it may be worth considering removing this Vanish conditional for AER.

Even missing a single Vanish macro GCD can result in DfA being delayed very significantly, which is not a problem sims have (as they flawlessly execute Vanish sequences) but is definitely likely when players are having to react to suggestions quickly. I'm also not sure this is a gain at all without the Shoulders--simming at 54k iterations with my character without shoulders, removing "!talent.dark_shadow.enabled|!cooldown.vanish.up" both profiles are still within the margin of error.

With the T20M DfA profiles, there is still no difference at 0.05% and at 65k iterations actually seemed to show a 2k DPS loss over the altered APL with a DPS error of 410. So I think this conditional in general may need re-evaluation.

Regarding AER specifically: since the Vanish macro only shows up in very specific conditions, it's relatively easy to accidentally skip and then not see DfA suggested for a full cycle--almost certainly a larger DPS loss than not having the conditional, but SimC likely never encounters this condition.

Simming with a special conditional, it appears that even one mistaken Vanish GCD skip is worth about an 8k DPS loss for my character, which seems like really poor risk/reward ratio (considering the conditional has no gain for me anyway!)

AethysRotation

If AethysRotation is enabled, i can't join random bgs. I click the button but nothing happens. I tested it by enabled all other Addons but AethysRotation, so I can say for sure that this Addon has a little bug.

I like this Addon, please fix it :D

-Greets

TimeSinceLastCast

Implement a TimeSinceLastCast for spells
( More important than Prev GCD in order to finish Enh)

Addon frame

Hi there. I love this addon, but the frame is located right in the middle of the screen, and I wasn't able to move it. How could it be done?

Thanks in advance for your time!

QueuedCasts Frames Don't Respect UI Scale

AR.MainIconFrame:InitParts and AR.MainIconFrame:SetupParts use non-modified values of 64px and therefore are always full size regardless of AethysRotationDB.ScaleUI.

[Rotation] Marksmanship: Not working

When I switched from BM to MM, the buttons disappeared and nothing I have tried has brought them back. Screenshots will be attached to show what happens when I unlock. And even though it was unlocked, it is unmovable. It has something to do with my hunter because when I logged into my rogue to check, they were showing as normal.
wowscrnshot_031217_031031
wowscrnshot_031217_031043

[Windwalker] Serenity issue

When talenting into Serenity (level 100), after activating that skill the addon only shows the artifact weapon as rotation even when it is on cooldown.
The addon get stuck with that skill and only changes to Tiger Palm when i have less than 2 combo points. After getting 2 or more combo points it goes back to weapon skill stuck.

Talents im using when it happens:

  • Eye of the tiger
  • Chi Torpedo
  • Ascension
  • Leg Sweep
  • Healing Elixir
  • Hit Combo
  • Serenity

[Error] Beast Mastery

Message: ...erface\AddOns\AethysRotation_Hunter\BeastMastery.lua:198: attempt to compare nil with number
Time: 07/19/17 06:29:12
Count: 151
Stack: ...erface\AddOns\AethysRotation_Hunter\BeastMastery.lua:198: attempt to compare nil with numberInterface\SharedXML\SharedBasicControls.lua:189: in function <Interface\SharedXML\SharedBasicControls.lua:187>
Interface\SharedXML\SharedBasicControls.lua:204: in function <Interface\SharedXML\SharedBasicControls.lua:203>
[C]: ?
...erface\AddOns\AethysRotation_Hunter\BeastMastery.lua:198: in function `?'
Interface\AddOns\AethysRotation\Main.lua:292: in function <Interface\AddOns\AethysRotation\Main.lua:282>

Locals: errorTypeCVar = "scriptErrors"
warnType = false
msg = "...erface\AddOns\AethysRotation_Hunter\BeastMastery.lua:198: attempt to compare nil with number"
messageType = 0
hideErrorFrame = false
IsErrorCVarEnabled = defined @interface\SharedXML\SharedBasicControls.lua:183

[Destruction] LUA Error

Date: 2017-10-28 14:51:50
ID: 1
Error occured in: Global
Count: 1
Message: ...erface\AddOns\AethysRotation_Warlock\Destruction.lua line 332:
attempt to call method 'BuffRemainsP' (a nil value)
Debug:
...erface\AddOns\AethysRotation_Warlock\Destruction.lua:332: ?()
AethysRotation\Main.lua:332:
AethysRotation\Main.lua:322
Locals:
(*temporary) = nil
(*temporary) =

{
LastRemovedFromPlayerTime = 0
LastAppliedOnPlayerTime = 0
SpellType = "Player"
LastHitTime = 0
LastCastTime = 0
LastDisplayTime = 0
SpellID = 235156
}
(*temporary) = "attempt to call method 'BuffRemainsP' (a nil value)"
AC =
{
RegisterForEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:46
MAXIMUM = 40
RegisterForSelfCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:77
Spell =
{
}
PulseInitialized = true
BuildInfo =
{
}
Unit =
{
}
RegisterForCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:62
MythicDungeon = defined @interface\AddOns\AethysCore\Class\Unit\Player\MythicDungeon.lua:49
Item =
{
}
CacheHasBeenReset = false
LiveRealm = defined @interface\AddOns\AethysCore\Core.lua:35
FindMacroKeyBinding = defined @interface\AddOns\AethysCore\Events\KeyBinding.lua:128
ManuallyFilterItemRanges = defined @interface\AddOns\AethysCore\Class\Unit\Range.lua:28
Pulse = defined @interface\AddOns\AethysCore\Main.lua:29
BetaRealm = defined @interface\AddOns\AethysCore\Core.lua:43
GetInstanceDifficulty = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:63
HasTier = defined @interface\AddOns\AethysCore\Class\Unit\Player\Equipment.lua:113
GetInstanceInfo = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:32
Tier20_4Pc = false
Tier19_2Pc = false
RegisterForCombatSuffixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:122
MainFrame = AethysCore_MainFrame {
}
Equipment =
{
}
Tier19_4Pc = false
Tier20_2Pc = false
GetTime = defined @interface\AddOns\AethysCore\Core.lua:48
RecoveryTimer = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:75
OutOfCombatTime = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:90
UnregisterForSelfCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:168
Latency = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:69
LastUnitCycled =
{
}
Utils =
{
}
UnitNotInFrontTime = 0
LastUnitCycledTime = 0
UnitNotInFront =
{
}
CombatEnded = 1
Print = defined @interface\AddOns\AethysCore\Core.lua:57
CombatStarted = 0
TTD =
{
}
Enum =
{
}
BuildVersion = defined @interface\AddOns\AethysCore\Core.lua:31
UnregisterForCombatPrefixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:196
CombatTime = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:85
RegisterForCombatPrefixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:107
GetEquipment = defined @interface\AddOns\AethysCore\Class\Unit\Player\Equipment.lua:24
BMPullTime = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:95
UnregisterForCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:154
UnregisterForEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:137
TTDRefresh = defined @interface\AddOns\AethysCore\Class\Unit\TimeToDie.lua:49
RecoveryOffset = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:80
UnregisterForPetCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:182
RegisterForPetCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:92
SpecID_ClassesSpecs =
{
}
GuardiansTable =
{
}
GetEnemies = defined @interface\AddOns\AethysCore\Misc\Enemies.lua:28
GUI =
{
}
OffsetRemains = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:112
UnregisterForCombatSuffixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:210
Timer =
{
}
PTRRealm = defined @interface\AddOns\AethysCore\Core.lua:39
ImmolationTable =
{
}
GUISettings =
{
}
}
range = 40
Everyone =
{
Targe
AddOns:
Swatter, v7.5.5724 (TasmanianThylacine)
AethysCache, v7.3.0.06
AethysCore, v7.3.0.06
AethysRotation, v7.3.0.07
AethysRotationWarlock, v
ArcHUD3, v4.2.3
Atlas, vv1.43.03
AtlasBattlegrounds, vv1.43.00
AtlasBurningCrusade, vv1.43.00
AtlasCataclysm, vv1.43.00
AtlasClassicWoW, vv1.43.00
AtlasClassOrderHalls, vv1.43.00
AtlasDungeonLocs, vv1.43.00
AtlasLegion, vv1.43.03
AtlasMistsofPandaria, vv1.43.00
AtlasOutdoorRaids, vv1.43.00
AtlasScenarios, vv1.43.00
AtlasTransportation, vv1.43.00
AtlasWarlordsofDraenor, vv1.43.00
AtlasWorldEvents, vv3.23
AtlasWrathoftheLichKing, vv1.43.00
AtlasLoot, vv8.07.01
AtlasLootBurningCrusade, vv8.07.01
AtlasLootCataclysm, vv8.07.01
AtlasLootClassic, vv8.07.01
AtlasLootLegion, vv8.07.01
AtlasLootMistsofPandaria, vv8.07.01
AtlasLootWarlordsofDraenor, vv8.07.01
AtlasLootWrathoftheLichKing, vv8.07.01
AtlasMajorCitiesEnhanced, vv1.15
AucAdvanced, v7.5.5724 (TasmanianThylacine)
AucFilterBasic, v7.5.5724 (TasmanianThylacine)
AucFilterOutlier, v7.5.5724.5459(7.5/embedded)
AucMatchUndercut, v7.5.5724.5585(7.5/embedded)
AucStatHistogram, v7.5.5724 (TasmanianThylacine)
AucStatiLevel, v7.5.5724 (TasmanianThylacine)
AucStatPurchased, v7.5.5724 (TasmanianThylacine)
AucStatSales, v7.5.5724.5598(7.5/embedded)
AucStatSimple, v7.5.5724 (TasmanianThylacine)
AucStatStdDev, v7.5.5724 (TasmanianThylacine)
AucStatWOWEcon, v7.5.5724.5613(7.5/embedded)
AucUtilAHWindowControl, v7.5.5724.5575(7.5/embedded)
AucUtilAppraiser, v7.5.5724.5719(7.5/embedded)
AucUtilAskPrice, v7.5.5724.5599(7.5/embedded)
AucUtilAutoMagic, v7.5.5724.5686(7.5/embedded)
AucUtilCompactUI, v7.5.5724.5715(7.5/embedded)
AucUtilEasyBuyout, v7.5.5724.5576(7.5/embedded)
AucUtilFixAH, v7.5.5724 (TasmanianThylacine)
AucUtilItemSuggest, v7.5.5724.5651(7.5/embedded)
AucUtilPriceLevel, v7.5.5724.5633(7.5/embedded)
AucUtilScanButton, v7.5.5724.5631(7.5/embedded)
AucUtilScanFinish, v7.5.5724.5720(7.5/embedded)
AucUtilScanProgress, v7.5.5724.4979(7.5/embedded)
AucUtilScanStart, v7.5.5724.5347(7.5/embedded)
AucUtilSearchUI, v7.5.5724.5721(7.5/embedded)
AucUtilSimpleAuction, v7.5.5724.5705(7.5/embedded)
AucUtilVendMarkup, v7.5.5724.4828(7.5/embedded)
Babylonian, v5.1.DEV.332(/embedded)
BagBrother, v
Bagnon, v7.3.2
Bartender4, v4.7.10
BeanCounter, v7.5.5724 (TasmanianThylacine)
Castbars, v
Configator, v5.1.DEV.431(/embedded)
DailyGlobalCheck, v
DailyGlobalCheckLegionRareMobs, v
DailyGlobalCheckLegionTreasureChests, v
DailyGlobalCheckLegionWorldQuests, v
DailyGlobalCheckWorldBosses, v
DebugLib, v5.1.DEV.337(/embedded)
Enchantrix, v7.5.5724 (TasmanianThylacine)
EnchantrixBarker, v7.5.5724 (TasmanianThylacine)
GatherMate2, v1.41
Informant, v7.5.5724 (TasmanianThylacine)
LibExtraTip, v5.12.DEV.430(/embedded)
MapCoords, v0.26
MasterPlanA, vA
MikScrollingBattleText, v5.7.147
NomiCakes, v7.3.0.1
NPCScan, v7.3.0.6
OmniCC, v7.3
QuestGuru, v2.4.32
QuestGuruSounds, v2.4.32
SexyMap, vv7.3.0
SlideBar, v7.5.5724 (TasmanianThylacine)
SpellFlashCore, v2.1.5
Stubby, v7.5.5724 (TasmanianThylacine)
TellMeWhen, v8.4.2
TipHelper, v5.12.DEV.405(/embedded)
WeakAuras, v2.4.24
BlizRuntimeLib_enUS v7.3.2.70300
(ck=cd3)

Error when logging in

I am getting this error when logging in:

Date: 2017-08-25 19:22:05
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\AethysRotation\Main.lua line 240:
   Usage: GetSpecializationInfo(specIndex[, isInspect[, isPet[, inspectTarget[, sex]]]])
Debug:
   [C]: GetSpecializationInfo()
   AethysRotation\Main.lua:240: PulseInit()
   AethysRotation\Main.lua:174:
      AethysRotation\Main.lua:171
Locals:
(*temporary) = nil

AddOns:
  Swatter, v7.2.5688 (TasmanianThylacine)
  AethysCache, v7.2.5.01
  AethysCore, v7.2.5.04
  AethysRotation, v7.2.5.10b
  Simulationcraft, v1.7.5
  BlizRuntimeLib_enUS v7.2.5.70200 <none>
  (ck=bc)

LUA Error After completing a quest

x [ADDON_ACTION_BLOCKED] AddOn 'AethysRotation_Rogue' tried to call the protected function ':Hide()'.
!BugGrabber\BugGrabber.lua:573: in function <!BugGrabber\BugGrabber.lua:573>
[C]: in function Hide' FrameXML\WorldMapActionButton.lua:58: in function Clear'
FrameXML\WorldMapActionButton.lua:67: in function Refresh' FrameXML\WorldMapActionButton.lua:19: in function SetMapAreaID'
FrameXML\WorldMapFrame.lua:1341: in function WorldMapFrame_Update' FrameXML\WorldMapFrame.lua:2873: in function WorldMapFrame_UpdateMap'
FrameXML\WorldMapFrame.lua:451: in function <FrameXML\WorldMapFrame.lua:435>
[C]: ?
[C]: in function SetMapToCurrentZone' FrameXML\WorldMapFrame.lua:381: in function <FrameXML\WorldMapFrame.lua:360> [C]: in function Show'
FrameXML\UIParent.lua:2421: in function SetUIPanel' FrameXML\UIParent.lua:2223: in function ShowUIPanel'
FrameXML\UIParent.lua:2133: in function <FrameXML\UIParent.lua:2129>
[C]: in function SetAttribute' FrameXML\UIParent.lua:2915: in function ShowUIPanel'
FrameXML\UIParent.lua:2899: in function ToggleFrame' FrameXML\WorldMapFrame.lua:263: in function <FrameXML\WorldMapFrame.lua:235> [C]: in function ToggleWorldMap'
[string "TOGGLEWORLDMAP"]:1: in function <[string "TOGGLEWORLDMAP"]:1>

Locals:

General issue

Date: 2017-10-19 15:35:46
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\AethysRotation\Main.lua line 145:
Usage: AethysRotation_MainFrame:SetPoint("point" [, region or nil] [, "relativePoint"] [, offsetX, offsetY])
Debug:
[C]: SetPoint()
AethysRotation\Main.lua:145:
AethysRotation\Main.lua:131
Locals:
(*temporary) = AethysRotation_MainFrame {
0 =
Lock = defined @interface\AddOns\AethysRotation\Main.lua:95
ResizeButtons = defined @interface\AddOns\AethysRotation\Main.lua:60
Unlock = defined @interface\AddOns\AethysRotation\Main.lua:79
ResizeUI = defined @interface\AddOns\AethysRotation\Main.lua:38
}
(*temporary) = nil
(*temporary) = UIParent {
0 =
firstTimeLoaded = 1
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil

AddOns:
Swatter, v7.5.5724 (TasmanianThylacine)
AethysCache, v7.3.0.04
AethysCore, v7.3.0.05
AethysRotation, v7.3.0.06b
BlizRuntimeLib_enUS v7.3.0.70300
(ck=a2)

I've been having this pop on all my characters

Frost DK Errors 7.3

Frost DK - 3/2/1/3/2/3/1

Errors below

AethysRotation_DeathKnight\Frost.lua:480: attempt to index field 'S' (a nil value) AethysRotation_DeathKnight\Frost.lua:339: attempt to index field 'FreezingFog' (a nil value)
AethysRotation_DeathKnight\Frost.lua:339: in function <AethysRotation_DeathKnight\Frost.lua:329>
AethysRotation_DeathKnight\Frost.lua:487: in function `?'
AethysRotation\Main.lua:296: in function <AethysRotation\Main.lua:286>

Lua erro when ticking black border icon in GUI

3577x AethysRotation\UI.lua:109: attempt to index field 'Backdrop' (a nil value)
AethysRotation\UI.lua:109: in function `ChangeIcon'
AethysRotation\UI.lua:38: in function `ResetIcons'
AethysRotation\Main.lua:283: in function <AethysRotation\Main.lua:279>

Locals:
self = AethysRotation_MainIconFrame {
 ChangeIcon = <function> defined @AethysRotation\UI.lua:105
 Init = <function> defined @AethysRotation\UI.lua:89
 Part = <table> {
 }
 CooldownFrame = AethysRotation_MainIconCooldownFrame {
 }
 SetCooldown = <function> defined @AethysRotation\UI.lua:112
 SetupParts = <function> defined @AethysRotation\UI.lua:133
 InitParts = <function> defined @AethysRotation\UI.lua:115
 TempTexture = <unnamed> {
 }
 HideParts = <function> defined @AethysRotation\UI.lua:150
 0 = <userdata>
 texture = <unnamed> {
 }
}
Texture = "Addons\AethysRotation\Textures\9999000000"
(*temporary) = nil
(*temporary) = nil
(*temporary) = AethysRotation_MainIconFrame {
 ChangeIcon = <function> defined @AethysRotation\UI.lua:105
 Init = <function> defined @AethysRotation\UI.lua:89
 Part = <table> {
 }
 CooldownFrame = AethysRotation_MainIconCooldownFrame {
 }
 SetCooldown = <function> defined @AethysRotation\UI.lua:112
 SetupParts = <function> defined @AethysRotation\UI.lua:133
 InitParts = <function> defined @AethysRotation\UI.lua:115
 TempTexture = <unnamed> {
 }
 HideParts = <function> defined @AethysRotation\UI.lua:150
 0 = <userdata>
 texture = <unnamed> {
 }
}
(*temporary) = "attempt to index field 'Backdrop' (a nil value)"
AR = <table> {
 MaxQueuedCasts = 3
 CreateBackdrop = <function> defined @AethysRotation\UI.lua:57
 PulseInit = <function> defined @AethysRotation\Main.lua:234
 GetTexture = <function> defined @AethysRotation\Core.lua:42
 CastSuggested = <function> defined @AethysRotation\Core.lua:126
 PulsePreInit = <function> defined @AethysRotation\Main.lua:180
 LeftIconFrame = AethysRotation_LeftIconFrame {
 }
 MainFrame = AethysRotation_MainFrame {
 }
 GUISettings = <table> {
 }
 SuggestedIconFrame = AethysRotation_SuggestedIconFrame {
 }
 NameplateIconFrame = AethysRotation_NameplateIconFrame {
 }
 ToggleIconFrame = AethysRotation_ToggleIconFrame {
 }
 ChangePulseTimer = <function> defined @AethysRotation\Main.lua:300
 Commons = <table> {
 }
 Print = <function> defined @AethysRotation\Core.lua:31
 ResetIcons = <function> defined @AethysRotation\UI.lua:36
 Cast = <function> defined @AethysRotation\Core.lua:72
 Timer = <table> {
 }
 Locked = <function> defined @AethysRotation\Core.lua:224
 Pulse = <function> defined @AethysRotation\Main.lua:279
 CastLeftCommon = <function> defined @AethysRotation\Core.lua:106
 Ready = <function> defined @AethysRotation\Main.lua:295
 APLs = <table> {
 }
 CastLeftOffset = 1
 AoEON = <function> defined @AethysRotation\Core.lua:214
 CmdHandler = <function> defined @AethysRotation\Core.lua:138
 SetAPL = <function> defined @AethysRotation\Core.lua:37
 CastQueue = <function> defined @AethysRotation\Core.lua:91
 Nameplate = <table> {
 }
 CastLeftNameplate = <function> defined @AethysRotation\Core.lua:117
 MainIconFrame = AethysRotation_MainIconFrame {
 }
 CastSuggestedOffset = 2
 CastLeft = <function> defined @AethysRotation\Core.lua:111
 SmallIconFrame = AethysRotation_SmallIconFrame {
 }
 CastOffGCDOffset = 2
 GUI = <table> {
 }
 ON = <function> defined @AethysRotation\Core.lua:219
 CDsON = <function> defined @AethysRotation\Core.lua:209
}

no error after a reload an borders are set correctly

cd/aoe/on/off toggle buttons disappearing

The cd/aoe/on/off toggle buttons seem to disappear permanently if I log into a class that is unsupported (Frost dk), and log into a class that is (Sub Rogue).

Reloading, turning it off and on, unlock/lock, nothing seems to bring it back.

Requires complete removal + reinstallation of the addon.

Ghostly Strike *Outlaw*

Hello
For some reason outlaw ghostly strike refreshes too early at around 10-13 seconds. Is this normal?
I thought the pandemic was around 4-5 seconds..

[UI] Key Bindings

would it be possible to get and display the ability keybinding similar to how ovale can? i understand it could prob only be done with Action Bars that use the blizzard keybinds (IE Default/Elv and prob a few others i dont know). would be tremendously helpfull on alts that people havent quiet remembered whats keybinded where.

[Error] Lua Error on Arena enter

1x EasyRaid\Core.lua:1780: GetSpellInfo(): Invalid spell slot
[C]: in function `GetSpellInfo'
EasyRaid\Core.lua:1780: in function `BookScan'
EasyRaid\Events.lua:223: in function `Handler'
EasyRaid\Events.lua:129: in function <EasyRaid\Events.lua:127>

Locals:
(*temporary) = 65
(*temporary) = "spell"

Dk Frost KM proc

Hi !
It's not an issue, but in frost, some KM proc is used on Obliterate instead of Frostscythe (if you've got the talent).

And if you've got the talent Frostscythe, you must use KM proc on it even on single target.

I hope I was clear enough, if not, feel free to ask me.

P.S : Sorry for my bad english :)

Move the frame/buttons?

I can't actually figure how to move the frame. It's attached to background if it matters, any help would be much appreciated.

Cheers!

[Rotation] Subtlety: Pooling

Would be useful to know what you will be using after pooling, for example Vanish+SS, or Shadow Dance+SS, etc.

Druid Feral

Hi, i see you addon is not supported Druid Feral rotation now, but you can activate him rotation in testing mode ? :)

Ty for working this beautiful addons your job is awesome!

Warlock green fire icon bug

If i got the green fire activated as destro warlock, the "Auto/Green" Spell Icons setting doesn't actually work for me. The first spell i cast (Immolate) will be green, but then it starts switching to orange spells.

Destruction Warlock Errors

Date: 2017-10-29 11:09:07
ID: 1
Error occured in: Global
Count: 1
Message: ...erface\AddOns\AethysRotation_Warlock\Destruction.lua line 332:
attempt to call method 'BuffRemainsP' (a nil value)
Debug:
...erface\AddOns\AethysRotation_Warlock\Destruction.lua:332: ?()
AethysRotation\Main.lua:332:
AethysRotation\Main.lua:322
Locals:
(*temporary) = nil
(*temporary) =

{
LastRemovedFromPlayerTime = 0
LastAppliedOnPlayerTime = 0
SpellType = "Player"
LastHitTime = 0
LastCastTime = 0
LastDisplayTime = 0
SpellID = 235156
}
(*temporary) = "attempt to call method 'BuffRemainsP' (a nil value)"
AC =
{
RegisterForEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:46
MAXIMUM = 40
RegisterForSelfCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:77
Spell =
{
}
PulseInitialized = true
BuildInfo =
{
}
Unit =
{
}
RegisterForCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:62
MythicDungeon = defined @interface\AddOns\AethysCore\Class\Unit\Player\MythicDungeon.lua:49
Item =
{
}
CacheHasBeenReset = false
LiveRealm = defined @interface\AddOns\AethysCore\Core.lua:35
FindMacroKeyBinding = defined @interface\AddOns\AethysCore\Events\KeyBinding.lua:128
ManuallyFilterItemRanges = defined @interface\AddOns\AethysCore\Class\Unit\Range.lua:28
Pulse = defined @interface\AddOns\AethysCore\Main.lua:29
BetaRealm = defined @interface\AddOns\AethysCore\Core.lua:43
GetInstanceDifficulty = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:63
HasTier = defined @interface\AddOns\AethysCore\Class\Unit\Player\Equipment.lua:113
GetInstanceInfo = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:32
Tier20_4Pc = false
Tier19_2Pc = false
RegisterForCombatSuffixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:122
MainFrame = AethysCore_MainFrame {
}
Equipment =
{
}
Tier19_4Pc = false
Tier20_2Pc = false
GetTime = defined @interface\AddOns\AethysCore\Core.lua:48
RecoveryTimer = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:75
OutOfCombatTime = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:90
UnregisterForSelfCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:168
Latency = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:69
LastUnitCycled =
{
}
Utils =
{
}
UnitNotInFrontTime = 0
LastUnitCycledTime = 0
UnitNotInFront =
{
}
CombatEnded = 1
Print = defined @interface\AddOns\AethysCore\Core.lua:57
CombatStarted = 0
TTD =
{
}
Enum =
{
}
BuildVersion = defined @interface\AddOns\AethysCore\Core.lua:31
UnregisterForCombatPrefixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:196
CombatTime = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:85
RegisterForCombatPrefixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:107
GetEquipment = defined @interface\AddOns\AethysCore\Class\Unit\Player\Equipment.lua:24
BMPullTime = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:95
UnregisterForCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:154
UnregisterForEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:137
TTDRefresh = defined @interface\AddOns\AethysCore\Class\Unit\TimeToDie.lua:49
RecoveryOffset = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:80
UnregisterForPetCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:182
RegisterForPetCombatEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:92
SpecID_ClassesSpecs =
{
}
GuardiansTable =
{
}
GetEnemies = defined @interface\AddOns\AethysCore\Misc\Enemies.lua:28
GUI =
{
}
OffsetRemains = defined @interface\AddOns\AethysCore\Misc\ToSort.lua:112
UnregisterForCombatSuffixEvent = defined @interface\AddOns\AethysCore\Events\Main.lua:210
Timer =
{
}
PTRRealm = defined @interface\AddOns\AethysCore\Core.lua:39
ImmolationTable =
{
}
GUISettings =
{
}
}
range = 40
Everyone =
{
Targe
AddOns:
Swatter, v7.3.1 (<%codename%>)
Ace3, v
AethysCache, v7.3.0.06
AethysCore, v7.3.0.06
AethysRotation, v7.3.0.07
AethysRotationWarlock, v
Bartender4, v4.7.10
DBMCore, v7.3.6
DBMDefaultSkin, v
DBMStatusBarTimers, v
DebugLib, v5.1.DEV.337(/embedded)
Details, v
DetailsDmgRank, v
DetailsDpsTuning, v
DetailsEncounterDetails, v
DetailsRaidCheck, v
GearHelper, v1.6.6.2
HandyNotes, vv1.4.15
HandyNotesArgus, v0.20.0
HandyNotesBrokenShore, vv1.21
HandyNotesDraenorTreasures, v1.20a
HandyNotesHigherDimensionalLearning, v1
HandyNotesHigherLearning, v7.1.0.0
HandyNotesKosumoth, v1
HandyNotesLegionRaresTreasures, v1.01b
HandyNotesLegionTreasures, v1
HandyNotesSuramarLocations, v0.0.1
HandyNotesSuramarShalAranTelemancy, vv1.15
HandyNotesSuramarTelemancy, v1
HandyNotesTreasureHunter, v1
LibAuctionScan10, vv1.0.14
MasterPlanA, vA
OneBag3, vr188
OneCore, vr103
Pawn, v2.2.15
ServerHop, v7.3.0.1
SpartanUI, v4.4.0
SpartanUIArtwork, v3.3.0
SpartanUIPartyFrames, v3.3.0
SpartanUIPlayerFrames, v3.3.0
SpartanUIRaidFrames, v3.3.0
SpartanUIStyleFel, v1.0.0
SpartanUIStyleMinimal, v3.3.0
SpartanUIStyleTransparent, v3.3.0
Stubby, v7.5.5724 (TasmanianThylacine)
TomTom, vv70200-1.0.0
WIM, v3.7.14
BlizRuntimeLib_enUS v7.3.2.70300
(ck=523)

Fix the dropdown Taint

LUA error with the dropdown in the settings. Previously discussed on Discord.

AN example of errors :
2x [ADDON_ACTION_BLOCKED] AddOn 'AethysRotation_Rogue' tried to call the protected function 'CompactPartyFrame:unusedFunc()'.
!BugGrabber\BugGrabber.lua:573: in function <!BugGrabber\BugGrabber.lua:573>
[C]: in function unusedFunc' ...actRaidFrames\Blizzard_CompactRaidFrameContainer.lua:160: in function CompactRaidFrameContainer_LayoutFrames'
...actRaidFrames\Blizzard_CompactRaidFrameContainer.lua:130: in function CompactRaidFrameContainer_TryUpdate' ...actRaidFrames\Blizzard_CompactRaidFrameContainer.lua:57: in function CompactRaidFrameContainer_OnEvent'
[string ":OnEvent"]:1: in function <[string ":OnEvent"]:1>

Locals:
InCombatSkipped

Krich on discord :
I talked with one guy at wowui channel on irc
And seems like every addon that adds a dropdown menu on the esc-interface panel taints the ui If you access the settings in combat
I tested with Hekili and voila, error message
And it always taints compactraidframe
Yeah, some guy confirmed it to me
Apparently , frames can't be created or destroyed in the secure enviroment while in combat, so once you try to create the actual drop down, it taints, then any call made after that taints as well
because a dropdown works by creating a new frame when the drop down shows, it can't do that in combat without tainting
Solutions... Create our own lib, or using WoWAce library which cares about those stuff
Well we only need to create a lib and use functions from
EasyMenu.lua, UIDropDownMenu.lua and UIDropDownMenuTemplates.xml
Frames , tables and variables
And renamed everything
There was a guy who Apparently works for blizzard and linked me this
http://www.wowinterface.com/downloads/info22630-NoTaintUIDropDownMenu.html

Frost Mage Changes

There are a few changes that need to be made to Frost Mage's rotation.

  1. Ice Barrier. Should be up whenever possible.
  2. Frost Nova. Instant cast and will triple damage from Ice Lance.
  3. Spellsteal. If the target has a buff that can be stolen, steal it.
  4. Invisibility/Ice Block. Good defensive spells. Not sure if they can be added, but they should be used before taking fatal damage.
  5. Conjure Refreshment. I doubt this can be added, but if you don't have any Conjured Mana Buns, this should be cast to save time when you need them.
  6. Blink/Shimmer. Can be used in combination with Frost Nova. If your target is within Frost Nova range, Nova then Blink/Shimmer out of damage rank.

Receiving multiple errors with 7/6 release

Edit: I see you've addressed this on the addon page.

(Apologies if this is more info than needed, but I wasn't sure if I should submit all of them or just one)

1

1x AethysRotation\Panels.lua:8: attempt to index field 'GUI' (a nil value)
AethysRotation\Panels.lua:8: in main chunk

Locals:
addonName = "AethysRotation"
AR = <table> {
}
AC = <table> {
 RegisterForEvent = <function> defined @AethysCore\Events\Main.lua:46
 MAXIMUM = 40
 RegisterForSelfCombatEvent = <function> defined @AethysCore\Events\Main.lua:77
 BuildInfo = <table> {
 }
 Unit = <table> {
 }
 MythicDungeon = <function> defined @AethysCore\Class\Player.lua:1084
 Item = <table> {
 }
 LiveRealm = <function> defined @AethysCore\Core.lua:32
 GetTime = <function> defined @AethysCore\Core.lua:45
 BetaRealm = <function> defined @AethysCore\Core.lua:40
 Spell = <table> {
 }
 HasTier = <function> defined @AethysCore\Class\Player.lua:1036
 GetInstanceInfo = <function> defined @AethysCore\Misc\ToSort.lua:31
 RegisterForCombatSuffixEvent = <function> defined @AethysCore\Events\Main.lua:122
 MainFrame = AethysCore_MainFrame {
 }
 Equipment = <table> {
 }
 RecoveryTimer = <function> defined @AethysCore\Misc\ToSort.lua:74
 Enum = <table> {
 }
 CompareThis = <function> defined @AethysCore\Core.lua:74
 Latency = <function> defined @AethysCore\Misc\ToSort.lua:68
 LastUnitCycled = <table> {
 }
 Pulse = <function> defined @AethysCore\Main.lua:29
 UnitNotInFrontTime = 0
 OutOfCombatTime = <function> defined @AethysCore\Misc\ToSort.lua:89
 LastUnitCycledTime = 0
 Class = <function> defined @AethysCore\Class\Main.lua:19
 Print = <function> defined @AethysCore\Core.lua:54
 UnitNotInFront = <table> {
 }
 TTD = <table> {
 }
 CombatEnded = 1
 CombatStarted = 0
 GetInstanceDifficulty = <function> defined @AethysCore\Misc\ToSort.lua:62
 CombatTime = <function> defined @AethysCore\Misc\ToSort.lua:84
 UnregisterForCombatPrefixEvent = <function> defined @AethysCore\Events\Main.lua:196
 GetEquipment = <function> defined @AethysCore\Class\Player.lua:962
 BMPullTime = <function> defined @AethysCore\Misc\ToSort.lua:94
 UnregisterForCombatEvent = <function> defined @AethysCore\Events\Main.lua:154
 UnregisterForSelfCombatEvent = <function> defined @AethysCore\Events\Main.lua:168
 TTDRefresh = <function> defined @AethysCore\Class\Unit.lua:840
 RecoveryOffset = <function> defined @AethysCore\Misc\ToSort.lua:79
 UnregisterForPetCombatEvent = <function> defined @AethysCore\Events\Main.lua:182
 UnregisterForEvent = <function> defined @AethysCore\Events\Main.lua:137
 SpecID_ClassesSpecs = <table> {
 }
 RegisterForCombatPrefixEvent = <function> defined @AethysCore\Events\Main.lua:107
 RegisterForPetCombatEvent = <function> defined @AethysCore\Events\Main.lua:92
 RegisterForCombatEvent = <function> defined @AethysCore\Events\Main.lua:62
 GetEnemies = <function> defined @AethysCore\Misc\Enemies.lua:23
 UnregisterForCombatSuffixEvent = <function> defined @AethysCore\Events\Main.lua:210
 Timer = <table> {
 }
 MergeTable = <function> defined @AethysCore\Core.lua:59
 PTRRealm = <function> defined @AethysCore\Core.lua:36
 GUISettings = <table> {
 }
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index field 'GUI' (a nil value)"

2

1x AethysRotation\Settings-Settings.lua:9: attempt to index local 'GUI' (a nil value)
AethysRotation\Settings-Settings.lua:9: in main chunk

Locals:
addonName = "AethysRotation"
AR = <table> {
}
AC = <table> {
 RegisterForEvent = <function> defined @AethysCore\Events\Main.lua:46
 MAXIMUM = 40
 RegisterForSelfCombatEvent = <function> defined @AethysCore\Events\Main.lua:77
 BuildInfo = <table> {
 }
 Unit = <table> {
 }
 MythicDungeon = <function> defined @AethysCore\Class\Player.lua:1084
 Item = <table> {
 }
 LiveRealm = <function> defined @AethysCore\Core.lua:32
 GetTime = <function> defined @AethysCore\Core.lua:45
 BetaRealm = <function> defined @AethysCore\Core.lua:40
 Spell = <table> {
 }
 HasTier = <function> defined @AethysCore\Class\Player.lua:1036
 GetInstanceInfo = <function> defined @AethysCore\Misc\ToSort.lua:31
 RegisterForCombatSuffixEvent = <function> defined @AethysCore\Events\Main.lua:122
 MainFrame = AethysCore_MainFrame {
 }
 Equipment = <table> {
 }
 RecoveryTimer = <function> defined @AethysCore\Misc\ToSort.lua:74
 Enum = <table> {
 }
 CompareThis = <function> defined @AethysCore\Core.lua:74
 Latency = <function> defined @AethysCore\Misc\ToSort.lua:68
 LastUnitCycled = <table> {
 }
 Pulse = <function> defined @AethysCore\Main.lua:29
 UnitNotInFrontTime = 0
 OutOfCombatTime = <function> defined @AethysCore\Misc\ToSort.lua:89
 LastUnitCycledTime = 0
 Class = <function> defined @AethysCore\Class\Main.lua:19
 Print = <function> defined @AethysCore\Core.lua:54
 UnitNotInFront = <table> {
 }
 TTD = <table> {
 }
 CombatEnded = 1
 CombatStarted = 0
 GetInstanceDifficulty = <function> defined @AethysCore\Misc\ToSort.lua:62
 CombatTime = <function> defined @AethysCore\Misc\ToSort.lua:84
 UnregisterForCombatPrefixEvent = <function> defined @AethysCore\Events\Main.lua:196
 GetEquipment = <function> defined @AethysCore\Class\Player.lua:962
 BMPullTime = <function> defined @AethysCore\Misc\ToSort.lua:94
 UnregisterForCombatEvent = <function> defined @AethysCore\Events\Main.lua:154
 UnregisterForSelfCombatEvent = <function> defined @AethysCore\Events\Main.lua:168
 TTDRefresh = <function> defined @AethysCore\Class\Unit.lua:840
 RecoveryOffset = <function> defined @AethysCore\Misc\ToSort.lua:79
 UnregisterForPetCombatEvent = <function> defined @AethysCore\Events\Main.lua:182
 UnregisterForEvent = <function> defined @AethysCore\Events\Main.lua:137
 SpecID_ClassesSpecs = <table> {
 }
 RegisterForCombatPrefixEvent = <function> defined @AethysCore\Events\Main.lua:107
 RegisterForPetCombatEvent = <function> defined @AethysCore\Events\Main.lua:92
 RegisterForCombatEvent = <function> defined @AethysCore\Events\Main.lua:62
 GetEnemies = <function> defined @AethysCore\Misc\Enemies.lua:23
 UnregisterForCombatSuffixEvent = <function> defined @AethysCore\Events\Main.lua:210
 Timer = <table> {
 }
 MergeTable = <function> defined @AethysCore\Core.lua:59
 PTRRealm = <function> defined @AethysCore\Core.lua:36
 GUISettings = <table> {
 }
}
GUI = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index local 'GUI' (a nil value)"

3

1x AethysRotation\Commons.lua:18: attempt to index field 'GUISettings' (a nil value)
AethysRotation\Commons.lua:18: in main chunk

Locals:
addonName = "AethysRotation"
AR = <table> {
 CastLeftOffset = 1
 MaxQueuedCasts = 3
 CmdHandler = <function> defined @AethysRotation\Core.lua:138
 Print = <function> defined @AethysRotation\Core.lua:31
 CastQueue = <function> defined @AethysRotation\Core.lua:91
 Cast = <function> defined @AethysRotation\Core.lua:72
 Locked = <function> defined @AethysRotation\Core.lua:224
 CastLeftCommon = <function> defined @AethysRotation\Core.lua:106
 CastSuggested = <function> defined @AethysRotation\Core.lua:126
 APLs = <table> {
 }
 SetAPL = <function> defined @AethysRotation\Core.lua:37
 Commons = <table> {
 }
 CastLeftNameplate = <function> defined @AethysRotation\Core.lua:117
 CastSuggestedOffset = 1
 CastLeft = <function> defined @AethysRotation\Core.lua:111
 AoEON = <function> defined @AethysRotation\Core.lua:214
 CastOffGCDOffset = 1
 CDsON = <function> defined @AethysRotation\Core.lua:209
 ON = <function> defined @AethysRotation\Core.lua:219
 GetTexture = <function> defined @AethysRotation\Core.lua:42
}
AC = <table> {
 RegisterForEvent = <function> defined @AethysCore\Events\Main.lua:46
 MAXIMUM = 40
 RegisterForSelfCombatEvent = <function> defined @AethysCore\Events\Main.lua:77
 BuildInfo = <table> {
 }
 Unit = <table> {
 }
 MythicDungeon = <function> defined @AethysCore\Class\Player.lua:1084
 Item = <table> {
 }
 LiveRealm = <function> defined @AethysCore\Core.lua:32
 GetTime = <function> defined @AethysCore\Core.lua:45
 BetaRealm = <function> defined @AethysCore\Core.lua:40
 Spell = <table> {
 }
 HasTier = <function> defined @AethysCore\Class\Player.lua:1036
 GetInstanceInfo = <function> defined @AethysCore\Misc\ToSort.lua:31
 RegisterForCombatSuffixEvent = <function> defined @AethysCore\Events\Main.lua:122
 MainFrame = AethysCore_MainFrame {
 }
 Equipment = <table> {
 }
 RecoveryTimer = <function> defined @AethysCore\Misc\ToSort.lua:74
 Enum = <table> {
 }
 CompareThis = <function> defined @AethysCore\Core.lua:74
 Latency = <function> defined @AethysCore\Misc\ToSort.lua:68
 LastUnitCycled = <table> {
 }
 Pulse = <function> defined @AethysCore\Main.lua:29
 UnitNotInFrontTime = 0
 OutOfCombatTime = <function> defined @AethysCore\Misc\ToSort.lua:89
 LastUnitCycledTime = 0
 Class = <function> defined @AethysCore\Class\Main.lua:19
 Print = <function> defined @AethysCore\Core.lua:54
 UnitNotInFront = <table> {
 }
 TTD = <table> {
 }
 CombatEnded = 1
 CombatStarted = 0
 GetInstanceDifficulty = <function> defined @AethysCore\Misc\ToSort.lua:62
 CombatTime = <function> defined @AethysCore\Misc\ToSort.lua:84
 UnregisterForCombatPrefixEvent = <function> defined @AethysCore\Events\Main.lua:196
 GetEquipment = <function> defined @AethysCore\Class\Player.lua:962
 BMPullTime = <function> defined @AethysCore\Misc\ToSort.lua:94
 UnregisterForCombatEvent = <function> defined @AethysCore\Events\Main.lua:154
 UnregisterForSelfCombatEvent = <function> defined @AethysCore\Events\Main.lua:168
 TTDRefresh = <function> defined @AethysCore\Class\Unit.lua:840
 RecoveryOffset = <function> defined @AethysCore\Misc\ToSort.lua:79
 UnregisterForPetCombatEvent = <function> defined @AethysCore\Events\Main.lua:182
 UnregisterForEvent = <function> defined @AethysCore\Events\Main.lua:137
 SpecID_ClassesSpecs = <table> {
 }
 RegisterForCombatPrefixEvent = <function> defined @AethysCore\Events\Main.lua:107
 RegisterForPetCombatEvent = <function> defined @Int

4

1x AethysRotation\Main.lua:31: attempt to index field 'GUISettings' (a nil value)
AethysRotation\Main.lua:31: in main chunk

Locals:
addonName = "AethysRotation"
AR = <table> {
 CastLeftOffset = 1
 NameplateIconFrame = AethysRotation_NameplateIconFrame {
 }
 ToggleIconFrame = AethysRotation_ToggleIconFrame {
 }
 MaxQueuedCasts = 3
 CmdHandler = <function> defined @AethysRotation\Core.lua:138
 Print = <function> defined @AethysRotation\Core.lua:31
 CastQueue = <function> defined @AethysRotation\Core.lua:91
 Cast = <function> defined @AethysRotation\Core.lua:72
 Commons = <table> {
 }
 Nameplate = <table> {
 }
 Locked = <function> defined @AethysRotation\Core.lua:224
 CreateBackdrop = <function> defined @AethysRotation\UI.lua:57
 CastLeftCommon = <function> defined @AethysRotation\Core.lua:106
 CastSuggested = <function> defined @AethysRotation\Core.lua:126
 APLs = <table> {
 }
 ResetIcons = <function> defined @AethysRotation\UI.lua:36
 SuggestedIconFrame = AethysRotation_SuggestedIconFrame {
 }
 CastLeftNameplate = <function> defined @AethysRotation\Core.lua:117
 SetAPL = <function> defined @AethysRotation\Core.lua:37
 SmallIconFrame = AethysRotation_SmallIconFrame {
 }
 LeftIconFrame = AethysRotation_LeftIconFrame {
 }
 MainFrame = AethysRotation_MainFrame {
 }
 MainIconFrame = AethysRotation_MainIconFrame {
 }
 CastSuggestedOffset = 1
 CastLeft = <function> defined @AethysRotation\Core.lua:111
 AoEON = <function> defined @AethysRotation\Core.lua:214
 CastOffGCDOffset = 1
 CDsON = <function> defined @AethysRotation\Core.lua:209
 ON = <function> defined @AethysRotation\Core.lua:219
 GetTexture = <function> defined @AethysRotation\Core.lua:42
}
AC = <table> {
 RegisterForEvent = <function> defined @AethysCore\Events\Main.lua:46
 MAXIMUM = 40
 RegisterForSelfCombatEvent = <function> defined @AethysCore\Events\Main.lua:77
 BuildInfo = <table> {
 }
 Unit = <table> {
 }
 MythicDungeon = <function> defined @AethysCore\Class\Player.lua:1084
 Item = <table> {
 }
 LiveRealm = <function> defined @AethysCore\Core.lua:32
 GetTime = <function> defined @AethysCore\Core.lua:45
 BetaRealm = <function> defined @AethysCore\Core.lua:40
 Spell = <table> {
 }
 HasTier = <function> defined @AethysCore\Class\Player.lua:1036
 GetInstanceInfo = <function> defined @AethysCore\Misc\ToSort.lua:31
 RegisterForCombatSuffixEvent = <function> defined @AethysCore\Events\Main.lua:122
 MainFrame = AethysCore_MainFrame {
 }
 Equipment = <table> {
 }
 RecoveryTimer = <function> defined @AethysCore\Misc\ToSort.lua:74
 Enum = <table> {
 }
 CompareThis = <function> defined @AethysCore\Core.lua:74
 Latency = <function> defined @AethysCore\Misc\ToSort.lua:68
 LastUnitCycled = <table> {
 }
 Pulse = <function> defined @AethysCore\Main.lua:29
 UnitNotInFrontTime = 0
 OutOfCombatTime = <function> defined @AethysCore\Misc\ToSort.lua:89
 LastUnitCycledTime = 0
 Class = <function> defined @AethysCore\Class\Main.lua:19
 Print = <function> defined @AethysCore\Core.lua:54
 UnitNotInFront = <table> {
 }
 TTD = <table> {
 }
 CombatEnded = 1
 CombatStarted = 0
 GetInstanceDifficulty = <function> defined @AethysCore\Misc\ToSort.lua:62
 CombatTime = <function> defined @AethysCore\Misc\ToSort.lua:84
 UnregisterForCombatPrefixEvent = <function> defined @AethysCore\Events\Main.lua:196
 GetEquipment = <function> defined @AethysCore\Class\Player.lua:962
 BMPullTime = <function> defined @AethysCore\Misc\ToSort.lua:94
 UnregisterForCombatEvent = <function> defined @AethysCore\Events\Main.lua:154
 UnregisterForSelfCombatEvent = <function> defined @AethysCore\Events

[Balance] Issue to predict NewMoon

The artifact spell of balance is New Moon which cycle between NewMoon > HalfMoon > FullMoon > NewMoon >...
When you cast one you pass to the next one.
and the spell has 3 charges, but that's 3 considered different spells (202767, 202768, 202771), and everything charges/coodown/... is stored in New moon.
So, to determine the next spell to cast, I have a temp var that's called nextMoon where i store the next spell based on what i'm currently casting.
See here
AethysRotation - WoW Addon - Attempt to provide the useful and precise informations to execute the best possible DPS rotation in every situation.

The problem is :
When the player is casting Full Moon, the next spell is New Moon, so in nextMoon I have new moon.
BUT
newMoon is the ability tha you have in the codex and it switches it's icon by itself between the spells.
So, when I am casting fullMoon, nextmoon becomes newmoon
BUT
NewMoon still has the icon of FullMoon.

What i want is to tell the player taht when he is casting full moon, his next moon will be new moon but I can't do that...
I tried finding other spells with the same icon as new moon but that doesn't work
Everything works well for the rest because i can force cast HalfMoon and Fullmoon because that's different spells that stays with their icons

Frame Strata Disregards SavedVariables Setting

I'm using Aethys over top of a set of WeakAuras. On default settings, the icon is under the set of WAs. If I go into settings and move the Aethys icon to "HIGH" strata, then reload, it remains below the set of WAs. I have confirmed that the SavedVariables then shows AethysRotationDB.GUISettings.General.MainFrameStrata is set to "HIGH". If I then edit Interface\Addons\AethysRotation\Settings.lua and set the default settings to use a MainFrameStrata of "HIGH", the Aeythis icon is layered properly and shows on top of the WAs.

Addon erroring out - not loading at all

Updated to the latest version with Twitch - upon logging into the game I get the error 1x AethysRotation\Main.lua:145: Usage: AethysRotation_MainFrame:SetPoint("point" [, region or nil] [, "relativePoint"] [, offsetX, offsetY])
full error text
1x AethysRotation\Main.lua:145: Usage: AethysRotation_MainFrame:SetPoint("point" [, region or nil] [, "relativePoint"] [, offsetX, offsetY])
[C]: in function `SetPoint'
AethysRotation\Main.lua:145: in function <AethysRotation\Main.lua:131>

Locals:
(*temporary) = AethysRotation_MainFrame {
0 =
Lock = defined @AethysRotation\Main.lua:95
ResizeButtons = defined @AethysRotation\Main.lua:60
Unlock = defined @AethysRotation\Main.lua:79
ResizeUI = defined @AethysRotation\Main.lua:38
}
(*temporary) = nil
(*temporary) = UIParent {
0 =
firstTimeLoaded = 1
}
(*temporary) = nil
(*temporary) = nil

Using any /aer command results in further errors. /aer unlock gives 1x AethysRotation\UI.lua:155: attempt to get length of field 'Part' (a nil value)
full error text
1x AethysRotation\UI.lua:155: attempt to get length of field 'Part' (a nil value)
AethysRotation\UI.lua:155: in function HideParts' AethysRotation\UI.lua:40: in function ResetIcons'
AethysRotation\Main.lua:81: in function Unlock' AethysRotation\Core.lua:153: in function ?'
FrameXML\ChatFrame.lua:4512: in function <FrameXML\ChatFrame.lua:4459>
[C]: in function ChatEdit_ParseText' FrameXML\ChatFrame.lua:4180: in function ChatEdit_SendText'
FrameXML\ChatFrame.lua:4216: in function `ChatEdit_OnEnterPressed'
[string ":OnEnterPressed"]:1: in function <[string ":OnEnterPressed"]:1>

Locals:
self = AethysRotation_MainIconFrame {
ChangeIcon = defined @AethysRotation\UI.lua:108
Init = defined @AethysRotation\UI.lua:92
CooldownFrame = AethysRotation_MainIconCooldownFrame {
}
SetCooldown = defined @AethysRotation\UI.lua:115
SetupParts = defined @AethysRotation\UI.lua:136
InitParts = defined @AethysRotation\UI.lua:118
TempTexture = {
}
HideParts = defined @AethysRotation\UI.lua:154
0 =
texture = {
}
}
(*temporary) = 1
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to get length of field 'Part' (a nil value)"

/aer toggle gives 1x AethysRotation\UI.lua:449: attempt to index field 'Button' (a nil value)
full error text
1x AethysRotation\UI.lua:449: attempt to index field 'Button' (a nil value)
AethysRotation\UI.lua:449: in function UpdateButtonText' AethysRotation\Core.lua:150: in function ?'
FrameXML\ChatFrame.lua:4512: in function <FrameXML\ChatFrame.lua:4459>
[C]: in function ChatEdit_ParseText' FrameXML\ChatFrame.lua:4180: in function ChatEdit_SendText'
FrameXML\ChatFrame.lua:4216: in function `ChatEdit_OnEnterPressed'
[string ":OnEnterPressed"]:1: in function <[string ":OnEnterPressed"]:1>

Locals:
self = AethysRotation_ToggleIconFrame {
0 =
UpdateButtonText = defined @AethysRotation\UI.lua:447
Init = defined @AethysRotation\UI.lua:318
ResetAnchor = defined @AethysRotation\UI.lua:372
AddButton = defined @AethysRotation\UI.lua:377
}
i = 3
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index field 'Button' (a nil value)"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.