• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver
Resource icon

Release Lua Event Manager (LEM) Event Library

Put trailing punctuation like a period if the event string has one. #1#.
Otherwise, just end it with #1# and do the parsing of the string within the lua code.

The most simple case:
Lua:
if name:find(mq.TLO.Me.CleanName()) then
  -- do stuff
end
but you can get much more complex if there are more names or anything, variable number of names, etc.
Thanks for the reply.

You can see the code that follows in the pictures that it does exactly that. Even if I end it with #1# the trigger does not activate the event. Pulling my hair out.
 
Thanks for the reply.

You can see the code that follows in the pictures that it does exactly that. Even if I end it with #1# the trigger does not activate the event. Pulling my hair out.
both your screenshots have name ==, not name:find(...)

there might be extra characters in your name variable which is why the == doesn't work. the event might be firing but you just never enter the if. you can use print before the if to see like
printf("*%s*", name)
should help highlight what all is being captured by #1#
 
I have used the TOV Duck Mission as my starting point:

1710801995672.png
This has been working fine as has a few others I have made using this as a starting point. I am not an avid coder so trial and improve ;)

I made a Raid AOW duck based on this in which I had to learn how to add additional names that are called:

Trigger:
#*#The ice-encrusted Avatar of War shouts that each of these must bend the knee: #1#, #2#, and #3#.#*#

1710802184993.png
This works fine on all my characters.

I will try the Print idea before the if command and see if anything gets returned tomorrow as it is not the only one that is failing; for example #*#Derakor points at #1#
 
Ah I can see that when I run the event in group chat it is adding the closing ' which is then not the same as the CleanName. The event does not close with a hyphen so I guess I need to run it live to check its working.

Interestingly that if you do end triggers with #1##*# it gives the name ** so you must not ever do this syntax if you want it to output a name.

Thanks so much for the simple idea for troubleshooting!
 
Can anyone tell me what i need to add to this to make relaytells work

local mq = require('mq')

local function event_handler(line, name, message)
-- Implement the handling for the event here.
mq.cmdf('/dgt all Tell from %s: %s', name, message)
end

return {eventfunc=event_handler}
 
Can anyone tell me what i need to add to this to make relaytells work

local mq = require('mq')

local function event_handler(line, name, message)
-- Implement the handling for the event here.
mq.cmdf('/dgt all Tell from %s: %s', name, message)
end

return {eventfunc=event_handler}
looks pretty straightforward. are saying it doesn't work? if so, in what way is it not working? there's not much to go on.

but at the same time its just a sample and there are other solutions for relaying tells already like MQ2RelayTells plugin or eqbc has relay tells built in if you use that.
 
I am trying to learn how to do LEMs, working on something simple as a learning process. Can anyone help me debug this to where it will fire and do what wanted.
Watches for a guildy to level and outputs /gu Grats on level # playername Is the idea.

pattern #*#Your guildmate #1# has completed Level #2# achievement.#*#
local mq=require('mq')
local function event_handler(line, names, level)
if string.find(names, mq.TLO.Me.CleanName()) then
mq.cmd('/gu Grats on level', level, mq.TLO.Me.Class.ShortName())

end
end
return {eventfunc=event_handler}
 
Extremely new to Lua and have been trying to figure this out. I am trying to make a condition event that looks at the buffs of group members and only casts cure corruption, which will be in gem 9, on targets that have Doom Shadow. This is for the Lethar event in Ashengate. I have it working so that whoever is targeted is evaluated and the cast happens when the conditions are met but I don't know how to get the script to iterate through the group members instead of me having to target each of them individually. Any guidance or help on this would be appreciated. I started with the disease curing example but other then changing a couple of simple things I am pretty much stuck.

local mq = require('mq')

if not package.loaded['events'] then print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/Lua run lem\a-x"') end

---@return boolean @Returns true if the action should fire, otherwise false.
local function condition()
local counter = mq.TLO.Target.Buff('Doom Shadow').ID()
return counter and counter > 0
end

local function action()
mq.cmd('/cast 9')
end

return {condfunc=condition, actionfunc=action}
 
Extremely new to lua and have been trying to figure this out. I am trying to make a condition event that looks at the buffs of group members and only casts cure corruption, which will be in gem 9, on targets that have Doom Shadow. This is for the Lethar event in Ashengate. I have it working so that whoever is targeted is evaluated and the cast happens when the conditions are met but I don't know how to get the script to iterate through the group members instead of me having to target each of them individually. Any guidance or help on this would be appreciated. I started with the disease curing example but other then changing a couple of simple things I am pretty much stuck.

local mq = require('mq')

if not package.loaded['events'] then print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/lua run lem\a-x"') end

---@return boolean @Returns true if the action should fire, otherwise false.
local function condition()
local counter = mq.TLO.Target.Buff('Doom Shadow').ID()
return counter and counter > 0
end

local function action()
mq.cmd('/cast 9')
end

return {condfunc=condition, actionfunc=action}
There's some good examples for iterating through a group or raid using a for loop. One I can think of quickly off the top of my head is one of the corpse dragging luas.
 
There's some good examples for iterating through a group or raid using a for loop. One I can think of quickly off the top of my head is one of the corpse dragging luas.
Thanks, after a bunch of trial and error I got it working as a text event instead of a condition. I am sure there are much cleaner and better ways to get it to work but as someone who hadn't heard of Lua before a few a days ago I am pretty happy I got anything to happen.

local mq = require('mq')

if not package.loaded['events'] then print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/Lua run lem\a-x"') end

local function event_handler()
local groupcount = mq.TLO.Group.Members()

if groupcount > 0 then
for g = 0, groupcount do
[BGCOLOR=initial]local name = mq.TLO.Group.Member(g).Name()[/BGCOLOR]
mq.cmdf('/target %s',name)
mq.delay(150)
local counter = mq.TLO.Group.Member(g).Buff('doom shadow').ID()
if counter ~= nil then
mq.cmd('/cast cure corruption')
end
mq.delay(4500)
end



end


end


return {eventfunc=event_handler}
 
Hello all, I'm wondering is anyone has a working LEM for The Spirit Fades: Thick skin achievement. I didn't find one in this thread nor a search of the board.

Having a difficult time boxing this one.

Thanks in advance folks!


BB~
 
Hello all, I'm wondering is anyone has a working LEM for The Spirit Fades: Thick skin achievement. I didn't find one in this thread nor a search of the board.

Having a difficult time boxing this one.

Thanks in advance folks!


BB~
Not sure a lem is the right solution here tbh. Here is how I do it but I'd be very interested in seeing if someone else has an easier software solution.

First off, the tank and healer hardly ever get called so you will need a second tank or take your tank in with a separate group and separate healer

Go into the instance with just your tank/healer and one toon that needs the achieve first. LEave the other three at the npc ready to zone int. Setup your crew in the cave closer to the trash spiders. Pull weakness evidence first and he will call out that third toons name. As long as you remain in the cave, he will not get hit by the aura. Then bring in another toon while just slowly dps'ng the boss. He will call another name....rinse repeat until all get called (other than tank healer). Then complete the task...win!

For your tank and healer, ask a guildie for an assist =)
 
Question about NPC naming and lems. I want to assign my boxes to only cure whirling debris03,04,05. So can I just rename the lem to Bane03,04,05 and edit the line local bane_mob_name = 'whirling debris' to local bane_mob_name = 'whirling debris03' So I could have a bane03 for my cleric to only bane03, and then bane04 for my paladin to only bane04, then bane05 for my shaman to only bane 05? As it is now it will randomly cast it on any of the 6 targets. I am trying to speed up banes and the boxes only cast it on 03,04,05
 
updated the Dot & Debuffs lem I posted earlier.
now includes debuff status of you, in a separate popup window.

Code:
cmV0dXJuIHsKIFsiY2F0ZWdvcnkiXSA9ICIiLAogWyJjb2RlIl0gPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDbkpsY1hWcGNtVW9Ja2x0UjNWcElpa0tiRzlqWVd3Z1ozVnBUM0JsYml3Z1ozVnBUM0JsYmxObGJHWWdQU0JtWVd4elpTd2dabUZzYzJVS2JHOWpZV3dnWVc1cGJWTndaV3hzSUQwZ2JYRXVSbWx1WkZSbGVIUjFjbVZCYm1sdFlYUnBiMjRvSjBGZlUzQmxiR3hKWTI5dWN5Y3BDbXh2WTJGc0lHRnVhVzFKZEdWdElEMGdiWEV1Um1sdVpGUmxlSFIxY21WQmJtbHRZWFJwYjI0b0owRmZSSEpoWjBsMFpXMG5LUXBzYjJOaGJDQnBZMjl1VTJsNlpTQTlJREUyQ214dlkyRnNJR1JsUWxWSElEMGdabUZzYzJVS0NteHZZMkZzSUdaMWJtTjBhVzl1SUdkbGRFUjFjbUYwYVc5dUtHa3BDaUFnSUNCc2IyTmhiQ0J5WlcxaGFXNXBibWNnUFNCdGNTNVVURTh1VkdGeVoyVjBMa0oxWm1Zb2FTa3VSSFZ5WVhScGIyNG9LU0J2Y2lBd0NpQWdJQ0J5WlcxaGFXNXBibWNnUFNCeVpXMWhhVzVwYm1jZ0x5QXhNREF3SUMwdElHTnZiblpsY25RZ2RHOGdjMlZqYjI1a2N3b2dJQ0FnTFMwZ1EyRnNZM1ZzWVhSbElHaHZkWEp6TENCdGFXNTFkR1Z6TENCaGJtUWdjMlZqYjI1a2N3b2dJQ0FnYkc5allXd2dhQ0E5SUcxaGRHZ3VabXh2YjNJb2NtVnRZV2x1YVc1bklDOGdNell3TUNrZ2IzSWdNQW9nSUNBZ2NtVnRZV2x1YVc1bklEMGdjbVZ0WVdsdWFXNW5JQ1VnTXpZd01DQXRMU0J5WlcxaGFXNXBibWNnYzJWamIyNWtjeUJoWm5SbGNpQnlaVzF2ZG1sdVp5Qm9iM1Z5Y3dvZ0lDQWdiRzlqWVd3Z2JTQTlJRzFoZEdndVpteHZiM0lvY21WdFlXbHVhVzVuSUM4Z05qQXBJRzl5SURBS0lDQWdJR3h2WTJGc0lITWdQU0J5WlcxaGFXNXBibWNnSlNBMk1DQWdJQ0FnTFMwZ2NtVnRZV2x1YVc1bklITmxZMjl1WkhNZ1lXWjBaWElnY21WdGIzWnBibWNnYldsdWRYUmxjd29nSUNBZ0xTMGdSbTl5YldGMElIUm9aU0IwYVcxbElITjBjbWx1WnlCaGN5QklJRG9nVFNBNklGTUtJQ0FnSUd4dlkyRnNJSE5TWlcxaGFXNXBibWNnUFNCemRISnBibWN1Wm05eWJXRjBLQ0lsTURKa09pVXdNbVFpTENCdExDQnpLUW9nSUNBZ2NtVjBkWEp1SUhOU1pXMWhhVzVwYm1jS1pXNWtDZ290TFMxQWNHRnlZVzBnZEhsd1pTQnpkSEpwYm1jS0xTMHRRSEJoY21GdElIUjRkQ0J6ZEhKcGJtY0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1JISmhkMU4wWVhSMWMwbGpiMjRvYVdOdmJrbEVMQ0IwZVhCbExDQjBlSFFwQ2lBZ0lDQmhibWx0VTNCbGJHdzZVMlYwVkdWNGRIVnlaVU5sYkd3b2FXTnZia2xFSUc5eUlEQXBDaUFnSUNCaGJtbHRTWFJsYlRwVFpYUlVaWGgwZFhKbFEyVnNiQ2hwWTI5dVNVUWdiM0lnTXprNU5pa0tJQ0FnSUdsbUlIUjVjR1VnUFQwZ0oybDBaVzBuSUhSb1pXNEtJQ0FnSUNBZ0lDQkpiVWQxYVM1RWNtRjNWR1Y0ZEhWeVpVRnVhVzFoZEdsdmJpaGhibWx0U1hSbGJTd2dhV052YmxOcGVtVWdMQ0JwWTI5dVUybDZaU0FwQ2lBZ0lDQmxiSE5sYVdZZ2RIbHdaU0E5UFNBbmNIZGpjeWNnZEdobGJnb2dJQ0FnSUNBZ0lHeHZZMkZzSUdGdWFXMVFWME5USUQwZ2JYRXVSbWx1WkZSbGVIUjFjbVZCYm1sdFlYUnBiMjRvYVdOdmJrbEVLUW9nSUNBZ0lDQWdJR0Z1YVcxUVYwTlRPbE5sZEZSbGVIUjFjbVZEWld4c0tHbGpiMjVKUkNrS0lDQWdJQ0FnSUNCSmJVZDFhUzVFY21GM1ZHVjRkSFZ5WlVGdWFXMWhkR2x2YmloaGJtbHRVRmREVXl3Z2FXTnZibE5wZW1VZ0xDQnBZMjl1VTJsNlpTQXBDaUFnSUNCbGJITmxDaUFnSUNBZ0lDQWdTVzFIZFdrdVJISmhkMVJsZUhSMWNtVkJibWx0WVhScGIyNG9ZVzVwYlZOd1pXeHNMQ0JwWTI5dVUybDZaU0FzSUdsamIyNVRhWHBsSUNrS0lDQWdJR1Z1WkFwbGJtUUtDbXh2WTJGc0lHWjFibU4wYVc5dUlHTnZkVzUwVFhsRWIzUnpLR1JsWW5WbVprTnZkVzUwS1FvZ0lDQWdiRzlqWVd3Z1JFVkNWVVpHSUQwZ2JYRXVWRXhQTGxSaGNtZGxkQzVDZFdabUNpQWdJQ0JzYjJOaGJDQnRlVVJ2ZEhNZ1BTQXdDaUFnSUNCbWIzSWdhU0E5SURFc0lHUmxZblZtWmtOdmRXNTBJR1J2Q2lBZ0lDQWdJQ0FnYVdZZ1JFVkNWVVpHS0drcGZqMGdibWxzSUdGdVpDQkVSVUpWUmtZb2FTa3VRMkZ6ZEdWeUtDa2dQVDBnYlhFdVZFeFBMazFsTGtScGMzQnNZWGxPWVcxbEtDa2dZVzVrSUc1dmRDQkVSVUpWUmtZb2FTa3VRbVZ1WldacFkybGhiQ2dwSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnYlhsRWIzUnpJRDBnYlhsRWIzUnpJQ3NnTVFvZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnWlc1a0NpQWdJQ0J5WlhSMWNtNGdiWGxFYjNSekNtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdZMmhsWTJ0VFpXeG1SR1ZpZFdabWN5Z3BDaUFnSUNCcFppQmtaVUpWUnlCdmNpQnRjUzVVVEU4dVRXVXVVRzlwYzI5dVpXUW9LU0J2Y2lCdGNTNVVURTh1VFdVdVUzUjFibTVsWkNncElHOXlJRzF4TGxSTVR5NU5aUzVFYVhObFlYTmxaQ2dwSUc5eUlHMXhMbFJNVHk1TlpTNUViM1IwWldRb0tTQnZjaUJ0Y1M1VVRFOHVUV1V1UTNWeWMyVmtLQ2tnYjNJZ2JYRXVWRXhQTGsxbExrTnZjbkoxY0hSbFpDZ3BJRzl5SUcxeExsUk1UeTVOWlM1U2IyOTBaV1FvS1NCdmNpQnRjUzVVVEU4dVRXVXVUV1Y2ZW1Wa0tDa2diM0lnYlhFdVZFeFBMazFsTGtOb1lYSnRaV1FvS1NCMGFHVnVDaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1VLSUNBZ0lHVnVaQW9nSUNBZ2FXWWdiWEV1VkV4UExrMWxMa0oxWm1Zb0oxSmxjM1Z5Y21WamRHbHZiaUJUYVdOcmJtVnpjeWNwS0NrZ2ZqMGdibWxzSUhSb1pXNGdjbVYwZFhKdUlIUnlkV1VnWlc1a0NpQWdJQ0J5WlhSMWNtNGdabUZzYzJVS1pXNWtDZ3BzYjJOaGJDQm1kVzVqZEdsdmJpQmtjbUYzUkdWaWRXWm1jeWhrWldKMVptWkRiM1Z1ZENrS0lDQWdJR3h2WTJGc0lFUkZRbFZHUmlBOUlHMXhMbFJNVHk1VVlYSm5aWFF1UW5WbVpnb2dJQ0FnYkc5allXd2djM1J5YVc1bklEMGdKeWNLSUNBZ0lHWnZjaUJwSUQwZ01Td2daR1ZpZFdabVEyOTFiblFnWkc4S0lDQWdJQ0FnSUNCemRISnBibWNnUFNBbkp3b2dJQ0FnSUNBZ0lHbG1JRVJGUWxWR1JpaHBLWDQ5SUc1cGJDQmhibVFnUkVWQ1ZVWkdLR2twTGtOaGMzUmxjaWdwSUQwOUlHMXhMbFJNVHk1TlpTNUVhWE53YkdGNVRtRnRaU2dwSUdGdVpDQnViM1FnUkVWQ1ZVWkdLR2twTGtKbGJtVm1hV05wWVd3b0tTQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lHeHZZMkZzSUdSMWNpQTlJR2RsZEVSMWNtRjBhVzl1S0drcENpQWdJQ0FnSUNBZ0lDQWdJR3h2WTJGc0lHUjFjbE5sWTI5dVpITWdQU0JFUlVKVlJrWW9hU2t1UkhWeVlYUnBiMjR1Vkc5MFlXeFRaV052Ym1SektDa2diM0lnTUFvZ0lDQWdJQ0FnSUNBZ0lDQnNiMk5oYkNCdVlXMWxJRDBnUkVWQ1ZVWkdLR2twTGs1aGJXVW9LUW9nSUNBZ0lDQWdJQ0FnSUNCemRISnBibWNnUFNCemRISnBibWN1Wm05eWJXRjBLQ0lsYzF4MFhIUmNkRngwWEhSY2RDSXNJRzVoYldVcENpQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExrSmxaMmx1UjNKdmRYQW9LUW9nSUNBZ0lDQWdJQ0FnSUNCcFppQmtkWEpUWldOdmJtUnpJRHc5SURFNElIUm9aVzRLQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKYlVkMWFTNVFkWE5vVTNSNWJHVkRiMnh2Y2loSmJVZDFhVU52YkM1VVpYaDBMREV1TUN3d0xEQXNNU2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExsUmxlSFFvYzNSeWFXNW5LUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdTVzFIZFdrdVUyRnRaVXhwYm1Vb1NXMUhkV2t1UjJWMFYybHVaRzkzVjJsa2RHZ29LU0F0SURVMUtRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NXMUhkV2t1VkdWNGRDaGtkWElwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKYlVkMWFTNVFiM0JUZEhsc1pVTnZiRzl5S0NrS0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnU1cxSGRXa3VWR1Y0ZENoemRISnBibWNwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKYlVkMWFTNVRZVzFsVEdsdVpTaEpiVWQxYVM1SFpYUlhhVzVrYjNkWGFXUjBhQ2dwSUMwZ05UVXBDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQkpiVWQxYVM1VVpYaDBLR1IxY2lrS0lDQWdJQ0FnSUNBZ0lDQWdaVzVrQ2lBZ0lDQWdJQ0FnSUNBZ0lFbHRSM1ZwTGtWdVpFZHliM1Z3S0NrS0lDQWdJQ0FnSUNBZ0lDQWdMUzBnWTJ4cFkyc2dkRzhnWTJGemRBb2dJQ0FnSUNBZ0lDQWdJQ0JwWmlCSmJVZDFhUzVKYzBsMFpXMUliM1psY21Wa0tDa2dkR2hsYmdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ1NXMUhkV2t1U1hOTmIzVnpaVkpsYkdWaGMyVmtLREFwSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUm1LQ2N2WTJGemRDQWlKWE1pSnl4dVlXMWxLUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVrQ2lBZ0lDQWdJQ0FnSUNBZ0lHVnVaQW9nSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdaVzVrQ21WdVpBb0tDbVoxYm1OMGFXOXVJRWRWU1Y5a1pXSjFabVp6S0NrS0lDQWdJR2xtSUcxeExsUk1UeTVOWlM1YWIyNXBibWNvS1NCMGFHVnVJSEpsZEhWeWJpQmxibVFLQ2lBZ0lDQnBaaUJuZFdsUGNHVnVJSFJvWlc0S0lDQWdJQ0FnSUNCc2IyTmhiQ0J6YUc5M0lEMGdabUZzYzJVS0lDQWdJQ0FnSUNCbmRXbFBjR1Z1TENCemFHOTNJRDBnU1cxSGRXa3VRbVZuYVc0b0lrUnZkSE1qSXlJdUxtMXhMbFJNVHk1TlpTNUVhWE53YkdGNVRtRnRaU2dwTENCbmRXbFBjR1Z1TENCaWFYUXpNaTVpYjNJb1NXMUhkV2xYYVc1a2IzZEdiR0ZuY3k1QmJIZGhlWE5CZFhSdlVtVnphWHBsTENCSmJVZDFhVmRwYm1SdmQwWnNZV2R6TGs1dlJHVmpiM0poZEdsdmJpa3BDaUFnSUNBZ0lDQWdhV1lnYm05MElITm9iM2NnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0JKYlVkMWFTNUZibVFvS1FvZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnSUNBZ0lHeHZZMkZzSUdSbFluVm1aa052ZFc1MElEMGdiWEV1VkV4UExsUmhjbWRsZEM1Q2RXWm1RMjkxYm5Rb0tTQnZjaUF3Q2lBZ0lDQWdJQ0FnYVdZZ1pHVmlkV1ptUTI5MWJuUWdQaUF3SUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ1kyOTFiblJOZVVSdmRITW9aR1ZpZFdabVEyOTFiblFwSUQ0Z01DQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrY21GM1JHVmlkV1ptY3loa1pXSjFabVpEYjNWdWRDa0tJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0NpQWdJQ0FnSUNBZ1pXNWtDZ29nSUNBZ0lDQWdJRWx0UjNWcExrVnVaQ2dwQ2lBZ0lDQmxibVFLQ2lBZ0lDQnBaaUJuZFdsUGNHVnVVMlZzWmlCMGFHVnVDaUFnSUNBZ0lDQWdiRzlqWVd3Z2MyaHZkMU5sYkdZZ1BTQm1ZV3h6WlFvZ0lDQWdJQ0FnSUdkMWFVOXdaVzVUWld4bUxDQnphRzkzVTJWc1ppQTlJRWx0UjNWcExrSmxaMmx1S0NKRWIzUnpVMlZzWmlNaklpNHViWEV1VkV4UExrMWxMa1JwYzNCc1lYbE9ZVzFsS0Nrc0lHZDFhVTl3Wlc1VFpXeG1MQ0JpYVhRek1pNWliM0lvU1cxSGRXbFhhVzVrYjNkR2JHRm5jeTVCYkhkaGVYTkJkWFJ2VW1WemFYcGxMQ0JKYlVkMWFWZHBibVJ2ZDBac1lXZHpMazV2UkdWamIzSmhkR2x2YmlrcENpQWdJQ0FnSUNBZ2FXWWdibTkwSUhOb2IzZFRaV3htSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnU1cxSGRXa3VSVzVrS0NrS0lDQWdJQ0FnSUNCbGJtUUtDaUFnSUNBZ0lDQWdTVzFIZFdrdVVIVnphRk4wZVd4bFEyOXNiM0lvU1cxSGRXbERiMnd1VkdWNGRDd3dMamtzTUM0MUxEQXNNU2tLSUNBZ0lDQWdJQ0JwWmlCamFHVmphMU5sYkdaRVpXSjFabVp6S0NrZ2RHaGxiZ29nSUNBZ0lDQWdJQ0FnSUNCSmJVZDFhUzVRZFhOb1UzUjViR1ZEYjJ4dmNpaEpiVWQxYVVOdmJDNVRaWEJoY21GMGIzSXNNQzQ1TERBdU5Td3dMREVwQ2lBZ0lDQWdJQ0FnSUNBZ0lFbHRSM1ZwTGxObGNHRnlZWFJ2Y2xSbGVIUW9KMU5sYkdZZ1JHVmlkV1ptSUZOMFlYUjFjeWNwQ2lBZ0lDQWdJQ0FnSUNBZ0lFbHRSM1ZwTGxCdmNGTjBlV3hsUTI5c2IzSW9LUW9nSUNBZ0lDQWdJQ0FnSUNCcFppQmtaVUpWUnlCdmNpQnRjUzVVVEU4dVRXVXVVRzlwYzI5dVpXUW9LU0IwYUdWdUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCRWNtRjNVM1JoZEhWelNXTnZiaWcwTWl3bmMzQmxiR3duTENkUWIzTnBiMjVsWkNjcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCSmJVZDFhUzVUWVcxbFRHbHVaU2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKYlVkMWFTNVVaWGgwS0NkUWIzTnBiMjVsWkNjcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCSmJVZDFhUzVUWVcxbFRHbHVaU2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JFY21GM1UzUmhkSFZ6U1dOdmJpZzBNaXduYzNCbGJHd25MQ2RRYjNOcGIyNWxaQ2NwQ2lBZ0lDQWdJQ0FnSUNBZ0lHVnVaQW9nSUNBZ0lDQWdJQ0FnSUNCcFppQmtaVUpWUnlCdmNpQnRjUzVVVEU4dVRXVXVSR2x6WldGelpXUW9LU0IwYUdWdUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCRWNtRjNVM1JoZEhWelNXTnZiaWcwTVN3bmMzQmxiR3duTENkRWFYTmxZWE5sWkNjcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCSmJVZDFhUzVUWVcxbFRHbHVaU2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKYlVkMWFTNVVaWGgwS0NkRWFYTmxZWE5sWkNjcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCSmJVZDFhUzVUWVcxbFRHbHVaU2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JFY21GM1UzUmhkSFZ6U1dOdmJpZzBNU3duYzNCbGJHd25MQ2RFYVhObFlYTmxaQ2NwQ2lBZ0lDQWdJQ0FnSUNBZ0lHVnVaQW9nSUNBZ0lDQWdJQ0FnSUNCcFppQmtaVUpWUnlCdmNpQnRjUzVVVEU4dVRXVXVSRzkwZEdWa0tDa2dZVzVrSUc1dmRDQnRjUzVVVEU4dVRXVXVVRzlwYzI5dVpXUW9LU0JoYm1RZ2JtOTBJRzF4TGxSTVR5NU5aUzVFYVhObFlYTmxaQ2dwSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFUnlZWGRUZEdGMGRYTkpZMjl1S0RVNU9EY3NKMmwwWlcwbkxDZEViM1IwWldRbktRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NXMUhkV2t1VTJGdFpVeHBibVVvS1FvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnU1cxSGRXa3VWR1Y0ZENnblJHOTBkR1ZrSnlrS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVsdFIzVnBMbE5oYldWTWFXNWxLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRVJ5WVhkVGRHRjBkWE5KWTI5dUtEVTVPRGNzSjJsMFpXMG5MQ2RFYjNSMFpXUW5LUW9nSUNBZ0lDQWdJQ0FnSUNCbGJtUUtJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ1pHVkNWVWNnYjNJZ2JYRXVWRXhQTGsxbExrTjFjbk5sWkNncElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRVJ5WVhkVGRHRjBkWE5KWTI5dUtEVTNOVGtzSjJsMFpXMG5MQ2REZFhKelpXUW5LUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdTVzFIZFdrdVUyRnRaVXhwYm1Vb0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NXMUhkV2t1VkdWNGRDZ25RM1Z5YzJWa0p5a0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFbHRSM1ZwTGxOaGJXVk1hVzVsS0NrS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVSeVlYZFRkR0YwZFhOSlkyOXVLRFUzTlRrc0oybDBaVzBuTENkRGRYSnpaV1FuS1FvZ0lDQWdJQ0FnSUNBZ0lDQmxibVFLSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdaR1ZDVlVjZ2IzSWdiWEV1VkV4UExrMWxMa052Y25KMWNIUmxaQ2dwSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFUnlZWGRUZEdGMGRYTkpZMjl1S0RVM05UZ3NKMmwwWlcwbkxDZERiM0p5ZFhCMFpXUW5LUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdTVzFIZFdrdVUyRnRaVXhwYm1Vb0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NXMUhkV2t1VkdWNGRDZ25RMjl5Y25Wd2RHVmtKeWtLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExsTmhiV1ZNYVc1bEtDa0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFUnlZWGRUZEdGMGRYTkpZMjl1S0RVM05UZ3NKMmwwWlcwbkxDZERiM0p5ZFhCMFpXUW5LUW9nSUNBZ0lDQWdJQ0FnSUNCbGJtUUtJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ1pHVkNWVWNnYjNJZ2JYRXVWRXhQTGsxbExsSnZiM1JsWkNncElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRVJ5WVhkVGRHRjBkWE5KWTI5dUtERXhOeXduYzNCbGJHd25MQ2RTYjI5MFpXUW5LUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdTVzFIZFdrdVUyRnRaVXhwYm1Vb0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NXMUhkV2t1VkdWNGRDZ25VazlQVkVWRUlTRWhKeWtLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExsTmhiV1ZNYVc1bEtDa0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFUnlZWGRUZEdGMGRYTkpZMjl1S0RFeE55d25jM0JsYkd3bkxDZFNiMjkwWldRbktRb2dJQ0FnSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJQ0FnSUNBZ0lDQWdhV1lnWkdWQ1ZVY2diM0lnYlhFdVZFeFBMazFsTGxOdVlYSmxaQ2dwSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFUnlZWGRUZEdGMGRYTkpZMjl1S0RVc0ozTndaV3hzSnl3blUyNWhjbVZrSnlrS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVsdFIzVnBMbE5oYldWTWFXNWxLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExsUmxlSFFvSjFOT1FWSkZSQ0VoSVNjcElBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NXMUhkV2t1VTJGdFpVeHBibVVvS1FvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUkhKaGQxTjBZWFIxYzBsamIyNG9OU3duYzNCbGJHd25MQ2RUYm1GeVpXUW5LUW9nSUNBZ0lDQWdJQ0FnSUNCbGJtUUtJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ1pHVkNWVWNnYjNJZ2JYRXVWRXhQTGsxbExsTjBkVzV1WldRb0tTQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JFY21GM1UzUmhkSFZ6U1dOdmJpZ3lOU3duYzNCbGJHd25MQ2RUZEhWdWJtVmtKeWtLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExsTmhiV1ZNYVc1bEtDa0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFbHRSM1ZwTGxSbGVIUW9KMU5VVlU1T1JVUW5LUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdTVzFIZFdrdVUyRnRaVXhwYm1Vb0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1JISmhkMU4wWVhSMWMwbGpiMjRvTWpVc0ozTndaV3hzSnl3blUzUjFibTVsWkNjcENpQWdJQ0FnSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdJQ0FnSUNBZ0lDQnBaaUJrWlVKVlJ5QnZjaUJ0Y1M1VVRFOHVUV1V1VFdWNmVtVmtLQ2tnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1JISmhkMU4wWVhSMWMwbGpiMjRvTXpVc0ozTndaV3hzSnl3blRXVjZlbVZrSnlrS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVsdFIzVnBMbE5oYldWTWFXNWxLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExsUmxlSFFvSjAxRldscEZSQ0VoSnlrZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCSmJVZDFhUzVUWVcxbFRHbHVaU2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JFY21GM1UzUmhkSFZ6U1dOdmJpZ3pOU3duYzNCbGJHd25MQ2ROWlhwNlpXUW5LUW9nSUNBZ0lDQWdJQ0FnSUNCbGJtUUtJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ1pHVkNWVWNnYjNJZ2JYRXVWRXhQTGsxbExrTm9ZWEp0WldRb0tTQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JFY21GM1UzUmhkSFZ6U1dOdmJpZ3lOaXduYzNCbGJHd25MQ2REYUdGeWJXVmtKeWtLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRWx0UjNWcExsTmhiV1ZNYVc1bEtDa0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFbHRSM1ZwTGxSbGVIUW9KeUVoSVNCRFNFRlNUVVZFSUNFaElTY3BJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdTVzFIZFdrdVUyRnRaVXhwYm1Vb0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1JISmhkMU4wWVhSMWMwbGpiMjRvTWpZc0ozTndaV3hzSnl3blEyaGhjbTFsWkNjcENpQWdJQ0FnSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdJQ0FnSUNBZ0lDQnBaaUJrWlVKVlJ5QnZjaUJ0Y1M1VVRFOHVUV1V1UW5WbVppZ25VbVZ6ZFhKeVpXTjBhVzl1SUZOcFkydHVaWE56Snlrb0tTQitQU0J1YVd3Z2RHaGxiZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdSSEpoZDFOMFlYUjFjMGxqYjI0b01UVTBMQ2R6Y0dWc2JDY3NKMUpsZWljcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCSmJVZDFhUzVUWVcxbFRHbHVaU2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKYlVkMWFTNVVaWGgwS0NkU1JWb2dVMGxEU3lBNkp5a0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFbHRSM1ZwTGxOaGJXVk1hVzVsS0NrS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVsdFIzVnBMbFJsZUhRb2RHOXpkSEpwYm1jb2JYRXVWRXhQTGsxbExrSjFabVlvSjFKbGMzVnljbVZqZEdsdmJpQlRhV05yYm1WemN5Y3BMa1IxY21GMGFXOXVMbFJwYldWSVRWTW9LU0J2Y2lBbk5Eb3lNQ2NwS1FvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnU1cxSGRXa3VVMkZ0WlV4cGJtVW9LUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdSSEpoZDFOMFlYUjFjMGxqYjI0b01UVTBMQ2R6Y0dWc2JDY3NKMUpsZWljcENpQWdJQ0FnSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnSUNBZ0lFbHRSM1ZwTGxCdmNGTjBlV3hsUTI5c2IzSW9LUW9nSUNBZ0lDQWdJRWx0UjNWcExrVnVaQ2dwQ2lBZ0lDQmxibVFLQ21WdVpBb0tMUzBnUkc4Z2JtOTBJR1ZrYVhRZ2RHaHBjeUJwWmlCamIyNWthWFJwYjI0S2FXWWdibTkwSUhCaFkydGhaMlV1Ykc5aFpHVmtXeWRsZG1WdWRITW5YU0IwYUdWdUNpQWdJQ0J3Y21sdWRDZ25WR2hwY3lCelkzSnBjSFFnYVhNZ2FXNTBaVzVrWldRZ2RHOGdZbVVnYVcxd2IzSjBaV1FnZEc4Z1RIVmhJRVYyWlc1MElFMWhibUZuWlhJZ0tFeEZUU2t1SUZSeWVTQWlYR0V0ZEM5c2RXRWdjblZ1SUd4bGJWeGhMWGdpSnlrS1pXNWtDZ3BzYjJOaGJDQm1kVzVqZEdsdmJpQnZibDlzYjJGa0tDa0tJQ0FnSUMwdElGQmxjbVp2Y20wZ1lXNTVJR2x1YVhScFlXd2djMlYwZFhBZ2FHVnlaU0IzYUdWdUlIUm9aU0JsZG1WdWRDQnBjeUJzYjJGa1pXUXVDaUFnSUNCdGNTNXBiV2QxYVM1cGJtbDBLQ2RFYjNSeklGTjBZWFIxY3ljc0lFZFZTVjlrWldKMVptWnpLUXBsYm1RS0NpMHRMVUJ5WlhSMWNtNGdZbTl2YkdWaGJpQkFVbVYwZFhKdWN5QjBjblZsSUdsbUlIUm9aU0JoWTNScGIyNGdjMmh2ZFd4a0lHWnBjbVVzSUc5MGFHVnlkMmx6WlNCbVlXeHpaUzRLYkc5allXd2dablZ1WTNScGIyNGdZMjl1WkdsMGFXOXVLQ2tLSUNBZ0lISmxkSFZ5YmlCdGNTNVVURTh1VkdGeVoyVjBLQ2tnZmowZ2JtbHNDbVZ1WkFvS0NteHZZMkZzSUdaMWJtTjBhVzl1SUdGamRHbHZiaWdwQ2lBZ0lDQXRMU0JKYlhCc1pXMWxiblFnZEdobElHRmpkR2x2YmlCMGJ5QndaWEptYjNKdElHaGxjbVV1Q2lBZ0lDQnBaaUJqYjNWdWRFMTVSRzkwY3lodGNTNVVURTh1VkdGeVoyVjBMa0oxWm1aRGIzVnVkQ2dwS1NBK0lEQWdkR2hsYmdvZ0lDQWdJQ0FnSUdkMWFVOXdaVzRnUFNCMGNuVmxDaUFnSUNBZ0lDQWdaV3h6WlFvZ0lDQWdJQ0FnSUdkMWFVOXdaVzRnUFNCbVlXeHpaUW9nSUNBZ1pXNWtDaUFnSUNCcFppQmphR1ZqYTFObGJHWkVaV0oxWm1aektDa2dkR2hsYmdvZ0lDQWdJQ0FnSUdkMWFVOXdaVzVUWld4bUlEMGdkSEoxWlFvZ0lDQWdaV3h6WlFvZ0lDQWdJQ0FnSUdkMWFVOXdaVzVUWld4bUlEMGdabUZzYzJVS0lDQWdJR1Z1WkFwbGJtUUtDbkpsZEhWeWJpQjdiMjVzYjJGa1BXOXVYMnh2WVdRc0lHTnZibVJtZFc1alBXTnZibVJwZEdsdmJpd2dZV04wYVc5dVpuVnVZejFoWTNScGIyNTkiLAogWyJ0eXBlIl0gPSAiY29uZGl0aW9ucyIsCiBbImxvYWQiXSA9IHsKICBbImFsd2F5cyJdID0gZmFsc2UsCiAgWyJ6b25lIl0gPSAiIiwKICBbImNsYXNzIl0gPSAiIiwKIH0sCiBbIm5hbWUiXSA9ICJEb3RzIiwKfQ==
1714369270627.png
 
