despairitemcolor.Value = despairitemcolords:GetAsync(player.UserId) or Color3.fromRGB(255, 255, 255)
The full error says
20:07:02.858 - ServerScriptService.SetupInventory:37: bad argument #3 to 'Value' (Color3 expected, got string)
The value type is Color3Value, and I dont really understand why Color3.fromRGB (255, 255, 255) would be read as a string.
EDIT
A very similar line works perfectly though:? despair.Value = despairds:GetAsync(player.UserId) or false

1 comment
What is the GetAsync returning? The problem looks to be there, as "Color3.fromRGB(255, 255, 255)" should work.