rage script
Key Required

rage script

[🧤] Defusalsmertni*qqsmertni*qq 396 views 274 executesUpdated Oct 3, 2026
Unrated
00
Lua Script•1516 lines (74747 chars)
-- // skeet-ui v4.2 BUNDLE | gallery rewritten bulletproof + exposed opener
if not game:IsLoaded() then game.Loaded:Wait() end
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local STATE_API = nil
pcall(function() STATE_API = STATE end)
local MenuCfg = {Key = Enum.KeyCode.RightShift}
local FV = {Enabled = false, Value = 90}
local function safecb(cb, ...)
    if not cb then return end
    local ok, err = pcall(cb, ...)
    if not ok then warn("[skeet] " .. tostring(err)) end
end
local function Tween(obj, props, t, style, dir)
    pcall(function()
        TweenService:Create(obj, TweenInfo.new(t or 0.18, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props):Play()
    end)
end
local ACCENT_DEFAULT = Color3.fromRGB(146, 180, 255)
local THEME = {
    Main = Color3.fromRGB(16, 16, 19),
    Side = Color3.fromRGB(21, 21, 25),
    Group = Color3.fromRGB(25, 25, 30),
    Element = Color3.fromRGB(30, 30, 36),
    Border = Color3.fromRGB(48, 48, 55),
    BorderDark = Color3.fromRGB(10, 10, 12),
    Text = Color3.fromRGB(225, 225, 225),
    DarkText = Color3.fromRGB(135, 135, 145),
}
local function New(class, props)
    local o = Instance.new(class)
    for k,v in pairs(props) do if k ~= "Parent" then pcall(function() o[k] = v end) end end
    o.Parent = props.Parent
    return o
end
local function Corner(p, r) return New("UICorner", {CornerRadius = UDim.new(0, r or 4), Parent = p}) end
local function Stroke(p, c, t) return New("UIStroke", {Color = c or THEME.Border, Thickness = t or 1, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Parent = p}) end
local function Pad(p, l,t,r,b) return New("UIPadding", {PaddingLeft = UDim.new(0,l or 8), PaddingTop = UDim.new(0,t or 6), PaddingRight = UDim.new(0,r or 8), PaddingBottom = UDim.new(0,b or 6), Parent = p}) end
local function Connect(sig, fn)
    if STATE_API and STATE_API.connect then return STATE_API.connect(sig, fn) else return sig:Connect(fn) end
end
pcall(function()
    local pg = game:GetService("CoreGui")
    local gh = nil if gethui then gh = gethui() end
    if gh then local o = gh:FindFirstChild("SkeetUI") if o then o:Destroy() end end
    local o2 = pg:FindFirstChild("SkeetUI") if o2 then o2:Destroy() end
    local rg = nil pcall(function() rg = game:GetService("CoreGui").RobloxGui end)
    if rg then local o3 = rg:FindFirstChild("SkeetUI") if o3 then o3:Destroy() end end
end)
local Library = {}
Library.Accent = ACCENT_DEFAULT
function Library:Create(title, accent)
    if accent then self.Accent = accent end
    local ACCENT = self.Accent
    local parentGui = game:GetService("CoreGui")
    pcall(function() local gh = nil if gethui then gh = gethui() end if gh then parentGui = gh end end)
    pcall(function() local old = parentGui:FindFirstChild("SkeetUI") if old then old:Destroy() end end)
    local Gui = New("ScreenGui", {Name = "SkeetUI", ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, Parent = parentGui})
    pcall(function() if protectgui then protectgui(Gui) end end)
    if STATE_API and STATE_API.onCleanup then STATE_API.onCleanup(function() pcall(function() Gui:Destroy() end) end) end
    local Main = New("Frame", {Name = "Main", Size = UDim2.new(0, 620, 0, 450), Position = UDim2.new(0.5, -310, 0.5, -225), BackgroundColor3 = THEME.Main, BorderSizePixel = 0, Active = false, Parent = Gui})
    Corner(Main, 6) Stroke(Main, THEME.BorderDark, 1)
    local UIScale = New("UIScale", {Scale = 0.96, Parent = Main})
    Tween(UIScale, {Scale = 1}, 0.25, Enum.EasingStyle.Quint)
    New("Frame", {Name = "AccentTop", Size = UDim2.new(1,0,0,2), BackgroundColor3 = ACCENT, BorderSizePixel = 0, Parent = Main})
    local TopBar = New("Frame", {Name = "TopBar", Size = UDim2.new(1,0,0,38), BackgroundTransparency = 1, Active = true, Parent = Main})
    Pad(TopBar, 12, 0, 12, 0)
    New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,-60,1,0), Font = Enum.Font.GothamBold, TextSize = 14, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = title or "primordial | lua", Parent = TopBar})
    local subTxt = "v4.2 galrewrite" pcall(function() subTxt = "v4.2 | " .. LocalPlayer.DisplayName end)
    New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,-60,1,0), Position = UDim2.new(0,0,0,14), Font = Enum.Font.Gotham, TextSize = 11, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.DarkText, Text = subTxt, Parent = TopBar})
    local Body = New("Frame", {Position = UDim2.new(0,0,0,40), Size = UDim2.new(1,0,1,-40), BackgroundTransparency = 1, Parent = Main})
    local Side = New("Frame", {Size = UDim2.new(0,150,1,-12), Position = UDim2.new(0,6,0,6), BackgroundColor3 = THEME.Side, BorderSizePixel = 0, Parent = Body})
    Corner(Side, 4) Stroke(Side, THEME.Border, 1)
    New("UIListLayout", {Padding = UDim.new(0,4), SortOrder = Enum.SortOrder.LayoutOrder, Parent = Side}) Pad(Side, 8, 8, 8, 8)
    local ContentArea = New("Frame", {Size = UDim2.new(1,-168,1,-12), Position = UDim2.new(0,162,0,6), BackgroundTransparency = 1, ClipsDescendants = true, Parent = Body})
    do
        local drag, startPos, startInput = false, nil, nil
        Connect(TopBar.InputBegan, function(i)
            if i.UserInputType == Enum.UserInputType.MouseButton1 then drag = true startPos = Main.Position startInput = i.Position
                Connect(i.Changed, function() if i.UserInputState == Enum.UserInputState.End then drag = false end end)
            end
        end)
        Connect(UIS.InputChanged, function(i)
            if drag and i.UserInputType == Enum.UserInputType.MouseMovement then
                local d = i.Position - startInput
                Main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
            end
        end)
    end
    Connect(UIS.InputBegan, function(i,g) if not g and i.KeyCode == MenuCfg.Key then Main.Visible = not Main.Visible end end)
    local Window = {} Window.Gui = Gui Window.Main = Main Window.GuiRoot = parentGui
    local tabs = {} local first = true
    local function animatePage(leftCol, rightCol)
        ContentArea.Position = UDim2.new(0,162,0,14)
        Tween(ContentArea, {Position = UDim2.new(0,162,0,6)}, 0.22, Enum.EasingStyle.Quad)
        for _,col in pairs({leftCol, rightCol}) do
            for _,box in pairs(col:GetChildren()) do
                if box:IsA("Frame") then
                    box.BackgroundTransparency = 0.7
                    Tween(box, {BackgroundTransparency = 0}, 0.25, Enum.EasingStyle.Quad)
                end
            end
        end
    end
    function Window:Tab(name)
        local btn = New("TextButton", {Size = UDim2.new(1,0,0,32), BackgroundColor3 = Color3.fromRGB(25,25,30), Font = Enum.Font.GothamBold, TextSize = 12, TextColor3 = THEME.DarkText, Text = "  " .. name, TextXAlignment = Enum.TextXAlignment.Left, AutoButtonColor = false, ClipsDescendants = true, Parent = Side})
        Corner(btn, 4) Stroke(btn, THEME.Border, 1)
        local leftLine = New("Frame", {Size = UDim2.new(0,0,1,-8), Position = UDim2.new(0,0,0,4), BackgroundColor3 = ACCENT, Visible = false, BorderSizePixel = 0, Parent = btn})
        Connect(btn.MouseEnter, function() if not leftLine.Visible then Tween(btn, {BackgroundColor3 = Color3.fromRGB(30,30,36)}, 0.12) end end)
        Connect(btn.MouseLeave, function() if not leftLine.Visible then Tween(btn, {BackgroundColor3 = Color3.fromRGB(25,25,30)}, 0.12) end end)
        local page = New("ScrollingFrame", {Size = UDim2.new(1,0,1,0), BackgroundTransparency = 1, Visible = false, ScrollBarThickness = 2, ScrollBarImageColor3 = ACCENT, AutomaticCanvasSize = Enum.AutomaticSize.Y, CanvasSize = UDim2.new(0,0,0,0), ScrollingDirection = Enum.ScrollingDirection.Y, Parent = ContentArea})
        New("UIListLayout", {FillDirection = Enum.FillDirection.Horizontal, Padding = UDim.new(0,8), SortOrder = Enum.SortOrder.LayoutOrder, Parent = page})
        local leftCol = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(0.5,-4,0,0), AutomaticSize = Enum.AutomaticSize.Y, Parent = page})
        New("UIListLayout", {Padding = UDim.new(0,8), SortOrder = Enum.SortOrder.LayoutOrder, Parent = leftCol})
        local rightCol = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(0.5,-4,0,0), AutomaticSize = Enum.AutomaticSize.Y, Parent = page})
        New("UIListLayout", {Padding = UDim.new(0,8), SortOrder = Enum.SortOrder.LayoutOrder, Parent = rightCol})
        local function select(noAnim)
            for _,t in pairs(tabs) do
                t.page.Visible = false
                Tween(t.btn, {BackgroundColor3 = Color3.fromRGB(25,25,30), TextColor3 = THEME.DarkText}, 0.15)
                t.line.Visible = false
                Tween(t.line, {Size = UDim2.new(0,0,1,-8)}, 0.15)
            end
            page.Visible = true
            Tween(btn, {BackgroundColor3 = Color3.fromRGB(32,32,38), TextColor3 = THEME.Text}, 0.15)
            leftLine.Visible = true
            Tween(leftLine, {Size = UDim2.new(0,2,1,-8)}, 0.18, Enum.EasingStyle.Back)
            if not noAnim then animatePage(leftCol, rightCol) end
        end
        Connect(btn.MouseButton1Click, function() select(false) end)
        table.insert(tabs, {btn = btn, page = page, line = leftLine})
        if first then first = false select(true) task.spawn(function() task.wait(0.05) animatePage(leftCol, rightCol) end) end
        local Tab = {}
        function Tab:Groupbox(gname, side)
            local holder = (side == "right") and rightCol or leftCol
            local box = New("Frame", {BackgroundColor3 = THEME.Group, Size = UDim2.new(1,0,0,0), AutomaticSize = Enum.AutomaticSize.Y, ClipsDescendants = true, Parent = holder})
            Corner(box, 4) Stroke(box, THEME.Border, 1)
            New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,-16,0,22), Position = UDim2.new(0,8,0,4), Font = Enum.Font.GothamBold, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = gname, Parent = box})
            New("Frame", {Size = UDim2.new(1,-16,0,1), Position = UDim2.new(0,8,0,26), BackgroundColor3 = THEME.Border, BorderSizePixel = 0, Parent = box})
            local cont = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,0), Position = UDim2.new(0,0,0,28), AutomaticSize = Enum.AutomaticSize.Y, Parent = box})
            New("UIListLayout", {Padding = UDim.new(0,6), SortOrder = Enum.SortOrder.LayoutOrder, Parent = cont}) Pad(cont, 8, 6, 8, 8)
            local G = {}
            function G:Label(txt)
                local l = New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,16), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.DarkText, Text = txt, Parent = cont})
                return {Set = function(_, t) l.Text = t end}
            end
            function G:Toggle(name, def, cb)
                local v = def or false
                local row = New("TextButton", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,20), Text = "", AutoButtonColor = false, Parent = cont})
                local boxF = New("Frame", {Size = UDim2.new(0,14,0,14), Position = UDim2.new(0,0,0,3), BackgroundColor3 = THEME.Element, Parent = row})
                Corner(boxF, 3) Stroke(boxF, THEME.Border, 1)
                local fill = New("Frame", {Size = UDim2.new(1,-4,1,-4), Position = UDim2.new(0,2,0,2), BackgroundColor3 = ACCENT, Visible = v, BorderSizePixel = 0, Parent = boxF}) Corner(fill, 2)
                New("TextLabel", {BackgroundTransparency = 1, Position = UDim2.new(0,22,0,0), Size = UDim2.new(1,-22,1,0), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = name, Parent = row})
                Connect(row.MouseButton1Click, function()
                    v = not v
                    if v then fill.Visible = true fill.BackgroundTransparency = 1 Tween(fill, {BackgroundTransparency = 0}, 0.15)
                    else Tween(fill, {BackgroundTransparency = 1}, 0.12) task.spawn(function() task.wait(0.12) if not v then fill.Visible = false end end) end
                    safecb(cb, v)
                end)
                if cb and v then safecb(cb, v) end
                return {Set = function(_, nv) v = nv fill.Visible = nv end}
            end
            function G:Slider(name, min, max, def, cb)
                min, max = min or 0, max or 100 local v = def or min
                local f = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,38), Parent = cont})
                New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(0.7,0,0,16), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = name, Parent = f})
                local valL = New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(0.3,0,0,16), Position = UDim2.new(0.7,0,0,0), Font = Enum.Font.Code, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Right, TextColor3 = THEME.DarkText, Text = tostring(v), Parent = f})
                local bar = New("TextButton", {Size = UDim2.new(1,0,0,6), Position = UDim2.new(0,0,0,24), BackgroundColor3 = THEME.Element, Text = "", AutoButtonColor = false, Parent = f})
                Corner(bar, 3) Stroke(bar, THEME.Border, 1)
                local fillB = New("Frame", {Size = UDim2.new(0,0,1,0), BackgroundColor3 = ACCENT, BorderSizePixel = 0, Parent = bar}) Corner(fillB, 3)
                local function upd(nv, instant)
                    v = math.clamp(math.floor(nv), min, max) valL.Text = tostring(v)
                    local target = UDim2.new((v-min)/math.max(1,(max-min)),0,1,0)
                    if instant then fillB.Size = target else Tween(fillB, {Size = target}, 0.08) end
                    safecb(cb, v)
                end
                upd(v, true) local down = false
                Connect(bar.MouseButton1Down, function() down = true end)
                Connect(UIS.InputEnded, function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then down = false end end)
                Connect(UIS.InputChanged, function(i) if down and i.UserInputType == Enum.UserInputType.MouseMovement then local p = math.clamp((i.Position.X - bar.AbsolutePosition.X) / math.max(1, bar.AbsoluteSize.X), 0, 1) upd(min + (max-min)*p, true) end end)
            end
            function G:Dropdown(name, list, def, cb)
                local cur = def or list[1]
                local f = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,32), AutomaticSize = Enum.AutomaticSize.Y, Parent = cont})
                New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,16), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = name, Parent = f})
                local btn2 = New("TextButton", {Size = UDim2.new(1,0,0,24), Position = UDim2.new(0,0,0,18), BackgroundColor3 = THEME.Element, Font = Enum.Font.Gotham, TextSize = 12, TextColor3 = THEME.Text, Text = "  "..tostring(cur).."  ▼", TextXAlignment = Enum.TextXAlignment.Left, AutoButtonColor = false, ClipsDescendants = true, Parent = f})
                Corner(btn2, 4) Stroke(btn2, THEME.Border, 1)
                Connect(btn2.MouseEnter, function() Tween(btn2, {BackgroundColor3 = Color3.fromRGB(36,36,42)}, 0.12) end)
                Connect(btn2.MouseLeave, function() Tween(btn2, {BackgroundColor3 = THEME.Element}, 0.12) end)
                local open = false local listF = nil
                Connect(btn2.MouseButton1Click, function()
                    open = not open
                    if listF then pcall(function() listF:Destroy() end) listF = nil end
                    if open then
                        listF = New("Frame", {Size = UDim2.new(1,0,0,0), Position = UDim2.new(0,0,0,44), BackgroundColor3 = Color3.fromRGB(20,20,24), ClipsDescendants = true, Parent = f})
                        Corner(listF, 4) Stroke(listF, THEME.Border, 1) Pad(listF, 3, 3, 3, 3) New("UIListLayout", {Padding = UDim.new(0,2), Parent = listF})
                        for _,opt in ipairs(list) do
                            local ob = New("TextButton", {Size = UDim2.new(1,0,0,20), BackgroundColor3 = THEME.Element, Font = Enum.Font.Gotham, TextSize = 12, TextColor3 = THEME.Text, Text = opt, AutoButtonColor = false, Parent = listF}) Corner(ob, 3)
                            Connect(ob.MouseButton1Click, function() cur = opt btn2.Text = "  "..tostring(cur).."  ▼" if listF then pcall(function() listF:Destroy() end) listF = nil end open = false safecb(cb, cur) end)
                        end
                        Tween(listF, {Size = UDim2.new(1,0,0,#list*22+6)}, 0.18, Enum.EasingStyle.Quint)
                    end
                end)
                if cb and cur then safecb(cb, cur) end
                return {SetList = function(_, nl, nd)
                    if type(nl) ~= "table" or #nl == 0 then return end
                    list = nl
                    cur = nd or nl[1]
                    btn2.Text = "  " .. tostring(cur) .. "  ▼"
                    if listF then pcall(function() listF:Destroy() end) listF = nil end
                    open = false
                end, Get = function() return cur end}
            end
            function G:Colorpicker(name, def, cb)
                local c = def or ACCENT
                local row = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,20), Parent = cont})
                New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,-30,1,0), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = name, Parent = row})
                local prev = New("TextButton", {Size = UDim2.new(0,22,0,14), Position = UDim2.new(1,-22,0,3), BackgroundColor3 = c, Text = "", AutoButtonColor = false, Parent = row})
                Corner(prev, 3) Stroke(prev, THEME.Border, 1)
                local opened = false local pick = nil
                Connect(prev.MouseButton1Click, function()
                    opened = not opened
                    if pick then pcall(function() pick:Destroy() end) pick = nil end
                    if opened then
                        pick = New("Frame", {Size = UDim2.new(1,0,0,0), BackgroundColor3 = Color3.fromRGB(20,20,24), ClipsDescendants = true, Parent = cont})
                        Corner(pick, 4) Stroke(pick, THEME.Border, 1) Pad(pick, 8, 8, 8, 8)
                        Tween(pick, {Size = UDim2.new(1,0,0,86)}, 0.18, Enum.EasingStyle.Quint)
                        local r = math.floor(c.R*255) local g = math.floor(c.G*255) local b = math.floor(c.B*255)
                        local function apply() c = Color3.fromRGB(r,g,b) Tween(prev, {BackgroundColor3 = c}, 0.12) safecb(cb, c) end
                        local function mkRGB(txt, val, fn)
                            local rr = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,20), Parent = pick})
                            New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(0,14,1,0), Font = Enum.Font.GothamBold, TextSize = 12, TextColor3 = THEME.DarkText, Text = txt, Parent = rr})
                            local tb = New("TextBox", {Size = UDim2.new(1,-20,1,0), Position = UDim2.new(0,18,0,0), BackgroundColor3 = THEME.Element, Font = Enum.Font.Code, TextSize = 12, TextColor3 = THEME.Text, Text = tostring(val), Parent = rr})
                            Corner(tb, 3) Stroke(tb, THEME.Border, 1)
                            Connect(tb.FocusLost, function(ep) if ep then local n = math.clamp(tonumber(tb.Text) or 0, 0, 255) tb.Text = tostring(n) fn(n) end end)
                        end
                        mkRGB("R", r, function(n) r=n apply() end) mkRGB("G", g, function(n) g=n apply() end) mkRGB("B", b, function(n) b=n apply() end)
                    end
                end)
                safecb(cb, c)
            end
            function G:Button(name, cb2)
                local b2 = New("TextButton", {Size = UDim2.new(1,0,0,26), BackgroundColor3 = THEME.Element, Font = Enum.Font.GothamBold, TextSize = 12, TextColor3 = THEME.Text, Text = name, AutoButtonColor = false, Parent = cont})
                Corner(b2, 4) Stroke(b2, THEME.Border, 1)
                Connect(b2.MouseEnter, function() Tween(b2, {BackgroundColor3 = Color3.fromRGB(38,38,45)}, 0.12) end)
                Connect(b2.MouseLeave, function() Tween(b2, {BackgroundColor3 = THEME.Element}, 0.12) end)
                Connect(b2.MouseButton1Click, function() safecb(cb2) end)
            end
            function G:Textbox(name, holder, cb3)
                New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,16), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = name, Parent = cont})
                local tb = New("TextBox", {Size = UDim2.new(1,0,0,24), BackgroundColor3 = THEME.Element, Font = Enum.Font.Gotham, TextSize = 12, TextColor3 = THEME.Text, PlaceholderText = holder or "...", PlaceholderColor3 = THEME.DarkText, Text = "", ClearTextOnFocus = false, Parent = cont})
                Corner(tb, 4) Stroke(tb, THEME.Border, 1) Pad(tb, 6, 0, 0, 0)
                Connect(tb.FocusLost, function(ep) if ep and cb3 then safecb(cb3, tb.Text) end end)
            end
            function G:Keybind(name, def, cb4)
                local key = def or Enum.KeyCode.F
                local row2 = New("Frame", {BackgroundTransparency = 1, Size = UDim2.new(1,0,0,20), Parent = cont})
                New("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1,-60,1,0), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = name, Parent = row2})
                local kb = New("TextButton", {Size = UDim2.new(0,54,0,20), Position = UDim2.new(1,-54,0,0), BackgroundColor3 = THEME.Element, Font = Enum.Font.Code, TextSize = 11, TextColor3 = THEME.Text, Text = key.Name, AutoButtonColor = false, Parent = row2})
                Corner(kb, 4) Stroke(kb, THEME.Border, 1)
                local waiting = false
                Connect(kb.MouseButton1Click, function() waiting = true kb.Text = "..." end)
                Connect(UIS.InputBegan, function(i,g) if waiting and not g then waiting = false key = i.KeyCode kb.Text = key.Name return end if not waiting and not g and i.KeyCode == key and cb4 then safecb(cb4, key) end end)
            end
            return G
        end
        return Tab
    end
    return Window
end
local TP = {Enabled = false, Distance = 12, lastToggle = 0, parts = {}}
local function tpGetHum()
    local c = LocalPlayer.Character
    return c and c:FindFirstChildOfClass("Humanoid") or nil
end
local function tpAlive()
    return LocalPlayer:GetAttribute("Alive") == true
end
local function tpHideOne(d)
    pcall(function()
        if d:IsA("BasePart") then
            if d:GetAttribute("TPO") == nil then d:SetAttribute("TPO", d.Transparency) end
            d.Transparency = 1
        elseif d:IsA("Decal") or d:IsA("Texture") then
            if d:GetAttribute("TPO") == nil then d:SetAttribute("TPO", d.Transparency) end
            d.Transparency = 1
        elseif d:IsA("ParticleEmitter") or d:IsA("Beam") or d:IsA("Trail") then
            if d:GetAttribute("TPOE") == nil then d:SetAttribute("TPOE", d.Enabled) end
            d.Enabled = false
        end
    end)
end
local function tpShowOne(d)
    pcall(function()
        if d:IsA("BasePart") or d:IsA("Decal") or d:IsA("Texture") then
            local o = d:GetAttribute("TPO")
            if o ~= nil then d.Transparency = o d:SetAttribute("TPO", nil) end
        elseif d:IsA("ParticleEmitter") or d:IsA("Beam") or d:IsA("Trail") then
            local o = d:GetAttribute("TPOE")
            if o ~= nil then d.Enabled = o d:SetAttribute("TPOE", nil) end
        end
    end)
end
local function tpHideModel(m)
    if not m then return end
    for _,d in ipairs(m:GetDescendants()) do tpHideOne(d) end
    if not m:GetAttribute("TPWatch") then
        m:SetAttribute("TPWatch", true)
        Connect(m.DescendantAdded, function(d) if TP.Enabled then tpHideOne(d) end end)
    end
end
local function tpShowModel(m)
    if not m then return end
    for _,d in ipairs(m:GetDescendants()) do tpShowOne(d) end
end
local function tpArms()
    local cam = workspace.CurrentCamera
    return cam and cam:FindFirstChild("Arms") or nil
end
local function tpCacheParts()
    TP.parts = {}
    pcall(function()
        local c = LocalPlayer.Character
        if c then
            for _,d in ipairs(c:GetDescendants()) do
                if d:IsA("BasePart") or d:IsA("Decal") or d:IsA("Texture") then
                    table.insert(TP.parts, d)
                end
            end
        end
    end)
end
task.spawn(function()
    local cam = workspace.CurrentCamera
    local waited = 0
    while not cam and waited < 30 do
        task.wait(1)
        waited = waited + 1
        cam = workspace.CurrentCamera
    end
    if cam then
        Connect(cam.ChildAdded, function(ch)
            if TP.Enabled and ch.Name == "Arms" then
                task.defer(function() if TP.Enabled then tpHideModel(ch) end end)
            end
        end)
    end
end)
local function tpEnable()
    local a = tpArms()
    if a then tpHideModel(a) end
    tpCacheParts()
end
local function tpDisable()
    tpShowModel(tpArms())
end
Connect(RunService.RenderStepped, function()
    if not TP.Enabled then return end
    if not tpAlive() then return end
    local cam = workspace.CurrentCamera
    if not cam or cam.CameraType ~= Enum.CameraType.Custom then return end
    local c = LocalPlayer.Character
    local head = c and c:FindFirstChild("Head")
    if not head then return end
    pcall(function()
        for _,d in ipairs(TP.parts) do
            d.LocalTransparencyModifier = 0
        end
    end)
    pcall(function()
        local look = cam.CFrame.LookVector
        cam.CFrame = CFrame.new(head.Position - look * TP.Distance + Vector3.new(0, 1, 0), head.Position + look * 20)
    end)
end)
Connect(LocalPlayer.CharacterAdded, function()
    task.wait(0.4)
    tpCacheParts()
    if TP.Enabled then tpEnable() end
end)
local GG = (getgenv and getgenv()) or {}
if GG.SkeetRage then GG.SkeetRage.Enabled = false end
if GG.SkeetRage2 then GG.SkeetRage2.Enabled = false end
GG.SkeetMagic = GG.SkeetMagic or {Enabled = false, Hitbox = "Head", Range = 300, Wallbang = false}
GG.SkeetMagicTarget = nil
local MG = GG.SkeetMagic
local GB_Variables, GB_Ambassador = nil, nil
pcall(function()
    local RF = game:GetService("ReplicatedFirst")
    GB_Variables = require(RF.Variables)
    GB_Ambassador = require(RF.Ambassador)
end)
local visRay = RaycastParams.new()
visRay.FilterType = Enum.RaycastFilterType.Exclude
visRay.IgnoreWater = true
local function aimPartOf(char, sel)
    if not char then return nil end
    if sel == "Head" then return char:FindFirstChild("Head") end
    if sel == "Chest" then return char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") or char:FindFirstChild("HumanoidRootPart") end
    if sel == "Pelvis" then return char:FindFirstChild("LowerTorso") or char:FindFirstChild("HumanoidRootPart") end
    if sel == "Legs" then return char:FindFirstChild("RightLowerLeg") or char:FindFirstChild("LeftLowerLeg") or char:FindFirstChild("Right Leg") or char:FindFirstChild("HumanoidRootPart") end
    return char:FindFirstChild("Head")
end
local autoFiring = false
local function rageFire(on)
    if on == autoFiring then return end
    autoFiring = on
    pcall(function()
        local RF = game:GetService("ReplicatedFirst")
        local V = GB_Variables or require(RF.Variables)
        local AB = GB_Ambassador or require(RF.Ambassador)
        V.mouse1 = on
        AB.Fire("CheckMouse1", on)
    end)
end
local function rageForce()
    autoFiring = true
    pcall(function()
        local RF = game:GetService("ReplicatedFirst")
        local V = GB_Variables or require(RF.Variables)
        local AB = GB_Ambassador or require(RF.Ambassador)
        V.mouse1 = true
        AB.Fire("CheckMouse1", true)
    end)
end
local W = workspace
if not GG.SkeetMagicOn then
    GG.SkeetMagicOn = true
    local GHC = getgenv()
    GG.SkeetMagicOrig = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
        local method = getnamecallmethod()
        if method == "Raycast" and self == W and not checkcaller() then
            local st = GHC.SkeetMagic
            if st and st.Enabled then
                local tgt = GHC.SkeetMagicTarget
                if tgt ~= nil then
                    local okP = pcall(function() return tgt.Parent end)
                    if okP and tgt.Parent ~= nil then
                        local args = {...}
                        local org, dir = args[1], args[2]
                        if typeof(org) == "Vector3" and typeof(dir) == "Vector3" and dir.Magnitude > 25 then
                            return {
                                Instance = tgt,
                                Position = tgt.Position,
                                Material = Enum.Material.SmoothPlastic,
                                Normal = Vector3.new(0, 1, 0),
                            }
                        end
                    end
                end
            end
        end
        return GG.SkeetMagicOrig(self, ...)
    end))
