Fandom

Supernova Wiki

Wren's BLM Gearswap

204pages on
this wiki
Add New Page
Comments0 Share

This is essentially what I use on my BLM. Find me in game if you've got any questions.

Go back to my Gearswap page.

--[[ *************************************************************
 Wren's BLM gearswap .lua for SuperNova FFXI
 Save as windower/addons/GearSwap/data/BLM.lua
 
  2016-07-24 OC  - First version. Commented to help newbies. :)
  2016-08-01 OC  - Hachirin-no-Obi, Rostrum Pumps, Sync gearsets
 2016-08-06 OC  - Shadow Mantle, removed Umbra Cape and Jelly Ring
 2016-08-25 OC  - Sea Capes
 2016-08-05 OC  - Hachirin and Src. Pants are now situational
 2016-12-02 OC  - Loquacious Earring, Stone Gorget
************************************************************* --]]
 
 --[[ ******************************************************
  Gearsets - define the various sets of gear we'll wear.
****************************************************** --]]
 
 function get_sets()
 
     -- fashion set is for looking nice while lockstyled.
    -- make sure you include your top-row equipment,
    -- especially if you use a ranged or throwing weapon.
    -- I like the look of the Genie set.
    sets.fashion = {
        main        = "Claustrum",
        sub         = "Reign Grip",
        ammo        = "Phtm. Tathlum",
        head        = "Genie Tiara",
        body        = "Genie Weskit",
        hands       = "Genie Gages",
        legs        = "Genie Lappas",
        feet        = "Goliard Clogs"
    }
 
     -- idle set is worn when we're standing around doing
    -- nothing.  we want auto-refresh, movement, MP, and
    -- minus physical damage taken.
    sets.idle = {
        main        = "Claustrum",
        sub         = "Reign Grip",
        ammo        = "Phtm. Tathlum",
        head        = "Genie Tiara",
        neck        = "Lmg. Medallion +1",
        left_ear    = "Sorcerer's Earring",
        right_ear   = "Moldavite Earring",
        body        = "Src. Coat +1",
        hands       = "Src. Gloves +1",
        left_ring   = "Sorcerer's Ring",
        right_ring  = "Omn. Ring +1",
        back        = "Shadow Mantle",
        waist       = "Witch Sash",
        legs        = "Genie Lappas",
        feet        = "Herald's Gaiters"
    }
 
     -- fast cast set is for casting quickly.  We put
    -- this on before the spell is begun, then switch
    -- to one of the other sets during cast.
    sets.fc         = {
        sub         = "Vivid Strap +1",
        left_ear    = "Loquac. Earring",
        feet        = "Rostrum Pumps"
    }
 
     -- damage set is for powerful nukes. +MAB and Int.
    -- Note that we only need to specify gear that
    -- differs from our idle set.
    sets.damage = {
        sub         = "Wise Strap",
        head        = "Src. Petasos +1",
        left_ear    = "Crapaud Earring",
        body        = "Genie Weskit",
        hands       = "Zenith Mitts +1",
        back        = "Hecate's Cape",
        legs        = "Mahatma Slops",
        feet        = "Shrewd Pumps"
    }
 
     -- accuracy set is for enemies that resist our high
    -- damage nukes.  +Elemental Skill, MACC, and Int.
    sets.accuracy = {
        sub         = "Wise Strap",
        head        = "Src. Petasos +1",
        left_ear    = "Elemental Earring",
        body        = "Genie Weskit",
        hands       = "Wzd. Gloves +1",
        back        = "Hecate's Cape",
        legs        = "Mahatma Slops",
        feet        = "Nashira Crackows"
    }
 
     -- dark set is for drain, aspir, and other dark magic
    -- mostly +Dark Skill, MACC, and Int.
    sets.dark = {
        sub         = "Dark Grip",
        head        = "Ree's Headgear",
        neck        = "Dark Torque",
        right_ear   = "Dark Earring",
        body        = "Mahatma Hpl.",
        back        = "Merciful Cape",
        legs        = "Wzd. Tonban +1",
        feet        = "Genie Huaraches"
    }
 
     -- enfeebling set is for sleep, blind, and others.
    -- mostly +Enfeebling Skill, MACC, and Int.
    sets.enfeebling = {
        sub         = "Dark Grip",
        head        = "Genie Tiara",
        neck        = "Enfeebling Torque",
        right_ear   = "Enfeebling Earring",
        body        = "Wzd. Coat +1",
        hands       = "Oracle's Gloves",
        back        = "Altruistic Cape",
        legs        = "Genie Lappas",
        feet        = "Avocat Pigaches"
    }
     
     -- enhancing set is mostly for stoneskin.
    -- mostly +Enhancing Skill and Mind.
    sets.enhancing = {
        sub         = "Reign Grip",
        head        = "Goliard Chapeau",
        neck        = "Enhancing Torque",
        right_ear   = "Augment. Earring",
        body        = "Mahatma Hpl.",
        hands       = "Bricta's Cuffs",
        left_ring   = "Celestial Ring",
        right_ring  = "Celestial Ring",
        back        = "Merciful Cape",
        waist       = "Pythia Sash +1",
        legs        = "Mahatma Slops",
        feet        = "Genie Huaraches"
    }
 
     -- heal set for getting the most of our cures.
    -- mostly +Cure Potency and Mind.
    sets.heal = {
        sub         = "Reign Grip",
        head        = "Goliard Chapeau",
        neck        = "Fylgja Torque +1",
        right_ear   = "Roundel Earring",
        body        = "Mahatma Hpl.",
        hands       = "Bricta's Cuffs",
        left_ring   = "Celestial Ring",
        right_ring  = "Celestial Ring",
        back        = "Altruistic Cape",
        waist       = "Pythia Sash +1",
        legs        = "Mahatma Slops",
        feet        = "Mahatma Pigaches"
    }
 
     -- yellow set is for getting our HP into yellow
    -- in order to proc the latent of Sorcerer's Ring.
    sets.yellow = {
        main        = "Claustrum",
        head        = "Zenith Crown +1",
        body        = "Dalmatica +1",
        hands       = "Zenith Mitts +1",
        right_ring  = "Serket Ring",
        legs        = "Zenith Slacks +1",
        feet        = "Zenith Pumps +1"
    }
 
     -- resting set is for recovering MP while /heal.
    -- as much +hMP as possible.
    sets.rest = {
        head        = "Goliard Chapeau",
        neck        = "Beak Necklace +1",
        left_ear    = "Antivenom Earring",
        right_ear   = "Relaxing Earring",
        body        = "Mahatma Hpl.",
        hands       = "Oracle's Gloves",
        left_ring   = "Celestial Ring",
        right_ring  = "Celestial Ring",
        back        = "Invigorating Cape",
        waist       = "Qiqirn Sash +1",
        legs        = "Oracle's Braconi",
        feet        = "Goliard Clogs"
    }
 
     -- all the following are my level-sync sets for
    -- easily equipping gear when going to level capped
    -- events.
     -- if I want level 32 gear, for example, I would type
    --     //gs equip l32
    -- that's a lowercase L, not a 1.
    -- then I would disable gearswap for the event
    --     //lua u gearswap
    -- and turn it back on when it's over.
    --     //lua r gearswap
    sets.l20 = {
        main        = "Yew Wand +1",
        sub         = "Yew Wand +1",
        ammo        = "Morion Tathlum",
        head        = "Baron's Chapeau",
        neck        = "Black Neckerchief",
        left_ear    = "Morion Earring +1",
        right_ear   = "Morion Earring +1",
        body        = "Baron's Saio",
        hands       = "Garrison Gloves",
        left_ring   = "Eremite's Ring +1",
        right_ring  = "Eremite's Ring +1",
        back        = "Black Cape +1",
        waist       = "Shaman's Belt",
        legs        = "Mage's Slacks",
        feet        = "Garrison Boots"
    }
     sets.l32 = {
        main        = "Solid Wand",
        sub         = "Solid Wand",
        ammo        = "Morion Tathlum",
        head        = "Seer's Crown +1",
        neck        = "Solon Torque",
        left_ear    = "Morion Earring +1",
        right_ear   = "Morion Earring +1",
        body        = "Baron's Saio",
        hands       = "Seer's Mitts +1",
        left_ring   = "Eremite's Ring +1",
        right_ring  = "Eremite's Ring +1",
        back        = "Black Cape +1",
        waist       = "Shaman's Belt",
        legs        = "Seer's Slacks +1",
        feet        = "Custom F Boots"
    }
     sets.l50 = {
        main        = "Rose Wand +1",
        sub         = "Rose Wand +1",
        ammo        = "Morion Tathlum",
        head        = "Seer's Crown +1",
        neck        = "Solon Torque",
        left_ear    = "Morion Earring +1",
        right_ear   = "Moldavite Earring",
        body        = "Tct.Mgc. Coat",
        hands       = "Sly Gauntlets",
        left_ring   = "Eremite's Ring +1",
        right_ring  = "Eremite's Ring +1",
        back        = "Black Cape +1",
        waist       = "Ocean Stone",
        legs        = "Magic Slacks",
        feet        = "Custom F Boots"
    }
     sets.l51 = {
        main        = "Chatoyant Staff",
        ammo        = "Morion Tathlum",
        head        = "Seer's Crown +1",
        neck        = "Solon Torque",
        left_ear    = "Morion Earring +1",
        right_ear   = "Moldavite Earring",
        body        = "Tct.Mgc. Coat",
        hands       = "Sly Gauntlets",
        left_ring   = "Eremite's Ring +1",
        right_ring  = "Eremite's Ring +1",
        back        = "Black Cape +1",
        waist       = "Ocean Stone",
        legs        = "Magic Slacks",
        feet        = "Custom F Boots"
    }
     
 end
 
 --[[ ******************************************************
  Equip functions - put on the sets we defined above, and
 echo a note to our chat log so we know it worked.
****************************************************** --]]
 
 -- equip our idle set
 function equip_idle()
     windower.add_to_chat(8,'[Idle]')
    equip(sets.idle)
