Science and technology

Study Lua with our new downloadable information

Lua is a programming language designed for simplicity and efficiency, utilized by online game and multimedia corporations as a front-end scripting language. It’s additionally utilized by the Awesome window manager, the Far file supervisor, the Howl text editor, and plenty of extra open supply initiatives for its readability and clear design. Lua is embeddable, too, so you may embrace Lua code in codebases of one other language (similar to Java, C, and C++), in addition to work together with a wealthy C API. Whether you need to need to study Lua to get into the gaming and media trade, otherwise you’re simply excited about a straightforward scripting language with no higher restrict, Lua is an approachable and highly effective programming language.

Install Lua

On Linux, you may set up Lua utilizing your package deal supervisor. Your distribution might provide outdated variations of Lua within the curiosity of backward-compatibility. Install the newest model until you’ve gotten a motive to put in an outdated model.

The Luau (with a trailing “u”) programming language is a well-liked fork of Lua 5.1 created by Roblox. If you are utilizing Luau or Lua for Roblox programming, set up Lua 5.1.

Getting began with Lua

You write Lua code in a textual content editor. Don’t use a phrase processor or workplace software. Use a plain old text editor or IDE, as a result of these save textual content as literal plain textual content with none particular formatting characters that are likely to confuse the applications that have to interpret your code.

Most applications, Lua code included, might be broadly organized into these three sections:

  1. Set up the surroundings: In this part, you establish the parts you need your program to have out there. In some applications, the parts are simply letters and numbers, whereas in superior coding they could additionally embrace graphics and sound.

  2. Build the engine: In this part, you inform Lua what to do with the parts you’ve got supplied. In rudimentary applications, information is processed and a solution is produced. In superior coding, this part runs in a loop whereas the person interacts with the appliance.

  3. Go: Your code does nothing until you inform it to start out.

Suppose you need to write a easy Lua script that calculates the prospect of a zombie apocalypse (or at the very least, that produces an arbitrary quantity you may declare is the prospect of a zombie apocalypse). Getting an arbitrary quantity from a pc is tough:

-- setup

myNumber = math.random(0,100)

-- engine

perform calculate()
  print("There is a " .. myNumber .. "% chance of a zombie apocalypse today.")

-- go


In the setup part, you begin a random quantity generator with math.randomseed. As the supply of randomness, you employ the time as reported by your working system. These are built-in functions of Lua. Nobody begins out understanding all of the built-in capabilities of a programming language, so you discover out about them from articles like this one, by task-based Internet searches, and by studying the Lua documentation.

Next, you create a variable. I typically prefix variable names with “my” as a reminder to myself that it is one thing that I created for this software, not one thing constructed into Lua. A variable is a changeable (or “mutable,” in programming terminology) worth. You’re claiming area in your laptop’s RAM and storing information there so you should utilize it later. In this case, the variable you create makes use of the math.random perform of Lua to pick a quantity between 0 and 100. Once once more, this can be a built-in perform.

In the engine part, you create your individual perform, which I name calculate. There’s nothing particular concerning the time period calculate besides that it is sensible within the context of this software. You can title your capabilities virtually something. Whatever you name it, that is the a part of your code that really does one thing. Most laptop applications have a number of capabilities, however this can be a easy software, so it has simply the one. The calculate perform makes use of the built-in Lua print perform to show textual content on the display screen. As you may most likely guess, two dots (..) in Lua point out a continuation of an announcement, just like what an ellipsis does in English.

Finally, the go part runs the calculate perform. If you neglect to execute a perform, then your software by no means runs. It can be like sitting in a automotive with out turning the ignition.

The part labels setup, engine, and go are feedback. Comments in Lua are indicated by two main dashes (--), and it is a approach so that you can expressly inform Lua to disregard that line. In different phrases, setup, engine, and go aren’t Lua key phrases, and you do not want them in your code. They’re only a helpful solution to keep in mind tips on how to construction your code.

Try working your software a number of occasions:

$ lua ./zombie.lua
There is a 78% probability of a zombie apocalypse immediately.
$ lua ./zombie.lua
There is a ten% probability of a zombie apocalypse immediately.


At a really low degree, computer systems function in response to binary situations. An electrical sign is both current (1) or not (0). This manifests in code, too, and one of many basic strategies fashionable programming languages present to specific that binary situation is the if-then assertion.

An if-then assertion causes the pc to investigate the info it has gathered up to now, evaluate it to some arbitrary situation you outline, after which take some motion based mostly on what it discovers. To make your first Lua software extra dynamic, you may add an if-then assertion to your perform:

perform calculate()
  print("There is a " .. myNumber .. "% chance of a zombie apocalypse today.")

  if myNumber > 50 then
    print("Take an umbrella!")
    print("It's a good day for gardening!")


This if-then assertion makes use of slightly primary math to find out what the present run of the appliance is reporting. If there’s greater than a 50% probability of a zombie apocalypse, then some useful recommendation is supplied to the person. Else, the prospect have to be 50 or much less, so totally different recommendation is supplied. It’s a easy situation that has the pc analyze the random quantity it has generated, after which take one or one other motion based mostly on the end result.

Run the code to see the outcomes:

$ lua ./zombie.lua
There is a 71% probability of a zombie apocalypse immediately.
Take an umbrella!

$ lua ./zombie.lua
There is a 65% probability of a zombie apocalypse immediately.
Take an umbrella!

$ lua ./zombie.lua
There is a 12% probability of a zombie apocalypse immediately.
It's  day for gardening!

There are many other forms of conditional controls you should utilize in Lua, together with repeat-until, whereas, for, and extra.

Learning Lua

Nobody begins programming already understanding tips on how to program. If you are excited about studying tips on how to write code, Lua is a good way to start out as a result of it is a small language consisting principally of conveniences to make your fledgling profession as a programmer simpler. It’s not muddled up with plenty of edge-case capabilities that you just’re not going to make use of. Instead, Lua gives the constructing blocks you must create your individual distinctive capabilities that do precisely what you need them to do. Everything you must learn about Lua is on the market within the language’s documentation, however if you wish to proceed a walk-through of the language, you can too obtain our eBook. By the tip of the e-book, you may know all of the Lua fundamentals, and the place to search out extra Lua capabilities so you may transfer on to superior Lua programming.

Most Popular

To Top