Lua was created in 1993 by the members of the Computer Graphics Technology Group (Tecgraf). Roberto Ierusalimschy, Luiz Henrique de Figueiredo and Waldemar Celes made Lua at the Pontifical Catholic University of Rio de Janeiro in Brazil.

Back in the day (1977-1992), Brazil had a strong trade barriers policy for both computer hardware and software. Clients just couldn't afford to buy software from abroad. That's the reason which led Tecgraf to implement basic tools from scratch.

Before Lua, there were two languages, SOL (Simple Object Language) and DEL (Data-entry language). They have been developed by Tecgraf to add some flexibility to the other projects. But those two were just bad and Tecgraf wanted to have full programming power in them.

Lua 1.0 was designed in a different way than other programming languages back then. Syntax was borrowed from Modula (if, while etc.), C++ (local variable declaration only when it's needed), CLU (multiple assignments/returns from function calls), AWK and SNOBOL (associative arrays). Lua's creators also say that LISP and Scheme had a major influence on developing the table as the primary data structure of Lua.