end
local rageHalf = false
local semiCache = {}
local function isSemiGun()
    local V = GB_Variables
    local w = V and V.LastWeapon
    if type(w) ~= "string" or w == "" then
        local c = LocalPlayer.Character
        w = c and c:GetAttribute("WhatGun")
    end
    if type(w) ~= "string" or w == "" then return false end
    if semiCache[w] == nil then
        local ok, ww = pcall(function() return game.ReplicatedStorage.Weapons:FindFirstChild(w) end)
        local a = ok and ww and ww:GetAttribute("Auto")
        semiCache[w] = (a ~= true)
    end
    return semiCache[w]
end
Connect(RunService.RenderStepped, function()
    rageHalf = not rageHalf
    if not rageHalf then return end
    if not MG.Enabled then
        if autoFiring then rageFire(false) end
        GG.SkeetMagicTarget = nil
        return
    end
    if not tpAlive() then
        if autoFiring then rageFire(false) end
        GG.SkeetMagicTarget = nil
        return
    end
    if GB_Variables and GB_Variables.freemouse then
        if autoFiring then rageFire(false) end
        GG.SkeetMagicTarget = nil
        return
    end
    local cam = workspace.CurrentCamera
    if not cam or cam.CameraType ~= Enum.CameraType.Custom then
        if autoFiring then rageFire(false) end
        GG.SkeetMagicTarget = nil
        return
    end
    local origin = cam.CFrame.Position
    local myTeam = LocalPlayer:GetAttribute("Team")
    local cands = {}
    for _,plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer then
            local tm = plr:GetAttribute("Team")
            if tm and tm ~= "Spectator" and tm ~= myTeam then
                local c = plr.Character
                local hp = plr:GetAttribute("Health")
                if hp == nil then local h = c and c:FindFirstChildOfClass("Humanoid") hp = h and h.Health or 0 end
                if c and hp > 0 then
                    local part = aimPartOf(c, MG.Hitbox)
                    if part then
                        local d = (part.Position - origin).Magnitude
                        if d <= MG.Range then
                            table.insert(cands, {part = part, char = c, dist = d})
                        end
                    end
                end
            end
        end
    end
    local best = nil
    if MG.Wallbang then
        local bd = math.huge
        for _,t in ipairs(cands) do
            if t.dist < bd then bd = t.dist best = t.part end
        end
    else
        table.sort(cands, function(a, b) return a.dist < b.dist end)
        local checked = 0
        for _,t in ipairs(cands) do
            if checked >= 3 then break end
            checked = checked + 1
            visRay.FilterDescendantsInstances = {LocalPlayer.Character, cam}
            local hit = workspace:Raycast(origin, t.part.Position - origin, visRay)
            if (not hit) or hit.Instance:IsDescendantOf(t.char) then
                best = t.part
                break
            end
        end
    end
    GG.SkeetMagicTarget = best
    if best then
        if isSemiGun() then rageForce() else rageFire(true) end
    else
        rageFire(false)
    end
end)
local AA = {Enabled = false, Mode = "Spin", Speed = 1080, JAngle = 30}
local jitT, jitDir, swayPh, rndT, crouchT, crouchOn = 0, 1, 0, 0, 0, false
local crookYaw = 0
Connect(RunService.Heartbeat, function(dt)
    if not AA.Enabled then jitT, jitDir, swayPh, rndT, crouchT = 0, 1, 0, 0, 0 return end
    if not tpAlive() then return end
    local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
    if not hrp then return end
    local step = dt or 0.016
    if AA.Mode == "Spin" then
        pcall(function()
            hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(AA.Speed) * step, 0)
        end)
    elseif AA.Mode == "Jitter" then
        jitT = jitT + step
        if jitT >= 0.09 then jitT = 0 jitDir = -jitDir end
        pcall(function()
            hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(AA.JAngle) * jitDir, 0)
        end)
    elseif AA.Mode == "Sway" then
        local prev = math.sin(swayPh)
        swayPh = swayPh + step * math.pi * 2 * 1.2
        local delta = (math.sin(swayPh) - prev) * math.rad(AA.JAngle)
        pcall(function()
            hrp.CFrame = hrp.CFrame * CFrame.Angles(0, delta, 0)
        end)
    elseif AA.Mode == "Random" then
        rndT = rndT - step
        if rndT <= 0 then
            rndT = 0.08 + math.random() * 0.12
            local snap = (math.random() * 2 - 1) * AA.JAngle
            pcall(function()
                hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(snap), 0)
            end)
        end
    elseif AA.Mode == "Flip" or AA.Mode == "Crooked" then
        local roll = math.pi
        local yaw = math.atan2(-hrp.CFrame.LookVector.X, -hrp.CFrame.LookVector.Z)
        if AA.Mode == "Crooked" then
            roll = math.pi / 2
            crookYaw = (crookYaw + math.rad(AA.Speed) * step) % (math.pi * 2)
            yaw = yaw + crookYaw
        end
        local pos = hrp.CFrame.Position
        pcall(function()
            hrp.CFrame = CFrame.new(pos) * CFrame.Angles(0, yaw, 0) * CFrame.Angles(0, 0, roll)
        end)
    else
        crouchT = crouchT + step
        if crouchT >= 0.14 then
            crouchT = 0
            crouchOn = not crouchOn
            pcall(function()
                local RF = game:GetService("ReplicatedFirst")
                local V = GB_Variables or require(RF.Variables)
                local AB = GB_Ambassador or require(RF.Ambassador)
                V.tocrouch = crouchOn
                AB.Fire("Crouched")
            end)
        end
    end
