Vomagla source
Key Required

Vomagla source

rost alphaOsiris2312Osiris2312 4.4K views 31.2K executesUpdated Mar 16, 2026
5.0/ 5(3 votes)
30100% Positive
Lua Script•835 lines (55010 chars)
--https://discord.gg/2KxEtmuKxq
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local LocalPlayer = Players.LocalPlayer
local v5 = LocalPlayer
local v6 = Workspace.CurrentCamera
local v11 = Workspace

if not newcclosure then getgenv().newcclosure = function(f) return f end end
if not checkcaller then getgenv().checkcaller = function() return false end end
if not hookmetamethod then getgenv().hookmetamethod = function() end end
if not getnamecallmethod then getgenv().getnamecallmethod = function() return "" end end

local mathFloor = math.floor
local mathClamp = math.clamp
local mathAbs = math.abs
local mathRad = math.rad
local Vector2New = Vector2.new
local Vector3New = Vector3.new
local CFrameNew = CFrame.new
local tick = tick
local typeof = typeof
local pairs = pairs
local ipairs = ipairs
local pcall = pcall
local next = next
local string_format = string.format
local string_find = string.find
local task_spawn = task.spawn
local task_delay = task.delay
local task_wait = task.wait
local task_defer = task.defer

local DrawingOK = pcall(function() local t = Drawing.new("Line"); t:Remove() end)

local playerCache = {}
local function onPAdd(p) if p ~= LocalPlayer then playerCache[p] = true end end
local function onPRem(p) playerCache[p] = nil end
for _, p in ipairs(Players:GetPlayers()) do onPAdd(p) end
Players.PlayerAdded:Connect(onPAdd)
Players.PlayerRemoving:Connect(onPRem)

local cachedChar = LocalPlayer.Character
local cachedHumanoid = cachedChar and cachedChar:FindFirstChildWhichIsA("Humanoid")

local function updateCharCache(c)
    cachedChar = c
    cachedHumanoid = nil
    if c then
        local h = c:FindFirstChildWhichIsA("Humanoid")
        if h then cachedHumanoid = h
        else task_spawn(function()
            local h2 = c:WaitForChild("Humanoid", 15)
            if h2 and cachedChar == c then cachedHumanoid = h2 end
        end) end
    end
end

LocalPlayer.CharacterAdded:Connect(function(c) updateCharCache(c) end)
LocalPlayer.CharacterRemoving:Connect(function() cachedChar = nil; cachedHumanoid = nil end)
if cachedChar then updateCharCache(cachedChar) end

local Toggles = { SA_Enabled = {Value = false}, XRay = {Value = false} }
local Options = { SA_FOVRadius = {Value = 150} }

local v13 = {
    Enabled = false, TargetPart = "HumanoidRootPart",
    UseFOV = true, FOVRadius = 150, FOVRadiusSq = 22500,
    FOVColor = Color3.fromRGB(255,255,255),
    FOVColorNoTarget = Color3.fromRGB(255,0,0),
    FOVColorOnTarget = Color3.fromRGB(0,255,0),
    Snapline = false, SnaplineColor = Color3.fromRGB(255,255,255), SnaplineThickness = 2,
    WallCheck = false, Priority = "Crosshair",
    MaxDistance = 500, MaxDistanceSq = 250000,
}

local TracerSettings = { Enabled = false, Color = Color3.fromRGB(255,255,255), TextureID = "rbxassetid://12781852245", Width = 1.5, Transparency = 0, LifeTime = 0.5 }
local ESPOptions = { Enabled = false, Box = false, Name = false, Distance = false, HealthBar = false, Chams = false, TargetHUD = false }
local ESPColors = { Box1 = Color3.fromRGB(255,255,255), Name = Color3.fromRGB(255,255,255), Distance = Color3.fromRGB(255,255,255) }
local XRaySettings = { Enabled = false, Transparency = 0.5 }
local ForceFieldSettings = { Enabled = false, Color = Color3.fromRGB(128,128,128) }
local JumpCircleSettings = { Enabled = false, Color = Color3.fromRGB(0,170,255) }
local HitSoundSettings = { Enabled = false, Choice = "None", Volume = 1, OriginalSounds = {} }
local SpeedSettings = { Enabled = false, Value = 30 }
local NoJumpDelaySettings = { Enabled = false, Delay = 0.1, LastJumpTime = 0, Conn = nil }
local FOVSettings = { Enabled = false, Value = 70 }
local ThirdPersonSettings = { Enabled = false, Distance = 10 }
local AutoFireSettings = { Enabled = false, Delay = 0.05, LastFire = 0 }
local StretchSettings = { Enabled = false, Value = 0.65 }
local SpiderSettings = { Enabled = false, Speed = 50 }
local JumpStunSettings = { Enabled = false, Height = 100 }
local WaterSpeed = { Enabled = false, Value = 50 }
local NoDecorationEnabled = false
local SkyColorSettings = { Enabled = false, Color = Color3.fromRGB(135,200,255) }
local DeleteSpikesSettings = { Enabled = false }
local ToolHighlightSettings = { Enabled = false, Color = Color3.new(1,1,1) }
local KillNotify = false
local CurrentAimTarget = nil
local LibraryUnloaded = false
local jumpShootEnabled = false
local jumpShootPatched = {}
local SimpleJumpShootEnabled = false
local simpleJumpShootPatched = {}

local screenCenter = Vector2New(0,0)
local function getMousePosition()
    local cam = Workspace.CurrentCamera
    if cam then local vp = cam.ViewportSize; screenCenter = Vector2New(vp.X*0.5, vp.Y*0.5) end
    return screenCenter
end
local function getPositionOnScreen(pos)
    local cam = Workspace.CurrentCamera
    if not cam then return Vector2New(0,0), false end
    local p, v = cam:WorldToViewportPoint(pos)
    return Vector2New(p.X, p.Y), v
end
local function distSq2D(a, b) local dx, dy = a.X-b.X, a.Y-b.Y; return dx*dx+dy*dy end
local function distSq3D(a, b) local dx,dy,dz = a.X-b.X, a.Y-b.Y, a.Z-b.Z; return dx*dx+dy*dy+dz*dz end

local ignoreFolderNames = {"Viewmodel","ViewModel","Ignore","Debris","BulletTraces","Effects","GunEffects","Arms","FPSArms","Particles","Bullets"}
local wallRayP = RaycastParams.new()
wallRayP.FilterType = Enum.RaycastFilterType.Exclude
wallRayP.IgnoreWater = true

