Gearswap Support Thread

Eorzea Time
 
 
 
Language: JP EN FR DE
Ffxivpro Yellow Box
4598 users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 189 190
Offline
Posts: 1378
By DaneBlood 2026-03-15 23:29:05
Link | Quote | Reply
 
im trying to fix my fastcast for WHM since it drops to much HP for me

sets.fastcast={
main={ name="Grioavolr", augments={'"Fast Cast"+7',}},
sub="Clerisy Strap",
ammo="Impatiens",
head="Ebers Cap +3",
body={ name="Inyanga Jubbah +2", priority=0},
hands={ name="Fanatic Gloves", augments={'MP+50','Healing magic skill +10','"Conserve MP"+7','"Fast Cast"+7',}},
legs="Pinga Pants",
feet={ name="Telchine Pigaches", augments={'"Fast Cast"+5','HP+50',}},
neck={ name="Clr. Torque +2", augments={'Path: A',}},
waist="Witful Belt",
left_ear={ name="Etiolation Earring", priority=50},
right_ear="Malignance Earring",
left_ring={ name="Gelatinous Ring +1", priority=150},
right_ring="Lebeche Ring",
back="Perimede Cape",

THe above set puts me at 2318
but i always seme to drop to 2191 as i cast a spell

my cure sets has 2315 HP in it
and my idle set gas 2353

but adding in the priories for gelantinues ring did notthing in diffrence HP wise
then i added priorty on ear slots with 50hp and that did no change either.

am i doing the priorities wrong and is there a way to set the order its getting equiped with gearswpa ?


-- edit --
oopsie it looks like the drop comes when im switching into the idle set.

I just disabled the fast cast and tried to look for timmings and it looks to be my idle set i need to fix

-- edit 2 --
Yup re-enabled my fastcast set and disabled my idle set and it did not drop that low

oh well
Offline
By Dodik 2026-03-16 10:51:32
Link | Quote | Reply
 
It's transitions that drop HP, not sets themselves.

Idle -> precast -> midcast -> idle.

One or more of those transitions drop HP from one set to the other. If you have HP+% items anywhere, those should be swapped first (high priority number). Then any static HP+ items.
necroskull Necro Bump Detected! [69 days between previous and next post]
Offline
By LightningHelix 2026-05-24 17:30:56
Link | Quote | Reply
 
I am using mote's libs and trying to make an aftercast set for Boost to put Ask Sash in the waist slot immediately. The motivation here is that it goes to my idle set, which does not have Ask Sash in it, very briefly before it checks job_buff_change(buff, gain), and I'm losing a tick of Regain. (This has been a known issue people posted about, I'm an idiot, etc.) I'm failing miserably.

I tried to overkill it with multiple DISTINCT things I thought might work:
Code
sets.buff.Boost = {waist="Ask Sash"}
sets.midcast['Boost'] = sets.buff.Boost --this works fine
sets.aftercast['Boost'] = sets.buff.Boost --this does not, see below
sets.aftercast.JA.Boost = sets.buff.Boost --this does not, see below

function job_aftercast(spell, action, spellMap, eventArgs)
    windower.add_to_chat(216, 'inside aftercast')
   
    if spell.english == "Boost" then
        windower.add_to_chat(216, 'boost set?')
        equip(sets.buff.Boost)
        return true
    else
        --otherwise, do nothing
    end

end

The "return true" in job_aftercast is because, per the comments in mote's gearswaps files, "Return true if we handled the aftercast work. Otherwise it will fall back to the general aftercast() code in Mote-Include." and I do NOT want to equip generic sets.idle! That function looks to call handle_actions(spell, 'aftercast')... which then messes around in the _G namespace and I'm too stupid to figure it out from there.

The two aftercast sets prevent the file from even loading because it complains about the general existence of sets.aftercast - this is not surprising to me because I've never used one in my life before!
Quote:
GearSwap has detected an error in the user function get_sets:
...Windower/addons/gearswap/data/Joespreadsheet/MNK.lua:264: attempt to index field 'aftercast' (a nil value)
I'm certainly not going to create a blank aftercast set if I can avoid it, because that seems like it could break something else.

The job_aftercast is correctly being called enough to write my add-to-chat debug statements, but debug mode shows that it's not actually equipping the set that I expect even for a moment, nor bypassing the regular idle set:

(ignore the bits about not having the Gloves, they're on Coelestrox today)

It is neither
-trying to equip sets.buff.Boost
-not trying to equip the default sets.idle

so I assume I've done something horribly wrong. Any help would be much appreciated, I assume this is a one-liner but I cannot figure out the one line!
 Bismarck.Radec
Offline
Server: Bismarck
Game: FFXI
User: Radec
Posts: 201
By Bismarck.Radec 2026-05-24 18:02:25
Link | Quote | Reply
 
Rather than actually returning true, try setting 'eventArgs.handled' to true before you return, like so:
Code
function job_aftercast(spell, action, spellMap, eventArgs)
    windower.add_to_chat(216, 'inside aftercast')
   
    if spell.english == "Boost" then
        windower.add_to_chat(216, 'boost set?')
        equip(sets.buff.Boost)
        eventArgs.handled = true
    else
        --otherwise, do nothing
    end

end


As for why this should work, here's a snip of mote-include with the _G[ .. stuff changed to the specific function during aftercast. Hopefully it makes more sense
Code
**This starts around line 257, depending on your mote-include version**

        -- Job-specific handling of this action
        if not eventArgs.cancel and not eventArgs.handled and job_aftercast then
            job_aftercast(spell, action, spellMap, eventArgs) **** Your function is here
            
            if eventArgs.cancel then
                cancel_spell()
            end
        end
    
        -- Default handling of this action
        if not eventArgs.cancel and not eventArgs.handled and default_aftercast then **** Because we set eventArgs.handled to true, this bit will be skipped. Right now, this is what gives you sets.idle as the post-boost set.
            default_aftercast(spell, spellMap)
            display_breadcrumbs(spell, spellMap, action)
        end
        
        -- Global post-handling of this action
        if not eventArgs.cancel and user_post_aftercast then
            user_post_aftercast(spell, action, spellMap, eventArgs) 
        end
[+]
Online
Posts: 58
By darkwaffle 2026-05-24 18:33:58
Link | Quote | Reply
 
sets.aftercast is just causing errors because sets.aftercast doesn't exist when you're trying to put things into it, you can declare it with
Code
sets.aftercast = {}

but I don't think you need to do that for anything either.

I think by 'return true' it's referring to the eventArgs rather than a literal return. handle_actions appears to just check eventArgs.cancel and eventArgs.handled to determine if it should proceed with calling other functions, I don't think it's expecting any value to be returned from your job_aftercast. Otherwise I think you're on the right track, I'd try removing 'return true' and replacing it with
Code
eventArgs.handled = true


and see if that works. I think what you have written is valid, it's just still proceeding into default_aftercast afterwards and equipping, presumably, your normal idle set instead. Alternatively if you still run into problems I think you can do the exact same thing in job_post_aftercast instead - it's basically the same process and function except it's the last thing that handle_action calls so anything you choose to equip will overwrite the default set instead of vice versa.
[+]
Offline
By LightningHelix 2026-05-24 18:39:52
Link | Quote | Reply
 

...Well gosh dang, that's exactly what I wanted, yes!

Thank you so much! Worked like a charm and now my Ask Sash isn't vanishing for exactly long enough to lose that first Regain tick.
First Page 2 3 ... 189 190