end)
local BH = {Enabled = false, Mode = "Auto"}
local SP = {Value = 16}
Connect(RunService.Heartbeat, function()
    if BH.Enabled and tpAlive() then
        local c = LocalPlayer.Character
        local hum = c and c:FindFirstChildOfClass("Humanoid")
        if hum and hum.FloorMaterial ~= Enum.Material.Air then
            local go = hum.MoveDirection.Magnitude > 0.1
            if BH.Mode == "Hold Space" then
                local ok, down = pcall(function() return UIS:IsKeyDown(Enum.KeyCode.Space) end)
                go = ok and down
            end
            if go then pcall(function() hum.Jump = true end) end
        end
    end
    if SP.Value > 16 and tpAlive() then
        local hum2 = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
        if hum2 then pcall(function()
            if hum2.WalkSpeed ~= SP.Value then hum2.WalkSpeed = SP.Value end
        end) end
    end
end)
local SC = {Enabled = false, Hidden = true}
local function scopeSniperEquipped()
    local c = LocalPlayer.Character
    local gun = c and c:GetAttribute("WhatGun")
    if not gun or gun == "" then return false end
    local ok, w = pcall(function() return game.ReplicatedStorage.Weapons:FindFirstChild(gun) end)
    if not ok or not w then return false end
    local ok2, wt = pcall(function() return w:GetAttribute("WeaponType") end)
    return ok2 and wt == "Sniper"
