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
Hi all, I am just now trying to get in on the LEM game. I have been reading everything on this entire link trying to learn what and how to load these things. I was able to /lua run LEM and get the windows open in game. I fiddled with it for the past couple of hours and slowly figuring things out. Looking on the library of LEMs how do I know if to load them as a Text or a Condition event? I have loaded the Final Fugue and Heroes are forged as texts. Now I have no clue if they are correct and will work, but they are at least showing in the window. I have tried to import the long strings but they keep failing. Not sure what I need to do with that. Any advice or help will be greatly appreciated.
Sorry, Had to reboot the PC. Ok, I think I see what was going wrong this far. For some reason when I copied and pasted it was copying all the data after the actual code. I just did it again and it opened the import window with Horoes run in the name. It has #*#to move toward #1#.#*# in the pattern block. Do I need to check the Event enabled block or the single command action box? then Do I fill in the Code Templates block?If you're importing via the Base64 encoded string, it will go to the correct place. Text events you need to know the matching trigger if you're just copying code into an event you created. What kind of error are you getting importing the string?
If you're importing an event, all you need to do is check it to enable it.Sorry, Had to reboot the PC. Ok, I think I see what was going wrong this far. For some reason when I copied and pasted it was copying all the data after the actual code. I just did it again and it opened the import window with Horoes run in the name. It has #*#to move toward #1#.#*# in the pattern block. Do I need to check the Event enabled block or the single command action box? then Do I fill in the Code Templates block?