"Undo Stack" is a GameMaker library which allows easily setting up an undo/redo system. Its features include:
The package is most suitable for games/applications with relatively simple changes - e.g. placing a building at a specific tile, moving a player and a block in the same move or typing a few words in a textbox. For games with lots of ongoing changes at the same time the undoing/redoing operations might become too expensive.
The package source is available on GitHub.
To add the Undo Stack library to your project, import both the Packages >> Alphish >> Common and Packages >> Alphish >> Undo Stack folders (the Common folder includes utility functions used within the Undo Stack code). Within the Undo Stack folder you can find the Alphish_UndoStack_HowTo note which explains the Undo Stack functionality and code structure in more detail.
Additionally, you can import the Demo folder to see an example use case of the Undo Stack library. You can read more about the demonstration program in the Alphish_UndoStack_Demo note attached to the folder.