Updated Shei mission/raid lem. Changed a few spells that classes did not have and updated some to 125. Thanks @a_moss_snake for 99% of the work on this and help with editing it. Hopefully some find it useful. I have used it with 18 toona to raid shei and it worked flawlessly. No deaths and all banes handled.

INI:
cmV0dXJuIHsKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsibmFtZSJdID0gIlNoZWlSQUlEIiwKIFsiY2F0ZWdvcnkiXSA9ICJUb0wiLAogWyJjb2RlIl0gPSAiTFMwdFFIUjVjR1VnVFhFS2JHOWpZV3dnYlhFZ1BTQnlaWEYxYVhKbEtDZHRjU2NwQ2kwdElHUnZaWE1nYTJsdVpHRWdZV3h6YnlCM2IzSnJJRzl1SUhKaGFXUXVMaTRLYkc5allXd2djbVZ4ZFdseVpXUmZlbTl1WlNBOUlDQWdld29nSUNBZ0lDQWdJRnNuWVd0b1pYWmhkSGR2WDIxcGMzTnBiMjRuWFNBOUlIUnlkV1VzQ2lBZ0lDQWdJQ0FnV3lkaGEyaGxkbUYwZDI5ZmNtRnBaQ2RkSUQwZ2RISjFaU3dLSUNBZ0lIMEtiRzlqWVd3Z1ltRnVaVjl0YjJKZmJtRnRaU0E5SUNka1lYUnBZWElnZUdrZ2RHRjJkV1ZzYVcwbkNncHNiMk5oYkNCaVlXNWxjeUE5SUhzS0lDQWdJRU5NVWoxN0NpQWdJQ0FnSUh0dVlXMWxQU2RDYkdWemMyVmtJRU5vWVdsdWN5Y3NkSGx3WlQwbllXRW5MQ0J2Y21SbGNqMG5NU2Q5TEFvZ0lDQWdJQ0I3Ym1GdFpUMG5VMmhoWTJ0c1pTY3NkSGx3WlQwbmMzQmxiR3duTENCdmNtUmxjajBuTWlkOUNpQWdJQ0I5TEFvZ0lDQWdMUzBnVlhCa1lYUmxaQ0ExWHpoZk1qUWdabTl5SUd4bGRtVnNJREV5TlNCaVlYSmtJSE53Wld4c2N3b2dJQ0FnUWxKRVBYc0tJQ0FnSUNBZ2UyNWhiV1U5SjFOc2RXMWlaWElnYjJZZ1UzVnFZU2NzZEhsd1pUMG5jM0JsYkd3bkxHOXlaR1Z5UFNjeEozMHNDaUFnSUNBZ0lIdHVZVzFsUFNkWFlYWmxJRzltSUZOMGRYQnZjaWNzZEhsd1pUMG5jM0JsYkd3bkxHOXlaR1Z5UFNjeUozMEtJQ0FnSUgwc0NpQWdJQ0JGVGtNOWV3b2dJQ0FnSUNCN2JtRnRaVDBuUW1WaGJTQnZaaUJUYkhWdFltVnlKeXgwZVhCbFBTZGhZU2NzYjNKa1pYSTlKekVuZlN3S0lDQWdJQ0FnZTI1aGJXVTlKMGR5WldGMFpYSWdSbVYwZEdWeUp5eDBlWEJsUFNkemNHVnNiQ2NzYjNKa1pYSTlKek1uZlN3dExYVndaR0YwWldRZ1puSnZiU0JUYUdGamEyeGxJSE5wYm1ObElHbDBJR1J2WlhNZ2JtOTBJR0Z3Y0d4NUlIUnZJR1Z1WXlBMVh6aGZNalFLSUNBZ0lDQWdlMjVoYldVOUowSmxaM1ZwYkdWeVhDZHpJRUpoYm1semFHMWxiblFuTEhSNWNHVTlKMkZoSnl4dmNtUmxjajBuTWlkOUxBb2dJQ0FnSUNCN2JtRnRaVDBuUTJoaGIzUnBZeUJEYjI1MWJtUnlkVzBuTEhSNWNHVTlKM053Wld4c0p5eHZjbVJsY2owbk5DZDlMUzFoWkdSbFpDQnNaWFpsYkNBeE1qVWdiV1Y2SUhOd1pXeHNJRFZmT0Y4eU5Bb2dJQ0FnZlN3S0lDQWdJRkJCVEQxN0NpQWdJQ0FnSUh0dVlXMWxQU2RUYUdGamEyeGxjeUJ2WmlCVWRXNWhjbVVuTEhSNWNHVTlKMkZoSnl4dmNtUmxjajBuTVNkOUxBb2dJQ0FnSUNCN2JtRnRaVDBuVTJoaFkydHNaU2NzZEhsd1pUMG5jM0JsYkd3bkxHOXlaR1Z5UFNjeUozMEtJQ0FnSUgwc0NpQWdJQ0JUU0UwOWV3b2dJQ0FnSUNCN2JtRnRaVDBuVTJoaFkydHNaU2NzZEhsd1pUMG5jM0JsYkd3bkxHOXlaR1Z5UFNjekozMHNDaUFnSUNBZ0lIdHVZVzFsUFNkVGNHbHlhWFIxWVd3Z1VtVmlkV3RsSnl4MGVYQmxQU2RoWVNjc2IzSmtaWEk5SnpFbmZTd0tJQ0FnSUNBZ2UyNWhiV1U5SjFacGNuVnNaVzUwSUZCaGNtRnNlWE5wY3ljc2RIbHdaVDBuWVdFbkxHOXlaR1Z5UFNjeUozMEtJQ0FnSUgwc0NpQWdJQ0JPUlVNOWV3b2dJQ0FnSUNCN2JtRnRaVDBuVUdWemRHbHNaVzUwSUZCaGNtRnNlWE5wY3ljc2RIbHdaVDBuWVdFbkxHOXlaR1Z5UFNjeEozMHNDaUFnSUNBZ0lIdHVZVzFsUFNkVGFHRmphMnhsSnl4MGVYQmxQU2R6Y0dWc2JDY3NiM0prWlhJOUp6SW5mUW9nSUNBZ2ZTd0tJQ0FnSUVSU1ZUMTdDaUFnSUNBZ0lIdHVZVzFsUFNkUVlYSmhiSGwwYVdNZ1UzQnlZWGtuTEhSNWNHVTlKMkZoSnl4dmNtUmxjajBuTVNkOUxBb2dJQ0FnSUNCN2JtRnRaVDBuVUdGeVlXeDVkR2xqSUZOd2IzSmxjeWNzZEhsd1pUMG5ZV0VuTEc5eVpHVnlQU2N5SjMwc0NpQWdJQ0FnSUh0dVlXMWxQU2RXYVc1bGJHRnphQ0JCYzNOaGRXeDBKeXgwZVhCbFBTZHpjR1ZzYkNjc2IzSmtaWEk5SnpNbmZTd0tJQ0FnSUNBZ0xTMXlaVzF2ZG1Wa0lGTm9ZV05yYkdVZ1lYTWdhWFFnWkc5bGN5QnViM1FnWVhCd2JIa2dkRzhnWkhKMUlEVmZPRjh5TkFvZ0lDQWdmU3dLSUNBZ0lGSk9SejE3Q2lBZ0lDQWdJSHR1WVcxbFBTZEhjbUZ6Y0NCdlppQlRlV3gyWVc0Z1UzQnBjbWwwY3ljc2RIbHdaVDBuWVdFbkxHOXlaR1Z5UFNjeEozMHNDaUFnSUNBZ0lIdHVZVzFsUFNkV2FXNWxiR0Z6YUNCQmMzTmhkV3gwSnl4MGVYQmxQU2R6Y0dWc2JDY3NiM0prWlhJOUp6SW5mU3dLSUNBZ0lDQWdlMjVoYldVOUowSnNkWE4wWlhKaWIyeDBKeXgwZVhCbFBTZHpjR1ZzYkNjc2IzSmtaWEk5SnpNbmZTd0tJQ0FnSUNBZ2UyNWhiV1U5SjBac2RYTjBaWEppYjJ4MEp5eDBlWEJsUFNkemNHVnNiQ2NzYjNKa1pYSTlKelFuZlN3S0lDQWdJQ0FnZTI1aGJXVTlKMFZ1ZG1Wc2IzQnBibWNnVW05dmRITW5MSFI1Y0dVOUozTndaV3hzSnl4dmNtUmxjajBuTlNkOUxBb2dJQ0FnSUNBdExYSmxiVzkyWldRZ2MyaGhZMnRzWlNCaGN5QnBkQ0JrYjJWeklHNXZkQ0JoY0hCc2VTQjBieUJ5Ym1jZ05WODRYekkwQ2lBZ0lDQjlMQW9nSUNBZ1YwbGFQWHNLSUNBZ0lDQWdlMjVoYldVOUowWnliM04wSUZOb1lXTnJiR1Z6Snl4MGVYQmxQU2RoWVNjc2IzSmtaWEk5SnpFbmZTd0tJQ0FnSUNBZ2UyNWhiV1U5SjFOMGNtOXVaeUJTYjI5MEp5eDBlWEJsUFNkaFlTY3NiM0prWlhJOUp6SW5mU3dLSUNBZ0lDQWdlMjVoYldVOUoxSmxjM1JzWlhOeklFbGpaU0JDYkc5amF5Y3NkSGx3WlQwbmMzQmxiR3duTEc5eVpHVnlQU2N6SjMwc0NpQWdJQ0FnSUh0dVlXMWxQU2RKWTJVZ1FteHZZMnNuTEhSNWNHVTlKM053Wld4c0p5eHZjbVJsY2owbk5DZDlDaUFnSUNCOUNpQWdmUXBzYjJOaGJDQjFibUp5WldGcllXSnNaU0E5SUhzS0lDQWdJRnNuUTB4U0oxMGdQU0IwY25WbExBb2dJQ0FnTFMxYkowUlNWU2RkSUQwZ2RISjFaU3dLSUNBZ0lDMHRXeWRUU0UwblhTQTlJSFJ5ZFdVc0NpMHRJR0ZrWVhCMElIUnZJSGx2ZFhJZ2FHVmhiR2x1WnlCelpYUjFjQXA5Q2dwc2IyTmhiQ0JtZFc1amRHbHZiaUJUZEc5d1JGQlRLQ2tLSUNBZ0lHMXhMbU50WkNnbkwzTnhkV1ZzWTJnZ0wyMXhjQ0J2YmljcENpQWdJQ0J0Y1M1a1pXeGhlU2d4TUNrS0lDQWdJR2xtSUcxeExsUk1UeTVOWlM1RGJHRnpjeTVUYUc5eWRFNWhiV1VvS1NBOVBTQW5RbEpFSnlCMGFHVnVDaUFnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZjM0YxWld4amFDQXZkSGRwYzNRZ2IyWm1KeWtLSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2d4TUNrS0lDQWdJQ0FnSUNCdGNTNWpiV1FvSnk5emNYVmxiR05vSUM5emRHOXdjMjl1WnljcENpQWdJQ0FnSUNBZ2JYRXVaR1ZzWVhrb01UQXBDaUFnSUNCbGJtUUtJQ0FnSUcxeExtTnRaQ2duTDNOeGRXVnNZMmdnTDJKdmVISWdjR0YxYzJVbktRb2dJQ0FnYlhFdVpHVnNZWGtvTVRBcENpQWdJQ0FnSUNBZ2FXWWdLRzF4TGxSTVR5NU5aUzVEWVhOMGFXNW5Ma2xFS0NrcElHRnVaQ0FvYm05MElIVnVZbkpsWVd0aFlteGxXMjF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LVjBwSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnYlhFdVkyMWtLQ2N2YzNGMVpXeGphQ0F2YzNSdmNHTmhjM1FuS1FvZ0lDQWdJQ0FnSUNBZ0lDQnRjUzVrWld4aGVTZ3hNREFwQ2lBZ0lDQWdJQ0FnWlc1a0NtVnVaQXBzYjJOaGJDQm1kVzVqZEdsdmJpQlNaWE4xYldWRVVGTW9LUW9nSUNCdGNTNWpiV1FvSnk5emNYVmxiR05vSUM5dGNYQWdiMlptSnlrS0lDQWdiWEV1WkdWc1lYa29NVEFwQ2lBZ0lDMHRhV1lnYlhFdVZFeFBMazFsTGtOc1lYTnpMbE5vYjNKMFRtRnRaU2dwSUQwOUlDZENVa1FuSUhSb1pXNEtJQ0FnSUMwdGJYRXVZMjFrS0NjdmMzRjFaV3hqYUNBdmRIZHBjM1FnYjI0bktRb2dJQ0FnTFMxdGNTNWtaV3hoZVNneE1Da0tJQ0FnTFMxbGJtUUtJQ0FnYlhFdVkyMWtLQ2N2YzNGMVpXeGphQ0F2WW05NGNpQjFibkJoZFhObEp5a0tJQ0FnYlhFdVpHVnNZWGtvTVRBcENtVnVaQXBzYjJOaGJDQm1kVzVqZEdsdmJpQnZibDlzYjJGa0tDa0tJQ0FnSUdsbUlHNXZkQ0J5WlhGMWFYSmxaRjk2YjI1bFcyMXhMbFJNVHk1YWIyNWxMbE5vYjNKMFRtRnRaU2dwWFNBZ2RHaGxiaUJ5WlhSMWNtNGdaVzVrQ2lBZ0lDQnRZWFJvTG5KaGJtUnZiWE5sWldRb2IzTXVkR2x0WlNncEttMXhMbFJNVHk1TlpTNUpSQ2dwS1FvZ0lDQWdiRzlqWVd3Z1ltRnVaU0E5SUdKaGJtVnpXMjF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LVjBLSUNBZ0lHbG1JRzV2ZENCaVlXNWxJSFJvWlc0S0lDQWdJQ0FnSUNCd2NtbHVkQ2duVTJGa2JIa2dTU0IzYVd4c0lHSmxJRzltSUc1dklHaGxiSEFnYUdWeVpTY3BDaUFnSUNBZ0lDQWdjbVYwZFhKdUlHVnVaQW9nSUNBZ1ptOXlJRjhzSUdSaGRHRWdhVzRnYVhCaGFYSnpLR0poYm1VcElHUnZDaUFnSUNBZ0lDQWdhV1lnWkdGMFlTNTBlWEJsSUQwOUlDZHpjR1ZzYkNjZ2RHaGxiZ29nSUNBZ0lDQWdJQ0FnSUNCc2IyTmhiQ0JUY0dWc2JHNWhiV1VnUFNCdGNTNVVURTh1VTNCbGJHd29aR0YwWVM1dVlXMWxLUzVTWVc1clRtRnRaU2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lHbG1JRzF4TGxSTVR5NU5aUzVIWlcwb1UzQmxiR3h1WVcxbEtTZ3BJR0Z1WkNCdGNTNVVURTh1VFdVdVIyVnRLRk53Wld4c2JtRnRaU2tvS1NBK0lEQWdkR2hsYmdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKcGJuUW9KMU53Wld4c0lDY3NJR1JoZEdFdWJtRnRaU3duSUcxbGJXMWxaQ3dnWjI5dlpDQmliM2tuS1FvZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3Y21sdWRDZ25VM0JsYkd3Z0p5d2daR0YwWVM1dVlXMWxMQ2NnYm05MElHMWxiVzFsWkN3Z2VXOTFJSE4xWTJzbktRb2dJQ0FnSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJQ0FnSUNCbGJtUUtJQ0FnSUdWdVpBcGxibVFLYkc5allXd2dablZ1WTNScGIyNGdhWE5DWVc1bFlXSnNaVTF2WWloemNHRjNiaWtLTFMwZ01qQXdJSE5vYjNWc1pDQmlaU0JsYm05MVoyZ0tJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9LSE53WVhkdUxsUjVjR1VvS1NBOVBTQW5UbEJESnlrZ1lXNWtJQ2h6Y0dGM2JpNURiR1ZoYms1aGJXVW9LU0E5UFNCaVlXNWxYMjF2WWw5dVlXMWxLU0JoYm1RZ0tITndZWGR1TGt4cGJtVlBabE5wWjJoMEtDa3BJR0Z1WkNBb2MzQmhkMjR1UkdsemRHRnVZMlVvS1NBOElDQXlNREFwS1FwbGJtUUtMUzB0UUhKbGRIVnliaUJpYjI5c1pXRnVJRUJTWlhSMWNtNXpJSFJ5ZFdVZ2FXWWdkR2hsSUdGamRHbHZiaUJ6YUc5MWJHUWdabWx5WlN3Z2IzUm9aWEozYVhObElHWmhiSE5sTGdwc2IyTmhiQ0JtZFc1amRHbHZiaUJqYjI1a2FYUnBiMjRvS1FvZ0lDQWdiRzlqWVd3Z1ltRnVaVjl0YjJKZmMzQmhkMjRnUFNCdGNTNW5aWFJHYVd4MFpYSmxaRk53WVhkdWN5aHBjMEpoYm1WaFlteGxUVzlpS1FvZ0lDQWdjbVYwZFhKdUlISmxjWFZwY21Wa1gzcHZibVZiYlhFdVZFeFBMbHB2Ym1VdVUyaHZjblJPWVcxbEtDbGRJR0Z1WkNBalltRnVaVjl0YjJKZmMzQmhkMjRnUGlBd0NtVnVaQW9LQ214dlkyRnNJR1oxYm1OMGFXOXVJSFJoY21kbGRGOWlZVzVsWDIxdllpZ3BDaUFnSUNCc2IyTmhiQ0JpWVc1bFgyMXZZbDl6Y0dGM2JpQTlJRzF4TG1kbGRFWnBiSFJsY21Wa1UzQmhkMjV6S0dselFtRnVaV0ZpYkdWTmIySXBDaUFnSUNCc2IyTmhiQ0JpWVc1bFgyMXZZbDlqYjNWdWRDQTlJQ05pWVc1bFgyMXZZbDl6Y0dGM2Jnb2dJQ0FnYVdZZ1ltRnVaVjl0YjJKZlkyOTFiblFnUGlBeElIUm9aVzRLSUNBZ0lDQWdJQ0F0TFhKaGJtUnZiU0JrWldabFlYUmxjeUJrYVhOMFlXNWpaU0J6YjNKMGFXNW5MQ0J0YVdkb2RDQjNaV2xuYUhRZ2FYUUtJQ0FnSUNBZ0lDQXRMWFJoWW14bExuTnZjblFvWW1GdVpWOXRiMkpmYzNCaGQyNHNJR1oxYm1OMGFXOXVLR0VzSUdJcElISmxkSFZ5YmlCaFd5ZEVhWE4wWVc1alpTZGRJRDRnWWxzblJHbHpkR0Z1WTJVblhTQmxibVFnS1FvZ0lDQWdJQ0FnSUVsdVpHVjRJRDBnYldGMGFDNXlZVzVrYjIwb1ltRnVaVjl0YjJKZlkyOTFiblFwQ2lBZ0lDQmxiSE5sSUVsdVpHVjRJRDBnTVFvZ0lDQWdaVzVrQ2lBZ0lDQnBaaUFqWW1GdVpWOXRiMkpmYzNCaGQyNGdQaUF3SUhSb1pXNEtJQ0FnSUNBZ0lDQnRjUzVqYldSbUtDY3ZiWEYwWVhJZ0pIdFRjR0YzYmxzbGMxMTlKeXdnWW1GdVpWOXRiMkpmYzNCaGQyNWJTVzVrWlhoZFd5ZEpSQ2RkS1FvZ0lDQWdJQ0FnSUcxeExtUmxiR0Y1S0RVd0tRb2dJQ0FnSUNBZ0lHMXhMbU50WkNnbkwyWmhZMlVnWm1GemRDY3BDaUFnSUNCbGJtUUtaVzVrQ214dlkyRnNJR1oxYm1OMGFXOXVJR05oYzNRb2MzQmxiR3dwQ2lBZ0lDQnBaaUJ0Y1M1VVRFOHVWR0Z5WjJWMExrTnNaV0Z1VG1GdFpTZ3BJRDA5SUdKaGJtVmZiVzlpWDI1aGJXVWdkR2hsYmdvZ0lDQWdJQ0FnSUcxeExtTnRaR1lvSnk5allYTjBJQ1Z6Snl3Z2MzQmxiR3d1VW1GdWEwNWhiV1VvS1NrS0lDQWdJQ0FnSUNCdGNTNWpiV1JtS0NjdlpHZDBaV3hzSUdGc2JDQjFjMlZrSUNWeklHWnZjaUJpWVc1bElHOXVJRnNsYzEwZ0xTMGdXeVZ6WFNjc0lITndaV3hzTGxKaGJtdE9ZVzFsS0Nrc0lHMXhMbFJNVHk1VVlYSm5aWFF1UTJ4bFlXNU9ZVzFsS0Nrc0lHMXhMbFJNVHk1VVlYSm5aWFF1U1VRb0tTa0tJQ0FnSUNBZ0lDQnRjUzVrWld4aGVTZzFNQ3R6Y0dWc2JDNU5lVU5oYzNSVWFXMWxLQ2twSUNBS0lDQWdJR1Z1WkFwbGJtUUtiRzlqWVd3Z1puVnVZM1JwYjI0Z2RYTmxYMkZoS0dGaEtRb2dJQ0FnYVdZZ2JYRXVWRXhQTGxSaGNtZGxkQzVEYkdWaGJrNWhiV1VvS1NBOVBTQmlZVzVsWDIxdllsOXVZVzFsSUhSb1pXNEtJQ0FnSUNBZ0lDQnRjUzVqYldSbUtDY3ZZV3gwSUdGamRHbDJZWFJsSUNWekp5d2dZV0V1U1VRb0tTa0tJQ0FnSUNBZ0lDQnRjUzVqYldSbUtDY3ZaR2QwWld4c0lHRnNiQ0IxYzJWa0lDVnpJR1p2Y2lCaVlXNWxJRzl1SUZzbGMxMGdMUzBnV3lWelhTY3NJR0ZoTGxOd1pXeHNMazVoYldVb0tTd2diWEV1VkV4UExsUmhjbWRsZEM1RGJHVmhiazVoYldVb0tTd2diWEV1VkV4UExsUmhjbWRsZEM1SlJDZ3BLUW9nSUNBZ0lDQWdJRzF4TG1SbGJHRjVLRFV3SzJGaExsTndaV3hzTGtOaGMzUlVhVzFsS0NrcENpQWdJQ0JsYm1RS1pXNWtDbXh2WTJGc0lHWjFibU4wYVc5dUlHSmhibVZmY21WaFpIa29aR0YwWVNrS0lDQWdJR2xtSUc1dmRDQjFibUp5WldGcllXSnNaVnR0Y1M1VVRFOHVUV1V1UTJ4aGMzTXVVMmh2Y25ST1lXMWxLQ2xkSUhSb1pXNEtJQ0FnSUNBZ0lDQnBaaUJrWVhSaExuUjVjR1VnUFQwZ0ozTndaV3hzSnlCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ0Y1M1VVRFOHVUV1V1VTNCbGJHeFNaV0ZrZVNodGNTNVVURTh1VTNCbGJHd29aR0YwWVM1dVlXMWxLUzVTWVc1clRtRnRaU2dwS1NncENpQWdJQ0FnSUNBZ1pXeHpaV2xtSUdSaGRHRXVkSGx3WlNBOVBTQW5ZV0VuSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzF4TGxSTVR5NU5aUzVCYkhSQlltbHNhWFI1VW1WaFpIa29aR0YwWVM1dVlXMWxLU2dwQ2lBZ0lDQWdJQ0FnWlc1a0NpQWdJQ0JsYkhObENpQWdJQ0FnSUNBZ2FXWWdaR0YwWVM1MGVYQmxJRDA5SUNkemNHVnNiQ2NnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdLRzF4TGxSTVR5NU5aUzVUY0dWc2JGSmxZV1I1S0cxeExsUk1UeTVUY0dWc2JDaGtZWFJoTG01aGJXVXBMbEpoYm10T1lXMWxLQ2twS0NrZ1lXNWtJRzV2ZENCdGNTNVVURTh1VFdVdVEyRnpkR2x1WnlncEtRb2dJQ0FnSUNBZ0lHVnNjMlZwWmlCa1lYUmhMblI1Y0dVZ1BUMGdKMkZoSnlCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFvYlhFdVZFeFBMazFsTGtGc2RFRmlhV3hwZEhsU1pXRmtlU2hrWVhSaExtNWhiV1VwS0NrZ1lXNWtJRzV2ZENCdGNTNVVURTh1VFdVdVEyRnpkR2x1WnlncEtRb2dJQ0FnSUNBZ0lHVnVaQW9nSUNBZ1pXNWtDbVZ1WkFwc2IyTmhiQ0JtZFc1amRHbHZiaUJoWTNScGIyNG9LUW9nSUNBZ2NISnBiblFvSjBGamRHbHZiaUVuS1FvZ0lDQWdiRzlqWVd3Z1ltRnVaU0E5SUdKaGJtVnpXMjF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LVjBLSUNBZ0lDMHRJR2xtSUc1dmRDQmhJR0poYm1VZ1kyeGhjM01zSUhKbGRIVnliZ29nSUNBZ2FXWWdibTkwSUdKaGJtVWdkR2hsYmlCeVpYUjFjbTRnWlc1a0NpQWdJQ0IwWVdKc1pTNXpiM0owS0dKaGJtVXNJR1oxYm1OMGFXOXVLR0VzSUdJcElISmxkSFZ5YmlCaFd5ZHZjbVJsY2lkZElEd2dZbHNuYjNKa1pYSW5YU0JsYm1RZ0tRb2dJQ0FnYkc5allXd2dZbkpsWVd0amIyNWtJRDBnWm1Gc2MyVUtJQ0FnSUhkb2FXeGxJR0p5WldGclkyOXVaQ0E5UFNCbVlXeHpaU0JrYndvZ0lDQWdJQ0FnSUd4dlkyRnNJR0poYm1WZmJXOWlYM053WVhkdUlEMGdiWEV1WjJWMFJtbHNkR1Z5WldSVGNHRjNibk1vYVhOQ1lXNWxZV0pzWlUxdllpa0tJQ0FnSUNBZ0lDQnBaaUFqWW1GdVpWOXRiMkpmYzNCaGQyNGdQaUF3SUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlGOHNJR1JoZEdFZ2FXNGdhWEJoYVhKektHSmhibVVwSUdSdkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQmlZVzVsWDNKbFlXUjVLR1JoZEdFcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCVGRHOXdSRkJUS0NrS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBZWEpuWlhSZlltRnVaVjl0YjJJb0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUdSaGRHRXVkSGx3WlNBOVBTQW5jM0JsYkd3bklIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6ZENodGNTNVVURTh1VTNCbGJHd29aR0YwWVM1dVlXMWxLU2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIVnpaVjloWVNodGNTNVVURTh1VFdVdVFXeDBRV0pwYkdsMGVTaGtZWFJoTG01aGJXVXBLUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGRvYVd4bElHMXhMbFJNVHk1TlpTNURZWE4wYVc1bktDa2daRzhLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WkdWc1lYa29OVEFwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXNWtJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0NpQWdJQ0FnSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdJQ0FnSUdWc2MyVUtJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXdGpiMjVrSUQwZ2RISjFaUW9nSUNBZ0lDQWdJQ0FnSUNCU1pYTjFiV1ZFVUZNb0tRb2dJQ0FnSUNBZ0lHVnVaQW9nSUNBZ0lDQWdJRzF4TG1SdlpYWmxiblJ6S0NrS0lDQWdJQ0FnSUNCdGNTNWtaV3hoZVNnMU1Da0tJQ0FnSUdWdVpBcGxibVFLY21WMGRYSnVJSHR2Ym14dllXUTliMjVmYkc5aFpDd2dZMjl1WkdaMWJtTTlZMjl1WkdsMGFXOXVMQ0JoWTNScGIyNW1kVzVqUFdGamRHbHZibjA9IiwKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAp9


