Many users claim that ROBLOX Lua is different than regular Lua. While that is true, a lot of users just use Lua for ROBLOX and nothing else, and as a result, they don’t really know what the differences are between ROBLOX Lua and regular Lua. If you understand what Lua is beyond ROBLOX, this makes perfect sense, and ROBLOX Lua is still Lua from a syntax perspective.
The confusion comes from not knowing that Lua is a language designed to be modified by applications it “embeds” in, including ROBLOX.
Lua as a language is designed not only to be embedded into applications like ROBLOX, but it’s also a language that’s syntatically designed to be modified by the host application so that the host application (being ROBLOX in this case) can use Lua effectively and modify it for the host application’s needs. This is what ROBLOX does.
What does this mean though? It means that ROBLOX Lua is still Lua, but it’s a modified version of Lua for ROBLOX. Other applications that use Lua do the exact same thing, and they still call it Lua, and not ROBLOX Lua.
Also, lots of users say that ROBLOX Lua is different than “regular’ Lua. The truth about this is that purely regular Lua can only be used for text operations/programs, and nothing visual can be created with it. When you install Lua, all you get is a text editor called SciTE that can be used for other languages too, and the Lua console window that allows you to run one-line or multi-line Lua scripts without saving them. That is it. No fancy graphics stuff; that’s all up to the host application.
This means that if you use Lua for any visual stuff, you’re using more than just Lua, but Lua and the host application.
I have read several books about Lua, from ROBLOX Lua to plain Lua with no embedded application to creating iOS games with Lua, and the iOS games have host applications that have a modified version of Lua just like ROBLOX. The only difference (besides syntax) from ROBLOX Lua and the iOS applications that use Lua are that the iOS applications are a bit less object-oriented and have a bit less of a hierarchy of objects. They still have both of these however. Lua by itself isn’t an object-oriented language, but it has the ability to be used like one.
So hopefully by now you understand why I put “vs” and “regular” in quotation marks on the title of this article. I put “vs’ in quotation marks because ROBLOX Lua is really the same as Lua, so there’s nothing to be compared. And I put the “regular” part of the title in quotation marks because rarely do users programming in Lua use regular Lua; most of the time they use Lua embedded in an application, like ROBLOX.
In summary, don’t think ROBLOX Lua is different than regular Lua. Once you know what Lua is fully, this doesn’t quite make sense.