Final Fantasy XIV Database - Ffxivpro.com

Eorzea Time
 
 
 
Language: JP EN FR DE
users online
Search Term:
In:
Sort By:
Date:
Showing 9871-9900 of 10000
By soralin on 2025-08-20 23:48:20
Is fruit parfait actually going to do better than gyudon though?

I feel like WSD+5 is gonna do pretty nice for magic WSes, since you typically dont get as much WSD on your sets compared to phys weaponskills.

Then again, Matk also is a pretty chase stat, hmm
By maletaru on 2025-08-20 23:41:04
I doubt food will make a difference either way but...

Fruit Parfait is cheap
Cehuetzi Snow cone is better
Best is probably STP, one of the 50 pizzas/pastas.
By Boposhopo on 2025-08-20 21:18:54
Nedavets1 said: »
Does anyone have a recent lua that works? My lua file got corrupted and I can’t seem to make any of the other luas work after assigning priority to the gears. ?

Page 4
By DaneBlood on 2025-08-20 20:51:47
crazy00 said: »
I don't know how to put gear sets in the forum. Here's an updated max dt / magic evasion set.

MaxDTMagicEvasion...

I dont think that is max DT/eva.
Your shield provides you the elemental resistance to get the "Extra savings through" so there is no need to nerf MEva on for ele resistan
Null loop would be better i believe provide oyu and instant boost in Meva
By sahzi on 2025-08-20 20:41:11
The danger of such a chart is every chump thinking "Oh nice my warrior is useful, I can do endgame."

Sahzi chart:
WHM : ONRY. Bring empy pants, regen4, arise, curaga5, erase.
In 6months-2 years you can bring the other stuff.


....maybe.
By . on 2025-08-20 18:26:45
The accessory FFXIAH user was looking for:

By Crerant on 2025-08-20 17:14:07
TallyHo said: »
Was the issue with Empyrean body and Dyna-D Wave 3 ever resolved?

Yeah. It was fixed in April of this year. I've not heard any complaints of it happening again so I'm assuming it's actually fixed.
By TallyHo on 2025-08-20 17:12:25
Was the issue with Empyrean body and Dyna-D Wave 3 ever resolved?
By on 2025-08-20 17:00:00
By on 2025-08-20 16:37:03
By Byrthnoth on 2025-08-20 16:30:23
I see Inner Strength as an Invincible-similar move. You get twice as much HP, full healed, and you are quite a bit more durable (counter for attacks, guard for melee WSs) for 30 seconds. By the end of it, the double HP wears off and you probably still have full HP, so you may as well have been damage immune for 30 seconds. If you threw a big hate spike on it and gave it to PLD, it would be better than Invincible in every way except interruption prevention ways.

However, MNK doesn't really need invincible so YMMV.
By SimonSes on 2025-08-20 16:16:49
Asura.Vyre said: »
SP2 is bad or vice versa, at least in modern XI.

