It is supposed to make the gui fade in but it doesnt change any of the properties but it prints all of them fine?
local ui = script.Parent local Panel = ui.Panel local Open = ui.Open local isOpen = false local fading = false local Props = { ["Frame"] = "BackgroundTransparency", ["TextButton"] = { "BackgroundTransparency", "TextTransparency" }, ["ImageLabel"] = "ImageTransparency", ["TextLabel"] = { "BackgroundTransparency", "TextTransparency" } } function checkType(ins) if ins.ClassName == nil then return typeof(ins) elseif ins.ClassName ~= nil then print(ins.ClassName) return ins.ClassName end end function fadeIn() fading = true for _, ins in pairs(Panel:GetDescendants()) do local typ = checkType(ins) if Props[typ] then for i = 1, 0, -0.1 do wait(0.1) if checkType(Props[typ]) == "table" then for _, prop in pairs(Props[typ]) do print(prop) ins[prop] = ins[prop] + i end elseif typeof(checkType(Props[typ])) == "string" then print(Props[typ]) if typeof(Props[typ]) == "table" then for i, prop in pairs(Props[typ]) do ins[prop[i]] = ins[prop[i]] + i end else ins[Props[typ]] = ins[Props[typ]] + i end end end end end fading = false end function fadeOut() fading = true for _, ins in pairs(Panel:GetDescendants()) do local typ = checkType(ins) if Props[typ] then for i = 0, 1, 0.1 do wait(0.1) if checkType(Props[typ]) == "Table" then for _, prop in pairs(Props[typ]) do ins[prop] = ins[prop] + i end elseif checkType(Props[typ]) == "String" then ins[Props[typ]] = ins[Props[typ]] + i end end end end fading = false end Open.MouseButton1Click:Connect(function() if not fading then if isOpen then fadeOut() isOpen = false return elseif isOpen == false then fadeIn() isOpen = true end end end)