Home All Scripts Trending Forum Upload Script Login with Google
Gun Grounds FFA Script | AIMDEX V9 Gun Grounds FFA Script, Keyless 🔓 Keyless

Gun Grounds FFA Script | AIMDEX V9 Gun Grounds FFA Script, Keyless

14 views  •  2 weeks ago
14 views 2 weeks ago #GunGroundsFFA

This Gun Grounds FFA script has been shared by a number of players who found it useful for everyday gameplay. The standout features are Aimbot and Lua Gui Panel. Access is keyless.

What This Script Can Do

  • Aimbot: Assists your targeting so your shots or attacks land more consistently, which is useful in fast-paced Gun Grounds FFA rounds.
  • Lua Gui Panel: Handles Lua Gui Panel automatically in Gun Grounds FFA, so you don’t have to do it manually every session.
  • Access: No key system or Linkvertise redirect needed — just paste and run.
  • Executor Compatibility: Works great on Delta, Codex, Hydrogen, Wave, and most mobile and PC executors.

How to Use This Script

  1. Start Roblox and join a Gun Grounds FFA server — any public server works fine.
  2. Wait until you’re fully loaded into the game world before running any script.
  3. Open your executor app (Delta, Codex, Hydrogen, Wave, or any compatible one) and go to the script tab.
  4. Copy the loadstring code shown on this page and paste it into your executor’s script box, then press Execute.
  5. A GUI or confirmation should appear in-game — use it to turn on the features you want and adjust any settings.