Brazen Rush for WAR stops being good once you get enough gear for 100% datk (though you could still 5/5 Empy+3 during it for better white damage if it doesn't impact WS frequency).

If you make specific store tp set for it, it will greatly increase tp gain. Also 5/5 empy wouldn't be the set you want to equip for higher white damage. You would only mostly want feet and maybe legs for that.

Asura.Vyre said: »
Hundred Fists

Hundred fists breaks the delay cap, so with a good set it can be pretty good. It also almost breaks the game with dual wield, which is pretty funny, but I don't think it has any practical use case, unless maybe some en spell build, idk. HF is also good when there is some slow aura or something.

Asura.Vyre said: »
Perfect Dodge doesn't dodge magic or ranged attacks.

Perfrct dodge is still prety solid. You evade all the physical tp moves, counters etc. You also get +60meva.

Asura.Vyre said: »
Invincible is merely a slightly better Sentinel on a way longer cooldown

It's still a massive hate tool

Asura.Vyre said: »
Azure Lore sucks donkey nuts.

I'm not gonna defend AL a lot, but it can be pretty decent to do piercing damage, that BLU can't really do otherwise. It's also good to make self skillchains and magic bursts.

Asura.Vyre said: »
Unleash doesn't matter unless there's a specific pet move you want a lot of/unless the pet moves are gonna eclipse Master damage for sure.

Unleash also disable cooldown for calling the pet, so you can summon a lot of them and activate several different buffs.

Asura.Vyre said: »
Caper Emissarius needs a specific strategic call to be useful, and if you have a solid tank that isn't losing hate anyway, then it's like... ehhh?

It's more about reducing hate from everyone, beside one person, than adding it to tank.
By Garuda.Chanti on 2025-08-20 15:03:19
Vic, the Chinese market is not the US market. Its bigger as well.

Also no game in China is released without party approval.
By Vyrerus on 2025-08-20 14:59:08
Nariont said: »
Think a few 2hrs need potency increases/additional effects rather than duration increases but as is most are alright as a 45 min recast JA

Idk, I think most of the SPs are really mediocre. One way or the other. Most often it's like, the job has one good SP and then the SP2 is bad or vice versa, at least in modern XI.

Brazen Rush for WAR stops being good once you get enough gear for 100% datk (though you could still 5/5 Empy+3 during it for better white damage if it doesn't impact WS frequency).

Hundred Fists and Inner Strength on Monk are both somewhat meh. Hundred Fists mostly good to bypass damage loss from Weakness, or in situation where you can't cap delay reduction, but that's it.

Benediction is basically an oh ***button, but not a strategical lynchpin.

Manafont doesn't give the interaction people expect out of it mixed with Mana Wall, so beyond that it's like a resource tap, something of a better Elixir/something that can be substituted with an Elixir for its primary effect.

Perfect Dodge doesn't dodge magic or ranged attacks. Larceny can't steal SP2s, so is useless on mobs that use them/prefer them over SP1s.

Invincible is merely a slightly better Sentinel on a way longer cooldown. Meh. Intervene is potent against physically oriented opponents, but does nothing vs. mage mobs. Absolutely nothing!

Neither of DRK's 2hrs work on Undead at all, and their durations are wickedly short. There aren't any other 2hrs in the game that are completely denied by a monster family type. (obviously they're really good on everything else, but damn)

Familiar kinda sucks, the increases don't make pets feel potent, even at Mastered BST.

Eagle Eye Shot only does well with a relic/prime/empy proc with crit. It can also miss.

Meikyo Shisui sucks balls when you're even just closing in on capped delay reduction. You don't generate TP at all during it, and self SCs can be performed through raw TP generation. Also there are specific boss monsters where skillchains = bad news bears. So on those monsters you gotta make sure to do WS that don't SC, denying the purpose of the 2hr.

Mjin Gakure and Mikage both suck donkey nuts.

Azure Lore sucks donkey nuts.

Most of the options for Heady Artifice are not utilized well by the Puppet.

The practical uses of Widened Compass are few.

And that's not quite half of the 44 SPs in the game, but close enough. Basically half the SPs in the game are stuff you can ignore/not use, and it'll never meaningfully impact your performance (obviously the DRK ones are GREAT on everything not undead).

And this is all before we get into ones that are good conditionally based on how hard what you're fighting is/what the strategy calls for, because a lot of good ones are still kinda meh for the majority of the game.

Like Asylum doesn't matter at all if MEVA gear has you covered.

Subtle Sorcery doesn't matter at all if you don't need the BLM to have low hate/land a specific spell.

Stymie and Chainspell don't matter at all if you don't need a specific, hard to land debuff. Chainspell doesn't matter unless there's a reason you a bunch of casts of the same spell right meow!

Unleash doesn't matter unless there's a specific pet move you want a lot of/unless the pet moves are gonna eclipse Master damage for sure.

Overkill only applicable in ranged fights.

Yaegasumi only great in fights where SAM is hit with TP moves often.

The utility of Spirit Surge and Fly High are limited, and serve mostly to give DRG higher WS frequency.

Perfect Defense/Odin don't last/work long/hard enough in fights where they'd be the bee's knees. The other Astral Flows aren't all that great. Conduit faces WS wall or whatever on a fight by fight basis.

Unbridled Wisdom doesn't put out in the way you want, as the most useful spells aren't guaranteed to land/can't be spread to party without Diffusion anyway.

Cutting Cards and Wild Card need context and RNG based luck to be more than a fart in the wind. You also need people alive for them to do their thing.

Other than the TP generation from gifts, Trance needs a situation to already be bad to be useful (healer down or out of MP).

Caper Emissarius needs a specific strategic call to be useful, and if you have a solid tank that isn't losing hate anyway, then it's like... ehhh?

Elemental Sforzo is usually used for Enmity spike rather than for blocking/absorbing magic damage.

I guess the point of my desire to beef up SPs is more or less, a lot of them lack a, "Wow!" factor or a, "This really matters!" factor. They don't feel dynamic. They don't feel worth the cooldown, even at the far reduced 45 mins that they are after mastery. I pointed to duration or extra uses as fixes/buffs to most of them, because given extra duration a lot of them go from lackluster to undeniably good without just changing the abilities wholesale.
By Shadowmeld on 2025-08-20 14:50:52
I know I'm like 7 pages too late, and it was already mentioned sort of, but there needs to be a complete weaponskill overhaul for WS that do not have front loaded first hit http://FTP.

I don't however want scaling FTP on multihits. What I want is a decent base FTP per hit, all FTP transfer. MNK weaponskills feel really good actually. I use RF, HF, DK, TK, and VS very regularly, and they all excel in different situations. RF is great when I'm at attack cap and I'm using godhands. It's very very strong, because it's got decent base FTP at higher TP values.

Making them ramp damage with TP though will just keep magian weapons in off hand. If ruthless stroke had been 5.0 per hit across all hits... it would have been amazing.
By alamihgo on 2025-08-20 14:48:12
Allow Counter to work against special autoattacks. Makes no sense that MNK can counter Kam'lanaut but not a spinning crab.
By Taint on 2025-08-20 14:42:41
By Lili on 2025-08-20 14:27:41
Asura.Vyre said: »
I'm glad you're not either. You seem like a bitter shrew.

Dude. The insult is entirely unnecessary. What gives.
By Nariont on 2025-08-20 14:03:53
Asura.Sechs said: »
They also greatly changed DRG SP1 (completely swapped to another JA) and PUP's SP1 (increased the potency a lot, and tripled the base duration iir?)

Funny that Azure Lore was adjusted and it still sucks lol.
I guess it's a byproduct of the fact that BLU physical offensive spells are mostly ***for the purpose of dealing damage (the good ones these days are either for the job traits or for the special effects)
Azure Lore is a JA that focuses mostly on boosting them, and if they suck... it sucks boosting them I guess.

Forgot about PUP, i neglected DRG as at least for as a comparison for mobs it makes more sense to keep CW as the wyverns usually a minor threat, much like how bst familiar is typically just a super charm.

Azure lore had a time where it was okay, sadly spells jut havent aged great once WS changes happened way back when, pity really.

Think a few 2hrs need potency increases/additional effects rather than duration increases but as is most are alright as a 45 min recast JA
By . on 2025-08-20 14:01:42
It doesn't surprise me that Wukong is already getting a sequel, not because it deserves one, but because it fits the Chinese mentality of rushing games to market. Just look at Wuchang, a game that could have sat in the oven for 6+ more months. It didn't need to come out in July, there was zero demand for a souls-like. I mean, everyone is playing Nightreign, an actual From game. Instead they rushed it to market infested with bugs and annoying gameplay and its already dead. Americans aren't falling for the flashy lights anymore.
By . on 2025-08-20 14:00:09
With my popcorn here
By . on 2025-08-20 13:59:58
I was actually waiting for things to heat up
By Byrthnoth on 2025-08-20 13:51:37
Inner Strength also gives you perfect counter for the duration.
By Asura.Vyre on 2025-08-20 13:49:35
Ehh, why don't you guys back away from that topic, before I back you guys away for you.
By on 2025-08-20 13:47:24
By Akumasama on 2025-08-20 13:45:27
They also greatly changed DRG SP1 (completely swapped to another JA) and PUP's SP1 (increased the potency a lot, and tripled the base duration iir?)

Funny that Azure Lore was adjusted and it still sucks lol.
I guess it's a byproduct of the fact that BLU physical offensive spells are mostly ***for the purpose of dealing damage (the good ones these days are either for the job traits or for the special effects)
Azure Lore is a JA that focuses mostly on boosting them, and if they suck... it sucks boosting them I guess.
By Tyconus on 2025-08-20 13:43:32
Code
SIRDspells = S{"Cure IV","Raise","Banishga",--[["Crusade","Reprisal",]]"Cocoon","Chaotic Eye","Sheep Song","Blank Gaze","Geist Wall","Jettatura","Sound Blast","Sandspin","Soporific","Awful Eye","Stinking Gas","Bomb Toss",}
MainHealer = S{"Moralltach", "Chatoyant Staff"}
FCspells = S{"Erase", "Blindna", "Paralyna", "Silena", "Sneak", "Invisible", "Poisona", "Stona", "Viruna", "Reraise",}
res = require 'resources'
--send_command('lua l Skillchainsplus')
--Healing Breeze + Sheep Song = Auto-regen
--Cocoon
--Bomb Toss (wave3 fetter pull)
--Chaotic Eye, Blank Gaze (single target hate)
--Awful Eye, Jettatura (conal hate)
--Stinking Gas, Soporific, Geist Wall (aoe hate)
--Ice Break + Magnetite Cloud (MDB)

send_command('bind !q gs equip dt') -- Hit alt+q, equips dt set
send_command('bind !w gs equip movement') -- Hit alt+w, equips movement equipment
send_command('bind !a gs c reequip;wait 1; input /lockstyle on') -- Hit alt+a, reequips your gear with toggled sword/shield
send_command('bind !` gs c toggle shield set') -- Hit alt+`, toggles the sets
send_command('bind ^` gs c toggle sword set') -- Hit ctrl+`, toggles the sets
send_command('bind !s gs c toggle TP set') -- Hit alt+s, equips tp set

function get_sets()
	sets.fc = {}
	sets.buff = {}
	sets.ja = {}
	sets.ws = {}
	sets.misc = {}
	sets.sword = {}
	sets.shield = {}
	sets.TP = {}
	
	sets.movement = {legs="Carmine Cuisses +1"}
	
	sets.fc.base = { --2+14+10+5+10+4+10+8+13=76
	ammo="Sapience Orb", --2%
	head={name="Carmine Mask +1",priority=38}, --14%
	body={name="Reverence Surcoat +3",priority=254}, --10%
	hands="Leyline Gloves", --5%
	left_ring="Medada's ring", --10%
	right_ring="Kishar ring", --4%
	back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Phys. dmg. taken-10%',},priority=80},
	waist={name="Platinum Moogle Belt",priority=300},
	legs={name="Enif Cosciales",priority=40}, --8%
	feet={name="Chevalier's Sabatons +3",priority=52} --13%
	}
	
	sets.fc.cure = set_combine(sets.fc.base, {
	--right_ear="Nourishing Earring +1", --4
	})
	
	sets.fc.healing = set_combine(sets.fc.base, {})
	
	sets.fc["Enhancing Magic"] = set_combine(sets.fc.base, {
	waist="Siegel Sash",
	})
	
	sets.hp = {
	sub={name="Srivatsa",priority=150}, --150
	--ammo="Egoist's Tathlum",
	head={name="Souveran Schaller +1",priority=280}, --280
	neck={name="Unmoving Collar +1",priority=200}, --200
	left_ear={name="Tuisto Earring",priority=150}, --150
	right_ear={name="Odnowa Earring +1",priority=110}, --110
	body={name="Reverence Surcoat +3",priority=254}, --254
	hands="Regal Gauntlets",
	hands={name="Souveran Handschuhs +1",priority=239}, --239
	left_ring={name="Gelatinous Ring +1",priority=110}, --110
	right_ring={name="Moonlight Ring",priority=110}, --110
	--back={name="Reiki Cloak",priority=130}, --130
	waist={name="Platinum Moogle Belt",priority=300},
	legs={name="Souveran diechlings +1",priority=162}, --162
	feet={name="Souveran schuhs +1",priority=227}, --227
	}
	
	sets.buff["Phalanx"] = { --30
	head={name="Valorous Mask",priority=38}, --5
	neck="Moonlight Necklace",
	body={name="Valorous Mail",priority=61}, --5
	hands={name="Souveran Handschuhs +1",priority=239}, --5
	back="Weard Mantle", --5
	waist="Audumbla Sash",
	legs={name="Sakpata's Cuisses",priority=114}, --5
	feet={name="Souveran schuhs +1",priority=227}, --5
	}
	
	sets.phalanx2 = set_combine(sets.buff["Phalanx"], { --37
	main={name="Sakpata's Sword",priority=100}, --5
	sub={name="Priwen",priority=80}, --2
	})
	
	sets.buff['Stoneskin'] = {
	ammo="Staunch Tathlum +1", --11
	head={name="Souveran Schaller +1",priority=280}, --20
	neck="Stone Gorget",
	left_ear={name="Tuisto Earring",priority=150}, --150
	right_ear="Earthcry Earring",
	body={name="Reverence Surcoat +3",priority=254}, --254
	--hands="Stone Mufflers",
	waist="Siegel Sash",
	legs="Haven Hose",
	}
	
	sets.enmity = {
	ammo="Sapience Orb", --2
	head={name="Loess Barbuta +1",priority=200}, --9~14
	neck="Moonlight Necklace", --15
	right_ear="Cryptic Earring", --4
	body={name="Souveran cuirass +1",priority=171}, --20
	hands={name="Souveran Handschuhs +1",priority=239}, --9
	left_ring="Eihwaz Ring", --4
	right_ring="Apeile Ring +1", --5
	back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','Enmity+10','Chance of successful block +5',},priority=80},
	waist={name="Creed Baudrier",priority=40}, --5
	legs={name="Souveran Diechlings +1",priority=162}, --9
	feet={name="Chevalier's Sabatons +3",priority=52} --11
	}
	
	sets.sird = set_combine(sets.enmity, {
	ammo="Staunch Tathlum +1", --11
	head={name="Souveran Schaller +1",priority=280}, --20
	neck="Moonlight Necklace", --15
	waist={name="Platinum Moogle Belt",priority=300},
	legs={name="Founder's Hose",priority=54}, --30
	feet={name="Odyssean Greaves",priority=20} --20
	})
	
	sets.th_sird = set_combine(sets.enmity, {
	ammo="Perfect Lucky Egg",
	head={name="Souveran Schaller +1",priority=280}, --20
	neck="Moonlight Necklace", --15
	right_ear="Knightly Earring", --9
	left_ring="Gelatinous Ring +1",
	waist="Chaac Belt",
	legs={name="Founder's Hose",priority=54}, --30
	feet={name="Odyssean Greaves",priority=20} --20
	})
	
	sets.ja["Provoke"] = sets.enmity
	sets.ja["Warcry"] = sets.enmity
	sets.ja["Invincible"] = {legs="Caballarius Breeches +3",}
	sets.ja["Holy Circle"] = {feet="Reverence Leggings +4"}
	sets.ja["Shield Bash"] = set_combine(sets.enmity, {right_ear="Knightly Earring",hands="Caballarius Gauntlets +4",--[[left_ring="Fenian Ring",]]})
	sets.ja["Weapon Bash"] = {right_ear="Knightly Earring",}
	sets.ja["Sentinel"] = set_combine(sets.enmity, {feet="Caballarius Leggings +4"})
	sets.ja["Cover"] = {--[[head="Reverence Coronet",]]}
	sets.ja["Rampart"] = set_combine(sets.enmity, {head="Caballarius Coronet +3",})
	sets.ja["Fealty"] = {body="Caballarius Surcoat +3",}
	sets.ja["Chivalry"] = {hands="Caballarius Gauntlets +4"}
	sets.ja["Divine Emblem"] = {feet="Chevalier's Sabatons +3"}
	sets.ja["Provoke"] = sets.enmity
	sets.ja["Valiance"] = sets.enmity
	sets.ja["Vallation"] = sets.enmity
	sets.ja["Pflug"] = sets.enmity
	sets.ja["Swordplay"] = sets.enmity
	sets.ja["Warcry"] = sets.enmity
	sets.ja["Palisade"] = sets.enmity
	sets.ja["Majesty"] = sets.enmity
	
	sets.dt = {
	ammo="Staunch Tathlum +1",
	--head={name="Sakpata's Helm",priority=91},
	head={name="Chevalier's Armet +3",priority=145},
	neck={name="Unmoving Collar +1",priority=200},
	left_ear={name="Tuisto Earring",priority=150},
	right_ear={name="Odnowa Earring +1",priority=110},
	body={name="Sakpata's Breastplate",priority=136},
	hands={name="Sakpata's Gauntlets",priority=91},
	left_ring={name="Gelatinous Ring +1",priority=110},
	right_ring={name="Moonlight Ring",priority=110},
	back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','Enmity+10','Chance of successful block +5',},priority=80},
	waist="Null Belt",
	--legs={name="Sakpata's Cuisses",priority=114},
	legs={name="Chevalier's Cuisses +3",priority=127},
	feet={name="Sakpata's Leggings",priority=68}
	}
	
	sets.EnhancingDuration = {
	--sub="Ajax +1",
	body="Shabti cuirass +1",
	hands="Regal Gauntlets",
	}
	
	sets.protect = set_combine(sets.EnhancingDuration, {
	main="Colada",
	sub="Srivatsa",
	left_ring="Sheltered Ring",
	})
	
	sets.divine = {
	neck="Incanter's Torque",
	body={name="Reverence Surcoat +3",priority=15},
	left_ring="Stikini Ring +1",
	--waist="Asklepian Belt",
	}
	
	sets.divinedmg = {
	main={name="Sakpata's Sword",priority=100},
	sub={name="Forfend +1",priority=22},
	ammo="Ghastly Tathlum +1",
	neck="Baetyl Pendant",
	left_ear="Dignitary's Earring",
	right_ear="Friomisi Earring",
	body={name="Cohort Cloak +1",priority=91},
	hands={name="Nyame Gauntlets",priority=91},
	left_ring={name="Stikini Ring +1", bag="wardrobe1"},
    right_ring={name="Stikini Ring +1", bag="wardrobe2"},
	--back={name="Reiki Cloak",priority=130},
	waist={name="Eschan Stone",priority=20},
	legs={name="Nyame Flanchard",priority=114},
	feet={name="Nyame Sollerets",priority=68}
	}
	
	sets.curesword = {
	feet={name="Odyssean Greaves",priority=20}
	}
	
	sets.refresh = {
	ammo="Homiliary",
	body="Crepuscular Mail",
	hands="Regal Gauntlets",
	left_ring={name="Stikini Ring +1", bag="wardrobe1"},
    right_ring={name="Stikini Ring +1", bag="wardrobe2"},
	waist="Fucho-no-obi",
	}
	
	sets.resistcharm = {
	neck="Unmoving Collar +1",
	back="Solemnity Cape",
	legs="Souveran Diechlings +1",
	}
	
	sets.sword.index = {'Burtgang',--[['Naegling','Malevolence',]]'Moralltach'--[[,'Mafic Cudgel']]}
	sword_ind = 1 --Burtgang is the Default
	
	sets.sword['Burtgang'] = {main="Burtgang"}
	sets.sword['Moralltach'] = {main="Moralltach"}
	sets.sword['Naegling'] = {main="Naegling"}
	sets.sword['Malevolence'] = {main="Malevolence"}
	sets.sword['Mafic Cudgel'] = {main="Mafic Cudgel"}
	
	sets.shield.index = {'Duban',--[['Srivatsa',]]'Aegis'--[[,'Priwen','Blurred']]}
	shield_ind = 1 --Duban is the Default
	
	sets.shield['Srivatsa'] = {sub="Srivatsa"}
	sets.shield['Aegis'] = {sub="Aegis",neck="Warder's Charm +1",waist="Carrier's Sash",left_ring="Shadow Ring"}
	sets.shield['Ochain'] = {sub="Ochain",waist="Flume Belt +1",}
	sets.shield['Priwen'] = {sub="Priwen",waist="Flume Belt +1",}
	sets.shield['Blurred'] = {sub="Blurred Shield +1",waist="Sailfi Belt +1",}
	sets.shield['Duban'] = {sub="Duban",--[[waist="Flume Belt +1",feet="Reverence Leggings +4"]]}
	
	sets.TP.index = {'None','Standard','HighAcc'}
	TP_ind = 1 --None is the Default
	
	sets.TP['Standard'] = {
	ammo="Aurgelmir Orb +1",
	head="Hjarrandi Helm",
	neck="Vim Torque +1",
	left_ear="Telos Earring",
	right_ear="Mache Earring +1",
	body="Sakpata's Plate",
	hands="Sakpata's Gauntlets",
	left_ring="Chirich Ring +1",
	right_ring="Moonlight Ring",
	back="Null Shawl",
	waist="Sailfi Belt +1",
	legs="Sakpata's Cuisses",
	feet="Flam. Gambieras +2"
	}
	
	sets.TP['HighAcc'] = set_combine(sets.TP['Standard'], {})
	
	sets.TP['Sword'] = set_combine(sets.TP['Standard'], {
	ammo="Aurgelmir Orb +1",
	head="Hjarrandi Helm",
	body="Hjarrandi Breastplate",
	})
	
	sets.ws.common = {
	ammo="Coiste Bodhar",
	head={ name="Nyame Helm",priority=91}, --91
	neck="Fotia Gorget",
	right_ear="Thrud Earring",
	body={name="Nyame Mail",priority=136}, --136
	hands={name="Nyame Gauntlets",priority=91}, --91
	left_ring="Regal Ring",
	right_ring="Epaminondas's Ring",
	waist="Fotia Belt",
	legs={name="Nyame Flanchard",priority=114}, --114
	feet={name="Nyame Sollerets",priority=68} --68
	}
	
	sets.ws["Savage Blade"] = set_combine(sets.ws.common, {})
	sets.ws["Atonement"] = sets.enmity
	
	sets.ws['Torcleaver'] = set_combine(sets.ws.common, {
	})
	
	sets.ws['Aeolian Edge'] = set_combine(sets.ws.common, {
	ammo="Ghastly Tathlum +1",
	neck="Sibyl Scarf",
	left_ring="Metamorph Ring +1",
	waist="Orpheus's Sash",
	})
	
	sets.ws['Cataclysm'] = set_combine(sets.ws['Aeolian Edge'], {
	head="Pixie Hairpin +1",
	left_ring="Archon Ring",
	})
	
	sets.ws['Shell Crusher'] = {
	neck="Moonlight Necklace",
	waist="Acuity Belt +1",
	}
	
	sets.ws['Energy Steal'] = {}
	
end

function check_height() 
	selfz = math.floor(windower.ffxi.get_mob_by_index(player.index).z * 10)/10
	targetz = math.floor(windower.ffxi.get_mob_by_index(player.target.index).z * 10)/10
	heightdiff = selfz - targetz
	targdistance = math.floor(windower.ffxi.get_mob_by_index(player.target.index).distance:sqrt() * 10+0.5)/10
end

function precast(spell)
	local spell_recasts = windower.ffxi.get_spell_recasts()
	local ja_recasts = windower.ffxi.get_ability_recasts()
	if buffactive['Stun'] or buffactive['Petrify'] or buffactive['Terror'] or ((spell.action_type == "WeaponSkill" or spell.action_type == "JobAbility") and buffactive['Amnesia']) or (spell.action_type == 'Magic' and buffactive['Silence']) --[[or (spell_recasts[spell.recast_id] > 0) or (spell.type == "JobAbility" and ja_recasts[spell.recast_id] > 0)]] then
		cancel_spell()
	elseif (sets.ja[spell.english]) then
		equip(sets.ja[spell.english])
	elseif string.find(spell.english,'Jump') then
		equip({hands="Crusher's Gauntlets"})
	elseif spell.type == "WeaponSkill" then
		local range_mult = {
			[2] = 1.55,
			[3] = 1.490909,
			[4] = 1.44,
			[5] = 1.377778,
			[6] = 1.30,
			[7] = 1.15,
			[8] = 1.25,
			[9] = 1.377778,
			[10] = 1.45,
			[11] = 1.454545454545455,
			[12] = 1.666666666666667,
		}
		ability_distance = res.weapon_skills[spell.id].range
		if player.tp < 1000 then
			cancel_spell()
		elseif spell.target.distance > (ability_distance * range_mult[ability_distance] + spell.target.model_size + player.model_size) then
			cancel_spell()
			add_to_chat(123, spell.name..' Canceled: [Out of Range]')
		elseif player.tp >= 1000 then
			if sets.ws[spell.name] then
				equip(sets.ws[spell.name])
			else
				equip(sets.ws.common)
			end
			if spell.name ~= "Shell Crusher" then
				if (player.tp >= 1000 and player.tp < 3000) then
					equip({left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}}})
				elseif world.time >= (17*60) or world.time <= (7*60) then
					equip({left_ear="Lugra Earring +1"})
				else
					if spell.name == "Aeolian Edge" then
						equip({left_ear="Friomisi Earring"})
					else
						equip({left_ear="Ishvara Earring"})
					end
				end
			end
		end
	elseif spell.action_type == 'Magic' then
		if spell.skill == 'Healing Magic' then
			if string.find(spell.english,'Cure') then
				equip(sets.fc.cure)
			else
				equip(sets.fc.base)
			end
		elseif spell.skill == 'Enhancing Magic' then
			equip(sets.fc["Enhancing Magic"])
		else
			equip(sets.fc.base)
		end
	end
end

function midcast(spell)
	if sets.buff[spell.english] and sets.TP[sets.TP.index[TP_ind]] == sets.TP['None'] then
		equip(sets.buff[spell.english])
		if spell.name == "Phalanx" then
			--equip({right_ear="Mimir Earring",})
			if player.tp < 750 then
				equip(sets.phalanx2)
			end
		end
	elseif spell.action_type == 'Magic' and not spell.type:contains('Trust') then
		--[[if string.find(spell.english,'Cure') and MainHealer:contains(player.equipment.main) then
			equip(sets.curesword)
		else]]if SIRDspells:contains(spell.name) then
			if spell.name == "Soporific" then
				equip(sets.th_sird)
			else
				equip(sets.sird)
			end
		elseif spell.skill == 'Enhancing Magic' then
			if string.find(spell.english,'Protect') then
				equip(sets.protect)
			elseif spell.name == 'Crusade' or spell.name == 'Reprisal' then
				if player.tp < 750 then
					equip(sets.sird,sets.EnhancingDuration)
				end
			else
				equip(sets.EnhancingDuration)
			end
		elseif spell.skill == 'Divine Magic' and spell.name ~= "Flash" then
			if string.find(spell.english,'Enlight') then
				equip(sets.divine)
			elseif spell.name == "Holy II" or spell.name == "Banish II" then
				equip(sets.divinedmg)
			end
		else
			equip(sets.enmity)
		end
	end
	if (spell.name == 'Sneak' or spell.english == 'Spectral Jig' or spell.english:contains('Monomi')) and spell.target.name == player.name and buffactive["Sneak"] then
		send_command('cancel Sneak')
	elseif spell.english:contains('Utsusemi') then
		if buffactive["Copy Image"] then
			windower.send_command('wait 1;cancel 66;')
		elseif buffactive['Copy Image (2)'] then 
			windower.send_command('wait 1;cancel 444')
		elseif buffactive['Copy Image (3)'] then
			windower.send_command('wait 1;cancel 445')
		end
	end
end

function aftercast(spell)
	--reequip()
	send_command('@input //gs c reequip')
	if player.mpp <= 35 then
		equip({ammo="Homiliary",--[[waist="Fucho-no-obi",]]})
	elseif player.mpp <= 42 then
		equip({waist="Flume Belt +1",})
	end
end

function status_change(new,old)
    if new == 'Engaged' then
		--reequip()
		send_command('@input //gs c reequip')
	elseif new == 'Idle' then
		equip(sets.dt,sets.movement)
    end
end

function buff_change(n, gain, buff_table)
	local name
	name = string.lower(n)
	if S{"doom"}:contains(name) then
		if gain then
			send_command('@input /p Cursna - Doomed')
		else
			send_command('@input /p Doom - Off')
		end
	--elseif S{"stoneskin"}:contains(name) then
	--	if gain then
	--		send_command('cancel Stoneskin')
	--	end
	elseif S{"phalanx"}:contains(name) then
		if gain then
		else
			if player.hp ~= 0 then
				add_to_chat(123, 'Phalanx: [lost]')
			end
		end
	end
end

function file_unload()
    send_command('unbind !q')
	send_command('unbind !w')
	send_command('unbind !a')
	send_command('unbind !`')
	send_command('unbind ^`')
	send_command('unbind !s')
end

function self_command(command)
	if command == 'toggle sword set' then
		sword_ind = sword_ind +1
		if sword_ind > #sets.sword.index then sword_ind = 1 end
		windower.add_to_chat(1,'<----- Sword Set changed to '..sets.sword.index[sword_ind]..' ----->')
		equip(sets.dt,sets.sword[sets.sword.index[sword_ind]])
	end
	if command == 'toggle shield set' then
		shield_ind = shield_ind +1
		if shield_ind > #sets.shield.index then shield_ind = 1 end
		windower.add_to_chat(1,'<----- Shield Set changed to '..sets.shield.index[shield_ind]..' ----->')
		equip(sets.dt,sets.shield[sets.shield.index[shield_ind]])
	end
	if command == 'toggle TP set' then
		TP_ind = TP_ind +1
		if TP_ind > #sets.TP.index then TP_ind = 1 end
		windower.add_to_chat(1,'<----- TP Set changed to '..sets.TP.index[TP_ind]..' ----->')
		if player.status == 'Engaged' then
			equip(sets.TP[sets.TP.index[TP_ind]])
		end
	end
	if command == 'reequip' then
		if sets.TP[sets.TP.index[TP_ind]] ~= sets.TP['None'] then
			equip(sets.TP[sets.TP.index[TP_ind]])
		else
			equip(sets.dt,sets.shield[sets.shield.index[shield_ind]],sets.sword[sets.sword.index[sword_ind]])
		end
    end
end

------------------------------------------
-- Macro and Style Change on Job Change
------------------------------------------
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 ;wait 5.0;input /lockstyleset '..sheet)
    add_to_chat (55, 'You are on '..tostring(player.main_job_full):color(5)..''..('. '):color(55)..''..('Macros set!'):color(121))
end
 
--Page, Book--
set_macros(1,4)
--Use the Lockstyle Number--
set_style(005)
By Vyrerus on 2025-08-20 13:40:18
Lili said: »
Asura.Vyre said: »
:)

