if / elseif / else Conditionals

Understanding Conditional Logic

Conditional logic is a fundamental concept in programming, allowing you to execute different code blocks based on certain conditions. In Luau, the if, elseif, and else statements help you control the flow of your script. This enables your game to respond dynamically to player actions and other events.

Basic Structure of if/elseif/else

The basic structure of an if statement in Luau looks like this:

if condition then
    -- Code to execute if condition is true
elseif anotherCondition then
    -- Code to execute if anotherCondition is true
else
    -- Code to execute if none of the above conditions are true
end

Here’s a simple example:

local playerScore = 50

if playerScore >= 100 then
    print("You win!")
elelseif playerScore >= 50 then
    print("You are close to winning!")
else
    print("Keep trying!")
end

Comparison Operators

Comparison operators are essential for evaluating conditions in your if statements. The following are common comparison operators used in Luau:

  • ==: Equal to
  • ~=: Not equal to
  • >: Greater than
  • >=: Greater than or equal to
  • <: Less than
  • <=: Less than or equal to

For example:

local health = 30

if health <= 0 then
    print("You are dead!")
elseif health < 50 then
    print("You are hurt!")
else
    print("You are healthy!")
end

Logical Operators

Logical operators allow you to combine multiple conditions. The main logical operators in Luau are:

  • and: Returns true if both conditions are true
  • or: Returns true if at least one condition is true
  • not: Reverses the truth value of a condition

Here’s how you can use logical operators:

local isVIP = true
local hasTicket = false

if isVIP or hasTicket then
    print("Access granted!")
else
    print("Access denied!")
end

Luau Truthiness

In Luau, truthiness refers to what values are considered true or false in conditional statements. Only nil and false are considered falsy. All other values, including true, numbers, strings, and tables, are truthy.

Understanding this helps prevent unexpected behavior in your scripts. For instance:

local value = nil

if value then
    print("This will not print because value is nil.")
else
    print("This will print because value is falsy.")
end

Combining Everything

You can combine comparison and logical operators in a single if statement for more complex conditions. Here’s an example:

local playerLevel = 5
local playerExperience = 120

if playerLevel >= 5 and playerExperience >= 100 then
    print("You can advance to the next level!")
else
    print("Keep gaining experience!")
end

By mastering if, elseif, and else statements, along with comparison and logical operators, you can create responsive and interactive scripts in your Roblox games.