Step Function Help/tutorial please

Hi i have been using Gnome for about 2 weeks now, and made some pretty cool macros.

i really would like to have some more information about the Step Function , i have read this.

– Here’s a large demonstration sequence documenting the format:
Sequences[“GnomeExample1”] = {
– StepFunction optionally defines how the step is incremented when pressing the button.
– This example increments the step in the following order: 1 12 123 1234 etc. until it reaches the end and starts over
– DO NOT DEFINE A STEP FUNCTION UNLESS YOU THINK YOU KNOW WHAT YOU’RE DOING
StepFunction = [[
limit = limit or 1
if step == limit then
limit = limit % #macros + 1
step = 1
else
step = step % #macros + 1
end
]],

OBV i dont know what im doing so i have never used this.

i would really like some advice on this, how and when i would use it, how it can improve my macros?

Hopefully someone PRO at GNOME can help me??

You use this if you want to use a priority system rather than a sequential passing.

EG:
Cast 1 - 5 sec cooldown
Cast 2 - 10 sec cooldown
Cast 3 - 2 sec cooldown

Without a step function it will cycle Cast 1, Cast 2, Cast 3 and then back to Cast 1. If something is on cooldown it will just skip to the next spell.

With that step function it will try Cast 1 first. Then It will try Cast 1 and if that is on cooldown go to Cast 2. Next it will Try Cast 1 and if it is on cooldown, Cast 2 and if that is on cooldown cast 3.

you would get in real terms something like 123313323 but cast 1 would have the highest priority then cast 2.

I put a short write up about the sequence editor and how to use the “priority list” feature … which is pretty similar but with pictures! I’d like to continue improving it with comments about which abilities should be prioritized and what effect thats having on DPS … and could use any feedback people would give me (please!)

Thanks!

Was the write up any good? Do I need to work on or change anything? Throw me some feedback please if you can … reply to this thread if it makes it easier.

Hey Ambergreen

Did you want to add that you can still add a custom StepFunction but you have to do that via code and its not for the feint at heart?

Oh no I didn’t … If you’re using your new editor I’m assuming you’d not be able to do that unless you edit the raw script file. I’m assuming that would go back in LiveTest? I haven’t checked that out myself yet.

[quote quote=29522]You use this if you want to use a priority system rather than a sequential passing.
[/quote]
I’m testing this simple warrior GSE macro set to priority:
“/cast Charge”,
“/cast Execute”,
“/cast Victory Rush”,
“/cast Mortal Strike”,
"/cast Slam ",

Since I’m testing on a target dummy Execute and Victory Rush will not cast.

I start off in Charge range. I press the macro and charge. I wait a few seconds to make sure I’m off the GCD.

It can take up to 10 or more macro presses before Mortal Strike is cast. Slam is never cast.

Does priority only skip spells that are cooldown and not spells that can’t be cast for other reasons like Charge and Execute?

Do I need to change this to a sequential macro to make it work?

No GS-E will skip things that are unavailable for whatever reason. SO if you cant cast something because there is not enough Rage or you need 5 combo points and you have 3 or it hasnt proc’d it will move on.

The thing about priority stuff is that the order of your generators and spenders matter.

PLease note I am not a warrior player so I may get the names and rules wrong but I trust you know enough about your class to be able to translate.

“/cast Charge”,
“/cast Execute”, <-- from memory this only works when target under 30% health
“/cast Victory Rush”,
“/cast Mortal Strike”,
“/cast Slam “,

Priority stepfunctiosn will start
Charge
CHarge (Nope) Execute
Charge (nope) Execute (nope) Victory RUsh
Charge (nope) Execute (nope) Victory RUsh (nope) Mortal Strke
Charge (nope) Execute (nope) Victory RUsh (nope) Mortal Strke (nope) Slam

Now if any of those nopes work it resets so you can get a situation like this where you never to to Slam if any spell before it works.

Charge
CHarge (Nope) Execute
Charge (nope) Execute (nope) Victory RUsh
Charge
Charge (Nope) Execute
Charge (nope) Execute (nope) Victory RUsh
Charge (nope) Execute (nope) Victory RUsh (nope) Mortal Strke
Charge
Charge (Nope) Execute
Charge (Nope) Execute
Charge (Nope) Execute
Charge
Charge (nope) Execute (nope) Victory RUsh
Charge (nope) Execute (nope) Victory RUsh (nope) Mortal Strke

Thank you for the detailed response. I don’t know how to reconcile what you say with what I am seeing.

[quote quote=30913]No GS-E will skip things that are unavailable for whatever reason. SO if you cant cast something because there is not enough Rage or you need 5 combo points and you have 3 or it hasnt proc’d it will move on.
[/quote]
Does that mean if Charge is unavailable because I’m too close to the target that GSE will not try to cast Charge?

If I stand next to the dummy the Charge command is red because I’m too close. If I manually cast Charge I get the message “Target Too Close”. If I then call the GSE macro I get the message “Target Too Close”. So GSE sure seems to be casting Charge when it is not available.

Take 3 - it’s all about castsequence macros. In a castsequence it will not move on until the ability is ready so in your example it will get stuck on charge.

GS-E will try charge and then move on irrespective of it it fails or not.

I don’t understand - I’m not using castsequence.

I didn’t say you were. I’m trying to get you to understand how things work and using that as a comparison.

Guess I’ll just stick to sequential macros. I wish there was a macro debugger.

When using the Step Function does it work well with /castsequence or should one make seperate actions in the loop?

For example when I use just cast it doesnt reset and Sequential and Priority List and Reverse Priority seem to behave the same

And this here just gets stuck despite Step Function it only casts Tiger Palm and Strike of the Windlord

This post is from 8 years ago and a completely different version of GSE that no longer exists. If you want to do anything useful, I would consider ignore everything you read here as it has no relevance to the current GSE. You might want to read GSE’s actual documentation from its actual site: GSE3: Advanced Loop Step Functions Priority and Reverse Priority · TimothyLuke/GSE-Advanced-Macro-Compiler Wiki · GitHub

Each action can only have One spell. The following spells are all blocked as they are not in individual action. So the step function is also ignored as there is only one block in the loop.

Hit compiled template. It will show the macro that is the result of your template.

Oh damn! Howd I miss that, this is awesome.