Damn man I sure am glad you are nowhere near in a position to influence how the game is developed.
I'm glad you're not either. You seem like a bitter shrew.
By Vyrerus on 2025-08-20 13:39:38
waffle said: »
Asura.Vyre said: »
They should adjust a lot of SPs, mostly just make them longer duration
Triple the duration on Hundred Fists
Double Chainpsell duration
Double duration increase to Mighty Strikes
Triple Perfect Dodge duration
Triple Invincible's duration.
When I think about buffing certain player abilities, one thing I always try to take into consideration is if I'm ok with monsters that use those abilities also getting that buff.
In this case, I don't think I'm ok with monsters getting triple duration hundred fists, perfect dodge, and invincible, nor double duration chainspell or mighty strikes.
Monsters have never been given 2hr enhancements. The only thing monsters get over players is sometimes monters get the ability to use the 2hrs multiple times.
By Nedavets1 on 2025-08-20 13:29:00
Really struggling with my gearswap with pld and hp. Switching between the sets (FC, enmity, idle, etc), the hp loss is really significant. I've tried assigning priority, but cant seem to reduce the amount of hp loss between switching sets, losing more than 25% hp when switching back to idle. Anyone have any idea why this is happening?
Code
require 'organizer-lib'

-------------------------------------------------------------------------------------------------------------------
--  Keybinds
-------------------------------------------------------------------------------------------------------------------

