Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

If you want specific help, maybe post the code itself? Hard to read it right now lol.I made a simple LEM to help with using the bard song to remove drunkeness faster. I tried to get it to only fire if currently had the short buff, but could not figure out to so I just enable it when using bard song and disable it when finished. If anyone can help make it better I would love to learn from your changes.
Code:cmV0dXJuIHsKIG5hbWUgPSAiR2V0IHNvYmVyIGZhc3RlciB3aXRoIEJhcmQgc29uZyBTb290aGluZyBQc2FsbSBvZiB0aGUgU3VucmlzZSIsCiBjYXRlZ29yeSA9ICIiLAogdHlwZSA9ICJjb25kaXRpb25zIiwKIGNvZGUgPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDbXh2WTJGc0lHSjFabVl4SUQwblUyOXZkR2hwYm1jZ1VITmhiRzBnYjJZZ2RHaGxJRk4xYm5KcGMyVW5DZ3BzYjJOaGJDQm1kVzVqZEdsdmJpQnZibDlzYjJGa0tDa0tDbVZ1WkFvS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTI5dVpHbDBhVzl1S0NrS0lDQWdiWEV1WTIxa0tDY3ZjbVZ0YjNabFluVm1aaUJUZFc1eWFYTmxKeWtLSUNBZ2JYRXVaR1ZzWVhrb01qQXdNQ2tLWlc1a0NuSmxkSFZ5YmlCN2IyNXNiMkZrUFc5dVgyeHZZV1FzSUdOdmJtUm1kVzVqUFdOdmJtUnBkR2x2Ym4wPSIsCiBsb2FkID0gewogIGFsd2F5cyA9IGZhbHNlLAogIHpvbmUgPSAiIiwKICBjbGFzcyA9ICIiLAogfSwKfQ==
I thought about it, but the problem is with the storm's that are up while you need to run to the add aura. You need to avoid those aura's, and I have not yet figured out a good way to automate that. What I do is preposition a manually run toon to the north, and have another toon in the south. Once I get close enough, I do have a hotkey to '/nav spawn storm call' which moves me to the center of the storm aura.Did anyone have a LEM for the aura calls on Shardahn?
Same issue - I used one for the sheltered space, but do the add aura's manually because of that stupid duplicate storm.I thought about it, but the problem is with the storm's that are up while you need to run to the add aura. You need to avoid those aura's, and I have not yet figured out a good way to automate that. What I do is preposition a manually run toon to the north, and have another toon in the south. Once I get close enough, I do have a hotkey to '/nav spawn storm call' which moves me to the center of the storm aura.
You can just burn it and get all 3, didn’t realize that the first time I tried slow rollingI thought about it, but the problem is with the storm's that are up while you need to run to the add aura. You need to avoid those aura's, and I have not yet figured out a good way to automate that. What I do is preposition a manually run toon to the north, and have another toon in the south. Once I get close enough, I do have a hotkey to '/nav spawn storm call' which moves me to the center of the storm aura.
Thats what I do in the group script I have, but I thought they were referring to the raid. I may have mis-understood. In my script, I have one toon designated to run to the storm call, to give me about 5-10 more seconds to not get the Elder add. As long as I can burn it in 30-40 seconds, I normally get all 3 achievements. Lots of times, I will run the mission with no healer to maximize DPSYou can just burn it and get all 3, didn’t realize that the first time I tried slow rolling