Lua:
---@type Mq
local mq = require('mq')
-- does kinda also work on raid...
local required_zone =   {
        ['akhevatwo_mission'] = true,
        ['akhevatwo_raid'] = true,
    }
local bane_mob_name = 'datiar xi tavuelim'

local banes = {
    CLR={
      {name='Blessed Chains',type='aa', order='1'},
      {name='Shackle',type='spell', order='2'}
    },
    -- Updated 5_8_24 for level 125 bard spells
    BRD={
      {name='Slumber of Suja',type='spell',order='1'},
      {name='Wave of Stupor',type='spell',order='2'}
    },
    ENC={
      {name='Beam of Slumber',type='aa',order='1'},
      {name='Greater Fetter',type='spell',order='3'},--updated from Shackle since it does not apply to enc 5_8_24
      {name='Beguiler\'s Banishment',type='aa',order='2'},
      {name='Chaotic Conundrum',type='spell',order='4'}--added level 125 mez spell 5_8_24
    },
    PAL={
      {name='Shackles of Tunare',type='aa',order='1'},
      {name='Shackle',type='spell',order='2'}
    },
    SHM={
      {name='Shackle',type='spell',order='3'},
      {name='Spiritual Rebuke',type='aa',order='1'},
      {name='Virulent Paralysis',type='aa',order='2'}
    },
    NEC={
      {name='Pestilent Paralysis',type='aa',order='1'},
      {name='Shackle',type='spell',order='2'}
    },
    DRU={
      {name='Paralytic Spray',type='aa',order='1'},
      {name='Paralytic Spores',type='aa',order='2'},
      {name='Vinelash Assault',type='spell',order='3'},
      --removed Shackle as it does not apply to dru 5_8_24
    },
    RNG={
      {name='Grasp of Sylvan Spirits',type='aa',order='1'},
      {name='Vinelash Assault',type='spell',order='2'},
      {name='Blusterbolt',type='spell',order='3'},
      {name='Flusterbolt',type='spell',order='4'},
      {name='Enveloping Roots',type='spell',order='5'},
      --removed shackle as it does not apply to rng 5_8_24
    },
    WIZ={
      {name='Frost Shackles',type='aa',order='1'},
      {name='Strong Root',type='aa',order='2'},
      {name='Restless Ice Block',type='spell',order='3'},
      {name='Ice Block',type='spell',order='4'}
    }
  }
local unbreakable = {
    ['CLR'] = true,
    --['DRU'] = true,
    --['SHM'] = true,
-- adapt to your healing setup
}

local function StopDPS()
    mq.cmd('/squelch /mqp on')
    mq.delay(10)
    if mq.TLO.Me.Class.ShortName() == 'BRD' then
        mq.cmd('/squelch /twist off')
        mq.delay(10)
        mq.cmd('/squelch /stopsong')
        mq.delay(10)
    end
    mq.cmd('/squelch /boxr pause')
    mq.delay(10)
        if (mq.TLO.Me.Casting.ID()) and (not unbreakable[mq.TLO.Me.Class.ShortName()]) then
            mq.cmd('/squelch /stopcast')
            mq.delay(100)
        end