--  Modes:      [ F9 ]              Cycle Offense Modes
--              [ CTRL+F9 ]         Cycle Defense Modes
--              [ ALT+F9 ]          Weaponskill Modes
--              [ F10 ]             PDT Modes
--              [ CTRL+F10 ]        Cycle PDT Modes
--              [ ALT+F10 ]         Toggle Kiting Modes
--              [ F11 ]             MDT Modes
--              [ CTRL+F11 ]        Casting Modes
--              [ F12 ]             Cycle MDT Modes
--              [ CTRL+F12 ]        Cycle Idle Modes
--              [ ALT+F12 ]         Cancel MDT Mode
--
---------------------------------------------------------------------------------------------------------------------------------------
-------------------------------- Initialization function that defines sets and variables to be used -----------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
 
-- IMPORTANT: Make sure to also get the Mote-Include.lua file to go with this.
 
-- Initialization function for this job file.
function get_sets()
    -- Load and initialize the include file.
    include('Mote-IncludePLD.lua')
include('organizer-lib')
end

 
-- Setup vars that are user-dependent.  Can override this function in a sidecar file.
function user_setup()
    -- Options: Override default values
    options.OffenseModes = {'Normal', 'Acc'}
options.DefenseModes = {'Normal', 'PDT'}
    options.WeaponskillModes = {'Normal', 'Acc'}
    options.CastingModes = {'Normal', 'DT'}
    options.IdleModes = {'Normal',}
    options.RestingModes = {'Normal'}
    options.PhysicalDefenseModes = {'Aegis', 'Srivatsa', 'Ochain'}
    options.MagicalDefenseModes = {'MDT' ,'BDT','ResistCharm'}
    options.HybridDefenseModes = {'None', 'Reraise',}
    options.BreathDefenseModes = {'BDT'}
state.Defense.PhysicalMode = 'Aegis'
    state.HybridDefenseMode = 'None'
    state.BreathDefenseModes = 'BDT'
    send_command('bind f12 gs c cycle MagicalDefense')
  send_command('bind ^= gs c activate MDT')
    select_default_macro_book()
end

 function user_unload()
send_command('unbind `')
send_command('unbind ^`')
send_command('unbind !`')
send_command('unbind ^-')
send_command('unbind !-')
send_command('unbind ^=')
send_command('unbind !=')
send_command('unbind delete')
send_command('unbind end')
send_command('unbind home')
end

-- Define sets and vars used by this job file.
function job_setup()
  include('caster_buffWatcher.lua')
buffWatcher.watchList =
{
                       ["Enlight"]="Enlight II",
  ["Enmity Boost"]="Crusade",
                       ["Phalanx"]="Phalanx",
                       ["Protect"]="Protect V",
                       ["Shell"]="Shell IV",  
}
include('common_info.status.lua')
end

--------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------Precast sets-----------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------

function init_gear_sets()