end
local function scopeSet(on)
    pcall(function()
        local RF = game:GetService("ReplicatedFirst")
        local AB = GB_Ambassador or require(RF.Ambassador)
        AB.Fire("Scope", on)
    end)
end
local lastScopeCheck = 0
Connect(RunService.Heartbeat, function()
    if not SC.Enabled then return end
    if not tpAlive() then return end
    if GB_Variables and GB_Variables.freemouse then return end
    if SC.Hidden then
        pcall(function()
            local hud = LocalPlayer.PlayerGui:FindFirstChild("HUD")
            local ch = hud and hud:FindFirstChild("Crosshair")
            if ch then
                local nr = ch:FindFirstChild("Crosshair")
                local sc = ch:FindFirstChild("ScopeCrosshair")
                if nr then nr.Visible = true end
                if sc then sc.Visible = false end
            end
        end)
    end
    local now = os.clock()
    if now - lastScopeCheck > 0.5 then
        lastScopeCheck = now
        local V = GB_Variables
        if not V then return end
        if FV.Enabled then
            local cur = V.fov and V.fov[1]
            if cur ~= FV.Value then V.fov = {FV.Value} end
        elseif scopeSniperEquipped() then
            if not V.scoped then scopeSet(true) end
            if V.fov ~= nil then V.fov = nil end
        else
            if V.scoped then scopeSet(false) end
        end
    end
end)
local PK = {Enabled = false, Dir = "Right", Dist = 5, alt = false, busy = false}
local function doPeek()
    if PK.busy then return end
    if not PK.Enabled then return end
    if not tpAlive() then return end
    if GB_Variables and GB_Variables.freemouse then return end
    local c = LocalPlayer.Character
    local hum = c and c:FindFirstChildOfClass("Humanoid")
    local hrp = c and c:FindFirstChild("HumanoidRootPart")
    if not hum or not hrp then return end
    PK.busy = true
    task.spawn(function()
        pcall(function()
            local dir = PK.Dir
            if dir == "Alternate" then PK.alt = not PK.alt if PK.alt then dir = "Right" else dir = "Left" end end
            local rv = hrp.CFrame.RightVector
            rv = Vector3.new(rv.X, 0, rv.Z)
            if rv.Magnitude < 0.01 then rv = Vector3.new(1, 0, 0) end
            rv = rv.Unit
            if dir == "Left" then rv = rv * -1 end
            local startP = hrp.Position
            local outP = startP + rv * PK.Dist
            hum:MoveTo(outP)
            local t0 = os.clock()
            while os.clock() - t0 < 1.2 do
                task.wait(0.05)
                if not tpAlive() then break end
                local hp2 = hrp.Position
                local flat = Vector3.new(hp2.X - outP.X, 0, hp2.Z - outP.Z).Magnitude
                if flat < 1 then break end
            end
            task.wait(0.22)
            if tpAlive() then hum:MoveTo(startP) end
        end)
        PK.busy = false
    end)
