This has been discussed… unfortunately it seems as though Max is a tough taskmaster. You only get one. And, *most* things can be undone, but not all, so be careful. (Not quite sure how to describe the non-undo-able ones, but they are there– renaming an object and the cords get disconnected?)
Do lots of *saving as a new filename* when you’re making tricky patches.
As you develop your patches, you can create tons (unlimited, virtually) of "undo states" in your multisliders, tables, bpfunctions, etc., by storing each successive changed state into a coll. Works great. However, this isn’t for undoing changes made during development.