Все способы выше - не защита кода, имхо.
Самый хороший способ, который на данные момент мне известен, - защита через массивы. Он заключается в том, что ты просто делаешь содержимое скрипта не читаемым, запихивая его в массивы через циклы, а потом через assert воспроизводишь содержимое, но опять же - очень легко вскрыть исходный код и посмотреть что там у тебя спрятано. LUA - скриптовый язык программирования и нет 100% способа защиты исходного кода. Кстати, обфускация никак не поможет защитить код, ибо декомпиляторы сами восстановят табуляцию, которая сама по себе ломается при обфускации. И да, покупать защиту также бесполезно, ибо взламывают те же люди, что и делают защиту, лол.