--// Exponential Growth UI v3.5 --// Place this in a LocalScript inside StarterPlayerScripts local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local Lighting = game:GetService("Lighting") local TextChatService = game:GetService("TextChatService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") --// 1. CLEAN UP EXISTING local oldGui = playerGui:FindFirstChild("ExponentialGUI") if oldGui then oldGui:Destroy() end local oldBlur = Lighting:FindFirstChild("ExpUIBlur") if oldBlur then oldBlur:Destroy() end --// 2. SUFFIX SYSTEM (Base-1000 Multiplicative Blocks) local first10 = {"K", "M", "B", "T", "q", "Q", "s", "S", "O", "N"} local uN = {"U", "D", "T", "q", "Q", "s", "S", "O", "N"} local tC = {"D", "V", "Tg", "qg", "Qig", "Hxg", "Sg", "Og", "Ng"} local tL = {"d", "v", "tg", "qg", "qig", "hxg", "sg", "og", "ng"} local hC = {"Ce", "Du", "Te", "Qr", "Qu", "Se", "St", "Ot", "Nn"} local hL = {"ce", "du", "te", "qr", "qu", "se", "st", "ot", "nn"} local superPre_Upper = {"Mi", "Mc", "Na", "Pic", "Fm", "Att", "Zep", "Yt", "Xon", "Vec"} local superPre_Lower = {"mi", "mc", "na", "pi", "fm", "at", "ze", "yt", "xn", "vc"} local superA_Upper = {"Me", "Duc", "Tec", "Trec", "Pnec", "Hxec", "Hpec", "Ocec", "Enec"} local superA_Lower = {"me", "dc", "tc", "trc", "pnc", "hxc", "hpc", "occ", "enc"} local superB_Upper = {"Ic", "Tect", "Trect", "Pnct", "Hxct", "Hpct", "Occt", "Enct"} local superB_Lower = {"ic", "tct", "trct", "pct", "hxct", "hpct", "occt", "enct"} local superC_Upper = {"Hct", "Dhct", "Thct", "Trhct", "Pnhct", "Hxhct", "Hphct", "Ochct", "Enhct"} local superC_Lower = {"ht", "dht", "tht", "trht", "pht", "hxht", "hpht", "ocht", "eht"} local function getStandardDigitStr(val) if val < 10 then return uN[val] end local u = val % 10 local t = math.floor((val % 100) / 10) * 10 local h = math.floor(val / 100) * 100 local res = "" if h > 0 then res = (u > 0 and hL[h/100] or hC[h/100]) .. res end if t > 0 then res = (u > 0 and tL[t/10] or tC[t/10]) .. res end if u > 0 then res = uN[u] .. res end return res end local function getBlockSuffix(j, isLower) if j == 0 then return "" end if j <= 10 then return isLower and superPre_Lower[j] or superPre_Upper[j] end if j <= 19 then local idx = j - 10 return isLower and superA_Lower[idx] or superA_Upper[idx] end local u = j % 10 local t = math.floor((j % 100) / 10) * 10 local h = math.floor(j / 100) * 100 local res = "" if u > 0 then res = res .. (isLower and superA_Lower[u] or superA_Upper[u]) end if t > 0 then local tIdx = (t - 20) / 10 + 1 if u > 0 then res = res .. superB_Lower[tIdx] else res = res .. (isLower and superB_Lower[tIdx] or superB_Upper[tIdx]) end end if h > 0 then local hIdx = h / 100 if u > 0 or t > 0 then res = res .. superC_Lower[hIdx] else res = res .. (isLower and superC_Lower[hIdx] or superC_Upper[hIdx]) end end return res end local function getSuffix(i) if i == 0 then return "" end if i <= 10 then return first10[i] end local blocks = {} local tempIdx = i for b = 0, 200 do if tempIdx == 0 then break end table.insert(blocks, tempIdx % 1000) tempIdx = math.floor(tempIdx / 1000) end local res = "" for b = #blocks, 1, -1 do local val = blocks[b] local j = b - 1 if val > 0 then if j == 0 then if val <= 10 then res = res .. first10[val] else res = res .. getStandardDigitStr(val) end else if val == 1 then res = res .. getBlockSuffix(j, false) else res = res .. getStandardDigitStr(val) .. getBlockSuffix(j, true) end end end end return res end --// 3. THEME COLORS local solidThemes = { Red = Color3.fromRGB(255, 0, 0), Vermillion = Color3.fromRGB(255, 89, 0), Orange = Color3.fromRGB(255, 165, 0), Sunset = Color3.fromRGB(253, 94, 83), ["Sandy Lemon"] = Color3.fromRGB(252, 230, 121), Yellow = Color3.fromRGB(255, 255, 0), Lime = Color3.fromRGB(0, 255, 0), Green = Color3.fromRGB(0, 128, 0), ["Forest green"] = Color3.fromRGB(34, 139, 34), ["Earth green"] = Color3.fromRGB(56, 118, 29), ["Night mint"] = Color3.fromRGB(62, 180, 137), Mint = Color3.fromRGB(152, 255, 152), Teal = Color3.fromRGB(0, 128, 128), Cyan = Color3.fromRGB(0, 255, 255), ["Sky blue"] = Color3.fromRGB(135, 206, 235), ["Noon blue"] = Color3.fromRGB(0, 95, 206), ["Neon blue"] = Color3.fromRGB(78, 111, 255), Blue = Color3.fromRGB(0, 0, 255), ["Space blue"] = Color3.fromRGB(35, 53, 123), Purple = Color3.fromRGB(128, 0, 128), Pink = Color3.fromRGB(255, 192, 203), ["Neon pink"] = Color3.fromRGB(255, 16, 240), ["Cherry pink"] = Color3.fromRGB(233, 99, 121), ["Cherry blossom"] = Color3.fromRGB(255, 183, 197), Magenta = Color3.fromRGB(255, 0, 255), Black = Color3.fromRGB(0, 0, 0), Brown = Color3.fromRGB(139, 69, 19), Beige = Color3.fromRGB(245, 245, 220), ["Moon light"] = Color3.fromRGB(240, 240, 230), Grey = Color3.fromRGB(128, 128, 128), ["Light gray"] = Color3.fromRGB(211, 211, 211), ["White smoke"] = Color3.fromRGB(245, 245, 245), White = Color3.fromRGB(255, 255, 255) } local solidThemeOrder = { "Red", "Vermillion", "Orange", "Sunset", "Sandy Lemon", "Yellow", "Lime", "Green", "Forest green", "Earth green", "Night mint", "Mint", "Teal", "Cyan", "Sky blue", "Noon blue", "Neon blue", "Blue", "Space blue", "Purple", "Pink", "Neon pink", "Cherry pink", "Cherry blossom", "Magenta", "Black", "Brown", "Beige", "Moon light", "Grey", "Light gray", "White smoke", "White" } local gradientThemes = { Red = ColorSequence.new(Color3.fromRGB(255, 0, 0), Color3.fromRGB(180, 0, 0)), Orange = ColorSequence.new(Color3.fromRGB(255, 165, 0), Color3.fromRGB(255, 100, 0)), Copper = ColorSequence.new(Color3.fromRGB(184, 115, 51), Color3.fromRGB(120, 75, 30)), Yellow = ColorSequence.new(Color3.fromRGB(255, 255, 0), Color3.fromRGB(255, 215, 0)), Green = ColorSequence.new(Color3.fromRGB(0, 255, 0), Color3.fromRGB(0, 160, 0)), Emerald = ColorSequence.new(Color3.fromRGB(80, 220, 100), Color3.fromRGB(0, 100, 50)), Cyan = ColorSequence.new(Color3.fromRGB(0, 255, 255), Color3.fromRGB(0, 160, 200)), ["Sky blue"] = ColorSequence.new(Color3.fromRGB(135, 206, 235), Color3.fromRGB(70, 130, 180)), Diamond = ColorSequence.new(Color3.fromRGB(185, 242, 255), Color3.fromRGB(105, 197, 255)), Blue = ColorSequence.new(Color3.fromRGB(0, 0, 255), Color3.fromRGB(0, 0, 160)), Purple = ColorSequence.new(Color3.fromRGB(128, 0, 128), Color3.fromRGB(186, 85, 211)), Pink = ColorSequence.new(Color3.fromRGB(255, 192, 203), Color3.fromRGB(255, 105, 180)), Brown = ColorSequence.new(Color3.fromRGB(139, 69, 19), Color3.fromRGB(100, 60, 20)), Black = ColorSequence.new(Color3.fromRGB(60, 60, 60), Color3.fromRGB(0, 0, 0)), Grey = ColorSequence.new(Color3.fromRGB(128, 128, 128), Color3.fromRGB(90, 90, 90)), White = ColorSequence.new(Color3.fromRGB(255, 255, 255), Color3.fromRGB(200, 200, 200)) } local gradientThemeOrder = {"Red", "Orange", "Copper", "Yellow", "Green", "Emerald", "Cyan", "Sky blue", "Diamond", "Blue", "Purple", "Pink", "Brown", "Black", "Grey", "White"} local currentThemeColor = Color3.fromRGB(0, 255, 255) local currentThemeGradient = ColorSequence.new(currentThemeColor, Color3.fromRGB(255, 255, 255)) --// 4. UI CREATION local blur = Instance.new("BlurEffect") blur.Name = "ExpUIBlur" blur.Size = 15 blur.Parent = Lighting local screenGui = Instance.new("ScreenGui") screenGui.Name = "ExponentialGUI" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 460, 0, 280) mainFrame.Position = UDim2.new(0.5, -230, 0.5, -140) mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20) mainFrame.BackgroundTransparency = 0.1 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 12) mainCorner.Parent = mainFrame local mainGradient = Instance.new("UIGradient") mainGradient.Color = ColorSequence.new(Color3.fromRGB(20, 20, 30), Color3.fromRGB(10, 10, 15)) mainGradient.Rotation = 90 mainGradient.Parent = mainFrame local stroke = Instance.new("UIStroke") stroke.Color = currentThemeColor stroke.Thickness = 1.5 stroke.Transparency = 0.3 stroke.Parent = mainFrame -- Top Bar local topBar = Instance.new("Frame") topBar.Size = UDim2.new(1, 0, 0, 40) topBar.BackgroundColor3 = currentThemeColor topBar.BackgroundTransparency = 0.8 topBar.Parent = mainFrame local topBarGradient = Instance.new("UIGradient") topBarGradient.Color = ColorSequence.new(Color3.fromRGB(255, 255, 255), currentThemeColor) topBarGradient.Transparency = NumberSequence.new(0.8, 0.9) topBarGradient.Rotation = 90 topBarGradient.Parent = topBar local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -180, 1, 0) title.Position = UDim2.new(0, 15, 0, 0) title.BackgroundTransparency = 1 title.Text = "EXPONENTIAL GROWTH v3.5" title.Font = Enum.Font.GothamBold title.TextSize = 16 title.TextColor3 = Color3.fromRGB(240, 240, 255) title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = topBar local function createTopBtn(icon, posOffset) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 40, 0, 40) btn.Position = UDim2.new(1, posOffset, 0, 0) btn.BackgroundTransparency = 1 btn.Text = icon btn.Font = Enum.Font.GothamBold btn.TextSize = 18 btn.TextColor3 = Color3.fromRGB(220, 220, 240) btn.Parent = topBar btn.MouseEnter:Connect(function() btn.TextColor3 = Color3.fromRGB(255, 255, 255) end) btn.MouseLeave:Connect(function() btn.TextColor3 = Color3.fromRGB(220, 220, 240) end) return btn end local settingsBtn = createTopBtn("⚙", -40) local themeBtn = createTopBtn("🎨", -80) local minBtn = createTopBtn("—", -120) local closeBtn = createTopBtn("X", -160) closeBtn.TextColor3 = Color3.fromRGB(255, 100, 100) closeBtn.MouseEnter:Connect(function() closeBtn.TextColor3 = Color3.fromRGB(255, 150, 150) end) closeBtn.MouseLeave:Connect(function() closeBtn.TextColor3 = Color3.fromRGB(255, 100, 100) end) -- Number Display local numLabel = Instance.new("TextLabel") numLabel.Size = UDim2.new(0.9, 0, 0, 75) numLabel.Position = UDim2.new(0.05, 0, 0, 50) numLabel.BackgroundTransparency = 1 numLabel.Text = "100.00" numLabel.Font = Enum.Font.GothamBlack numLabel.TextSize = 55 numLabel.TextColor3 = Color3.fromRGB(255, 255, 255) numLabel.TextScaled = true numLabel.Parent = mainFrame local numGradient = Instance.new("UIGradient") numGradient.Color = currentThemeGradient numGradient.Parent = numLabel local function darkenColor(c, factor) return Color3.fromRGB(math.floor(c.R*255*factor), math.floor(c.G*255*factor), math.floor(c.B*255*factor)) end local function updateNumGradient(isSuper) local cs = currentThemeGradient if isSuper then local kps = {} for _, kp in ipairs(cs.Keypoints) do table.insert(kps, ColorSequenceKeypoint.new(kp.Time, darkenColor(kp.Value, 0.65))) end numGradient.Color = ColorSequence.new(kps) else numGradient.Color = cs end end -- Mode Toggle local modeBtn = Instance.new("TextButton") modeBtn.Size = UDim2.new(0.9, 0, 0, 32) modeBtn.Position = UDim2.new(0.05, 0, 0, 130) modeBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255) modeBtn.BackgroundTransparency = 0.9 modeBtn.Font = Enum.Font.GothamSemibold modeBtn.TextSize = 14 modeBtn.TextColor3 = Color3.fromRGB(240, 240, 255) modeBtn.Text = "Mode: Multiply (x1.20)" modeBtn.Parent = mainFrame local modeCorner = Instance.new("UICorner") modeCorner.CornerRadius = UDim.new(0, 8) modeCorner.Parent = modeBtn modeBtn.MouseEnter:Connect(function() modeBtn.BackgroundTransparency = 0.8 end) modeBtn.MouseLeave:Connect(function() modeBtn.BackgroundTransparency = 0.9 end) -- Action Buttons Row local btnRow = Instance.new("Frame") btnRow.Size = UDim2.new(0.9, 0, 0, 30) btnRow.Position = UDim2.new(0.05, 0, 0, 170) btnRow.BackgroundTransparency = 1 btnRow.Parent = mainFrame local btnNames = {"Pause", "Reset", "Chat", "Changelogs", "About"} local actionButtons = {} for i, name in ipairs(btnNames) do local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.19, 0, 1, 0) btn.Position = UDim2.new((i-1) * 0.2, 0, 0, 0) btn.BackgroundColor3 = Color3.fromRGB(255, 255, 255) btn.BackgroundTransparency = 0.9 btn.Font = Enum.Font.GothamSemibold btn.TextSize = 12 btn.TextColor3 = Color3.fromRGB(240, 240, 255) btn.Text = name btn.Parent = btnRow local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = btn btn.MouseEnter:Connect(function() btn.BackgroundTransparency = 0.75 end) btn.MouseLeave:Connect(function() btn.BackgroundTransparency = 0.9 end) actionButtons[name] = btn end -- Slider local sliderLabel = Instance.new("TextLabel") sliderLabel.Size = UDim2.new(0.9, 0, 0, 20) sliderLabel.Position = UDim2.new(0.05, 0, 0, 208) sliderLabel.BackgroundTransparency = 1 sliderLabel.Text = "Rate: 1.20" sliderLabel.Font = Enum.Font.GothamSemibold sliderLabel.TextSize = 13 sliderLabel.TextColor3 = Color3.fromRGB(220, 220, 240) sliderLabel.Parent = mainFrame local sliderTrack = Instance.new("Frame") sliderTrack.Size = UDim2.new(0.9, 0, 0, 8) sliderTrack.Position = UDim2.new(0.05, 0, 0, 235) sliderTrack.BackgroundColor3 = Color3.fromRGB(40, 40, 50) sliderTrack.BorderSizePixel = 0 sliderTrack.Parent = mainFrame local trackCorner = Instance.new("UICorner") trackCorner.CornerRadius = UDim.new(1, 0) trackCorner.Parent = sliderTrack local sliderFill = Instance.new("Frame") sliderFill.Size = UDim2.new(0, 0, 1, 0) sliderFill.BackgroundColor3 = currentThemeColor sliderFill.BorderSizePixel = 0 sliderFill.Parent = sliderTrack local sliderGradient = Instance.new("UIGradient") sliderGradient.Color = ColorSequence.new(currentThemeColor, darkenColor(currentThemeColor, 0.7)) sliderGradient.Parent = sliderFill local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = sliderFill local sliderHandle = Instance.new("Frame") sliderHandle.Size = UDim2.new(0, 22, 0, 22) sliderHandle.Position = UDim2.new(0, -11, 0.5, -11) sliderHandle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) sliderHandle.BorderSizePixel = 0 sliderHandle.Parent = sliderTrack local handleCorner = Instance.new("UICorner") handleCorner.CornerRadius = UDim.new(1, 0) handleCorner.Parent = sliderHandle local handleStroke = Instance.new("UIStroke") handleStroke.Color = currentThemeColor handleStroke.Thickness = 2 handleStroke.Parent = sliderHandle --// 5. WINDOWS & SETTINGS local maxStringLength = 0 local function createWindow(size, pos) local win = Instance.new("Frame") win.Size = size win.Position = pos win.BackgroundColor3 = Color3.fromRGB(20, 20, 30) win.BackgroundTransparency = 0.05 win.Visible = false win.ZIndex = 10 win.Parent = mainFrame local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 10) c.Parent = win local s = Instance.new("UIStroke") s.Color = currentThemeColor s.Thickness = 1 s.Transparency = 0.5 s.Parent = win return win end local function closeAllWindows() themeWindow.Visible = false aboutWindow.Visible = false changelogsWindow.Visible = false settingsWindow.Visible = false end local function applySolidTheme(color) currentThemeColor = color currentThemeGradient = ColorSequence.new(color, Color3.fromRGB(255, 255, 255)) stroke.Color = color handleStroke.Color = color mainFrame.BackgroundColor3 = Color3.fromRGB(math.floor(color.R * 15), math.floor(color.G * 15), math.floor(color.B * 15)) topBar.BackgroundColor3 = color sliderGradient.Color = ColorSequence.new(color, darkenColor(color, 0.7)) topBarGradient.Color = ColorSequence.new(Color3.fromRGB(255, 255, 255), color) updateNumGradient(false) end local function applyGradientTheme(cs) currentThemeGradient = cs local firstColor = cs.Keypoints[1].Value currentThemeColor = firstColor stroke.Color = firstColor handleStroke.Color = firstColor mainFrame.BackgroundColor3 = Color3.fromRGB(math.floor(firstColor.R * 15), math.floor(firstColor.G * 15), math.floor(firstColor.B * 15)) topBar.BackgroundColor3 = firstColor sliderGradient.Color = cs topBarGradient.Color = cs updateNumGradient(false) end -- Theme Window themeWindow = createWindow(UDim2.new(0, 260, 0, 320), UDim2.new(1, -270, 0, 50)) local tabContainer = Instance.new("Frame") tabContainer.Size = UDim2.new(1, -20, 0, 35) tabContainer.Position = UDim2.new(0, 10, 0, 10) tabContainer.BackgroundTransparency = 1 tabContainer.Parent = themeWindow local solidTabBtn = Instance.new("TextButton") solidTabBtn.Size = UDim2.new(0.5, -3, 1, 0) solidTabBtn.Position = UDim2.new(0, 0, 0, 0) solidTabBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50) solidTabBtn.BackgroundTransparency = 0.5 solidTabBtn.Text = "Solid" solidTabBtn.Font = Enum.Font.GothamBold solidTabBtn.TextSize = 13 solidTabBtn.TextColor3 = Color3.fromRGB(255, 255, 255) solidTabBtn.Parent = tabContainer local stc = Instance.new("UICorner") stc.CornerRadius = UDim.new(0, 6) stc.Parent = solidTabBtn local gradTabBtn = Instance.new("TextButton") gradTabBtn.Size = UDim2.new(0.5, -3, 1, 0) gradTabBtn.Position = UDim2.new(0.5, 3, 0, 0) gradTabBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50) gradTabBtn.BackgroundTransparency = 0.8 gradTabBtn.Text = "Gradient" gradTabBtn.Font = Enum.Font.GothamBold gradTabBtn.TextSize = 13 gradTabBtn.TextColor3 = Color3.fromRGB(220, 220, 240) gradTabBtn.Parent = tabContainer local gtc = Instance.new("UICorner") gtc.CornerRadius = UDim.new(0, 6) gtc.Parent = gradTabBtn local function setTab(isSolid) solidScroll.Visible = isSolid gradScroll.Visible = not isSolid solidTabBtn.BackgroundTransparency = isSolid and 0.5 or 0.8 gradTabBtn.BackgroundTransparency = isSolid and 0.8 or 0.5 end solidTabBtn.MouseButton1Click:Connect(function() setTab(true) end) gradTabBtn.MouseButton1Click:Connect(function() setTab(false) end) solidScroll = Instance.new("ScrollingFrame") solidScroll.Size = UDim2.new(1, -10, 1, -55) solidScroll.Position = UDim2.new(0, 5, 0, 50) solidScroll.BackgroundTransparency = 1 solidScroll.ScrollBarThickness = 4 solidScroll.ZIndex = 11 solidScroll.Parent = themeWindow gradScroll = Instance.new("ScrollingFrame") gradScroll.Size = UDim2.new(1, -10, 1, -55) gradScroll.Position = UDim2.new(0, 5, 0, 50) gradScroll.BackgroundTransparency = 1 gradScroll.ScrollBarThickness = 4 gradScroll.Visible = false gradScroll.ZIndex = 11 gradScroll.Parent = themeWindow local function createGridLayout(parent) local layout = Instance.new("UIGridLayout") layout.CellSize = UDim2.new(0, 110, 0, 35) layout.CellPadding = UDim2.new(0, 5, 0, 5) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = parent end createGridLayout(solidScroll) createGridLayout(gradScroll) for i, name in ipairs(solidThemeOrder) do local color = solidThemes[name] local btn = Instance.new("TextButton") btn.BackgroundColor3 = color btn.Font = Enum.Font.GothamBold btn.TextSize = 11 btn.TextColor3 = Color3.fromRGB(0, 0, 0) btn.Text = name btn.LayoutOrder = i btn.ZIndex = 11 btn.Parent = solidScroll local bCorner = Instance.new("UICorner") bCorner.CornerRadius = UDim.new(0, 6) bCorner.Parent = btn btn.MouseButton1Click:Connect(function() applySolidTheme(color) end) end for i, name in ipairs(gradientThemeOrder) do local cs = gradientThemes[name] local btn = Instance.new("TextButton") btn.BackgroundColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.GothamBold btn.TextSize = 11 btn.TextColor3 = Color3.fromRGB(0, 0, 0) btn.Text = name btn.LayoutOrder = i btn.ZIndex = 11 btn.Parent = gradScroll local bCorner = Instance.new("UICorner") bCorner.CornerRadius = UDim.new(0, 6) bCorner.Parent = btn local bGrad = Instance.new("UIGradient") bGrad.Color = cs bGrad.Parent = btn btn.MouseButton1Click:Connect(function() applyGradientTheme(cs) end) end -- About Window aboutWindow = createWindow(UDim2.new(0, 340, 0, 180), UDim2.new(0.5, -170, 0.5, -90)) local aboutText = Instance.new("TextLabel") aboutText.Size = UDim2.new(1, -30, 1, -20) aboutText.Position = UDim2.new(0, 15, 0, 15) aboutText.BackgroundTransparency = 1 aboutText.Text = "How does this thing work?\n\nSo basically its like a mini LNGI thing you can use! its a cool script i made just for you guys who just like numbers and suffixes." aboutText.Font = Enum.Font.Gotham aboutText.TextSize = 14 aboutText.TextColor3 = Color3.fromRGB(230, 230, 250) aboutText.TextWrapped = true aboutText.TextYAlignment = Enum.TextYAlignment.Top aboutText.ZIndex = 11 aboutText.Parent = aboutWindow -- Changelogs Window changelogsWindow = createWindow(UDim2.new(0, 340, 0, 200), UDim2.new(0.5, -170, 0.5, -100)) local clTitle = Instance.new("TextLabel") clTitle.Size = UDim2.new(1, 0, 0, 40) clTitle.Position = UDim2.new(0, 0, 0, 15) clTitle.BackgroundTransparency = 1 clTitle.Text = "Changelogs" clTitle.Font = Enum.Font.GothamBold clTitle.TextSize = 28 clTitle.TextColor3 = Color3.fromRGB(255, 255, 255) clTitle.ZIndex = 11 clTitle.Parent = changelogsWindow local clBody = Instance.new("TextLabel") clBody.Size = UDim2.new(1, -40, 0, 100) clBody.Position = UDim2.new(0, 20, 0, 60) clBody.BackgroundTransparency = 1 clBody.Text = "v3.5\nyes new theme and i had to fix the setting for max illion length" clBody.Font = Enum.Font.Gotham clBody.TextSize = 16 clBody.TextColor3 = Color3.fromRGB(220, 220, 240) clBody.TextWrapped = true clBody.TextYAlignment = Enum.TextYAlignment.Top clBody.TextXAlignment = Enum.TextXAlignment.Left clBody.ZIndex = 11 clBody.Parent = changelogsWindow local clFooter = Instance.new("TextLabel") clFooter.Size = UDim2.new(1, -40, 0, 20) clFooter.Position = UDim2.new(0, 20, 1, -25) clFooter.BackgroundTransparency = 1 clFooter.Text = "versions v3.3 and below are not logged!!!" clFooter.Font = Enum.Font.GothamSemibold clFooter.TextSize = 11 clFooter.TextColor3 = Color3.fromRGB(150, 150, 170) clFooter.TextXAlignment = Enum.TextXAlignment.Center clFooter.ZIndex = 11 clFooter.Parent = changelogsWindow -- Settings Window settingsWindow = createWindow(UDim2.new(0, 360, 0, 120), UDim2.new(0.5, -180, 0.5, -60)) local function createSettingLabel(text, posY) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.5, -10, 0, 35) lbl.Position = UDim2.new(0, 15, 0, posY) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.Font = Enum.Font.GothamSemibold lbl.TextSize = 13 lbl.TextColor3 = Color3.fromRGB(230, 230, 250) lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.ZIndex = 11 lbl.Parent = settingsWindow end local function createSettingBox(default, posY) local box = Instance.new("TextBox") box.Size = UDim2.new(0.4, -25, 0, 35) box.Position = UDim2.new(0.55, 5, 0, posY) box.BackgroundColor3 = Color3.fromRGB(30, 30, 40) box.Text = tostring(default) box.Font = Enum.Font.GothamSemibold box.TextSize = 13 box.TextColor3 = Color3.fromRGB(255, 255, 255) box.ZIndex = 11 box.Parent = settingsWindow local bc = Instance.new("UICorner") bc.CornerRadius = UDim.new(0, 6) bc.Parent = box return box end createSettingLabel("Max String Length (0 = ∞)", 40) local lengthLimitBox = createSettingBox(maxStringLength, 40) lengthLimitBox.FocusLost:Connect(function() local val = tonumber(lengthLimitBox.Text) if val and val >= 0 then maxStringLength = math.floor(val) end lengthLimitBox.Text = tostring(maxStringLength) end) -- Close Buttons for Windows local function addCloseToWindow(win) local cBtn = Instance.new("TextButton") cBtn.Size = UDim2.new(0, 35, 0, 35) cBtn.Position = UDim2.new(1, -40, 0, 5) cBtn.BackgroundTransparency = 1 cBtn.Text = "X" cBtn.Font = Enum.Font.GothamBold cBtn.TextSize = 18 cBtn.TextColor3 = Color3.fromRGB(255, 100, 100) cBtn.ZIndex = 12 cBtn.Parent = win cBtn.MouseButton1Click:Connect(function() win.Visible = false end) end addCloseToWindow(aboutWindow) addCloseToWindow(changelogsWindow) addCloseToWindow(settingsWindow) --// 6. LOGIC & INTERACTIVITY local isMultiply = true local isPaused = false local isResetting = false local currentVal = 1.2 local exponent = 2 local function updateModeText() if isMultiply then modeBtn.Text = "Mode: Multiply (x" .. string.format("%.2f", currentVal) .. ")" else modeBtn.Text = "Mode: Exponent (^" .. string.format("%.2f", currentVal) .. ")" end sliderLabel.Text = "Rate: " .. string.format("%.2f", currentVal) end modeBtn.MouseButton1Click:Connect(function() isMultiply = not isMultiply updateModeText() end) settingsBtn.MouseButton1Click:Connect(function() local vis = settingsWindow.Visible closeAllWindows() settingsWindow.Visible = not vis end) themeBtn.MouseButton1Click:Connect(function() local vis = themeWindow.Visible closeAllWindows() themeWindow.Visible = not vis end) actionButtons["Pause"].MouseButton1Click:Connect(function() isPaused = not isPaused isResetting = false actionButtons["Pause"].Text = isPaused and "Resume" or "Pause" end) actionButtons["Reset"].MouseButton1Click:Connect(function() isResetting = true isPaused = false actionButtons["Pause"].Text = "Pause" end) actionButtons["About"].MouseButton1Click:Connect(function() local vis = aboutWindow.Visible closeAllWindows() aboutWindow.Visible = not vis end) actionButtons["Changelogs"].MouseButton1Click:Connect(function() local vis = changelogsWindow.Visible closeAllWindows() changelogsWindow.Visible = not vis end) local function sendChat(msg) pcall(function() local channel = TextChatService.TextChannels:FindFirstChild("RBXGeneral") if channel then channel:SendAsync(msg) return end end) pcall(function() local events = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if events and events:FindFirstChild("SayMessageRequest") then events.SayMessageRequest:FireServer(msg, "All") end end) end actionButtons["Chat"].MouseButton1Click:Connect(function() if exponent < 3 then return end local idx = math.floor(exponent / 3) if idx > 0 then local suffix = getSuffix(idx) if maxStringLength > 0 and #suffix > maxStringLength then return -- Stop chatting entirely if limit is reached end sendChat("Current Illion: " .. suffix) end end) -- Slider Logic local dragging = false local sliderMin, sliderMax = 1.05, 2.5 local function updateSlider(input) local relX = input.Position.X - sliderTrack.AbsolutePosition.X local percent = math.clamp(relX / sliderTrack.AbsoluteSize.X, 0, 1) currentVal = sliderMin + (sliderMax - sliderMin) * percent currentVal = math.floor(currentVal * 100) / 100 sliderFill.Size = UDim2.new(percent, 0, 1, 0) sliderHandle.Position = UDim2.new(percent, -11, 0.5, -11) updateModeText() end sliderHandle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true end end) sliderTrack.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then updateSlider(input) dragging = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateSlider(input) end end) -- Drag Logic 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 = mainFrame.Position 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 mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) topBar.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragToggle = false end end) -- Minimize Logic local isMinimized = false minBtn.MouseButton1Click:Connect(function() isMinimized = not isMinimized local targetSize = isMinimized and UDim2.new(0, 460, 0, 40) or UDim2.new(0, 460, 0, 280) TweenService:Create(mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {Size = targetSize}):Play() end) -- Close Animation local function closeUI() TweenService:Create(mainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.In), { Size = UDim2.new(0, 0, 0, 0), BackgroundTransparency = 1, Rotation = 45 }):Play() TweenService:Create(stroke, TweenInfo.new(0.5), {Transparency = 1}):Play() TweenService:Create(blur, TweenInfo.new(0.5), {Size = 0}):Play() task.delay(0.6, function() screenGui:Destroy() blur:Destroy() end) end closeBtn.MouseButton1Click:Connect(closeUI) --// 7. MATH LOOP & FORMAT local function formatNumber(exp) if exp >= 1.79e308 then return "∞", 0 end if exp < 3 then return string.format("%.2f", 10^exp), 0 end local mantissa = 10 ^ (exp % 3) local idx = math.floor(exp / 3) local suffix = getSuffix(idx) local text = string.format("%.2f", mantissa) .. (suffix ~= "" and " " .. suffix or "") -- Trim the string display if it exceeds the max length if maxStringLength > 0 and #text > maxStringLength then text = string.sub(text, 1, maxStringLength) .. "..." end return text, idx end RunService.Heartbeat:Connect(function(dt) if not screenGui or not screenGui.Parent then return end if isResetting then exponent = exponent + (2 - exponent) * math.min(1, dt * 8) if math.abs(exponent - 2) < 0.05 then exponent = 2 isResetting = false end elseif not isPaused then if isMultiply then exponent = exponent + math.log10(currentVal) * dt * 10 else exponent = exponent * (1 + (currentVal - 1) * dt * 2) end end local text, idx = formatNumber(exponent) numLabel.Text = text -- Apply 35% darker gradient if it reaches indexes 1,000 and more updateNumGradient(idx >= 1000) end) updateModeText()