Какие есть способы реализации системы внешних скриптов?
Инструментов для решения такого вопроса очень много.
Методика решения всегда одна: необходимо выбрать и интегрировать в свой проект скриптовой движок.

Вопрос выбора скриптового движка является очень сложным и зависит от множества неочевидных критериев. Ответ на такой вопрос сможет дать только опытный инженер, неоднократно имевший дело с разными скриптовыми движками. Потому что даже между Lua, LuaJIT и Terra разница по функциональности и особенностям интеграции является очень существенной.
И, тем не менее, я этот вопрос оставлю открытым. На крайний случай всегда можно взять простой и легкий Lua, если глаза разбегаются, а решения нет.

Как производят интеграцию. Например - так, так, так, так, так или вот так.
После интеграции скриптового движка в свой проект, функциональность своего проекта можно прокинуть на сторону скриптов используя непосредственно API скриптового движка.

Одним из критериев выбора скриптового движка является его производительность. Чтобы не занимать специалистов подобной рутиной, когда-то давно уже были проведены замеры версий различных скриптовых движков. Результаты замеров доступны всем желающим.
Однако, стоит напомнить, что не всегда самое быстрое решение является самым оптимальным.
Исполнение собственно скриптов. Т.е. вшивается интерпретатор, а внешние скрипты пишутся на скриптовом языке. 
Когда то для такой схемы был Lua популярен.