Compatible Executors: Codex, Delta, Hydro, Potassium, Volt, Wave, Xeno
Script Code
-- AIMDEX V9 - ESP Jarvis com FOV NO CENTRO EXATO (SCRIPT COMPLETO)
local success, err = pcall(function()

local Rayfield
local ok, result = pcall(function()
    return loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
end)
if ok and result then
    Rayfield = result
else
    ok, result = pcall(function()
        return loadstring(game:HttpGet('https://raw.githubusercontent.com/shlexware/Rayfield/main/source'))()
    end)
    if ok and result then Rayfield = result end
end

if not Rayfield then
    game:GetService("StarterGui"):SetCore("SendNotification", {Title="Erro", Text="Não foi possível carregar o painel.", Duration=5})
    return
end

local Window = Rayfield:CreateWindow({
    Name = "AIMDEX V9",
    LoadingTitle = "AIMDEX V9",
    LoadingSubtitle = "Bernardo Pereira Carvalho",
    TouchCompatible = true
})

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer

-- Variáveis
local aimbot = false
local aimassist = false
local showfov = false
local spin = false
local fov = 150
local spinspeed = 10
local esp = false
local tracer = false
local espcolor = Color3.fromRGB(255,255,255)
local noclip = false
local aimPartName = "Head"  -- Variável: parte alvo do aimbot
local speedValue = 16       -- Variável: velocidade do personagem (padrão 16)

-- Pasta organizadora
local ESP_Folder = Instance.new("Folder")
ESP_Folder.Name = "AIMDEX_ESP_System"
pcall(function() ESP_Folder.Parent = game.CoreGui end)
if not ESP_Folder.Parent then
    ESP_Folder.Parent = LocalPlayer:WaitForChild("PlayerGui")
end

local TracerGui = Instance.new("ScreenGui")
TracerGui.Name = "Tracers"
TracerGui.Parent = ESP_Folder
TracerGui.IgnoreGuiInset = true

-- Altura desejada da barra de vida em studs (mesmo tamanho do boneco)
local BAR_WORLD_HEIGHT = 5

local espObjects = {}

local function criarESP(player)
    if player == LocalPlayer then return end

    -- Limpa ESP anterior
    if espObjects[player] then
        local obj = espObjects[player]
        if obj.connection then obj.connection:Disconnect() end
        if obj.highlight then obj.highlight:Destroy() end
        if obj.billboardInfo then obj.billboardInfo:Destroy() end
        if obj.billboardHealth then obj.billboardHealth:Destroy() end
        if obj.tracerLine then obj.tracerLine:Destroy() end
        espObjects[player] = nil
    end

    -- Highlight (contorno)
    local highlight = Instance.new("Highlight")
    highlight.Name = player.Name .. "_Highlight"
    highlight.FillTransparency = 1
    highlight.OutlineColor = espcolor
    highlight.OutlineTransparency = 0
    highlight.Enabled = esp
    highlight.Parent = ESP_Folder

    -- Billboard de informações (nome + distância)
    local billboardInfo = Instance.new("BillboardGui")
    billboardInfo.Name = player.Name .. "_Info"
    billboardInfo.Size = UDim2.new(0, 200, 0, 48)      -- largura x altura
    billboardInfo.StudsOffset = Vector3.new(0, 2.5, 0) -- acima da cabeça
    billboardInfo.AlwaysOnTop = true
    billboardInfo.MaxDistance = 2000
    billboardInfo.Enabled = false
    billboardInfo.Parent = ESP_Folder

    local nameLabel = Instance.new("TextLabel", billboardInfo)
    nameLabel.Size = UDim2.new(1, 0, 0.5, 0)
    nameLabel.Position = UDim2.new(0, 0, 0, 0)
    nameLabel.BackgroundTransparency = 1
    nameLabel.Text = player.Name
    nameLabel.TextColor3 = espcolor
    nameLabel.Font = Enum.Font.Code
    nameLabel.TextSize = 14
    nameLabel.TextScaled = false
    nameLabel.TextXAlignment = Enum.TextXAlignment.Center
    nameLabel.TextTruncate = Enum.TextTruncate.AtEnd

    local distLabel = Instance.new("TextLabel", billboardInfo)
    distLabel.Size = UDim2.new(1, 0, 0.5, 0)
    distLabel.Position = UDim2.new(0, 0, 0.5, 0)
    distLabel.BackgroundTransparency = 1
    distLabel.Text = ""
    distLabel.TextColor3 = espcolor
    distLabel.Font = Enum.Font.Code
    distLabel.TextSize = 14
    distLabel.TextScaled = false
    distLabel.TextXAlignment = Enum.TextXAlignment.Center

    -- Billboard da barra de vida (tamanho adaptável)
    local billboardHealth = Instance.new("BillboardGui")
    billboardHealth.Name = player.Name .. "_HealthBar"
    billboardHealth.AlwaysOnTop = true
    billboardHealth.MaxDistance = 2000
    billboardHealth.Enabled = false
    billboardHealth.Parent = ESP_Folder

    local healthBg = Instance.new("Frame", billboardHealth)
    healthBg.Name = "HealthBg"
    healthBg.Size = UDim2.new(1, 0, 1, 0)           -- preencherá todo o billboard
    healthBg.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    healthBg.BorderSizePixel = 0

    local healthBar = Instance.new("Frame", healthBg)
    healthBar.Name = "HealthBar"
    healthBar.Size = UDim2.new(1, 0, 1, 0)          -- será ajustado via script
    healthBar.Position = UDim2.new(0, 0, 1, 0)      -- ancora no fundo
    healthBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
    healthBar.BorderSizePixel = 0
    healthBar.AnchorPoint = Vector2.new(0, 1)       -- cresce para cima

    -- Linha tracer
    local tracerLine = Instance.new("Frame")
    tracerLine.Name = "TracerLine"                  -- nome para identificação
    tracerLine.AnchorPoint = Vector2.new(0.5, 0.5)
    tracerLine.BackgroundColor3 = espcolor
    tracerLine.BorderSizePixel = 0
    tracerLine.Parent = TracerGui

    -- Atualização contínua
    local connection
    connection = RunService.RenderStepped:Connect(function()
        local character = player.Character
        if character and character:FindFirstChild("HumanoidRootPart") and character:FindFirstChild("Humanoid") and character.Humanoid.Health > 0 then
            local hrp = character.HumanoidRootPart
            local humanoid = character.Humanoid
            local head = character:FindFirstChild("Head") or hrp

            billboardInfo.Adornee = head
            billboardHealth.Adornee = head
            highlight.Parent = character

            -- Calcula tamanho visual da barra (proporcional ao jogador)
            local barBottom = head.Position
            local barTop = head.Position + Vector3.new(0, BAR_WORLD_HEIGHT, 0)
            local screenBottom, onBottom = Camera:WorldToViewportPoint(barBottom)
            local screenTop, onTop = Camera:WorldToViewportPoint(barTop)
            if onBottom and onTop then
                local barPixelHeight = math.abs(screenTop.Y - screenBottom.Y)
                billboardHealth.Size = UDim2.new(0, 4, 0, math.max(barPixelHeight, 1))
                -- Ajusta offset para centralizar a barra no boneco
                billboardHealth.StudsOffset = Vector3.new(1.5, -BAR_WORLD_HEIGHT/2, 0)
            end

            -- Atualiza barra de vida
            local healthPct = math.clamp(humanoid.Health / humanoid.MaxHealth, 0, 1)
            healthBar.Size = UDim2.new(1, 0, healthPct, 0)
            healthBar.BackgroundColor3 = Color3.new(1 - healthPct, healthPct, 0)

            -- Distância
            if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
                local dist = math.floor((LocalPlayer.Character.HumanoidRootPart.Position - hrp.Position).Magnitude)
                distLabel.Text = dist .. " studs"
            end

            -- Visibilidade geral (Master ESP)
            highlight.Enabled = esp
            billboardInfo.Enabled = esp
            billboardHealth.Enabled = esp
            highlight.OutlineColor = espcolor
            nameLabel.TextColor3 = espcolor
            distLabel.TextColor3 = espcolor

            -- Tracers
            if tracer and esp then
                local vector, onScreen = Camera:WorldToViewportPoint(hrp.Position)
                if onScreen then
                    tracerLine.Visible = true
                    local bottomCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
                    local targetPos = Vector2.new(vector.X, vector.Y)
                    local distance = (bottomCenter - targetPos).Magnitude
                    tracerLine.Size = UDim2.new(0, 2, 0, distance)
                    local center = (bottomCenter + targetPos) / 2
                    tracerLine.Position = UDim2.new(0, center.X, 0, center.Y)
                    local angle = math.atan2(targetPos.Y - bottomCenter.Y, targetPos.X - bottomCenter.X)
                    tracerLine.Rotation = math.deg(angle) + 90
                else
                    tracerLine.Visible = false
                end
            else
                tracerLine.Visible = false
            end
        else
            billboardInfo.Adornee = nil
            billboardHealth.Adornee = nil
            highlight.Parent = ESP_Folder
            tracerLine.Visible = false
        end
    end)

    espObjects[player] = {
        highlight = highlight,
        billboardInfo = billboardInfo,
        billboardHealth = billboardHealth,
        tracerLine = tracerLine,
        connection = connection
    }
end

-- Inicializa jogadores existentes
for _, player in ipairs(Players:GetPlayers()) do criarESP(player) end
Players.PlayerAdded:Connect(criarESP)
Players.PlayerRemoving:Connect(function(player)
    if espObjects[player] then
        local obj = espObjects[player]
        if obj.connection then obj.connection:Disconnect() end
        if obj.highlight then obj.highlight:Destroy() end
        if obj.billboardInfo then obj.billboardInfo:Destroy() end
        if obj.billboardHealth then obj.billboardHealth:Destroy() end
        if obj.tracerLine then obj.tracerLine:Destroy() end
        espObjects[player] = nil
    end
end)

-- Círculo de FOV
local fovGui = Instance.new("ScreenGui", game.CoreGui)
local fovCircle = Instance.new("Frame", fovGui)
fovCircle.AnchorPoint = Vector2.new(0.5, 0.5)
fovCircle.Position = UDim2.new(0.5, 0, 0.5, 0)
fovCircle.BackgroundTransparency = 1
fovCircle.Visible = false
local uiCorner = Instance.new("UICorner", fovCircle)
uiCorner.CornerRadius = UDim.new(1, 0)
local fovStroke = Instance.new("UIStroke", fovCircle)
fovStroke.Color = Color3.new(1,1,1)
fovStroke.Thickness = 1
fovStroke.Transparency = 0.3

-- Funções auxiliares
local function toScreen(pos)
    local v, on = Camera:WorldToViewportPoint(pos)
    return Vector2.new(v.X, v.Y), v.Z > 0
end

local function isTargetVisible(head)
    local camPos = Camera.CFrame.Position
    local targetPos = head.Position
    local dir = (targetPos - camPos).Unit
    local dist = (targetPos - camPos).Magnitude - 0.1
    local ignoreList = { LocalPlayer.Character, head.Parent }
    local hit = workspace:FindPartOnRayWithIgnoreList(Ray.new(camPos, dir * dist), ignoreList)
    return hit == nil
end

-- Loop principal
RunService.RenderStepped:Connect(function(delta)
    -- Aplica velocidade configurada
    if LocalPlayer.Character then
        local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
        if hum and hum.WalkSpeed ~= speedValue then
            hum.WalkSpeed = speedValue
        end
    end

    if aimbot or aimassist then
        local char = LocalPlayer.Character
        if char and char:FindFirstChild("HumanoidRootPart") then
            local closest = nil
            local minDist = fov
            for _, p in ipairs(Players:GetPlayers()) do
                if p ~= LocalPlayer and p.Character then
                    local targetPart = p.Character:FindFirstChild(aimPartName)
                    if not targetPart then
                        -- Fallback para a cabeça se a parte escolhida não existir
                        targetPart = p.Character:FindFirstChild("Head")
                    end
                    if targetPart then
                        local pos, on = toScreen(targetPart.Position)
                        if on then
                            local d = (Vector2.new(pos.X, pos.Y) - Camera.ViewportSize/2).Magnitude
                            if d < minDist and isTargetVisible(targetPart) then
                                minDist = d
                                closest = targetPart
                            end
                        end
                    end
                end
            end
            if closest then
                local targetPos = closest.Position
                if aimbot then Camera.CFrame = CFrame.new(Camera.CFrame.Position, targetPos)
                elseif aimassist then Camera.CFrame = Camera.CFrame:Lerp(CFrame.new(Camera.CFrame.Position, targetPos), 0.3) end
            end
        end
    end

    if spin then
        local char = LocalPlayer.Character
        if char then
            local hum = char:FindFirstChildOfClass("Humanoid")
            local hrp = char:FindFirstChild("HumanoidRootPart")
            if hum and hrp then
                if hum.AutoRotate then hum.AutoRotate = false end
                hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(spinspeed * 60 * delta), 0)
            end
        end
    else
        local char = LocalPlayer.Character
        if char then
            local hum = char:FindFirstChildOfClass("Humanoid")
            if hum and not hum.AutoRotate then hum.AutoRotate = true end
        end
    end

    if showfov then
        local diameter = fov * 2
        fovCircle.Size = UDim2.new(0, diameter, 0, diameter)
        fovCircle.Visible = true
    else
        fovCircle.Visible = false
    end
end)

