I wasted perhaps almost half a day trying to debug my dll crashing (I even built a tool during that time that can compile GameMaker projects from the terminal so that I could run my game from vscode so that I could attach a debugger to see what was happening in the dll). The return value in GameMaker was set as a string but the dll actually didn't return anything it was void. All my other Dll methods were voids and hadn't caused any problems but I noticed that there were some methods that had crashed before but with a couple of changes, that was alleviated. I decided to change the return value of the dll to double just to see if GameMaker needed to clear it's mind and voila, the function didn't crash anymore. This left me more confused so I decided to return it to a string and it started crashing again. Now, I just want to know if the issue was that GameMaker is always expecting a return value and that it might cause something like a segmentation fault if I don't.