-- Precast sets to enhance JAs
    sets.precast.JA['Invincible'] = set_combine(sets.precast.JA['Provoke'], {legs="Cab. Breeches +3"})
   
    sets.precast.JA['Holy Circle'] = set_combine(sets.precast.JA['Provoke'], {feet="Rev. Leggings +3"})
         
    sets.precast.JA['Shield Bash'] = set_combine(sets.precast.JA['Provoke'], {hands="Cab. Gauntlets +2", left_ear="Knightly Earring", left_ring="Guardian's Ring",right_ring="Fenian Ring"})
     
    sets.precast.JA['Intervene'] = sets.precast.JA['Shield Bash']
   
    sets.precast.JA['Sentinel'] = set_combine(sets.precast.JA['Provoke'],
{
ammo="Iron Gobbet",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Souv. Diechlings +1",
    feet="Caballarius Leggings +3",
    neck="Moonlight Necklace",
    waist="Creed Baudrier",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Stikini Ring +1",
    back="Rudianos's Mantle",})
     
    --The amount of damage absorbed is variable, determined by VIT*2
    sets.precast.JA['Rampart'] =
{
    ammo="Iron Gobbet",
    head="Cab. Coronet +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Souv. Diechlings +1",
    feet="Souveran Schuhs +1",
    neck="Moonlight Necklace",
    waist="Creed Baudrier",
    left_ear="Cryptic Earring",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    left_ring="Apeile Ring +1",
    right_ring="Moonbeam Ring",
    back="Rudianos's Mantle",}

     
    sets.buff['Rampart'] = sets.precast.JA['Rampart'], {head="Rev. Coronet +1"}

   
    sets.precast.JA['Fealty'] = set_combine(sets.precast.JA['Provoke'], {body="Cab. Surcoat +3",})
     
    sets.precast.JA['Divine Emblem'] = set_combine(sets.precast.JA['Provoke'], {feet="Chev. Sabatons +3"})
     
    --15 + min(max(floor((user VIT + user MND - target VIT*2)/4),0),15)
    sets.precast.JA['Cover'] = set_combine(sets.precast.JA['Rampart'], {head="Cab. Coronet +1", body="Cab. Surcoat +3"})
   
    sets.buff['Cover'] = sets.precast.JA['Cover']
     
    -- add MND for Chivalry
    sets.precast.JA['Chivalry'] =
{
ammo="Strobilus",
    head="Jumalik Helm",
    body="Rev. Surcoat +3",
    hands={ name="Cab. Gauntlets +3", augments={'Enhances "Chivalry" effect',}},
    legs={ name="Cab. Breeches +3", augments={'Enhances "Invincible" effect',}},
    feet="Odyssean Greaves",
    neck="Dualism Collar +1",
    waist="Creed Baudrier",
    left_ear="Cryptic Earring",
    right_ear="Nourish. Earring +1",
    left_ring="Levia. Ring +1",
    right_ring={name="Stikini Ring +1",bag="wardrobe3"},
    back={ name="Weard Mantle", augments={'VIT+5','DEX+3','Phalanx +5',}},
}
     
    ------------------------ Sub WAR ------------------------
sets.precast.JA['Provoke'] =    --enmity +152
{

    ammo="Iron Gobbet",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Souv. Diechlings +1",
    feet="Souveran Schuhs +1",
    neck="Moonlight Necklace",
    waist="Creed Baudrier",
    left_ear="Cryptic Earring",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    left_ring="Apeile Ring +1",
    right_ring="Moonbeam Ring",
    back="Rudianos's Mantle",
}
 
    sets.precast.JA['Warcry'] = sets.precast.JA['Provoke']
     
    sets.precast.JA['Defender'] = sets.precast.JA['Provoke']
 
    ------------------------ Sub DNC ------------------------
     
    -- Waltz set (chr and vit)
    sets.precast.Waltz =
{
    ammo="Iron Gobbet",
    head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst dmg.+10%','"Refresh"+1',}},
    body={ name="Found. Breastplate", augments={'Accuracy+11','Mag. Acc.+10','Attack+10','"Mag.Atk.Bns."+9',}},
    hands={ name="Founder's Gauntlets", augments={'STR+10','Attack+15','"Mag.Atk.Bns."+15','Phys. dmg. taken -5%',}},
    legs="Dashing Subligar",
    feet={ name="Odyssean Greaves", augments={'Accuracy+5 Attack+5','"Dbl.Atk."+4','VIT+15',}},
    neck="Kgt. Beads +1",
    waist="Latria Sash",
    left_ear="Terra's Pearl",
    right_ear="Terra's Pearl",
    left_ring="Valseur's Ring",
    right_ring="Asklepian Ring",
    back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Enmity+10',}},
}
         
    -- Special gear for Healing Waltz.
    sets.precast.Waltz['Healing Waltz'] = sets.precast.Waltz
     
    sets.precast.Step = sets.precast.JA['Provoke']
       
    sets.precast.Flourish1 = sets.precast.Step
     
    ------------------------ Sub RUN ------------------------
    sets.precast.JA['Ignis'] = sets.precast.JA['Provoke']  
    sets.precast.JA['Gelus'] = sets.precast.JA['Provoke']
    sets.precast.JA['Flabra'] = sets.precast.JA['Provoke']
    sets.precast.JA['Tellus'] = sets.precast.JA['Provoke']  
    sets.precast.JA['Sulpor'] = sets.precast.JA['Provoke']
    sets.precast.JA['Unda'] = sets.precast.JA['Provoke']
    sets.precast.JA['Lux'] = sets.precast.JA['Provoke']    
    sets.precast.JA['Tenebrae'] = sets.precast.JA['Provoke']
     
    sets.precast.JA['Vallation'] = sets.precast.JA['Provoke']
     
    sets.precast.JA['Pflug'] = sets.precast.JA['Provoke']
         
    -- Fast cast sets for spells   2844HP FC+60/80
sets.precast.FC =
{
    ammo="Sapience Orb",
    head={ name="Carmine Mask +1", priority=12},
    body="Rev. Surcoat +3",
    hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
    legs="Enif Cosciales",
    feet={ name="Chev. Sabatons +3", priority=13},
    neck="Voltsurge Torque",
    waist={ name="Creed Baudrier", priority=11},
    left_ear="Etiolation Earring",
    right_ear="Loquac. Earring",
    left_ring="Kishar Ring",
    right_ring="Naji's Loop",
    back={ name="Rudianos's Mantle", priority=10},
}    
sets.precast.FC.DT =
{
    ammo="Sapience Orb",
    head="Carmine Mask +1",
    body="Rev. Surcoat +3",
    hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
    legs="Enif Cosciales",
    feet="Chev. Sabatons +3",
    neck="Voltsurge Torque",
    waist="Flume Belt +1",
    left_ear="Etiolation Earring",
    right_ear="Loquac. Earring",
    left_ring="Kishar Ring",
    right_ring="Naji's Loop",
    back="Rudianos's Mantle",
}

    sets.precast.FC.Phalanx = set_combine(sets.precast.FC , {waist="Siegel Sash",})
sets.precast.FC.Enlight = sets.precast.FC.Phalanx
sets.precast.FC['Enlight II'] = sets.precast.FC.Phalanx
sets.precast.FC.Protect = sets.precast.FC.Phalanx
sets.precast.FC.Shell = sets.precast.FC.Phalanx
sets.precast.FC.Crusade = sets.precast.FC.Phalanx
         
    sets.precast.FC.Cure =
{
    ammo="Sapience Orb",
    head="Carmine Mask +1",
    body="Rev. Surcoat +3",
    hands="Leyline Gloves",
    legs="Enif Cosciales",
    feet="Chev. Sabatons +3",  
    neck="Voltsurge Torque",
    waist="Creed Baudrier",
    left_ear="Etiolation Earring",
    right_ear="Loquac. Earring",
    left_ring="Kishar Ring",
    right_ring="Naji's Loop",
    back="Rudianos's Mantle",
}      
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS =
{
    ammo="Oshasha's Treatise",
    head={ name="Nyame Helm", augments={'Path: B',}},
    body={ name="Nyame Mail", augments={'Path: B',}},
    hands={ name="Nyame Gauntlets", augments={'Path: B',}},
    legs={ name="Nyame Flanchard", augments={'Path: B',}},
    feet={ name="Nyame Sollerets", augments={'Path: B',}},
    neck="Fotia Gorget",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Thrud Earring",
    right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+9','Weapon skill damage +10%',}},
}
 
    -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
 
    --Stat Modifier:     73~85% MND  fTP:    1.0

   
    sets.precast.WS['Sanguine Blade'] =
{
    ammo="Oshasha's Treatise",
    head={ name="Nyame Helm", augments={'Path: B',}},
    body={ name="Nyame Mail", augments={'Path: B',}},
    hands={ name="Nyame Gauntlets", augments={'Path: B',}},
    legs={ name="Nyame Flanchard", augments={'Path: B',}},
    feet={ name="Nyame Sollerets", augments={'Path: B',}},
    neck="Fotia Gorget",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Thrud Earring",
    right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+9','Weapon skill damage +10%',}},
}

     
    sets.precast.WS['Aeolian Edge'] =
{
    ammo="Oshasha's Treatise",
    head={ name="Nyame Helm", augments={'Path: B',}},
    body={ name="Nyame Mail", augments={'Path: B',}},
    hands={ name="Nyame Gauntlets", augments={'Path: B',}},
    legs={ name="Nyame Flanchard", augments={'Path: B',}},
    feet={ name="Nyame Sollerets", augments={'Path: B',}},
    neck="Fotia Gorget",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Thrud Earring",
    right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+9','Weapon skill damage +10%',}},
}
    --Stat Modifier: 50%MND / 50%STR fTP: 1000:4.0 2000:10.25 3000:13.75
    sets.precast.WS['Savage Blade'] =
{
    ammo="Oshasha's Treatise",
    head={ name="Nyame Helm", augments={'Path: B',}},
    body={ name="Nyame Mail", augments={'Path: B',}},
    hands={ name="Nyame Gauntlets", augments={'Path: B',}},
    legs={ name="Nyame Flanchard", augments={'Path: B',}},
    feet={ name="Nyame Sollerets", augments={'Path: B',}},
    neck="Fotia Gorget",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Thrud Earring",
    right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+9','Weapon skill damage +10%',}},
}