RunService.Stepped:Connect(function()
    if noclip and LocalPlayer.Character then
        for _, v in ipairs(LocalPlayer.Character:GetDescendants()) do
            if v:IsA("BasePart") and v.CanCollide then v.CanCollide = false end
        end
    end
end)

-- Interface
local t1 = Window:CreateTab("⚔️ Combate")
t1:CreateToggle({Name="AIMBOT Principal", Callback=function(v) aimbot=v end})
t1:CreateToggle({Name="Assistência de Mira (Aim)", Callback=function(v) aimassist=v end})
t1:CreateSlider({Name="FOV do Aimbot", Range={0,300}, Increment=1, Suffix=" studs", CurrentValue=150, Callback=function(v) fov=v end})
t1:CreateToggle({Name="Mostrar FOV", Callback=function(v) showfov=v end})
t1:CreateToggle({Name="Spin Bot (Giro)", Callback=function(v) spin=v end})
t1:CreateSlider({Name="Velocidade do Spin", Range={1,50}, Increment=1, Suffix="x", CurrentValue=10, Callback=function(v) spinspeed=v end})

-- Botões de seleção de parte do corpo (AIMBOT) com feedback
t1:CreateButton({Name="Cabeça", Callback=function()
    aimPartName = "Head"
    Rayfield:Notify({Title="Aimbot", Content="Mira direcionada para Cabeça", Duration=2})
end})
t1:CreateButton({Name="Peito", Callback=function()
    aimPartName = "UpperTorso"
    Rayfield:Notify({Title="Aimbot", Content="Mira direcionada para Peito", Duration=2})
end})
t1:CreateButton({Name="Perna", Callback=function()
    aimPartName = "LeftLowerLeg"
    Rayfield:Notify({Title="Aimbot", Content="Mira direcionada para Perna", Duration=2})
end})

