I have a function that basically turns ore into metal or raw meat into cooked meat. Both if Statements work independently, but with the first one in the function, when It is run on something that is "raw meat" (aka not an ore) the if statement recognizes that ore is nil and the script breaks. What I want it to do is recognize the ore is nil and then go on to the next If statement. Should be an easy fix I just must be missing something. Thanks guys! (I originally had just two separate if statements and no elseif, but then i tried the else if and neither work.
function heatUp(part)
local heat = part.Heat
local newName = heat.NewName.Value
local newColor = heat.NewColor.Value
local newRef = heat.NewRef.Value
local newTrans = heat.NewTrans.Value
local newOther = heat.NewOther:GetChildren()[1]
part.Name = newName
part.BrickColor = newColor
part.Reflectance = newRef
part.Transparency = newTrans
if part.Ore.Value ~= nil then
part.Mesh:remove()
part.Size = Vector3.new(1, .6, 2)
part.Material = ("Metal")
else if
part.Heat.Value ~= nil then
part.Heat.NewOther.Edible.Parent = part
part.Heat:remove()
end
end

2 comments
Common mistake, I've done it while making a slot machine
If you use elseif your code will be neater