local function isPartVisible(origin, targetPos, targetChar)
    local il = {}
    if cachedChar then il[#il+1] = cachedChar end
    local cam = Workspace.CurrentCamera
    if cam then il[#il+1] = cam end
    for i = 1, #ignoreFolderNames do
        local f = Workspace:FindFirstChild(ignoreFolderNames[i])
        if f then il[#il+1] = f end
    end
    wallRayP.FilterDescendantsInstances = il
    for _ = 1, 4 do
        local dir = targetPos - origin
        if dir.Magnitude < 0.5 then return true end
        local r = Workspace:Raycast(origin, dir, wallRayP)
        if not r then return true end
        if r.Instance:IsDescendantOf(targetChar) then return true end
        if r.Instance:IsA("BasePart") and r.Instance.Transparency >= 0.9 then
            il[#il+1] = r.Instance; wallRayP.FilterDescendantsInstances = il; continue
        end
        local hitO = false
        for plr in next, playerCache do
            if plr.Character and r.Instance:IsDescendantOf(plr.Character) then
                il[#il+1] = plr.Character; wallRayP.FilterDescendantsInstances = il; hitO = true; break
            end
        end
        if hitO then continue end
        return false
    end
    return false
end

local function getClosestPlayer()
    local cam = Workspace.CurrentCamera
    if not cam then return nil end
    v6 = cam
    local myRoot = cachedChar and cachedChar:FindFirstChild("HumanoidRootPart")
    local myPos = myRoot and myRoot.Position
    local mousePos = getMousePosition()
    local camPos = cam.CFrame.Position
    local best, bestD = nil, nil
    for plr in next, playerCache do
        local ch = plr.Character; if not ch then continue end
        local part = ch:FindFirstChild(v13.TargetPart) or ch:FindFirstChild("HumanoidRootPart") or ch:FindFirstChild("Head")
        if not part or not part.Parent then continue end
        local hum = ch:FindFirstChild("Humanoid")
        if not hum or hum.Health <= 0 then continue end
        local pp = part.Position
        if myPos and distSq3D(myPos, pp) > v13.MaxDistanceSq then continue end
        local sp, vis = getPositionOnScreen(pp)
        if not vis then continue end
        local sd = distSq2D(mousePos, sp)
        if v13.UseFOV and sd > v13.FOVRadiusSq then continue end
        if v13.WallCheck and not isPartVisible(camPos, pp, ch) then continue end
        local cd = (v13.Priority == "Distance" and myPos) and distSq3D(myPos, pp) or sd
        if not bestD or cd < bestD then best = part; bestD = cd end
    end
    return best
end

local trPool, trSize = {}, 0
local function getTr()
    if trSize > 0 then local p = trPool[trSize]; trPool[trSize] = nil; trSize -= 1; return p end
    local p = Instance.new("Part"); p.Anchored = true; p.CanCollide = false; p.Transparency = 1; p.Size = Vector3New(0.1,0.1,0.1)
    local a0 = Instance.new("Attachment",p); a0.Name = "A0"
    local a1 = Instance.new("Attachment",p); a1.Name = "A1"
    local b = Instance.new("Beam"); b.Name = "B"; b.Attachment0 = a0; b.Attachment1 = a1
    b.FaceCamera = true; b.LightEmission = 1; b.LightInfluence = 0; b.TextureLength = 2; b.TextureSpeed = 2; b.Parent = p
    return p
end

local function createTrace(startPos, endPos)
    if LibraryUnloaded then return end
    local p = getTr(); p.Parent = Workspace
    local a0 = p:FindFirstChild("A0"); local a1 = p:FindFirstChild("A1")
    if a0 then a0.WorldPosition = startPos end
    if a1 then a1.WorldPosition = endPos end
    local b = p:FindFirstChild("B")
    if b then
        b.Color = ColorSequence.new(TracerSettings.Color)
        b.Transparency = NumberSequence.new(TracerSettings.Transparency)
        b.Texture = TracerSettings.TextureID
        b.Width0 = TracerSettings.Width; b.Width1 = TracerSettings.Width; b.Enabled = true
    end
    task_delay(TracerSettings.LifeTime, function()
        if p then if b then b.Enabled = false end; p.Parent = nil; trSize += 1; trPool[trSize] = p end
    end)
end

local function doAutoFire()
    if mouse1click then mouse1click() else
        local s, vim = pcall(game.GetService, game, "VirtualInputManager")
        if s and vim then vim:SendMouseButtonEvent(0,0,0,true,game,0); task_defer(function() vim:SendMouseButtonEvent(0,0,0,false,game,0) end) end
    end
end

local espCache = {}
local function mkEsp()
    if not DrawingOK then return nil end
    local e = {}
    e.Box = Drawing.new("Square"); e.Box.Visible = false; e.Box.Thickness = 1; e.Box.Filled = false; e.Box.Transparency = 1
    e.BoxOutline = Drawing.new("Square"); e.BoxOutline.Visible = false; e.BoxOutline.Thickness = 3; e.BoxOutline.Filled = false; e.BoxOutline.Color = Color3.new(0,0,0); e.BoxOutline.Transparency = 1
    e.Name = Drawing.new("Text"); e.Name.Visible = false; e.Name.Center = true; e.Name.Outline = true; e.Name.Size = 13; e.Name.Font = 2
    e.Dist = Drawing.new("Text"); e.Dist.Visible = false; e.Dist.Center = true; e.Dist.Outline = true; e.Dist.Size = 13; e.Dist.Font = 2
    e.HpBg = Drawing.new("Square"); e.HpBg.Visible = false; e.HpBg.Filled = true; e.HpBg.Color = Color3.new(0,0,0); e.HpBg.Transparency = 0.5
    e.Hp = Drawing.new("Square"); e.Hp.Visible = false; e.Hp.Filled = true; e.Hp.Transparency = 1
    e.Chams = nil; e.VisibleNow = false; e.LastVisCheck = 0
    return e
end

local function hideEsp(e)
    if not e then return end
    if e.Box then e.Box.Visible = false end
    if e.BoxOutline then e.BoxOutline.Visible = false end
    if e.Name then e.Name.Visible = false end
    if e.Dist then e.Dist.Visible = false end
    if e.HpBg then e.HpBg.Visible = false end
    if e.Hp then e.Hp.Visible = false end
    if e.Chams then pcall(function() e.Chams:Destroy() end); e.Chams = nil end
end

local function rmEsp(plr)
    local e = espCache[plr]; if not e then return end
    pcall(function()
        if e.Box then e.Box:Remove() end; if e.BoxOutline then e.BoxOutline:Remove() end
        if e.Name then e.Name:Remove() end; if e.Dist then e.Dist:Remove() end
        if e.HpBg then e.HpBg:Remove() end; if e.Hp then e.Hp:Remove() end
        if e.Chams then e.Chams:Destroy() end
    end)
    espCache[plr] = nil
end
Players.PlayerRemoving:Connect(rmEsp)

local function updateESP()
    if not ESPOptions.Enabled then for _, e in pairs(espCache) do hideEsp(e) end; return end
    if not DrawingOK then return end
    local cam = Workspace.CurrentCamera; if not cam then return end
    local camPos = cam.CFrame.Position
    local myRoot = cachedChar and cachedChar:FindFirstChild("HumanoidRootPart")
    local now = tick()
    for plr in next, playerCache do
        local ch = plr.Character
        if not ch then if espCache[plr] then hideEsp(espCache[plr]) end; continue end
        local hrp = ch:FindFirstChild("HumanoidRootPart"); local hum = ch:FindFirstChild("Humanoid")
        if not hrp or not hum or hum.Health <= 0 then if espCache[plr] then hideEsp(espCache[plr]) end; continue end
        local pos = hrp.Position
        local topS = cam:WorldToViewportPoint(pos + Vector3New(0,3,0))
        local botS = cam:WorldToViewportPoint(pos - Vector3New(0,3,0))
        if topS.Z < 0 and botS.Z < 0 then if espCache[plr] then hideEsp(espCache[plr]) end; continue end
        if not espCache[plr] then espCache[plr] = mkEsp() end
        local e = espCache[plr]; if not e then continue end
        local h = mathAbs(botS.Y - topS.Y); local w = h*0.6
        local cx = (topS.X+botS.X)*0.5; local bx = cx-w*0.5; local by = topS.Y
        if ESPOptions.Box then
            e.BoxOutline.Visible = true; e.BoxOutline.Position = Vector2New(bx,by); e.BoxOutline.Size = Vector2New(w,h)
            e.Box.Visible = true; e.Box.Position = Vector2New(bx,by); e.Box.Size = Vector2New(w,h); e.Box.Color = ESPColors.Box1
        else e.Box.Visible = false; e.BoxOutline.Visible = false end
        if ESPOptions.Name then e.Name.Visible = true; e.Name.Position = Vector2New(cx,by-16); e.Name.Text = plr.DisplayName; e.Name.Color = ESPColors.Name
        else e.Name.Visible = false end
        if ESPOptions.Distance and myRoot then e.Dist.Visible = true; e.Dist.Position = Vector2New(cx,by+h+2); e.Dist.Text = mathFloor((myRoot.Position-pos).Magnitude).."m"; e.Dist.Color = ESPColors.Distance
        else e.Dist.Visible = false end
        if ESPOptions.HealthBar then
            local barX = bx-6; local barW = 3; local hp = mathClamp(hum.Health/hum.MaxHealth,0,1)
            e.HpBg.Visible = true; e.HpBg.Position = Vector2New(barX,by); e.HpBg.Size = Vector2New(barW,h)
            e.Hp.Visible = true; e.Hp.Position = Vector2New(barX,by+h*(1-hp)); e.Hp.Size = Vector2New(barW,h*hp); e.Hp.Color = Color3.fromRGB(255*(1-hp),255*hp,0)
        else e.HpBg.Visible = false; e.Hp.Visible = false end
        if ESPOptions.Chams then
            local isVis = false
            if now-(e.LastVisCheck or 0) >= 0.1 then e.LastVisCheck = now; isVis = isPartVisible(camPos,pos,ch); e.VisibleNow = isVis else isVis = e.VisibleNow end
            local col = isVis and Color3.fromRGB(0,255,0) or Color3.fromRGB(255,0,0)
            if not e.Chams or not e.Chams.Parent then
                if e.Chams then pcall(function() e.Chams:Destroy() end) end
                local hl = Instance.new("Highlight"); hl.FillTransparency = 0.5; hl.OutlineTransparency = 0.8; hl.FillColor = col; hl.Adornee = ch; hl.Parent = ch; e.Chams = hl
            else e.Chams.FillColor = col end
        else if e.Chams then pcall(function() e.Chams:Destroy() end); e.Chams = nil end end
    end
end

local function patchModuleForJumpShoot(modInst, patchList)
    local s, tbl = pcall(require, modInst)
    if not s or type(tbl) ~= "table" then return end
    local funcNames = {"canFire","canShoot","CanFire","CanShoot","isGrounded","IsGrounded","onGround","OnGround","checkGround","CheckGround","groundCheck","GroundCheck","canUse","CanUse"}
    local boolPatches = {
        {n="requireGrounded",g=false},{n="RequireGrounded",g=false},{n="canFireInAir",g=true},{n="canShootInAir",g=true},
        {n="canFireWhileSwimming",g=true},{n="CanFireInAir",g=true},{n="CanShootInAir",g=true},{n="canFireWhileJumping",g=true},
        {n="CanFireWhileJumping",g=true},{n="requireOnGround",g=false},{n="RequireOnGround",g=false},{n="groundedOnly",g=false},{n="GroundedOnly",g=false},
    }
    local function patchTable(t)
        for _, fname in ipairs(funcNames) do
            if type(t[fname]) == "function" then
                local key = "_jsp_"..fname
                if not t[key] then t[key] = t[fname]; t[fname] = function(...) return true end; patchList[#patchList+1] = {t=t,n=fname,k=key} end
            end
        end
        for _, bp in ipairs(boolPatches) do
            if t[bp.n] ~= nil then
                local key = "_jsp_"..bp.n
                if not t[key] then t[key] = t[bp.n]; t[bp.n] = bp.g; patchList[#patchList+1] = {t=t,n=bp.n,k=key} end
            end
        end
    end
    patchTable(tbl)
    for _, v in pairs(tbl) do if type(v) == "table" then patchTable(v) end end
end

local function scanAndPatchModules(patchList)
    local kws = {"client","gun","weapon","fire","shoot","tool","combat","arm","fps","controller","input","action"}
    local function ok(name) local low = name:lower(); for _,kw in ipairs(kws) do if low:find(kw) then return true end end; return false end
    local function scanContainer(container)
        if not container then return end
        for _, v in ipairs(container:GetDescendants()) do
            if v:IsA("ModuleScript") and ok(v.Name) then pcall(patchModuleForJumpShoot, v, patchList) end
        end
    end
    scanContainer(ReplicatedStorage)
    scanContainer(game:FindFirstChild("StarterPlayer"))
    scanContainer(LocalPlayer:FindFirstChild("PlayerScripts"))
    scanContainer(LocalPlayer:FindFirstChild("Backpack"))
    if cachedChar then scanContainer(cachedChar) end
end

local function unpatchAll(patchList)
    for _, p in ipairs(patchList) do pcall(function() p.t[p.n] = p.t[p.k]; p.t[p.k] = nil end) end
end

local function toggleJumpShoot(en)
    jumpShootEnabled = en
    if en then jumpShootPatched = {}; task_spawn(function() scanAndPatchModules(jumpShootPatched) end)
    else unpatchAll(jumpShootPatched); jumpShootPatched = {} end
end

local function toggleSimpleJumpShoot(en)
    SimpleJumpShootEnabled = en
    if en then simpleJumpShootPatched = {}; task_spawn(function() scanAndPatchModules(simpleJumpShootPatched) end)
    else unpatchAll(simpleJumpShootPatched); simpleJumpShootPatched = {} end
end

local spikesConn = nil
local function removeAllSpikes()
    local count = 0
    for _, obj in ipairs(Workspace:GetDescendants()) do
        if obj.Name == "Spikes" then pcall(function() obj:Destroy() end); count += 1 end
    end
    if count > 0 then pcall(function() Settings:Notify("Removed "..count.." spikes", 3) end) end
end
local function toggleDeleteSpikes(en)
    DeleteSpikesSettings.Enabled = en
    if en then
        removeAllSpikes()
        if spikesConn then pcall(function() spikesConn:Disconnect() end) end
        spikesConn = Workspace.DescendantAdded:Connect(function(obj)
            if DeleteSpikesSettings.Enabled and obj.Name == "Spikes" then task_defer(function() pcall(function() obj:Destroy() end) end) end
        end)
    else
        if spikesConn then pcall(function() spikesConn:Disconnect() end); spikesConn = nil end
    end
end

local toolHighlightConns = {}
local allToolHighlights = {}

local function applyHighlightToTool(tool)
    if not tool:IsA("Tool") then return end
    local oldHl = tool:FindFirstChild("VomToolHL")
    if oldHl then oldHl:Destroy() end
    if not ToolHighlightSettings.Enabled then return end
    local hl = Instance.new("Highlight"); hl.Name = "VomToolHL"; hl.Adornee = tool
    hl.FillTransparency = 1; hl.OutlineColor = ToolHighlightSettings.Color; hl.OutlineTransparency = 0; hl.Parent = tool
    allToolHighlights[tool] = hl
end

local function removeAllToolHighlights()
    for _, hl in pairs(allToolHighlights) do if hl and hl.Parent then pcall(function() hl:Destroy() end) end end
    allToolHighlights = {}
end

local function setupToolHighlights()
    for _, conn in pairs(toolHighlightConns) do pcall(function() conn:Disconnect() end) end
    toolHighlightConns = {}
    if not ToolHighlightSettings.Enabled then removeAllToolHighlights(); return end
    local bp = LocalPlayer:FindFirstChild("Backpack")
    if bp then
        for _, tool in pairs(bp:GetChildren()) do applyHighlightToTool(tool) end
        toolHighlightConns[#toolHighlightConns+1] = bp.ChildAdded:Connect(function(tool)
            if ToolHighlightSettings.Enabled and tool:IsA("Tool") then task_defer(function() applyHighlightToTool(tool) end) end
        end)
    end
    if cachedChar then
        for _, tool in pairs(cachedChar:GetChildren()) do if tool:IsA("Tool") then applyHighlightToTool(tool) end end
        toolHighlightConns[#toolHighlightConns+1] = cachedChar.ChildAdded:Connect(function(tool)
            if ToolHighlightSettings.Enabled and tool:IsA("Tool") then task_defer(function() applyHighlightToTool(tool) end) end
        end)
    end
    toolHighlightConns[#toolHighlightConns+1] = LocalPlayer.CharacterAdded:Connect(function(ch)
        task_wait(1)
        local newBp = LocalPlayer:FindFirstChild("Backpack")
        if newBp then
            for _, tool in pairs(newBp:GetChildren()) do applyHighlightToTool(tool) end
            toolHighlightConns[#toolHighlightConns+1] = newBp.ChildAdded:Connect(function(tool)
                if ToolHighlightSettings.Enabled and tool:IsA("Tool") then task_defer(function() applyHighlightToTool(tool) end) end
            end)
        end
        toolHighlightConns[#toolHighlightConns+1] = ch.ChildAdded:Connect(function(tool)
            if ToolHighlightSettings.Enabled and tool:IsA("Tool") then task_defer(function() applyHighlightToTool(tool) end) end
        end)
    end)
end

local StellarHubMenu = (function() local s,r = pcall(function() return loadstring(game:HttpGet("https://raw.githubusercontent.com/ImNotFatBitch/uimenu/main/StellarhubMenu"))() end); return s and r end)()
local Settings = (function() local s,r = pcall(function() return loadstring(game:HttpGet("https://raw.githubusercontent.com/ImNotFatBitch/uimenu/main/StellarhubSettings"))() end); return s and r end)()
if not StellarHubMenu or not Settings then return end

local Window = StellarHubMenu:Create({
    Title = 'vomagla.2312 rost alpha', Size = UDim2.new(0,700,0,550),
    Position = UDim2.new(0.5,0,0.5,0), ShowOnCreate = true, PerformanceMode = false,
    TweenSpeed = 0.3, UnloadTotal = true, PlayerListEnabled = false,
    WatermarkEnabled = true, WatermarkText = 'vomagla rost alpha',
    CanChangeTitleWatermark = true, ObfuscateConfig = false,
    MobileLogo = 'rbxassetid://14768967526',
})

local Tabs = { Combat = Window:AddTab('Combat'), Visual = Window:AddTab('Visual'), Player = Window:AddTab('Player') }
Settings:InitializeSettingsTab(Window, 'VomaglaConfig', 'Config')

local SABox = Tabs.Combat:AddLeftGroupbox('Silent Aim')
SABox:AddToggle('SA_Enabled', { Text = 'Silent Aim Enabled', Default = false, Callback = function(v) v13.Enabled = v; Toggles.SA_Enabled.Value = v end }):AddKeybind('SA_Key', { Default = 'P', Mode = 'Toggle', Title = 'Keybind' })
SABox:AddToggle('SA_WallCheck', { Text = 'Wall Check', Default = false, Callback = function(v) v13.WallCheck = v end })
SABox:AddDropdown('SA_TargetPart', { Values = {"Head","HumanoidRootPart"}, Default = 2, Multi = false, Text = 'Target Part', Callback = function(v) v13.TargetPart = v end })
SABox:AddDropdown('SA_Priority', { Values = {"Crosshair","Distance"}, Default = 1, Multi = false, Text = 'Priority', Callback = function(v) v13.Priority = v end })
SABox:AddToggle('SA_UseFOV', { Text = 'Use FOV', Default = true, Callback = function(v) v13.UseFOV = v end }):AddColorPicker('SA_FOVColor', { Default = v13.FOVColor, Title = 'FOV Color', Callback = function(v) v13.FOVColor = v end })
SABox:AddSlider('SA_FOVRadius', { Text = 'FOV Radius', Default = 150, Min = 50, Max = 1000, Rounding = 0, Callback = function(v) v13.FOVRadius = v; v13.FOVRadiusSq = v*v; Options.SA_FOVRadius.Value = v end })
SABox:AddSlider('SA_MaxDistance', { Text = 'Max Distance', Default = 500, Min = 50, Max = 3000, Rounding = 0, Callback = function(v) v13.MaxDistance = v; v13.MaxDistanceSq = v*v end })
SABox:AddToggle('AutoFireToggle', { Text = 'Auto Fire', Default = false, Callback = function(v) AutoFireSettings.Enabled = v end })
SABox:AddSlider('AutoFireDelay', { Text = 'Fire Delay', Default = 0.05, Min = 0.01, Max = 0.5, Rounding = 2, Callback = function(v) AutoFireSettings.Delay = v end })

local CMods = Tabs.Combat:AddRightGroupbox('Gun Mods')
local recoilMod = nil
local function setupNoRecoil(val)
    if val then
        if not recoilMod then pcall(function() recoilMod = require(ReplicatedStorage:WaitForChild("Gun"):WaitForChild("Scripts"):WaitForChild("RecoilHandler")) end) end
        if recoilMod then
            if not recoilMod._o_nS then recoilMod._o_nS = recoilMod.nextStep end
            if not recoilMod._o_sRM then recoilMod._o_sRM = recoilMod.setRecoilMultiplier end
            recoilMod.nextStep = function() end; recoilMod.setRecoilMultiplier = function() end
        end
    elseif recoilMod then
        if recoilMod._o_nS then recoilMod.nextStep = recoilMod._o_nS; recoilMod._o_nS = nil end
        if recoilMod._o_sRM then recoilMod.setRecoilMultiplier = recoilMod._o_sRM; recoilMod._o_sRM = nil end
    end
end
CMods:AddToggle('NoRecoil', { Text = 'No Recoil', Default = false, Callback = function(v) setupNoRecoil(v) end })
CMods:AddToggle('JumpShoot', { Text = 'Jump Shoot', Default = false, Callback = function(v) toggleJumpShoot(v) end })
CMods:AddToggle('SimpleShootJump', { Text = 'Air/Jump Shoot (Buggy)', Default = false, Callback = function(v)
    toggleSimpleJumpShoot(v)
    if v then pcall(function() Settings:Notify("WARNING: You enabled a buggy feature. When you run out of ammo, bullet visuals will persist. Enable 'Jump Shoot' instead - it does not have this bug.", 8) end) end
end })

local EBox = Tabs.Visual:AddLeftGroupbox('ESP Settings')
EBox:AddToggle('ESPEnabled', { Text = 'Master Switch', Default = false, Callback = function(v) ESPOptions.Enabled = v; if not v then for _,e in pairs(espCache) do hideEsp(e) end end end })
EBox:AddToggle('ESPBox', { Text = 'Box', Default = false, Callback = function(v) ESPOptions.Box = v end }):AddColorPicker('BoxColor', { Default = ESPColors.Box1, Title = 'Color', Callback = function(v) ESPColors.Box1 = v end })
EBox:AddToggle('ESPChams', { Text = 'Chams (Green=Visible)', Default = false, Callback = function(v) ESPOptions.Chams = v; if not v then for _,e in pairs(espCache) do if e.Chams then pcall(function() e.Chams:Destroy() end); e.Chams = nil end end end end })
EBox:AddToggle('ESPName', { Text = 'Name', Default = false, Callback = function(v) ESPOptions.Name = v end })
EBox:AddToggle('ESPDistance', { Text = 'Distance', Default = false, Callback = function(v) ESPOptions.Distance = v end })
EBox:AddToggle('ESPHealthBar', { Text = 'Health Bar', Default = false, Callback = function(v) ESPOptions.HealthBar = v end })

local VOther = Tabs.Visual:AddRightGroupbox('Features')
VOther:AddToggle('TargetHUDToggle', { Text = 'Target HUD', Default = false, Callback = function(v) ESPOptions.TargetHUD = v end })
VOther:AddToggle('KillNotify', { Text = 'Global Kill Notify', Default = false, Callback = function(v) KillNotify = v end })
VOther:AddToggle('DeleteSpikes', { Text = 'Delete Spikes', Default = false, Callback = function(v) toggleDeleteSpikes(v) end })
VOther:AddToggle('ToolHighlight', { Text = 'Tool Outline', Default = false, Callback = function(v) ToolHighlightSettings.Enabled = v; setupToolHighlights() end
}):AddColorPicker('ToolHighlightColor', { Default = Color3.new(1,1,1), Title = 'Outline Color', Callback = function(v)
    ToolHighlightSettings.Color = v
    for _, hl in pairs(allToolHighlights) do if hl and hl.Parent then pcall(function() hl.OutlineColor = v end) end end
end })

local SG = Tabs.Visual:AddRightGroupbox('Stretch Resolution')
SG:AddToggle('StretchToggle', { Text = 'Stretch Enabled', Default = false, Callback = function(v) StretchSettings.Enabled = v end })
SG:AddSlider('StretchValue', { Text = 'Stretch Amount', Default = 0.65, Min = 0.3, Max = 1.0, Rounding = 2, Callback = function(v) StretchSettings.Value = v end })

local BTG = Tabs.Visual:AddRightGroupbox('Bullet Tracers')
BTG:AddToggle('BulletTrace', { Text = 'Enabled', Default = false, Callback = function(v) TracerSettings.Enabled = v end }):AddColorPicker('TraceColor', { Default = TracerSettings.Color, Title = 'Color', Callback = function(v) TracerSettings.Color = v end })
BTG:AddDropdown('BulletTracersTexture', { Values = {"Beam","Lightning","Heartrate","Chain","Glitch","Swirl"}, Default = 1, Multi = false, Text = 'Texture',
    Callback = function(V) local m = {Beam="rbxassetid://12781852245",Lightning="rbxassetid://446111271",Heartrate="rbxassetid://5830549480",Chain="rbxassetid://9632168658",Glitch="rbxassetid://8089467613",Swirl="rbxassetid://5638168605"}; TracerSettings.TextureID = m[V] or m.Beam end })
BTG:AddSlider('TracerWidth', { Text = 'Width', Min = 0.1, Max = 5, Default = 1.5, Rounding = 1, Callback = function(v) TracerSettings.Width = v end })
BTG:AddSlider('TracerTransparency', { Text = 'Transparency', Min = 0, Max = 1, Default = 0, Rounding = 2, Callback = function(v) TracerSettings.Transparency = v end })
BTG:AddSlider('TracerLifeTime', { Text = 'Life Time', Min = 0.1, Max = 3, Default = 0.5, Rounding = 1, Callback = function(v) TracerSettings.LifeTime = v end })

VOther:AddToggle('FOVChangerToggle', { Text = 'FOV Changer', Default = false, Callback = function(v) FOVSettings.Enabled = v end })
VOther:AddSlider('FOVChangerValue', { Text = 'FOV Value', Min = 50, Max = 120, Default = 70, Rounding = 0, Callback = function(v) FOVSettings.Value = v end })
VOther:AddToggle('ThirdPersonToggle', { Text = 'Third Person', Default = false, Callback = function(v) ThirdPersonSettings.Enabled = v end })
VOther:AddSlider('ThirdPersonDistance', { Text = 'Camera Distance', Min = 5, Max = 50, Default = 10, Rounding = 0, Callback = function(v) ThirdPersonSettings.Distance = v end })
VOther:AddToggle('JumpCircles', { Text = 'Jump Circles', Default = false, Callback = function(v) JumpCircleSettings.Enabled = v end }):AddColorPicker('JumpCircleColor', { Default = Color3.fromRGB(0,170,255), Title = 'Circle Color', Callback = function(v) JumpCircleSettings.Color = v end })
VOther:AddToggle('XRay', { Text = 'X-Ray', Default = false, Callback = function(v) XRaySettings.Enabled = v; Toggles.XRay.Value = v; setXrayState(v, XRaySettings.Transparency) end
}):AddKeybind('XRayKey', { Default = 'X', Mode = 'Toggle', Title = 'Key' })
VOther:AddSlider('XRayTrans', { Text = 'XRay Transparency', Default = 0.5, Min = 0, Max = 1, Rounding = 2, Callback = function(v) XRaySettings.Transparency = v; if Toggles.XRay.Value then setXrayState(true,v) end end })

local WV = Tabs.Visual:AddLeftGroupbox('World Visuals')
local FB = { Enabled = false, Conn = nil }
local OL = { Brightness = Lighting.Brightness, ClockTime = Lighting.ClockTime, FogEnd = Lighting.FogEnd, GlobalShadows = Lighting.GlobalShadows, Ambient = Lighting.Ambient }
local function ToggleFB(st)
    FB.Enabled = st
    if st then
        Lighting.Brightness = 2; Lighting.ClockTime = 14; Lighting.FogEnd = 100000; Lighting.GlobalShadows = false; Lighting.Ambient = Color3.fromRGB(178,178,178)
        if not FB.Conn then FB.Conn = Lighting.Changed:Connect(function()
            if FB.Enabled then Lighting.Brightness = 2; Lighting.ClockTime = 14; Lighting.FogEnd = 100000; Lighting.GlobalShadows = false; Lighting.Ambient = Color3.fromRGB(178,178,178) end
        end) end
    else if FB.Conn then FB.Conn:Disconnect(); FB.Conn = nil end
        Lighting.Brightness = OL.Brightness; Lighting.ClockTime = OL.ClockTime; Lighting.FogEnd = OL.FogEnd; Lighting.GlobalShadows = OL.GlobalShadows; Lighting.Ambient = OL.Ambient end
end
WV:AddToggle('Fullbright', { Text = 'Fullbright', Default = false, Callback = function(v) ToggleFB(v) end })
WV:AddToggle('NoDecoration', { Text = 'No Decoration', Default = false, Callback = function(v) NoDecorationEnabled = v; pcall(function() local t = Workspace:FindFirstChildOfClass("Terrain"); if t and sethiddenproperty then sethiddenproperty(t,"Decoration",not v) end end) end })

local skyFx = nil
WV:AddToggle('SkyColorToggle', { Text = 'Sky Color', Default = false,
    Callback = function(v) SkyColorSettings.Enabled = v
        if v then if not skyFx then skyFx = Instance.new("ColorCorrectionEffect"); skyFx.Name = "VomSky"; skyFx.Parent = Lighting end; skyFx.TintColor = SkyColorSettings.Color
        elseif skyFx then skyFx:Destroy(); skyFx = nil end
    end
}):AddColorPicker('SkyColorPicker', { Default = Color3.fromRGB(135,200,255), Title = 'Sky Color', Callback = function(v) SkyColorSettings.Color = v; if SkyColorSettings.Enabled and skyFx then skyFx.TintColor = v end end })

local SkyData = {["Sky 1"]={Bk=271042516,Dn=271077243,Ft=271042556,Lf=271042310,Rt=271042467,Up=271077958},["Sky 2"]={Bk=17279854976,Dn=17279856318,Ft=17279858447,Lf=17279860360,Rt=17279862234,Up=17279864507},["Sky 3"]={Bk=12064107,Dn=12064152,Ft=12064121,Lf=12063984,Rt=12064115,Up=12064131}}
WV:AddDropdown('SkyboxChanger', { Values = {"Default","Sky 1","Sky 2","Sky 3"}, Default = 1, Multi = false, Text = 'Skybox',
    Callback = function(v) local sky = Lighting:FindFirstChildOfClass("Sky")
        if v == "Default" then if sky then sky:Destroy() end
        elseif SkyData[v] then if not sky then sky = Instance.new("Sky"); sky.Parent = Lighting end; local d = SkyData[v]
            sky.SkyboxBk="rbxassetid://"..d.Bk; sky.SkyboxDn="rbxassetid://"..d.Dn; sky.SkyboxFt="rbxassetid://"..d.Ft
            sky.SkyboxLf="rbxassetid://"..d.Lf; sky.SkyboxRt="rbxassetid://"..d.Rt; sky.SkyboxUp="rbxassetid://"..d.Up end end })

local HSBox = Tabs.Visual:AddLeftGroupbox('Hit Sounds')
local HSList = {None="",Skeet="rbxassetid://83717596220569",["Sonic checkpoint"]="rbxassetid://6817150445",["Sonic.exe laugh"]="rbxassetid://18379039436",["Windows XP Error"]="rbxassetid://9066167010",["Minecraft Hit"]="rbxassetid://8766809464",["one sit nn dog"]="rbxassetid://7380502345",["Door Bell"]="rbxassetid://131845870598154",Duck="rbxassetid://1139819274",Mgs="rbxassetid://81845122657643",Money="rbxassetid://3020841054",Fart="rbxassetid://4809574295",Meow="rbxassetid://7148585764",byebye="rbxassetid://70888261086432"}
local HSNames = {} for n in pairs(HSList) do HSNames[#HSNames+1] = n end
local function applyHS(snd, vol) if not snd or not snd.Parent then return end; if not HitSoundSettings.OriginalSounds[snd] then HitSoundSettings.OriginalSounds[snd] = {SoundId=snd.SoundId,Volume=snd.Volume} end; local id = HSList[HitSoundSettings.Choice] or ""; if id ~= "" then snd.SoundId = id else local o = HitSoundSettings.OriginalSounds[snd]; if o then snd.SoundId = o.SoundId end end; snd.Volume = vol end
local function restoreHS() for snd,d in pairs(HitSoundSettings.OriginalSounds) do if snd and snd.Parent then pcall(function() snd.SoundId = d.SoundId; snd.Volume = d.Volume end) end end; HitSoundSettings.OriginalSounds = {} end
local function chkTool(tool) if not tool or not tool:IsA("Tool") then return end; task_spawn(function() local ba = tool:FindFirstChild("BodyAttach") or tool:WaitForChild("BodyAttach",5); if ba then for _,sn in ipairs({"HitClient","HeadShotClient","HitCharacterClient"}) do local s = ba:FindFirstChild(sn) or ba:WaitForChild(sn,3); if s and s:IsA("Sound") then applyHS(s, HitSoundSettings.Volume) end end end end) end
local function applyHSChar(ch) if not ch then return end; for _,c in pairs(ch:GetChildren()) do if c:IsA("Tool") then chkTool(c) end end end
HSBox:AddToggle('HitSoundEnabled', { Text = 'Hit Sound Enabled', Default = false, Callback = function(v) HitSoundSettings.Enabled = v; if v then if LocalPlayer.Character then applyHSChar(LocalPlayer.Character) end else restoreHS() end end })
HSBox:AddDropdown('HitSoundChoice', { Values = HSNames, Default = 1, Multi = false, Text = 'Sound', Callback = function(v) HitSoundSettings.Choice = v; if HitSoundSettings.Enabled and LocalPlayer.Character then applyHSChar(LocalPlayer.Character) end end })
HSBox:AddSlider('HitSoundVolume', { Text = 'Volume', Min = 0, Max = 10, Default = 1, Rounding = 1, Callback = function(v) HitSoundSettings.Volume = v; if HitSoundSettings.Enabled and LocalPlayer.Character then applyHSChar(LocalPlayer.Character) end end })

local hsConn = nil
local function setupHSChar(ch) if hsConn then pcall(function() hsConn:Disconnect() end); hsConn = nil end
    hsConn = ch.ChildAdded:Connect(function(c) if HitSoundSettings.Enabled and not LibraryUnloaded and c:IsA("Tool") then task_delay(0.3, function() chkTool(c) end) end end)
    task_spawn(function() task_wait(1.5); if HitSoundSettings.Enabled and ch and ch.Parent then applyHSChar(ch) end end) end

local LV = Tabs.Visual:AddLeftGroupbox('Local Player')
local function UpdateFF() local ch = LocalPlayer.Character; if not ch then return end
    if ForceFieldSettings.Enabled then for _,p in pairs(ch:GetDescendants()) do if p:IsA("BasePart") then p.Material = Enum.Material.ForceField; p.Color = ForceFieldSettings.Color end end
    else for _,p in pairs(ch:GetDescendants()) do if p:IsA("BasePart") and p.Material == Enum.Material.ForceField then p.Material = Enum.Material.Plastic; p.Color = Color3.fromRGB(255,255,255) end end end end
LV:AddToggle('ForceFieldChams', { Text = 'ForceField Material', Default = false, Callback = function(v) ForceFieldSettings.Enabled = v; UpdateFF() end
}):AddColorPicker('ForceFieldColor', { Default = Color3.fromRGB(128,128,128), Title = 'Color', Callback = function(v) ForceFieldSettings.Color = v; if ForceFieldSettings.Enabled then UpdateFF() end end })

local MBox = Tabs.Player:AddLeftGroupbox('Movement')
MBox:AddToggle('SpeedEnabled', { Text = 'Speed', Default = false, Callback = function(v) SpeedSettings.Enabled = v end }):AddKeybind('SpeedKey', { Default = 'G', Mode = 'Toggle', Title = 'Speed Key' })
MBox:AddSlider('SpeedValue', { Text = 'Speed Value', Min = 0, Max = 60, Default = 30, Rounding = 0, Callback = function(v) SpeedSettings.Value = v end })
MBox:AddToggle('WaterSpeed', { Text = 'Swim Speed', Default = false, Callback = function(v) WaterSpeed.Enabled = v end }):AddKeybind('WaterSpeedKey', { Default = 'C', Mode = 'Toggle', Title = 'Water Speed' })
MBox:AddSlider('SwimSpeedVal', { Text = 'Water Speed Value', Min = 20, Max = 200, Default = 50, Rounding = 0, Callback = function(v) WaterSpeed.Value = v end })

MBox:AddToggle('NoJumpDelay', { Text = 'No Jump Delay', Default = false,
    Callback = function(v)
        NoJumpDelaySettings.Enabled = v
        if NoJumpDelaySettings.Conn then NoJumpDelaySettings.Conn:Disconnect(); NoJumpDelaySettings.Conn = nil end
        if v then
            NoJumpDelaySettings.Conn = RunService.RenderStepped:Connect(function()
                if not NoJumpDelaySettings.Enabled or LibraryUnloaded then return end
                local ch = cachedChar; if not ch then return end
                local hum = ch:FindFirstChildWhichIsA("Humanoid")
                if not hum or hum.Health <= 0 then return end
                if UserInputService:IsKeyDown(Enum.KeyCode.Space) and hum.FloorMaterial ~= Enum.Material.Air then
                    local now = tick()
                    if now - NoJumpDelaySettings.LastJumpTime >= NoJumpDelaySettings.Delay then
                        hum.Jump = true
                        hum:ChangeState(Enum.HumanoidStateType.Jumping)
                        NoJumpDelaySettings.LastJumpTime = now
                    end
                end
            end)
        end
    end
})
MBox:AddSlider('NoJumpDelayVal', { Text = 'Jump Delay (sec)', Default = 0.1, Min = 0, Max = 0.5, Rounding = 2, Callback = function(v) NoJumpDelaySettings.Delay = v end })

local JSBox = Tabs.Player:AddLeftGroupbox('Super Jump')
JSBox:AddToggle('JumpStunEnabled', { Text = 'Enable Super Jump', Default = false, Callback = function(v) JumpStunSettings.Enabled = v end
}):AddKeybind('JumpStunKey', { Default = 'H', Mode = 'Toggle', Title = 'Super Jump Key' })
JSBox:AddSlider('JumpStunHeight', { Text = 'Jump Height', Default = 100, Min = 60, Max = 200, Rounding = 0, Callback = function(v) JumpStunSettings.Height = v end })

UserInputService.JumpRequest:Connect(function()
    if LibraryUnloaded or not JumpStunSettings.Enabled then return end
    local r = cachedChar and cachedChar:FindFirstChild("HumanoidRootPart")
    if r then r.AssemblyLinearVelocity = Vector3New(r.AssemblyLinearVelocity.X, JumpStunSettings.Height, r.AssemblyLinearVelocity.Z) end
end)

local SpBox = Tabs.Player:AddRightGroupbox('Spider')
local spRay = RaycastParams.new(); spRay.FilterType = Enum.RaycastFilterType.Exclude; spRay.IgnoreWater = true
SpBox:AddToggle('SpiderEnabled', { Text = 'Spider Climb', Default = false, Callback = function(v) SpiderSettings.Enabled = v end }):AddKeybind('SpiderKey', { Default = 'V', Mode = 'Toggle', Title = 'Spider Key' })
SpBox:AddSlider('SpiderSpeed', { Text = 'Climb Speed', Default = 50, Min = 20, Max = 150, Rounding = 0, Callback = function(v) SpiderSettings.Speed = v end })

local function onJump(_, new)
    if new == Enum.HumanoidStateType.Jumping and JumpCircleSettings.Enabled then
        local r = cachedChar and cachedChar:FindFirstChild("HumanoidRootPart")
        if r then
            local p = Instance.new("Part",workspace); p.Anchored = true; p.CanCollide = false; p.Material = Enum.Material.Neon; p.Color = JumpCircleSettings.Color
            p.CFrame = CFrameNew(r.Position - Vector3New(0,2.9,0)) * CFrame.Angles(mathRad(90),0,0)
            local m = Instance.new("SpecialMesh",p); m.MeshId = "rbxassetid://3270017"; m.MeshType = Enum.MeshType.FileMesh
            TweenService:Create(p, TweenInfo.new(0.4), {Transparency=1}):Play()
            TweenService:Create(m, TweenInfo.new(0.4,Enum.EasingStyle.Quad,Enum.EasingDirection.Out), {Scale=Vector3New(8,8,0.2)}):Play()
            task_delay(0.4, function() if p then p:Destroy() end end)
        end
    end
end

local wlK = {"TwigWall","SoloTwigFrame","TrigTwigRoof","TwigFrame","TwigWindow","TwigRoof"}
local xrT = {}
local function isWL(n) for _,k in ipairs(wlK) do if string_find(n,k) then return true end end; return false end
local function regXR(o) if xrT[o] then return end; if (o:IsA("BasePart") or o:IsA("MeshPart") or o:IsA("UnionOperation")) and isWL(o.Name) then xrT[o] = {OT=o.Transparency} end end
function setXrayState(a,t) for p,d in pairs(xrT) do if p and p:IsDescendantOf(Workspace) then p.Transparency = a and t or d.OT end end end
task_spawn(function() for _,o in pairs(Workspace:GetDescendants()) do regXR(o) end end)
Workspace.DescendantAdded:Connect(function(o) regXR(o); if XRaySettings.Enabled and (o:IsA("BasePart") or o:IsA("MeshPart") or o:IsA("UnionOperation")) and isWL(o.Name) then o.Transparency = XRaySettings.Transparency end end)

local HG = Instance.new("ScreenGui"); HG.Name = "STHUD"; HG.Parent = game.CoreGui; HG.Enabled = false
local MF = Instance.new("Frame"); MF.Size = UDim2.new(0,320,0,90); MF.AnchorPoint = Vector2.new(0.5,0.5); MF.Position = UDim2.new(0.5,0,0.85,0); MF.BackgroundColor3 = Color3.fromRGB(30,30,30); MF.BackgroundTransparency = 0.1; MF.BorderSizePixel = 0; MF.Parent = HG
local AI = Instance.new("ImageLabel"); AI.Size = UDim2.new(0,60,0,60); AI.Position = UDim2.new(0,15,0,15); AI.BackgroundTransparency = 1; AI.Parent = MF
local TC = Instance.new("Frame"); TC.BackgroundTransparency = 1; TC.Position = UDim2.new(0,85,0,10); TC.Size = UDim2.new(1,-95,0,50); TC.Parent = MF
local NL = Instance.new("TextLabel"); NL.Size = UDim2.new(1,0,0,25); NL.BackgroundTransparency = 1; NL.Text = ""; NL.Font = Enum.Font.GothamBold; NL.TextSize = 20; NL.TextColor3 = Color3.new(1,1,1); NL.TextXAlignment = Enum.TextXAlignment.Left; NL.Parent = TC
local DL = Instance.new("TextLabel"); DL.Size = UDim2.new(1,0,0,20); DL.Position = UDim2.new(0,0,0,25); DL.BackgroundTransparency = 1; DL.Text = ""; DL.Font = Enum.Font.Gotham; DL.TextSize = 16; DL.TextColor3 = Color3.fromRGB(200,200,200); DL.TextXAlignment = Enum.TextXAlignment.Left; DL.Parent = TC
local HBG2 = Instance.new("Frame"); HBG2.Size = UDim2.new(1,-30,0,12); HBG2.Position = UDim2.new(0,15,1,-20); HBG2.BackgroundColor3 = Color3.fromRGB(15,15,15); HBG2.BorderSizePixel = 0; HBG2.Parent = MF
local HBF2 = Instance.new("Frame"); HBF2.Size = UDim2.new(1,0,1,0); HBF2.BackgroundColor3 = Color3.new(1,1,1); HBF2.BorderSizePixel = 0; HBF2.Parent = HBG2
Instance.new("UIGradient",HBF2).Color = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,60,150)),ColorSequenceKeypoint.new(1,Color3.fromRGB(255,230,50))}

local lastTH = 0
local function UpdTH(now)
    if not ESPOptions.TargetHUD or not v13.Enabled then HG.Enabled = false; return end
    if now-lastTH < 0.15 then return end; lastTH = now
    local ch = CurrentAimTarget and CurrentAimTarget.Parent
    if ch and ch:FindFirstChild("Humanoid") and ch:FindFirstChild("HumanoidRootPart") and ch.Humanoid.Health > 0 then
        HG.Enabled = true
        local pl = Players:GetPlayerFromCharacter(ch)
        if pl then NL.Text = pl.DisplayName; pcall(function() AI.Image = Players:GetUserThumbnailAsync(pl.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size150x150) end)
        else NL.Text = ch.Name; AI.Image = "" end
        local mr = cachedChar and cachedChar:FindFirstChild("HumanoidRootPart")
        if mr then DL.Text = "Distance: "..string_format("%.1f",(mr.Position-ch.HumanoidRootPart.Position).Magnitude).."m" end
        TweenService:Create(HBF2,TweenInfo.new(0.15),{Size=UDim2.new(mathClamp(ch.Humanoid.Health/ch.Humanoid.MaxHealth,0,1),0,1,0)}):Play()
    else HG.Enabled = false end
end

local function OnDied(v) if KillNotify then pcall(function() Settings:Notify(v.DisplayName.." ("..v.Name..") died!",3) end) end end
local function hookDeath(p)
    if p == LocalPlayer then return end
    local function hc(c) local h = c:WaitForChild("Humanoid",10); if h then h.Died:Connect(function() OnDied(p) end) end end
    if p.Character then task_spawn(hc,p.Character) end; p.CharacterAdded:Connect(hc)
end
for _,p in pairs(Players:GetPlayers()) do hookDeath(p) end
Players.PlayerAdded:Connect(hookDeath)

local function onCharAdd(ch)
    local h = ch:WaitForChild("Humanoid",10)
    if h then h.StateChanged:Connect(onJump); if cachedChar == ch then cachedHumanoid = h end end
    ch:WaitForChild("HumanoidRootPart",10); task_wait(0.5)
    if ForceFieldSettings.Enabled then UpdateFF() end
    setupHSChar(ch)
    if jumpShootEnabled then task_spawn(function() task_wait(1); scanAndPatchModules(jumpShootPatched) end) end
    if SimpleJumpShootEnabled then task_spawn(function() task_wait(1); scanAndPatchModules(simpleJumpShootPatched) end) end
end
LocalPlayer.CharacterAdded:Connect(onCharAdd)
if LocalPlayer.Character then task_spawn(function()
    local h = LocalPlayer.Character:FindFirstChild("Humanoid"); if h then h.StateChanged:Connect(onJump) end
    setupHSChar(LocalPlayer.Character)
end) end

local fovGui = Instance.new("ScreenGui"); fovGui.Name = "FOVGui"; fovGui.Parent = game.CoreGui; fovGui.IgnoreGuiInset = false; fovGui.DisplayOrder = 100; fovGui.ResetOnSpawn = false
local fovFrame = Instance.new("Frame"); fovFrame.BackgroundTransparency = 1; fovFrame.AnchorPoint = Vector2.new(0.5,0.5); fovFrame.Position = UDim2.new(0.5,0,0.5,0); fovFrame.Visible = false; fovFrame.Parent = fovGui
Instance.new("UICorner",fovFrame).CornerRadius = UDim.new(1,0)
local fovStroke = Instance.new("UIStroke"); fovStroke.Thickness = 1.5; fovStroke.Color = Color3.new(1,1,1); fovStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border; fovStroke.Parent = fovFrame

local snapline = nil
if DrawingOK then snapline = Drawing.new("Line"); snapline.Visible = false; snapline.Thickness = 2; snapline.Color = Color3.new(1,1,1); snapline.ZIndex = 2; snapline.Transparency = 1 end

local cachedFovD = 300
local lastAim = 0
local ffTick = 0

local physConn = RunService.Heartbeat:Connect(function()
    if LibraryUnloaded then return end
    local ch = cachedChar; if not ch then return end
    local hrp = ch:FindFirstChild("HumanoidRootPart")
    local hum = cachedHumanoid
    if not hrp or not hum or hum.Health <= 0 then return end

    if SpeedSettings.Enabled then
        local md = hum.MoveDirection
        if md.Magnitude > 0 then hrp.AssemblyLinearVelocity = Vector3New(md.X*SpeedSettings.Value, hrp.AssemblyLinearVelocity.Y, md.Z*SpeedSettings.Value) end
    end

    if WaterSpeed.Enabled then
        local bn = "WSV"
        if hum:GetState() == Enum.HumanoidStateType.Swimming then
            local bv = hrp:FindFirstChild(bn); if not bv then bv = Instance.new("BodyVelocity",hrp); bv.Name = bn; bv.MaxForce = Vector3New(1e5,1e5,1e5) end
            bv.Velocity = hum.MoveDirection * WaterSpeed.Value
        else local bv = hrp:FindFirstChild(bn); if bv then bv:Destroy() end end
    end

    if SpiderSettings.Enabled then
        if UserInputService:IsKeyDown(Enum.KeyCode.W) then
            spRay.FilterDescendantsInstances = {ch}
            local result = Workspace:Raycast(hrp.Position, hrp.CFrame.LookVector * 2.5, spRay)
            if result and mathAbs(result.Normal.Y) < 0.5 then
                hrp.AssemblyLinearVelocity = Vector3New(hrp.AssemblyLinearVelocity.X, SpiderSettings.Speed, hrp.AssemblyLinearVelocity.Z)
            end
        end
    end
end)

local visConn = RunService.RenderStepped:Connect(function()
    if LibraryUnloaded then fovFrame.Visible = false; if snapline then snapline.Visible = false end; return end
    local cam = Workspace.CurrentCamera; if not cam then return end; v6 = cam
    local now = tick()

    if StretchSettings.Enabled then cam.CFrame = cam.CFrame * CFrameNew(0,0,0, 1,0,0, 0,StretchSettings.Value,0, 0,0,1) end
    if FOVSettings.Enabled then cam.FieldOfView = FOVSettings.Value end
    if ThirdPersonSettings.Enabled then
        local hrp = cachedChar and cachedChar:FindFirstChild("HumanoidRootPart")
        if hrp then cam.CFrame = CFrameNew(hrp.Position-(cam.CFrame.LookVector*ThirdPersonSettings.Distance), hrp.Position) end
    end

    local nd = v13.FOVRadius * 2
    if nd ~= cachedFovD then cachedFovD = nd; fovFrame.Size = UDim2.new(0,nd,0,nd) end
    fovFrame.Visible = v13.Enabled and v13.UseFOV

    if now - lastAim >= 0.033 then lastAim = now; CurrentAimTarget = v13.Enabled and getClosestPlayer() or nil end
    if v13.Enabled and v13.UseFOV then fovStroke.Color = CurrentAimTarget and v13.FOVColorOnTarget or v13.FOVColorNoTarget end
    if AutoFireSettings.Enabled and v13.Enabled and CurrentAimTarget then
        if now - AutoFireSettings.LastFire >= AutoFireSettings.Delay then AutoFireSettings.LastFire = now; doAutoFire() end
    end

    if snapline then
        if v13.Enabled and v13.Snapline and CurrentAimTarget then
            local p,vis = cam:WorldToViewportPoint(CurrentAimTarget.Position)
            if vis then snapline.Visible = true; snapline.From = getMousePosition(); snapline.To = Vector2New(p.X,p.Y); snapline.Color = v13.SnaplineColor; snapline.Thickness = v13.SnaplineThickness
            else snapline.Visible = false end
        else snapline.Visible = false end
    end

    UpdTH(now)
    updateESP()
    if ForceFieldSettings.Enabled and now - ffTick >= 3 then ffTick = now; UpdateFF() end
end)

if hookmetamethod and getnamecallmethod then
    local v113
    v113 = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
        local method = getnamecallmethod()
        if method == "Raycast" and self == v11 then
            if checkcaller() then return v113(self, ...) end
            local args = {...}
            local origin = args[1]
            local direction = args[2]
            local rayParams = args[3]
            if typeof(origin) == "Vector3" and typeof(direction) == "Vector3" then
                local mag = direction.Magnitude
                if mag > 50 then
                    local target = CurrentAimTarget
                    if v13.Enabled and target and target.Parent then
                        local newDir = (target.Position - origin).Unit * mag
                        local result = v113(self, origin, newDir, rayParams)
                        if TracerSettings.Enabled then task_spawn(createTrace, origin, target.Position) end
                        return result
                    else
                        local result = v113(self, origin, direction, rayParams)
                        if TracerSettings.Enabled then
                            local endPoint = result and result.Position or (origin + direction)
                            task_spawn(createTrace, origin, endPoint)
                        end
                        return result
                    end
                end
            end
        end
        return v113(self, ...)
    end))
end

Settings:OnUnload(function()
    LibraryUnloaded = true
    pcall(function() fovGui:Destroy() end)
    if snapline then pcall(function() snapline:Remove() end) end
    pcall(function() HG:Destroy() end)
    if physConn then pcall(function() physConn:Disconnect() end) end
    if visConn then pcall(function() visConn:Disconnect() end) end
    if NoJumpDelaySettings.Conn then pcall(function() NoJumpDelaySettings.Conn:Disconnect() end) end
    if hsConn then pcall(function() hsConn:Disconnect() end) end
    if spikesConn then pcall(function() spikesConn:Disconnect() end) end
    pcall(function() unpatchAll(jumpShootPatched); jumpShootPatched = {} end)
    pcall(function() unpatchAll(simpleJumpShootPatched); simpleJumpShootPatched = {} end)
    jumpShootEnabled = false; SimpleJumpShootEnabled = false
    pcall(removeAllToolHighlights)
    for _, conn in pairs(toolHighlightConns) do pcall(function() conn:Disconnect() end) end; toolHighlightConns = {}
    pcall(function() local ch = LocalPlayer.Character; if ch then local hrp = ch:FindFirstChild("HumanoidRootPart"); if hrp then local bv = hrp:FindFirstChild("WSV"); if bv then bv:Destroy() end end end end)
    pcall(function() if ForceFieldSettings.Enabled and LocalPlayer.Character then for _,p in pairs(LocalPlayer.Character:GetDescendants()) do if p:IsA("BasePart") and p.Material == Enum.Material.ForceField then p.Material = Enum.Material.Plastic; p.Color = Color3.fromRGB(255,255,255) end end end end)
    pcall(function() if FB.Conn then FB.Conn:Disconnect() end; Lighting.Brightness = OL.Brightness; Lighting.ClockTime = OL.ClockTime; Lighting.FogEnd = OL.FogEnd; Lighting.GlobalShadows = OL.GlobalShadows; Lighting.Ambient = OL.Ambient end)
    pcall(function() local s = Lighting:FindFirstChildOfClass("Sky"); if s then s:Destroy() end end)
    pcall(function() if skyFx then skyFx:Destroy() end end)
    pcall(function() if NoDecorationEnabled then local t = Workspace:FindFirstChildOfClass("Terrain"); if t and sethiddenproperty then sethiddenproperty(t,"Decoration",true) end end end)
    pcall(restoreHS)
    pcall(function() setXrayState(false,0) end)
    for plr in pairs(espCache) do rmEsp(plr) end
    for i = 1, trSize do pcall(function() trPool[i]:Destroy() end) end; trPool = {}; trSize = 0
end)

Features & Information

KILL ALL DDOS SERVER BAN ALL
#rost#best#script

Community Comments (0)

No comments yet for this script.

More Scripts for rost alpha