local t2 = Window:CreateTab("👁️ Visuais")
t2:CreateToggle({Name="Master ESP", Callback=function(v) esp=v end})
t2:CreateToggle({Name="ESP Tracer (Linhas)", Callback=function(v) tracer=v end})
t2:CreateColorPicker({Name="Cor do ESP", Color=espcolor, Callback=function(v) 
    espcolor=v 
    -- Atualiza contornos e textos já existentes
    for _, obj in pairs(ESP_Folder:GetDescendants()) do
        if obj:IsA("Highlight") then obj.OutlineColor = v end
        if obj:IsA("TextLabel") then obj.TextColor3 = v end
    end
    -- Atualiza todas as linhas tracer (dentro do TracerGui)
    for _, line in pairs(TracerGui:GetDescendants()) do
        if line:IsA("Frame") and line.Name == "TracerLine" then
            line.BackgroundColor3 = v
        end
    end
    -- Também atualiza referências futuras (já está em espcolor)
end})

local t3 = Window:CreateTab("🏃 Movimentação")
t3:CreateToggle({Name="Noclip", Callback=function(v) noclip=v end})
t3:CreateButton({Name="Ajustar Colisão", Callback=function()
    if not noclip then Rayfield:Notify({Title="Aviso", Content="Ative o Noclip primeiro.", Duration=3}) return end
    if LocalPlayer.Character then for _, p in ipairs(LocalPlayer.Character:GetDescendants()) do if p:IsA("BasePart") and p.CanCollide then p.CanCollide = false end end end
    Rayfield:Notify({Title="OK", Content="Colisão ajustada.", Duration=2})
end})
t3:CreateSlider({Name="Velocidade", Range={0,300}, Increment=1, Suffix=" studs/s", CurrentValue=16, Callback=function(v) speedValue = v end})

