Reusable code makes it easy to update program objects at the same time. Additionally, it makes it easier to organize and understand how code works. GML scripts are useful in processing data, especially if you will be doing the same calculation again and again. This can include sending data to the script and then returning a value if required. If you are using the same code twice or more anywhere in your program, then you should consider using a script. This allows you to make just one change to update your code. Imagine a game that had over 100 enemy monsters with their own code; changing the code for each would take many hours, and be prone to errors. Using a script you could do this in a few minutes. It also allows for nice and tidy code.