I ran into this mod because I was looking for something to play whack-a-mole with my balance druid because I never did anything more than quest and maybe go to LFR. It's been great for that. My main, however, is a blood dk tank (for normal/heroic raiding, m+15s, not mythic raiding), and while I've had the mod loaded, the default setup basically gets stuck on blood boil and never moves on from there, so effectively broken.
So, I normally score somewhere 90% percentile on world of logs for the content I know, and in a life long ago I used to be a programmer, and because I got really bored the other day, I decided to try and create a custom script. I stole some basic stuff from the existing lua for DKs and from Sorebrek's unholy post in this forum.
There are a few basic assumptions: You take blood drinker, rapid decomp, and ossuary, and that you're running shackles on your wrist. I'm also assuming that survival is not an issue and you can play things out for max dps. As such, this is *not* the specific rotation that either icy veins or discord recommend, as I am recklessly using runic power for death strikes when I should be pooling it for bigger hits. There is one section you can comment out, which I've noted in comments towards the end of the script, that will help pool runic power more, however it is by no means optimal for a survival setup, it's merely a tweak you can make if you need a bit more safety. If you don't run shackles, this will still work, however there may be brief moments in time without buttons to push.
In any event, I'm not really a forum contributor type as a general rule, I just thought I'd share what I put together as the existing setup was pretty broken. I may or may not come back to look at any followup posts, so use at your own risk.

Code: Select all
function(_, timeShift, currentSpell, gcd, talents)
local _Marrowrend = 195182;
local _BoneShield = 195181;
local _BloodBoil = 50842;
local _BloodPlague = 195740;
local _DeathandDecay = 43265;
local _CrimsonScourge = 81136;
local _RapidDecomposition = 194662;
local _DeathStrike = 49998;
local _HeartStrike = 206930;
local _Ossuary = 219786;
local _Consumption = 205223;
local _DarkCommand = 56222;
local _DeathGrip = 49576;
local _AntiMagicShell = 48707;
local _DancingRuneWeapon = 49028;
local _MouthofHell = 192570;
local _VampiricBlood = 55233;
local _IceboundFortitude = 48792;
local _AntiMagicBarrier = 205727;
local _RedThirst = 205723;
local _WebofPain = 215288;
local _MasteryBloodShield = 77513;
local _BloodDrinker = 206931;
--Get runic power and runes
local runic = UnitPower('player', SPELL_POWER_RUNIC_POWER);
local runicMax = UnitPowerMax('player',SPELL_POWER_RUNIC_POWER);
local count = 0;
local cd = 0;
local time = GetTime();
for i = 1, 10 do
local start, duration, runeReady = GetRuneCooldown(i);
if start and start > 0 then
local rcd = duration + start - time;
if cd == 0 or cd > rcd then
cd = rcd;
end
end
if runeReady then
count = count + 1;
end
end
local runic = UnitPower('player', SPELL_POWER_RUNIC_POWER);
local runicMax = UnitPowerMax('player', SPELL_POWER_RUNIC_POWER);
local bb, bbCharges = MaxDps:SpellCharges(_BloodBoil, timeShift);
local dad = MaxDps:SpellAvailable(_DeathandDecay, timeShift);
local cons = MaxDps:SpellAvailable(_Consumption, timeShift);
local bd = MaxDps:SpellAvailable(_BloodDrinker, timeShift);
local bs, bsCharges = MaxDps:Aura(_BoneShield, timeShift + 6);
local bp = MaxDps:TargetAura(_BloodPlague, timeShift);
if bsCharges <= 6 and count >= 2 then
return _Marrowrend;
end
if MaxDps:Aura(_CrimsonScourge, timeShift) then
return _DeathandDecay;
end
if dad and count >= 2 then
return _DeathandDecay;
end
if bd then
return _BloodDrinker;
end
if runicMax - runic <= 20 then
return _DeathStrike;
end
if not bp and bbCharges > 2 then
return _BloodBoil;
end
if dad and count >= 2 then
return _DeathandDecay;
end
if cons then
return _Consumption;
end
if not bp and bbCharges > 1 then
return _BloodBoil;
end
if count > 2 then
return _HeartStrike;
end
-- comment this out if survival is a problem
if runic >= 60 then
return _DeathStrike;
end
-- comment out the above if survival is a problem
return _BloodBoil;
end