|  | 
    Barebones Summoner Gearswap
 
    
        
        
        
            
            
                
			
			By Draylo 2015-11-06 16:43:51			
			
						
                     
                 Some things I'd suggest adding:
 Odin BP dmg+ set
 
 Alexander skill set? Didn't try to cast it but I don't see in there.
 
 No PDT set, does it interfere with anything if you just equip it and summon an avatar? Will it automatically not equip the PDT gear?
 
 Idle set for a spirit with af2 legs being equipped or skill gear?
 
 No movement speed toggle, I guess you can just add it to idle set since you don't want it with avatar out but it is an option.
 
 One of the biggest ones I thought needed to be added: Macc for BP's, Pacc for phy bp's and a toggle or set for magic bursting. With AF2 hands being better for merit bp MB's, there should be a toggle. Macc/Pacc for higher content or when w/o GEO would be a nice toggle as well.
 
            
                
                    
                    
                    
                                                            
                                                    
                                                                            
                                Server: Asura Game: FFXI Posts: 1518 
                
			
			By Asura.Pergatory 2015-11-06 19:27:01			
			
						
                     
                 For movement speed, what I've done recently is set it up so that if I have Quickening (Fleet Wind), it uses Gaiters in my perp build. If I'm just in town or something I manually swap them. 
One thing I'd suggest adding to this is Zodiac Ring for Elemental Siphon on the appropriate days. Here's the relevant section from mine:
 Code  elseif spell.name=="Elemental Siphon" then
	if pet.element=="Light" or pet.element=="Dark" then
		equip(sets.midcast.Siphon)
	else
		equip(sets.midcast.Siphon,{ring2="Zodiac Ring"})
	end
And yeah I recently added a toggle for magic bursting as well, it's very helpful.                                     
            
            
                
			
			By Draylo 2015-11-06 22:07:59			
			
						
                     
                 What is your toggle?                                     
            
            
                
			
			By Elizabet 2015-11-06 22:51:13			
			
						
                     
                 I updated the github setup with toggle for MB gloves. I'm binding it to f7 (you can change that) or just use the //gs c toggle mb command. 
I added also a Macc and Pacc set to be used instead of Mab / Atk sets if you toggled your avatar mode to "acc"
 
Is that really a thing? 
 Quote:  Alexander skill set? Didn't try to cast it but I don't see in there.
It's in there. (check midcast) I've added a condition to idle in skill gear when you summon Alex too just in case.
 Quote:  No PDT set, does it interfere with anything if you just equip it and summon an avatar? Will it automatically not equip the PDT gear?
I usually avoid that on SMN cause 1) dont need to stand in AoE range to do your thing and 2) I never know what's the priority someone would want and I just end up slotting some pdt in my idle set where I can... 
 Quote:  Idle set for a spirit with af2 legs being equipped or skill gear?
Can do, bu I've not used a spirit for ages outside of siphon. So never felt this was needed...
 Quote:  No movement speed toggle, I guess you can just add it to idle set since you don't want it with avatar out but it is an option.
I just use Fleeting wind >.>; I'm a scrub with no gaiters.. Pergatory's idea is a good one though                                     
            
            
                
			
			By Draylo 2015-11-06 23:08:18			
			
						
                     
                 Quote:  I updated the github setup with toggle for MB gloves. I'm binding it to f7 (you can change that) or just use the //gs c toggle mb command.
 I added also a Macc and Pacc set to be used instead of Mab / Atk sets if you toggled your avatar mode to "acc"
That is awesome!
 Quote:  Is that really a thing? 
BP dmg+ does work on it so yes why not? I guess it goes against the "barebones" but I hate basic when you can eventually cover all situations if people are going to use this. 
 Quote:  I usually avoid that on SMN cause 1) dont need to stand in AoE range to do your thing and 2) I never know what's the priority someone would want and I just end up slotting some pdt in my idle set where I can... 
Priority should be avatar idle gear > PDT and hitting the macro or toggle again will re-equip it. I can think of many many situations where PDT would be a life saver, even on SMN. One situation that comes to mind is if your avatar dies and something is running for you... 
 
Some other things that came to mind, Elemental magic set as I can't figure out how to add it to this. If you intend to keep it "basic only" I guess I have to just work with motes, too much stuff missing for my tastes. No offense by that as its a nice GS for people doing summon things only.                                     
            
            
                
			
			By Elizabet 2015-11-06 23:14:10			
			
						
                     
                 According to http://ffxiclopedia.wikia.com/wiki/Zantetsuken 
Zantetsuken is dark elemental magic dmg. So I added it to the list of magic BP. So using it should trigger using the pet.mab set or pet.macc set if you are in 'acc' mode (would help for resist on higher level content)
 
Let me know if I got that wrong.
 
Github updated as of this post                                     
            
            
                
			
			By Draylo 2015-11-06 23:24:33			
			
						
                     
                 I don't think anything effects it except BPD+. Might wanna see if Pappesse can comment, that seems fine though.
 Something else that would be useful, carbuncle/cait sith mitts when they are summoned and AF3 hands/caller neck during weather/day which would allow for other options with that -perp.
 
 Edit: Actually with those changes I like it a lot better now lol. Just missing Elemental Magic really, as I do nuke /sch in some cases.
 
            
            
                
			
			By Elizabet 2015-11-06 23:43:08			
			
						
                     
                 Just added the Carbi / Cait mitts. I had forgotten about those and meant to do that for a while, thanks for the reminder. 
They swap after idle (ie: we equip idle, then if carb / cait, swap hands accordingly.) And they also swap over at the end of pet_midcast (for BP) since I am assuming the level +1 is the better option for the slot.
 
Oh the nuking set functionality is already there, been there from the start. Just need to define the sets.midcast.casting set.
 
There is also a catch all for individual spells or abilities.. if you make a sets.midcast["My Spell"] = {you set here} set.
 
Idem for precast.                                             
                    [+]
                                              
            
                
                    
                    
                    
                                                            
                                                    
                                                                            
                                Server: Bahamut Game: FFXI Posts: 879 
                
			
			By Bahamut.Seekerstar 2015-11-07 01:10:50			
			
						
                     
                 Yessssss Verda gimme yer GS <.< I require this!                                             
                    [+]
                                              
            
            
                
			
			By Draylo 2015-11-07 01:13:43			
			
						
                     
                 Nothing wrong with multiple gearswaps available, it's nice to have a variety to pick and choose depending on your tastes.                                             
                    [+]
                                              
            
                
                     Valefor.Pairak
                                                    
                                                                            
                                Server: Valefor Game: FFXI Posts: 30 
                
			
			By Valefor.Pairak 2015-11-16 12:53:42			
			
						
                     
                 Hello, I am using the latest updated version of Elizabet's script, but when I make my macros (f.eks /console gs c pact bp75) the game returns with f.eks "/pet "Meteor Strike"... A command error occurred.
 Seems to lack a target part, how do I fix this? in the script it say "Leave out target; let Shortcuts auto-determine it."
 Anything I need to do for this to happen?
 
            
            
                
			
			By Elizabet 2015-11-16 23:41:41			
			
						
                     
                 Seems to lack a target part, how do I fix this? in the script it say "Leave out target; let Shortcuts auto-determine it."Anything I need to do for this to happen?
