How do I do this in GSE?

Hello,

I am new to GSE and while I’ve gone through the intro video as well as the documentation, I am stuck doing simple things in GSE.

I have the below standard macro for a rogue:

#showtooltip
/use [nomod,stealth]Shadowstrike
/use [spec:1,nomod]Mutilate
/use [spec:2,nomod]Sinister Strike
/use [spec:3,nomod]Backstab
/use [spec:1,mod:shift]Vendetta
/use [spec:2,mod:shift]Adrenaline Rush
/use [mod:ctrl]Crimson Vial

Here is the Raw template:

{
    ["Variables"] = {
        
    },
    ["Actions"] = {
        [1] = {
            [1] = "/use [nomod,stealth]  Shadowstrike",
            [2] = "/use [spec:1,nomod]  Mutilate",
            [3] = "/use [spec:2,nomod]  Sinister Strike",
            [4] = "/use [spec:3,nomod]  Backstab",
            [5] = "/use [spec:1,mod:shift]  Vendetta",
            [6] = "/use [spec:2,mod:shift]  Adrenaline Rush",
            [7] = "/use [mod:ctrl]  Crimson Vial",
            [8] = "/use [mod:alt]  Deadly Poison",
            ["Type"] = "Action"
        }
    },
    ["InbuiltVariables"] = {
        
    }
}

This takes 236/255 characters. If I try to add /use [mod:alt]Deadly Poison, it would be over 255 characters long. I am trying to leverage GSE to implement such macro.

This gets converted into the below, although I’m not trying to use clicks:

#showtooltip
/click [button:2] ROGUE_D1 RightButton; [button:3] ROGUE_D1 MiddleButton; [button:4] ROGUE_D1 Button4; [button:5] ROGUE_D1 Button5; ROGUE_D1

I tried both having a simple “Action” block and putting everything there, as well as trying out with different blocks of type “Action” to recreate the above macro.

What I’m looking to make is a macro for my class that would morph based on specialization. Problem is, 255 characters are not enough to cover all of that.

An example would be, for pressing 1, I would like to have the following macro:

#showtooltip
/use [nomod,stealth] Shadowstrike
/use [spec:1,nomod] Mutilate
/use [spec:2,nomod] Sinister Strike
/use [spec:3,nomod] Backstab
/use [spec:1,mod:shift] Vendetta
/use [spec:2,mod:shift] Adrenaline Rush
/use [mod:ctrl] Crimson Vial
/use [mod:alt] Deadly Poison

For pressing 2, the following:

#showtooltip
/use [spec:1,nomod] Garrote
/use [spec:2,nomod] Pistol Shot
/use [spec:3,nomod] Rupture
/use [spec:1,talent:6/3,mod:shift] Exsanguinate
/use [spec:2,mod:shift] Dreadblades
/use [spec:3,mod:shift] Shadow Blades
/use [mod:ctrl] Cloak of Shadows
/use [mod:alt] Crippling Poison

As you can see, these are longer than 255 characters so they wouldn’t fit in the normal macro dialog. I simply wish to implement such thing in GSE, leveraging as much as possible the GSE functionalities but I seem to be lost in the multitude of options and can’t make it work.

How do I do this in GSE? Is there no such thing as a simple block that would recreate the macro I’m using above?

Another thing is the changing of icons. In the regular macros interface, I add #showtooltip and the icon gets changed as soon as I press the modifier keys. In GSE, I need to press the button for the icon to change. Is there no way to have the icon changed as soon as I press the modifier key?

Please help.

you cant do this. 1 action per block/click (unless its not on a gcd)
you can try using the variables at the bottom to add more than 1 per click, per block, but depending on the ability/CD it wont work in most cases.

for each “ability/spell” in your list, thats on the GCD, will need its own block, its own click/button press.

So you mean that for each line in my macro I need to place it in an action block separately? Do I include #showtooltip? Also, what kind of action block should that be?

What about the icon showing up after I activate the ability and not when I press the modifier key?

In GSE there are multiple ways to do the. You can use functions and if blocks to determine your spec and then output the spec specific version of that.

You could also chain your mods to save characters using a ; Just remember that the mod evaluation order for this is left to right.