local t4 = Window:CreateTab("⚙️ Sistema & IA")
t4:CreateButton({Name="Modo Rápido (Fast Mode)", Callback=function()
    pcall(function()
        local l = game:GetService("Lighting"); l.GlobalShadows=false; l.Brightness=2
        for _, v in ipairs(l:GetChildren()) do if v:IsA("PostEffect") or v:IsA("BloomEffect") or v:IsA("BlurEffect") then v.Enabled=false end end
        for _, v in ipairs(workspace:GetDescendants()) do
            if v:IsA("ParticleEmitter") or v:IsA("Smoke") or v:IsA("Fire") then v.Enabled=false end
            if v:IsA("BasePart") and v.Material~=Enum.Material.SmoothPlastic then v.Material=Enum.Material.SmoothPlastic end
        end
    end)
    Rayfield:Notify({Title="Fast Mode", Content="Otimização aplicada.", Duration=3})
end})
t4:CreateButton({Name="MODO IA DEX", Callback=function()
    pcall(function()
        collectgarbage()
        local l = game:GetService("Lighting"); l.GlobalShadows=false; l.Brightness=2; l.FogEnd=10000; l.ClockTime=14
        l.Ambient=Color3.new(1,1,1); l.OutdoorAmbient=Color3.new(1,1,1)
        for _, v in ipairs(l:GetChildren()) do if v:IsA("PostEffect") or v:IsA("BloomEffect") or v:IsA("BlurEffect") or v:IsA("SunRaysEffect") then v.Enabled=false end end
        for _, v in ipairs(workspace:GetDescendants()) do
            if v:IsA("ParticleEmitter") or v:IsA("Smoke") or v:IsA("Fire") or v:IsA("Sparkles") then v.Enabled=false end
            if v:IsA("BasePart") then v.Material=Enum.Material.SmoothPlastic end
            if v:IsA("Decal") or v:IsA("Texture") then v.Transparency=1 end
        end
    end)
    Rayfield:Notify({Title="IA DEX Ativado", Content="Otimização máxima estabelecida, senhor.", Duration=4})
end})

-- Monitor de FPS/Ping
local fpsGui = Instance.new("ScreenGui", game.CoreGui)
local fpsFrame = Instance.new("Frame", fpsGui)
fpsFrame.Size = UDim2.new(0,120,0,24)
fpsFrame.Position = UDim2.new(1,-130,0,10)
fpsFrame.BackgroundColor3 = Color3.fromRGB(10,10,10)
fpsFrame.BackgroundTransparency = 0.4
fpsFrame.BorderSizePixel = 0
Instance.new("UIStroke", fpsFrame).Color = Color3.fromRGB(255,255,255)
fpsFrame.UIStroke.Thickness = 1
fpsFrame.UIStroke.Transparency = 0.7
local fpsLabel = Instance.new("TextLabel", fpsFrame)
fpsLabel.Size = UDim2.new(1,-4,1,0)
fpsLabel.Position = UDim2.new(0,2,0,0)
fpsLabel.BackgroundTransparency = 1
fpsLabel.TextColor3 = Color3.fromRGB(255,255,255)
fpsLabel.Font = Enum.Font.Code
fpsLabel.TextSize = 12
fpsLabel.TextXAlignment = Enum.TextXAlignment.Center
fpsLabel.Text = "FPS: -- | Ping: --"
fpsFrame.Visible = false
t4:CreateToggle({Name="Monitor de FPS", Callback=function(v) fpsFrame.Visible=v end})
local fc, tt = 0, 0
RunService.Heartbeat:Connect(function(delta)
    fc = fc + 1; tt = tt + delta
    if tt >= 0.5 then
        local fps = math.floor(fc / tt)
        local ping = math.floor(LocalPlayer:GetNetworkPing() * 1000)
        fpsLabel.Text = string.format("FPS: %d | Ping: %d ms", fps, ping)
        fc, tt = 0, 0
    end
end)

Rayfield:Notify({Title="AIMDEX V9", Content="AIMDEX V9 CRIADO POR BERNARDO PEREIRA CARVALHO EMPRESA DEX.", Duration=5})

end)

if not success then
    warn("Erro: "..tostring(err))
    game:GetService("StarterGui"):SetCore("SendNotification", {Title="Erro AIMDEX", Text=tostring(err), Duration=10})
end
💬 Comments 0
You

No comments yet. Be the first!