end
local HttpS = game:GetService("HttpService")
local GB_Appear = nil
pcall(function() GB_Appear = require(game.ReplicatedStorage.Modules.Appearance) end)
local SK = {Auto = true, SelWeapon = nil, memory = {}}
pcall(function()
    local s = readfile("skeet-skins.json")
    if s and s ~= "" then
        local t = HttpS:JSONDecode(s)
        if type(t) == "table" then SK.memory = t end
    end
end)
local function skinsSave()
    pcall(function() writefile("skeet-skins.json", HttpS:JSONEncode(SK.memory)) end)
end
local function weaponList()
    local t = {}
    pcall(function()
        for _,w in ipairs(game.ReplicatedStorage.Weapons:GetChildren()) do
            if game.ReplicatedStorage.Skins:FindFirstChild(w.Name) then
                table.insert(t, w.Name)
            end
        end
    end)
    table.sort(t)
    return t
end
local function skinList(w)
    local t = {}
    pcall(function()
        local f = game.ReplicatedStorage.Skins:FindFirstChild(w)
        if f then
            for _,s in ipairs(f:GetChildren()) do
                table.insert(t, s.Name)
            end
        end
    end)
    table.sort(t)
    table.insert(t, 1, "Stock")
    return t
end
local function currentWeapon()
    local V = GB_Variables
    local w = V and V.LastWeapon
    if type(w) == "string" and w ~= "" then
        local f = game.ReplicatedStorage.Skins:FindFirstChild(w)
        if f then return w end
    end
    local c = LocalPlayer.Character
    local wg = c and c:GetAttribute("WhatGun")
    if type(wg) == "string" and wg ~= "" then
        local f2 = game.ReplicatedStorage.Skins:FindFirstChild(wg)
        if f2 then return wg end
    end
    return nil
end
local function applySkinNow()
    local w = currentWeapon()
    if not w then return end
    local skin = SK.memory[w]
    if not skin or skin == "Stock" then return end
    if not GB_Appear then return end
    local s = w .. "_" .. skin
    pcall(function()
        local cam = workspace.CurrentCamera
        local vm = cam and cam:FindFirstChild("Arms")
        if vm then GB_Appear.MapGunSkin(vm, s, false, 0, false, LocalPlayer) end
    end)
    pcall(function()
        local gun = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Gun")
        if gun then GB_Appear.MapGunSkin(gun, s, false, 0, true, LocalPlayer) end
    end)
end
local lastSkinW, lastSkinArms, lastSkinCheck = nil, nil, 0
Connect(RunService.Heartbeat, function()
    if not SK.Auto then return end
    local now = os.clock()
    if now - lastSkinCheck < 0.5 then return end
    lastSkinCheck = now
    local w = currentWeapon()
    local arms = tpArms()
    if w ~= lastSkinW or arms ~= lastSkinArms then
        lastSkinW, lastSkinArms = w, arms
        if w and arms then
            task.defer(function()
                task.wait(0.35)
                applySkinNow()
            end)
        end
    end
end)
Connect(LocalPlayer.CharacterAdded, function()
    lastSkinW, lastSkinArms = nil, nil
    tpCacheParts()
end)
local ESP = {Enemies = true, Teammates = false, Box = true, Tracer = false, Dot = false, Chams = true, ChamsMode = "Glow", ThroughWalls = true, Name = true, Health = true,
    EnemyColor = Color3.fromRGB(255, 70, 70), TeamColor = Color3.fromRGB(120, 255, 120)}
local espRoot = nil
pcall(function()
    local pg = game:GetService("CoreGui")
    if gethui then local ok, gh = pcall(function() return gethui() end) if ok and gh then pg = gh end end
    espRoot = Instance.new("Folder")
    espRoot.Name = "SkeetESP"
    espRoot.Parent = pg
end)
local espDraw = {}
local espHL = {}
local function dNew(kind)
    local o = nil
    pcall(function() o = Drawing.new(kind) end)
    return o
end
local function dSet(o, props)
    if not o then return end
    for k, v in pairs(props) do pcall(function() o[k] = v end) end
end
local function espGetDraw(plr)
    local d = espDraw[plr]
    if d then return d end
    d = {
        boxO = dNew("Square"), boxI = dNew("Square"),
        hpB = dNew("Square"), hpF = dNew("Square"),
        name = dNew("Text"), tracer = dNew("Line"), dot = dNew("Circle"),
    }
    dSet(d.boxO, {Filled = false, Thickness = 3, Color = Color3.new(0, 0, 0), Visible = false})
    dSet(d.boxI, {Filled = false, Thickness = 1, Color = Color3.new(1, 1, 1), Visible = false})
    dSet(d.hpB, {Filled = true, Color = Color3.new(0, 0, 0), Visible = false})
    dSet(d.hpF, {Filled = true, Color = Color3.new(0, 1, 0), Visible = false})
    dSet(d.name, {Size = 14, Color = Color3.new(1, 1, 1), Outline = true, Center = true, Visible = false})
    dSet(d.tracer, {Thickness = 1, Color = Color3.new(1, 1, 1), Visible = false})
    dSet(d.dot, {Radius = 3, Filled = true, Color = Color3.new(1, 0, 0), Visible = false})
    espDraw[plr] = d
    return d
end
local function espHide(plr)
    local d = espDraw[plr]
    if d then for _, o in pairs(d) do pcall(function() o.Visible = false end) end end
    local h = espHL[plr]
    if h then pcall(function() h.Enabled = false end) end
end
local function espDrop(plr)
    local d = espDraw[plr]
    if d then for _, o in pairs(d) do pcall(function() o:Remove() end) end espDraw[plr] = nil end
    local h = espHL[plr]
    if h then pcall(function() h:Destroy() end) espHL[plr] = nil end
end
local function espWipe()
    for plr, _ in pairs(espDraw) do espDrop(plr) end
    pcall(function() if espRoot then espRoot:Destroy() end end)
end
if STATE_API and STATE_API.onCleanup then
    STATE_API.onCleanup(function() espWipe() end)
end
Connect(Players.PlayerRemoving, function(plr) espDrop(plr) end)
local function espHP(plr, char)
    local hp = plr:GetAttribute("Health")
    if hp == nil then local h = char and char:FindFirstChildOfClass("Humanoid") hp = h and (h.Health / math.max(1, h.MaxHealth) * 100) or 100 end
    return math.clamp(hp, 0, 100)
end
local function espApplyChams(hl, col)
    pcall(function()
        if ESP.ChamsMode == "Solid" then
            hl.FillTransparency = 0.1
            hl.OutlineTransparency = 1
        elseif ESP.ChamsMode == "Outline" then
            hl.FillTransparency = 1
            hl.OutlineTransparency = 0
        else
            hl.FillTransparency = 0.55
            hl.OutlineTransparency = 0
        end
        hl.DepthMode = ESP.ThroughWalls and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded
        hl.FillColor = col
        if ESP.ChamsMode == "Outline" then
            hl.OutlineColor = col
        else
            hl.OutlineColor = Color3.new(1, 1, 1)
        end
        hl.Enabled = true
    end)
end
local espHalf = false
Connect(RunService.RenderStepped, function()
    espHalf = not espHalf
    if not espHalf then return end
    local cam = workspace.CurrentCamera
    if not cam then return end
    local myTeam = LocalPlayer:GetAttribute("Team")
    local vpx, vpy = cam.ViewportSize.X, cam.ViewportSize.Y
    for _,plr in ipairs(Players:GetPlayers()) do
        if plr == LocalPlayer then
            espHide(plr)
        else
            local tm = plr:GetAttribute("Team")
            local isEnemy = tm and tm ~= "Spectator" and tm ~= myTeam
            local want = (isEnemy and ESP.Enemies) or ((not isEnemy) and ESP.Teammates)
            local c = plr.Character
            local hp = c and espHP(plr, c) or 0
            if not want or not c or hp <= 0 then
                espHide(plr)
            else
                local col = isEnemy and ESP.EnemyColor or ESP.TeamColor
                local ok, cf, size = pcall(function() return c:GetBoundingBox() end)
                if not ok then
                    espHide(plr)
                else
                    local top3 = (cf * CFrame.new(0, size.Y / 2, 0)).Position
                    local bot3 = (cf * CFrame.new(0, -size.Y / 2, 0)).Position
                    local t2, onT = cam:WorldToViewportPoint(top3)
                    local b2, onB = cam:WorldToViewportPoint(bot3)
                    if (not onT and not onB) then
                        espHide(plr)
                    else
                        local h = math.abs(b2.Y - t2.Y)
                        local w = h * 0.62
                        local x = t2.X - w / 2
                        local y = math.min(t2.Y, b2.Y)
                        local d = espGetDraw(plr)
                        local showBox = ESP.Box
                        dSet(d.boxO, {Visible = showBox, Position = Vector2.new(x - 2, y - 2), Size = Vector2.new(w + 4, h + 4)})
                        dSet(d.boxI, {Visible = showBox, Color = col, Position = Vector2.new(x, y), Size = Vector2.new(w, h)})
                        local showHp = ESP.Health
                        local frac = hp / 100
                        dSet(d.hpB, {Visible = showHp, Position = Vector2.new(x - 7, y), Size = Vector2.new(4, h)})
                        dSet(d.hpF, {Visible = showHp, Color = Color3.fromRGB(math.floor(255 - 255 * frac), math.floor(255 * frac), 40), Position = Vector2.new(x - 7, y + h * (1 - frac)), Size = Vector2.new(4, math.max(1, h * frac))})
                        local dist = math.floor((bot3 - cam.CFrame.Position).Magnitude)
                        if ESP.Name then
                            dSet(d.name, {Visible = true, Text = plr.Name .. " [" .. dist .. "m]", Position = Vector2.new(x + w / 2, y - 16)})
                        else
                            dSet(d.name, {Visible = false})
                        end
                        if ESP.Tracer then
                            dSet(d.tracer, {Visible = true, Color = col, From = Vector2.new(vpx / 2, vpy), To = Vector2.new(x + w / 2, y + h)})
                        else
                            dSet(d.tracer, {Visible = false})
                        end
                        local head = c:FindFirstChild("Head")
                        if ESP.Dot and head then
                            local h2, onH = cam:WorldToViewportPoint(head.Position)
                            dSet(d.dot, {Visible = onH, Color = col, Position = Vector2.new(h2.X, h2.Y)})
                        else
                            dSet(d.dot, {Visible = false})
                        end
                        if ESP.Chams and espRoot then
                            local hl = espHL[plr]
                            if not hl then
                                hl = nil
                                pcall(function()
                                    hl = Instance.new("Highlight")
                                    hl.Parent = espRoot
                                end)
                                if hl then espHL[plr] = hl end
                            end
                            if hl then
                                pcall(function()
                                    if hl.Adornee ~= c then hl.Adornee = c end
                                end)
                                espApplyChams(hl, col)
                            end
                        else
                            local hl = espHL[plr]
                            if hl then pcall(function() hl.Enabled = false end) end
                        end
                    end
                end
            end
        end
    end
end)
local function fovWantWrite()
    local V = GB_Variables
    if not V then return end
    local cur = V.fov and V.fov[1]
    if cur ~= FV.Value then V.fov = {FV.Value} end