Load the add-on called "Shortcuts" on your windower startup. (It's required for that to work.) The intention is so that we don't have to handle the <t> / <me> finicky parts of the BP command and let the Shortcuts add-on do it for us. 
 
-------
 
Shortcuts is a great add-on that lets you cast stuff by typing short version of things, like:
 
//sneak 
 
Will cast sneak on your target, or you if yo udont have a target instead of having to type out [/ma "Sneak" <t>] You can also give it parts of players name like:
 
//cure4 dray
 
Would cast cure IV on Draylo if he's around. I use it for all the things I don't have a macro for. (like sneak / invis)
 
Side note:
 Quote:  I'm binding it to f7 (you can change that) or just use the //gs c toggle mb command.
This is a toggle, but it's not a smart one. If you toggle it on, it's on. I doesn't look for specific avatars or buffs. (I feel its not necessary) But you should only be toggling this feature on when 
 
A) you know you are going to be MBing.  
B) you have 4/5 or 5/5 in the merit BP. (IIRC, the bonus based on a per merit level)                                     
            
                
                     Valefor.Pairak
                                                    
                                                                            
                                Server: Valefor Game: FFXI Posts: 30 
                
			
			By Valefor.Pairak 2015-11-17 02:27:42			
			
						
                     
                 yea, that solved the problem, thank you =)                                      Necro Bump Detected! 
			[159 days between previous and next post]
            
            
                
			
			By Arcto 2016-04-23 19:21:11			
			
						
                     
                 I have this in my LUA:
 sets.avatar["Carbuncle"] = {hands="Asteria Mitts +1"}
 sets.avatar["Cait Sith"] = {hands="Lamassu Mitts +1"}
 
 But it still does not equip them when they are out.  Any reason why?
 
            
                
                    
                    
                    
                                                            
                                                    
                                                                            
                                Server: Shiva Game: FFXI Posts: 694 
                
			
			By Shiva.Alistrianna 2016-04-24 19:36:32			
			
						
                     
                 I have this in my LUA:
 sets.avatar["Carbuncle"] = {hands="Asteria Mitts +1"}
 sets.avatar["Cait Sith"] = {hands="Lamassu Mitts +1"}
 
 But it still does not equip them when they are out.  Any reason why?
Do you have the rules somewhere in your lua to handle equipping those when your pets are out?  Simply adding sets will do nothing if you don't define their use elsewhere.                                     
            
            
                
			
			By Elizabet 2016-05-05 08:17:38			
			
						
                     
                 Hi Arcto! I have this in my LUA:
 sets.avatar["Carbuncle"] = {hands="Asteria Mitts +1"}
 sets.avatar["Cait Sith"] = {hands="Lamassu Mitts +1"}
 
 But it still does not equip them when they are out.  Any reason why?
If you are running the version on github, the code is set as this:
 Code  
	-- If we have cait or carbie  we switch to hands.
	if pet.name == 'Carbuncle' or pet.name == 'Cait Sith' then
			equip(sets.me[pet.name])
	end
Its a bug!!! >.<; My bad. I don't know if you have the version of the SMN.lua as is. If so, just redownload it. I've updated it. 
if you added your own mods... you need to change the line 304 and 438 (on the github file) from:
 
equip(sets.me[pet.name])
 
to 
 
equip(sets.avatar[pet.name])
 
Please let me know if that fixes it (it should) as I don't play anymore ;)                                     
            
                
                    
                    
                    
                                                            
                                                    
                                                                            
                                Server: Carbuncle Game: FFXI Posts: 45 
                
			
			By Carbuncle.Shalehonnleath 2016-05-19 02:46:22			
			
						
                     
                 This for some reason isn't using my fast cast set at all.  With avatars, enhancing, etc..  It equips my individual enhancing/cure casting time gear, but nothing in my Precast (Fast Cast) set.
 *Edit*
 Scratch that, none of the set_combine commands are working.  It only equips the gear for the sub sets, but not the main sets with any command.
 
            
            
                
			
			By Elizabet 2016-05-19 21:47:55			
			
						
                     
                 Carbuncle.Shalehonnleath said: »*Edit* Scratch that, none of the set_combine commands are working.  It only equips the gear for the sub sets, but not the main sets with any command.
I assume you are using the latest version from the github? I can't recall having issues with that. I'll double check tonight (JP time)                                     
            
                
                    
                    
                    
                                                            
                                                    
                                                                            
                                Server: Carbuncle Game: FFXI Posts: 45 
                
			
			By Carbuncle.Shalehonnleath 2016-05-20 01:03:10			
			
						
                     
                 Maybe that's my problem.  I'm using the one listed on the 1st post of this subject.  I copy and pasted it.  It's fine, I found a work around.  I just listed full sets for each sub-category and now it works fine.                                     
            
                
                     Asura.Raelia
                                                    
                                                                            
                                Server: Asura Game: FFXI Posts: 75 
                
			
			By Asura.Raelia 2016-06-16 20:48:40			
			
						
                     
                 RemoveComment out the empty ( slot="" ) entries from all sets. set_combine interprets this as 'override to nothing'.
 I thought I was having a stroke with how much it refused to equip Inyanga +1 hands.
 
            
            
                
			
			By Kingsleu 2016-06-27 00:27:27			
			
						
                     
                 So I have all the gear put into all the space, and when I try to load it it says it was successful, but the gear doesn't actually change. Code  -- Setup your Key Bindings here:  
    windower.send_command('bind f7 gs c toggle mb')
    windower.send_command('bind f9 gs c avatar mode')
    windower.send_command('bind f10 gs c toggle auto')
    windower.send_command('bind f12 gs c toggle melee')
     
     
