3.3.32
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 plainaction.Typelookup 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
#showtooltipis 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
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

