Booleans represent true-or-false answers, while nil marks a missing value.

Booleans and Nil

booleans_nil.lua
local stock = 
local hasStock = stock > 0
local label = nil

if hasStock then
  label = "ready"
else
  label = "empty"
end

print("stock=" .. stock)
print("hasStock=" .. tostring(hasStock))
print("label=" .. label)
local stock = 
local hasStock = stock > 0
local label = nil

if hasStock then
  label = "ready"
else
  label = "empty"
end

print("stock=" .. stock)
print("hasStock=" .. tostring(hasStock))
print("label=" .. label)
local stock = 
local hasStock = stock > 0
local label = nil

if hasStock then
  label = "ready"
else
  label = "empty"
end

print("stock=" .. stock)
print("hasStock=" .. tostring(hasStock))
print("label=" .. label)
nil `nil` means a variable has no useful value yet.