Lua If Else Tutorial – Complete Guide

In the exciting world of coding, learning to utilize conditional statements like “if-else” is crucial. Why? Because this humble statement is a fundamental building block of any programming language, including Lua. It makes our code versatile, dynamic, and interactive, giving it the ability to make decisions based on different conditions.

What is Lua If-Else?

Lua “if-else” is a conditional statement that tests whether certain conditions hold true or false, then performs different actions depending on the result. Just like an everyday decision where if it’s raining, you grab an umbrella (true), else you leave it behind (false). This makes our code incredibly dynamic, enabling decisions to be made on the fly based on a variety of circumstances.

Why Should I Learn It?

Learning Lua “if-else” is essential for any aspiring programmer or game developer. Here’s why:

  • Interactive Gameplay: It allows you to create interactive game mechanics like changing character abilities based on health status, opening doors when players find a key, and so much more.
  • Dynamic Coding: With “if-else”, the possibilities are practically endless. Say goodbye to rigid, limited coding and hello to dynamic, multi-faceted programming.
  • Applicable to other Languages: The concepts you learn here can be easily transferred to other programming languages, enhancing your overall coding competence.

Mastering Lua “if-else” is like unlocking a powerful coding tool, setting you way ahead in your coding journey. Ambitious coders wanting to create the next big game or utility app will find mastering this concept invaluable.

CTA Small Image

Getting Started with Lua If-Else

Let us explore the foundational theory behind our if-else adventures with few easy-to-follow examples:

Simple If Statement

A standalone “if” statement checks for a condition, and if the condition returns “true”, a block of code is executed.

local playerHealth = 50

if playerHealth <= 0 then
  print("Game Over!")

In the code above, the game checks if the player’s health is 0 or less. If true, the console prints “Game Over!”.

The Else Statement

The “else” statement is executed when the “if” condition fails, embodying the phrase, “if not this, then that”.

local playerHealth = 50

if playerHealth <= 0 then
  print("Game Over!")
  print("Keep Playing!")

Here, if the player’s health is 0 or below, “Game Over!” is displayed. If not, meaning health is above 0, “Keep Playing!” is printed.

The ElseIf Statement

The “elseif” statement checks multiple conditions in a single if-else block.

local playerHealth = 50

if playerHealth <= 0 then
  print("Game Over!")
elseif playerHealth <= 20 then
  print("Low Health!")
  print("Keep Playing!")

In this snippet, there are three possible outcomes – “Game Over” if health is 0 or below, “Low Health!” if health is 20 or below, and “Keep Playing!” for health above 20. Here, the elseif statement introduces an additional check, bringing more complexity to our conditions. It’s important to note the order here – conditions are checked from top to bottom and the first one that returns true has its corresponding block of code executed.

Lua if-else statements aim to give our code direction based on conditions, making it more dynamic and enabling us to capture variations in gameplay or otherwise. Stay tuned for more detailed examples in the next part of this tutorial, where will dive deeper into the fascinating world of Lua conditional statements.

Digging Deeper with Lua If-Else

With a strong foundation, let’s look at more intricate examples of Lua if-else statements. These scenarios will demonstrate its utilization in different scenarios.

Multiple ElseIf Statements

You can include as many “elseif” statements as you like within an “if” block, making this truly versatile.

local score = 85

if score < 50 then
elseif score < 70 then
elseif score < 85 then

Here, the script displays “Poor” for a score under 50, “Average” for a score under 70, “Good” for under 85 and for everything else, an “Excellent” is printed out.

Compound Conditions

Lua allows us to combine conditions using logical operators, adding another level of complexity.

local health = 35
local shield = 50

if health <= 0 or shield <= 0 then
  print("Critical Condition!")
  print("Player is Safe.")

In this script, the condition checks if either health or shield is zero. If any condition is met, “Critical Condition!” is printed, otherwise, “Player is Safe.” is displayed.

Nested If-Else

We can nest one if-else statement inside another, allowing for complex decision-making scenarios.

local playerHealth = 50
local shieldStrength = 20

if playerHealth <= 0 then
  print("Game Over!")