end
local function ResumeDPS()
   mq.cmd('/squelch /mqp off')
   mq.delay(10)
   --if mq.TLO.Me.Class.ShortName() == 'BRD' then
    --mq.cmd('/squelch /twist on')
    --mq.delay(10)
   --end
   mq.cmd('/squelch /boxr unpause')
   mq.delay(10)
end
local function on_load()
    if not required_zone[mq.TLO.Zone.ShortName()]  then return end
    math.randomseed(os.time()*mq.TLO.Me.ID())
    local bane = banes[mq.TLO.Me.Class.ShortName()]
    if not bane then
        print('Sadly I will be of no help here')
        return end
    for _, data in ipairs(bane) do
        if data.type == 'spell' then
            local Spellname = mq.TLO.Spell(data.name).RankName()
            if mq.TLO.Me.Gem(Spellname)() and mq.TLO.Me.Gem(Spellname)() > 0 then
                print('Spell ', data.name,' memmed, good boy')
            else
                print('Spell ', data.name,' not memmed, you suck')
            end
        end
    end
end
local function isBaneableMob(spawn)
-- 200 should be enough
          return ((spawn.Type() == 'NPC') and (spawn.CleanName() == bane_mob_name) and (spawn.LineOfSight()) and (spawn.Distance() <  200))
end
---@return boolean @Returns true if the action should fire, otherwise false.
local function condition()
    local bane_mob_spawn = mq.getFilteredSpawns(isBaneableMob)
    return required_zone[mq.TLO.Zone.ShortName()] and #bane_mob_spawn > 0
end


local function target_bane_mob()
    local bane_mob_spawn = mq.getFilteredSpawns(isBaneableMob)
    local bane_mob_count = #bane_mob_spawn
    if bane_mob_count > 1 then
        --random defeates distance sorting, might weight it
        --table.sort(bane_mob_spawn, function(a, b) return a['Distance'] > b['Distance'] end )
        Index = math.random(bane_mob_count)
    else Index = 1
    end
    if #bane_mob_spawn > 0 then
        mq.cmdf('/mqtar ${Spawn[%s]}', bane_mob_spawn[Index]['ID'])
        mq.delay(50)
        mq.cmd('/face fast')
    end
end
local function cast(spell)
    if mq.TLO.Target.CleanName() == bane_mob_name then
        mq.cmdf('/cast %s', spell.RankName())
        mq.cmdf('/dgtell all used %s for bane on [%s] -- [%s]', spell.RankName(), mq.TLO.Target.CleanName(), mq.TLO.Target.ID())
        mq.delay(50+spell.MyCastTime()) 
    end
end
local function use_aa(aa)
    if mq.TLO.Target.CleanName() == bane_mob_name then
        mq.cmdf('/alt activate %s', aa.ID())
        mq.cmdf('/dgtell all used %s for bane on [%s] -- [%s]', aa.Spell.Name(), mq.TLO.Target.CleanName(), mq.TLO.Target.ID())
        mq.delay(50+aa.Spell.CastTime())
    end
end
local function bane_ready(data)
    if not unbreakable[mq.TLO.Me.Class.ShortName()] then
        if data.type == 'spell' then
            return mq.TLO.Me.SpellReady(mq.TLO.Spell(data.name).RankName())()
        elseif data.type == 'aa' then
            return mq.TLO.Me.AltAbilityReady(data.name)()
        end
    else
        if data.type == 'spell' then
            return (mq.TLO.Me.SpellReady(mq.TLO.Spell(data.name).RankName())() and not mq.TLO.Me.Casting())
        elseif data.type == 'aa' then
            return (mq.TLO.Me.AltAbilityReady(data.name)() and not mq.TLO.Me.Casting())
        end
    end
end
local function action()
    print('Action!')
    local bane = banes[mq.TLO.Me.Class.ShortName()]
    -- if not a bane class, return
    if not bane then return end
    table.sort(bane, function(a, b) return a['order'] < b['order'] end )
    local breakcond = false
    while breakcond == false do
        local bane_mob_spawn = mq.getFilteredSpawns(isBaneableMob)
        if #bane_mob_spawn > 0 then
            for _, data in ipairs(bane) do
                if bane_ready(data) then
                    StopDPS()
                    target_bane_mob()
                    if data.type == 'spell' then
                        cast(mq.TLO.Spell(data.name))
                    else
                        use_aa(mq.TLO.Me.AltAbility(data.name))
                    end
                    while mq.TLO.Me.Casting() do
                        mq.delay(50)
                    end             
                    break
                end
            end
        else
            breakcond = true
            ResumeDPS()
        end
        mq.doevents()
        mq.delay(50)
    end
end
return {onload=on_load, condfunc=condition, actionfunc=action}
 
Taskupdate Lua converted from using eqbcs to dannet to report task steps in your mqchat box for your crew

INI:
cmV0dXJuIHsKIFsic2luZ2xlY29tbWFuZCJdID0gZmFsc2UsCiBbInBhdHRlcm4iXSA9ICIjKiNZb3VyIHRhc2sgJyMxIycgaGFzIGJlZW4gdXBkYXRlZCMqIyIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHNiMk5oYkNCbWRXNWpkR2x2YmlCbGRtVnVkRjlvWVc1a2JHVnlLR3hwYm1Vc0lIUmhjMnRPWVcxbEtRb2dJQ0FnYkc5allXd2dkR0Z6YXlBOUlHMXhMbFJNVHk1VVlYTnJLSFJoYzJ0T1lXMWxLUW9nSUNBZ2JYRXVZMjFrWmlnbkwzUnBiV1ZrSURFd0lDOWtaM1FnWVd4c0lGeGhlVlJoYzJzZ1hHRjBKWE1nVTNSbGNEb2dYR0Z2SlhNZ0xTQmNZWGNsY3lCY1lYQWxjeTRuTENCMFlYTnJUbUZ0WlN3Z2RHRnpheTVUZEdWd0xrbHVaR1Y0S0Nrc0lIUmhjMnN1VTNSbGNDZ3BMQ0IwWVhOckxsTjBaWEF1VTNSaGRIVnpLQ2twQ2lBZ0lDQXRMU0J0Y1M1amJXUm1LQ2N2ZEdsdFpXUWdNVEFnTDJKaklGc3JkeXRkVkdGemF5QmJLM1FyWFNWeklGTjBaWEE2SUZzcmJ5dGRKWE1nTFNCYkszY3JYU1Z6SUZzcmNDdGRKWE11Snl3Z2RHRnphMDVoYldVc0lIUmhjMnN1VTNSbGNDNUpibVJsZUNncExDQjBZWE5yTGxOMFpYQW9LU3dnZEdGemF5NVRkR1Z3TGxOMFlYUjFjeWdwS1FwbGJtUUtDbkpsZEhWeWJpQjdaWFpsYm5SbWRXNWpQV1YyWlc1MFgyaGhibVJzWlhKOSIsCiBbIm5hbWUiXSA9ICJUYXNrX1VwZGF0ZWQiLAogWyJ0eXBlIl0gPSAiZXZlbnRzIiwKIFsibG9hZCJdID0gewogIFsiem9uZSJdID0gIiIsCiAgWyJjbGFzcyJdID0gIiIsCiAgWyJhbHdheXMiXSA9IGZhbHNlLAogfSwKIFsiY2F0ZWdvcnkiXSA9ICIiLAp9

Lua:
local mq = require('mq')

local function event_handler(line, taskName)
    local task = mq.TLO.Task(taskName)
    mq.cmdf('/timed 10 /dgt all \ayTask \at%s Step: \ao%s - \aw%s \ap%s.', taskName, task.Step.Index(), task.Step(), task.Step.Status())
    -- mq.cmdf('/timed 10 /bc [+w+]Task [+t+]%s Step: [+o+]%s - [+w+]%s [+p+]%s.', taskName, task.Step.Index(), task.Step(), task.Step.Status())
end

return {eventfunc=event_handler}
 
This is not tested yet but looking to see if it makes sense. This is to help with the "Avert your Gaze" achievement in the Valley of King Xorbb Event #3: The Return of King Xorbb

This is one of three achievements needed to be able to buy Bifold Focus of the Evil Eye with raid cash. See more here: Chasing the Bifold Focus

This hopeful cuts off attack and stops casting and pauses CWTN and bard running on RGMercs Lua and faces the toon away from King Xorbb to avoid the charm.

Code:
cmV0dXJuIHsKIFsibmFtZSJdID0gIlhvcmJiIEZhY2UgQXdheSIsCiBbImxvYWQiXSA9IHsKICBbImNsYXNzIl0gPSAiIiwKICBbImFsd2F5cyJdID0gZmFsc2UsCiAgWyJ6b25lIl0gPSAiIiwKIH0sCiBbImNhdGVnb3J5Il0gPSAiWG9yYmIgUmFpZCIsCiBbInNpbmdsZWNvbW1hbmQiXSA9IGZhbHNlLAogWyJjb21tYW5kIl0gPSAiIiwKIFsiY29kZSJdID0gImJHOWpZV3dnYlhFZ1BTQnlaWEYxYVhKbEtDZHRjU2NwQ2dwc2IyTmhiQ0JtZFc1amRHbHZiaUJsZG1WdWRGOW9ZVzVrYkdWeUtHeHBibVVzSUc1aGJXVXBDaUFnSUNCcFppQnVZVzFsSUQwOUlHMXhMbFJNVHk1TlpTNURiR1ZoYms1aGJXVW9LU0IwYUdWdUNpQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdlltOTRjaUJ3WVhWelpTY3BDaUFnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZZWFIwWVdOcklHOW1aaWNwQ2lBZ0lDQWdJQ0FnYlhFdVkyMWtLQ2N2Wm1GalpTQmhkMkY1SnlrS0lDQWdJR1Z1WkFwbGJtUUtDbkpsZEhWeWJpQjdaWFpsYm5SbWRXNWpQV1YyWlc1MFgyaGhibVJzWlhKOSIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJwYXR0ZXJuIl0gPSAiIyojS2luZyBYb3JiYiBzaG91dHMsICcjMSMiLAp9

return {eventfunc=event_handler}[/CODE]

This hopeful resumes CWTN and bard running RGMercs Lua after the gaze is averted.

Code:
cmV0dXJuIHsKIFsibmFtZSJdID0gIlhvcmJiIEF2ZXJ0ZWQiLAogWyJsb2FkIl0gPSB7CiAgWyJjbGFzcyJdID0gIiIsCiAgWyJhbHdheXMiXSA9IGZhbHNlLAogIFsiem9uZSJdID0gIiIsCiB9LAogWyJjYXRlZ29yeSJdID0gIlhvcmJiIFJhaWQiLAogWyJzaW5nbGVjb21tYW5kIl0gPSBmYWxzZSwKIFsiY29tbWFuZCJdID0gIiIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHBaaUJ1YjNRZ2NHRmphMkZuWlM1c2IyRmtaV1JiSjJWMlpXNTBjeWRkSUhSb1pXNGdjSEpwYm5Rb0oxUm9hWE1nYzJOeWFYQjBJR2x6SUdsdWRHVnVaR1ZrSUhSdklHSmxJR2x0Y0c5eWRHVmtJSFJ2SUV4MVlTQkZkbVZ1ZENCTllXNWhaMlZ5SUNoTVJVMHBMaUJVY25rZ0lseGhMWFF2YkhWaElISjFiaUJzWlcxY1lTMTRJaWNwSUdWdVpBb0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1pYWmxiblJmYUdGdVpHeGxjaWdwQ2lBZ0lDQnRjUzVqYldRb0p5OWliM2h5SUhWdWNHRjFjMlVuS1FwbGJtUUtDbkpsZEhWeWJpQjdaWFpsYm5SbWRXNWpQV1YyWlc1MFgyaGhibVJzWlhKOSIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJwYXR0ZXJuIl0gPSAiIzEjICBhdmVydGVkIHRoZWlyIGdhemUjKiMiLAp9
 
Last edited:
for running into locked doors when you're picking up collectibles. its not perfect, any suggestions appreciated. Would also be nice to click on doors when you're running into them, still working on that one's condition

Code:
cmV0dXJuIHsKIFsiY29tbWFuZCJdID0gIiIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJsb2FkIl0gPSB7CiAgWyJ6b25lIl0gPSAiIiwKICBbImNsYXNzIl0gPSAiIiwKICBbImFsd2F5cyJdID0gZmFsc2UsCiB9LAogWyJjYXRlZ29yeSJdID0gIkFsbFN0dWZmIiwKIFsic2luZ2xlY29tbWFuZCJdID0gZmFsc2UsCiBbInBhdHRlcm4iXSA9ICJJdCdzIGxvY2tlZCBhbmQgeW91J3JlIG5vdCBob2xkaW5nIHRoZSBrZXkuIiwKIFsiY29kZSJdID0gImJHOWpZV3dnYlhFZ1BTQnlaWEYxYVhKbEtDZHRjU2NwQ2dvdExTQkVieUJ1YjNRZ1pXUnBkQ0IwYUdseklHbG1JR052Ym1ScGRHbHZiZ3BwWmlCdWIzUWdjR0ZqYTJGblpTNXNiMkZrWldSYkoyVjJaVzUwY3lkZElIUm9aVzRLSUNBZ0lIQnlhVzUwS0NkVWFHbHpJSE5qY21sd2RDQnBjeUJwYm5SbGJtUmxaQ0IwYnlCaVpTQnBiWEJ2Y25SbFpDQjBieUJNZFdFZ1JYWmxiblFnVFdGdVlXZGxjaUFvVEVWTktTNGdWSEo1SUNKY1lTMTBMMngxWVNCeWRXNGdiR1Z0WEdFdGVDSW5LUXBsYm1RS0NteHZZMkZzSUdaMWJtTjBhVzl1SUc5dVgyeHZZV1FvS1FvZ0lDQWdMUzBnVUdWeVptOXliU0JoYm5rZ2FXNXBkR2xoYkNCelpYUjFjQ0JvWlhKbElIZG9aVzRnZEdobElHVjJaVzUwSUdseklHeHZZV1JsWkM0S1pXNWtDZ3BzYjJOaGJDQm1kVzVqZEdsdmJpQmxkbVZ1ZEY5b1lXNWtiR1Z5S0NrS0lDQWdJQ0J0Y1M1amJXUW9KeUF2YVhSbGJXNXZkR2xtZVNBaWJHOWphM0JwWTJ0eklpQnNaV1owYlc5MWMyVjFjQ2NwQ2lBZ0lDQWdiWEV1WkdWc1lYa29NalV3S1FvZ0lDQWdJRzF4TG1OdFpDZ25MMnRsZVhCeVpYTnpJSFVuS1FwbGJtUUtDbkpsZEhWeWJpQjdiMjVzYjJGa1BXOXVYMnh2WVdRc0lHVjJaVzUwWm5WdVl6MWxkbVZ1ZEY5b1lXNWtiR1Z5ZlE9PSIsCiBbIm5hbWUiXSA9ICJMb2NrX3BpY2siLAp9


Code:
local mq = require('mq')

-- Do not edit this if condition
if not package.loaded['events'] then
    print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/lua run lem\a-x"')
end

local function on_load()
    -- Perform any initial setup here when the event is loaded.
end

local function event_handler()
     mq.cmd(' /itemnotify "lockpicks" leftmouseup')
     mq.delay(250)
     mq.cmd('/keypress u')
end

return {onload=on_load, eventfunc=event_handler}
 
this one is for running into doors that wont open
Code:
cmV0dXJuIHsKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAogWyJsb2FkIl0gPSB7CiAgWyJ6b25lIl0gPSAiIiwKICBbImNsYXNzIl0gPSAiIiwKICBbImFsd2F5cyJdID0gZmFsc2UsCiB9LAogWyJjYXRlZ29yeSJdID0gIkFsbFN0dWZmIiwKIFsiY29kZSJdID0gImJHOWpZV3dnYlhFZ1BTQnlaWEYxYVhKbEtDZHRjU2NwQ2dvdExTQkVieUJ1YjNRZ1pXUnBkQ0IwYUdseklHbG1JR052Ym1ScGRHbHZiZ3BwWmlCdWIzUWdjR0ZqYTJGblpTNXNiMkZrWldSYkoyVjJaVzUwY3lkZElIUm9aVzRLSUNBZ0lIQnlhVzUwS0NkVWFHbHpJSE5qY21sd2RDQnBjeUJwYm5SbGJtUmxaQ0IwYnlCaVpTQnBiWEJ2Y25SbFpDQjBieUJNZFdFZ1JYWmxiblFnVFdGdVlXZGxjaUFvVEVWTktTNGdWSEo1SUNKY1lTMTBMMngxWVNCeWRXNGdiR1Z0WEdFdGVDSW5LUXBsYm1RS0NteHZZMkZzSUdaMWJtTjBhVzl1SUc5dVgyeHZZV1FvS1FvZ0lDQWdMUzBnVUdWeVptOXliU0JoYm5rZ2FXNXBkR2xoYkNCelpYUjFjQ0JvWlhKbElIZG9aVzRnZEdobElHVjJaVzUwSUdseklHeHZZV1JsWkM0S1pXNWtDZ290TFMxQWNtVjBkWEp1SUdKdmIyeGxZVzRnUUZKbGRIVnlibk1nZEhKMVpTQnBaaUIwYUdVZ1lXTjBhVzl1SUhOb2IzVnNaQ0JtYVhKbExDQnZkR2hsY25kcGMyVWdabUZzYzJVdUNteHZZMkZzSUdaMWJtTjBhVzl1SUdOdmJtUnBkR2x2YmlncENpQWdJQ0F0TFNCSmJYQnNaVzFsYm5RZ2RHaGxJR052Ym1ScGRHbHZiaUIwYnlCbGRtRnNkV0YwWlNCb1pYSmxMZ29nSUNCcFppQnRjUzVVVEU4dVRtRjJhV2RoZEdsdmJpNUJZM1JwZG1Vb0tTQjBhR1Z1Q2lBZ0lDQWdJQ0FnTFMwdGFXWWdiWEV1VkV4UExrMWxMa1IxWTJ0cGJtY29LU0IwYUdWdUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUMwdExXMXhMbU50WkNnbkwzTjBZVzVrSnlrS0lDQWdJQ0FnSUNBdExTMWxibVFLSUNBZ0lDQWdJQ0JwWmlCdGNTNVVURTh1VG1GMkxsWmxiRzlqYVhSNUtDa2dQQ0EyTUNCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUcxeExtTnRaQ2duTDJ4dmIyc2dNQ2NwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbU50WkNnbkwyTnNhV05ySUd4bFpuUWdZMlZ1ZEdWeUp5a0tJQ0FnSUNBZ0lDQmxibVFLSUNBZ0lDQmxibVFLWlc1a0NncHNiMk5oYkNCbWRXNWpkR2x2YmlCaFkzUnBiMjRvS1FvZ0lDQWdMUzBnU1cxd2JHVnRaVzUwSUhSb1pTQmhZM1JwYjI0Z2RHOGdjR1Z5Wm05eWJTQm9aWEpsTGdwbGJtUUtDbkpsZEhWeWJpQjdiMjVzYjJGa1BXOXVYMnh2WVdRc0lHTnZibVJtZFc1alBXTnZibVJwZEdsdmJpd2dZV04wYVc5dVpuVnVZejFoWTNScGIyNTkiLAogWyJuYW1lIl0gPSAic3R1Y2tfY2xpY2tfb25fZG9vciIsCn0=

Code:
local mq = require('mq')

-- Do not edit this if condition
if not package.loaded['events'] then
    print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/lua run lem\a-x"')
end

local function on_load()
    -- Perform any initial setup here when the event is loaded.
end

---@return boolean @Returns true if the action should fire, otherwise false.
local function condition()
    -- Implement the condition to evaluate here.
   if mq.TLO.Navigation.Active() then
        ---if mq.TLO.Me.Ducking() then
               ---mq.cmd('/stand')
        ---end
        if mq.TLO.Nav.Velocity() < 60 then
            mq.cmd('/look 0')
            mq.cmd('/click left center')
        end
     end
end

local function action()
    -- Implement the action to perform here.
end

return {onload=on_load, condfunc=condition, actionfunc=action}
 
this one is for running into doors that wont open
Code:
cmV0dXJuIHsKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAogWyJsb2FkIl0gPSB7CiAgWyJ6b25lIl0gPSAiIiwKICBbImNsYXNzIl0gPSAiIiwKICBbImFsd2F5cyJdID0gZmFsc2UsCiB9LAogWyJjYXRlZ29yeSJdID0gIkFsbFN0dWZmIiwKIFsiY29kZSJdID0gImJHOWpZV3dnYlhFZ1BTQnlaWEYxYVhKbEtDZHRjU2NwQ2dvdExTQkVieUJ1YjNRZ1pXUnBkQ0IwYUdseklHbG1JR052Ym1ScGRHbHZiZ3BwWmlCdWIzUWdjR0ZqYTJGblpTNXNiMkZrWldSYkoyVjJaVzUwY3lkZElIUm9aVzRLSUNBZ0lIQnlhVzUwS0NkVWFHbHpJSE5qY21sd2RDQnBjeUJwYm5SbGJtUmxaQ0IwYnlCaVpTQnBiWEJ2Y25SbFpDQjBieUJNZFdFZ1JYWmxiblFnVFdGdVlXZGxjaUFvVEVWTktTNGdWSEo1SUNKY1lTMTBMMngxWVNCeWRXNGdiR1Z0WEdFdGVDSW5LUXBsYm1RS0NteHZZMkZzSUdaMWJtTjBhVzl1SUc5dVgyeHZZV1FvS1FvZ0lDQWdMUzBnVUdWeVptOXliU0JoYm5rZ2FXNXBkR2xoYkNCelpYUjFjQ0JvWlhKbElIZG9aVzRnZEdobElHVjJaVzUwSUdseklHeHZZV1JsWkM0S1pXNWtDZ290TFMxQWNtVjBkWEp1SUdKdmIyeGxZVzRnUUZKbGRIVnlibk1nZEhKMVpTQnBaaUIwYUdVZ1lXTjBhVzl1SUhOb2IzVnNaQ0JtYVhKbExDQnZkR2hsY25kcGMyVWdabUZzYzJVdUNteHZZMkZzSUdaMWJtTjBhVzl1SUdOdmJtUnBkR2x2YmlncENpQWdJQ0F0TFNCSmJYQnNaVzFsYm5RZ2RHaGxJR052Ym1ScGRHbHZiaUIwYnlCbGRtRnNkV0YwWlNCb1pYSmxMZ29nSUNCcFppQnRjUzVVVEU4dVRtRjJhV2RoZEdsdmJpNUJZM1JwZG1Vb0tTQjBhR1Z1Q2lBZ0lDQWdJQ0FnTFMwdGFXWWdiWEV1VkV4UExrMWxMa1IxWTJ0cGJtY29LU0IwYUdWdUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUMwdExXMXhMbU50WkNnbkwzTjBZVzVrSnlrS0lDQWdJQ0FnSUNBdExTMWxibVFLSUNBZ0lDQWdJQ0JwWmlCdGNTNVVURTh1VG1GMkxsWmxiRzlqYVhSNUtDa2dQQ0EyTUNCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUcxeExtTnRaQ2duTDJ4dmIyc2dNQ2NwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbU50WkNnbkwyTnNhV05ySUd4bFpuUWdZMlZ1ZEdWeUp5a0tJQ0FnSUNBZ0lDQmxibVFLSUNBZ0lDQmxibVFLWlc1a0NncHNiMk5oYkNCbWRXNWpkR2x2YmlCaFkzUnBiMjRvS1FvZ0lDQWdMUzBnU1cxd2JHVnRaVzUwSUhSb1pTQmhZM1JwYjI0Z2RHOGdjR1Z5Wm05eWJTQm9aWEpsTGdwbGJtUUtDbkpsZEhWeWJpQjdiMjVzYjJGa1BXOXVYMnh2WVdRc0lHTnZibVJtZFc1alBXTnZibVJwZEdsdmJpd2dZV04wYVc5dVpuVnVZejFoWTNScGIyNTkiLAogWyJuYW1lIl0gPSAic3R1Y2tfY2xpY2tfb25fZG9vciIsCn0=

