This isn't tested, but you'll get less errors and be more likely to figure it out.
local donators = {
["STEAM_0:0:00000000"] = {rank = "Custom rank 1 here", color = "255, 255, 0, 255"},
["STEAM_0:0:00000000"] = {rank = "Custom rank 2 here", color = "255, 0, 255, 255"},
}
local special = donators[ply:SteamID()]
if special then
self.cols[5]:SetTextColor(Color(special.color))
self.cols[5]:SetText(special.rank)
end
You might get errors with color.
I've not used it much, but think I remember seeing before where you couldn't assign it like a string.
If errors with color, try...
["STEAM_0:0:00000000"] = {rank = "Custom rank 1 here", color = { r,g,b,a = 255,255,0,255 } }, in the table area and
self.cols[5]:SetTextColor( special.color.r, special.color.b, special.color.g, special.color.a ) obviously, where the text color line goes.
Yes, there's some possibly complicated looking table assignments there. Multidimensional, and tricks of assigning variables, within a table.
It's not complicated really, just looks that way.