elseif shieldStrength <= 0 then
  if playerHealth <= 30 then
    print("Warning! Low health and no shield!")
    print("Be cautious! No shield!")
  print("Keep playing!")

Here, the game delivers a “Game Over!” if the player health is 0. If not, but the shieldStrength is 0, a nested if checks if health is also under 30. If true, “Warning! Low health and no shield!” is shown. If health is above 30 then “Be cautious! No shield!” is displayed. If all conditions are false, then we see “Keep playing!”.

As you can see, Lua’s if-else statements lend depth and dynamism to game play and functionality. Working with these conditional statements has pushed us further into the driving seat of Lua programming as we continue to steer towards new heights of coding prowess.Sure, let’s move forward and explore even more applications and fine points of Lua’s if-else statement while incorporating additional code examples.

Logical Operators in Lua If-Else

While using Lua, we often find ourselves testing multiple conditions within a single if-else statement. So far, we’ve looked at the “or” logical operator, but we also have “and” and “not. Let’s take a look:

local doorLocked = false
local hasKey = true

if doorLocked and not hasKey then
  print("Find the Key!")
elseif not doorLocked then
  print("Open the Door!")

This code checks if a door is locked and whether the player doesn’t have a key. If both these conditions return true (“and” operator), we suggest to “Find the Key!”. However, if the door isn’t locked (“not” operator), the code encourages to “Open the Door!”.

Negation with Lua If-Else

Negation, represented by the “not” keyword, can be a great tool when dealing with false values or nil in Lua. Here’s how it works:

local player = nil

if not player then
  print("No player found. Starting new game.")
  print("Welcome back, player!")

The game checks if there’s not a player, and if true, starts a new game. If a player is found, it welcomes them back.

Using If-Else with Loops

We also can use if-else statements within loops, allowing us to perform checks on each iteration.

for x = 1, 10 do
  if x % 2 == 0 then
    print(x .. " is even")
    print(x .. " is odd")

In this “for” loop that runs from 1 to 10, the script checks if the variable “x” is even by testing whether the remainder of “x” divided by 2 is 0 (“%”). If true, it prints out that the number is even, else it asserts that it’s odd.

If-Else With Functions

In Lua, if-else can be used in functions to handle different scenarios and return appropriate results.

function checkHealth(playerHealth)
  if playerHealth <= 0 then
    return "Game Over!"
    return "Keep Playing!"

print(checkHealth(45)) -- Outputs: Keep Playing!

In a function named “checkHealth”, an if-else construct assesses player health and returns either “Game Over!” or “Keep Playing!”, as appropriate.

These considerations and examples further reinforce the vastness of if-else in Lua. As we continue to explore its applications, these conditional statements prove invaluable, making our code capable of handling a wide array of circumstances efficiently.

Where to Go Next?

You’ve begun defining computational decision trees in Lua, but your learning journey shouldn’t stop here. With the fundamentals of Lua’s if-else statement under your belt, the logical next step is to apply and refine what you’ve learned within a broader context.

At Zenva, we provide an opportunity to do just that. Our comprehensive Roblox Game Development Mini-Degree is a collection of courses designed to guide you from beginner to professional. Build games across a range of genres, and master systems for multiplayer and leaderboards using Roblox Studio and Lua. By the end, you’ll have a professional portfolio and industry-ready skills.

Additionally, we invite you to explore our larger collection of Roblox courses. From beginner coding to advanced game development, Zenva is committed to supporting your educational growth regardless of where you are in your learning journey. Leap headfirst into the vast world of programming and game development with Zenva by your side. Your coding adventure awaits!


Mastering the Lua if-else statement may seem like a small step in the coding world, but it’s a significant stride towards becoming a seasoned coder and game developer. Not only does it empower your code to make decisions, but it’s your first step in getting your characters and game mechanics to interact dynamically, fostering engaging, immersive gaming experiences.

Whether you’re an aspiring game developer, a coding enthusiast, or someone looking to explore the dynamics of Lua programming, the Roblox Game Development Mini-Degree at Zenva is an exceptional resource to expand your coding prowess. Looking ahead, continue building on this foundation and venture into the realm of coding and game creation with confidence. The interesting world of Lua and game development awaits you at Zenva!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.