Code:
local mq = require('mq')

-- Do not edit this if condition
if not package.loaded['events'] then
    print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/lua run lem\a-x"')
end

local function on_load()
    -- Perform any initial setup here when the event is loaded.
end

---@return boolean @Returns true if the action should fire, otherwise false.
local function condition()
    -- Implement the condition to evaluate here.
   if mq.TLO.Navigation.Active() then
        ---if mq.TLO.Me.Ducking() then
               ---mq.cmd('/stand')
        ---end
        if mq.TLO.Nav.Velocity() < 60 then
            mq.cmd('/look 0')
            mq.cmd('/click left center')
        end
     end
end

local function action()
    -- Implement the action to perform here.
end

return {onload=on_load, condfunc=condition, actionfunc=action}
without run speed you are likely to have a velocity less than 60. so this just appears to spam look - and click left center if you're slow.
 
1723930069836.png

Got this when right clicking and selecting Reload Source. Repeatable.

Seems I put this under the wrong discussion and it was already noted in June....
 
Last edited:
Code:
-- Lua Script for MacroQuest2 to use /alt act 481 when debuff runs out

-- Define the ability ID and the debuff name
local altAbilityID = 199
local debuffName = "Boastfull Bellow"  -- Replace with the actual name of the debuff

-- Function to check if the target has the debuff
function hasDebuff(target, debuffName)
    local debuffs = mq.TLO.Target.Buffs()  -- Get the list of buffs/debuffs on the target
    for i = 1, debuffs:Size() do
        if debuffs:Item(i).Name() == debuffName then
            return true
        end
    end
    return false
end

-- Function to execute the alt ability command
function useAltAbility(199)
    mq.cmd("/alt act " .. 199)
end

-- Main script logic
while true do
    local target = mq.TLO.Target.Name()  -- Get the name of the current target
    
    if target then
        if not hasDebuff(target, debuffName) then
            useAltAbility(199)
        end
    else
        mq.cmd("/target")  -- Make sure we are targeting something
    end
    
    mq.delay(1000)  -- Delay in milliseconds before checking again
end



Hey I made this code first code. This code is for the bard bellow AA. What it does is cast bellow on attacking target and when it seas it ran out will cast it again. If anyone that has experience in Lua can plz scroll at the code and tell me if I need any fixing to do or improvement. Thank you all.
 
want to point out that MacroQuest2 does not support Lua, so that would be really wierd to write a script for MacroQuest2.

This is just MacroQuest :)
 
Code:
-- Lua Script for MacroQuest2 to use /alt act 481 when debuff runs out

-- Define the ability ID and the debuff name
local altAbilityID = 199
local debuffName = "Boastfull Bellow"  -- Replace with the actual name of the debuff

-- Function to check if the target has the debuff
function hasDebuff(target, debuffName)
    local debuffs = mq.TLO.Target.Buffs()  -- Get the list of buffs/debuffs on the target
    for i = 1, debuffs:Size() do
        if debuffs:Item(i).Name() == debuffName then
            return true
        end
    end
    return false
end

-- Function to execute the alt ability command
function useAltAbility(199)
    mq.cmd("/alt act " .. 199)
end

-- Main script logic
while true do
    local target = mq.TLO.Target.Name()  -- Get the name of the current target
   
    if target then
        if not hasDebuff(target, debuffName) then
            useAltAbility(199)
        end
    else
        mq.cmd("/target")  -- Make sure we are targeting something
    end
   
    mq.delay(1000)  -- Delay in milliseconds before checking again
end



Hey I made this code first code. This code is for the bard bellow AA. What it does is cast bellow on attacking target and when it seas it ran out will cast it again. If anyone that has experience in Lua can plz scroll at the code and tell me if I need any fixing to do or improvement. Thank you all.
seems like it should just be in its own thread or resource as it isn't a LEM event script.
 
Code:
-- Lua Script for MacroQuest2 to use /alt act 481 when debuff runs out

-- Define the ability ID and the debuff name
local altAbilityID = 199
local debuffName = "Boastfull Bellow"  -- Replace with the actual name of the debuff

-- Function to check if the target has the debuff
function hasDebuff(target, debuffName)
    local debuffs = mq.TLO.Target.Buffs()  -- Get the list of buffs/debuffs on the target
    for i = 1, debuffs:Size() do
        if debuffs:Item(i).Name() == debuffName then
            return true
        end
    end
    return false
end

-- Function to execute the alt ability command
function useAltAbility(199)
    mq.cmd("/alt act " .. 199)
end

-- Main script logic
while true do
    local target = mq.TLO.Target.Name()  -- Get the name of the current target
  
    if target then
        if not hasDebuff(target, debuffName) then
            useAltAbility(199)
        end
    else
        mq.cmd("/target")  -- Make sure we are targeting something
    end
  
    mq.delay(1000)  -- Delay in milliseconds before checking again
end



Hey I made this code first code. This code is for the bard bellow AA. What it does is cast bellow on attacking target and when it seas it ran out will cast it again. If anyone that has experience in Lua can plz scroll at the code and tell me if I need any fixing to do or improvement. Thank you all.
you can do this with the DAmod condition in KA now. set it to hit the button every so often

DPS17=Boastful Bellow|99|DAMod=24

There's an issue with debuffs and buffs where it will recognize it has "worn off" up to 5.999999 seconds before it actually wears off... if you just mash the button, sometimes it will prevent it from fulminating.
 
Terror of Luclin - Doomshade Raid Emotes

These have worked flawlessly for macro and CWTN users running the Doomshade events in ToL in mixed raiding company of real people, boxes, and a variety of macros and CWTN statuses. I don't know how to use CWTN and admit there may be better ways of handling the 'run away' emotes, but it's been working. If a toon gets a subsequent emote (pink aura then green aura or vice versa) there is no event handling embedded, but the toons seem to have waited on the final emote to come back but this has limited testing.

Also, this assumes your raid is tanking doomshade up top on the south side of the circle. Boxes run to predetermined locations for pink or rgeen emotes to avoid overlap. Priests never pause so they can be within heal radius of the raid and continue healing, everybody else pauses in one shape or form.

[edit]
One additional item. I did not handle error checking if we have a macro running or if cwtn is running (see lack of cwtn awareness), so it'll try to unpause your class cwtn and unpause your macro, even if they arent running or loaded. Throws a little console spam on boxes. There's also no handling for tanks if they have to run away.

[edit2]
These also do not have handling to avoid the stupid blue death aura on return, the box just lets Nav take the wheel and GFL. This also does not support a group that is away killing the gathering shades. But hey, it's a start for someone smarter, right?


[CODE lang="ini" title="Doomshade 'Green' Emote"]cmV0dXJuIHsKIFsiY29tbWFuZCJdID0gIiIsCiBbImNhdGVnb3J5Il0gPSAiRG9vbXNoYWRlIiwKIFsidHlwZSJdID0gImV2ZW50cyIsCiBbInBhdHRlcm4iXSA9ICIjKiN0aGUgZG9vbXNoYWRlIGN1cnNlcyAjMSMjKiMiLAogWyJjb2RlIl0gPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ290TFNCRWJ5QnViM1FnWldScGRDQjBhR2x6SUdsbUlHTnZibVJwZEdsdmJncHBaaUJ1YjNRZ2NHRmphMkZuWlM1c2IyRmtaV1JiSjJWMlpXNTBjeWRkSUhSb1pXNEtJQ0FnSUhCeWFXNTBLQ2RVYUdseklITmpjbWx3ZENCcGN5QnBiblJsYm1SbFpDQjBieUJpWlNCcGJYQnZjblJsWkNCMGJ5Qk1kV0VnUlhabGJuUWdUV0Z1WVdkbGNpQW9URVZOS1M0Z1ZISjVJQ0pjWVMxMEwyeDFZU0J5ZFc0Z2JHVnRYR0V0ZUNJbktRcGxibVFLQ214dlkyRnNJSEpsY1hWcGNtVmtYM3B2Ym1VZ1BTQW5kVzFpY21Gc2RIZHZYM0poYVdRbkNteHZZMkZzSUcxNVgyTnNZWE56SUQwZ2JYRXVWRXhQTGsxbExrTnNZWE56TGxOb2IzSjBUbUZ0WlNncENteHZZMkZzSUcxNVgyNWhiV1VnUFNCdGNTNVVURTh1VFdVdVEyeGxZVzVPWVcxbEtDa0tDZ3BzYjJOaGJDQm5jbWxrWW1GdWF5QTlJSHNLSUNBZ0lGc3hYU0E5SUh0NElEMGdNekF3TENCNUlEMGdMVEUwTjMwc0NpQWdJQ0JiTWwwZ1BTQjdlQ0E5SURJM09Dd2dlU0E5SUMweE9YMHNDaUFnSUNCYk0xMGdQU0I3ZUNBOUlERTNPQ3dnZVNBOUlEWTNmU3dLSUNBZ0lGczBYU0E5SUh0NElEMGdMVFV4TENCNUlEMGdNVFI5TEFvZ0lDQWdXelZkSUQwZ2UzZ2dQU0F0T1RRc0lIa2dQU0F0TVRFeGZRcDlDZ3BzYjJOaGJDQmZZMnhoYzNNZ1BTQjdDaUFnSUNCYkowTk1VaWRkSUQwZ2RISjFaU3dLSUNBZ0lGc25SRkpWSjEwZ1BTQjBjblZsTEFvZ0lDQWdXeWRUU0UwblhTQTlJSFJ5ZFdVc0NuMEtDbXh2WTJGc0lHWjFibU4wYVc5dUlHVjJaVzUwWDJoaGJtUnNaWElvYkdsdVpTa0tJQ0FnSUNBZ0lDQXRMU0JqYUdWamF5QjBieUJ6WldVZ2FXWWdkMlVuY21VZ2FXNGdkR2hsSUhKcFoyaDBJSHB2Ym1VS0lDQWdJQ0FnSUNCcFppQnRjUzVVVEU4dVdtOXVaUzVUYUc5eWRFNWhiV1VvS1NCK1BTQnlaWEYxYVhKbFpGOTZiMjVsSUhSb1pXNGdjbVYwZFhKdUlHVnVaQW9LSUNBZ0lDQWdJQ0F0TFNCa2RXMXdhVzVuSUhSb1pTQmxiVzkwWlNCMGJ5QmhJSE4wY21sdVp3b2dJQ0FnSUNBZ0lHeHZZMkZzSUc1aGJXVnpYM0JoY25RZ1BTQnNhVzVsT20xaGRHTm9LQ0pqZFhKelpYTWdLQzRyS1NJcENpQWdJQ0FnSUNBZ2JHOWpZV3dnY0c5emFYUnBiMjRnUFNCdWFXd0tDaUFnSUNBZ0lDQWdhV1lnYm1GdFpYTmZjR0Z5ZENCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUMwdElITjBjbWx3Y0dsdVp5QndkVzVqZEhWaGRHbHZiZ29nSUNBZ0lDQWdJQ0FnSUNCdVlXMWxjMTl3WVhKMElEMGdibUZ0WlhOZmNHRnlkRHBuYzNWaUtDSWxMaUlzSUNJaUtRb2dJQ0FnSUNBZ0lDQWdJQ0J1WVcxbGMxOXdZWEowSUQwZ2JtRnRaWE5mY0dGeWREcG5jM1ZpS0NJbEp5SXNJQ0lpS1FvZ0lDQWdJQ0FnSUNBZ0lDQnVZVzFsYzE5d1lYSjBJRDBnYm1GdFpYTmZjR0Z5ZERwbmMzVmlLQ0lnWVc1a0lDSXNJQ0lzSUNJcENpQWdJQ0FnSUNBZ0lDQWdJQzB0SUdOdmJXMWhJR1JsYkdsdVpXRjBhVzl1SUdGdVpDQmpiR1ZoYm5Wd0NpQWdJQ0FnSUNBZ0lDQWdJR3h2WTJGc0lHNWhiV1Z6SUQwZ2UzMEtJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlHNWhiV1VnYVc0Z2JtRnRaWE5mY0dGeWREcG5iV0YwWTJnb0lpaGJYaXhkS3lraUtTQmtid29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiRzlqWVd3Z2RISnBiVzFsWkY5dVlXMWxJRDBnYm1GdFpUcHRZWFJqYUNnaVhpVnpLaWd1TFNrbGN5b2tJaWtLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJoWW14bExtbHVjMlZ5ZENodVlXMWxjeXdnZEhKcGJXMWxaRjl1WVcxbEtRb2dJQ0FnSUNBZ0lDQWdJQ0JsYm1RS0NpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lCcExDQnVZVzFsSUdsdUlHbHdZV2x5Y3lodVlXMWxjeWtnWkc4S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlHNWhiV1VnUFQwZ2JYbGZibUZ0WlNCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0c5emFYUnBiMjRnUFNCcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzZ0lDMHRJRVZoY214NUlHVjRhWFFnYVdZZ2QyVWdabTkxYm1RZ2IzVnljMlZzWmdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0Nnb2dJQ0FnSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUMwdElFbDBJRUZwYmlkMElFMTVJRlJwYldVS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlHNXZkQ0J3YjNOcGRHbHZiaUIwYUdWdUlISmxkSFZ5YmlCbGJtUUtJQ0FnSUNBZ0lDQmxibVFLQ2lBZ0lDQWdJQ0FnTFMwZ2NHRjFjMmx1WnlCbGRtVnllV0p2WkhrZ2JtOTBJR0VnY0hKcFpYTjBDaUFnSUNBZ0lDQWdhV1lnYm05MElGOWpiR0Z6YzF0dGVWOWpiR0Z6YzEwZ2RHaGxiaUFnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUm1LQ2N2SlhNZ2JXOWtaU0F3Snl3Z2JYbGZZMnhoYzNNcENpQWdJQ0FnSUNBZ0lDQWdJRzF4TG1OdFpDZ25MMjF4Y0NCdmJpY3BDaUFnSUNBZ0lDQWdaV3h6WlFvZ0lDQWdJQ0FnSUNBZ0lDQnRjUzVqYldSbUtDY3ZKWE1nYlc5a1pTQjJiM0p3WVd3bkxDQnRlVjlqYkdGemN5a0tJQ0FnSUNBZ0lHVnVaQW9LSUNBZ0lDQWdJQ0F0TFNCemRHOXdJR1p2Ykd4dmQybHVaeUJ3Wlc5d2JHVWdlVzkxSUdOeVpXVndaWElLSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl0ZFd4MGFXeHBibVVnT3lBdllXWnZiR3h2ZHlCdlptWTdJQzl6ZEdsamF5QnZabVk3SUM5dVlYWWdjM1J2Y0NjcENpQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdmRHRnlaMlYwSUdOc1pXRnlKeWtLQ2lBZ0lDQWdJQ0FnTFMwZ1ozUm1id29nSUNBZ0lDQWdJR2xtSUhCdmMybDBhVzl1SUQ0OUlERWdZVzVrSUhCdmMybDBhVzl1SUR3OUlEVWdkR2hsYmdvZ0lDQWdJQ0FnSUNBZ0lDQnNiMk5oYkNCbmNtbGtJRDBnWjNKcFpHSmhibXRiY0c5emFYUnBiMjVkQ2lBZ0lDQWdJQ0FnSUNBZ0lHbG1JR2R5YVdRZ2RHaGxiZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WTIxa1ppZ25MMlJuZENCaGJHd2dKWE1nTFNCSGNtVmxiaUJGYlc5MFpTQXRJRXhsWVhacGJtY2dkR2hsSUhKaGFXUW5MQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdGNTNWpiV1JtS0NjdmJtRjJJR3h2WTNsNElDVmtJQ1ZrSnl3Z1ozSnBaQzU1TENCbmNtbGtMbmdwQ2lBZ0lDQWdJQ0FnSUNBZ0lHVnVaQW9nSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdMUzBnYUdGdVp5QnZkWFFnYmlCamFHbHNiQ0IzYUdsc1pTQjNaU0J1WVhZS0lDQWdJSGRvYVd4bElHMXhMbFJNVHk1T1lYWnBaMkYwYVc5dUxrRmpkR2wyWlNncElHUnZDaUFnSUNBZ0lDQWdiWEV1WkdWc1lYa29NVEFwQ2lBZ0lDQmxibVFLSUNBZ0lDMHRJR0p2Ym5WeklHUmxiR0Y1SUdsdUlHTmhjMlVnZEdobElHUmxZblZtWmlCcGMyNTBJRzl1SUhWekNpQWdJQ0J0Y1M1a1pXeGhlU2duTW5NbktRb2dJQ0FnTFMwZ2MzUmhlU0JoZDJGNUlIVnVkR2xzSUhkbElIUnlhV2RuWlhJZ1ltOXZiU0J6YUdGa1pRb2dJQ0FnZDJocGJHVWdiWEV1VkV4UExrMWxMbE52Ym1jb0oxTm9ZV1JsWENkeklFUnZiMjBuS1M1SlJDZ3BJSDQ5SUc1cGJDQmtid29nSUNBZ0lDQWdJRzF4TG1SbGJHRjVLREV3S1FvZ0lDQWdaVzVrQ2dvZ0lDQWdMUzBnY25WdUlHSmhZMnNnZEc4Z2RHaGxJSEpoYVdRS0lDQWdJQzB0SUhSb2FYTWdhWE1nZEdobElGTnZkWFJvSUhOcFpHVWdiMllnZEdobElHUnZiMjF6YUdGa1pTQmphWEpqYkdVS0lDQWdJRzF4TG1OdFpHWW9KeTlrWjNRZ1lXeHNJQ1Z6SUdseklHRjBkR1Z0Y0hScGJtY2dkRzhnY21WMGRYSnVJSFJ2SUhSb1pTQnlZV2xrSnl3Z2JYRXVWRXhQTGsxbExrTnNaV0Z1VG1GdFpTZ3BLUW9nSUNBZ2JYRXVZMjFrS0NjdmJtRjJJR3h2WTNsNElDMHhOalVnTVRJNUp5a0tJQ0FnSUhkb2FXeGxJRzF4TGxSTVR5NU9ZWFpwWjJGMGFXOXVMa0ZqZEdsMlpTZ3BJR1J2Q2lBZ0lDQWdJQ0FnYlhFdVpHVnNZWGtvTVRBcENpQWdJQ0JsYm1RS0lDQWdJQ0FnTFMwZ2MyVjBJR04zZEc1eklHSmhZMnNnZEc4Z1lYTnphWE4wQ2lBZ0lDQnRjUzVqYldSbUtDY3ZKWE1nYlc5a1pTQXhKeXdnYlhsZlkyeGhjM01wQ2lBZ0lDQXRMU0IxYm5CaGRYTmxJRzFoWTNKdkNpQWdJQ0J0Y1M1amJXUW9KeTl0Y1hBZ2IyWm1KeWtLQ2dwbGJtUUtDbkpsZEhWeWJpQjdaWFpsYm5SbWRXNWpQV1YyWlc1MFgyaGhibVJzWlhKOSIsCiBbIm5hbWUiXSA9ICJkb29tc2hhZGVHcmVlbiIsCiBbImxvYWQiXSA9IHsKICBbImFsd2F5cyJdID0gZmFsc2UsCiAgWyJ6b25lIl0gPSAiIiwKICBbImNsYXNzIl0gPSAiIiwKIH0sCiBbInNpbmdsZWNvbW1hbmQiXSA9IGZhbHNlLAp9[/CODE]

Lua:
local mq = require('mq')

-- Do not edit this if condition
if not package.loaded['events'] then
    print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/lua run lem\a-x"')
end

local required_zone = 'umbraltwo_raid'
local my_class = mq.TLO.Me.Class.ShortName()
local my_name = mq.TLO.Me.CleanName()


local gridbank = {
    [1] = {x = 300, y = -147},
    [2] = {x = 278, y = -19},
    [3] = {x = 178, y = 67},
    [4] = {x = -51, y = 14},
    [5] = {x = -94, y = -111}
}

local _class = {
    ['CLR'] = true,
    ['DRU'] = true,
    ['SHM'] = true,
}

local function event_handler(line)
        -- check to see if we're in the right zone
        if mq.TLO.Zone.ShortName() ~= required_zone then return end

        -- dumping the emote to a string
        local names_part = line:match("curses (.+)")
        local position = nil

        if names_part then
            -- stripping punctuation
            names_part = names_part:gsub("%.", "")
            names_part = names_part:gsub("%'", "")
            names_part = names_part:gsub(" and ", ", ")
            -- comma delineation and cleanup
            local names = {}
            for name in names_part:gmatch("([^,]+)") do
                local trimmed_name = name:match("^%s*(.-)%s*$")
                table.insert(names, trimmed_name)
            end

            for i, name in ipairs(names) do
                if name == my_name then
                    position = i
                    break  -- Early exit if we found ourself
                end

            end
                -- It Ain't My Time
                if not position then return end
        end

        -- pausing everybody not a priest
        if not _class[my_class] then   
            mq.cmdf('/%s mode 0', my_class)
            mq.cmd('/mqp on')
        else
            mq.cmdf('/%s mode vorpal', my_class)
       end

        -- stop following people you creeper
        mq.cmd('/multiline ; /afollow off; /stick off; /nav stop')
        mq.cmd('/target clear')

        -- gtfo
        if position >= 1 and position <= 5 then
            local grid = gridbank[position]
            if grid then
                mq.cmdf('/dgt all %s - Green Emote - Leaving the raid', mq.TLO.Me.CleanName())
                mq.cmdf('/nav locyx %d %d', grid.y, grid.x)
            end
        end
    -- hang out n chill while we nav
    while mq.TLO.Navigation.Active() do
        mq.delay(10)
    end
    -- bonus delay in case the debuff isnt on us
    mq.delay('2s')
    -- stay away until we trigger boom shade
    while mq.TLO.Me.Song('Shade\'s Doom').ID() ~= nil do
        mq.delay(10)
    end

    -- run back to the raid
    -- this is the South side of the doomshade circle
    mq.cmdf('/dgt all %s is attempting to return to the raid', mq.TLO.Me.CleanName())
    mq.cmd('/nav locyx -165 129')
    while mq.TLO.Navigation.Active() do
        mq.delay(10)
    end
      -- set cwtns back to assist
    mq.cmdf('/%s mode 1', my_class)
    -- unpause macro
    mq.cmd('/mqp off')
end

return {eventfunc=event_handler}

