
Credits: Aura
made this script for th is game for fun it auto picks the color for you so you always get 100% some characters might not work first try cause it has to get the color first second time will work and its open source anyways byeeee
local MacLib = loadstring(game:HttpGet("https://github.com/biggaboy212/Maclib/releases/latest/download/maclib.txt"))()
local Window = MacLib:Window({
Title = "Strange Hub - Guess the character color",
Subtitle = "made by flames",
Size = UDim2.fromOffset(880, 620),
DragStyle = 1,
AcrylicBlur = true,
ShowUserInfo = false,
})
local TabGroup = Window:TabGroup()
local MainTab = TabGroup:Tab({ Name = "Main", Image = "rbxassetid://10734950309" })
local Section = MainTab:Section({ Side = "Left" })
local FOLDER = "StrangeHub"
local FILE = FOLDER .. "/colors.txt"
if not isfolder(FOLDER) then
makefolder(FOLDER)
end
local function saveColors(tbl)
local lines = {"return {"}
for name, col in pairs(tbl) do
table.insert(lines, string.format('\t[%q] = Color3.fromRGB(%d, %d, %d),', name, math.round(col.R*255), math.round(col.G*255), math.round(col.B*255)))
end
table.insert(lines, "}")
writefile(FILE, table.concat(lines, "\n"))
end
local function loadColors()
if isfile(FILE) then
local success, result = pcall(function()
return loadstring(readfile(FILE))()
end)
if success and typeof(result) == "table" then
return result
end
end
return {}
end
local Colors = {
["Anais Watterson"] = Color3.fromRGB(216, 150, 152),
["Beast Boy"] = Color3.fromRGB(140, 201, 66),
["Bluey"] = Color3.fromRGB(132, 199, 249),
["Bugs Bunny"] = Color3.fromRGB(162, 173, 179),
["Chilli"] = Color3.fromRGB(254, 175, 111),
["Daddy Pig"] = Color3.fromRGB(112, 179, 184),
["Darwin Watterson"] = Color3.fromRGB(190, 86, 25),
["Dipper"] = Color3.fromRGB(67, 125, 160),
["Duolingo"] = Color3.fromRGB(89, 197, 1),
["Eric Cartman"] = Color3.fromRGB(203, 26, 58),
["Fern"] = Color3.fromRGB(135, 147, 35),
["Finn"] = Color3.fromRGB(45, 156, 207),
["Gumball"] = Color3.fromRGB(75, 190, 220),
["Grandpa Pig"] = Color3.fromRGB(112, 92, 160),
["Homer Simpson"] = Color3.fromRGB(255, 217, 15),
["Ice King"] = Color3.fromRGB(0, 0, 248),
["Invincible"] = Color3.fromRGB(255, 230, 85),
["Lola Bunny"] = Color3.fromRGB(255, 175, 91),
["Luigi"] = Color3.fromRGB(32, 200, 20),
["Margaret"] = Color3.fromRGB(239, 30, 62),
["Mario"] = Color3.fromRGB(218, 2, 9),
["Milhouse"] = Color3.fromRGB(69, 75, 169),
["Minecraft Creeper"] = Color3.fromRGB(62, 137, 47),
["Mordecai"] = Color3.fromRGB(124, 151, 218),
["Morty"] = Color3.fromRGB(252, 248, 115),
["Perry"] = Color3.fromRGB(36, 167, 161),
["Peter Griffin"] = Color3.fromRGB(10, 116, 12),
["Phineas"] = Color3.fromRGB(255, 125, 41),
["Plankton"] = Color3.fromRGB(102, 142, 115),
["Principal Brown"] = Color3.fromRGB(121, 103, 93),
["Raven"] = Color3.fromRGB(99, 84, 199),
["Richard"] = Color3.fromRGB(232, 168, 167),
["Scooby Doo"] = Color3.fromRGB(163, 95, 66),
["Spongebob"] = Color3.fromRGB(253, 245, 1),
["Squidward"] = Color3.fromRGB(139, 188, 178),
["Steven Universe"] = Color3.fromRGB(252, 96, 110),
["Stewie Griffin"] = Color3.fromRGB(181, 11, 62),
["Twilight"] = Color3.fromRGB(203, 147, 223),
}
for name, col in pairs(loadColors()) do
Colors[name] = col
end
local autoColor = true
local autoSubmit = false
local rainbowMode = false
local currentChar = nil
local currentRoundId = nil
local statusLabel
local counterLabel
local hue = 0
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local VirtualUser = game:GetService("VirtualUser")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local ResultEvent = ReplicatedStorage.Events:WaitForChild("ResultEvent")
local StartNewRound = ReplicatedStorage.Events:WaitForChild("StartNewRound")
local ScoreEvent = ReplicatedStorage.Events:WaitForChild("ScoreEvent")
local function getColorCount()
local c = 0
for _ in pairs(Colors) do c += 1 end
return c
end
statusLabel = Section:Label({ Text = "Status: Ready" })
counterLabel = Section:Label({ Text = "Saved Colors: " .. getColorCount() })
Section:Toggle({
Name = "Auto Color (100%)",
Default = true,
Callback = function(v)
autoColor = v
statusLabel:UpdateName(v and "Status: Auto Color ON" or "Status: Auto Color OFF")
end
}, "AutoColor")
Section:Toggle({
Name = "Auto Submit",
Default = false,
Callback = function(v)
autoSubmit = v
end
}, "AutoSubmit")
Section:Toggle({
Name = "Rainbow Mode",
Default = false,
Callback = function(v)
rainbowMode = v
if v then
Window:Notify({
Title = "Rainbow Mode",
Description = "Smooth hue rotation enabled",
Lifetime = 3
})
end
end
}, "Rainbow")
RunService.RenderStepped:Connect(function(dt)
if not rainbowMode then return end
hue = (hue + dt * 0.35) % 1
local rainbow = Color3.fromHSV(hue, 0.9, 1)
for _, gui in ipairs(PlayerGui:GetDescendants()) do
if gui.Name == "Characters" then
for _, child in ipairs(gui:GetChildren()) do
if child.Visible then
local part = child:FindFirstChild("PartToColor", true)
if part then
part.BackgroundColor3 = rainbow
end
end
end
end
if gui.Name == "Background" and gui:IsA("Frame") then
gui.BackgroundColor3 = rainbow
end
end
end)
LocalPlayer.Idled:Connect(function()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end)
local function forceColor(charName, col)
for _, gui in ipairs(PlayerGui:GetDescendants()) do
if gui.Name == "Characters" then
local img = gui:FindFirstChild(charName)
if img then
local part = img:FindFirstChild("PartToColor", true)
if part then
part.BackgroundColor3 = col
end
end
end
if gui.Name == "Background" and gui:IsA("Frame") then
gui.BackgroundColor3 = col
end
end
end
ScoreEvent.OnClientEvent:Connect(function(action, name, colorData)
if action == "ShowCorrectAnswer" then
local col
if typeof(colorData) == "Color3" then
col = colorData
elseif typeof(colorData) == "table" then
col = Color3.fromRGB(
math.clamp(math.round(tonumber(colorData[1]) or 255), 0, 255),
math.clamp(math.round(tonumber(colorData[2]) or 255), 0, 255),
math.clamp(math.round(tonumber(colorData[3]) or 255), 0, 255)
)
end
if col then
local isNew = Colors[name] == nil
Colors[name] = col
saveColors(Colors)
counterLabel:UpdateName("Saved Colors: " .. getColorCount())
if isNew then
Window:Notify({
Title = "New Color Saved",
Description = name,
Lifetime = 3
})
end
end
end
end)
StartNewRound.OnClientEvent:Connect(function(charName, _, roundId)
currentChar = charName
currentRoundId = roundId
local col = Colors[charName]
if autoColor and col and not rainbowMode then
task.wait(0.18)
forceColor(charName, col)
statusLabel:UpdateName("Status: " .. charName .. " → 100%")
if autoSubmit then
task.wait(0.3)
ResultEvent:FireServer(
math.round(col.R * 255),
math.round(col.G * 255),
math.round(col.B * 255),
currentRoundId
)
statusLabel:UpdateName("Status: " .. charName .. " → Submitted")
end
else
statusLabel:UpdateName("Status: " .. tostring(charName) .. (col and "" or " (unknown)"))
end
end)
local old
old = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
local method = getnamecallmethod()
if method == "FireServer" and self == ResultEvent and autoColor and currentChar and Colors[currentChar] and not rainbowMode then
local c = Colors[currentChar]
return old(self, math.round(c.R*255), math.round(c.G*255), math.round(c.B*255), select(4, ...))
end
return old(self, ...)
end))
saveColors(Colors)
statusLabel:UpdateName("Status: Ready")
counterLabel:UpdateName("Saved Colors: " .. getColorCount())Comments section coming soon...
To use this script, you need a Roblox Executor. Simply copy the script from this page, paste it into your executor, and run it while you are in the Guess the character color game.
This script may require a payment or subscription. Please check the script's description for more details.
Yes, this script has a key system. You may need to complete a task or join a Discord server to get a key.
Yes, this script is designed to be compatible with mobile executors.