sets.precast.WS['Hexa Strike'] =
{
    ammo="Crepuscular Pebble",
    head={ name="Odyssean Helm", augments={'Accuracy+23','Weapon skill damage +3%','STR+2',}},
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Sakpata's Cuisses",
    feet="Sulev. Leggings +2",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Thrud Earring",
    right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
    left_ring="Begrudging Ring",
    right_ring="Regal Ring",
    back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Enmity+10','Damage taken-5%',}},
}

   --Stat Modifier:  80%DEX  fTP:2.25
   sets.precast.WS['Chant du Cygne'] =
{
    ammo="Oshasha's Treatise",
    head={ name="Nyame Helm", augments={'Path: B',}},
    body={ name="Nyame Mail", augments={'Path: B',}},
    hands={ name="Nyame Gauntlets", augments={'Path: B',}},
    legs={ name="Nyame Flanchard", augments={'Path: B',}},
    feet={ name="Nyame Sollerets", augments={'Path: B',}},
    neck="Fotia Gorget",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Thrud Earring",
    right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+9','Weapon skill damage +10%',}},
}

    --Stat Modifier: WS damage + 62/81   2350DMG maxaggro
    sets.precast.WS['Atonement'] =
{
    ammo="Iron Gobbet",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Souv. Diechlings +1",
    feet="Souveran Schuhs +1",
    neck="Moonlight Necklace",
    waist="Fotia Belt",
    left_ear="Cryptic Earring",
    right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
    left_ring="Vexer Ring +1",
    right_ring="Epaminondas's Ring",
    back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+9','Weapon skill damage +10%',}},
}
    ------------------------------------------------------------------------------------------------
    -----------------------------------------Midcast sets-------------------------------------------
    ------------------------------------------------------------------------------------------------
    sets.midcast.FastRecast =
{
    ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Regal Gauntlets",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonlight Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Nourish. Earring +1",
    left_ring="Evanescence Ring",
    right_ring="Defending Ring",
    back="Rudianos's Mantle",
}

    -- Divine Skill 599/560 140 Acc
    sets.midcast.Divine =
{

    ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Rev. Surcoat +3",
    hands="Souv. Handsch. +1",
    legs="Souv. Diechlings +1",
    feet="Souveran Schuhs +1",
    neck="Incanter's Torque",
    waist="Creed Baudrier",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring={name="Stikini Ring +1",bag="wardrobe3"},
    back="Rudianos's Mantle",
}

    sets.midcast.Divine.DT =
{

    ammo="Staunch Tathlum +1",
    head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst dmg.+10%','"Refresh"+1',}},
    body="Rev. Surcoat +3",
    hands={ name="Eschite Gauntlets", augments={'Mag. Evasion+15','Spell interruption rate down +15%','Enmity+7',}},
    legs={ name="Kaiser Diechlings", augments={'Magic dmg. taken -3%','Divine magic skill +5',}},
    feet="Souveran Schuhs +1",
    neck="Incanter's Torque",
    waist="Asklepian Belt",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    left_ring={name="Stikini Ring +1",bag="wardrobe2"},
    right_ring={name="Stikini Ring +1",bag="wardrobe3"},
    back="Moonlight Cape",
}


--skill 430
sets.midcast['Enhancing Magic'] =
{
    ammo="Staunch Tathlum +1",
    head="Chev. Armet +2",
    body="Shab. Cuirass +1",
    hands="Regal Gauntlets",
    legs={ name="Carmine Cuisses +1", augments={'HP+80','STR+12','INT+12',}},
    neck="Incanter's Torque",
    waist="Rumination sash",
feet="Cab. Leggings +3",
    left_ear="Andoaa Earring",
    right_ear="Mimir Earring",
    left_ring={name="Stikini Ring +1",bag="wardrobe2"},
    right_ring={name="Stikini Ring +1",bag="wardrobe3"},
    back="Merciful Cape",
}