Doomshade 'Pink' Emote:
[CODE lang="ini" title="Doomshade 'Pink' Emote"]cmV0dXJuIHsKIFsiY29tbWFuZCJdID0gIiIsCiBbImNhdGVnb3J5Il0gPSAiRG9vbXNoYWRlIiwKIFsidHlwZSJdID0gImV2ZW50cyIsCiBbInBhdHRlcm4iXSA9ICIjKiNzZW5kcyBzaGFkb3dzIGF0ICMxIywgIzIjLCBhbmQgIzMjLiMqIyIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHBaaUJ1YjNRZ2NHRmphMkZuWlM1c2IyRmtaV1JiSjJWMlpXNTBjeWRkSUhSb1pXNGdjSEpwYm5Rb0oxUm9hWE1nYzJOeWFYQjBJR2x6SUdsdWRHVnVaR1ZrSUhSdklHSmxJR2x0Y0c5eWRHVmtJSFJ2SUV4MVlTQkZkbVZ1ZENCTllXNWhaMlZ5SUNoTVJVMHBMaUJVY25rZ0lseGhMWFF2YkhWaElISjFiaUJzWlcxY1lTMTRJaWNwSUdWdVpBb0tMUzBnWTI5dGNHRnlaU0I2YjI1bElHNWhiV1VnZEc4Z2MydHBjQ0JsZG1WdWRDQnBaaUJ1YjNRZ2FXNGdkR2hsSUdOdmNuSmxZM1FnZW05dVpRcHNiMk5oYkNCeVpYRjFhWEpsWkY5NmIyNWxJRDBnSjNWdFluSmhiSFIzYjE5eVlXbGtKd29LYkc5allXd2dYMk5zWVhOeklEMGdld29nSUNBZ1d5ZERURkluWFNBOUlIUnlkV1VzQ2lBZ0lDQmJKMFJTVlNkZElEMGdkSEoxWlN3S0lDQWdJRnNuVTBoTkoxMGdQU0IwY25WbExBcDlDZ3BzYjJOaGJDQnRlVjlqYkdGemN5QTlJRzF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LUXBzYjJOaGJDQnRlVjl1WVcxbElEMGdiWEV1VkV4UExrMWxMa05zWldGdVRtRnRaU2dwQ2dwc2IyTmhiQ0JtZFc1amRHbHZiaUJsZG1WdWRGOW9ZVzVrYkdWeUtHeHBibVVzSUc1aGJXVXhMQ0J1WVcxbE1pd2dibUZ0WlRNcENpQWdJQ0F0TFNCamFHVmpheUIwYnlCelpXVWdhV1lnZDJVbmNtVWdhVzRnZEdobElISnBaMmgwSUhwdmJtVUtJQ0FnSUdsbUlHMXhMbFJNVHk1YWIyNWxMbE5vYjNKMFRtRnRaU2dwSUg0OUlISmxjWFZwY21Wa1gzcHZibVVnZEdobGJpQnlaWFIxY200Z1pXNWtDZ29nSUNBZ2FXWWdibUZ0WlRFZ1BUMGdiWGxmYm1GdFpTQnZjaUJ1WVcxbE1pQTlQU0J0ZVY5dVlXMWxJRzl5SUc1aGJXVXpJRDA5SUcxNVgyNWhiV1VnZEdobGJnb2dJQ0FnSUNBZ0lDMHRJRTV2ZEdsbWVTQjBhR0YwSUhkbEozSmxJR3hsWVhacGJtY0tJQ0FnSUNBZ0lDQnRjUzVqYldSbUtDY3ZaR2QwSUdGc2JDQWxjeUF0SUZCcGJtc2dSVzF2ZEdVZ0xTQmhibVFnYVhNZ1BpQnNaV0YyYVc1bklEd2dkR2hsSUhKaGFXUW5MQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcENnb2dJQ0FnSUNBZ0lDMHRJSEJoZFhOcGJtY2dLRzl5SUhObGRIUnBibWNnZEc4Z2JXRnVkV0ZzS1NCbGRtVnllV0p2WkhrZ2JtOTBJR0VnY0hKcFpYTjBMaUJRY21sbGMzUnpJR2RsZENCelpYUWdkRzhnZG05eWNHRnNDaUFnSUNBZ0lDQnBaaUJ1YjNRZ1gyTnNZWE56VzIxNVgyTnNZWE56WFNCMGFHVnVJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJRzF4TG1OdFpHWW9KeThsY3lCdGIyUmxJREFuTENCdGVWOWpiR0Z6Y3lrS0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZiWEZ3SUc5dUp5a0tJQ0FnSUNBZ0lHVnNjMlVLSUNBZ0lDQWdJQ0FnSUNBZ0xTMGdjMlYwZEdsdVp5Qm9aV0ZzWlhKeklIUnZJSFp2Y25CaGJBb2dJQ0FnSUNBZ0lDQWdJRzF4TG1OdFpHWW9KeThsY3lCdGIyUmxJSFp2Y25CaGJDY3NJRzE1WDJOc1lYTnpLUW9nSUNBZ0lDQWdaVzVrQ2dvZ0lDQWdJQ0FnSUMwdElITjBiM0FnWm05c2JHOTNhVzVuSUhCbGIzQnNaU0I1YjNVZ1kzSmxaWEJsY2dvZ0lDQWdJQ0FnYlhFdVkyMWtLQ2N2YlhWc2RHbHNhVzVsSURzZ0wyRm1iMnhzYjNjZ2IyWm1PeUF2YzNScFkyc2diMlptT3lBdmJtRjJJSE4wYjNBbktRb2dJQ0FnSUNBZ2JYRXVZMjFrS0NjdmRHRnlaMlYwSUdOc1pXRnlKeWtLQ2lBZ0lDQWdJQ0FnTFMwZ01YTjBJRkoxYm1GM1lYa2dMU0JUVnlCdlppQlNZV2xrQ2lBZ0lDQWdJQ0FnYVdZZ2JYbGZibUZ0WlNBOVBTQnVZVzFsTVNCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUcxeExtTnRaQ2duTDI1aGRpQnNiMk41ZUNBdE16QTFJREkzTlNjcENpQWdJQ0FnSUNBZ1pXNWtDaUFnSUNBZ0lDQWdMUzBnTW01a0lGSjFibUYzWVhrZ0xTQlRJRzltSUZKaGFXUUtJQ0FnSUNBZ0lDQnBaaUJ0ZVY5dVlXMWxJRDA5SUc1aGJXVXlJSFJvWlc0S0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZibUYySUd4dlkzbDRJQzB6TlRVZ01UQTBKeWtLSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJQ0FnSUNBdExTQXpjbVFnVW5WdVlYZGhlU0F0SUZORklHOW1JRkpoYVdRS0lDQWdJQ0FnSUNCcFppQnRlVjl1WVcxbElEMDlJRzVoYldVeklIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdmJtRjJJR3h2WTNsNElDMHlPVFFnTFRjNEp5a0tJQ0FnSUNBZ0lDQmxibVFLQ2lBZ0lDQWdJQ0FnTFMwZ1FVVWdaR1YwYjI1aGRHVnpJR0ZtZEdWeUlERTFJRzl5SURJd0lITmxZMjl1WkhNZ0tHUmxjR1Z1WkdsdVp5QnZiaUJ6WlhKMlpYSWdkR2xqYTNNcENpQWdJQ0FnSUNBZ2JYRXVaR1ZzWVhrb01qQXdNREFwQ2lBZ0lDQWdJQ0FnTFMwZ2NuVnVJR0poWTJzZ2RHOGdkR2hsSUhKaGFXUUtJQ0FnSUNBZ0lDQXRMU0IwYUdseklHbHpJSFJvWlNCVGIzVjBhQ0J6YVdSbElHOW1JSFJvWlNCa2IyOXRjMmhoWkdVZ1kybHlZMnhsQ2lBZ0lDQWdJQ0FnYlhFdVkyMWtaaWduTDJSbmRDQmhiR3dnSlhNZ0xTMGdVbVYwZFhKdWFXNW5JSFJ2SUhKaGFXUW5MQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcENpQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdmJtRjJJR3h2WTNsNElDMHhOalVnTVRJNUp5a0tDaUFnSUNCM2FHbHNaU0J0Y1M1VVRFOHVUbUYyYVdkaGRHbHZiaTVCWTNScGRtVW9LU0JrYndvZ0lDQWdJQ0FnSUcxeExtUmxiR0Y1S0RFd0tRb2dJQ0FnWlc1a0NpQWdJQ0F0TFNCelpYUWdZM2QwYm5NZ1ltRmpheUIwYnlCaGMzTnBjM1FLSUNBZ0lHMXhMbU50WkdZb0p5OGxjeUJ0YjJSbElERW5MQ0J0ZVY5amJHRnpjeWtLSUNBZ0lDMHRJSFZ1Y0dGMWMyVWdiV0ZqY204S0lDQWdJRzF4TG1OdFpDZ25MMjF4Y0NCdlptWW5LUW9nSUNBZ1pXNWtDbVZ1WkFvS0NuSmxkSFZ5YmlCN1pYWmxiblJtZFc1alBXVjJaVzUwWDJoaGJtUnNaWEo5IiwKIFsibmFtZSJdID0gImRvb21zaGFkZVBpbmsiLAogWyJsb2FkIl0gPSB7CiAgWyJhbHdheXMiXSA9IGZhbHNlLAogIFsiem9uZSJdID0gIiIsCiAgWyJjbGFzcyJdID0gIiIsCiB9LAogWyJzaW5nbGVjb21tYW5kIl0gPSBmYWxzZSwKfQ==[/CODE]


Lua:
local mq = require('mq')

if not package.loaded['events'] then print('This script is intended to be imported to Lua Event Manager (LEM). Try "\a-t/lua run lem\a-x"') end

-- compare zone name to skip event if not in the correct zone
local required_zone = 'umbraltwo_raid'

local _class = {
    ['CLR'] = true,
    ['DRU'] = true,
    ['SHM'] = true,
}

local my_class = mq.TLO.Me.Class.ShortName()
local my_name = mq.TLO.Me.CleanName()

local function event_handler(line, name1, name2, name3)
    -- check to see if we're in the right zone
    if mq.TLO.Zone.ShortName() ~= required_zone then return end

    if name1 == my_name or name2 == my_name or name3 == my_name then
        -- Notify that we're leaving
        mq.cmdf('/dgt all %s - Pink Emote - and is > leaving < the raid', mq.TLO.Me.CleanName())

        -- pausing (or setting to manual) everybody not a priest. Priests get set to vorpal
       if not _class[my_class] then   
            mq.cmdf('/%s mode 0', my_class)
            mq.cmd('/mqp on')
       else
            -- setting healers to vorpal
           mq.cmdf('/%s mode vorpal', my_class)
       end

        -- stop following people you creeper
       mq.cmd('/multiline ; /afollow off; /stick off; /nav stop')
       mq.cmd('/target clear')

        -- 1st Runaway - SW of Raid
        if my_name == name1 then
            mq.cmd('/nav locyx -305 275')
        end
        -- 2nd Runaway - S of Raid
        if my_name == name2 then
            mq.cmd('/nav locyx -355 104')
        end
        -- 3rd Runaway - SE of Raid
        if my_name == name3 then
            mq.cmd('/nav locyx -294 -78')
        end

        -- AE detonates after 15 or 20 seconds (depending on server ticks)
        mq.delay(20000)
        -- run back to the raid
        -- this is the South side of the doomshade circle
        mq.cmdf('/dgt all %s -- Returning to raid', mq.TLO.Me.CleanName())
        mq.cmd('/nav locyx -165 129')

    while mq.TLO.Navigation.Active() do
        mq.delay(10)
    end
    -- set cwtns back to assist
    mq.cmdf('/%s mode 1', my_class)
    -- unpause macro
    mq.cmd('/mqp off')
    end
end

return {eventfunc=event_handler}
 
Question:

Now with bard on plugin my lems are not working with the bard. So if I remove the bard parts for KA will they work right?

local function classoff()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp on ; /timed 5 /twist off')
else
mq.cmdf('/%s mode manual', my_class)
end
mq.cmd('/target clear')
mq.cmd('/attack off')
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
end
mq.delay(10)
end

local function classon()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp off ; /timed 5 /twist on')
else
mq.cmdf('/%s mode chase', my_class)
end
end


I plan to leave the zerker click off frenzy thou....
 
Question:

Now with bard on plugin my lems are not working with the bard. So if I remove the bard parts for KA will they work right?

local function classoff()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp on ; /timed 5 /twist off')
else
mq.cmdf('/%s mode manual', my_class)
end
mq.cmd('/target clear')
mq.cmd('/attack off')
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
end
mq.delay(10)
end

local function classon()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp off ; /timed 5 /twist on')
else
mq.cmdf('/%s mode chase', my_class)
end
end


I plan to leave the zerker click off frenzy thou....
Just as a note, don;t delete your old hotkey if you may not buy the Bard plugin. It will eventually not be free when out of testing phase. Though I highly recommend to get it.
 
or just remove

if my_class == "BRD" then
mq.cmd('/multiline ; /mqp on ; /timed 5 /twist off')
else

and the corresponding end after the

mq.cmdf('/%s mode manual', my_class)

line, and bard will pause with all your others. Not sure if the plugin still needs the mq2twist plugin commands or not. If twist is still used, just reduce the if statements to /twisn off and /twist on.
 
So change:

local function classoff()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp on ; /timed 5 /twist off')
else
mq.cmdf('/%s mode manual', my_class)
end
mq.cmd('/target clear')
mq.cmd('/attack off')
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
end
mq.delay(10)
end

local function classon()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp off ; /timed 5 /twist on')
else
mq.cmdf('/%s mode chase', my_class)
end
end

too:
local function classoff()
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
mq.delay(10)
end

And all good?
 
So change:

local function classoff()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp on ; /timed 5 /twist off')
else
mq.cmdf('/%s mode manual', my_class)
end
mq.cmd('/target clear')
mq.cmd('/attack off')
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
end
mq.delay(10)
end

local function classon()
if my_class == "BRD" then
mq.cmd('/multiline ; /mqp off ; /timed 5 /twist on')
else
mq.cmdf('/%s mode chase', my_class)
end
end

too:
local function classoff()
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
mq.delay(10)
end

And all good?
It may depend on the rest of the script you are editing and the function but

Lua:
local function classoff()
    if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() == mq.TLO.Spell('Frenzied Resolve Discipline').RankName() then
        mq.cmd('/stopdisc')
    end
    mq.delay(10)
    end

I would also recommend using the inline code in the future. Easier to read =)

1728266574411.png
 
Last edited:
[CODE lang="Lua" title="AK Raid Run Out lem"]local mq = require('mq')

local my_class = mq.TLO.Me.Class.ShortName()


local function classoff()
if mq.cmdf('/%s mode manual', my_class)
end
mq.cmd('/target clear')
mq.cmd('/attack off')
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
end
mq.delay(10)
end

local function classon()
if mq.cmdf('/%s mode chase', my_class)
end
end
local function event_handler(line, name1, name2, name3)
if mq.TLO.Zone.ID() == 860 then
if string.find(name1, mq.TLO.Me.CleanName()) then
classoff()
mq.cmd('/nav locxyz 1332.81 1426.34 447.95')
mq.delay('20s')
classon()
elseif string.find(name2, mq.TLO.Me.CleanName()) then
classoff()
mq.cmd('/nav locxyz 1112.22 1250.41 454.86')
mq.delay('20s')
classon()
elseif string.find(name3, mq.TLO.Me.CleanName()) then
classoff()
mq.cmd('/nav locxyz 862.97 1461.80 445.47')
mq.delay('20s')
classon()

end
end
end
return { eventfunc = event_handler }[/CODE]



This is the full edited version of my new update for the AK Raid run out lem without all the bard KA commands. Does this look right? I am hoping this fixes my issue with the bards using class plugin not running out of camp. Once I get the fix for bards from KA to plugin to work. I will post all my LS raid lems to add to the list of useful lems.
 
Lua:
local function classon()
    if mq.cmdf('/%s mode chase', my_class)
    end
end
This line has problems. you are issuing an mq command as the condition of the if, and missing a then, and not doing anything in the non-existent body of the if. Same issue in classoff.

you probably just want to change it to

Lua:
mq.cmdf('/%s mode chase', my_class)
 
[CODE lang="lua" title="AK Raid Run Out lem"]local mq = require('mq')

local my_class = mq.TLO.Me.Class.ShortName()


local function classoff()
if mq.cmdf('/%s mode manual', my_class)
end
mq.cmd('/target clear')
mq.cmd('/attack off')
if me_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() ~= nil then
if mq.TLO.Me.ActiveDisc.Name():find('Frenzied Resolve Discipline') then
mq.cmd('/stopdisc')
end
end
mq.delay(10)
end

local function classon()
if mq.cmdf('/%s mode chase', my_class)
end
end
local function event_handler(line, name1, name2, name3)
if mq.TLO.Zone.ID() == 860 then
if string.find(name1, mq.TLO.Me.CleanName()) then
classoff()
mq.cmd('/nav locxyz 1332.81 1426.34 447.95')
mq.delay('20s')
classon()
elseif string.find(name2, mq.TLO.Me.CleanName()) then
classoff()
mq.cmd('/nav locxyz 1112.22 1250.41 454.86')
mq.delay('20s')
classon()
elseif string.find(name3, mq.TLO.Me.CleanName()) then
classoff()
mq.cmd('/nav locxyz 862.97 1461.80 445.47')
mq.delay('20s')
classon()

end
end
end
return { eventfunc = event_handler }[/CODE]



This is the full edited version of my new update for the AK Raid run out lem without all the bard KA commands. Does this look right? I am hoping this fixes my issue with the bards using class plugin not running out of camp. Once I get the fix for bards from KA to plugin to work. I will post all my LS raid lems to add to the list of useful lems.
Here is yours that I "Think" should fix it for you (corrections welcome from those with more experience than I)

Lua:
local mq = require('mq')

local my_class = mq.TLO.Me.Class.ShortName()

local function classoff()
    mq.cmdf('/%s mode manual', my_class)
    mq.cmd('/target clear')
    mq.cmd('/attack off')
    if my_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() == mq.TLO.Spell('Frenzied Resolve Discipline').RankName() then
        mq.cmd('/stopdisc')
    end
    mq.delay(10)
end
 
local function classon()
    mq.cmdf('/%s mode chase', my_class)
    mq.delay(10)
end

local function event_handler(line, name1, name2, name3)
    if mq.TLO.Zone.ID() == 860 then
        if string.find(name1, mq.TLO.Me.CleanName()) then
            classoff()
            mq.cmd('/nav locxyz 1332.81 1426.34 447.95')
            mq.delay('20s')
            classon()
        elseif string.find(name2, mq.TLO.Me.CleanName()) then
            classoff()
            mq.cmd('/nav locxyz 1112.22 1250.41 454.86')
            mq.delay('20s')
            classon()
        elseif string.find(name3, mq.TLO.Me.CleanName()) then
            classoff()
            mq.cmd('/nav locxyz 862.97 1461.80 445.47')
            mq.delay('20s')
            classon()
        end
    end
end
return { eventfunc = event_handler }

I use this one

Lua:
local mq = require('mq')

if not package.loaded['lem.events'] then
    print('This script is intended to be imported to Lua Event Manager (LEM). Try "-t/lua run lem-t"')
end

local locs = {'1480.34 1245.66 450.34', '1292.33 1059.30 440.44', '1361.76 888.93 448.06'}
local function event_handler(line, name1, name2, name3)
    if not mq.TLO.Zone.ShortName() == 'ankexfen_raid' then return end
    printf('Names: 1: "%s", 2: "%s", 3: "%s"', name1, name2, name3)
    local my_class = mq.TLO.Me.Class.ShortName()
    local my_name = mq.TLO.Me.CleanName()

    local loc = (my_name == name1 and locs[1]) or (my_name == name2 and locs[2]) or (my_name == name3 and locs[3]) or nil
    if loc then
        printf('Running to loc %s', loc)
        if my_class == 'BER' and mq.TLO.Me.ActiveDisc.Name() == mq.TLO.Spell('Frenzied Resolve Discipline').RankName() then
            mq.cmd('/stopdisc')
        end
        mq.cmdf('/%s mode 0', my_class)
        mq.cmd('/timed 5 /afollow off')
        mq.cmd('/nav stop')
        mq.cmd('/target clear')
        mq.delay(100)
        mq.cmdf('/nav locyxz %s', loc)
        mq.delay(35000)
        mq.cmdf('/%s mode 2', my_class)
    end
end
return {eventfunc=event_handler}
 
Here are my LS Raid lems:

[CODE lang="Lua" title="AK Raid Run Out"]cmV0dXJuIHsKIFsicGF0dGVybiJdID0gIiMqI0JyaWdhZGllciBTd2FybiBwdWxscyBlbGVtZW50YWwgZm9yY2VzIHRvIGdhdGhlciBhcm91bmQgIzEjLCAjMiMsICMzIy4jKiMiLAogWyJjb2RlIl0gPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ3BzYjJOaGJDQnRlVjlqYkdGemN5QTlJRzF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LUW9LYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdlptWW9LUW9nSUNBZ2JYRXVZMjFrWmlnbkx5VnpJRzF2WkdVZ2JXRnVkV0ZzSnl3Z2JYbGZZMnhoYzNNcENpQWdJQ0J0Y1M1amJXUW9KeTkwWVhKblpYUWdZMnhsWVhJbktRb2dJQ0FnYlhFdVkyMWtLQ2N2WVhSMFlXTnJJRzltWmljcENpQWdJQ0JwWmlCdGVWOWpiR0Z6Y3lBOVBTQW5Ra1ZTSnlCaGJtUWdiWEV1VkV4UExrMWxMa0ZqZEdsMlpVUnBjMk11VG1GdFpTZ3BJRDA5SUcxeExsUk1UeTVUY0dWc2JDZ25SbkpsYm5wcFpXUWdVbVZ6YjJ4MlpTQkVhWE5qYVhCc2FXNWxKeWt1VW1GdWEwNWhiV1VvS1NCMGFHVnVDaUFnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZjM1J2Y0dScGMyTW5LUW9nSUNBZ1pXNWtDaUFnSUNCdGNTNWtaV3hoZVNneE1Da0taVzVrQ2lBS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTJ4aGMzTnZiaWdwQ2lBZ0lDQnRjUzVqYldSbUtDY3ZKWE1nYlc5a1pTQmphR0Z6WlNjc0lHMTVYMk5zWVhOektRb2dJQ0FnYlhFdVpHVnNZWGtvTVRBcENtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdaWFpsYm5SZmFHRnVaR3hsY2loc2FXNWxMQ0J1WVcxbE1Td2dibUZ0WlRJc0lHNWhiV1V6S1FvZ0lDQWdhV1lnYlhFdVZFeFBMbHB2Ym1VdVNVUW9LU0E5UFNBNE5qQWdkR2hsYmdvZ0lDQWdJQ0FnSUdsbUlITjBjbWx1Wnk1bWFXNWtLRzVoYldVeExDQnRjUzVVVEU4dVRXVXVRMnhsWVc1T1lXMWxLQ2twSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZabVlvS1FvZ0lDQWdJQ0FnSUNBZ0lDQnRjUzVqYldRb0p5OXVZWFlnYkc5amVIbDZJREV6TXpJdU9ERWdNVFF5Tmk0ek5DQTBORGN1T1RVbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTWpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWld4elpXbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVXlMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SURFeE1USXVNaklnTVRJMU1DNDBNU0EwTlRRdU9EWW5LUW9nSUNBZ0lDQWdJQ0FnSUNCdGNTNWtaV3hoZVNnbk1qQnpKeWtLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052YmlncENpQWdJQ0FnSUNBZ1pXeHpaV2xtSUhOMGNtbHVaeTVtYVc1a0tHNWhiV1V6TENCdGNTNVVURTh1VFdVdVEyeGxZVzVPWVcxbEtDa3BJSFJvWlc0S0lDQWdJQ0FnSUNBZ0lDQWdZMnhoYzNOdlptWW9LUW9nSUNBZ0lDQWdJQ0FnSUNCdGNTNWpiV1FvSnk5dVlYWWdiRzlqZUhsNklEZzJNaTQ1TnlBeE5EWXhMamd3SURRME5TNDBOeWNwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbVJsYkdGNUtDY3lNSE1uS1FvZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Z6YzI5dUtDa0tJQ0FnSUNBZ0lDQmxibVFLSUNBZ0lHVnVaQXBsYm1RS2NtVjBkWEp1SUhzZ1pYWmxiblJtZFc1aklEMGdaWFpsYm5SZmFHRnVaR3hsY2lCOSIsCiBbIm5hbWUiXSA9ICJBS1JhaWRfUnVuT3V0IiwKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsiY2F0ZWdvcnkiXSA9ICJMUyIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJzaW5nbGVjb21tYW5kIl0gPSBmYWxzZSwKIFsiY29tbWFuZCJdID0gIiIsCn0=[/CODE]


