I like Game Maker. Like any tool, it has strengths and weaknesses. I quite enjoy that you can reference any resource by just typing its name in your code, as opposed to passing references and typing a million getComponent() lines as in Unity. But then, as is my problem now, Game Maker has rather limited file IO capabilities.
If it's a language, and you can read and write bytes to a file, then you can do any file-related thing you need. Either you write it, or find a library someone wrote. Unless there's some ridiculous limitations on basic file IO that I'm not aware of. C++ doesn't even have any of the "serialization" stuff from Unity. You just don't need it, and nobody complains that C++ is hobbled with file IO. write your own save and load functions.
I'm not saying it's impossible to write to a file. I'm saying it lacks a specific feature that Unity has and would appreciate in this situation, where there is a function available to say "Here is my object, doesn't matter what it is, just write it to a file", and a similar function that says "Here is a file that contains an instance of a class, read it and recreate that instance inside this variable."
Of course I can write my own save/load code in GML. I could probably program a supercomputer in GML if I wanted. There is a point at which a tool makes a job easier, faster, and less prone to cockups. I.e., being able to serialize objects just by pointing at a location on disk and saying "There, put my object there so that I can have it later," as opposed to rolling my own functions that probably won't be any better or faster or more space-efficient.