end

-- equip our Nuke set, either high damage or accuracy
-- depending on our mode. We toggle the mode variable
-- using the self_command() function laster in this file.
-- if we're casting a spell that matches the day or weather
-- we also will put on the Hachirin-no-Obi.
function equip_nuke(spell)
    if spell.element == world.day_element then
        windower.add_to_chat(8,'[Nuke - ' .. mode .. ' on matching day]')
        equip(sets[mode],{waist="Hachirin-no-Obi",legs="Src. Tonban +1"})
    elseif spell.element == world.weather_element then
        windower.add_to_chat(8,'[Nuke - ' .. mode .. ' with matching weather]')
        equip(sets[mode],{waist="Hachirin-no-Obi"})
    else
         windower.add_to_chat(8,'[Nuke - ' .. mode .. ']')
        equip(sets[mode])
    end
 end
 
 -- equip our Dark Magic set
 function equip_dark()
     windower.add_to_chat(8,'[Dark]')
    equip(sets.dark)
end

-- equip our Enfeebling Magic set
function equip_enfeebling()
    windower.add_to_chat(8,'[Enfeebling]')
    equip(sets.enfeebling)
end

-- equip our Enhancing Magic set
function equip_enhancing(spell)
    windower.add_to_chat(8,'[Enhancing]')
    if spell.name == 'Stoneskin' then
        equip(sets.enhancing,{neck="Stone Gorget"})
    else
         equip(sets.enhancing)
    end
 end
 
 -- equip our Healing Magic set
 function equip_heal()
     windower.add_to_chat(8,'[Healing]')
    equip(sets.heal)
