while true do wait(1) if script.Parent.Parent.Parent.Workspace.raimbowfairyegg.Value.Value == 1 then script.Parent.ImageLabel.Visible = true end end
You want to listen to any changes made to your Value. To do this, we use the Changed function.
Also, use Variables to make things look cleaner and easier.
repeat wait(0.05) until game.IsLoaded() == true local Egg = workspace:WaitForChild("raimbowfairyegg") local Val = Egg:WaitForChild("Value") local Label = script.Parent:WaitForChild("ImageLabel") Val:GetPropertyChangedSignal("Value"):Connect(function() if Val.Value == 1 then Label.Visible = true else Label.Visible = false end end)
script.Parent.Parent.Parent.Workspace.raimbowfairyegg.Value.Changed:connect(function(Value) if Value == 1 then script.Parent.ImageLabel.Visible = true else script.Parent.ImageLabel.Visible = false end end)