An action block is simply that - 1action. The other blocks are containers to arrange action blocks. In GSE you create a template from which GSE creates a macro. You are not directly creating a macro. The Compiled Template button will shoes you the actual macro it creates.

#showtooltip has no meaning or use in GSE. GSE evaluated the next action block and gets the icon to show from its contents.

GSE also has a difference between /use and /cast. They do different things in GSE. You need /cast for spells rather than /use

Seems way too complicated than it should be. Thanks for pointing this out. I’ll simply look for another addon that can actually do macros instead of GSE.

This GSE Addon might be underrated, but it’s missing proper documentation/tutorials to explain how it works and the reasoning behind this.

No one reads the documentation Home · TimothyLuke/GSE-Advanced-Macro-Compiler Wiki · GitHub

Every change and the logic behind it is also located at Issues · TimothyLuke/GSE-Advanced-Macro-Compiler · GitHub

1 Like

Thank you for the links. I am aware of those pages, however, the documentation is not updated. For example, in the latest build there are no more KeyPress, PreMacro, KeyRelease and PostMacro.

Besides that, there are insufficient examples on how these missing config items really work. You mentioned If statements but that require a variable (Haven’t seen an example of how to assign the value which represents my specialization to a variable in GSE. There’s no reference to some API doc which contain these variables). I could never figure out where KeyPress, PreMacro, KeyRelease and PostMacro can be useful for, again, need way more examples with logic behind why X chose ability Y to go in place Z, being the Nth item in the list.

Another example, in the GSE3 section there is ~~KeyPress~~ and ~~KeyRelease~~ as variables with the value holding the macros. Nowhere does it say that in-game, when you include them in your main block, your character will actually do a /say ~~KeyPress~~ and /say ~~KeyRelease~~ respectively.

99% of the current examples don’t really explain the actual differences between /click, /use and /cast and are about doing a sequence of abilities by single-pressing one key and waiting for the macro to execute all listed spells in a particular order. While this looks powerful in theory, I find it very difficult to play like this and instead wish to create macros similar to the one I mentioned in my original post but none of the examples have sufficient information about what I’m looking to achieve.

I would gladly accept examples and more info.

If you put a variable into a block and the variable doesn’t exist it will say the variable name.

The GSE3 from a GSE2 users perspective covers this with a ton more detail and more including the change from those previous fields to Loop Blocks for PreMacro and PostMacro and the key two simply being variables.

This site has examples however they are built around expected failure. Or you are spamming your button and it expects that lines are being skipped and frankly 90% and throw and Hope macros. Throw everything at the server and Hope something happens. Frankly there is a lot of garbage. GSE isn’t this sites mod. It is a mod used by this site.

In my case this isn’t how I play so my macros don’t work like this. At the end of the day one action block = one click. GSE’s greatest strength and weakness is in order for it to operate it can’t tell if something worked or not. This is a limitation of WoW’s rules around mods and botting. GSE simply moves to the next action each click.

Wows rules go further in that only the first GCD ability it finds in an action is executed. All other gcd abilities are ignored. It reads top down then left to right using WoW macro commands with the following caveats.

Macros have to be executed in the natural language of the client. In order to do this GSE stores the internal WoW spellID. /cast Judgment is stored as /cast 1245 internally where 1245 is the spellID for example. /use mana potion is stored as /use 1245 where it is the item id instead of the spellID. (these are not the real numbers).

Mods can be concatenated into a single command using an if then structure.

/cast [mod:alt] spell1; [spec:1] spell2; [talent:1/2] spell3; spell4

Is interpreted by WoW as if alt is down the cast spell1 else if spec 1 then cast spell2 else if talent1/2 then cast spell4 otherwise cast spell4. None of this is defined by GSE but by WoW macro commands.

/click is to click a WoW interface button. Each GSE macro is in fact a hidden button which has a macro stub in /macro that clicks the button. /click … clicks buttons.

Using the functions in WoW’s API you ca. also combine that with If blocks in GsE to create if/then scenarios for things like specs and talents.

API documentation: World of Warcraft API - Wowpedia - Your wiki guide to the World of Warcraft

WoW macro commands: Macro commands - Wowpedia - Your wiki guide to the World of Warcraft