Это функциональное назначение доступно только в Pro издании Game Maker. 
 Пожалуйста, обратите внимание, что начиная с версии 7 есть новый механизм расширения в Game Maker. Строго рекомендуется использовать этот механизм расширения, а не функции, описанные в этом разделе. За подробностями обращайтесь на http://www.yoyogames.com/extensions. Эти функции оставлены для совместимости с пришлыми версиями. 
 В тех случаях, когда функциональных возможностей GML для Ваших грандиозных планов не хватает - Вы можете реально расширить возможности, используя плагины. Плагины должны быть в форме DLL файла (динамически загружаемых библиотек). В таком DLL файле Вы можете определить функции. Такие функции могут быть написаны на любом языке программирования, которые поддерживают создание DLL (например, Delphi, Visual C++, Visual Basic и т.д.). Для этого Вам необходимо как минимум знать один из таких языков и иметь опыт программирования. Плагины с функциями должны иметь специфический формат. Они могут содержать между 0 и 16 аргументов, каждый из которых может быть вещественным числом (double in C) или строкой с нулевым символом в конце. (Для плагинов содержащих более четырёх аргументов, только реальные аргументы поддерживаются на данный момент). Они должны возвращать либо вещественную строку, либо строку с нулевым символом в конце. 
 В Delphi для создания DLL библиотеки Вы выбираете пункт New из меню File и выбираете DLL. Далее приводится пример DLL, который Вы можете использовать в Game Maker написанный в Delphi. (Обратите внимание, что это - Delphi код - не GML код!) 
 library MyDLL; 
 uses SysUtils, Classes; 
 function MyMin(x,y:double):double; cdecl; 
 begin 
 if x<y then Result := x else Result := y; 
 end; 
 var res : array[0..1024] of char; 
 function DoubleString(str:PChar):PChar; cdecl; 
 begin 
 StrCopy(res,str); 
 StrCat(res,str); 
 Result := res; 
 end; 
 exports MyMin, DoubleString; 
 begin 
 end. 
 Эта DLL определяет две функции: MyMin, которая берёт два реальных параметра и возвращает минимальный из этих двух, и DoubleString, которая удваивает строку. Обратите внимание, что нужно быть внимательным с использованием памяти. Именно поэтому объявлена результирующей глобальная строковая. Также обратите внимание на использование cdecl - соглашений о вызовах. Это важно. Как только Вы создали DLL в Delphi, у Вас получится файл MyDLL.DLL. Этот файл должен быть помещён в каталог с Вашей игрой. (Или иное место, где Windows может найти его). 
 Чтобы использовать указанный DLL в Game Maker - Вы сначала должны определить внешние функции, которые хотите использовать и какой тип аргументов они берут. Для этого в GML имеются следующие функции: 
 Каждая из этих функций возвращает идентификатор внешней функции, которая должна использоваться для его вызова. Так в вышеприведенном примере, в начале игры Вы использовали бы следующий GML код: 
 { 
 global.mmm = external_define('MyDLL.DLL','MyMin',dll_cdecl, 
 ty_real,2,ty_real,ty_real); 
 global.ddd = external_define('MyDLL.DLL','DoubleString',dll_cdecl, 
 ty_string,1,ty_string); 
 } 
 Теперь всякий раз, когда Вам нужно вызвать функции, Вы используете следующую функцию: 
 external_call(id,arg1,arg2,...) Вызывает внешнюю функцию с заданным идентификатором и заданными аргументами. Вам нужно обеспечить правильное количество аргументов правильного типа (real или string). Эта функция возвращает результаты внешней функции. 
 Итак, например, Вы можете написать: 
 { 
 aaa = external_call(global.mmm,x,y); 
 sss = external_call(global.ddd,'Hello'); 
 } 
 Если Вам больше не нужно использовать DLL, то лучше её выгрузить. 
 external_free(dll) Выгружает DLL с заданным именем. Её действительно важно выгружать из игры. Также DLL долго выгружается и не может быть удалена. Лучше всего выгружайте её в событии завершения игры. 
 Вы возможно не знаете как пишется функция в DLL, которая что-нибудь делает в игре. Например, Вы захотели создать DLL, которая добавляет образцы объектов в Вашу игру. Самый простой способ состоит в том, чтобы позволить своей функции в DLL возвращать строку, которая содержит часть кода GML. Эта строка, содержащая часть GML, может быть выполнена, используя функцию GML 
 execute_string(str,arg0,arg1,...) Выполняет фрагмент кода в строке str с заданными параметрами. 
 Дополнительно Вы можете позволить DLL создать файл со сценарием, который может быть выполнен (эта функция также может использоваться, чтобы позже изменить поведение игры). 
 execute_file(fname) Выполняет фрагмент кода в файле. 
 Теперь Вы можете вызывать внешнюю функцию и затем выполнить результирующую строку, например, следующим образом: 
 { 
 ccc = external_call(global.ddd,x,y); 
 execute_string(ccc); 
 } 
 В некоторых, редких случаях Вашей DLL может понадобиться знать о настройках основного графического окна игры. Это можно сделать с использованием следующей функции, и тогда может быть использована DLL: 
 window_handle() Возвращает настройки окна для основного экрана. 
 Обратите внимание, что DLL не могут использоваться в безопасном режиме. 
 Использование внешних DLL - чрезвычайно мощная функция. Используйте их только в том случае, если действительно уверены в том, что делаете.