
KeylessUniversal

--[[
Luau Omega Clicker
Made by Rubix - v1.1
Place this LocalScript in StarterGui
]]
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
-- ===================== STATE =====================
local tiers = {100, 0, 0, 0} -- Normal, Greek(1-24), Sub(1-3 -> _2,_3,_4), Power(1-7 -> ^2..^8)
local isFlashing = false
local isMinimized = false
local starsVisible = false
local currentThemeIndex = 6 -- Default Purple
-- ===================== CONSTANTS =====================
local ILLIONS = {"", "K", "M", "B", "T", "q", "Q", "s", "S", "O", "N", "D", "Ud"}
local GREEKS = {"Ω", "Ψ", "Χ", "Φ", "Υ", "Τ", "Σ", "Ρ", "Π", "Ο", "Ξ", "Ν", "Μ", "Λ", "Κ", "Ι", "Θ", "Η", "Ζ", "Ε", "Δ", "Γ", "Β", "Α"}
local THEMES = {
{name="Red", bg=Color3.fromRGB(40,10,10), acc=Color3.fromRGB(200,50,50), txt=Color3.fromRGB(255,200,200), btn=Color3.fromRGB(180,30,30), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(255,80,80)},
{name="Orange", bg=Color3.fromRGB(40,25,10), acc=Color3.fromRGB(230,140,30), txt=Color3.fromRGB(255,220,160), btn=Color3.fromRGB(200,100,10), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(255,160,50)},
{name="Yellow", bg=Color3.fromRGB(40,40,10), acc=Color3.fromRGB(230,230,30), txt=Color3.fromRGB(255,255,180), btn=Color3.fromRGB(200,200,10), btnTxt=Color3.new(0,0,0), glow=Color3.fromRGB(255,255,80)},
{name="Green", bg=Color3.fromRGB(10,35,10), acc=Color3.fromRGB(30,200,30), txt=Color3.fromRGB(180,255,180), btn=Color3.fromRGB(10,160,10), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(50,255,50)},
{name="Blue", bg=Color3.fromRGB(10,15,40), acc=Color3.fromRGB(30,100,230), txt=Color3.fromRGB(180,210,255), btn=Color3.fromRGB(10,70,200), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(50,130,255)},
{name="Purple", bg=Color3.fromRGB(25,10,40), acc=Color3.fromRGB(130,50,230), txt=Color3.fromRGB(210,180,255), btn=Color3.fromRGB(100,30,200), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(160,80,255)},
{name="Pink", bg=Color3.fromRGB(40,10,30), acc=Color3.fromRGB(230,50,160), txt=Color3.fromRGB(255,180,220), btn=Color3.fromRGB(200,30,130), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(255,80,200)},
{name="Brown", bg=Color3.fromRGB(35,20,10), acc=Color3.fromRGB(160,100,50), txt=Color3.fromRGB(220,190,150), btn=Color3.fromRGB(130,70,30), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(180,120,60)},
{name="Black", bg=Color3.fromRGB(10,10,10), acc=Color3.fromRGB(60,60,60), txt=Color3.fromRGB(180,180,180), btn=Color3.fromRGB(40,40,40), btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(100,100,100)},
{name="Grey", bg=Color3.fromRGB(40,40,40), acc=Color3.fromRGB(130,130,130),txt=Color3.fromRGB(220,220,220), btn=Color3.fromRGB(100,100,100),btnTxt=Color3.new(1,1,1), glow=Color3.fromRGB(160,160,160)},
{name="White", bg=Color3.fromRGB(200,200,200),acc=Color3.fromRGB(240,240,240),txt=Color3.fromRGB(50,50,50), btn=Color3.fromRGB(230,230,230),btnTxt=Color3.new(0,0,0), glow=Color3.fromRGB(255,255,255)}
}
-- ===================== FORMATTING =====================
local function formatNormal(val, inOmega)
if val <= 0 or val ~= val then return "0" end
if inOmega then
if val >= 100 then return string.format("%.1f", val)
elseif val >= 10 then return string.format("%.2f", val)
else return string.format("%.3f", val) end
end
if val < 1000 then
if val == math.floor(val) then return tostring(math.floor(val))
else return string.format("%.1f", val) end
end
local exp = math.floor(math.log10(val))
local tier = math.floor(exp / 3)
if tier >= #ILLIONS then return string.format("%.2fe%d", val / (10^exp), exp) end
local coeff = val / (10 ^ (tier * 3))
if coeff >= 100 then return string.format("%.1f%s", coeff, ILLIONS[tier+1])
elseif coeff >= 10 then return string.format("%.2f%s", coeff, ILLIONS[tier+1])
else return string.format("%.3f%s", coeff, ILLIONS[tier+1]) end
end
local function getDisplay()
local inOmega = tiers[2] > 0 or tiers[3] > 0 or tiers[4] > 0
local parts = {}
if tiers[4] > 0 then
table.insert(parts, tostring(tiers[4]) .. "Ω^" .. tostring(tiers[4] + 1))
end
if tiers[3] > 0 then
local g = GREEKS[tiers[2]] or "?"
local s = "_" .. tostring(tiers[3] + 1)
local p = tiers[4] > 0 and ("^" .. tostring(tiers[4])) or ""
table.insert(parts, tostring(tiers[3]) .. g .. s .. p)
end
if tiers[2] > 0 then
local g = GREEKS[tiers[2]] or "?"
local p = tiers[4] > 1 and ("^" .. tostring(tiers[4] - 1)) or ""
table.insert(parts, tostring(tiers[2]) .. g .. p)
end
table.insert(parts, formatNormal(tiers[1], inOmega))
return table.concat(parts, " + ")
end
local function getMultiplier()
return 1.1 * (3 ^ tiers[2])
end
local function formatMult()
local m = getMultiplier()
if m < 10 then return "x" .. string.format("%.2f", m)
elseif m < 1000 then return "x" .. string.format("%.1f", m)
else return "x" .. string.format("%.2e", m) end
end
local function getProgressInfo()
if tiers[4] >= 7 then
local currentPoints = ((tiers[3] - 1) * 24 + (tiers[2] - 1)) + (tiers[1] / 1000)
local prog = math.clamp(currentPoints / 72, 0, 1)
return prog, "Next: Reset!"
end
local inOmega = tiers[2] > 0 or tiers[3] > 0 or tiers[4] > 0
if not inOmega then
local prog = math.clamp(tiers[1] / 340e36, 0, 1)
return prog, "Next: Ω"
end
local currentPoints = ((tiers[3] - 1) * 24 + (tiers[2] - 1)) + (tiers[1] / 1000)
local maxPoints = 3 * 24 -- 72
local prog = math.clamp(currentPoints / maxPoints, 0, 1)
local nextPower = tiers[4] + 2
return prog, "Next: Ω^" .. nextPower
end
-- ===================== GUI SETUP =====================
local gui = Instance.new("ScreenGui")
gui.Name = "RubixClicker"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = player:WaitForChild("PlayerGui")
local starsFrame = Instance.new("Frame")
starsFrame.Size = UDim2.new(1, 0, 1, 0)
starsFrame.BackgroundTransparency = 1
starsFrame.Visible = false
starsFrame.ZIndex = 0
starsFrame.Parent = gui
for _ = 1, 80 do
local star = Instance.new("Frame")
star.Size = UDim2.new(0, math.random(2, 4), 0, math.random(2, 4))
star.Position = UDim2.new(math.random(), 0, math.random(), 0)
star.BackgroundColor3 = Color3.new(1, 1, 1)
star.BackgroundTransparency = 0.5
star.BorderSizePixel = 0
star.ZIndex = 0
star.Parent = starsFrame
Instance.new("UICorner", star).CornerRadius = UDim.new(1, 0)
end
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 320, 0, 260)
frame.Position = UDim2.new(0.5, -160, 0.5, -130)
frame.BackgroundColor3 = Color3.fromRGB(25, 10, 40)
frame.BackgroundTransparency = 0.1
frame.BorderSizePixel = 0
frame.ZIndex = 1
frame.Parent = gui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 16)
local glow = Instance.new("UIStroke")
glow.Color = Color3.fromRGB(130, 50, 230)
glow.Thickness = 2.5
glow.Parent = frame
local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1, 0, 0, 32)
topBar.BackgroundTransparency = 1
topBar.ZIndex = 2
topBar.Parent = frame
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -120, 1, 0)
titleLabel.Position = UDim2.new(0, 12, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Ω Clicker"
titleLabel.TextColor3 = Color3.fromRGB(210, 180, 255)
titleLabel.TextSize = 14
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.ZIndex = 3
titleLabel.Parent = topBar
local function createCtrlBtn(text, posX)
local b = Instance.new("TextButton")
b.Size = UDim2.new(0, 28, 0, 22)
b.Position = UDim2.new(1, posX, 0.5, -11)
b.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
b.TextColor3 = Color3.new(1, 1, 1)
b.Text = text
b.TextSize = 14
b.Font = Enum.Font.GothamBold
b.BorderSizePixel = 0
b.ZIndex = 4
b.Parent = topBar
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
return b
end
local minBtn = createCtrlBtn("-", -34)
local themeBtn = createCtrlBtn("🎨", -68)
local starsBtn = createCtrlBtn("★", -102)
local descBtn = createCtrlBtn("?", -136)
-- Content Frame
local content = Instance.new("Frame")
content.Size = UDim2.new(1, 0, 1, -32)
content.Position = UDim2.new(0, 0, 0, 32)
content.BackgroundTransparency = 1
content.ZIndex = 2
content.Parent = frame
local valueLabel = Instance.new("TextLabel")
valueLabel.Size = UDim2.new(1, 0, 0, 48)
valueLabel.Position = UDim2.new(0, 0, 0, 10)
valueLabel.BackgroundTransparency = 1
valueLabel.Text = "100"
valueLabel.TextColor3 = Color3.fromRGB(255, 220, 50)
valueLabel.TextSize = 36
valueLabel.Font = Enum.Font.GothamBold
valueLabel.TextStrokeTransparency = 0.5
valueLabel.TextStrokeColor3 = Color3.fromRGB(200, 130, 0)
valueLabel.ZIndex = 3
valueLabel.Parent = content
local multLabel = Instance.new("TextLabel")
multLabel.Size = UDim2.new(1, 0, 0, 20)
multLabel.Position = UDim2.new(0, 0, 0, 58)
multLabel.BackgroundTransparency = 1
multLabel.Text = "x1.10"
multLabel.TextColor3 = Color3.fromRGB(170, 150, 255)
multLabel.TextSize = 14
multLabel.Font = Enum.Font.GothamMedium
multLabel.ZIndex = 3
multLabel.Parent = content
-- Progress Bar Container
local barContainer = Instance.new("Frame")
barContainer.Size = UDim2.new(0.8, 0, 0, 16)
barContainer.Position = UDim2.new(0.5, 0, 0, 82)
barContainer.AnchorPoint = Vector2.new(0.5, 0)
barContainer.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
barContainer.BorderSizePixel = 0
barContainer.ZIndex = 3
barContainer.Parent = content
Instance.new("UICorner", barContainer).CornerRadius = UDim.new(0, 8)
local barStroke = Instance.new("UIStroke")
barStroke.Color = Color3.fromRGB(80, 80, 100)
barStroke.Thickness = 1
barStroke.Parent = barContainer
local barFill = Instance.new("Frame")
barFill.Size = UDim2.new(0, 0, 1, 0)
barFill.BackgroundColor3 = Color3.fromRGB(130, 50, 230)
barFill.BorderSizePixel = 0
barFill.ZIndex = 4
barFill.Parent = barContainer
Instance.new("UICorner", barFill).CornerRadius = UDim.new(0, 8)
local barLabel = Instance.new("TextLabel")
barLabel.Size = UDim2.new(1, 0, 1, 0)
barLabel.BackgroundTransparency = 1
barLabel.Text = "Next: Ω"
barLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
barLabel.TextSize = 10
barLabel.Font = Enum.Font.GothamBold
barLabel.ZIndex = 5
barLabel.Parent = barContainer
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 220, 0, 72)
button.Position = UDim2.new(0.5, -110, 0, 104)
button.BackgroundColor3 = Color3.fromRGB(100, 30, 200)
button.Text = "✦ CLICK ✦"
button.TextColor3 = Color3.new(1, 1, 1)
button.TextSize = 22
button.Font = Enum.Font.GothamBold
button.BorderSizePixel = 0
button.AutoButtonColor = false
button.ZIndex = 4
button.Parent = content
Instance.new("UICorner", button).CornerRadius = UDim.new(0, 14)
local btnStroke = Instance.new("UIStroke")
btnStroke.Color = Color3.fromRGB(150, 110, 255)
btnStroke.Thickness = 1.5
btnStroke.Transparency = 0.3
btnStroke.Parent = button
local creditLabel = Instance.new("TextLabel")
creditLabel.Size = UDim2.new(1, 0, 0, 16)
creditLabel.Position = UDim2.new(0, 0, 1, -20)
creditLabel.BackgroundTransparency = 1
creditLabel.Text = "Made by Rubix - v1.1"
creditLabel.TextColor3 = Color3.fromRGB(100, 100, 100)
creditLabel.TextSize = 11
creditLabel.Font = Enum.Font.Gotham
creditLabel.ZIndex = 3
creditLabel.Parent = content
-- Description Window
local descWindow = Instance.new("Frame")
descWindow.Size = UDim2.new(0, 280, 0, 140)
descWindow.Position = UDim2.new(0.5, -140, 0.5, -70)
descWindow.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
descWindow.BackgroundTransparency = 0.05
descWindow.BorderSizePixel = 0
descWindow.Visible = false
descWindow.ZIndex = 10
descWindow.Parent = gui
Instance.new("UICorner", descWindow).CornerRadius = UDim.new(0, 12)
local descStroke = Instance.new("UIStroke")
descStroke.Color = Color3.fromRGB(200, 200, 200)
descStroke.Thickness = 1.5
descStroke.Parent = descWindow
local descText = Instance.new("TextLabel")
descText.Size = UDim2.new(1, -20, 1, -40)
descText.Position = UDim2.new(0, 10, 0, 10)
descText.BackgroundTransparency = 1
descText.Text = "What is this - this is basically a mini version of be a battery; basically a Game in a script!"
descText.TextColor3 = Color3.fromRGB(220, 220, 220)
descText.TextSize = 14
descText.Font = Enum.Font.Gotham
descText.TextWrapped = true
descText.ZIndex = 11
descText.Parent = descWindow
local descClose = Instance.new("TextButton")
descClose.Size = UDim2.new(0, 60, 0, 28)
descClose.Position = UDim2.new(0.5, -30, 1, -34)
descClose.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
descClose.TextColor3 = Color3.new(1, 1, 1)
descClose.Text = "Close"
descClose.TextSize = 12
descClose.Font = Enum.Font.GothamBold
descClose.BorderSizePixel = 0
descClose.ZIndex = 11
descClose.Parent = descWindow
Instance.new("UICorner", descClose).CornerRadius = UDim.new(0, 8)
-- Theme Menu
local closeMenuBtn = Instance.new("TextButton")
closeMenuBtn.Size = UDim2.new(1, 0, 1, 0)
closeMenuBtn.BackgroundTransparency = 1
closeMenuBtn.Text = ""
closeMenuBtn.Visible = false
closeMenuBtn.ZIndex = 19
closeMenuBtn.Parent = gui
local themeMenu = Instance.new("Frame")
themeMenu.Size = UDim2.new(0, 90, 0, #THEMES * 22)
themeMenu.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
themeMenu.BorderSizePixel = 0
themeMenu.Visible = false
themeMenu.ZIndex = 20
themeMenu.Parent = gui
Instance.new("UICorner", themeMenu).CornerRadius = UDim.new(0, 8)
local themeMenuStroke = Instance.new("UIStroke")
themeMenuStroke.Color = Color3.fromRGB(150, 150, 150)
themeMenuStroke.Thickness = 1
themeMenuStroke.Parent = themeMenu
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 2)
listLayout.Parent = themeMenu
for i, theme in ipairs(THEMES) do
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 20)
btn.BackgroundColor3 = theme.btn
btn.TextColor3 = theme.btnTxt
btn.Text = theme.name
btn.TextSize = 12
btn.Font = Enum.Font.Gotham
btn.BorderSizePixel = 0
btn.ZIndex = 21
btn.Parent = themeMenu
btn.MouseButton1Click:Connect(function()
currentThemeIndex = i
applyTheme()
themeMenu.Visible = false
closeMenuBtn.Visible = false
end)
end
-- ===================== LOGIC =====================
local function triggerReset()
isFlashing = true
task.spawn(function()
for i = 1, 14 do
local on = (i % 2 == 0)
button.BackgroundColor3 = on and Color3.fromRGB(255, 255, 120) or Color3.fromRGB(255, 80, 80)
frame.BackgroundColor3 = on and Color3.fromRGB(60, 60, 15) or Color3.fromRGB(60, 15, 15)
glow.Color = on and Color3.fromRGB(255, 255, 120) or Color3.fromRGB(255, 60, 60)
valueLabel.TextColor3 = on and Color3.new(1, 1, 1) or Color3.fromRGB(255, 220, 50)
task.wait(0.07)
end
tiers = {100, 0, 0, 0}
applyTheme()
isFlashing = false
updateDisplay()
end)
end
local function normalize()
if tiers[1] ~= tiers[1] or tiers[1] == math.huge then
tiers = {999, 24, 3, 7}
triggerReset()
return
end
local inOmega = tiers[2] > 0 or tiers[3] > 0 or tiers[4] > 0
if not inOmega then
if tiers[1] >= 340e36 then
tiers[1] = tiers[1] / 1000
tiers[2] = 1
else
return
end
end
while tiers[1] >= 1000 do
tiers[1] = tiers[1] / 1000
tiers[2] = tiers[2] + 1
if tiers[2] > 24 then
tiers[2] = 1
tiers[3] = tiers[3] + 1
if tiers[3] > 3 then
tiers[3] = 1
tiers[4] = tiers[4] + 1
if tiers[4] > 7 then
tiers = {999, 24, 3, 7}
triggerReset()
return
end
end
end
end
end
function updateDisplay()
valueLabel.Text = getDisplay()
multLabel.Text = formatMult()
local prog, text = getProgressInfo()
barFill.Size = UDim2.new(prog, 0, 1, 0)
barLabel.Text = text
end
function applyTheme()
local t = THEMES[currentThemeIndex]
if not t then return end
frame.BackgroundColor3 = t.bg
glow.Color = t.glow
titleLabel.TextColor3 = t.txt
valueLabel.TextColor3 = t.txt
multLabel.TextColor3 = t.acc
button.BackgroundColor3 = t.btn
button.TextColor3 = t.btnTxt
btnStroke.Color = t.glow
minBtn.BackgroundColor3 = t.acc
themeBtn.BackgroundColor3 = t.acc
starsBtn.BackgroundColor3 = t.acc
descBtn.BackgroundColor3 = t.acc
barFill.BackgroundColor3 = t.acc
themeMenu.BackgroundColor3 = t.bg
end
-- ===================== EVENTS =====================
local dragToggle, dragStart, startPos
topBar.InputBegan:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
dragToggle = true
dragStart = input.Position
startPos = frame.Position
end
end)
topBar.InputEnded:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
dragToggle = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragToggle and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
minBtn.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
local targetSize = isMinimized and UDim2.new(0, 320, 0, 35) or UDim2.new(0, 320, 0, 260)
TweenService:Create(frame, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {Size = targetSize}):Play()
content.Visible = not isMinimized
minBtn.Text = isMinimized and "+" or "-"
end)
themeBtn.MouseButton1Click:Connect(function()
if themeMenu.Visible then
themeMenu.Visible = false
closeMenuBtn.Visible = false
else
local absPos = frame.AbsolutePosition
local absSize = frame.AbsoluteSize
themeMenu.Position = UDim2.new(0, absPos.X + absSize.X - 95, 0, absPos.Y + 34)
themeMenu.Visible = true
closeMenuBtn.Visible = true
end
end)
closeMenuBtn.MouseButton1Click:Connect(function()
themeMenu.Visible = false
closeMenuBtn.Visible = false
end)
starsBtn.MouseButton1Click:Connect(function()
starsVisible = not starsVisible
starsFrame.Visible = starsVisible
starsBtn.Text = starsVisible and "★" or "☆"
end)
descBtn.MouseButton1Click:Connect(function()
descWindow.Visible = true
end)
descClose.MouseButton1Click:Connect(function()
descWindow.Visible = false
end)
button.MouseButton1Click:Connect(function()
if isFlashing then return end
tiers[1] = tiers[1] * getMultiplier()
normalize()
if not isFlashing then
updateDisplay()
task.spawn(function()
TweenService:Create(button, TweenInfo.new(0.06, Enum.EasingStyle.Back), {
Size = UDim2.new(0, 234, 0, 78)
}):Play()
task.wait(0.06)
TweenService:Create(button, TweenInfo.new(0.1, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 220, 0, 72)
}):Play()
end)
end
end)
-- ===================== ANIMATIONS =====================
task.spawn(function()
local t = 0
while task.wait(0.03) do
t += 0.05
valueLabel.Position = UDim2.new(0, 0, 0, 10 + math.sin(t) * 5)
end
end)
task.spawn(function()
local t = 0
while task.wait(0.03) do
t += 0.025
local p = 0.5 + 0.5 * math.sin(t)
local base = THEMES[currentThemeIndex].glow
glow.Color = Color3.new(
math.min(base.R * (0.6 + p * 0.4), 1),
math.min(base.G * (0.6 + p * 0.4), 1),
math.min(base.B * (0.6 + p * 0.4), 1)
)
end
end)
task.spawn(function()
while task.wait(0.04) do
for _, star in ipairs(starsFrame:GetChildren()) do
if star:IsA("Frame") then
local t = tick() + (star.Position.X.Offset * 10)
star.BackgroundTransparency = 0.2 + 0.6 * math.abs(math.sin(t))
end
end
end
end)
-- ===================== INITIALIZE =====================
applyTheme()
updateDisplay()



any suggestions to add?