end
local WM = {Enabled = true, obj = nil, frames = 0, t0 = os.clock(), fps = 60}
local function wmTick()
    if not WM.Enabled then
        if WM.obj then pcall(function() WM.obj.Visible = false end) end
        return
    end
    if not WM.obj then
        WM.obj = dNew("Text")
        dSet(WM.obj, {Size = 14, Color = Color3.new(1, 1, 1), Outline = true, Visible = true, Position = Vector2.new(10, 10)})
        if STATE_API and STATE_API.onCleanup then
            STATE_API.onCleanup(function() pcall(function() if WM.obj then WM.obj:Remove() end end) WM.obj = nil end)
        end
    end
    WM.frames = WM.frames + 1
    local now = os.clock()
    if now - WM.t0 >= 0.5 then
        WM.fps = math.floor(WM.frames / (now - WM.t0) + 0.5)
        WM.frames = 0
        WM.t0 = now
        local ms = 0
        pcall(function() ms = math.floor(LocalPlayer:GetNetworkPing() * 1000 + 0.5) end)
        local nm = "?"
        pcall(function() nm = LocalPlayer.DisplayName end)
        dSet(WM.obj, {Visible = true, Text = "primordial | " .. tostring(nm) .. " | " .. WM.fps .. " fps | " .. ms .. " ms"})
    end
end
Connect(RunService.RenderStepped, function() wmTick() end)
local GM = {Rapid = false, Reload = false, NoRecoil = false, NoSpread = false, AutoReload = false}
local gunOrig = {}
local gunApplied = false
local function gunSet(w, attr, val)
    local ok, cur = pcall(function() return w:GetAttribute(attr) end)
    if not ok or cur == nil then return end
    local gn = w.Name
    gunOrig[gn] = gunOrig[gn] or {}
    if gunOrig[gn][attr] == nil then gunOrig[gn][attr] = cur end
    pcall(function() w:SetAttribute(attr, val) end)
end
local function gunRestoreAll()
    for gn, attrs in pairs(gunOrig) do
        local w = game.ReplicatedStorage.Weapons:FindFirstChild(gn)
        if w then
            for attr, val in pairs(attrs) do
                pcall(function() w:SetAttribute(attr, val) end)
            end
        end
    end
    gunOrig = {}
    gunApplied = false
end
local lastGunApply = 0
Connect(RunService.Heartbeat, function()
    local any = GM.Rapid or GM.Reload or GM.NoRecoil or GM.NoSpread or GM.AutoReload
    if not any then
        if gunApplied then gunRestoreAll() end
        return
    end
    local now = os.clock()
    if now - lastGunApply > 1 then
        lastGunApply = now
        gunApplied = true
        pcall(function()
            for _,w in ipairs(game.ReplicatedStorage.Weapons:GetChildren()) do
                if GM.Rapid then
                    gunSet(w, "FireRate", 0.03)
                    gunSet(w, "Cooldown", 0.03)
                    gunSet(w, "ScopedFireRate", 0.03)
                end
                if GM.Reload then
                    gunSet(w, "ReloadTime", 0.05)
                    gunSet(w, "EquipTime", 0.05)
                    gunSet(w, "SReload", 0.05)
                    gunSet(w, "AReload", 0.05)
                end
                if GM.NoRecoil then
                    gunSet(w, "RecoilX", 0)
                    gunSet(w, "RecoilY", 0)
                end
                if GM.NoSpread then
                    gunSet(w, "FireSpread", 0)
                end
            end
        end)
    end
    if GM.NoSpread and GB_Variables then
        pcall(function() GB_Variables.spread = 0 end)
    end
end)
local AR = {Enabled = false, mag = nil, lastW = false, lastRel = 0}
pcall(function()
    local AB = GB_Ambassador or require(game:GetService("ReplicatedFirst").Ambassador)
    AB.HookEvent("UpdateAmmo", function(data)
        if type(data) == "table" and type(data.Ammo) == "number" then
            AR.mag = data.Ammo
        end
    end)
end)
local lastARCheck = 0
Connect(RunService.Heartbeat, function()
    if not AR.Enabled then return end
    if not tpAlive() then return end
    if GB_Variables and GB_Variables.freemouse then return end
    local now = os.clock()
    if now - lastARCheck < 0.25 then return end
    lastARCheck = now
    local w = currentWeapon()
    if w ~= AR.lastW then AR.lastW = w AR.mag = nil end
    if AR.mag == 0 and now - AR.lastRel > 2 then
        AR.lastRel = now
        pcall(function()
            local AB = GB_Ambassador or require(game:GetService("ReplicatedFirst").Ambassador)
            AB.Fire("ReloadWeapon")
        end)
    end
end)
local RAR = {
    Stock = Color3.fromRGB(170, 170, 170),
    Blue = Color3.fromRGB(90, 140, 255),
    Purple = Color3.fromRGB(170, 90, 255),
    Pink = Color3.fromRGB(255, 110, 200),
    Red = Color3.fromRGB(255, 70, 70),
    Yellow = Color3.fromRGB(255, 200, 60),
}
local function rarColor(r)
    if type(r) == "string" and RAR[r] then return RAR[r] end
    return RAR.Stock
end
local GAL = {win = nil, wList = nil, grid = nil, vp = nil, vcam = nil, vm = nil, vmCenter = nil, weapon = nil, skin = nil, tiles = {}}
local function galSkinRarity(w, s)
    local r = nil
    pcall(function()
        local f = game.ReplicatedStorage.Skins:FindFirstChild(w)
        local sf = f and f:FindFirstChild(s)
        r = sf and sf:GetAttribute("Rarity")
    end)
    return r or "Stock"
end
local function galClearPreview()
    pcall(function()
        if GAL.vm then GAL.vm:Destroy() end
    end)
    GAL.vm, GAL.vmCenter = nil, nil
end
local function galPreview(w, s)
    galClearPreview()
    if not GAL.vp then return "no-vp" end
    local src = nil
    pcall(function()
        local wf = game.ReplicatedStorage.Weapons:FindFirstChild(w)
        src = wf and (wf:FindFirstChild("Viewmodel") or wf:FindFirstChild("Model"))
    end)
    if not src then return "no-src" end
    local ok, clone = pcall(function() return src:Clone() end)
    if not ok or not clone then return "no-clone" end
    clone.Parent = GAL.vp
    GAL.vm = clone
    pcall(function()
        local cf, size = clone:GetBoundingBox()
        GAL.vmCenter = cf.Position
        GAL.vcam.CFrame = CFrame.new(cf.Position + Vector3.new(0, 0.6, size.Magnitude * 1.5), cf.Position)
    end)
    if s and s ~= "Stock" and GB_Appear then
        pcall(function()
            GB_Appear.MapGunSkin(clone, w .. "_" .. s, false, 0, false, LocalPlayer)
        end)
    end
    return "ok"
end
local function galRebuildGrid(w)
    if not GAL.grid then return "no-grid" end
    for _,t in ipairs(GAL.tiles) do
        pcall(function() t:Destroy() end)
    end
    GAL.tiles = {}
    local names = skinList(w)
    for _,sn in ipairs(names) do
        local tile = New("TextButton", {
            Size = UDim2.new(0, 104, 0, 40),
            BackgroundColor3 = Color3.fromRGB(30, 30, 36),
            Font = Enum.Font.GothamBold, TextSize = 11, TextColor3 = THEME.Text,
            Text = sn, TextWrapped = true, AutoButtonColor = false, Parent = GAL.grid,
        })
        Corner(tile, 4)
        Stroke(tile, rarColor(galSkinRarity(w, sn)), 2)
        if SK.memory[w] == sn then
            tile.BackgroundColor3 = Color3.fromRGB(42, 42, 52)
        end
        Connect(tile.MouseButton1Click, function()
            GAL.skin = sn
            galPreview(w, sn)
            for _,o in ipairs(GAL.tiles) do
                pcall(function()
                    if o == tile then o.BackgroundColor3 = Color3.fromRGB(42, 42, 52)
                    else o.BackgroundColor3 = Color3.fromRGB(30, 30, 36) end
                end)
            end
        end)
        table.insert(GAL.tiles, tile)
    end
    return "ok:" .. #names