[CODE lang="Lua" title="Bidils Paper"]cmV0dXJuIHsKIFsic2luZ2xlY29tbWFuZCJdID0gZmFsc2UsCiBbInBhdHRlcm4iXSA9ICIjKiNUaGUgSGFuZCBvZiB0aGUgS2luZyBzaG9vdHMgcGFwZXIgYXQgIzEjLiMqIyIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHNiMk5oYkNCdGVWOWpiR0Z6Y3lBOUlHMXhMbFJNVHk1TlpTNURiR0Z6Y3k1VGFHOXlkRTVoYldVb0tRb0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1kyeGhjM052Wm1Zb0tRb2dJQ0FnYlhFdVkyMWtaaWduTHlWeklHMXZaR1VnYldGdWRXRnNKeXdnYlhsZlkyeGhjM01wQ2lBZ0lDQnRjUzVqYldRb0p5OTBZWEpuWlhRZ1kyeGxZWEluS1FvZ0lDQWdiWEV1WTIxa0tDY3ZZWFIwWVdOcklHOW1aaWNwQ2lBZ0lDQnBaaUJ0ZVY5amJHRnpjeUE5UFNBblFrVlNKeUJoYm1RZ2JYRXVWRXhQTGsxbExrRmpkR2wyWlVScGMyTXVUbUZ0WlNncElEMDlJRzF4TGxSTVR5NVRjR1ZzYkNnblJuSmxibnBwWldRZ1VtVnpiMngyWlNCRWFYTmphWEJzYVc1bEp5a3VVbUZ1YTA1aGJXVW9LU0IwYUdWdUNpQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdmMzUnZjR1JwYzJNbktRb2dJQ0FnWlc1a0NpQWdJQ0J0Y1M1a1pXeGhlU2d4TUNrS1pXNWtDaUFLYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdmJpZ3BDaUFnSUNCdGNTNWpiV1JtS0NjdkpYTWdiVzlrWlNCamFHRnpaU2NzSUcxNVgyTnNZWE56S1FvZ0lDQWdiWEV1WkdWc1lYa29NVEFwQ21WdVpBb0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1pYWmxiblJmYUdGdVpHeGxjaWhzYVc1bExDQnVZVzFsTVNrS0lDQWdJR2xtSUcxeExsUk1UeTVhYjI1bExrbEVLQ2tnUFQwZ01USTJJSFJvWlc0S0lDQWdJQ0FnSUNCcFppQnpkSEpwYm1jdVptbHVaQ2h1WVcxbE1Td2diWEV1VkV4UExrMWxMa05zWldGdVRtRnRaU2dwS1NCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUdOc1lYTnpiMlptS0NrS0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZibUYySUd4dlkzaDVlaUF0TkRjMUxqWTJJREUxTGpNMklERXhOQzQ1TnljcENpQWdJQ0FnSUNBZ0lDQWdJRzF4TG1SbGJHRjVLQ2N5TUhNbktRb2dJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMyOXVLQ2tLSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJR1Z1WkFwbGJtUUtDbkpsZEhWeWJpQjdJR1YyWlc1MFpuVnVZeUE5SUdWMlpXNTBYMmhoYm1Sc1pYSWdmUT09IiwKIFsibmFtZSJdID0gIkJpZGlscyBSYWlkIFBhcGVyIiwKIFsiY29tbWFuZCJdID0gIiIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJsb2FkIl0gPSB7CiAgWyJ6b25lIl0gPSAiIiwKICBbImNsYXNzIl0gPSAiIiwKICBbImFsd2F5cyJdID0gZmFsc2UsCiB9LAogWyJjYXRlZ29yeSJdID0gIkxTIiwKfQ==[/CODE]

[CODE title="Bidils Scissors"]cmV0dXJuIHsKIFsicGF0dGVybiJdID0gIiMqI0JyaWdhZGllciBTd2FybiBwdWxscyBlbGVtZW50YWwgZm9yY2VzIHRvIGdhdGhlciBhcm91bmQgIzEjLCAjMiMsICMzIy4jKiMiLAogWyJjb2RlIl0gPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ3BzYjJOaGJDQnRlVjlqYkdGemN5QTlJRzF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LUW9LYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdlptWW9LUW9nSUNBZ2JYRXVZMjFrWmlnbkx5VnpJRzF2WkdVZ2JXRnVkV0ZzSnl3Z2JYbGZZMnhoYzNNcENpQWdJQ0J0Y1M1amJXUW9KeTkwWVhKblpYUWdZMnhsWVhJbktRb2dJQ0FnYlhFdVkyMWtLQ2N2WVhSMFlXTnJJRzltWmljcENpQWdJQ0JwWmlCdGVWOWpiR0Z6Y3lBOVBTQW5Ra1ZTSnlCaGJtUWdiWEV1VkV4UExrMWxMa0ZqZEdsMlpVUnBjMk11VG1GdFpTZ3BJRDA5SUcxeExsUk1UeTVUY0dWc2JDZ25SbkpsYm5wcFpXUWdVbVZ6YjJ4MlpTQkVhWE5qYVhCc2FXNWxKeWt1VW1GdWEwNWhiV1VvS1NCMGFHVnVDaUFnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZjM1J2Y0dScGMyTW5LUW9nSUNBZ1pXNWtDaUFnSUNCdGNTNWtaV3hoZVNneE1Da0taVzVrQ2lBS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTJ4aGMzTnZiaWdwQ2lBZ0lDQnRjUzVqYldSbUtDY3ZKWE1nYlc5a1pTQmphR0Z6WlNjc0lHMTVYMk5zWVhOektRb2dJQ0FnYlhFdVpHVnNZWGtvTVRBcENtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdaWFpsYm5SZmFHRnVaR3hsY2loc2FXNWxMQ0J1WVcxbE1Td2dibUZ0WlRJc0lHNWhiV1V6S1FvZ0lDQWdhV1lnYlhFdVZFeFBMbHB2Ym1VdVNVUW9LU0E5UFNBNE5qQWdkR2hsYmdvZ0lDQWdJQ0FnSUdsbUlITjBjbWx1Wnk1bWFXNWtLRzVoYldVeExDQnRjUzVVVEU4dVRXVXVRMnhsWVc1T1lXMWxLQ2twSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZabVlvS1FvZ0lDQWdJQ0FnSUNBZ0lDQnRjUzVqYldRb0p5OXVZWFlnYkc5amVIbDZJREV6TXpJdU9ERWdNVFF5Tmk0ek5DQTBORGN1T1RVbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTWpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWld4elpXbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVXlMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SURFeE1USXVNaklnTVRJMU1DNDBNU0EwTlRRdU9EWW5LUW9nSUNBZ0lDQWdJQ0FnSUNCdGNTNWtaV3hoZVNnbk1qQnpKeWtLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052YmlncENpQWdJQ0FnSUNBZ1pXeHpaV2xtSUhOMGNtbHVaeTVtYVc1a0tHNWhiV1V6TENCdGNTNVVURTh1VFdVdVEyeGxZVzVPWVcxbEtDa3BJSFJvWlc0S0lDQWdJQ0FnSUNBZ0lDQWdZMnhoYzNOdlptWW9LUW9nSUNBZ0lDQWdJQ0FnSUNCdGNTNWpiV1FvSnk5dVlYWWdiRzlqZUhsNklEZzJNaTQ1TnlBeE5EWXhMamd3SURRME5TNDBOeWNwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbVJsYkdGNUtDY3lNSE1uS1FvZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Z6YzI5dUtDa0tJQ0FnSUNBZ0lDQmxibVFLSUNBZ0lHVnVaQXBsYm1RS2NtVjBkWEp1SUhzZ1pYWmxiblJtZFc1aklEMGdaWFpsYm5SZmFHRnVaR3hsY2lCOSIsCiBbIm5hbWUiXSA9ICJBS1JhaWRfUnVuT3V0IiwKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsiY2F0ZWdvcnkiXSA9ICJMUyIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJzaW5nbGVjb21tYW5kIl0gPSBmYWxzZSwKIFsiY29tbWFuZCJdID0gIiIsCn0=[/CODE]

[CODE lang="Lua" title="Palo Raid Fire and Ice"]cmV0dXJuIHsKIFsicGF0dGVybiJdID0gIiMqI0hvdCBmbGFtZXMgcmlzZSBhcm91bmQgIzEjLCAjMiMsICMzIy4gQ29sZCBmbGFtZXMgcmlzZSBhcm91bmQgIzQjLCAjNSMsICM2Iy4jKiMiLAogWyJjb2RlIl0gPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ3BzYjJOaGJDQnRlVjlqYkdGemN5QTlJRzF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LUW9LYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdlptWW9LUW9nSUNBZ2JYRXVZMjFrWmlnbkx5VnpJRzF2WkdVZ2JXRnVkV0ZzSnl3Z2JYbGZZMnhoYzNNcENpQWdJQ0J0Y1M1amJXUW9KeTkwWVhKblpYUWdZMnhsWVhJbktRb2dJQ0FnYlhFdVkyMWtLQ2N2WVhSMFlXTnJJRzltWmljcENpQWdJQ0JwWmlCdGVWOWpiR0Z6Y3lBOVBTQW5Ra1ZTSnlCaGJtUWdiWEV1VkV4UExrMWxMa0ZqZEdsMlpVUnBjMk11VG1GdFpTZ3BJRDA5SUcxeExsUk1UeTVUY0dWc2JDZ25SbkpsYm5wcFpXUWdVbVZ6YjJ4MlpTQkVhWE5qYVhCc2FXNWxKeWt1VW1GdWEwNWhiV1VvS1NCMGFHVnVDaUFnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZjM1J2Y0dScGMyTW5LUW9nSUNBZ1pXNWtDaUFnSUNCdGNTNWtaV3hoZVNneE1Da0taVzVrQ2lBS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTJ4aGMzTnZiaWdwQ2lBZ0lDQnRjUzVqYldSbUtDY3ZKWE1nYlc5a1pTQmphR0Z6WlNjc0lHMTVYMk5zWVhOektRb2dJQ0FnYlhFdVpHVnNZWGtvTVRBcENtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdaWFpsYm5SZmFHRnVaR3hsY2loc2FXNWxMQ0J1WVcxbE1Td2dibUZ0WlRJc0lHNWhiV1V6TENCdVlXMWxOQ3dnYm1GdFpUVXNJRzVoYldVMktRb2dJQ0FnYVdZZ2JYRXVWRXhQTGxwdmJtVXVTVVFvS1NBOVBTQTROakVnZEdobGJnb2dJQ0FnSUNBZ0lHbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVXhMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SUMwMk1Ea3VOemdnT0RFd0xqWXpJRFF1TnpRbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTmpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWld4elpXbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVXlMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SUMwMk1Ea3VOemdnT0RFd0xqWXpJRFF1TnpRbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTmpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWld4elpXbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVXpMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SUMwMk1Ea3VOemdnT0RFd0xqWXpJRFF1TnpRbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTmpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWld4elpXbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVTBMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SUMwMk1Ea3VOemdnT0RFd0xqWXpJRFF1TnpRbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTmpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWld4elpXbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVTFMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SUMwMk1Ea3VOemdnT0RFd0xqWXpJRFF1TnpRbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTmpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWld4elpXbG1JSE4wY21sdVp5NW1hVzVrS0c1aGJXVTJMQ0J0Y1M1VVRFOHVUV1V1UTJ4bFlXNU9ZVzFsS0NrcElIUm9aVzRLSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM052Wm1Zb0tRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1amJXUW9KeTl1WVhZZ2JHOWplSGw2SUMwMk1Ea3VOemdnT0RFd0xqWXpJRFF1TnpRbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTmpCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2lBZ0lDQWdJQ0FnWlc1a0NpQWdJQ0JsYm1RS1pXNWtDbkpsZEhWeWJpQjdJR1YyWlc1MFpuVnVZeUE5SUdWMlpXNTBYMmhoYm1Sc1pYSWdmUT09IiwKIFsibmFtZSJdID0gIkZGUmFpZF9Ib3RDb2xkUnVuT3V0IiwKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsiY2F0ZWdvcnkiXSA9ICJMUyIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJzaW5nbGVjb21tYW5kIl0gPSBmYWxzZSwKIFsiY29tbWFuZCJdID0gIiIsCn0=[/CODE]
NOTE: Label spot on map so you can place the campfire at the same spot every raid!

[CODE lang="Lua" title="Moors Fire and Ice"]cmV0dXJuIHsKIFsic2luZ2xlY29tbWFuZCJdID0gZmFsc2UsCiBbInBhdHRlcm4iXSA9ICIjKiNUaGUgSGFuZCBvZiB0aGUgS2luZyBzaG9vdHMgcGFwZXIgYXQgIzEjLiMqIyIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHNiMk5oYkNCdGVWOWpiR0Z6Y3lBOUlHMXhMbFJNVHk1TlpTNURiR0Z6Y3k1VGFHOXlkRTVoYldVb0tRb0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1kyeGhjM052Wm1Zb0tRb2dJQ0FnYlhFdVkyMWtaaWduTHlWeklHMXZaR1VnYldGdWRXRnNKeXdnYlhsZlkyeGhjM01wQ2lBZ0lDQnRjUzVqYldRb0p5OTBZWEpuWlhRZ1kyeGxZWEluS1FvZ0lDQWdiWEV1WTIxa0tDY3ZZWFIwWVdOcklHOW1aaWNwQ2lBZ0lDQnBaaUJ0ZVY5amJHRnpjeUE5UFNBblFrVlNKeUJoYm1RZ2JYRXVWRXhQTGsxbExrRmpkR2wyWlVScGMyTXVUbUZ0WlNncElEMDlJRzF4TGxSTVR5NVRjR1ZzYkNnblJuSmxibnBwWldRZ1VtVnpiMngyWlNCRWFYTmphWEJzYVc1bEp5a3VVbUZ1YTA1aGJXVW9LU0IwYUdWdUNpQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdmMzUnZjR1JwYzJNbktRb2dJQ0FnWlc1a0NpQWdJQ0J0Y1M1a1pXeGhlU2d4TUNrS1pXNWtDaUFLYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdmJpZ3BDaUFnSUNCdGNTNWpiV1JtS0NjdkpYTWdiVzlrWlNCamFHRnpaU2NzSUcxNVgyTnNZWE56S1FvZ0lDQWdiWEV1WkdWc1lYa29NVEFwQ21WdVpBb0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1pYWmxiblJmYUdGdVpHeGxjaWhzYVc1bExDQnVZVzFsTVNrS0lDQWdJR2xtSUcxeExsUk1UeTVhYjI1bExrbEVLQ2tnUFQwZ01USTJJSFJvWlc0S0lDQWdJQ0FnSUNCcFppQnpkSEpwYm1jdVptbHVaQ2h1WVcxbE1Td2diWEV1VkV4UExrMWxMa05zWldGdVRtRnRaU2dwS1NCMGFHVnVDaUFnSUNBZ0lDQWdJQ0FnSUdOc1lYTnpiMlptS0NrS0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZibUYySUd4dlkzaDVlaUF0TkRjMUxqWTJJREUxTGpNMklERXhOQzQ1TnljcENpQWdJQ0FnSUNBZ0lDQWdJRzF4TG1SbGJHRjVLQ2N5TUhNbktRb2dJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMyOXVLQ2tLSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJR1Z1WkFwbGJtUUtDbkpsZEhWeWJpQjdJR1YyWlc1MFpuVnVZeUE5SUdWMlpXNTBYMmhoYm1Sc1pYSWdmUT09IiwKIFsibmFtZSJdID0gIkJpZGlscyBSYWlkIFBhcGVyIiwKIFsiY29tbWFuZCJdID0gIiIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJsb2FkIl0gPSB7CiAgWyJ6b25lIl0gPSAiIiwKICBbImNsYXNzIl0gPSAiIiwKICBbImFsd2F5cyJdID0gZmFsc2UsCiB9LAogWyJjYXRlZ29yeSJdID0gIkxTIiwKfQ==[/CODE]

[CODE lang="Lua" title="Unkempt Woods Wasps"]cmV0dXJuIHsKIFsicGF0dGVybiJdID0gIiMqI1dhc3BzIHN3YXJtIHRvd2FyZCAjMSMuIyojIiwKIFsiY29kZSJdID0gImJHOWpZV3dnYlhFZ1BTQnlaWEYxYVhKbEtDZHRjU2NwQ2dwc2IyTmhiQ0J0ZVY5amJHRnpjeUE5SUcxeExsUk1UeTVOWlM1RGJHRnpjeTVUYUc5eWRFNWhiV1VvS1FvS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTJ4aGMzTnZabVlvS1FvZ0lDQWdiWEV1WTIxa1ppZ25MeVZ6SUcxdlpHVWdiV0Z1ZFdGc0p5d2diWGxmWTJ4aGMzTXBDaUFnSUNCdGNTNWpiV1FvSnk5MFlYSm5aWFFnWTJ4bFlYSW5LUW9nSUNBZ2JYRXVZMjFrS0NjdllYUjBZV05ySUc5bVppY3BDaUFnSUNCcFppQnRlVjlqYkdGemN5QTlQU0FuUWtWU0p5QmhibVFnYlhFdVZFeFBMazFsTGtGamRHbDJaVVJwYzJNdVRtRnRaU2dwSUQwOUlHMXhMbFJNVHk1VGNHVnNiQ2duUm5KbGJucHBaV1FnVW1WemIyeDJaU0JFYVhOamFYQnNhVzVsSnlrdVVtRnVhMDVoYldVb0tTQjBhR1Z1Q2lBZ0lDQWdJQ0FnYlhFdVkyMWtLQ2N2YzNSdmNHUnBjMk1uS1FvZ0lDQWdaVzVrQ2lBZ0lDQnRjUzVrWld4aGVTZ3hNQ2tLWlc1a0NpQUtiRzlqWVd3Z1puVnVZM1JwYjI0Z1kyeGhjM052YmlncENpQWdJQ0J0Y1M1amJXUm1LQ2N2SlhNZ2JXOWtaU0JqYUdGelpTY3NJRzE1WDJOc1lYTnpLUW9nSUNBZ2JYRXVaR1ZzWVhrb01UQXBDbVZ1WkFvS2JHOWpZV3dnWm5WdVkzUnBiMjRnWlhabGJuUmZhR0Z1Wkd4bGNpaHNhVzVsTENCdVlXMWxNU2tLSUNBZ0lIQnlhVzUwS0Nkc2FXNWxJSEpsWTJsbGRtVmtMaWNwQ2lBZ0lDQnBaaUJ0Y1M1VVRFOHVXbTl1WlM1SlJDZ3BJRDA5SURnMk5DQnZjaUJ0Y1M1VVRFOHVXbTl1WlM1SlJDZ3BJRDA5SURjek55QjBhR1Z1Q2lBZ0lDQWdJQ0FnYVdZZ2MzUnlhVzVuTG1acGJtUW9ibUZ0WlRFc0lHMXhMbFJNVHk1TlpTNURiR1ZoYms1aGJXVW9LU2tnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0J3Y21sdWRDZ25ibUZ0WlNCallXeHNaV1FuS1FvZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Z6YzI5bVppZ3BDaUFnSUNBZ0lDQWdJQ0FnSUcxeExtTnRaQ2duTDI1aGRpQnNiMk40ZVhvZ0xUSXhOalF1TURVZ0xUSXlPVEF1TmpNZ0xUSTVNeTQyTkNjcENpQWdJQ0FnSUNBZ0lDQWdJRzF4TG1SbGJHRjVLQ2N5TUhNbktRb2dJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMyOXVLQ2tLSUNBZ0lDQWdJQ0JsYm1RS0lDQWdJR1Z1WkFwbGJtUUtjbVYwZFhKdUlIdGxkbVZ1ZEdaMWJtTTlaWFpsYm5SZmFHRnVaR3hsY24wPSIsCiBbIm5hbWUiXSA9ICJVV1JhaWRfV2FzcFJ1bk91dCIsCiBbImxvYWQiXSA9IHsKICBbImNsYXNzIl0gPSAiIiwKICBbImFsd2F5cyJdID0gZmFsc2UsCiAgWyJ6b25lIl0gPSAiIiwKIH0sCiBbImNhdGVnb3J5Il0gPSAiTFMiLAogWyJ0eXBlIl0gPSAiZXZlbnRzIiwKIFsic2luZ2xlY29tbWFuZCJdID0gZmFsc2UsCiBbImNvbW1hbmQiXSA9ICIiLAp9[/CODE]

