local newColor = Color3.new(math.random(255), math.random(255), math.random(255)) for i=0,1,0.1 do script.Parent.Color = script.Parent.Color:lerp(newColor, i) wait() end
Instead of doing a transition, it does this garbage instead.: https://www.youtube.com/watch?v=qHoCi8t3p3g
Color3.new takes float from 0 to 1. You should use Color3.fromRGB instead if you're trying to use RGB values for parameters:
local newColor = Color3.fromRGB(math.random(255), math.random(255), math.random(255)) for i=0,1,0.1 do script.Parent.Color = script.Parent.Color:lerp(newColor, i) wait() end