promotional bannermobile promotional banner

GSE: Sequences, Variables, Macros

GSE is an advanced macro compiler that is an alternative to the limits provided by the default macro editor.
Back to Files

3.3.32

File nameGSE-3.3.32.zip
Uploaded
Sep 3, 2026
Downloads
17.5K
Size
2.5 MB
Flavors
MoP ClassicRetailClassic TBCClassic
File ID
8798452
Type
R
Release
Supported game versions
  • 12.1.0
  • 12.0.7
  • 5.5.4
  • 2.5.6
  • 1.15.9

What's new

GSE

3.3.32 (2026-09-02)

Full Changelog Previous Releases

  • Merge pull request #2046 from LarryThiessen/fix-2044-showtooltip-metatable
    #2044 ApplyShowTooltipToAction must rawget: the Actions array carries the path metatable
  • #2044 ApplyShowTooltipToAction must rawget: the Actions array carries the path metatable
    Saving from the editor errored on every sequence:
    GSE/API/Statics.lua:504: bad argument #1 to 'ipairs' (table expected, got string)
    ... ApplyShowTooltipToAction <- SanitizeSequenceEditorMarkup <- ReplaceSequence
    SanitizeSequenceEditorMarkup walks every table in the sequence and now calls
    ApplyShowTooltipToAction on each one. The editor sets
    Statics.TableMetadataFunction on Versions[n].Actions, and that __index only
    understands table (path) keys, so the plain action.Type lookup on the
    Actions array itself lands in ipairs("Type"). Editor.lua already rawgets
    past this metatable for the same reason.
    rawget Type and the macro bodies. Spec added: an Actions array carrying
    the metatable returns false without erroring (fails on the previous code
    under a 5.1-strict ipairs with the exact in-game message).
    Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com
  • #2045 Record the origin key a sequence is born with, and freeze it
  • #2044 #showtooltip is ignored in practive in GSE and should not be stored as part of the macro block chewing up character count
  • Merge pull request #2042 from LarryThiessen/fix-2040-new-sequence-versions
    #2040 Build version children for any loaded sequence, not only path-matched ones
  • Merge pull request #2043 from LarryThiessen/fix-2041-class-move-duplicate
    #2041 Remove the old record when a sequence changes class or spec
  • #2041 Remove the old record when a sequence changes class or spec
    The Specialization/Class ID dropdown reassigns editframe.ClassID in place,
    and the save enqueues a Replace under that NEW classid. Nothing removed the
    record from the old one, so GSESequences[old][name] and GSE.Library[old][name]
    survived and loaded again -- the sequence came back under both branches on
    the next reload, which looks like something is duplicating sequences.
    A rename already moves its old key via renamesequence; a class move had no
    equivalent. Record the class a sequence was loaded from and, when a save
    changes it, drop the old record from both stores. Keyed on the original
    name and placed before the rename branch (which returns early) so a rename
    and a move in the same save are both covered.
    Co-Authored-By: Claude Opus 5 noreply@anthropic.com
  • #2040 Build version children for any loaded sequence, not only path-matched ones
    versionsWanted decided whether to build a node's version children from the
    tree's expanded/selected state at build time. GUICreateNewSequence adds the
    record to GSE.Library and then calls ManageTree(), but the new node is
    neither expanded nor selected yet -- its SelectByValue runs after the build
    -- so no path matched and the node came up with Configuration and New
    Version and nothing between them until the editor was closed and reopened.
    The decompress is the expensive half and stays gated on wantVersions.
    Assembling children for a record already in the Library is a few table
    inserts, so gate the load, not the children.
    Co-Authored-By: Claude Opus 5 noreply@anthropic.com