end
local function galBuildInner()
    local G = getgenv()
    G.SkeetGalLog = {"entry"}
    if GAL.win then table.insert(G.SkeetGalLog, "havewin") return "have-win" end
    table.insert(G.SkeetGalLog, "pastwin")
    G.SkeetGalLog = {"entry", "pastwin"}
    local guiRoot = nil
    pcall(function()
        local pg = game:GetService("CoreGui")
        if gethui then local ok, gh = pcall(function() return gethui() end) if ok and gh then pg = gh end end
        guiRoot = pg:FindFirstChild("SkeetUI")
        if not guiRoot then
            local rg = game.CoreGui:FindFirstChild("RobloxGui")
            guiRoot = rg and rg:FindFirstChild("SkeetUI")
        end
    end)
    if not guiRoot then error("no-gui-root", 0) end
    table.insert(G.SkeetGalLog, "guiroot")
    local function mark(n) table.insert(G.SkeetGalLog, n) end
    local function mk(class, props, parent)
        local o = Instance.new(class)
        for k, v in pairs(props) do
            local ok, err = pcall(function() o[k] = v end)
            if not ok then error("prop:" .. tostring(k) .. ":" .. tostring(err), 0) end
        end
        o.Parent = parent
        return o
    end
    local win = mk("Frame", {Name = "Gallery", Size = UDim2.new(0, 560, 0, 400), Position = UDim2.new(0.5, -280, 0.5, -200), BackgroundColor3 = THEME.Main, BorderSizePixel = 0, Visible = false, Active = true}, guiRoot)
    mark("win")
    mk("UICorner", {CornerRadius = UDim.new(0, 6)}, win)
    mk("UIStroke", {Color = THEME.BorderDark, Thickness = 1, ApplyStrokeMode = Enum.ApplyStrokeMode.Border}, win)
    mark("win-deco")
    mk("Frame", {Size = UDim2.new(1, 0, 0, 2), BackgroundColor3 = Library.Accent, BorderSizePixel = 0}, win)
    mark("accent")
    local bar = mk("Frame", {Size = UDim2.new(1, 0, 0, 34), BackgroundTransparency = 1, Active = true}, win)
    mk("TextLabel", {BackgroundTransparency = 1, Size = UDim2.new(1, -70, 1, 0), Position = UDim2.new(0, 10, 0, 0), Font = Enum.Font.GothamBold, TextSize = 14, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = THEME.Text, Text = "Skin Gallery"}, bar)
    local closeB = mk("TextButton", {Size = UDim2.new(0, 26, 0, 26), Position = UDim2.new(1, -32, 0, 4), BackgroundColor3 = Color3.fromRGB(60, 20, 20), Font = Enum.Font.GothamBold, TextSize = 14, TextColor3 = THEME.Text, Text = "X", AutoButtonColor = false}, bar)
    mk("UICorner", {CornerRadius = UDim.new(0, 4)}, closeB)
    mark("bar")
    do
        local drag, sp, si = false, nil, nil
        bar.InputBegan:Connect(function(i)
            if i.UserInputType == Enum.UserInputType.MouseButton1 then drag = true sp = win.Position si = i.Position end
        end)
        UIS.InputChanged:Connect(function(i)
            if drag and i.UserInputType == Enum.UserInputType.MouseMovement then
                local d = i.Position - si
                win.Position = UDim2.new(sp.X.Scale, sp.X.Offset + d.X, sp.Y.Scale, sp.Y.Offset + d.Y)
            end
        end)
    end
    mark("drag")
    closeB.MouseButton1Click:Connect(function() win.Visible = false end)
    mark("close")
    local wlist = mk("ScrollingFrame", {Size = UDim2.new(0, 130, 1, -44), Position = UDim2.new(0, 6, 0, 38), BackgroundColor3 = THEME.Side, BorderSizePixel = 0, ScrollBarThickness = 2, ScrollBarImageColor3 = Library.Accent, AutomaticCanvasSize = Enum.AutomaticSize.Y, CanvasSize = UDim2.new(0, 0, 0, 0), ScrollingDirection = Enum.ScrollingDirection.Y}, win)
    mk("UICorner", {CornerRadius = UDim.new(0, 4)}, wlist)
    mk("UIListLayout", {Padding = UDim.new(0, 3), SortOrder = Enum.SortOrder.LayoutOrder}, wlist)
    mk("UIPadding", {PaddingLeft = UDim.new(0, 4), PaddingTop = UDim.new(0, 4), PaddingRight = UDim.new(0, 4), PaddingBottom = UDim.new(0, 4)}, wlist)
    mark("wlist")
    local vp = mk("ViewportFrame", {Size = UDim2.new(1, -152, 0, 170), Position = UDim2.new(0, 142, 0, 38), BackgroundColor3 = Color3.fromRGB(12, 12, 15), BorderSizePixel = 0}, win)
    mk("UICorner", {CornerRadius = UDim.new(0, 4)}, vp)
    mk("UIStroke", {Color = THEME.Border, Thickness = 1, ApplyStrokeMode = Enum.ApplyStrokeMode.Border}, vp)
    local vcam = mk("Camera", {}, vp)
    vp.CurrentCamera = vcam
    mark("vp")
    local grid = mk("ScrollingFrame", {Size = UDim2.new(1, -152, 1, -222), Position = UDim2.new(0, 142, 0, 214), BackgroundTransparency = 1, ScrollBarThickness = 2, ScrollBarImageColor3 = Library.Accent, AutomaticCanvasSize = Enum.AutomaticSize.Y, CanvasSize = UDim2.new(0, 0, 0, 0), ScrollingDirection = Enum.ScrollingDirection.Y}, win)
    mk("UIGridLayout", {CellSize = UDim2.new(0, 104, 0, 40), CellPadding = UDim2.new(0, 6, 0, 6), SortOrder = Enum.SortOrder.LayoutOrder}, grid)
    mark("grid")
    local eq = mk("TextButton", {Size = UDim2.new(0, 120, 0, 26), Position = UDim2.new(1, -126, 1, -32), BackgroundColor3 = THEME.Element, Font = Enum.Font.GothamBold, TextSize = 12, TextColor3 = THEME.Text, Text = "Equip", AutoButtonColor = false}, win)
    mk("UICorner", {CornerRadius = UDim.new(0, 4)}, eq)
    mk("UIStroke", {Color = THEME.Border, Thickness = 1, ApplyStrokeMode = Enum.ApplyStrokeMode.Border}, eq)
    mark("eq")
    GAL.win, GAL.wList, GAL.grid, GAL.vp, GAL.vcam = win, wlist, grid, vp, vcam
    eq.MouseButton1Click:Connect(function()
        if GAL.weapon and GAL.skin then
            SK.memory[GAL.weapon] = GAL.skin
            skinsSave()
            if GAL.weapon == currentWeapon() then applySkinNow() end
        end
    end)
    local spinConn
    spinConn = RunService.RenderStepped:Connect(function()
        if not GAL.win or GAL.win.Parent == nil then pcall(function() spinConn:Disconnect() end) return end
        if GAL.win.Visible and GAL.vm and GAL.vmCenter then
            local c = GAL.vm:GetPivot()
            GAL.vm:PivotTo(CFrame.new(GAL.vmCenter) * CFrame.Angles(0, (os.clock() * 0.6) % (math.pi * 2), 0) * (CFrame.new(GAL.vmCenter):Inverse() * c))
        end
    end)
    mark("done")
    return "built"
end
local function galVerify()
    local w = GAL.win
    if not w then return false end
    local n = 0
    pcall(function()
        for _, _ in ipairs(w:GetDescendants()) do n = n + 1 end
    end)
    return n >= 12
end
local function galOpen()
    local ok, err = xpcall(galBuildInner, debug.traceback)
    if not ok then
        warn("[skeet-gallery] build: " .. tostring(err))
        return "build-err:" .. tostring(err):sub(1, 220)
    end
    if not galVerify() then
        pcall(function() if GAL.win then GAL.win:Destroy() end end)
        GAL.win, GAL.wList, GAL.grid, GAL.vp, GAL.vcam, GAL.vm, GAL.vmCenter, GAL.tiles = nil, nil, nil, nil, nil, nil, nil, {}
        local ok2, err2 = xpcall(galBuildInner, debug.traceback)
        if not ok2 then
            warn("[skeet-gallery] rebuild: " .. tostring(err2))
            return "rebuild-err:" .. tostring(err2):sub(1, 220)
        end
        if not galVerify() then
            warn("[skeet-gallery] incomplete after rebuild")
            return "incomplete"
        end
    end
    GAL.wList:ClearAllChildren()
    New("UIListLayout", {Padding = UDim.new(0, 3), SortOrder = Enum.SortOrder.LayoutOrder, Parent = GAL.wList})
    Pad(GAL.wList, 4, 4, 4, 4)
    for _,wn in ipairs(weaponList()) do
        local b = New("TextButton", {
            Size = UDim2.new(1, -4, 0, 24), BackgroundColor3 = THEME.Element,
            Font = Enum.Font.Gotham, TextSize = 12, TextColor3 = THEME.Text,
            Text = wn, AutoButtonColor = false, Parent = GAL.wList,
        })
        Corner(b, 3)
        Connect(b.MouseButton1Click, function()
            safecb(function()
                GAL.weapon = wn
                GAL.skin = SK.memory[wn] or "Stock"
                galRebuildGrid(wn)
                galPreview(wn, GAL.skin)
            end)
        end)
    end
    local cw = currentWeapon() or SK.SelWeapon
    if cw then
        GAL.weapon = cw
        GAL.skin = SK.memory[cw] or "Stock"
        galRebuildGrid(cw)
        galPreview(cw, GAL.skin)
    end
    GAL.win.Visible = true
    return "opened"
end
pcall(function()
    local G = getgenv and getgenv() or {}
    G.SkeetOpenGallery = galOpen
    G.SkeetGalPreview = galPreview
    G.SkeetGalGrid = galRebuildGrid
end)
local Window = Library:Create("primordial | lua")
local RageTab = Window:Tab("Rage")
local VisualsTab = Window:Tab("Visuals")
local SkinTab = Window:Tab("Skins")
local PlayersTab = Window:Tab("Players")
local CfgTab = Window:Tab("Config")
local A = RageTab:Groupbox("Ragebot", "left")
local aimToggleRef = nil
local function setAim(v)
    MG.Enabled = v
    if aimToggleRef then aimToggleRef:Set(v) end
    if not v then rageFire(false) GG.SkeetMagicTarget = nil end
    print("Ragebot:", v)
