AngelScript представляет собой движок, с помошью которого приложение может регистрировать функции, свойства и типы,которые могут использоваться в скриптах. Скрипты компилируются в модули. Количество используемых модулей варьрируется в зависимости от нужд. Приложение может также использовать различные интерфейсы для каждого модуля с помощью групп конфигурации. Это особенно полезно, когда приложение работает с несколькими типами скриптов, например, GUI, AI и т.д.
Каждый модуль имеет свою собственное пространство скриптов, глобальных переменных и классов. Обычно они не разделяются между модулями, хотя и несколько модулей могут быть построены из одного и того же скрипта. Модули могут взаимодействовать друг с другом через обязательную функцию связывающую функцию. Так как скрипты компилируются в байт-код, AngelScript предоставляет виртуальную машину для выполнения байт-кода, также известного как скрипт-контекст. Приложение может обрабатывать любое число скрипт-контекстов в одно и то же время, хотя большинству приложений хватает только одного. Контексты поддерживают приостановку\возобновление исполнения, так что в приложение можно легко реализовать такие функции, как одновременные скрипты и короутины. Скрипт-контекст также предоставляет интерфейс для извлечения реал-тайм информации, полезную для отладки..
Синтаксис языка основан на хорошо известных C++, Java, C# и D. Любой человек с некоторыми знаниями этих языков, или других скриптовых языков с аналогичным синтаксисом (JavaScript и ActionScript), будут чувствовать себя комфортно с AngelScript. В отличие от большинства скриптовых языков, AngelScript является сильно типизированным, что позволяет более быстрое выполнение кода и гладкое взаимодействие с основным приложением, так как тратиться меньше времени на оценку правильного типа значений.
Управление памятью в AngelScript основано на подсчете ссылок с дополнительным сборщиком мусора для обнаружения и освобождения объектов с циклическими ссылками.