Script OP
Key Required

Script OP

Gunfight ArenaBread_Is_TastyBread_Is_Tasty 13.7K views 2.2K executesUpdated Apr 22, 2025
1.7/ 5(3 votes)
1233% Positive
Lua Script•599 lines (15762 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local game = game
local players = game:GetService("Players")
local player = players.LocalPlayer
local UIS = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local cg = cloneref(game:GetService("CoreGui"))
local camera = workspace.CurrentCamera
local instance = Instance.new
local udim2 = UDim2.new
local vector2 = Vector2.new
local vector3 = Vector3.new
local color3 = Color3.new
local cframe = CFrame.new
local enum = Enum.KeyCode
local silentaim = false
local silentkeybindtoggle = false
local silentkeybind = false
local noforcefields = false
local weapons = {}
for _,v in pairs(game:GetService("ReplicatedStorage").Weapons:GetChildren()) do
    table.insert(weapons,v.Name)
end
local camos = {}
for _,v in pairs(game:GetService("ReplicatedStorage").Camos:GetChildren()) do
    table.insert(camos,v.Name)
end
local primary
local secondary
local primarycamo
local secondarycamo

local s=player.PlayerScripts.Vortex.Modifiers.Steadiness
local m=player.PlayerScripts.Vortex.Modifiers.Mobility
local function r()
if s and s.Value>0 then s.Value=0 end
if m and m.Value>0 then m.Value=0 end
end
if s then s.Changed:Connect(r) end
if m then m.Changed:Connect(r) end
r()

local function visible(origin, direction, target, ignore)
    local params = RaycastParams.new()

    local filterList = {game.Players.LocalPlayer.Character, target}
    if ignore then
        for _, v in ipairs(ignore) do
            table.insert(filterList, v)
        end
    end

    params.FilterDescendantsInstances = filterList
    return (not workspace:Raycast(origin, direction, params))
end

local closestPlayer = nil
local team = nil

local function getClosestPlayer()
    team = player:GetAttribute("Team")
    local closest, distance = nil, math.huge

    for _, character in ipairs(workspace:GetChildren()) do
        local humanoid = character:FindFirstChild("Humanoid")
        if character and humanoid and humanoid.Health > 0 then
            local player = players:FindFirstChild(character.Name)
            if player and player:GetAttribute("Team") ~= team then
                local head = character:FindFirstChild("Head")
                if head then
                    local w2s, onscreen = camera:WorldToViewportPoint(head.Position)
                    if onscreen then
                        local dist = (vector2(w2s.X, w2s.Y) - vector2(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)).Magnitude
                        if dist < distance then
                            local origin = camera.CFrame.Position
                            local direction = head.Position - origin
                            if visible(origin, direction, character, nil) then
                                closest = character
                                distance = dist
                            end
                        end
                    end
                end
            end
        end
    end
    return closest
end

rs.RenderStepped:Connect(function()
    closestPlayer = getClosestPlayer()
end)

local oldIndex
oldIndex = hookmetamethod(game, "__index", function(self, index)
    local func = debug.getinfo(3, "n")
    if func and func.name then
        if func.name == "Fire" and index == "CFrame" and closestPlayer then
            local head = closestPlayer:FindFirstChild("Head")
            if head then
                local origin = camera.CFrame.Position
                local direction = head.Position - origin
                if visible(origin, direction, closestPlayer, nil) and silentaim then
                    if silentkeybindtoggle then
                        if silentkeybind then
                            return cframe(head.Position)
                        end
                    else
                        return cframe(head.Position)
                    end
                end
            end
        end
    end
    return oldIndex(self, index)
end)

rs.RenderStepped:Connect(function()
    for _,v in pairs(game:GetService("Workspace").Env:GetChildren()) do
        if string.find(v.Name, "Forcefield") and noforcefields then
            if v.FullSphere.Color ~= Color3.fromRGB(0, 102, 255) then
                v:Destroy()
            end
        end
    end
end)

local OrionLib = loadstring(game:HttpGet(('https://raw.githubusercontent.com/jensonhirst/Orion/main/source')))()

OrionLib:MakeNotification({
	Name = "Gunfight Arena",
	Content = "Script made by neutral on ScriptBlox. Code updated and fixed by theystem.",
	Image = "rbxassetid://4483345998",
	Time = 3
})

local Window = OrionLib:MakeWindow({Name = "Gunfight Arena", HidePremium = false, SaveConfig = false, ConfigFolder = "Gunfight Arena Configuration Saving"})


local aimtab = Window:MakeTab({
	Name = "Aim",
	Icon = "rbxassetid://4483345998",
	PremiumOnly = false
})
local weapontab = Window:MakeTab({
	Name = "Weapons",
	Icon = "rbxassetid://4483345998",
	PremiumOnly = false
})

local aimsection = aimtab:AddSection({
	Name = "Silent Aim"
})

aimsection:AddToggle({
	Name = "Silent Aim",
	Default = false,
	Callback = function(Value)
		silentaim = Value
	end    
})

aimsection:AddToggle({
	Name = "Silent Aim Keybind Toggle",
	Default = false,
	Callback = function(Value)
		silentkeybindtoggle = Value
	end    
})

aimsection:AddBind({
	Name = "Silent Aim Keybind",
	Default = enum.E,
	Hold = false,
	Callback = function()
        if silentkeybindtoggle then
            if silentkeybind then
                silentkeybind = false
            else
                silentkeybind = true
            end
        end
	end    
})

local miscsection = aimtab:AddSection({
	Name = "Misc"
})

miscsection:AddToggle({
	Name = "No Enemy Forcefields",
	Default = false,
	Callback = function(Value)
		noforcefields = Value
	end    
})

local primarySection = weapontab:AddSection({
	Name = "Primary Weapon Changer"
})

local primaryDropdown = primarySection:AddDropdown({
	Name = "Gun Selector",
	Default = weapons[1],
	Options = weapons,
	Callback = function(Value)
	  	primary = Value
	end,
})

local primarybutton = primarySection:AddButton({
	Name = "Equip Gun",
	Callback = function()
		player:SetAttribute("Primary",primary)
	end,
})

local primarySection2 = weapontab:AddSection({
	Name = "Primary Weapon Camo Changer"
})

local primaryDropdown2 = primarySection2:AddDropdown({
	Name = "Camo Selector",
	Default = camos[1],
	Options = camos,
	Callback = function(Value)
	  	primarycamo = Value
	end,
})

local primarybutton2 = primarySection2:AddButton({
	Name = "Equip Camo",
	Callback = function()
		player:SetAttribute("PrimaryCamo",primarycamo)
	end,
})

local secondarySection = weapontab:AddSection({
	Name = "Secondary Weapon Changer"
})

local secondarydropdown = secondarySection:AddDropdown({
	Name = "Gun Selector",
	Default = weapons[1],
	Options = weapons,
	Callback = function(Value)
	  	secondary = Value
	end,
})

local secondarybutton = secondarySection:AddButton({
	Name = "Equip Gun",
	Callback = function()
		player:SetAttribute("Secondary",secondary)
	end,
})

local secondarySection2 = weapontab:AddSection({
	Name = "Secondary Weapon Camo Changer"
})

local secondarydropdown2 = secondarySection2:AddDropdown({
	Name = "Camo Selector",
	Default = camos[1],
	Options = camos,
	Callback = function(Value)
	  	secondarycamo = Value
	end,
})

local secondarybutton2 = secondarySection2:AddButton({
	Name = "Equip Camo",
	Callback = function()
		player:SetAttribute("SecondaryCamo",secondarycamo)
	end,
})



local SettingsTab = Window:MakeTab({
	Name = "Settings",
	Icon = "rbxassetid://4483345998",
	PremiumOnly = false
})

local SettingsSection = SettingsTab:AddSection({
	Name = "Settings"
})

SettingsSection:AddButton({
	Name = "Destroy UI",
	Callback = function()
        OrionLib:Destroy()
  	end    
})


OrionLib:Init()--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local game = game
local players = game:GetService("Players")
local player = players.LocalPlayer
local UIS = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local cg = cloneref(game:GetService("CoreGui"))
local camera = workspace.CurrentCamera
local instance = Instance.new
local udim2 = UDim2.new
local vector2 = Vector2.new
local vector3 = Vector3.new
local color3 = Color3.new
local cframe = CFrame.new
local enum = Enum.KeyCode
local silentaim = false
local silentkeybindtoggle = false
local silentkeybind = false
local noforcefields = false
local weapons = {}
for _,v in pairs(game:GetService("ReplicatedStorage").Weapons:GetChildren()) do
    table.insert(weapons,v.Name)
end
local camos = {}
for _,v in pairs(game:GetService("ReplicatedStorage").Camos:GetChildren()) do
    table.insert(camos,v.Name)
end
local primary
local secondary
local primarycamo
local secondarycamo

local s=player.PlayerScripts.Vortex.Modifiers.Steadiness
local m=player.PlayerScripts.Vortex.Modifiers.Mobility
local function r()
if s and s.Value>0 then s.Value=0 end
if m and m.Value>0 then m.Value=0 end
end
if s then s.Changed:Connect(r) end
if m then m.Changed:Connect(r) end
r()

local function visible(origin, direction, target, ignore)
    local params = RaycastParams.new()

    local filterList = {game.Players.LocalPlayer.Character, target}
    if ignore then
        for _, v in ipairs(ignore) do
            table.insert(filterList, v)
        end
    end

    params.FilterDescendantsInstances = filterList
    return (not workspace:Raycast(origin, direction, params))
end

local closestPlayer = nil
local team = nil

local function getClosestPlayer()
    team = player:GetAttribute("Team")
    local closest, distance = nil, math.huge

    for _, character in ipairs(workspace:GetChildren()) do
        local humanoid = character:FindFirstChild("Humanoid")
        if character and humanoid and humanoid.Health > 0 then
            local player = players:FindFirstChild(character.Name)
            if player and player:GetAttribute("Team") ~= team then
                local head = character:FindFirstChild("Head")
                if head then
                    local w2s, onscreen = camera:WorldToViewportPoint(head.Position)
                    if onscreen then
                        local dist = (vector2(w2s.X, w2s.Y) - vector2(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)).Magnitude
                        if dist < distance then
                            local origin = camera.CFrame.Position
                            local direction = head.Position - origin
                            if visible(origin, direction, character, nil) then
                                closest = character
                                distance = dist
                            end
                        end
                    end
                end
            end
        end
    end
    return closest
end

rs.RenderStepped:Connect(function()
    closestPlayer = getClosestPlayer()
end)

local oldIndex
oldIndex = hookmetamethod(game, "__index", function(self, index)
    local func = debug.getinfo(3, "n")
    if func and func.name then
        if func.name == "Fire" and index == "CFrame" and closestPlayer then
            local head = closestPlayer:FindFirstChild("Head")
            if head then
                local origin = camera.CFrame.Position
                local direction = head.Position - origin
                if visible(origin, direction, closestPlayer, nil) and silentaim then
                    if silentkeybindtoggle then
                        if silentkeybind then
                            return cframe(head.Position)
                        end
                    else
                        return cframe(head.Position)
                    end
                end
            end
        end
    end
    return oldIndex(self, index)
end)

rs.RenderStepped:Connect(function()
    for _,v in pairs(game:GetService("Workspace").Env:GetChildren()) do
        if string.find(v.Name, "Forcefield") and noforcefields then
            if v.FullSphere.Color ~= Color3.fromRGB(0, 102, 255) then
                v:Destroy()
            end
        end
    end
end)

local OrionLib = loadstring(game:HttpGet(('https://raw.githubusercontent.com/jensonhirst/Orion/main/source')))()

OrionLib:MakeNotification({
	Name = "Gunfight Arena",
	Content = "Script made by neutral on ScriptBlox. Code updated and fixed by theystem.",
	Image = "rbxassetid://4483345998",
	Time = 3
})

local Window = OrionLib:MakeWindow({Name = "Gunfight Arena", HidePremium = false, SaveConfig = false, ConfigFolder = "Gunfight Arena Configuration Saving"})


local aimtab = Window:MakeTab({
	Name = "Aim",
	Icon = "rbxassetid://4483345998",
	PremiumOnly = false
})
local weapontab = Window:MakeTab({
	Name = "Weapons",
	Icon = "rbxassetid://4483345998",
	PremiumOnly = false
})

local aimsection = aimtab:AddSection({
	Name = "Silent Aim"
})

aimsection:AddToggle({
	Name = "Silent Aim",
	Default = false,
	Callback = function(Value)
		silentaim = Value
	end    
})

aimsection:AddToggle({
	Name = "Silent Aim Keybind Toggle",
	Default = false,
	Callback = function(Value)
		silentkeybindtoggle = Value
	end    
})

aimsection:AddBind({
	Name = "Silent Aim Keybind",
	Default = enum.E,
	Hold = false,
	Callback = function()
        if silentkeybindtoggle then
            if silentkeybind then
                silentkeybind = false
            else
                silentkeybind = true
            end
        end
	end    
})

local miscsection = aimtab:AddSection({
	Name = "Misc"
})

miscsection:AddToggle({
	Name = "No Enemy Forcefields",
	Default = false,
	Callback = function(Value)
		noforcefields = Value
	end    
})

local primarySection = weapontab:AddSection({
	Name = "Primary Weapon Changer"
})

local primaryDropdown = primarySection:AddDropdown({
	Name = "Gun Selector",
	Default = weapons[1],
	Options = weapons,
	Callback = function(Value)
	  	primary = Value
	end,
})

local primarybutton = primarySection:AddButton({
	Name = "Equip Gun",
	Callback = function()
		player:SetAttribute("Primary",primary)
	end,
})

local primarySection2 = weapontab:AddSection({
	Name = "Primary Weapon Camo Changer"
})

local primaryDropdown2 = primarySection2:AddDropdown({
	Name = "Camo Selector",
	Default = camos[1],
	Options = camos,
	Callback = function(Value)
	  	primarycamo = Value
	end,
})

local primarybutton2 = primarySection2:AddButton({
	Name = "Equip Camo",
	Callback = function()
		player:SetAttribute("PrimaryCamo",primarycamo)
	end,
})

local secondarySection = weapontab:AddSection({
	Name = "Secondary Weapon Changer"
})

local secondarydropdown = secondarySection:AddDropdown({
	Name = "Gun Selector",
	Default = weapons[1],
	Options = weapons,
	Callback = function(Value)
	  	secondary = Value
	end,
})

local secondarybutton = secondarySection:AddButton({
	Name = "Equip Gun",
	Callback = function()
		player:SetAttribute("Secondary",secondary)
	end,
})

local secondarySection2 = weapontab:AddSection({
	Name = "Secondary Weapon Camo Changer"
})

local secondarydropdown2 = secondarySection2:AddDropdown({
	Name = "Camo Selector",
	Default = camos[1],
	Options = camos,
	Callback = function(Value)
	  	secondarycamo = Value
	end,
})

local secondarybutton2 = secondarySection2:AddButton({
	Name = "Equip Camo",
	Callback = function()
		player:SetAttribute("SecondaryCamo",secondarycamo)
	end,
})



local SettingsTab = Window:MakeTab({
	Name = "Settings",
	Icon = "rbxassetid://4483345998",
	PremiumOnly = false
})

local SettingsSection = SettingsTab:AddSection({
	Name = "Settings"
})

SettingsSection:AddButton({
	Name = "Destroy UI",
	Callback = function()
        OrionLib:Destroy()
  	end    
})


OrionLib:Init()

Features & Information

Equip any gun Silent aim and can damage players through the shield

Community Comments (10)

shaunrobert02shaunrobert02Apr 23, 2025

dosent work for me

Bread_Is_TastyBread_Is_TastyApr 24, 2025

@shaunrobert02 Probably because of your executor

DecafhaterDecafhaterApr 26, 2025

does this support xeno?

Bread_Is_TastyBread_Is_TastyApr 27, 2025

Yup

exserdashdevexserdashdevApr 30, 2025

@Ferid these skids....

exserdashdevexserdashdevApr 30, 2025

IT JUST CRASHES MY *ING GAME

nickdonna8nickdonna8May 1, 2025

doesnt work on delta (= script sucks like *)

Bread_Is_TastyBread_Is_TastyMay 2, 2025

@nickdonna8 It's works on my delta??

DecafhaterDecafhaterMay 4, 2025

@exserdashdev i am not a skid i just wanted to know if it works for xeno since i just wanted to check it out

emilianousgomemilianousgomMay 13, 2025

yes it works only in delta only and you have to search for it in their cloud.

More Scripts for Gunfight Arena