HexToRGB

Takes a hex string (must be 6 char long!) and converts it to a RGB set (0-255)

local function HexToRGB(hex) local rhex, ghex, bhex = string.sub(hex, 1, 2), string.sub(hex, 3, 4), string.sub(hex, 5, 6) return tonumber(rhex, 16), tonumber(ghex, 16), tonumber(bhex, 16) end

Alternative version
Takes a hex string (must be 3 or 6 chars long!) and converts it to a RGB set (0-255). If hex is invalid, return black (0,0,0).

local function HexToRGB(hex) local rhex, ghex, bhex if strlen(hex) == 6 then rhex, ghex, bhex = strmatch('([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})', hex) elseif strlen(hex) == 3 then rhex, ghex, bhex = strmatch('([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])', hex) if rhex and ghex and bhex then rhex = rhex .. rhex ghex = ghex .. ghex bhex = bhex .. bhex end end if not (rhex and ghex and bhex) then return 0, 0, 0 else return tonumber(rhex, 16), tonumber(ghex, 16), tonumber(bhex, 16) end end