end

-- equip our yellow (low HP) set for a split second,
-- then return to our idle set.  This will force our
-- HP to yellow to proc the Sorcerer's Ring latent.
function equip_yellow()
    windower.add_to_chat(8,'[Yellow]')
    equip(sets.yellow)
    send_command('wait .1;gs equip idle')
end

-- equip our resting hMP set
function equip_rest()
    windower.add_to_chat(8,'[Resting]')
    equip(sets.rest)
end


--[[ ******************************************************
 Casting functions - these functions run automatically when
 we cast a spell, use a job ability, rest for MP, and so on
****************************************************** --]]
 
 -- the precast function runs automatically BEFORE we
 -- begin casting a spell or job ability.  For our BLM,
 -- we want to equip fast cast gear prior to casting.
 function precast(spell)
     if spell.type:contains('Magic') then
        equip(sets.fc)
    end
 end
 
 -- now that we've already gained the benefit of fast cast,
 -- the midcast function swaps in a new set of gear during
 -- the cast, which will make the spell effect more potent.
 function midcast(spell)
     if spell.skill == 'Healing Magic' then
        equip_heal()
    elseif spell.skill == 'Enfeebling Magic' then
        equip_enfeebling()
    elseif spell.skill == 'Enhancing Magic' then
        equip_enhancing(spell)
    elseif spell.skill == 'Elemental Magic' then
        equip_nuke(spell)
    elseif spell.skill == 'Dark Magic' then
        equip_dark()
    end
 end
 
 -- we're done with our spell or job ability, so the aftercast
 -- function makes sure we return to our idle gear to benefit
 -- from auto-refresh and -PDT while we stand around.
 function aftercast(spell)
     equip_idle()
end

-- the status_change function runs automatically whenever we
-- engage, disengage, kneel, or stand.  As a BLM we use this
-- to equip our +hMP gear when we /heal, and return to our
-- idle gear when we stand up.
function status_change(new,old)
    if new == 'Resting' then
        equip_rest()
    else
         equip_idle()
    end
 end
 
 -- the self_command function can be called from
 -- a Yush or in-game macro.  We use it for two
 -- purposes.  One, to equip our low-HP gear in
 -- order to proc the Sorcerer's Ring.  Two, to
 -- toggle between damage and accuracy nuking.
 --
 -- with Yush, something like this:
 -- ['Alt+3'] = 'input //gs c Y'
 --
 -- with in-game macros, like this:
 -- /console gs c Y
 --
 function self_command(m)
     if m == "Y" then
        equip_yellow()
    elseif m == "M+" then
        if mode == "damage" then
            mode = "accuracy"
        else
             mode = "damage"
        end
         windower.add_to_chat(8,'[Magic mode: ' .. mode .. ']')
    end
 end
 
 --[[ ******************************************************
  Code that runs once, when we first swap to our BLM job
****************************************************** --]]
 
 -- mode determines whether your BLM will nuke in
 -- high damage or accuracy gear.  By default, we
 -- nuke in damage gear.
 mode = "damage"
 
 -- Puts on our fashion set, lockstyle it, then switch
 -- to our idle set.
 send_command('wait 1;gs equip fashion;wait 1;input /lockstyle on;wait 1;gs equip idle')

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.