sets.midcast.MAB =
{
    ammo="Pemphredo Tathlum",
    head="Jumalik Helm",
    neck="Warder's Charm +1",
    ear1="Static Earring",
    ear2="Friomisi Earring",
    body="Sacro Breastplate",
    ring1="Locus Ring",
    ring2="Mujin Band",
    back="Rudianos's Mantle",
    waist="Skrymir Cord",
    legs="Augury Cuisses +1",
}

   sets.midcast.Flash = -- 113 to 126
{
    ammo="Iron Gobbet",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Souv. Diechlings +1",
    feet="Chev. Sabatons +3",
    neck="Moonlight Necklace",
    waist="Creed Baudrier",
    left_ear="Friomisi Earring",
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Stikini Ring +1",
    back="Rudianos's Mantle",
}


    sets.midcast.Enlight = sets.midcast.Divine --+95 accu
    sets.midcast['Enlight II'] = sets.midcast.Enlight--+142 accu (+2 acc each 20 divine skill)

    --Max HP+ set for reprisal 3880HP / war so 7760 damage reflect before it off (8k+ with food)
    sets.midcast.Reprisal =
{
    ammo="Egoist's Tathlum",
    head="Souv. Schaller +1",
    body="Shab. Cuirass +1",
hands="Regal Gauntlets",
    legs="Souv. Diechlings +1",
    feet="Souveran Schuhs +1",
    neck="Moonlight Necklace",
    waist="Silver Mog. Belt",
    left_ear="Cryptic Earring",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    left_ring="Moonlight Ring",
    right_ring="Evanescence ring",
    back="Moonlight Cape",
}

    --Phalanx skill 391/386 = Damage-31/31  + (phalanx +equipment) 31/31 total 62/62; after test = 61

    sets.midcast.Phalanx =
{
    ammo="Staunch Tathlum +1",
head={ name="Yorium Barbuta", priority=12},
    body={ name="Yorium Cuirass", priority=11},
    hands={ name="Souv. Handsch. +1", priority=13},
    legs={ name="Founder's hose", priority=9},
    feet={ name="Souveran Schuhs +1", priority=10},
    neck="Moonlight Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Chev. Earring +1",
    left_ring={name="Stikini Ring +1",bag="wardrobe2"},
    right_ring={name="Stikini Ring +1",bag="wardrobe3"},
    back={ name="Weard Mantle", priority=8},
}

    sets.midcast.Banish =
{
    ammo="Pemphredo Tathlum",
    head="Wh. Rarab Cap +1",
    body={ name="Odyss. Chestplate", augments={'Pet: "Subtle Blow"+9','Pet: Mag. Acc.+13 Pet: "Mag.Atk.Bns."+13','"Treasure Hunter"+1',}},
    hands={ name="Founder's Gauntlets", augments={'STR+10','Attack+15','"Mag.Atk.Bns."+15','Phys. dmg. taken -5%',}},
    legs={ name="Odyssean Cuisses", augments={'Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','AGI+14','"Treasure Hunter"+2',}},
    feet={ name="Founder's Greaves", augments={'VIT+10','Accuracy+15','"Mag.Atk.Bns."+15','Mag. Evasion+15',}},
    neck="Eddy Necklace",
    waist="Orpheus's Sash",
    left_ear="Cryptic Earring",
    right_ear="Friomisi Earring",
    left_ring="Metamor. Ring +1",
    right_ring="Fenian Ring",
    back={ name="Rudianos's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%','Mag. Evasion+15',}},
}


    sets.midcast['Banish II'] = set_combine(sets.midcast.MAB, {right_ring="Fenian Ring"})

    sets.midcast.Holy = sets.midcast.MAB
    sets.midcast['Holy II'] = sets.midcast.Holy

    sets.midcast.Crusade =
{
    ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    hands="Regal Gauntlets",
legs={ name="Founder's Hose", augments={'MND+8','Mag. Acc.+14','Attack+13','Breath dmg. taken -3%',}},
    feet="Souveran Schuhs +1",
    neck="Kgt. Beads +1",
    waist="Rumination Sash",
    left_ear="Cryptic Earring",
    right_ear="Chev. Earring +1",
    left_ring="Evanescence Ring",
    right_ring="Apeile Ring +1",
    back={ name="Rudianos's Mantle", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity+10',}},
}

-- Cure1=120; Cure2=266; Cure3=600; Cure4=1123; cure potency caps at 50/50% received caps at 32/30%. sans signet
    sets.midcast.Cure =
{
    ammo="Staunch Tathlum +1",
head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%', priority=11}},
   body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%', priority=12}},
   hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%', priority=13}},
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonlight Necklace",
    waist="Audumbla Sash",
    left_ear="Tuisto Earring",
    right_ear="Nourish. Earring",
    left_ring="Gelatinous Ring +1",
    right_ring="Stikini Ring +1",
    back="Rudianos's Mantle",
}

    sets.midcast.Cure.DT =
{
    ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonlight Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Chev. Earring +1",
    left_ring="Apeile Ring +1",
    right_ring="Apeile Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}
-- 630 HP (curecheat)
sets.self_healing =
{
    ammo="Staunch Tathlum +1",
head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%', priority=11}},
   body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%', priority=12}},
   hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%', priority=13}},
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonlight Necklace",
    waist="Audumbla Sash",
    left_ear="Tuisto Earring",
    right_ear="Nourish. Earring",
    left_ring="Gelatinous Ring +1",
    right_ring="Stikini Ring +1",
    back="Rudianos's Mantle",
}

sets.self_healing.DT =
{
    ammo="Staunch Tathlum +1",
    head={ name="Souv. Schaller +1", augments={'Accuracy+13','Attack+12','Enmity+5',}},
    body="Sakpata's Plate",
    hands="Chev. Gauntlets +2",
    legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    feet={ name="Odyssean Greaves", augments={'Attack+23','"Fast Cast"+3','DEX+3','Accuracy+15',}},
    neck="Diemer Gorget",
    waist="Flume Belt +1",
    left_ear="Nourish. Earring +1",
    right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    left_ring="Kishar Ring",
    right_ring="Defending Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}

    sets.midcast.Protect =
{
    ammo="Staunch Tathlum +1",
    head="Souv. Schaller +1",
    body="Shab. Cuirass +1",
    hands="Regal Gauntlets",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Incanter's Torque",
    waist="Rumination Sash",
    left_ear="Halasz Earring",
    right_ear="Chev. Earring +1",
    left_ring="Evanescence Ring",
    right_ring="Sheltered Ring",
    back="Solemnity Cape",
}
    sets.midcast.Shell =
{
    ammo="Staunch Tathlum +1",
    head="Souv. Schaller +1",
    body="Shab. Cuirass +1",
    hands="Regal Gauntlets",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Incanter's Torque",
    waist="Rumination Sash",
    left_ear="Halasz Earring",
    right_ear="Chev. Earring +1",
    left_ring="Evanescence Ring",
    right_ring="Sheltered Ring",
    back="Solemnity Cape",
}
sets.midcast.Raise =
{
    ammo="Staunch Tathlum +1",
    head="Souv. Schaller +1",
    body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    hands="Regal Gauntlets",
    legs={ name="Founder's Hose", augments={'MND+8','Mag. Acc.+14','Attack+13','Breath dmg. taken -3%',}},
    feet={ name="Odyssean Greaves", augments={'"Mag.Atk.Bns."+10','"Fast Cast"+6',}},
    neck="Moonlight Necklace",
    waist="Rumination Sash",
    left_ear="Halasz Earring",
    right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    left_ring="Moonlight Ring",
    right_ring="Defending Ring",
    back="Moonlight Cape",
}
    sets.midcast.Stun = sets.midcast.Flash

--Spell interupt down (pro shell raise)104/102
sets.SID =
{
    ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Souv. Diechlings +1",
    feet="Eschite Greaves",
    neck="Incanter's Torque",
    waist="Creed Baudrier",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    right_ear="Chev. Earring +1",
    left_ring="Apeile Ring +1",
    right_ring="Stikini Ring +1",
    back="Rudianos's Mantle",
}

   
sets.RefreshPotencyRecieved =
{
    hands="Regal Gauntlets",
    feet="Shabti Sabatons +1",
    waist="Gishdubar Sash",
}


---------- NIN Spell --------------
sets.midcast.Utsusemi =
{
    ammo="Staunch Tathlum +1",
    head="Souv. Schaller +1",
    body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    hands="Regal Gauntlets",
    legs={ name="Founder's Hose", augments={'MND+8','Mag. Acc.+14','Attack+13','Breath dmg. taken -3%',}},
    feet={ name="Odyssean Greaves", augments={'"Mag.Atk.Bns."+10','"Fast Cast"+6',}},
    neck="Incanter's Torque",
    waist="Rumination Sash",
    left_ear="Halasz Earring",
    right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    left_ring="Evanescence Ring",
    right_ring="Defending Ring",
    back="Solemnity Cape",
}

---------- BLU Spell --------------
    sets.midcast['Geist Wall'] =
{
    ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonbeam Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Apeile Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}


    sets.midcast['Sheep Song'] =
{
  ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonbeam Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Apeile Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}

sets.midcast.Cocoon =
{
  ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonbeam Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Apeile Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}

sets.midcast['Blank Gaze'] =
{
  ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonbeam Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Apeile Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}
   
sets.midcast['Bomb Toss'] =
{
  ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonbeam Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Apeile Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}


sets.midcast['Jettatura'] =
{
  ammo="Staunch Tathlum +1",
    head="Loess Barbuta +1",
    body="Chev. Cuirass +3",
    hands="Souv. Handsch. +1",
    legs="Founder's Hose",
    feet="Odyssean Greaves",
    neck="Moonbeam Necklace",
    waist="Audumbla Sash",
    left_ear="Knightly Earring",
    right_ear="Cryptic Earring",
    left_ring="Apeile Ring +1",
    right_ring="Apeile Ring",
    back={ name="Rudianos's Mantle", augments={'HP+45','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}



    --------------------------------------
    -- Idle/resting/defense/etc sets
    --------------------------------------
sets.Cover = set_combine(sets.precast.JA['Rampart'], {main="Kheshig Blade", head="Cab. Coronet +1", body="Cab. Surcoat +3"})
    sets.Doom = {neck="Nicander's Necklace", legs="Shabti Cuisses",left_ring="Saida Ring",right_ring="Eschmun's Ring", waist="Gishdubar Sash"} -- +85%
sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
 
sets.Breath =
{
    ammo="Staunch Tathlum +1",
    head="Chev. Armet +3",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Chev. Cuisses +3",
    feet="Sakpata's Leggings",
    neck="Unmoving Collar +1",
    waist="Carrier's Sash",
    left_ear="Odnowa Earring +1",
    right_ear="Chev. Earring +1",
    left_ring="Gelatinous Ring +1",
    right_ring="Fortified Ring",
    back="Rudianos's Mantle",
}
   
    sets.resting =
{
    ammo="Staunch Tathlum +1",
    head="Chev. Armet +3",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Chev. Cuisses +3",
    feet="Sakpata's Leggings",
    neck="Unmoving Collar +1",
    waist="Carrier's Sash",
    left_ear="Odnowa Earring +1",
    right_ear="Chev. Earring +1",
    left_ring="Gelatinous Ring +1",
    right_ring="Fortified Ring",
    back="Rudianos's Mantle",
}
     
    -- Idle sets
    sets.idle =
{
    ammo="Staunch Tathlum +1",
    head={ name="Chev. Armet +3", priority=12},
    body={ name="Adamantite Armor", priority=13},
    hands={ name="Sakpata's Gauntlets", priority=7},
    legs={ name="Chev. Cuisses +3", priority=11},
    feet={ name="Sakpata's Leggings", priority=10},
    neck={ name="Unmoving Collar +1", priority=8},
    waist={ name="Platinum Moogle Belt", priority=9},
    left_ear="Odnowa Earring +1",
    right_ear={ name="Chev. Earring +1", priority=7},
    left_ring={ name="Gelatinous Ring +1", priority=10},
    right_ring="Fortified Ring",
    back="Rudianos's Mantle",
}
 
    sets.idle.Town =
{
    ammo="Staunch Tathlum +1",
    head={ name="Chev. Armet +3", priority=12},
    body={ name="Adamantite Armor", priority=13},
    hands={ name="Sakpata's Gauntlets", priority=7},
    legs={ name="Chev. Cuisses +3", priority=11},
    feet={ name="Sakpata's Leggings", priority=10},
    neck={ name="Unmoving Collar +1", priority=8},
    waist={ name="Platinum Moogle Belt", priority=9},
    left_ear="Odnowa Earring +1",
    right_ear={ name="Chev. Earring +1", priority=7},
    left_ring={ name="Gelatinous Ring +1", priority=10},
    right_ring="Fortified Ring",
    back="Rudianos's Mantle",
}
     
    sets.idle.Weak =
{
    ammo="Staunch Tathlum +1",
    head="Chev. Armet +3",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Chev. Cuisses +3",
    feet="Sakpata's Leggings",
    neck="Unmoving Collar +1",
    waist="Carrier's Sash",
    left_ear="Odnowa Earring +1",
    right_ear="Chev. Earring +1",
    left_ring="Gelatinous Ring +1",
    right_ring="Fortified Ring",
    back="Rudianos's Mantle",
}

    sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)

sets.HQ =
{
    ammo="Staunch Tathlum +1",
    head="Sakpata's Helm",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Chev. Cuisses +3",
    feet="Sakpata's Leggings",
    neck="Warder's Charm +1",
    waist="Asklepian Belt",
    left_ear="Spellbreaker Earring",
    right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    left_ring="Vexer Ring +1",
    right_ring="Warden's Ring",
    back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','Accuracy+2','Enmity+10','Damage taken-5%',}},
}


    --   Physical
    --     PDT
    --     Aegis
    -- Defense sets
    --   Magical
    --     MDT
    --   Hybrid (on top of either physical or magical)
    --     Repulse  
    --     Reraise
    --     RepulseReraise
    --   Custom
    -- sets.Repulse = {back="Repulse Mantle"}
  --3367 HP  
    sets.defense.PDT =
{

    ammo="Staunch Tathlum +1",
    head="Sakpata's Helm",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Chev. Cuisses +3",
    feet="Sakpata's Leggings",
    neck="Unmoving Collar +1",
    waist="Carrier's Sash",
    left_ear="Odnowa Earring +1",
    right_ear="Chev. Earring +1",
    left_ring="Apeile Ring +1",
    right_ring="Gelatinous Ring +1",
    back="Rudianos's Mantle",
}
    -- To cap MDT with Shell IV (52/256), need 76/256 in gear. Current gear set is 248/256.
    -- Shellra V can provide 75/256.
    sets.defense.MDT =
{
    ammo="Staunch Tathlum +1",
    head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    body={ name="Souv. Cuirass +1", augments={'VIT+12','Attack+25','"Refresh"+3',}},
    hands="Sulev. Gauntlets +2",
    legs="Sulev. Cuisses +2",
    feet="Rev. Leggings +3",
    neck="Moonlight Necklace",
    waist="Plat. Mog. Belt",
    left_ear="Impreg. Earring",
    right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    left_ring="Moonlight Ring",
    right_ring="Defending Ring",
    back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','Accuracy+2','Enmity+10','Damage taken-5%',}},
}

sets.defense.BDT =
{  

    ammo="Staunch Tathlum +1",
    head="Souv. Schaller +1",
    body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    hands="Chev. Gauntlets +2",
    legs="Souv. Diechlings +1",
    feet="Souveran Schuhs +1",
    neck="Kgt. Beads +1",
    waist="Creed Baudrier",
    left_ear="Tuisto Earring",
    left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    left_ring="Moonlight Ring",
right_ring="Defending Ring",
    back={ name="Rudianos's Mantle", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity+10',}},
}

sets.defense.ResistCharm =
{

ammo="Staunch Tathlum +1",
    head="Souv. Schaller +1",
    body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    hands="Chev. Gauntlets +2",
    legs="Souv. Diechlings +1",
    feet="Souveran Schuhs +1",
    neck="Kgt. Beads +1",
    waist="Asklepian Belt",
    left_ear="Eabani Earring",
    right_ear="Volunt. Earring",
    left_ring="Unyielding Ring",
    right_ring="Wuji Ring",
    back="Solemnity Cape",
}

    sets.defense.Ochain =
{
    ammo="Staunch Tathlum +1",
    head="Sakpata's Helm",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Chev. Cuisses +3",
    feet="Sakpata's Leggings",
    neck="Unmoving Collar +1",
    waist="Carrier Sash",
    left_ear="Odnowa Earring +1",
    right_ear="Chev. Earring +1",
    left_ring="Apeile Ring +1",
    right_ring="Gelatinous Ring +1",
    back="Rudianos's Mantle",
}

    sets.defense.Aegis =
{
    --main="burtgang",
    sub="Aegis",
    ammo="Staunch Tathlum +1",
    head="Sakpata's Helm",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Sakpata's Cuisses",
    feet="Sakpata's Leggings",
    neck={ name="Unmoving Collar +1", augments={'Path: A',}},
    waist="Carrier's Sash",
    left_ear="Thureous Earring",
    right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    left_ring="Moonlight Ring",
    right_ring="Gelatinous Ring +1",
    back="Moonbeam Cape",
}
 
    sets.defense.Srivatsa =
{
    --main="burtgang",
    ammo="Staunch Tathlum +1",
    head="Sakpata's Helm",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Chev. Cuisses +3",
    feet="Sakpata's Leggings",
    neck="Unmoving Collar +1",
    waist="Carrier Sash",
    left_ear="Odnowa Earring +1",
    right_ear="Chev. Earring +1",
    left_ring="Apeile Ring +1",
    right_ring="Gelatinous Ring +1",
    back="Rudianos's Mantle",
}
 
--Doom/RR",

    sets.defense.PDT.Reraise = set_combine(sets.defense.PDT, sets.Reraise)
    sets.defense.Aegis.Reraise = set_combine(sets.defense.Aegis, sets.Reraise)
    sets.defense.MDT.Reraise = set_combine(sets.defense.MDT, sets.Reraise)
    sets.defense.Aegis.Reraise = set_combine(sets.defense.Aegis, sets.Reraise)

    sets.defense.PDT.Doom = set_combine(sets.defense.PDT, sets.Doom)
    sets.defense.Aegis.Doom = set_combine(sets.defense.Aegis, sets.Doom)
    sets.defense.MDT.Doom = set_combine(sets.defense.PDT, sets.Doom)
    sets.defense.Aegis.Doom = set_combine(sets.defense.Aegis, sets.Doom)

    sets.Kiting = {legs="Carmine Cuisses +1", right_ring="Shneddick Ring"}

 
    --------------------------------------
    -- Engaged sets
    --------------------------------------

    sets.engaged = --1124 / 1264 avec enlight up
{

    ammo="Coiste Bodhar",
    head="Chev. Armet +3",
    body="Chev. Cuirass +3",
    hands="Chev. Gauntlets +3",
    legs="Chev. Cuisses +3",
    feet="Chev. Sabatons +3",
    neck="Null Loop",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Odnowa Earring +1",
    right_ear="Chev. Earring +1",
    left_ring="Gelatinous Ring +1",
    right_ring="Chirich Ring +1",
    back="Rudianos's Mantle",
    --ammo="Staunch Tathlum +1",
    --head="Chev. Armet +2",
    --body="Sakpata's Plate",
    --hands="Chev. Gauntlets +2",
    --legs="Chev. Cuisses +2",
    --feet={ name="Sakpata's Leggings", augments={'Path: A',}},
    --neck={ name="Kgt. Beads +1", augments={'Path: A',}},
    --waist="Plat. Mog. Belt",
    --left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
    --right_ear={ name="Chev. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+17','Mag. Acc.+17','Damage taken-6%','STR+9 VIT+9',}},
    --left_ring="Moonlight Ring",
    --right_ring="Petrov Ring",
    --back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Enmity+10','Damage taken-5%',}},
}
 
    sets.engaged.Acc = --1199 / 1341 avec enlight up
{
    ammo="Hasty Pinion +1",
    head={ name="Valorous Mask", augments={'Accuracy+27','"Dbl.Atk."+3','DEX+10',}},
    body={ name="Valorous Mail", augments={'Accuracy+22 Attack+22','Weapon Skill Acc.+10','DEX+3','Accuracy+6',}},
    hands={ name="Valorous Mitts", augments={'Accuracy+30','Crit.hit rate+2','Attack+3',}},
    legs={ name="Odyssean Cuisses", augments={'"Mag.Atk.Bns."+29','Accuracy+24','Accuracy+17 Attack+17','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
    feet={ name="Valorous Greaves", augments={'Accuracy+24 Attack+24','Accuracy+15','Attack+4',}},
    neck="Combatant's Torque",
    waist="Olseni Belt",
    left_ear="Digni. Earring",
    right_ear="Telos Earring",
    left_ring="Moonlight Ring",
    right_ring="Defending Ring",
    back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Mag. Evasion+15',}},
}
end
------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------Job-specific hooks that are called to process player actions at specific points in time-----------
------------------------------------------------------------------------------------------------------------------------------------------
 

 
function job_update(cmdParams, eventArgs)
    update_defense_mode()
end
 
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
    if player.mpp < 51 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
    if state.Buff.Doom then
        idleSet = set_combine(idleSet, sets.buff.Doom)
    end
     
    return idleSet
end
 
 
 
function customize_defense_set(defenseSet)
    if state.ExtraDefenseMode.value ~= 'None' then
        defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
    end
     
    if state.EquipShield.value == true then
        defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
    end
     
    return defenseSet
end
 
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
-- General hooks for change events.
-------------------------------------------------------------------------------------------------------------------
 
-- Run after the default precast() is done.
-- eventArgs is the same one used in job_precast, in case information needs to be persisted.
function job_post_precast(spell, action, spellMap, eventArgs)
 refine_various_spells(spell, action, spellMap, eventArgs)
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_midcast(spell, action, spellMap, eventArgs)
 
end
-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
 
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
    if state.Buff[spell.english] ~= nil then
        state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
    end
end
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
    if player.mpp < 51 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
 
    return idleSet
end
-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
    return meleeSet
end
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
 
        --print( buff )
        --print( state.Buff[buff] )
 
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
    update_defense_mode()
end
-- Called when the player's status changes.
function job_state_change(field, new_value, old_value)
    if field == 'HybridDefenseMode' then
        classes.CustomDefenseGroups:clear()
        classes.CustomDefenseGroups:append(new_value)
    end
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
 
end
function update_defense_mode()
    if player.equipment.main == 'burtgang' and not classes.CustomDefenseGroups:contains('burtgang') then
        classes.CustomDefenseGroups:append('burtgang')
    end
     
    if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
        if player.equipment.sub and not player.equipment.sub:endswith('Shield') and
        player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
        state.CombatForm = 'DW'
        else
        state.CombatForm = nil
        end
    end
end

function job_buff_change(buff, gain)
        if buff == "Cover" then
                if gain then
                        equip (sets.Cover)
                        disable('Body','Head')
                else
                        enable('Body','Head')
                        handle_equipping_gear(player.status)
                end
        elseif buff == "doom" then
                if gain then          
                        equip(sets.Doom)
                        send_command('@input /item "Holy Water" <me>')
                        disable('neck','legs','ring1','ring2','waist')
                elseif not gain and not player.status == "Dead" and not player.status == "Engaged Dead" then
                        enable('neck','legs','ring1','ring2','waist')
                        handle_equipping_gear(player.status)
                else
                        enable('neck', 'legs','ring1','ring2','waist')
                end
elseif buff == "petrification" then
                if gain then    
equip(sets.Petri)
else
end
elseif buff == "Charm" then
if gain then  
else
end
elseif buff == "paralysis" then
                 if gain then
send_command('@input /item "Remedy" <me>')
                    end
elseif buff == "Silence" then
                 if gain then
                     
send_command('@input /item "Remedy" <me>')
                else                        
                    end

        end
for index,value in pairs(buffWatcher.watchList) do
    if index==buff then
      buffWatch()
      break
    end
  end
end

-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
    -- Default macro set/book
    if player.sub_job == 'DNC' then
        set_macro_page(6, 2)
    elseif player.sub_job == 'NIN' then
        set_macro_page(1, 7)
    elseif player.sub_job == 'RDM' then
        set_macro_page(6, 2)
    elseif player.sub_job == 'RUN' then
        set_macro_page(8, 7)
elseif player.sub_job == 'WAR' then
        set_macro_page(6, 2)
elseif player.sub_job == 'BLU' then
        set_macro_page(6, 2)
    else
        set_macro_page(8, 8)
    end
end

function job_post_midcast(spell, action, spellMap, eventArgs)
  if spellMap == 'Cure' and spell.target.type == 'SELF' then
    if options.CastingModes.value == 'DT' then
      equip(sets.self_healing.DT)
    else
      equip(sets.self_healing)
  end
end
  end


function job_self_command(cmdParams, eventArgs)
if cmdParams[1] == 'buffWatcher' then
      buffWatch(cmdParams[2],cmdParams[3])
  end
  if cmdParams[1] == 'stopBuffWatcher' then
      stopBuffWatcher()
  end
end


-- Spell swap rules
function refine_various_spells(spell,action,spellMap,eventArgs)
  cures = S{'Cure','Cure II','Cure III','Cure IV'}
ban = S{'Banish','Banish II'}
blus = S{"Geist Wall","Sheep Song","Stinking Gas"}
      if not cures:contains(spell.english)
and not ban:contains(spell.english)
and not blus:contains(spell.english)then
return
    end

    local newSpell = spell.english
    local spell_recasts = windower.ffxi.get_spell_recasts()
    local cancelling = 'All '..spell.english..' spells are on cooldown. Cancelling spell casting.'

    if spell_recasts[spell.recast_id] > 0 then
        if cures:contains(spell.english) then
            if spell.english == 'Cure' then
   add_to_chat(122,cancelling)
                eventArgs.cancel = true
            return
            elseif spell.english == 'Cure II' then
                newSpell = 'Cure'
            elseif spell.english == 'Cure III' then
                newSpell = 'Cure II'
            elseif spell.english == 'Cure IV' then
                newSpell = 'Cure III'
            end
        elseif ban:contains(spell.english) then
            if spell.english == 'Banish' then
                add_to_chat(122,cancelling)
                eventArgs.cancel = true
            return
            elseif spell.english == 'Banish II' then
                newSpell = 'Banish'
            end
         elseif blus:contains(spell.english) then
            if spell.english == "Geist Wall" then
add_to_chat(122,cancelling)
                eventArgs.cancel = true
            return
            elseif spell.english == "Geist Wall" then
                newSpell = "Sheep Song"
            elseif spell.english == "Sheep Song" then
                newSpell = "Stinking Gas"
            elseif spell.english == "Stinking Gas" then
                newSpell = "Geist Wall"
            end


        end
    end

if newSpell ~= spell.english then
        send_command('@input /ma "'..newSpell..'" '..tostring(spell.target.raw))
add_to_chat(122,cancelling)
        eventArgs.cancel = true
        return
    end
end



Thanks for the help!
Top
First Page 2 3 ... 329 330 331 ... 332 333 334