I ran all 4 no healer with guildies, I might try it while boxing. I need to go back and do TOB since I didn’t play during the expansion.Thats what I do in the group script I have, but I thought they were referring to the raid. I may have mis-understood. In my script, I have one toon designated to run to the storm call, to give me about 5-10 more seconds to not get the Elder add. As long as I can burn it in 30-40 seconds, I normally get all 3 achievements. Lots of times, I will run the mission with no healer to maximize DPS![]()
local mq = require('mq')
-- Do not edit this if condition
if not package.loaded['events'] then
print('\ar[MercControl]\ax This script is intended for Lua Event Manager (LEM). Try "\a-t/lua run lem\a-x"')
end
local function on_load()
print('\ag[MercControl]\ax Module Loaded.')
end
---@return boolean @Returns true if we have a merc (Active or Dead)
local function condition()
local state = mq.TLO.Mercenary.State()
return state == "ACTIVE" or state == "DEAD"
end
local function action()
local merc = mq.TLO.Mercenary
local me = mq.TLO.Me
local assist = me.GroupAssistTarget
local xtCount = me.XTarget() or 0
-- 1. REVIVE DEAD MERC
if merc.State() == "DEAD" then
if mq.TLO.Window('MMGW_ManageWnd').Child('MMGW_SuspendButton').Enabled() then
print('\ar[MercControl]\ax Mercenary is dead. Attempting to revive...')
mq.cmd('/notify MMGW_ManageWnd MMGW_SuspendButton LeftMouseUp')
mq.delay(5000, function() return merc.State() == "ACTIVE" end)
end
return -- Exit action to let the merc spawn in
end
if mq.TLO.Target() and mq.TLO.Target.Type() == 'CORPSE' then
return
end
local currentStance = merc.Stance()
local mercClass = merc.Class.Name()
-- 2. RESET TO BALANCED (Not in combat or low threat)
if mq.TLO.Me.CombatState() ~= "COMBAT" and currentStance ~= "Balanced" and mercClass ~= "Warrior" then
mq.cmd('/stance Balanced')
mq.delay(500)
return
end
-- 3. COMBAT LOGIC (Requires a valid assist target)
if assist.ID() ~= 0 and assist.Type() ~= "PC" and mq.TLO.Me.CombatState() == "COMBAT" then
local targetHP = assist.PctHPs() or 100
local mercName = merc.CleanName()
local mercAggro = 0
if mercClass == "Warrior" then
return
end
if mq.TLO.Me.CombatState() ~= "COMBAT" then
return
end
-- Get Merc Aggro safely
if mercName then
mercAggro = mq.TLO.Group.Member(mercName).PctAggro() or 0
end
-- CLERIC LOGIC
if mercClass == "Cleric" then
-- Set Reactive if Named or 3+ mobs
if currentStance ~= "Reactive" and (mq.TLO.Target.Named() or xtCount >= 3) then
mq.cmd('/stance Reactive')
mq.delay(200)
-- Back to Balanced if things are calm
elseif currentStance == "Reactive" and not mq.TLO.Target.Named() and xtCount < 3 then
mq.cmd('/stance Balanced')
mq.delay(200)
end
end
-- DPS LOGIC (Rogue/Wizard)
if mercClass == "Rogue" or mercClass == "Wizard" then
-- Set Burn if target < 90% and aggro is safe
if targetHP <= 90 and mercAggro <= 75 then
if currentStance ~= "Burn" then
mq.cmd('/stance Burn')
mq.delay(200)
end
-- Throttle back to Balanced if aggro high or target HP high
elseif mercAggro > 75 or targetHP > 90 then
if currentStance ~= "Balanced" then
mq.cmd('/stance Balanced')
mq.delay(200)
end
end
end
end
end
return {
onload = on_load,
condfunc = condition,
actionfunc = action
}
cmV0dXJuIHsKIFsiY29kZSJdID0gImJHOWpZV3dnYlhFZ1BTQnlaWEYxYVhKbEtDZHRjU2NwQ2dvdExTQkVieUJ1YjNRZ1pXUnBkQ0IwYUdseklHbG1JR052Ym1ScGRHbHZiZ3BwWmlCdWIzUWdjR0ZqYTJGblpTNXNiMkZrWldSYkoyVjJaVzUwY3lkZElIUm9aVzRLSUNBZ0lIQnlhVzUwS0NkY1lYSmJUV1Z5WTBOdmJuUnliMnhkWEdGNElGUm9hWE1nYzJOeWFYQjBJR2x6SUdsdWRHVnVaR1ZrSUdadmNpQk1kV0VnUlhabGJuUWdUV0Z1WVdkbGNpQW9URVZOS1M0Z1ZISjVJQ0pjWVMxMEwyeDFZU0J5ZFc0Z2JHVnRYR0V0ZUNJbktRcGxibVFLQ214dlkyRnNJR1oxYm1OMGFXOXVJRzl1WDJ4dllXUW9LUW9nSUNBZ2NISnBiblFvSjF4aFoxdE5aWEpqUTI5dWRISnZiRjFjWVhnZ1RXOWtkV3hsSUV4dllXUmxaQzRuS1FwbGJtUUtDaTB0TFVCeVpYUjFjbTRnWW05dmJHVmhiaUJBVW1WMGRYSnVjeUIwY25WbElHbG1JSGRsSUdoaGRtVWdZU0J0WlhKaklDaEJZM1JwZG1VZ2IzSWdSR1ZoWkNrS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTI5dVpHbDBhVzl1S0NrS0lDQWdJR3h2WTJGc0lITjBZWFJsSUQwZ2JYRXVWRXhQTGsxbGNtTmxibUZ5ZVM1VGRHRjBaU2dwQ2lBZ0lDQnlaWFIxY200Z2MzUmhkR1VnUFQwZ0lrRkRWRWxXUlNJZ2IzSWdjM1JoZEdVZ1BUMGdJa1JGUVVRaUNtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdZV04wYVc5dUtDa0tJQ0FnSUd4dlkyRnNJRzFsY21NZ1BTQnRjUzVVVEU4dVRXVnlZMlZ1WVhKNUNpQWdJQ0JzYjJOaGJDQnRaU0E5SUcxeExsUk1UeTVOWlFvZ0lDQWdiRzlqWVd3Z1lYTnphWE4wSUQwZ2JXVXVSM0p2ZFhCQmMzTnBjM1JVWVhKblpYUUtJQ0FnSUd4dlkyRnNJSGgwUTI5MWJuUWdQU0J0WlM1WVZHRnlaMlYwS0NrZ2IzSWdNQW9LSUNBZ0lDMHRJREV1SUZKRlZrbFdSU0JFUlVGRUlFMUZVa01LSUNBZ0lHbG1JRzFsY21NdVUzUmhkR1VvS1NBOVBTQWlSRVZCUkNJZ2RHaGxiZ29nSUNBZ0lDQWdJR2xtSUcxeExsUk1UeTVYYVc1a2IzY29KMDFOUjFkZlRXRnVZV2RsVjI1a0p5a3VRMmhwYkdRb0owMU5SMWRmVTNWemNHVnVaRUoxZEhSdmJpY3BMa1Z1WVdKc1pXUW9LU0IwYUdWdUNpQWdJQ0FnSUNBZ0lDQWdJSEJ5YVc1MEtDZGNZWEpiVFdWeVkwTnZiblJ5YjJ4ZFhHRjRJRTFsY21ObGJtRnllU0JwY3lCa1pXRmtMaUJCZEhSbGJYQjBhVzVuSUhSdklISmxkbWwyWlM0dUxpY3BDaUFnSUNBZ0lDQWdJQ0FnSUcxeExtTnRaQ2duTDI1dmRHbG1lU0JOVFVkWFgwMWhibUZuWlZkdVpDQk5UVWRYWDFOMWMzQmxibVJDZFhSMGIyNGdUR1ZtZEUxdmRYTmxWWEFuS1FvZ0lDQWdJQ0FnSUNBZ0lDQnRjUzVrWld4aGVTZzFNREF3TENCbWRXNWpkR2x2YmlncElISmxkSFZ5YmlCdFpYSmpMbE4wWVhSbEtDa2dQVDBnSWtGRFZFbFdSU0lnWlc1a0tRb2dJQ0FnSUNBZ0lHVnVaQW9nSUNBZ0lDQWdJSEpsZEhWeWJpQXRMU0JGZUdsMElHRmpkR2x2YmlCMGJ5QnNaWFFnZEdobElHMWxjbU1nYzNCaGQyNGdhVzRLSUNBZ0lHVnVaQW9LSUNBZ0lHbG1JRzF4TGxSTVR5NVVZWEpuWlhRb0tTQmhibVFnYlhFdVZFeFBMbFJoY21kbGRDNVVlWEJsS0NrZ1BUMGdKME5QVWxCVFJTY2dkR2hsYmdvZ0lDQWdJQ0FnSUhKbGRIVnliaUFLSUNBZ0lHVnVaQW9LSUNBZ0lHeHZZMkZzSUdOMWNuSmxiblJUZEdGdVkyVWdQU0J0WlhKakxsTjBZVzVqWlNncENpQWdJQ0JzYjJOaGJDQnRaWEpqUTJ4aGMzTWdQU0J0WlhKakxrTnNZWE56TGs1aGJXVW9LUW9LSUNBZ0lDMHRJREl1SUZKRlUwVlVJRlJQSUVKQlRFRk9RMFZFSUNoT2IzUWdhVzRnWTI5dFltRjBJRzl5SUd4dmR5QjBhSEpsWVhRcENpQWdJQ0JwWmlBZ2JYRXVWRXhQTGsxbExrTnZiV0poZEZOMFlYUmxLQ2tnZmowZ0lrTlBUVUpCVkNJZ1lXNWtJR04xY25KbGJuUlRkR0Z1WTJVZ2ZqMGdJa0poYkdGdVkyVmtJaUJoYm1RZ2JXVnlZME5zWVhOeklINDlJQ0pYWVhKeWFXOXlJaUIwYUdWdUNpQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdmMzUmhibU5sSUVKaGJHRnVZMlZrSnlrS0lDQWdJQ0FnSUNCdGNTNWtaV3hoZVNnMU1EQXBDaUFnSUNBZ0lDQWdjbVYwZFhKdUNpQWdJQ0JsYm1RS0NpQWdJQ0F0TFNBekxpQkRUMDFDUVZRZ1RFOUhTVU1nS0ZKbGNYVnBjbVZ6SUdFZ2RtRnNhV1FnWVhOemFYTjBJSFJoY21kbGRDa0tJQ0FnSUdsbUlHRnpjMmx6ZEM1SlJDZ3BJSDQ5SURBZ1lXNWtJR0Z6YzJsemRDNVVlWEJsS0NrZ2ZqMGdJbEJESWlCaGJtUWdiWEV1VkV4UExrMWxMa052YldKaGRGTjBZWFJsS0NrZ1BUMGdJa05QVFVKQlZDSWdkR2hsYmdvZ0lDQWdJQ0FnSUd4dlkyRnNJSFJoY21kbGRFaFFJRDBnWVhOemFYTjBMbEJqZEVoUWN5Z3BJRzl5SURFd01Bb2dJQ0FnSUNBZ0lHeHZZMkZzSUcxbGNtTk9ZVzFsSUQwZ2JXVnlZeTVEYkdWaGJrNWhiV1VvS1FvZ0lDQWdJQ0FnSUd4dlkyRnNJRzFsY21OQloyZHlieUE5SURBS0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ2FXWWdiV1Z5WTBOc1lYTnpJRDA5SUNKWFlYSnlhVzl5SWlCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliZ29nSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNCcFppQnRjUzVVVEU4dVRXVXVRMjl0WW1GMFUzUmhkR1VvS1NCK1BTQWlRMDlOUWtGVUlpQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmdvZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnSUNBZ0lDMHRJRWRsZENCTlpYSmpJRUZuWjNKdklITmhabVZzZVFvZ0lDQWdJQ0FnSUdsbUlHMWxjbU5PWVcxbElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ2JXVnlZMEZuWjNKdklEMGdiWEV1VkV4UExrZHliM1Z3TGsxbGJXSmxjaWh0WlhKalRtRnRaU2t1VUdOMFFXZG5jbThvS1NCdmNpQXdDaUFnSUNBZ0lDQWdaVzVrQ2dvZ0lDQWdJQ0FnSUMwdElFTk1SVkpKUXlCTVQwZEpRd29nSUNBZ0lDQWdJR2xtSUcxbGNtTkRiR0Z6Y3lBOVBTQWlRMnhsY21saklpQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lDMHRJRk5sZENCU1pXRmpkR2wyWlNCcFppQk9ZVzFsWkNCdmNpQXpLeUJ0YjJKekNpQWdJQ0FnSUNBZ0lDQWdJR2xtSUdOMWNuSmxiblJUZEdGdVkyVWdmajBnSWxKbFlXTjBhWFpsSWlCaGJtUWdLRzF4TGxSTVR5NVVZWEpuWlhRdVRtRnRaV1FvS1NCdmNpQjRkRU52ZFc1MElENDlJRE1wSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMXhMbU50WkNnbkwzTjBZVzVqWlNCU1pXRmpkR2wyWlNjcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdGNTNWtaV3hoZVNneU1EQXBDaUFnSUNBZ0lDQWdJQ0FnSUMwdElFSmhZMnNnZEc4Z1FtRnNZVzVqWldRZ2FXWWdkR2hwYm1keklHRnlaU0JqWVd4dENpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWcFppQmpkWEp5Wlc1MFUzUmhibU5sSUQwOUlDSlNaV0ZqZEdsMlpTSWdZVzVrSUc1dmRDQnRjUzVVVEU4dVZHRnlaMlYwTGs1aGJXVmtLQ2tnWVc1a0lIaDBRMjkxYm5RZ1BDQXpJSFJvWlc0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxeExtTnRaQ2duTDNOMFlXNWpaU0JDWVd4aGJtTmxaQ2NwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2d5TURBcENpQWdJQ0FnSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdJQ0FnSUdWdVpBb0tJQ0FnSUNBZ0lDQXRMU0JFVUZNZ1RFOUhTVU1nS0ZKdlozVmxMMWRwZW1GeVpDa0tJQ0FnSUNBZ0lDQnBaaUJ0WlhKalEyeGhjM01nUFQwZ0lsSnZaM1ZsSWlCdmNpQnRaWEpqUTJ4aGMzTWdQVDBnSWxkcGVtRnlaQ0lnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0F0TFNCVFpYUWdRblZ5YmlCcFppQjBZWEpuWlhRZ1BDQTVNQ1VnWVc1a0lHRm5aM0p2SUdseklITmhabVVLSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdkR0Z5WjJWMFNGQWdQRDBnT1RBZ1lXNWtJRzFsY21OQloyZHlieUE4UFNBM05TQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlCamRYSnlaVzUwVTNSaGJtTmxJSDQ5SUNKQ2RYSnVJaUIwYUdWdUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZjM1JoYm1ObElFSjFjbTRuS1FvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMXhMbVJsYkdGNUtESXdNQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdJQ0FnSUNBZ0lDQXRMU0JVYUhKdmRIUnNaU0JpWVdOcklIUnZJRUpoYkdGdVkyVmtJR2xtSUdGblozSnZJR2hwWjJnZ2IzSWdkR0Z5WjJWMElFaFFJR2hwWjJnS0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WldsbUlHMWxjbU5CWjJkeWJ5QStJRGMxSUc5eUlIUmhjbWRsZEVoUUlENGdPVEFnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdZM1Z5Y21WdWRGTjBZVzVqWlNCK1BTQWlRbUZzWVc1alpXUWlJSFJvWlc0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRjUzVqYldRb0p5OXpkR0Z1WTJVZ1FtRnNZVzVqWldRbktRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzF4TG1SbGJHRjVLREl3TUNrS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJQ0FnSUNCbGJtUUtJQ0FnSUdWdVpBcGxibVFLQ25KbGRIVnliaUI3Q2lBZ0lDQnZibXh2WVdRZ1BTQnZibDlzYjJGa0xDQUtJQ0FnSUdOdmJtUm1kVzVqSUQwZ1kyOXVaR2wwYVc5dUxDQUtJQ0FnSUdGamRHbHZibVoxYm1NZ1BTQmhZM1JwYjI0S2ZRPT0iLAogWyJsb2FkIl0gPSB7CiAgWyJjbGFzcyJdID0gIiIsCiAgWyJhbHdheXMiXSA9IGZhbHNlLAogIFsiem9uZSJdID0gIiIsCiB9LAogWyJjYXRlZ29yeSJdID0gIiIsCiBbInR5cGUiXSA9ICJjb25kaXRpb25zIiwKIFsibmFtZSJdID0gIk1lcmNTdGFuY2UiLAp9