-- Setup your Gear Sets below:
function get_sets()
  
    -- My formatting is very easy to follow. All sets that pertain to my character doing things are under 'me'.
    -- All sets that are equipped to faciliate my avatar's behaviour or abilities are under 'avatar', eg, Perpetuation, Blood Pacts, etc
      
    sets.me = {}        -- leave this empty
    sets.avatar = {}    -- leave this empty
      
    -- Your idle set when you DON'T have an avatar out
    sets.me.idle = {
        main="Bolelabunga",
        sub="Genbu's Shield",
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Sanctity Necklace",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Hagondes Coat",
        hands="Asteria Mitts +1",
        lring="Sheltered Ring",
        rring="Paguroidea Ring",
        back="Umbra Cape",
        waist="Fucho-no-Obi",
        legs="Assiduity Pants +1",
        feet="Herald's Gaiters"
    }
      
    -- Your MP Recovered Whilst Resting Set
    sets.me.resting = { 
        main="Bolelabunga",
        sub="Genbu's Shield",
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Sanctity Necklace",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Hagondes Coat",
        hands="Asteria Mitts +1",
        lring="Sheltered Ring",
        rring="Paguroidea Ring",
        back="Umbra Cape",
        waist="Fucho-no-Obi",
        legs="Assiduity Pants +1",
        feet="Herald's Gaiters"
    }
      
    -----------------------
    -- Perpetuation Related
    -----------------------
      
    -- Avatar's Out --  
    -- This is the base for all perpetuation scenarios, as seen below
    sets.avatar.perp = {
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    }
  
    -- The following sets base off of perpetuation, so you can consider them idle sets.
    -- Set the relevant gear, bearing in mind it will overwrite the perpetuation item for that slot!
    sets.avatar["Carbuncle"] = {hands="Asteria Mitts +1"}
    sets.avatar["Cait Sith"] = {hands="Lamassu Mitts +1"}
    -- When we want our avatar to stay alive
    sets.avatar.tank = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Handler's Earring",
        rear="Handler's Earring +1",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- When we want our avatar to shred
    sets.avatar.melee = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- When we want our avatar to hit
    sets.avatar.acc = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- When Avatar's Favori s active
    sets.avatar.favor = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Beckoner's Horn",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    ----------------------------
    -- Summoning Skill Related
    -- Including all blood pacts
    ----------------------------
      
    -- + Summoning Magic. This is a base set for max skill and blood pacts and we'll overwrite later as and when we need to
    sets.avatar.skill = {
        main="Tumafyrig",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Conveyance Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    }
      
    -------------------------
    -- Individual Blood Pacts
    -------------------------
      
    -- Physical damage
    sets.avatar.atk = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Helios Jacket",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
    sets.avatar.pacc = set_combine(sets.avatar.atk,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Helios Jacket",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- Magic Attack
    sets.avatar.mab = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Convoker's Doublet +1",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
    sets.avatar.mb = set_combine(sets.avatar.mab,{hands="Glyphic Bracers +1"})
    -- Hybrid
    sets.avatar.hybrid = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Convoker's Doublet +1",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- Magic Accuracy
    sets.avatar.macc = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Beckoner's Pigaches"
    })
      
    -- Buffs
    sets.avatar.buff = set_combine(sets.avatar.skill,{
        main="Tumafyrig",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    })
      
    -- Other
    sets.avatar.other = set_combine(sets.avatar.skill,{
         main="Tumafyrig",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    })
      
    -- Combat Related Sets
      
    -- Melee
    -- The melee set combines with perpetuation, because we don't want to be losing all our MP whilst we swing our Staff
    -- Anything you equip here will overwrite the perpetuation/refresh in that slot.
    sets.me.melee = set_combine(sets.avatar.perp,{
            })
      
    -- Shattersoul. Weapon Skills do not work off perpetuation as it only stays equipped for a moment
    sets.me["Shattersoul"] = {
            }
    sets.me["Garland of Bliss"] = {
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Merlinic Hood",
        neck="Fotia Gorget",
        lear="Friomisi Earring",
        rear="Crematio Earring",
        body="Witching Robe",
        hands="Helios Gloves",
        lring="Shiva Ring +1",
        rring="Weatherspoon Ring",
        back="Campestres's Cape",
        waist="Sekhmet Corset",
        legs="Merlinic Shalwar",
        feet="Merlinic Crackows"
    }
      
    -- Feel free to add new weapon skills, make sure you spell it the same as in game. These are the only two I ever use though
  
    ---------------
    -- Casting Sets
    ---------------
      
    sets.precast = {}
    sets.midcast = {}
    sets.aftercast = {}
      
    ----------
    -- Precast
    ----------
      
    -- Generic Casting Set that all others take off of. Here you should add all your fast cast  
    sets.precast.casting = {
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    }   
      
    -- Summoning Magic Cast time - gear
    sets.precast.summoning = set_combine(sets.precast.casting,{
        main="Nirvana",
        sub="Oneiros Grip",
        ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    -- Enhancing Magic, eg. Siegal Sash, etc
    sets.precast.enhancing = set_combine(sets.precast.casting,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Siegal Sash",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
  
    -- Stoneskin casting time -, works off of enhancing -
    sets.precast.stoneskin = set_combine(sets.precast.enhancing,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Impatiens",
        head="Umuthi Hat",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Siegal Sash",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    -- Curing Precast, Cure Spell Casting time -
    sets.precast.cure = set_combine(sets.precast.casting,{
        main="Serenity",
        sub="Oneiros Grip",        
        ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Heka's Kalasiris",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Pahtli Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    ---------------------
    -- Ability Precasting
    ---------------------
      
    -- Blood Pact Ability Delay
    sets.precast.bp = {
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Glyphic Doublet",
        hands="Glyphic Bracers +1",
        lring="Evoker's Ring",
        rring="Speaker's Ring",
        back="Conveyance Cape",
        waist="Lucidity Sash",
        legs="Enticer's Pants",
        feet="Glyphic Pigaches +1"
    }
      
    -- Mana Cede
    sets.precast["Mana Cede"] = {
                hands="Beckoner's Bracers"    }
      
    -- Astral Flow  
    sets.precast["Astral Flow"] = {
        head="Glyphic Horn"    }
      
    ----------
    -- Midcast
    ----------
      
    -- We handle the damage and etc. in Pet Midcast later
      
    -- Whatever you want to equip mid-cast as a catch all for all spells, and we'll overwrite later for individual spells
    sets.midcast.casting = {
            }
      
    -- Enhancing
    sets.midcast.enhancing = set_combine(sets.midcast.casting,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Umuthi Hat",
        neck="Melic Torque",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Telchine Chasuble",
        hands="Inyanga Dastanas +1",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    -- Stoneskin
    sets.midcast.stoneskin = set_combine(sets.midcast.enhancing,{
        main="Nirvana",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Umuthi Hat",
        neck="Nodens Gorget",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Telchine Chasuble",
        hands="Inyanga Dastanas +1",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Siegal Sash",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
    -- Elemental Siphon, eg, Tatsumaki Thingies, Esper Stone, etc
    sets.midcast.siphon = set_combine(sets.avatar.skill,{
        main="Keraunos",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evan's Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Conveyance Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    })
        
    -- Cure Potency
    sets.midcast.cure = set_combine(sets.midcast.casting,{
        main="Serenity",
        sub="Oneiros Grip",        
        ammo="Seraphicaller",
        head="Merlinic Hood",
        neck="Phalaina Locket",
        lear="Roundel Earring",
        rear="Mendicant's Earring",
        body="Heka's Kalasiris",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Solemnity Cape",
        waist="Gishdubar Sash",
        legs="Gyve Trousers",
        feet="Medium's Sabots"
    })
      
    ------------
    -- Aftercast
    ------------
      
    -- I don't use aftercast sets, as we handle what to equip later depending on conditions using a function, eg, do we have an avatar out?
  
end
Also where do I put the global.lua and the SMN.lua files?
 
Edit: So I tried changing it again after looking at some of the comments on the thread, and there is still nothing happening.
 Code  function set_macros(sheet,book)
    if book then 
        send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(sheet))
        return
    end
    send_command('@input /macro set '..tostring(sheet))
end
 
function set_style(sheet)
    send_command('@input /lockstyleset '..sheet)
end
 
bp_physical=S{'Punch','Rock Throw','Barracuda Dive','Claw','Axe Kick','Shock Strike','Camisado','Regal Scratch','Poison Nails','Moonlit Charge','Crescent Fang','Rock Buster','Tail Whip','Double Punch','Megalith Throw','Double Slap','Eclipse Bite','Mountain Buster','Spinning Dive','Predator Claws','Rush','Chaotic Strike','Crag Throw','Volt Strike'}bp_hybrid=S{'Burning Strike','Flaming Crush'}bp_magical=S{'Inferno','Earthen Fury','Tidal Wave','Aerial Blast','Diamond Dust','Judgment Bolt','Searing Light','Howling Moon','Ruinous Omen','Fire II','Stone II','Water II','Aero II','Blizzard II','Thunder II','Thunderspark','Somnolence','Meteorite','Fire IV','Stone IV','Water IV','Aero IV','Blizzard IV','Thunder IV','Nether Blast','Meteor Strike','Geocrush','Grand Fall','Wind Blade','Heavenly Strike','Thunderstorm','Level ? Holy','Holy Mist','Lunar Bay','Night Terror','Conflag Strike'}bp_debuff=S{'Lunar Cry','Mewing Lullaby','Nightmare','Lunar Roar','Slowga','Ultimate Terror','Sleepga','Eerie Eye','Tidal Roar','Diamond Storm','Shock Squall','Pavor Nocturnus'}bp_buff=S{'Shining Ruby','Frost Armor','Rolling Thunder','Crimson Howl','Lightning Armor','Ecliptic Growl','Hastega','Noctoshield','Ecliptic Howl','Dream Shroud','Earthen Armor','Fleet Wind','Inferno Howl','Soothing Ruby','Heavenward Howl','Soothing Current','Hastega II','Crystal Blessing'}bp_other=S{'Healing Ruby','Raise II','Aerial Armor','Reraise II','Whispering Wind','Glittering Ruby','Earthen Ward','Spring Water','Healing Ruby II'} AvatarList=S{'Shiva','Ramuh','Garuda','Leviathan','Diabolos','Titan','Fenrir','Ifrit','Carbuncle','Fire Spirit','Air Spirit','Ice Spirit','Thunder Spirit','Light Spirit','Dark Spirit','Earth Spirit','Water Spirit','Cait Sith','Alexander','Odin','Atomos'}spirit_element={Fire='Fire Spirit',Earth='Earth Spirit',Water='Water Spirit',Wind='Air Spirit',Ice='Ice Spirit',Lightning='Thunder Spirit',Light='Light Spirit',Dark='Dark Spirit'}spirit_conflict={Fire='Ice',Earth='Lightning',Water='Fire',Wind='Earth',Ice='Wind',Lightning='Water',Light='Dark',Dark='Light'}
-- Setup your Key Bindings here:  
    windower.send_command('bind f7 gs c toggle mb')
    windower.send_command('bind f9 gs c avatar mode')
    windower.send_command('bind f10 gs c toggle auto')
    windower.send_command('bind f12 gs c toggle melee')
     
     
-- Setup your Gear Sets below:
function get_sets()
  
    -- My formatting is very easy to follow. All sets that pertain to my character doing things are under 'me'.
    -- All sets that are equipped to faciliate my avatar's behaviour or abilities are under 'avatar', eg, Perpetuation, Blood Pacts, etc
      
    sets.me = {}        -- leave this empty
    sets.avatar = {}    -- leave this empty
      
    -- Your idle set when you DON'T have an avatar out
    sets.me.idle = {
        main="Bolelabunga",
        sub="Genbu's Shield",
	   -- ranged="",
        ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Sanctity Necklace",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Hagondes Coat",
        hands="Asteria Mitts +1",
        lring="Sheltered Ring",
        rring="Paguroidea Ring",
        back="Umbra Cape",
        waist="Fucho-no-Obi",
        legs="Assiduity Pants +1",
        feet="Herald's Gaiters"
    }
      
    -- Your MP Recovered Whilst Resting Set
    sets.me.resting = { 
        main="Bolelabunga",
        sub="Genbu's Shield",
	-- ranged="",        
	ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Sanctity Necklace",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Hagondes Coat",
        hands="Asteria Mitts +1",
        lring="Sheltered Ring",
        rring="Paguroidea Ring",
        back="Umbra Cape",
        waist="Fucho-no-Obi",
        legs="Assiduity Pants +1",
        feet="Herald's Gaiters"
    }
      
    -----------------------
    -- Perpetuation Related
    -----------------------
      
    -- Avatar's Out --  
    -- This is the base for all perpetuation scenarios, as seen below
    sets.avatar.perp = {
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    }
  
    -- The following sets base off of perpetuation, so you can consider them idle sets.
    -- Set the relevant gear, bearing in mind it will overwrite the perpetuation item for that slot!
    sets.avatar["Carbuncle"] = {hands="Asteria Mitts +1"}
    sets.avatar["Cait Sith"] = {hands="Lamassu Mitts +1"}
    -- When we want our avatar to stay alive
    sets.avatar.tank = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Handler's Earring",
        rear="Handler's Earring +1",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- When we want our avatar to shred
    sets.avatar.melee = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- When we want our avatar to hit
    sets.avatar.acc = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- When Avatar's Favori s active
    sets.avatar.favor = set_combine(sets.avatar.perp,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Beckoner's Horn",
        neck="Caller's Pendant",
        lear="Rimeice Earring",
        rear="Domesticator's Earring",
        body="Hagondes Coat",
        hands="Regimen Mittens",
        lring="Evoker's Ring",
        rring="Sangoma Ring",
        back="Campestres's Cape",
        waist="Moepapa Stone",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    ----------------------------
    -- Summoning Skill Related
    -- Including all blood pacts
    ----------------------------
      
    -- + Summoning Magic. This is a base set for max skill and blood pacts and we'll overwrite later as and when we need to
    sets.avatar.skill = {
        main="Tumafyrig",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Conveyance Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    }
      
    -------------------------
    -- Individual Blood Pacts
    -------------------------
      
    -- Physical damage
    sets.avatar.atk = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Helios Jacket",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
    sets.avatar.pacc = set_combine(sets.avatar.atk,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Helios Jacket",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- Magic Attack
    sets.avatar.mab = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Convoker's Doublet +1",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
    sets.avatar.mb = set_combine(sets.avatar.mab,{hands="Glyphic Bracers +1"})
    -- Hybrid
    sets.avatar.hybrid = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Esper Earring",
        rear="Domesticator's Earring",
        body="Convoker's Doublet +1",
        hands="Apogee Mitts",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Apogee Pumps"
    })
      
    -- Magic Accuracy
    sets.avatar.macc = set_combine(sets.avatar.skill,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Helios Band",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Incarnation Sash",
        legs="Enticer's Pants",
        feet="Beckoner's Pigaches"
    })
      
    -- Buffs
    sets.avatar.buff = set_combine(sets.avatar.skill,{
        main="Tumafyrig",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    })
      
    -- Other
    sets.avatar.other = set_combine(sets.avatar.skill,{
         main="Tumafyrig",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Campestres's Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    })
      
    -- Combat Related Sets
      
    -- Melee
    -- The melee set combines with perpetuation, because we don't want to be losing all our MP whilst we swing our Staff
    -- Anything you equip here will overwrite the perpetuation/refresh in that slot.
    sets.me.melee = set_combine(sets.avatar.perp,{
            })
      
    -- Shattersoul. Weapon Skills do not work off perpetuation as it only stays equipped for a moment
    sets.me["Shattersoul"] = {
	-- main="",
        -- sub="",
        -- ranged="",
        -- ammo="",
        -- head="",
        -- neck="",
        -- lear="",
        -- rear="",
        -- body="",
        -- hands="",
        -- lring="",
        -- rring="",
        -- back="",
        -- waist="",
        -- legs="",
        -- feet=""
            }
    sets.me["Garland of Bliss"] = {
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Merlinic Hood",
        neck="Fotia Gorget",
        lear="Friomisi Earring",
        rear="Crematio Earring",
        body="Witching Robe",
        hands="Helios Gloves",
        lring="Shiva Ring +1",
        rring="Weatherspoon Ring",
        back="Campestres's Cape",
        waist="Sekhmet Corset",
        legs="Merlinic Shalwar",
        feet="Merlinic Crackows"
    }
      
    -- Feel free to add new weapon skills, make sure you spell it the same as in game. These are the only two I ever use though
  
    ---------------
    -- Casting Sets
    ---------------
      
    sets.precast = {}
    sets.midcast = {}
    sets.aftercast = {}
      
    ----------
    -- Precast
    ----------
      
    -- Generic Casting Set that all others take off of. Here you should add all your fast cast  
    sets.precast.casting = {
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    }   
      
    -- Summoning Magic Cast time - gear
    sets.precast.summoning = set_combine(sets.precast.casting,{
        main="Nirvana",
        sub="Oneiros Grip",
-- ranged="",        
ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    -- Enhancing Magic, eg. Siegal Sash, etc
    sets.precast.enhancing = set_combine(sets.precast.casting,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Siegal Sash",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
  
    -- Stoneskin casting time -, works off of enhancing -
    sets.precast.stoneskin = set_combine(sets.precast.enhancing,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Impatiens",
        head="Umuthi Hat",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Inyanga Jubbah +1",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Siegal Sash",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    -- Curing Precast, Cure Spell Casting time -
    sets.precast.cure = set_combine(sets.precast.casting,{
        main="Serenity",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Impatiens",
        head="Merlinic Hood",
        neck="Jeweled Collar",
        lear="Loquacious Earring",
        rear="Mendicant's Earring",
        body="Heka's Kalasiris",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Pahtli Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    ---------------------
    -- Ability Precasting
    ---------------------
      
    -- Blood Pact Ability Delay
    sets.precast.bp = {
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evans Earring",
        rear="Andoaa Earring",
        body="Glyphic Doublet",
        hands="Glyphic Bracers +1",
        lring="Evoker's Ring",
        rring="Speaker's Ring",
        back="Conveyance Cape",
        waist="Lucidity Sash",
        legs="Enticer's Pants",
        feet="Glyphic Pigaches +1"
    }
      
    -- Mana Cede
    sets.precast["Mana Cede"] = {
     -- main="",
        -- sub="",
        -- ranged="",
        -- ammo="",
        -- head="",
        -- neck="",
        -- lear="",
        -- rear="",
        -- body="",
        hands="Beckoner's Bracers",
        -- lring="",
        -- rring="",
        -- back="",
        -- waist="",
        -- legs="",
        -- feet=""           
	    }
      
    -- Astral Flow  
    sets.precast["Astral Flow"] = {
     -- main="",
        -- sub="",
        -- ranged="",
        -- ammo="",
        head="Glyphic Horn",
        -- neck="",
        -- lear="",
        -- rear="",
        -- body="",
        -- hands="",
        -- lring="",
        -- rring="",
        -- back="",
        -- waist="",
        -- legs="",
        -- feet=""   
	    }
      
    ----------
    -- Midcast
    ----------
      
    -- We handle the damage and etc. in Pet Midcast later
      
    -- Whatever you want to equip mid-cast as a catch all for all spells, and we'll overwrite later for individual spells
    sets.midcast.casting = {
	   main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Umuthi Hat",
        neck="Melic Torque",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Telchine Chasuble",
        hands="Inyanga Dastanas +1",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
            }
      
    -- Enhancing
    sets.midcast.enhancing = set_combine(sets.midcast.casting,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Umuthi Hat",
        neck="Melic Torque",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Telchine Chasuble",
        hands="Inyanga Dastanas +1",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Witful Belt",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
      
    -- Stoneskin
    sets.midcast.stoneskin = set_combine(sets.midcast.enhancing,{
        main="Nirvana",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Umuthi Hat",
        neck="Nodens Gorget",
        lear="Loquacious Earring",
        rear="Andoaa Earring",
        body="Telchine Chasuble",
        hands="Inyanga Dastanas +1",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Swith Cape",
        waist="Siegal Sash",
        legs="Psycloth Lappas",
        feet="Regal Pumps +1"
    })
    -- Elemental Siphon, eg, Tatsumaki Thingies, Esper Stone, etc
    sets.midcast.siphon = set_combine(sets.avatar.skill,{
        main="Keraunos",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Convoker's Horn +1",
        neck="Caller's Pendant",
        lear="Evan's Earring",
        rear="Andoaa Earring",
        body="Beckoner's Doublet",
        hands="Lamassu Mitts +1",
        lring="Evoker's Ring",
        rring="Fervor Ring",
        back="Conveyance Cape",
        waist="Lucidity Sash",
        legs="Beckoner's Spats",
        feet="Rubeus Boots"
    })
        
    -- Cure Potency
    sets.midcast.cure = set_combine(sets.midcast.casting,{
        main="Serenity",
        sub="Oneiros Grip",        
-- ranged="",        
ammo="Seraphicaller",
        head="Merlinic Hood",
        neck="Phalaina Locket",
        lear="Roundel Earring",
        rear="Mendicant's Earring",
        body="Heka's Kalasiris",
        hands="Helios Gloves",
        lring="Lebeche Ring",
        rring="Weatherspoon Ring",
        back="Solemnity Cape",
        waist="Gishdubar Sash",
        legs="Gyve Trousers",
        feet="Medium's Sabots"
    })
      
    ------------
    -- Aftercast
    ------------
      
    -- I don't use aftercast sets, as we handle what to equip later depending on conditions using a function, eg, do we have an avatar out?
  
end
Can someone tell me what I broke please?                                      Necro Bump Detected! 
			[185 days between previous and next post]
            
                
                     Valefor.Tahn
                                                    
                                                                            
                                Server: Valefor Game: FFXI Posts: 7 
                
			
			By Valefor.Tahn 2016-12-28 20:09:36			
			
						
                     
                 Hello, sorry to bother you all. I have a few problems I was wondering if someone could help me with?
 1. I messed something up with my lua and now I get an error when it loads (something about line 240?)
 2. I can't seem to get the console bp70 etc macros to work
 3. It's not accepting my Helios band as being in the lua after I changed it from previous equipment.
 
 If someone can tell me how to paste my code on here without it taking up an entire page, I'll post it for you to check.
  Necro Bump Detected! 
			[425 days between previous and next post]
            
            
                
			
			By mikun 2018-02-27 02:25:29			
			
						
                     
                 Hey my dear summoners, I'm new to smn and been looking for a lua.  Thinking about utilizing this one but I'm seeing a lot changes have been made after each version release and, obviously the post was 2 years old think a lot have changed?  If somebody doesn't mind sharing the most updated one, it would be greatly appreciated.Thanks guys
  Necro Bump Detected! 
			[150 days between previous and next post]
            
            
                
			
			By Elizabet 2018-07-27 02:12:03			
			
						
                     
                 
            
                
                    
                    
                    
                                                            
                                                    
                                                                            
                                Server: Asura Game: FFXI Posts: 50 
                
			
			By Asura.Jackflashh 2018-08-01 20:30:09			
			
						
                     
                 This is a great Lua, thank you.                                     
            
            
                
			
			By Elizabet 2018-08-06 05:33:28			
			
						
                     
                 Update 6/08/2018https://github.com/Tunaliz/Liz_Gearswaps 
As usual, you need only overwrite the SMN.lua to get the updates leaving your SMN_Gearsets.lua file intact to keep your sets the way you want them.
 
Bug fixed: Issue with melee-ing sets not applying when pet is out has been resolved. Do note, you still need to toggle weapons locked for melee-ing sets to activate over pet sets. The reason is because I don't know if you are engaged because you have trusts active or if you actually intend to melee. So hit F12, or use //gs c toggle melee when you wanna prioritize melee sets.
 
If you have modified the SMN.lua on your own. You need to replace the Idle(pet) function with this updated one.
 Code  function idle(pet)
 
    -- This function is called after every action, and handles which set to equip depending on what we're doing
    -- We check if we're meleeing because we don't want to idle in melee gear when we're only engaged for trusts
     
    if meleeing and player.status=='Engaged' then   
        -- We're both engaged and meleeing, meleeing priority over all.
        equip(sets.me.melee)     
	elseif pet.isvalid then
		if pet.name == 'Alexander' then       
			-- We have Alexander so we want idle in max skill instead.
			equip(sets.avatar.skill)	
		else 
			-- We have a non-Alexander pet out but we're not meleeing, set the right idle set
			equip(sets.avatar[mode])
		end
		if pet.name == 'Carbuncle' or pet.name == 'Cait Sith' then
			-- If we have cait or carbie  we switch hands to those things.
			equip(sets.avatar[pet.name])		
		end
		if favor then
			-- Avatar's favor set just, or should just swap to beckoner's horn +1 for head.
			--[[ 
				Assuming your favor set is this:
				sets.avatar.favor = {
					head="Beckoner's Horn +1",
				}
			--]]
			equip(sets.avatar.favor)
		end
    else
        -- We're not meleeing and we have no pet out
        equip(sets.me.idle)     
    end
end
Also make sure your Favor set is just: Code      -- When Avatar's Favor is active
    sets.avatar.favor = {
		head="Beckoner's Horn +1",
    }  Necro Bump Detected! 
			[52 days between previous and next post]
            
            
                
			
			By Olopher 2018-09-27 13:06:05			
			
						
                     
                 i am having an issue getting the precast for bp delay to work                                     
    
    
        
        GitHub: Thanks to Elizabet for hosting this on GitHub
People have been having issues with Mote's SMN Gearswap recently. After lengthy conversations on the topic as well as going through his files, I believe the files themselves are to blame. Several people, evidently myself included, have not had issues with custom SMN Lua files. As a result, and due to several requests, I've decided to post my Lua to provide a viable alternative to Mote's. I make no elaborate claims that this is better (or worse, for that matter), I'm sharing purely so people can try it for themselves.
 
I give my personal guarantee that everything worked 100% at the time of posting, tested numerous times with Abyssea Revitalizers.
 
The inline comments should assist you in setting this up. You'll find it's much simpler than most SMN Luas. With no disrespect meant to people who have helped people out with Gear Swap, I find SMN Luas in particular to be way more complicated than they need to be, often containing dozens of lines of superfluous code.
What this Lua is: What this Lua is not:SimpleDoes not rely on lengthy includes or libraries, which will make it easier to trouble shoot should part of it not be working correctly at some pointCut and paste ready. I've even taken the liberty of not adding gear so you can type yours in quicker
 ComplicatedNirvana ready. I don't and will never own a Nirvana so Aftermaths are moot to me. If enough people want this, I'm happy to add it thoughThe best of the bestest all others suck etc, judge for yourself
 
With that said, here we go. This comes in two files: firstly, global.lua, which contains a list of blood pacts and what not, as well as a couple of my own functions that I use in all my Lua files (like auto style lock, macro books, etc.) The second file is the lua file itself that you'll need to add your equipment to. Be sure to remove blank lines when you're done (ie, hands="".)
 
You can put the global.lua file contents at the start of your SMN.lua file if you prefer, that way you have no includes.
Global.lua: SMN.Lua:Code  function set_macros(sheet,book)
	if book then 
		send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(sheet))
		return
	end
	send_command('@input /macro set '..tostring(sheet))
end
function set_style(sheet)
	send_command('@input /lockstyleset '..sheet)
end
bp_physical=S{'Punch','Rock Throw','Barracuda Dive','Claw','Axe Kick','Shock Strike','Camisado','Regal Scratch','Poison Nails','Moonlit Charge','Crescent Fang','Rock Buster','Tail Whip','Double Punch','Megalith Throw','Double Slap','Eclipse Bite','Mountain Buster','Spinning Dive','Predator Claws','Rush','Chaotic Strike','Crag Throw','Volt Strike'}bp_hybrid=S{'Burning Strike','Flaming Crush'}bp_magical=S{'Inferno','Earthen Fury','Tidal Wave','Aerial Blast','Diamond Dust','Judgment Bolt','Searing Light','Howling Moon','Ruinous Omen','Fire II','Stone II','Water II','Aero II','Blizzard II','Thunder II','Thunderspark','Somnolence','Meteorite','Fire IV','Stone IV','Water IV','Aero IV','Blizzard IV','Thunder IV','Nether Blast','Meteor Strike','Geocrush','Grand Fall','Wind Blade','Heavenly Strike','Thunderstorm','Level ? Holy','Holy Mist','Lunar Bay','Night Terror','Conflag Strike'}bp_debuff=S{'Lunar Cry','Mewing Lullaby','Nightmare','Lunar Roar','Slowga','Ultimate Terror','Sleepga','Eerie Eye','Tidal Roar','Diamond Storm','Shock Squall','Pavor Nocturnus'}bp_buff=S{'Shining Ruby','Frost Armor','Rolling Thunder','Crimson Howl','Lightning Armor','Ecliptic Growl','Hastega','Noctoshield','Ecliptic Howl','Dream Shroud','Earthen Armor','Fleet Wind','Inferno Howl','Soothing Ruby','Heavenward Howl','Soothing Current','Hastega II','Crystal Blessing'}bp_other=S{'Healing Ruby','Raise II','Aerial Armor','Reraise II','Whispering Wind','Glittering Ruby','Earthen Ward','Spring Water','Healing Ruby II'} AvatarList=S{'Shiva','Ramuh','Garuda','Leviathan','Diabolos','Titan','Fenrir','Ifrit','Carbuncle','Fire Spirit','Air Spirit','Ice Spirit','Thunder Spirit','Light Spirit','Dark Spirit','Earth Spirit','Water Spirit','Cait Sith','Alexander','Odin','Atomos'}spirit_element={Fire='Fire Spirit',Earth='Earth Spirit',Water='Water Spirit',Wind='Air Spirit',Ice='Ice Spirit',Lightning='Thunder Spirit',Light='Light Spirit',Dark='Dark Spirit'}spirit_conflict={Fire='Ice',Earth='Lightning',Water='Fire',Wind='Earth',Ice='Wind',Lightning='Water',Light='Dark',Dark='Light'}Code  include('global.lua') -- Just a collection of functions that I use in all my GearSwaps. See below (after this code block)
set_macros(1,2) -- Sheet, Book
function get_sets()
	-- My formatting is very easy to follow. All sets that pertain to my character doing things are under 'me'.
	-- All sets that are equipped to faciliate my avatar's behaviour or abilities are under 'avatar', eg, Perpetuation, Blood Pacts, etc
	
	sets.me = {}
	sets.avatar = {}
	
	-- Your idle set when you DON'T have an avatar out
	sets.me.idle = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-- Your MP Recovered Whilst Resting Set
	sets.me.resting = {	
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-----------------------
	-- Perpetuation Related
	-----------------------
	
	-- Avatar's Out --	
	-- This is the base for all perpetuation scenarios, as seen below
	sets.avatar.perp = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	-- The following sets base off of perpetuation, so you can consider them idle sets.
	-- Set the relevant gear, bearing in mind it will overwrite the perpetuation item for that slot!
	
	-- When we want our avatar to stay alive
	sets.avatar.tank = set_combine(sets.avatar.perp,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- When we want our avatar to shred
	sets.avatar.melee = set_combine(sets.avatar.perp,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- When we want our avatar to hit
	sets.avatar.acc = set_combine(sets.avatar.perp,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- When Avatar's Favori s active
	sets.avatar.favor = set_combine(sets.avatar.perp,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	----------------------------
	-- Summoning Skill Related
	-- Including all blood pacts
	----------------------------
	
	-- + Summoning Magic. This is a base set for max skill and blood pacts and we'll overwrite later as and when we need to
	sets.avatar.skill = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-------------------------
	-- Individual Blood Pacts
	-------------------------
	
	-- Physical damage
	sets.avatar.atk = set_combine(sets.avatar.skill,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Magic Attack
	sets.avatar.mab = set_combine(sets.avatar.skill,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	-- Hybrid
	sets.avatar.hybrid = set_combine(sets.avatar.skill,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Magic Accuracy
	sets.avatar.macc = set_combine(sets.avatar.skill,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Buffs
	sets.avatar.buff = set_combine(sets.avatar.skill,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Other
	sets.avatar.other = set_combine(sets.avatar.skill,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Combat Related Sets
	
	-- Melee
	-- The melee set combines with perpetuation, because we don't want to be losing all our MP whilst we swing our Staff
	-- Anything you equip here will overwrite the perpetuation/refresh in that slot.
	sets.me.melee = set_combine(sets.avatar.perp,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Shattersoul. Weapon Skills do not work off perpetuation as it only stays equipped for a moment
	sets.me["Shattersoul"] = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	sets.me["Garland of Bliss"] = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-- Feel free to add new weapon skills, make sure you spell it the same as in game. These are the only two I ever use though
	---------------
	-- Casting Sets
	---------------
	
	sets.precast = {}
	sets.midcast = {}
	sets.aftercast = {}
	
	----------
	-- Precast
	----------
	
	-- Generic Casting Set that all others take off of. Here you should add all your fast cast	
	sets.precast.casting = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}	
	
	-- Summoning Magic Cast time - gear
	sets.precast.summoning = set_combine(sets.precast.casting,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Enhancing Magic, eg. Siegal Sash, etc
	sets.precast.enhancing = set_combine(sets.precast.casting,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	-- Stoneskin casting time -, works off of enhancing -
	sets.precast.stoneskin = set_combine(sets.precast.enhancing,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Curing Precast, Cure Spell Casting time -
	sets.precast.cure = set_combine(sets.precast.casting,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	---------------------
	-- Ability Precasting
	---------------------
	
	-- Blood Pact Ability Delay
	sets.precast.bp = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-- Mana Cede
	sets.precast["Mana Cede"] = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-- Astral Flow	
	sets.precast["Astral Flow"] = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-- Elemental Siphon, eg, Tatsumaki Thingies, Esper Stone, etc
	sets.precast.siphon = set_combine(sets.avatar.skill,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	----------
	-- Midcast
	----------
	
	-- We handle the damage and etc. in Pet Midcast later
	
	-- Whatever you want to equip mid-cast as a catch all for all spells, and we'll overwrite later for individual spells
	sets.midcast.casting = {
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	}
	
	-- Enhancing
	sets.midcast.enhancing = set_combine(sets.midcast.casting,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Stoneskin
	sets.midcast.stoneskin = set_combine(sets.midcast.enhancing,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	-- Cure Potency
	sets.midcast.cure = set_combine(sets.midcast.casting,{
		main="",
		sub="",
		ranged="",
		ammo="",
		head="",
		neck="",
		lear="",
		rear="",
		body="",
		hands="",
		lring="",
		rring="",
		back="",
		waist="",
		legs="",
		feet=""
	})
	
	------------
	-- Aftercast
	------------
	
	-- I don't use aftercast sets, as we handle what to equip later depending on conditions using a function, eg, do we have an avatar out?
end
function precast(spell)
	-- Don't swap if we're in the middle of something or our pet's doing something
	-- Stops macro spam from interfering with an action GS is already handling
    if midaction() or pet_midaction() then
        return
    end
	
	-- If we're doing a blood pact, equip our delay set IF Apogee or Astral Conduit are not active
    if (spell.type == 'BloodPactRage' or spell.type == 'BloodPactWard') and not (buffactive['Astral Conduit'] or buffactive['Apogee']) then
	
        equip(sets.precast.bp)
		
    elseif spell.type == 'SummonerPact' then
	
		-- This chunk of code handles Elemental Siphon. It will look at the current day and weather and cancel the spell to summon
		-- the right elemental. Your elemental siphon macro should summon a Dark Spirit to trigger this check
		
		-- These use the included lists in global.lua to determine the right spirit to summon
			
        if spell.name == 'Dark Spirit' then
            if world.weather_element == 'Dark' then
			
				-- Dark Weather is active, lets the spell go ahead and equips summoning precast
                equip(sets.precast.summoning)
				
			elseif world.weather_element ~= 'None' and spirit_conflict[world.day_element] ~= world.weather_element then
			
				-- It's not dark weather but there is some weather up, cancels dark and summons the right spirit
                cancel_spell()
                send_command('input /ma "%s" <me>':format(spirit_element[world.weather_element]))
				equip(sets.precast.summoning)
				
            elseif world.day_element == 'Dark' then
			
				-- It's darksday so allow the dark spirit to go ahead and equip summoning
                equip(sets.precast.summoning)
				
            else
			
				-- There is no weather up and it's not darksday, so summon the current day's spirit
                cancel_spell()				
                send_command('input /ma "%s" <me>':format(spirit_element[world.day_element]))
				equip(sets.precast.summoning)
				
            end
		else
		
			-- We're not summoning Dark Spirit, so we don't want to Siphon, which means we're summoning an avatar
			equip(sets.precast.summoning)
			
		end
		
	-- Moving on to other types of magic
	elseif spell.type == 'WhiteMagic' or spell.type == 'BlackMagic' then
	
		-- Stoneskin Precast
        if spell.name == 'Stoneskin' then
		
            windower.ffxi.cancel_buff(37)--[[Cancels stoneskin, not delayed incase you get a Quick Cast]]
            equip(sets.precast.stoneskin)
			
		-- Cure Precast
        elseif spell.name:match('Cure') or spell.name:match('Cura') then
		
            equip(sets.precast.cure)
			
		-- Enhancing Magic
        elseif spell.skill == 'Enhancing Magic' then
		
            equip(sets.precast.enhancing)
			
            if spell.name == 'Sneak' then
                windower.ffxi.cancel_buff(71)--[[Cancels Sneak]]
            end
        else
		
			-- For everything else we go with max fastcast
            equip(sets.precast.casting)
			
        end
		
	-- Summoner Abilities
	-- We use a catch all here, if the set exists for an ability, use it
	-- This way we don't need to write a load of different code for different abilities, just make a set
	
	elseif sets.precast[spell.name] then
        equip(sets.precast[spell.name])
    end
	
end
function midcast(spell)
	-- If our pet is doing something, prevents us swapping equipment too early
    if pet_midaction() then
        return
    end
	
	-- No need to annotate all this, it's fairly logical. Just equips the relevant sets for the relevant magic
	if spell.type == 'WhiteMagic' or spell.type == 'BlackMagic' then
        if spell.name == 'Stoneskin' then
            equip(sets.midcast.stoneskin)
        elseif spell.name:match('Cure') or spell.name:match('Cura') then
            equip(sets.midcast.cure)
        elseif spell.skill == 'Enhancing Magic' then
            equip(sets.midcast.enhancing)
			if spell.name:match('Protect') or spell.name:match('Shell') then
				equip({rring="Sheltered Ring"})
            end
        else
            equip(sets.midcast.casting)
        end
    elseif spell.name == 'Elemental Siphon' then
	
		-- Siphon Set
        equip(sets.precast.siphon)
		
		-- Checks if pet matches weather
        if pet.element == world.weather_element then
            equip(sets.precast.siphon,{main="Chatoyant Staff"--[[Take advantage of the weather boost]]})
		end
		
	-- And our catch all, if a set exists for this spell use it
	elseif sets.midcast[spell.name] then
		equip(sets.midcast[spell.name])
		
	-- Remember those WS Sets we defined? :)
	elseif sets.me[spell.name] then
		equip(sets.me[spell.name])
	end
end
function aftercast(spell)
	-- If our pet's doing something, Stop!
    if pet_midaction() then
        return
    end	
	
	-- If not a blood pact or summon
	if spell and (not spell.type or not string.find(spell.type,'BloodPact') and not AvatarList:contains(spell.name) or spell.interrupted) then
	
		-- Then initiate idle function to check which set should be equipped
		idle(pet)
		
	end
end
function pet_midcast(spell)
	-- Our pet is doing something
    if (spell.type == 'BloodPactRage' or spell.type == 'BloodPactWard') then
	
		-- We're going to check the lists in global.lua for matches and equip the relevant sets
		
		if bp_physical:contains(spell.name) then
		
            equip(sets.avatar.atk)
			
        elseif bp_hybrid:contains(spell.name) then
		
            equip(sets.avatar.hybrid)
			if pet.name == 'Ifrit' then
				equip({rring="Fervor Ring"})--[[Change rring to lring if you put Evoker's on your right hand]]
			end
			
        elseif bp_magical:contains(spell.name) then
		
			equip(sets.avatar.mab)
			if pet.name == 'Ifrit' then
				equip({rring="Fervor Ring"})--[[Change rring to lring if you put Evoker's on your right hand]]
			end
		elseif bp_debuff:contains(spell.name) then
		
            equip(sets.avatar.macc)
			
        elseif bp_buff:contains(spell.name) then
		
            equip(sets.avatar.buff)
			
        elseif bp_other:contains(spell.name) then
		
            equip(sets.avatar.other)
			
        elseif spell.name == 'Perfect Defense' then
		
			equip(sets.avatar.skill)
			
		else
		
			equip(sets.avatar.skill)
			
		end
	end	
end
function pet_aftercast(spell)
	
	-- Pet aftercast is simply a check for whether Conduit and Apogee are up, and then a call to our aftercast function
	-- We have a variable called autobp that we set to true or false with commands to auto repeat BPs for us
    if (buffactive['Apogee'] or buffactive['Astral Conduit']) and autobp then
        send_command('input /pet "%s" <t>':format(spell.name))
		return
	end
	
	idle(pet)
	
end
function idle(pet)
	-- This function is called after every action, and handles which set to equip depending on what we're doing
	-- We check if we're meleeing because we don't want to idle in melee gear when we're only engaged for trusts
	
	if favor then
	
		-- Avatar's favor takes priority!
		equip(sets.avatar.favor)
		
	elseif meleeing and player.status=='Engaged' then
	
		-- We're both engaged and meleeing
		equip(sets.me.melee)
		
	elseif pet.isvalid then
		
		-- We have a pet out but we're not meleeing, set the right idle set
		equip(sets.avatar[mode])
	else
	
		-- We're not meleeing and we have no pet out
		equip(sets.me.idle)
		
	end
end
function status_change(new,old)
    if new == 'Engaged' then
	
		-- If we engage check our meleeing status
		idle(pet)
		
	elseif new=='Resting' then
	
		-- We're resting
        equip(sets.me.resting)
	else
		idle(pet)
	end
end
function pet_change(pet,gain)
	-- When we summon or release an avatar
    idle(pet)
end
function self_command(command)
	local commandArgs = command
	
	-- This command takes //gs c avatar mode, where mode is what you want, eg, tank, acc, melee, etc
    if #commandArgs:split(' ') >= 2 then
        commandArgs = T(commandArgs:split(' '))
		if commandArgs[1] == 'avatar' then
			if commandArgs[2] then
				mode = tostring(commandArgs[2])
				equip(sets.avatar[mode])
				windower.add_to_chat(8,'----- Avatar set to '..mode..' mode! -----')
			end
		elseif commandArgs[1] == 'toggle' then
			if commandArgs[2] == 'auto' then
			
				-- //gs c toggle auto will toggle auto blood pacts on and off. Auto blood pact will make your GS repeat BPs under Apogee or Conduit
				-- And by repeat I mean repeat. If Conduit is up, it will SPAM the BP until Conduit is down
				if autobp then
					autobp = false
					windower.add_to_chat(8,'----- Auto BP mode Disabled -----')
				else
					autobp = true
					windower.add_to_chat(8,'----- Auto BP mode Enabled -----')
				end
			elseif commandArgs[2] == 'melee' then
			
				-- //gs c toggle melee will toggle melee mode on and off.
				-- This basically locks the slots that will cause you to lose TP if changing them,
				-- As well as equip your melee set if you're engaged
				if meleeing then
					meleeing = false
					enable('main','sub','ranged')
					windower.add_to_chat(8,'----- Weapons Unlocked, WILL LOSE TP -----')
					idle(pet)
				else
					meleeing=true
					disable('main','sub','ranged')
					windower.add_to_chat(8,'----- Weapons Locked, WILL NOT LOSE TP -----')
					idle(pet)
				end
				
			elseif commandArgs[2] == 'favor' then
					
				-- //gs c toggle favor will toggle Favor mode on and off.
				-- It won't automatically toggle, as some people like having favor active without the gear swaps for maximum effectiveness
				-- You need to toggle prioritisation yourself
				if favor then
					favor = false
					windower.add_to_chat(8,"----- Avatar's Favor Mode OFF -----")
				else
					favor = true
					windower.add_to_chat(8,"----- Avatar's Favor Mode ON -----")
				end
				
			end
		end
	end
end
-- Required variables and their initial value
meleeing = false
autobp = false
favor = false
mode = "perp"
Here's a run down on commands:
//gs c avatar [mode] 
Replace [mode] with either: perp, tank, melee, acc to set your avatar's idling equipment to a particular setup. Perp is for maximum perp- and refresh, tank for tanking, melee for doing maximum physical damage and acc for accuracy.
//gs c toggle melee 
This will toggle your character between melee mode. Initially set to false, enabling this will idle to your melee set when engaged as well as disable slots that changing items in would remove TP. With this turned off being engaged will not equip your melee gear, so you can stay engaged for the purposes of trusts whilst keeping your relevant perpetuation gear on.
//gs c toggle auto 
Initially turned off, using this command will toggle auto blood pacts on Apogee and Conduit. By auto I literally mean auto. Using a blood pact with this on will use it again instantly if you have Apogee or Conduit up. If you have Conduit up, your character will spam abilities until you either toggle this off or Conduit drops.
//gs c toggle favor 
Initially turned off, this command will toggle your character into favor prioritisation mode. This means that, with this on, Avatar's Favor set will override other idle sets, including melee. Using Avatar's Favor will not  toggle this automatically. One particular problem with lots of Luas is this assumption is made, and most end users don't know how to disable it.
 
There are times and places we want maximum Favor power, and they are quite limited. You be the judge and set this yourself when you want it.
 
--
 
If you have any questions or problems, please reply and I'll try and help. |  |