end
aimToggleRef = A:Toggle("Enable", MG.Enabled, function(v) setAim(v) end)
A:Dropdown("Hitbox", {"Head","Chest","Pelvis","Legs"}, MG.Hitbox, function(v) MG.Hitbox = v print("Hitbox:", v) end)
A:Slider("Range", 50, 1000, MG.Range, function(v) MG.Range = v end)
A:Toggle("Wallbang", MG.Wallbang, function(v) MG.Wallbang = v print("Wallbang:", v) end)
A:Keybind("Toggle key", Enum.KeyCode.H, function(k) setAim(not MG.Enabled) end)
A:Label("H - вкл/выкл. Полуавто жмётся сам")
local SCB = RageTab:Groupbox("Auto Scope", "left")
SCB:Toggle("Enable", false, function(v) SC.Enabled = v print("AutoScope:", v) if not v then scopeSet(false) end end)
SCB:Toggle("Hidden overlay", true, function(v) SC.Hidden = v end)
SCB:Label("Флаг скоупа есть, зума нет")
local PKB = RageTab:Groupbox("Peek", "left")
PKB:Toggle("Enable", false, function(v) PK.Enabled = v print("Peek:", v) end)
PKB:Keybind("Peek key", Enum.KeyCode.X, function(k) doPeek() end)
PKB:Dropdown("Direction", {"Right","Left","Alternate"}, "Right", function(v) PK.Dir = v end)
PKB:Slider("Distance", 3, 8, 5, function(v) PK.Dist = v end)
PKB:Label("Выглядывает и возвращается")
local GD = RageTab:Groupbox("Gun Mods", "left")
GD:Toggle("Rapid Fire", false, function(v) GM.Rapid = v print("Rapid:", v) end)
GD:Toggle("Fast Reload", false, function(v) GM.Reload = v print("FastReload:", v) end)
GD:Toggle("No Recoil", false, function(v) GM.NoRecoil = v print("NoRecoil:", v) end)
GD:Toggle("No Spread", false, function(v) GM.NoSpread = v if not v and GB_Variables then pcall(function() GB_Variables.spread = nil end) end print("NoSpread:", v) end)
GD:Toggle("Auto Reload", false, function(v) AR.Enabled = v AR.mag = nil print("AutoReload:", v) end)
GD:Label("Урон не меняется (сервер)")
local B = RageTab:Groupbox("Anti-Aim", "right")
local aaToggleRef = nil
local function setAA(v)
    AA.Enabled = v
    if aaToggleRef then aaToggleRef:Set(v) end
    print("AA:", v, AA.Mode)
end
aaToggleRef = B:Toggle("Enable AA", false, function(v) setAA(v) end)
B:Dropdown("Mode", {"Spin","Jitter","Sway","Random","Flip","Crooked","Crouch"}, "Spin", function(v) AA.Mode = v print("AA mode:", v) end)
B:Slider("Spin speed", 180, 2880, 1080, function(v) AA.Speed = v end)
B:Slider("Angle", 5, 90, 30, function(v) AA.JAngle = v end)
B:Label("Flip/Crooked прячут голову")
local M = RageTab:Groupbox("Movement", "right")
M:Toggle("Bunny Hop", false, function(v) BH.Enabled = v print("Bhop:", v) end)
M:Dropdown("Hop mode", {"Auto","Hold Space"}, "Auto", function(v) BH.Mode = v end)
M:Slider("Speed", 16, 60, 16, function(v)
    SP.Value = v
    print("Speed:", v)
    if v <= 16 and tpAlive() then
        local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
        if hum then pcall(function() hum.WalkSpeed = 16 end) end
    end
end)
M:Label("16 = обычная. Выше - палево/кик")
local V = VisualsTab:Groupbox("ESP", "left")
V:Toggle("Enemies", true, function(v) ESP.Enemies = v print("ESP enemies:", v) end)
V:Toggle("Teammates", false, function(v) ESP.Teammates = v end)
V:Toggle("Box", true, function(v) ESP.Box = v end)
V:Toggle("Tracers", false, function(v) ESP.Tracer = v end)
V:Toggle("Head dot", false, function(v) ESP.Dot = v end)
V:Toggle("Chams", true, function(v) ESP.Chams = v end)
V:Toggle("Name", true, function(v) ESP.Name = v end)
V:Toggle("Health", true, function(v) ESP.Health = v end)
local EC = VisualsTab:Groupbox("ESP Colors", "right")
EC:Colorpicker("Enemy", Color3.fromRGB(255,70,70), function(c) ESP.EnemyColor = c end)
EC:Colorpicker("Team", Color3.fromRGB(120,255,120), function(c) ESP.TeamColor = c end)
local CS = VisualsTab:Groupbox("Chams Style", "right")
CS:Dropdown("Mode", {"Glow","Solid","Outline"}, "Glow", function(v) ESP.ChamsMode = v end)
CS:Toggle("Through walls", true, function(v) ESP.ThroughWalls = v end)
local WD = VisualsTab:Groupbox("World", "left")
WD:Toggle("FOV Changer", false, function(v)
    FV.Enabled = v
    print("FOV:", v)
    if not v then
        local Vv = GB_Variables
        if Vv then pcall(function() Vv.fov = nil end) end
    end
end)
WD:Slider("FOV", 60, 120, 90, function(v) FV.Value = v end)
local Cam = VisualsTab:Groupbox("Camera", "right")
local tpToggleRef = nil
local function setTP(v, snap)
    local now = os.clock()
    if now - TP.lastToggle < 0.3 then return end
    TP.lastToggle = now
    TP.Enabled = v
    if tpToggleRef then tpToggleRef:Set(v) end
    if v then tpEnable() else tpDisable() end
    print("TP:", v)
end
tpToggleRef = Cam:Toggle("Third Person", false, function(v) setTP(v, true) end)
Cam:Slider("Distance", 6, 18, 12, function(v) TP.Distance = v end)
Cam:Keybind("TP key", Enum.KeyCode.V, function(k) setTP(not TP.Enabled, true) end)
Cam:Label("V - вкл/выкл. Без записи зума")
local C = CfgTab:Groupbox("Menu", "left")
C:Toggle("Watermark", true, function(v) WM.Enabled = v if not v and WM.obj then pcall(function() WM.obj.Visible = false end) end print("Watermark:", v) end)
C:Keybind("Menu key", Enum.KeyCode.RightShift, function(k) if k then MenuCfg.Key = k print("Menu key:", k) end end)
C:Textbox("Config name", "myconfig", function(t) print(t) end)
C:Button("Save", function() print("saved") end)
C:Label("Меню прячется на Menu key")
local SKG = SkinTab:Groupbox("Skinchanger", "left")
local wlist = weaponList()
local defW = currentWeapon()
if not defW then defW = wlist[1] end
SK.SelWeapon = defW
local skinH = nil
SKG:Dropdown("Weapon", wlist, defW, function(v)
    SK.SelWeapon = v
    if skinH then skinH:SetList(skinList(v), SK.memory[v] or "Stock") end
    print("Skin weapon:", v)
end)
skinH = SKG:Dropdown("Skin", skinList(defW), SK.memory[defW] or "Stock", function(v)
    SK.memory[SK.SelWeapon] = v
    skinsSave()
    print("Skin set:", SK.SelWeapon, v)
end)
SKG:Button("Apply", function() applySkinNow() print("Skin applied") end)
SKG:Toggle("Auto-apply", true, function(v) SK.Auto = v print("Skin auto:", v) end)
SKG:Button("Open Gallery", function() galOpen() print("Gallery button") end)
SKG:Label("Видно только тебе")
local SKI = SkinTab:Groupbox("Info", "right")
SKI:Button("Сбросить всё (Stock)", function()
    SK.memory = {}
    skinsSave()
    if skinH and SK.SelWeapon then skinH:SetList(skinList(SK.SelWeapon), "Stock") end
    print("Skins cleared")
end)
SKI:Label("Сток вернётся при смене оружия")
local VKG = PlayersTab:Groupbox("Votekick", "left")
local vkPickH = nil
local function vkRefresh()
    local t, map = vkPlayerList()
    vkMap = map
    if vkPickH then
        if #t == 0 then vkPickH:SetList({"— нет игроков —"}, "— нет игроков —")
        else vkPickH:SetList(t, t[1]) end
        VK.target = t[1]
    end
end
vkPickH = VKG:Dropdown("Target", {"— обнови список —"}, "— обнови список —", function(v) VK.target = v print("Kick target:", v) end)
VKG:Button("Refresh", function() vkRefresh() print("Players refreshed") end)
VKG:Button("Start Votekick", function()
    safecb(function()
        local label = VK.target
        local plr = label and vkMap[label]
        if not plr then vkSetStatus("Выбери цель и жми Refresh") return end
        game.ReplicatedStorage.Events.VoteKick:FireServer(plr)
        vkSetStatus("Запрос кика: " .. tostring(label))
        print("Votekick started vs", label)
    end)
end)
vkStatusH = VKG:Label("Нет активного кика")
local AKG = PlayersTab:Groupbox("Anti Kick", "right")
AKG:Toggle("Auto vote NO", true, function(v) VK.AntiKick = v print("AntiKick:", v) end)
AKG:Label("Кикают тебя — жмём Нет сами")
print("SkeetUI v4.2 loaded, magic-hook:", GG.SkeetMagicOn)
pcall(function()
    if queue_on_teleport then
        queue_on_teleport('local f = loadfile("skeet-bundle.luau"); if f then pcall(f) end')
    end
end)

Features & Information

opensource script its buggy but ragebot and gunmods good third person bugs i dont want to continue work on this script so here is source functions rage bot (auto shot) wallbang gunmods bhop some visuals

Community Comments (0)

No comments yet for this script.

More Scripts for [🧤] Defusal