local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local LOADSTRING_URL = "https://raw.githubusercontent.com/KieurOo/YohoArsenal/refs/heads/main/Lua.Arsenal" local BUTTON_SIZE = UDim2.new(0, 140, 0, 44) local BUTTON_MARGIN = 12 local PRESS_SCALE = 0.102 local TWEEN_INFO = TweenInfo.new(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local NOTIF_DURATION = 10 local isPC = UserInputService.KeyboardEnabled local isMobile = UserInputService.TouchEnabled and not isPC local function snapshotGuis() local s = {} for _, v in ipairs(playerGui:GetChildren()) do s[v] = true end return s end local function setVisible(inst, visible) if not inst or not inst.Parent then return end if inst:IsA("ScreenGui") then inst.Enabled = visible elseif inst:IsA("GuiObject") then inst.Visible = visible end end local controller = Instance.new("ScreenGui") controller.Name = "ChoppaToggleController" controller.ResetOnSpawn = false controller.Parent = playerGui local btn = Instance.new("TextButton") btn.Name = "ToggleButton" -- moved to middle-left btn.AnchorPoint = Vector2.new(0, 0.10) -- center vertically btn.Position = UDim2.new(0, BUTTON_MARGIN, 0.5, 0) -- far left, vertically centered btn.Size = BUTTON_SIZE btn.BackgroundTransparency = 0 btn.BackgroundColor3 = Color3.fromRGB(50, 50, 55) btn.BorderSizePixel = 0 btn.Text = "" btn.AutoButtonColor = false btn.Parent = controller local corner = Instance.new("UICorner", btn) corner.CornerRadius = UDim.new(0, 50) local gradient = Instance.new("UIGradient", btn) gradient.Rotation = 90 gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(70, 70, 75)), ColorSequenceKeypoint.new(1, Color3.fromRGB(50, 50, 55)) } gradient.Transparency = NumberSequence.new(0) local stroke = Instance.new("UIStroke", btn) stroke.Thickness = 1 stroke.Color = Color3.fromRGB(100, 100, 110) stroke.Transparency = 0.8 local accent = Instance.new("Frame", btn) accent.Name = "Accent" accent.Size = UDim2.new(0, 6, 1, -12) accent.Position = UDim2.new(0, 6, 0, 6) accent.BackgroundColor3 = Color3.fromRGB(150, 110, 255) accent.BorderSizePixel = 0 local aCorner = Instance.new("UICorner", accent) aCorner.CornerRadius = UDim.new(0, 4) local label = Instance.new("TextLabel", btn) label.Name = "Label" label.Size = UDim2.new(1, -24, 1, 0) label.Position = UDim2.new(0, 12, 0, 0) label.BackgroundTransparency = 1 label.Text = "Toggle" label.Font = Enum.Font.GothamBold label.TextSize = 16 label.TextColor3 = Color3.fromRGB(220, 220, 220) label.TextXAlignment = Enum.TextXAlignment.Left local stateDot = Instance.new("Frame", btn) stateDot.Name = "StateDot" stateDot.Size = UDim2.new(0, 12, 0, 12) stateDot.Position = UDim2.new(1, -18, 0.5, -6) stateDot.AnchorPoint = Vector2.new(1, 0.5) stateDot.BackgroundColor3 = Color3.fromRGB(100, 255, 180) stateDot.BorderSizePixel = 0 local dotCorner = Instance.new("UICorner", stateDot) dotCorner.CornerRadius = UDim.new(1, 0) local function animatePress(down) local tweenInfo = TweenInfo.new(0.15, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) if down then TweenService:Create(btn, tweenInfo, { Size = UDim2.new(BUTTON_SIZE.X.Scale, BUTTON_SIZE.X.Offset * PRESS_SCALE, BUTTON_SIZE.Y.Scale, BUTTON_SIZE.Y.Offset * PRESS_SCALE), BackgroundColor3 = Color3.fromRGB(40, 40, 45) }):Play() else TweenService:Create(btn, tweenInfo, { Size = BUTTON_SIZE, BackgroundColor3 = Color3.fromRGB(50, 50, 55) }):Play() end end btn.MouseButton1Down:Connect(function() animatePress(true) end) btn.MouseButton1Up:Connect(function() animatePress(false) end) local pre = snapshotGuis() local managed = {} local ok, err = pcall(function() local s = game:HttpGet(LOADSTRING_URL) local f = loadstring(s) if type(f) == "function" then f() end end) wait(0.45) for _, v in ipairs(playerGui:GetChildren()) do if not pre[v] then if v:IsA("ScreenGui") or v:IsA("Folder") or v:IsA("Frame") or v:IsA("ScreenGui") then table.insert(managed, v) end end end if #managed == 0 then for _, v in ipairs(playerGui:GetChildren()) do if v:IsA("ScreenGui") and string.find(string.lower(v.Name), "arsenal") then table.insert(managed, v) end end end local hidden = false local function updateButtonText() if hidden then label.Text = "Untoggle" stateDot.BackgroundColor3 = Color3.fromRGB(255, 140, 140) else label.Text = "Toggle" stateDot.BackgroundColor3 = Color3.fromRGB(100, 255, 180) end end updateButtonText() local function toggleManaged() hidden = not hidden for _, gui in ipairs(managed) do if gui and gui.Parent then if gui:IsA("ScreenGui") then gui.Enabled = not hidden elseif gui:IsA("GuiObject") then gui.Visible = not hidden end end end updateButtonText() animatePress(true) wait(0.08) animatePress(false) end btn.MouseButton1Click:Connect(function() btn.Active = false toggleManaged() wait(0.2) btn.Active = true end) if isPC then UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.K then toggleManaged() end end) end btn.MouseButton2Click:Connect(function() for _, v in ipairs(playerGui:GetChildren()) do local already = false for _, m in ipairs(managed) do if m == v then already = true break end end if not already and (v:IsA("ScreenGui") or v:IsA("Folder") or v:IsA("Frame")) then table.insert(managed, v) end end local original = btn.BackgroundColor3 TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(70, 70, 75)}):Play() wait(0.12) btn.BackgroundColor3 = original end) local notif = Instance.new("Frame") notif.Name = "ToggleNotification" notif.Size = UDim2.new(0, 250, 0, 60) notif.Position = UDim2.new(1, -12, 1, -12) notif.AnchorPoint = Vector2.new(1, 1) notif.BackgroundColor3 = Color3.fromRGB(30, 30, 35) notif.BorderSizePixel = 0 notif.Parent = controller local notifCorner = Instance.new("UICorner", notif) notifCorner.CornerRadius = UDim.new(0, 8) local notifStroke = Instance.new("UIStroke", notif) notifStroke.Thickness = 1 notifStroke.Color = Color3.fromRGB(80, 80, 90) notifStroke.Transparency = 0.7 local notifText = Instance.new("TextLabel", notif) notifText.Size = UDim2.new(1, -10, 1, -10) notifText.Position = UDim2.new(0, 5, 0, 5) notifText.BackgroundTransparency = 1 notifText.TextSize = 14 notifText.Font = Enum.Font.Gotham notifText.TextColor3 = Color3.fromRGB(200, 200, 200) notifText.TextWrapped = true notifText.Text = isPC and "Press K to toggle and untoggle" or "Press the button on the left center to toggle and untoggle" -- Loading bar for disappearance local bar = Instance.new("Frame", notif) bar.Size = UDim2.new(1, 0, 0, 3) bar.Position = UDim2.new(0, 0, 1, 0) bar.AnchorPoint = Vector2.new(0, 1) bar.BackgroundColor3 = Color3.fromRGB(50, 50, 60) bar.BorderSizePixel = 0 local fill = Instance.new("Frame", bar) fill.Size = UDim2.new(1, 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(120, 80, 255) local fillCorner = Instance.new("UICorner", fill) fillCorner.CornerRadius = UDim.new(0, 2) notif.BackgroundTransparency = 1 TweenService:Create(notif, TweenInfo.new(0.3), {BackgroundTransparency = 0}):Play() local barTween = TweenService:Create(fill, TweenInfo.new(NOTIF_DURATION, Enum.EasingStyle.Linear), {Size = UDim2.new(0, 0, 1, 0)}) barTween:Play() barTween.Completed:Connect(function() TweenService:Create(notif, TweenInfo.new(0.3), {BackgroundTransparency = 1}):Play() wait(0.3) notif:Destroy() end) if not ok then label.Text = "Toggle (load failed)" stateDot.BackgroundColor3 = Color3.fromRGB(255, 120, 120) warn("Choppa Toggle: loadstring failed:", err) end