[CODE lang="Lua" title="TF Venom"]cmV0dXJuIHsKIFsicGF0dGVybiJdID0gIiMqI0Egc2hhZG93IG9mIHZlbm9tIGhpc3NlcyBhbmQgZ2xhcmVzIGF0ICMxIy4jKiMiLAogWyJjb2RlIl0gPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ3BzYjJOaGJDQnRlVjlqYkdGemN5QTlJRzF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LUW9LYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdlptWW9LUW9nSUNBZ2JYRXVZMjFrWmlnbkx5VnpJRzF2WkdVZ2JXRnVkV0ZzSnl3Z2JYbGZZMnhoYzNNcENpQWdJQ0J0Y1M1amJXUW9KeTkwWVhKblpYUWdZMnhsWVhJbktRb2dJQ0FnYlhFdVkyMWtLQ2N2WVhSMFlXTnJJRzltWmljcENpQWdJQ0JwWmlCdGVWOWpiR0Z6Y3lBOVBTQW5Ra1ZTSnlCaGJtUWdiWEV1VkV4UExrMWxMa0ZqZEdsMlpVUnBjMk11VG1GdFpTZ3BJRDA5SUcxeExsUk1UeTVUY0dWc2JDZ25SbkpsYm5wcFpXUWdVbVZ6YjJ4MlpTQkVhWE5qYVhCc2FXNWxKeWt1VW1GdWEwNWhiV1VvS1NCMGFHVnVDaUFnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZjM1J2Y0dScGMyTW5LUW9nSUNBZ1pXNWtDaUFnSUNCdGNTNWtaV3hoZVNneE1Da0taVzVrQ2lBS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTJ4aGMzTnZiaWdwQ2lBZ0lDQnRjUzVqYldSbUtDY3ZKWE1nYlc5a1pTQmphR0Z6WlNjc0lHMTVYMk5zWVhOektRb2dJQ0FnYlhFdVpHVnNZWGtvTVRBcENtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdaWFpsYm5SZmFHRnVaR3hsY2loc2FXNWxMQ0J1WVcxbE1Ta0tJQ0FnSUdsbUlHMXhMbFJNVHk1YWIyNWxMa2xFS0NrZ1BUMGdPRFkxSUhSb1pXNEtJQ0FnSUNBZ0lDQnBaaUJ6ZEhKcGJtY3VabWx1WkNodVlXMWxNU3dnYlhFdVZFeFBMazFsTGtOc1pXRnVUbUZ0WlNncEtTQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lHTnNZWE56YjJabUtDa0tJQ0FnSUNBZ0lDQWdJQ0FnYlhFdVkyMWtLQ2N2Ym1GMklHeHZZM2g1ZWlBdE1qTTNOQzR4T1NBeE1EQTVMamd3SUMweE1pNDFPU2NwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbVJsYkdGNUtDY3lNSE1uS1FvZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Z6YzI5dUtDa0tDZ29nSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdaVzVrQ21WdVpBcHlaWFIxY200Z2V5QmxkbVZ1ZEdaMWJtTWdQU0JsZG1WdWRGOW9ZVzVrYkdWeUlIMD0iLAogWyJuYW1lIl0gPSAiVEZSYWlkX1Zlbm9tIiwKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsiY2F0ZWdvcnkiXSA9ICJMUyIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJzaW5nbGVjb21tYW5kIl0gPSBmYWxzZSwKIFsiY29tbWFuZCJdID0gIiIsCn0=[/CODE]

[CODE lang="Lua" title="TF Seed"]cmV0dXJuIHsKIFsicGF0dGVybiJdID0gIiMqI0Egc2VlZCBvZiBoYXRlIGlzIHBsYW50ZWQgaW50byAjMSMsICMyIywgYW5kICMzIy4jKiMiLAogWyJjb2RlIl0gPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ3BzYjJOaGJDQnRlVjlqYkdGemN5QTlJRzF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LUW9LYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdlptWW9LUW9nSUNBZ2JYRXVZMjFrWmlnbkx5VnpJRzF2WkdVZ2JXRnVkV0ZzSnl3Z2JYbGZZMnhoYzNNcENpQWdJQ0J0Y1M1amJXUW9KeTkwWVhKblpYUWdZMnhsWVhJbktRb2dJQ0FnYlhFdVkyMWtLQ2N2WVhSMFlXTnJJRzltWmljcENpQWdJQ0JwWmlCdGVWOWpiR0Z6Y3lBOVBTQW5Ra1ZTSnlCaGJtUWdiWEV1VkV4UExrMWxMa0ZqZEdsMlpVUnBjMk11VG1GdFpTZ3BJRDA5SUcxeExsUk1UeTVUY0dWc2JDZ25SbkpsYm5wcFpXUWdVbVZ6YjJ4MlpTQkVhWE5qYVhCc2FXNWxKeWt1VW1GdWEwNWhiV1VvS1NCMGFHVnVDaUFnSUNBZ0lDQWdiWEV1WTIxa0tDY3ZjM1J2Y0dScGMyTW5LUW9nSUNBZ1pXNWtDaUFnSUNCdGNTNWtaV3hoZVNneE1Da0taVzVrQ2lBS2JHOWpZV3dnWm5WdVkzUnBiMjRnWTJ4aGMzTnZiaWdwQ2lBZ0lDQnRjUzVqYldSbUtDY3ZKWE1nYlc5a1pTQmphR0Z6WlNjc0lHMTVYMk5zWVhOektRb2dJQ0FnYlhFdVpHVnNZWGtvTVRBcENtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdaWFpsYm5SZmFHRnVaR3hsY2loc2FXNWxMQ0J1WVcxbE1Td2dibUZ0WlRJc0lHNWhiV1V6S1FvZ0lDQWdhV1lnYlhFdVZFeFBMbHB2Ym1VdVNVUW9LU0E5UFNBNE5qVWdkR2hsYmdvZ0lDQWdJQ0FnSUdsbUlITjBjbWx1Wnk1bWFXNWtLRzVoYldVeExDQnRjUzVVVEU4dVRXVXVRMnhsWVc1T1lXMWxLQ2twSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZabVlvS1FvZ0lDQWdJQ0FnSUNBZ0lDQnRjUzVqYldRb0p5OXVZWFlnYkc5amVIbDZJQzB5TVRJM0xqRXpJREV3TnpRdU1UTWdMVEkwTGpBMkp5a0tJQ0FnSUNBZ0lDQWdJQ0FnYlhFdVpHVnNZWGtvSnpRd2N5Y3BDaUFnSUNBZ0lDQWdJQ0FnSUdOc1lYTnpiMjRvS1FvZ0lDQWdJQ0FnSUdWc2MyVnBaaUJ6ZEhKcGJtY3VabWx1WkNodVlXMWxNaXdnYlhFdVZFeFBMazFsTGtOc1pXRnVUbUZ0WlNncEtTQjBhR1Z1Q2lBZ0lDQWdJQ0FnSUNBZ0lHTnNZWE56YjJabUtDa0tJQ0FnSUNBZ0lDQWdJQ0FnYlhFdVkyMWtLQ2N2Ym1GMklHeHZZM2g1ZWlBdE1qRXlOeTR4TXlBeE1EYzBMakV6SUMweU5DNHdOaWNwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbVJsYkdGNUtDYzBNSE1uS1FvZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Z6YzI5dUtDa0tJQ0FnSUNBZ0lDQmxiSE5sYVdZZ2MzUnlhVzVuTG1acGJtUW9ibUZ0WlRNc0lHMXhMbFJNVHk1TlpTNURiR1ZoYms1aGJXVW9LU2tnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMyOW1aaWdwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbU50WkNnbkwyNWhkaUJzYjJONGVYb2dMVEl4TWpjdU1UTWdNVEEzTkM0eE15QXRNalF1TURZbktRb2dJQ0FnSUNBZ0lDQWdJQ0J0Y1M1a1pXeGhlU2duTkRCekp5a0tJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTnZiaWdwQ2dvZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnWlc1a0NtVnVaQXB5WlhSMWNtNGdleUJsZG1WdWRHWjFibU1nUFNCbGRtVnVkRjlvWVc1a2JHVnlJSDA9IiwKIFsibmFtZSJdID0gIlRGUmFpZF9TZWVkb2ZIYXRlIiwKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsiY2F0ZWdvcnkiXSA9ICJMUyIsCiBbInR5cGUiXSA9ICJldmVudHMiLAogWyJzaW5nbGVjb21tYW5kIl0gPSBmYWxzZSwKIFsiY29tbWFuZCJdID0gIiIsCn0=[/CODE]

[CODE lang="Lua" title="TF Love Hate"]cmV0dXJuIHsKIFsicGF0dGVybiJdID0gIiMqI0lsbGFuZHJpbiBzZWVkcyBoYXRyZWQgaW50byAgIzEjLiBUaGlzIGNhdXNlcyBhIGNvbXBlbnNhdG9yeSBsb3ZlIHRvIGZvcm0gaW4gIzIjLiMqIyIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHNiMk5oYkNCdGVWOWpiR0Z6Y3lBOUlHMXhMbFJNVHk1TlpTNURiR0Z6Y3k1VGFHOXlkRTVoYldVb0tRb0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1kyeGhjM052Wm1Zb0tRb2dJQ0FnYlhFdVkyMWtaaWduTHlWeklHMXZaR1VnYldGdWRXRnNKeXdnYlhsZlkyeGhjM01wQ2lBZ0lDQnRjUzVqYldRb0p5OTBZWEpuWlhRZ1kyeGxZWEluS1FvZ0lDQWdiWEV1WTIxa0tDY3ZZWFIwWVdOcklHOW1aaWNwQ2lBZ0lDQnBaaUJ0ZVY5amJHRnpjeUE5UFNBblFrVlNKeUJoYm1RZ2JYRXVWRXhQTGsxbExrRmpkR2wyWlVScGMyTXVUbUZ0WlNncElEMDlJRzF4TGxSTVR5NVRjR1ZzYkNnblJuSmxibnBwWldRZ1VtVnpiMngyWlNCRWFYTmphWEJzYVc1bEp5a3VVbUZ1YTA1aGJXVW9LU0IwYUdWdUNpQWdJQ0FnSUNBZ2JYRXVZMjFrS0NjdmMzUnZjR1JwYzJNbktRb2dJQ0FnWlc1a0NpQWdJQ0J0Y1M1a1pXeGhlU2d4TUNrS1pXNWtDaUFLYkc5allXd2dablZ1WTNScGIyNGdZMnhoYzNOdmJpZ3BDaUFnSUNCdGNTNWpiV1JtS0NjdkpYTWdiVzlrWlNCamFHRnpaU2NzSUcxNVgyTnNZWE56S1FvZ0lDQWdiWEV1WkdWc1lYa29NVEFwQ21WdVpBb0tiRzlqWVd3Z1puVnVZM1JwYjI0Z1pYWmxiblJmYUdGdVpHeGxjaWhzYVc1bExDQnVZVzFsTVN3Z2JtRnRaVElwQ2lBZ0lDQndjbWx1ZENnbmJHbHVaU0J5WldOcFpYWmxaQzRuS1FvZ0lDQWdhV1lnYlhFdVZFeFBMbHB2Ym1VdVNVUW9LU0E5UFNBNE5qVWdiM0lnYlhFdVZFeFBMbHB2Ym1VdVNVUW9LU0E5UFNBM016Y2dkR2hsYmdvZ0lDQWdJQ0FnSUdsbUlITjBjbWx1Wnk1bWFXNWtLRzVoYldVeExDQnRjUzVVVEU4dVRXVXVRMnhsWVc1T1lXMWxLQ2twSUhSb1pXNEtJQ0FnSUNBZ0lDQWdJQ0FnY0hKcGJuUW9KMjVoYldVZ1kyRnNiR1ZrSnlrS0lDQWdJQ0FnSUNBZ0lDQWdZMnhoYzNOdlptWW9LUW9nSUNBZ0lDQWdJQ0FnSUNCdGNTNWpiV1FvSnk5dVlYWWdiRzlqZUhsNklDMHlORE0zTGpBeUlEazRNUzQzTlNBdE1pNDFNQ2NwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbVJsYkdGNUtDY3lNSE1uS1FvZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Z6YzI5dUtDa0tJQ0FnSUNBZ0lDQmxiSE5sYVdZZ2MzUnlhVzVuTG1acGJtUW9ibUZ0WlRJc0lHMXhMbFJNVHk1TlpTNURiR1ZoYms1aGJXVW9LU2tnZEdobGJnb2dJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMyOW1aaWdwQ2lBZ0lDQWdJQ0FnSUNBZ0lHMXhMbU50WkNnbkwyNWhkaUJzYjJONGVYb2dMVEkwTXpjdU1ESWdPVGd4TGpjMUlDMHlMalV3SnlrS0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WkdWc1lYa29Kekl3Y3ljcENpQWdJQ0FnSUNBZ0lDQWdJR05zWVhOemIyNG9LUW9nSUNBZ0lDQWdJR1Z1WkFvZ0lDQWdaVzVrQ21WdVpBcHlaWFIxY200Z2UyVjJaVzUwWm5WdVl6MWxkbVZ1ZEY5b1lXNWtiR1Z5ZlE9PSIsCiBbIm5hbWUiXSA9ICJURlJhaWRfTG92ZUhhdGVSdW4iLAogWyJsb2FkIl0gPSB7CiAgWyJjbGFzcyJdID0gIiIsCiAgWyJhbHdheXMiXSA9IGZhbHNlLAogIFsiem9uZSJdID0gIiIsCiB9LAogWyJjYXRlZ29yeSJdID0gIkxTIiwKIFsidHlwZSJdID0gImV2ZW50cyIsCiBbInNpbmdsZWNvbW1hbmQiXSA9IGZhbHNlLAogWyJjb21tYW5kIl0gPSAiIiwKfQ==[/CODE]
NOTE: Label spot on map so you can place the campfire at the same spot every raid!
 
Last edited:
Here are my quality of life lems:

[CODE lang="Lua" title="Hunter Helper"]cmV0dXJuIHsKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAogWyJjYXRlZ29yeSJdID0gIlFvTCIsCiBbImNvZGUiXSA9ICJMUzB0UUhSNWNHVWdUWEVLYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ290TFMxQWNtVjBkWEp1SUdKdmIyeGxZVzRnUUZKbGRIVnlibk1nZEhKMVpTQnBaaUIwYUdVZ1lXTjBhVzl1SUhOb2IzVnNaQ0JtYVhKbExDQnZkR2hsY25kcGMyVWdabUZzYzJVdUNteHZZMkZzSUdaMWJtTjBhVzl1SUdOdmJtUnBkR2x2YmlncENpQWdJQ0J5WlhSMWNtNGdiWEV1VkV4UExsUmhjbWRsZEM1T1lXMWxaQ2dwSUQwOUlIUnlkV1VLWlc1a0NncHNiMk5oYkNCbWRXNWpkR2x2YmlCaFkzUnBiMjRvS1FvZ0lDQWdiRzlqWVd3Z2JtOXlZV2xrSUQwZ2JYRXVWRXhQTGxKaGFXUXVUV1Z0WW1WeWN5Z3BJRDA5SURBS0lDQWdJR2xtSUc1dmNtRnBaQ0E5UFNCMGNuVmxJSFJvWlc0S0lDQWdJQ0FnSUNCd2NtbHVkQ2duU1c1MmFYUnBibWNnY0dWdmNHeGxJSFJ2SUhSb1pTQnlZV2xrSUdKaGMyVmtJRzltSUdaeWFXVnVaSE1nYkdsemRDNG5LUW9nSUNBZ0lDQWdJR3h2WTJGc0lHNTFiVVp5YVdWdVpITWdQU0J0Y1M1VVRFOHVSbkpwWlc1a2N5Z3BDaUFnSUNBZ0lDQWdabTl5SUdrZ1BTQXhMQ0J1ZFcxR2NtbGxibVJ6SUdSdkNpQWdJQ0FnSUNBZ0lDQWdJR3h2WTJGc0lHWnlhV1Z1WkU1aGJXVWdQU0J0Y1M1VVRFOHVSbkpwWlc1a2N5NUdjbWxsYm1Rb2FTa29LUW9nSUNBZ0lDQWdJQ0FnSUNCdGNTNWpiV1FvSnk5eVlXbGthVzUyYVhSbElDY2dMaTRnWm5KcFpXNWtUbUZ0WlNrS0lDQWdJQ0FnSUNBZ0lDQWdiWEV1WkdWc1lYa29NVEF3S1FvZ0lDQWdJQ0FnSUdWdVpBb2dJQ0FnWlc1a0NpQWdJQ0IzYUdsc1pTQnRjUzVVVEU4dVZHRnlaMlYwTGs1aGJXVmtLQ2tnUFQwZ2RISjFaU0JrYndvZ0lDQWdJQ0FnSUcxeExtUmxiR0Y1S0RFd01EQXBDaUFnSUNCbGJtUUtJQ0FnSUhCeWFXNTBLQ2RMYVdOcmFXNW5JSFJvWlNCeVlXbGtMaWNwQ2lBZ0lDQnRjUzVrWld4aGVTZzFNREF3S1FvZ0lDQWdiWEV1WTIxa0tDY3ZhMmxqYTNBZ2NtRnBaQ2NwQ2lBZ0lDQnRjUzVrWld4aGVTZ3hNREF3S1FvZ0lDQWdjSEpwYm5Rb0oxUmxjM1JwYm1jZ1lTQnNiMjVuWlhJZ1pHVnNZWGtnWVc1a0lHNWxkeUJtZFc1amRHbHZiaUIwYnlCcmFXTnJJSEpoYVdRdUp5a0tJQ0FnSUcxeExtTnRaQzV1YjNScFpua29KME52Ym1acGNtMWhkR2x2YmtScFlXeHZaMEp2ZUNCWlpYTmZRblYwZEc5dUlHeGxablJ0YjNWelpYVndKeWtLWlc1a0Nnb0tjbVYwZFhKdUlIdGpiMjVrWm5WdVl6MWpiMjVrYVhScGIyNHNJR0ZqZEdsdmJtWjFibU05WVdOMGFXOXVmUT09IiwKIFsibmFtZSJdID0gIkh1bnRlckhlbHBlciIsCn0=[/CODE]
NOTE: This when active will invite any one on your friends list to a raid when your toon targets any named in EQ. Then once the named is killed will kick raid back to group 5 seconds after kill. Ensure any one on your friends list is on autoaccept so you do not get late accept raid request after you have killed the named and kicked raid. No longer do you need to do massive hunter raids with no xp gains. Now you can grind xp and hunter raid at same time!!!!

[CODE lang="Lua" title="Auto Buy Dragon Glyph"]cmV0dXJuIHsKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAogWyJjYXRlZ29yeSJdID0gIlFvTCIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHNiMk5oYkNCbWRXNWpkR2x2YmlCamIyNWthWFJwYjI0b0tRb2dJQ0FnY21WMGRYSnVJRzF4TGxSTVR5NUJiSFJCWW1sc2FYUjVLQ0kxTVRBMElpa3VRMkZ1VkhKaGFXNG9LUXBsYm1RS0NteHZZMkZzSUdaMWJtTjBhVzl1SUdGamRHbHZiaWdwQ2lBZ0lDQnRjUzVqYldRb0p5OWhiSFFnWW5WNUlEVXhNRFFuS1FwbGJtUUtDbkpsZEhWeWJpQjdZMjl1WkdaMWJtTTlZMjl1WkdsMGFXOXVMQ0JoWTNScGIyNW1kVzVqUFdGamRHbHZibjA9IiwKIFsibmFtZSJdID0gIkdseXBob2ZEcmFnb25TY2FsZXMiLAp9[/CODE]
NOTE: Only buys does not spend, you manually still do that.

[CODE lang="Lua" title="Auto buy DPS glyph"]cmV0dXJuIHsKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAogWyJjYXRlZ29yeSJdID0gIlFvTCIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENncHNiMk5oYkNCbWRXNWpkR2x2YmlCamIyNWthWFJwYjI0b0tRb2dJQ0FnY21WMGRYSnVJRzF4TGxSTVR5NUJiSFJCWW1sc2FYUjVLQ0kxTXpBMElpa3VRMkZ1VkhKaGFXNG9LUXBsYm1RS0NteHZZMkZzSUdaMWJtTjBhVzl1SUdGamRHbHZiaWdwQ2lBZ0lDQnRjUzVqYldRb0p5OWhiSFFnWW5WNUlEVXpNRFFuS1FwbGJtUUtDbkpsZEhWeWJpQjdZMjl1WkdaMWJtTTlZMjl1WkdsMGFXOXVMQ0JoWTNScGIyNW1kVzVqUFdGamRHbHZibjA9IiwKIFsibmFtZSJdID0gIkdseXBob2ZVbHRpbWF0ZVBvd2VyIiwKfQ==[/CODE]
NOTE: Only buys does not spend, you manually still do that.

[CODE title="Auto Turn on Tribute"]cmV0dXJuIHsKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAogWyJjYXRlZ29yeSJdID0gIlFvTCIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENteHZZMkZzSUdaMWJtTjBhVzl1SUdOdmJtUnBkR2x2YmlncENpQWdJQ0J5WlhSMWNtNGdiWEV1VkV4UExsSmhhV1F1VFdWdFltVnljeWdwSUQ0OU1TQmhibVFnYlhFdVZFeFBMazFsTGxSeWFXSjFkR1ZCWTNScGRtVW9LU0E5UFNCbVlXeHpaUXBsYm1RS2JHOWpZV3dnWm5WdVkzUnBiMjRnWVdOMGFXOXVLQ2tLSUNBZ0lHMXhMbU50WkNnbkwzUnlhV0oxZEdVZ2NHVnljMjl1WVd3Z2IyNG5LUW9nSUNBZ2JYRXVZMjFrS0NjdmRISnZjR2g1SUhCbGNuTnZibUZzSUc5dUp5a0taVzVrQ25KbGRIVnliaUI3WTI5dVpHWjFibU05WTI5dVpHbDBhVzl1TENCaFkzUnBiMjVtZFc1alBXRmpkR2x2Ym4wPSIsCiBbIm5hbWUiXSA9ICJUcmlidXRlX09uIiwKfQ==[/CODE]
NOTE: This will automatically turn on tribute if a toon is in a raid.

[CODE lang="Lua" title="Auto Turn off Tribute"]cmV0dXJuIHsKIFsibG9hZCJdID0gewogIFsiY2xhc3MiXSA9ICIiLAogIFsiYWx3YXlzIl0gPSBmYWxzZSwKICBbInpvbmUiXSA9ICIiLAogfSwKIFsidHlwZSJdID0gImNvbmRpdGlvbnMiLAogWyJjYXRlZ29yeSJdID0gIlFvTCIsCiBbImNvZGUiXSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENteHZZMkZzSUdaMWJtTjBhVzl1SUdOdmJtUnBkR2x2YmlncENpQWdJQ0J5WlhSMWNtNGdiWEV1VkV4UExsSmhhV1F1VFdWdFltVnljeWdwSUQwOUlEQWdZVzVrSUcxeExsUk1UeTVOWlM1VWNtbGlkWFJsUVdOMGFYWmxLQ2tnUFQwZ2RISjFaUXBsYm1RS2JHOWpZV3dnWm5WdVkzUnBiMjRnWVdOMGFXOXVLQ2tLSUNBZ0lHMXhMbU50WkNnbkwzUnlhV0oxZEdVZ2NHVnljMjl1WVd3Z2IyWm1KeWtLSUNBZ0lHMXhMbU50WkNnbkwzUnliM0JvZVNCd1pYSnpiMjVoYkNCdlptWW5LUXBsYm1RS2NtVjBkWEp1SUh0amIyNWtablZ1WXoxamIyNWthWFJwYjI0c0lHRmpkR2x2Ym1aMWJtTTlZV04wYVc5dWZRPT0iLAogWyJuYW1lIl0gPSAiVHJpYnV0ZV9PZmYiLAp9[/CODE]
NOTE: This will automatically turn off tribute if not in a raid.
 
Release Lua Event Manager (LEM) Event Library

Users who are viewing this thread

Back
Top
Cart