
Keyless

if getgenv().TFjhJhggCUo then
print("you have already executed this script!")
return
end
getgenv().TFjhJhggCUo = true
local wind = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
local window = wind:CreateWindow({
Title = "Murder vs Sheriff Duels",
Icon = "rbxassetid://139687752061139",
Author = "by Vexal Scripts",
Folder = "VexalScriptsMvsdScript",
Size = UDim2.fromOffset(650, 430),
MinSize = Vector2.new(450, 250),
MaxSize = Vector2.new(850, 560),
Transparent = true,
Theme = "Dark",
Resizable = true,
SideBarWidth = 200,
BackgroundImageTransparency = 0.42,
HideSearchBar = true,
ScrollBarEnabled = false,
User = {
Enabled = true,
Anonymous = true,
Callback = function()
end,
},
})
window:EditOpenButton({
Title = "Vexal",
Icon = "rbxassetid://139687752061139",
CornerRadius = UDim.new(0, 16),
StrokeThickness = 2,
Color = ColorSequence.new(
Color3.fromHex("0A1128"), -- dark blue
Color3.fromHex("4B0082") -- deep purple
),
OnlyMobile = false,
Enabled = true,
Draggable = true,
})
window:Tag({
Title = "NEW UPDATE",
Icon = "shield-check",
Color = Color3.fromHex("#30aaff"),
Radius = 5,
})
local Welcome = window:Tab({
Title = "Welcome",
Icon = "shield-user",
Locked = false,
})
Welcome:Paragraph({
Title = "Welcome to Vexal Scripts",
Desc =
"We hope you find this script useful, if you find any issues please report them below to my discord by making a ticket, thank you for using us!",
Color = Color3.fromHex("#1756B8"),
Thumbnail = "rbxassetid://139687752061139",
ThumbnailSize = 150,
Buttons = {
{
Icon = "square-arrow-out-up-right",
Title = "Copy Our Discord",
Callback = function()
end,
}
}
})
local lockedParagraph = Welcome:Paragraph({
Title = "Unsupported Executor",
Desc =
"You are currently using an unsupported executor (Solara/Xeno). Certain features have been restricted by our automated system to ensure stability. To unlock full functionality and access all available tools, please switch to a recommended executor (Velocity/Madium)!",
Color = "Red",
Locked = false
})
Welcome:Paragraph({
Title = "Changelogs and Patches",
Desc = "You may view our latest changelogs and patches right in our discord server!",
Color = "Green",
Locked = false
})
Welcome:Select()
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local Collection = game:GetService("CollectionService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Debris = game:GetService("Debris")
local Camera = Workspace.CurrentCamera
local Player = Players.LocalPlayer
getgenv().match = false -- whether player is in match or not
local canShoot = true
local matchEnemies = {}
task.spawn(function() -- match status tracking
while true do
if Player then
if Player:GetAttribute("Match") then
getgenv().match = true
else
getgenv().match = false
end
end
task.wait(0.1)
end
end)
task.spawn(function() -- match players tracking
while task.wait(0.1) do
local currentMatch = Player:GetAttribute("Match")
local tempTable = {}
if currentMatch then
for _, v in ipairs(Players:GetPlayers()) do
if v ~= Player and v:GetAttribute("Match") == currentMatch then
local char = v.Character
if char and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then
table.insert(tempTable, v)
end
end
end
end
matchEnemies = tempTable
end
end)
task.spawn(function() -- gun cooldown tracking
local lastGunTracked = nil
local soundConnection = nil
while task.wait(0.1) do
local character = Player.Character
local gun = nil
local locations = { Player:FindFirstChild("Backpack") }
if character then table.insert(locations, character) end
for _, container in ipairs(locations) do
if container then
for _, tool in ipairs(container:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("Fire") and tool:FindFirstChild("Reload") then
gun = tool
break
end
end
end
if gun then break end
end
if gun then
if gun ~= lastGunTracked then
lastGunTracked = gun
if soundConnection then soundConnection:Disconnect() end
local fireSound = gun:FindFirstChild("Fire")
if fireSound and fireSound:IsA("Sound") then
soundConnection = fireSound.Played:Connect(function()
lastFiredTime = tick()
end)
end
end
else
lastGunTracked = nil
if soundConnection then
soundConnection:Disconnect()
soundConnection = nil
end
end
end
end)
local function getGun() -- returns your gun tool
local character = Player.Character
local locations = { Player:FindFirstChild("Backpack") }
if character then table.insert(locations, character) end
for _, container in ipairs(locations) do
if container then
for _, tool in ipairs(container:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("Fire") and tool:FindFirstChild("Reload") then
return tool
end
end
end
end
return nil
end
local function equipGun()
local character = Player.Character
local backpack = Player:FindFirstChildOfClass("Backpack")
if not character or not backpack then
return false
end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 then
return false
end
if getgenv().match then
local gun = getGun()
if gun then
humanoid:EquipTool(gun)
return true
end
end
return false
end
local function equipKnife()
local character = Player.Character
local backpack = Player:FindFirstChildOfClass("Backpack")
if not character or not backpack then
return false
end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 then
return false
end
if getgenv().match then
for _, tool in ipairs(backpack:GetChildren()) do
if tool:IsA("Tool") and tool:GetAttribute("EquipAnimation") == "Knife_Equip" then
humanoid:EquipTool(tool)
return true
end
end
end
return false
end
local BulletRendererColor = Color3.fromRGB(255, 255, 255)
local function BulletRenderer(origin, targetPos)
local function CreatePseudoPart(cf)
local p = Instance.new("Part")
p.Size = Vector3.new(0.1, 0.1, 0.1)
p.Transparency = 1
p.CanCollide = false
p.CanQuery = false
p.CanTouch = false
p.Anchored = true
p.CFrame = cf
p.Parent = workspace
return p
end
local startPart = CreatePseudoPart(CFrame.lookAt(origin, targetPos) * CFrame.new(0, 0, -1))
local endPart = CreatePseudoPart(CFrame.new(targetPos))
local beam = Instance.new("Beam")
beam.Texture = ""
beam.TextureLength = 1
beam.TextureMode = Enum.TextureMode.Stretch
beam.TextureSpeed = 0
beam.Color = ColorSequence.new(BulletRendererColor)
beam.LightEmission = 1
beam.LightInfluence = 0
beam.Brightness = 5
beam.Width0 = 0
beam.Width1 = 0
local att0 = Instance.new("Attachment", startPart)
local att1 = Instance.new("Attachment", endPart)
beam.Attachment0 = att0
beam.Attachment1 = att1
beam.Parent = startPart
local fadeIn = TweenService:Create(beam, TweenInfo.new(0.05, Enum.EasingStyle.Cubic, Enum.EasingDirection.In), {
Width0 = 0.3,
Width1 = 0.6
})
local fadeOut = TweenService:Create(beam, TweenInfo.new(0.1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {
Width0 = 0,
Width1 = 0
})
fadeIn:Play()
fadeIn.Completed:Connect(function()
fadeOut:Play()
end)
Debris:AddItem(startPart, 0.3)
Debris:AddItem(endPart, 0.3)
end
local function CharacterRayOrigin(char)
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
return (hrp.CFrame * CFrame.new(0, 0, hrp.Size.Z / 2)).Position
end
local function ShootGun(target) -- target: player instance
local myChar = Player.Character
if not myChar then return end
local origin = CharacterRayOrigin(myChar)
if not origin then return end
local hitPart = target.Character:FindFirstChild("Head") or target.Character:FindFirstChild("HumanoidRootPart")
local tool = getGun()
if not tool then return end
if hitPart then
canShoot = false
local targetPos = hitPart.Position
local muzzle = tool:FindFirstChild("Muzzle", true)
local startPos = muzzle and muzzle.WorldPosition or origin
BulletRenderer(startPos, targetPos)
ReplicatedStorage.Remotes.ShootGun:FireServer(origin, targetPos, hitPart, targetPos)
local sound = tool and tool:FindFirstChild("Fire")
if sound and sound:IsA("Sound") then
sound:Play()
end
task.delay(2.5, function()
canShoot = true
end)
end
end
local lastNotify = 0
local function NotSupportedFeature()
local currentTime = tick()
if currentTime - lastNotify >= 5 then
lastNotify = currentTime
wind:Notify({
Title = "Uh Oh! Executor not supported!",
Content =
"Sorry! Your executor isn't supported to run this feature, we have made sure of that by running simple checks once you loaded this script!",
Duration = 3,
Icon = "rbxassetid://139687752061139",
})
wind:Notify({
Title = "Notice!",
Content = "If your on PC/Laptop, try using Velocity (its free!), on Android/Ios please try using Delta!",
Duration = 3,
Icon = "rbxassetid://139687752061139",
})
end
end
local function FeatureActivated(boolean)
if boolean then
wind:Notify({
Title = "Activated Feature!!",
Content =
"Enjoying Vexal Scripts? Join our discord server located in the Welcome tab for even better stuff!",
Duration = 3,
Icon = "rbxassetid://139687752061139",
})
else
wind:Notify({
Title = "Disabled Feature!!",
Content =
"Enjoying Vexal Scripts? Join our discord server located in the Welcome tab for even better stuff!",
Duration = 3,
Icon = "rbxassetid://139687752061139",
})
end
end
local Main = window:Tab({
Title = "Main",
Icon = "house",
Locked = false,
})
local ConfigurationSection = Main:Section({
Title = "Configuration",
Opened = true,
})
local autounanchor = false
ConfigurationSection:Toggle({ -- Auto UnAnchor Character
Title = "Auto UnAnchor Character",
Desc = "Lets you bypass the 5 second wait before the match starts",
Icon = "check",
Default = false,
Flag = "AutoAunacnchorToggle",
Callback = function(Value)
autounanchor = Value
local function monitorCharacter(character)
local rootPart = character:WaitForChild("HumanoidRootPart", 5)
local humanoid = character:WaitForChild("Humanoid", 5)
if not rootPart or not humanoid then return end
local connection
connection = RunService.Heartbeat:Connect(function()
if not character.Parent or humanoid.Health <= 0 then
connection:Disconnect()
return
end
if rootPart.Anchored and autounanchor then
rootPart.Anchored = false
end
end)
end
if Player.Character then
task.spawn(monitorCharacter, Player.Character)
end
Player.CharacterAdded:Connect(monitorCharacter)
end
})
ConfigurationSection:Colorpicker({ -- Bullet Tracer Color
Title = "Bullet Tracer Color",
Desc = "Changes the color of your bullet tracer",
Flag = "BulletTracerColorPicker",
Default = BulletRendererColor,
Locked = false,
Callback = function(color)
BulletRendererColor = color
end
})
Main:Space()
getgenv().autoshoot_enabled = false
getgenv().max_distance = 300
getgenv().autoshoot_cooldown = 2
local autoshoot_thread = nil
Main:Toggle({ -- Enable Autoshoot
Title = "Enable Autoshoot",
Desc = "This will automatically shoot enemies for you blatantly.",
Icon = "check",
Default = false,
Flag = "EnableAutoShootToggle",
Callback = function(Value)
getgenv().autoshoot_enabled = Value
FeatureActivated(Value)
if autoshoot_thread then
task.cancel(autoshoot_thread)
autoshoot_thread = nil
end
if getgenv().autoshoot_enabled then
local function has_clear_los(fromPos, toPos, myCharacter, targetCharacter)
local params = RaycastParams.new()
params.FilterDescendantsInstances = { myCharacter, targetCharacter }
params.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(fromPos, (toPos - fromPos), params)
if result then
if not result.Instance:IsDescendantOf(targetCharacter) then
return false
end
end
return true
end
autoshoot_thread = task.spawn(function()
while getgenv().autoshoot_enabled do
local myChar = Player.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
local myHum = myChar and myChar:FindFirstChild("Humanoid")
if getgenv().match and myRoot and myHum and myHum.Health > 0 then
local closestTarget = nil
local closestDistance = getgenv().max_distance or 1000
for _, enemy in ipairs(matchEnemies) do
local char = enemy.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChild("Humanoid")
if enemy ~= Player and hum and hum.Health > 0 and hrp then
local dist = (hrp.Position - myRoot.Position).Magnitude
if dist < closestDistance then
local onDifferentTeam = (not enemy.Team or enemy.Team ~= Player.Team)
local isVisibleInFov = (Camera.CFrame.LookVector:Dot((hrp.Position - Camera.CFrame.Position).Unit) >= 0.9)
if onDifferentTeam and isVisibleInFov then
closestDistance = dist
closestTarget = enemy
end
end
end
end
if closestTarget and canShoot then
local targetChar = closestTarget.Character
local targetHrp = targetChar and targetChar:FindFirstChild("HumanoidRootPart")
if targetHrp and has_clear_los(myRoot.Position, targetHrp.Position, myChar, targetChar) then
ShootGun(closestTarget)
end
end
end
task.wait(0.03)
end
end)
end
end
})
Main:Slider({ -- Autoshoot Max Distance
Title = "Autoshoot Max Distance",
Step = 1,
Flag = "AutoshootMaxDistanceSlider",
Value = {
Min = 0,
Max = 1000,
Default = 300,
},
Callback = function(value)
getgenv().max_distance = value
end
})
Main:Slider({ -- Cooldown
Title = "Cooldown",
Step = 0.5,
Flag = "AutoshootCooldownSlider",
Value = {
Min = 0.5,
Max = 10,
Default = 2,
},
Callback = function(value)
getgenv().autoshoot_cooldown = value
end
})
Main:Space()
getgenv().auto_throw_enabled = false
getgenv().max_distance = 300
getgenv().throw_cooldown = 2
local autoThrowThread = nil
local lastThrowTime = 0
local function throwKnife(targetChar)
local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
if not tool or not tool:FindFirstChild("RightHandle") then return end
local targetHrp = targetChar:FindFirstChild("HumanoidRootPart")
if not targetHrp then return end
local origin = CharacterRayOrigin(game.Players.LocalPlayer.Character)
local direction = (targetHrp.Position - origin).Unit
ReplicatedStorage.Remotes.ThrowStart:FireServer(origin, direction)
require(ReplicatedStorage.Modules.KnifeProjectileController)({
Speed = tool:GetAttribute("ThrowSpeed"),
KnifeProjectile = tool.RightHandle:Clone(),
Direction = direction,
Origin = origin
}, function(raycastResult)
ReplicatedStorage.Remotes.ThrowHit:FireServer(raycastResult and raycastResult.Instance,
raycastResult and raycastResult.Position)
end)
lastThrowTime = tick()
end
local uteuirhguh = Main:Toggle({ -- Enable auto throw knife
Title = "Enable auto throw knife",
Desc = "Automatically throws your knife at enemies",
Default = false,
Callback = function(Value)
getgenv().auto_throw_enabled = Value
if autoThrowThread then
task.cancel(autoThrowThread)
autoThrowThread = nil
end
if Value then
autoThrowThread = task.spawn(function()
while getgenv().auto_throw_enabled do
if (tick() - lastThrowTime) >= getgenv().throw_cooldown then
local myChar = game.Players.LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if myRoot then
local closestTarget = nil
local shortestDist = getgenv().max_distance
for _, player in matchEnemies do
if player ~= game.Players.LocalPlayer and player.Character and player.Team ~= Player.Team then
local enemyHrp = player.Character:FindFirstChild("HumanoidRootPart")
local enemyHum = player.Character:FindFirstChild("Humanoid")
if enemyHrp and enemyHum and enemyHum.Health > 0 then
local dist = (enemyHrp.Position - myRoot.Position).Magnitude
local params = RaycastParams.new()
params.FilterDescendantsInstances = { myChar, player.Character }
params.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(myRoot.Position,
(enemyHrp.Position - myRoot.Position), params)
if dist < shortestDist and not result then
shortestDist = dist
closestTarget = player.Character
end
end
end
end
if closestTarget then
throwKnife(closestTarget)
end
end
end
task.wait(0.1)
end
end)
end
end
})
Main:Slider({ -- Max throw distance
Title = "Max Throw Distance",
Value = { Min = 0, Max = 1000, Default = 300 },
Callback = function(v) getgenv().max_distance = v end
})
Main:Slider({ -- Throw cooldown
Title = "Cooldown",
Value = { Min = 0.5, Max = 10, Default = 2 },
Callback = function(v) getgenv().throw_cooldown = v end
})
Main:Space()
getgenv().triggerbot_enabled = false
getgenv().triggerbot_firing = false
getgenv().triggerbot_cooldown = 1
local function triggerbot_valid_enemy(enemy)
if not enemy or enemy == Player then return false end
local character = enemy.Character
if not character or character.Parent ~= Workspace then return false end
if enemy.Team and enemy.Team == Player.Team then return false end
local humanoid = character:FindFirstChild("Humanoid")
local hrp = character:FindFirstChild("HumanoidRootPart")
local my_hrp = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
if not (humanoid and hrp and my_hrp) then return false end
if humanoid.Health <= 0 then return false end
if Collection:HasTag(character, "Invulnerable") or Collection:HasTag(character, "SpeedTrail") then return false end
return true
end
local function triggerbot_shoot(target)
local my_char = Player.Character
local my_root = my_char and my_char:FindFirstChild("HumanoidRootPart")
local target_hrp = target.Character and target.Character:FindFirstChild("HumanoidRootPart")
if not (my_root and target_hrp) then
getgenv().triggerbot_firing = false
return
end
local hit_part = target.Character:FindFirstChild("LowerTorso")
or target.Character:FindFirstChild("UpperTorso")
or target.Character:FindFirstChild("Head")
if hit_part then
ShootGun(target)
else
getgenv().triggerbot_firing = false
end
end
RunService.Heartbeat:Connect(function()
if not getgenv().triggerbot_enabled then return end
if not getgenv().match then return end
if getgenv().triggerbot_firing then return end -- if locked then exit
local character = Player.Character
if not character then return end
if not getgenv().match then return end
local mousePos = UserInputService:GetMouseLocation()
local ray = Camera:ViewportPointToRay(mousePos.X, mousePos.Y)
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude
rayParams.FilterDescendantsInstances = { character }
rayParams.IgnoreWater = true
local result = Workspace:Raycast(ray.Origin, ray.Direction * 2000, rayParams)
if not result then return end
local hitCharacter = result.Instance:FindFirstAncestorOfClass("Model")
if not hitCharacter then return end
local hitPlayer = Players:GetPlayerFromCharacter(hitCharacter)
if not hitPlayer then return end
if triggerbot_valid_enemy(hitPlayer) then
getgenv().triggerbot_firing = true -- lock from shooting
triggerbot_shoot(hitPlayer)
-- wait cooldown then unlock
task.delay(getgenv().triggerbot_cooldown, function()
getgenv().triggerbot_firing = false
end)
end
end)
Main:Toggle({ -- trigger bot toggle
Title = "Trigger Bot",
Desc = "Automatically shoots when your mouse hovers over an enemy",
Icon = "check",
Default = false,
Flag = "TriggerBotToggle",
Callback = function(Value)
getgenv().triggerbot_enabled = Value
if getgenv().triggerbot_enabled then
FeatureActivated(true)
else
FeatureActivated(false)
end
end
})
Main:Slider({ -- triggerbot cooldown
Title = "Trigger Bot Cooldown",
Step = 0.1,
Flag = "TriggerBotCooldownSlider",
Value = {
Min = 0,
Max = 3,
Default = 1,
},
Callback = function(value)
getgenv().triggerbot_cooldown = value
end
})
Main:Space()
getgenv().hitbox_expander = false
getgenv().hitbox_size = 13
getgenv().hitbox_color = Color3.fromRGB(255, 0, 0)
Main:Toggle({ -- hitbox toggle
Title = "Enable Hitbox Expander",
Desc = "Adds hitbox to all enemies",
Icon = "check",
Default = false,
Flag = "HitboxEnableToggle",
Callback = function(Value)
getgenv().hitbox_expander = Value
if getgenv().hitbox_expander then
FeatureActivated(true)
else
FeatureActivated(false)
end
if not getgenv().hitbox_expander then
for _, player in matchEnemies do
if player ~= Player then
local character = player.Character
local hrp = character and character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.Size = Vector3.new(2, 2, 1)
hrp.CanCollide = false
local hit_box = hrp:FindFirstChild("hit_box")
if hit_box then
hit_box:Destroy()
end
end
end
end
return
end
task.spawn(function()
while getgenv().hitbox_expander and task.wait(0.1) do
for _, player in pairs(Players:GetPlayers()) do
if player ~= Player and player.Character then
local character = player.Character
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then
local enemy = player.Team ~= Player.Team
if enemy then
hrp.Size = Vector3.new(getgenv().hitbox_size, getgenv().hitbox_size,
getgenv().hitbox_size)
hrp.CanCollide = true
local hit_box = hrp:FindFirstChild("hit_box")
if not hit_box then
local box_handle = Instance.new("BoxHandleAdornment")
box_handle.Name = "hit_box"
box_handle.Adornee = hrp
box_handle.AlwaysOnTop = true
box_handle.ZIndex = 10
box_handle.Size = hrp.Size
box_handle.Color3 = getgenv().hitbox_color
box_handle.Transparency = 0.8
box_handle.Parent = hrp
else
hit_box.Size = hrp.Size
end
else
hrp.Size = Vector3.new(2, 2, 1)
hrp.CanCollide = false
local hit_box = hrp:FindFirstChild("hit_box")
if hit_box then
hit_box:Destroy()
end
end
end
end
end
end
end)
end
})
Main:Slider({ -- hitbox size
Title = "Hitbox Size",
Step = 1,
Flag = "HitboxSizeSlider",
Value = {
Min = 5,
Max = 100,
Default = 13,
},
Callback = function(size)
getgenv().hitbox_size = size
end
})
Main:Colorpicker({ -- hitbox color
Title = "Hitbox Color",
Default = Color3.fromRGB(255, 0, 0),
Transparency = 0,
Locked = false,
Flag = "HitboxColorPicker",
Callback = function(color)
getgenv().hitbox_color = color
end
})
Main:Space()
getgenv().original_cooldowns = {}
Main:Toggle({ -- remove gun cooldown
Title = "Remove Gun Cooldown",
Desc = "You may need to re-equip your weapon for changes to apply",
Icon = "check",
Default = false,
Flag = "RemoveGunCooldownToggle",
Callback = function(Value)
getgenv().remove_gun_cooldown = Value
if getgenv().remove_gun_cooldown then
FeatureActivated(true)
else
FeatureActivated(false)
end
if Value then
getgenv().original_cooldowns = {}
task.spawn(function()
while getgenv().remove_gun_cooldown do
task.wait(0.1)
local tools = {}
for _, container in ipairs({ Player:FindFirstChild("Backpack"), Player.Character }) do
if container then
for _, tool in ipairs(container:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("Fire") then
table.insert(tools, tool)
end
end
end
end
for _, tool in ipairs(tools) do
if getgenv().original_cooldowns[tool] == nil then
getgenv().original_cooldowns[tool] = tool:GetAttribute("Cooldown")
end
if tool:GetAttribute("Cooldown") ~= 0 then
tool:SetAttribute("Cooldown", 0)
end
end
end
end)
else
for tool, cooldown in pairs(getgenv().original_cooldowns) do
if tool and tool.Parent then
tool:SetAttribute("Cooldown", cooldown)
end
end
getgenv().original_cooldowns = {}
end
end,
})
local Esp = window:Tab({
Title = "Esp Highlights",
Icon = "eye",
Locked = false,
})
getgenv().esp_team_color = Color3.fromRGB(0, 255, 0)
getgenv().esp_enemy_color = Color3.fromRGB(255, 0, 0)
getgenv().esp_charms_highlighter = false
local charms_esp = CoreGui:FindFirstChild("Highlights") or Instance.new("Folder")
charms_esp.Name = "CharmsESP"
charms_esp.Parent = CoreGui
Esp:Toggle({ -- Enable Charms Highlighte
Title = "Enable Charms Highlighter",
Desc = "Highlights players full body",
Icon = "check",
Default = false,
Flag = "EspCharmsToggle",
Callback = function(Value)
getgenv().esp_charms_highlighter = Value
-- remove all highlight on false
if not getgenv().esp_charms_highlighter then
FeatureActivated(false)
for _, esp_players in ipairs(charms_esp:GetChildren()) do
esp_players:Destroy()
end
return
else
FeatureActivated(true)
end
task.spawn(function()
while getgenv().esp_charms_highlighter do
task.wait(0.1)
for _, v in matchEnemies do
if not getgenv().esp_charms_highlighter then break end
if v ~= Player then
local character = v.Character
if character then
local highlight = charms_esp:FindFirstChild(v.Name)
if not highlight then
highlight = Instance.new("Highlight")
highlight.Name = v.Name
highlight.FillTransparency = 0.6
highlight.OutlineTransparency = 0.4
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Parent = charms_esp
end
local teamColor = (v.Team == Player.Team)
and getgenv().esp_team_color
or getgenv().esp_enemy_color
highlight.FillColor = teamColor
highlight.OutlineColor = teamColor
highlight.Adornee = character
end
end
end
end
end)
end
})
getgenv().esp_skeleton = false
local skeleton_folder = CoreGui:FindFirstChild("Skeletons") or Instance.new("Folder")
skeleton_folder.Name = "Skeletons"
skeleton_folder.Parent = CoreGui
Esp:Toggle({ -- Enable Skeletal Highlighter
Title = "Enable Skeletal Highlighter",
Desc = "Highlights players skeleton",
Icon = "check",
Default = false,
Flag = "EspSkeletonToggle",
Callback = function(Value)
getgenv().esp_skeleton = Value
local function cleanup()
for _, child in ipairs(skeleton_folder:GetChildren()) do
child:Destroy()
end
end
if not Value then
cleanup()
FeatureActivated(false)
return
else
FeatureActivated(true)
end
task.spawn(function()
local function createLine()
local line = Instance.new("LineHandleAdornment")
line.Thickness = 2
line.ZIndex = 10
line.AlwaysOnTop = true
return line
end
local bones = {
{ "Head", "UpperTorso" }, { "UpperTorso", "LowerTorso" },
{ "UpperTorso", "LeftUpperArm" }, { "LeftUpperArm", "LeftLowerArm" }, { "LeftLowerArm", "LeftHand" },
{ "UpperTorso", "RightUpperArm" }, { "RightUpperArm", "RightLowerArm" }, { "RightLowerArm", "RightHand" },
{ "LowerTorso", "LeftUpperLeg" }, { "LeftUpperLeg", "LeftLowerLeg" }, { "LeftLowerLeg", "LeftFoot" },
{ "LowerTorso", "RightUpperLeg" }, { "RightUpperLeg", "RightLowerLeg" }, { "RightLowerLeg", "RightFoot" }
}
while getgenv().esp_skeleton do
task.wait(0.1)
for _, v in matchEnemies do
local char = v.Character
local holder = skeleton_folder:FindFirstChild(v.Name)
if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then
if not holder then
holder = Instance.new("Folder")
holder.Name = v.Name
holder.Parent = skeleton_folder
end
local color = (v.Team == Player.Team) and getgenv().esp_team_color or getgenv().esp_enemy_color
for i, bonePair in ipairs(bones) do
local p1, p2 = char:FindFirstChild(bonePair[1]), char:FindFirstChild(bonePair[2])
if p1 and p2 then
local line = holder:FindFirstChild(tostring(i)) or createLine()
line.Name = tostring(i)
line.Color3 = color
line.Adornee = p1
line.CFrame = CFrame.new(Vector3.zero, p1.CFrame:PointToObjectSpace(p2.Position))
line.Length = (p1.Position - p2.Position).Magnitude
line.Parent = holder
end
end
elseif holder then
holder:Destroy()
end
end
for _, child in ipairs(skeleton_folder:GetChildren()) do
if not Players:FindFirstChild(child.Name) then
child:Destroy()
end
end
end
cleanup()
end)
end
})
getgenv().esp_tracers = false
local tracers_folder = CoreGui:FindFirstChild("Tracers") or Instance.new("Folder")
tracers_folder.Name = "Tracers"
tracers_folder.Parent = CoreGui
local RunService = game:GetService("RunService")
local tracerConnection = nil -- Variable to hold our RenderStepped loop
Esp:Toggle({
Title = "Enable Tracers Highlighter",
Desc = "Draws lines from your character to others smoothly.",
Icon = "check",
Default = false,
Flag = "EspTracersToggle",
Callback = function(Value)
getgenv().esp_tracers = Value
local function cleanup()
for _, child in ipairs(tracers_folder:GetChildren()) do
child:Destroy()
end
end
-- Disconnect existing RenderStepped connection if toggled off
if tracerConnection then
tracerConnection:Disconnect()
tracerConnection = nil
end
if not Value then
cleanup()
if FeatureActivated then FeatureActivated(false) end
return
else
if FeatureActivated then FeatureActivated(true) end
end
-- FIXED: Run on every single frame render for flawless fluidity
tracerConnection = RunService.RenderStepped:Connect(function()
if not getgenv().esp_tracers then
if tracerConnection then
tracerConnection:Disconnect()
tracerConnection = nil
end
cleanup()
return
end
local myChar = Player.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if myRoot then
for _, v in ipairs(matchEnemies) do
if v ~= Player and v.Parent then
local char = v.Character
local tracer = tracers_folder:FindFirstChild(v.Name)
if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then
if not tracer then
tracer = Instance.new("LineHandleAdornment")
tracer.Name = v.Name
tracer.Thickness = 1.5
tracer.ZIndex = 10
tracer.AlwaysOnTop = true
tracer.Parent = tracers_folder
end
local targetRoot = char.HumanoidRootPart
local color = (v.Team == Player.Team) and getgenv().esp_team_color or
getgenv().esp_enemy_color
-- FIXED MATH: Adorn to Terrain and trace directly through World Space coordinates
tracer.Color3 = color
tracer.Adornee = workspace.Terrain
tracer.CFrame = CFrame.lookAt(myRoot.Position, targetRoot.Position)
tracer.Length = (myRoot.Position - targetRoot.Position).Magnitude
elseif tracer then
tracer:Destroy()
end
end
end
else
cleanup()
end
-- Keep the folder clean of disconnected/left players
for _, child in ipairs(tracers_folder:GetChildren()) do
if not Players:FindFirstChild(child.Name) then
child:Destroy()
end
end
end)
end
})
Esp:Colorpicker({ -- Team Color Highlight
Title = "Team Color Highlight",
Desc = "Esp color for teammates",
Default = Color3.fromRGB(0, 255, 0),
Transparency = 0,
Locked = false,
Flag = "EspTeamColorPicker",
Callback = function(color)
getgenv().esp_team_color = color
end
})
Esp:Colorpicker({ -- Enemy Color Highlight
Title = "Enemy Color Highlight",
Desc = "Esp color for enemies",
Default = Color3.fromRGB(255, 0, 0),
Transparency = 0,
Locked = false,
Flag = "EspEnemyColorPicker",
Callback = function(color)
getgenv().esp_enemy_color = color
end
})
local Killing = window:Tab({
Title = "Kill All",
Icon = "skull",
Locked = false,
})
getgenv().autoKillGun = false
Killing:Button({ -- [GUN] Kill all players once
Title = "[GUN] Kill all players once",
Desc = "Kills all players in your server once",
Locked = false,
Callback = function()
if getgenv().match then
local players = game:GetService("Players")
local player = players.LocalPlayer
local myMatch = player:GetAttribute("Match")
if myMatch then
equipGun()
wind:Notify({
Title = "Killing all players!",
Content =
"Enjoying Vexal Scripts? Join our discord server located in the Welcome tab for even better stuff!",
Duration = 3,
Icon = "rbxassetid://139687752061139",
})
for _, plr in matchEnemies do
if plr.Team ~= player.Team and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local target = plr.Character.HumanoidRootPart
local origin = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if origin then
local ShootGun = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ShootGun")
ShootGun:FireServer(origin.Position, target.Position, target, target.Position)
end
end
task.wait(0.1)
end
end
end
end
})
Killing:Toggle({ -- [GUN] Auto kill all players
Title = "[GUN] Auto kill all players",
Desc = "Kills everyone constantly in your server with gun",
Value = false,
Callback = function(state)
getgenv().autoKillGun = state
if state then
FeatureActivated(true)
else
FeatureActivated(false)
end
end
})
task.spawn(function() -- [GUN] auto kill all loop
local players = game:GetService("Players")
local player = players.LocalPlayer
while true do
if getgenv().autoKillGun then
local myMatch = player:GetAttribute("Match")
if myMatch then
equipGun()
for _, plr in matchEnemies do
if plr.Team ~= player.Team and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local target = plr.Character.HumanoidRootPart
local origin = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if origin then
local ShootGun = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ShootGun")
ShootGun:FireServer(origin.Position, target.Position, target, target.Position)
end
end
end
end
end
task.wait(0.1)
end
end)
getgenv().autoKillKnife = false
Killing:Button({ -- [KNIFE] Kill all players once
Title = "[KNIFE] Kill all players once",
Desc = "Kills all players in your server once",
Locked = false,
Callback = function()
if getgenv().match then
local players = game:GetService("Players")
local player = players.LocalPlayer
local myMatch = player:GetAttribute("Match")
if myMatch then
equipKnife()
wind:Notify({
Title = "Killing all players!",
Content =
"Enjoying Vexal Scripts? Join our discord server located in the Welcome tab for even better stuff!",
Duration = 3,
Icon = "rbxassetid://139687752061139",
})
for _, target in ipairs(Players:GetPlayers()) do
if target ~= player and target.Character then
local humanoid = target.Character:FindFirstChild("Humanoid")
local rootPart = target.Character:FindFirstChild("HumanoidRootPart")
if humanoid and humanoid.Health > 0 and rootPart then
local knifeRemote = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ThrowHit")
knifeRemote:FireServer(rootPart, rootPart.Position)
end
end
task.wait(0.1)
end
end
end
end
})
Killing:Toggle({ -- [KNIFE] Auto kill all players
Title = "[KNIFE] Auto kill all players",
Desc = "Kills everyone constantly in your server with knife",
Value = false,
Callback = function(state)
getgenv().autoKillKnife = state
if state then
FeatureActivated(true)
else
FeatureActivated(false)
end
end
})
task.spawn(function() -- [KNIFE] auto kill all loop
local players = game:GetService("Players")
local player = players.LocalPlayer
while true do
if getgenv().autoKillKnife then
local myMatch = player:GetAttribute("Match")
if myMatch then
equipKnife()
for _, target in matchEnemies do
if target ~= player and target.Character then
local humanoid = target.Character:FindFirstChild("Humanoid")
local rootPart = target.Character:FindFirstChild("HumanoidRootPart")
if humanoid and humanoid.Health > 0 and rootPart then
local knifeRemote = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ThrowHit")
knifeRemote:FireServer(rootPart, rootPart.Position)
end
end
end
end
end
task.wait(0.1)
end
end)
local Ability = window:Tab({
Title = "Abilitys",
Icon = "zap",
Locked = false,
})
getgenv().autoShroud = false
getgenv().lowExecutorsShroud = false
getgenv().shroudRate = 1
local ConfigSuccess, Config = pcall(function()
return require(game:GetService("ReplicatedStorage").Ability.AbilityConfig)
end)
local ActivateShroud = ReplicatedStorage.Ability:WaitForChild("ActivateShroud")
local isLocked = (not ConfigSuccess)
local originals = {
SprintCooldown = not isLocked and Config.SprintCooldown or 15,
DashCooldown = not isLocked and Config.DashCooldown or 6,
ShroudCooldown = not isLocked and Config.ShroudCooldown or 7,
SoulReapCombatDelay = not isLocked and Config.SoulReapCombatDelay or 0.35
}
if isLocked then
uteuirhguh:Lock()
end
local function blind(targetPlayer)
local character = Players.LocalPlayer.Character
if targetPlayer and targetPlayer.Character and character then
local targetPart = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
local root = character:FindFirstChild("HumanoidRootPart")
if targetPart and root then
local origin
local direction
if getgenv().lowExecutorsShroud then
origin = root.Position
direction = (targetPart.Position - origin).Unit
ActivateShroud:FireServer(origin, direction)
else
local s1, CharacterRayOrigin = pcall(function()
return require(ReplicatedStorage.Modules
.CharacterRayOrigin)
end)
local s2, ShroudProjectileController = pcall(function()
return require(ReplicatedStorage.Ability
.ShroudProjectileController)
end)
if s1 and s2 then
origin = CharacterRayOrigin(character)
direction = (targetPart.Position - origin).Unit
ActivateShroud:FireServer(origin, direction)
ShroudProjectileController(origin, direction)
else
getgenv().lowExecutorsShroud = true
origin = root.Position
direction = (targetPart.Position - origin).Unit
ActivateShroud:FireServer(origin, direction)
end
end
end
end
end
Ability:Toggle({ -- Auto Shroud All
Title = "Auto Shroud All",
Desc = "Automatically blinds all enemies in match",
Value = false,
Callback = function(state)
getgenv().autoShroud = state
end
})
Ability:Toggle({ -- Low Executor Mode
Title = "Low Executor Mode",
Desc = "Supports all executors, may not notice shroud box/sound but blinds enemy and saves FPS",
Value = false,
Callback = function(state)
getgenv().lowExecutorsShroud = state
end
})
Ability:Slider({ -- Shrouds firing to enemies
Title = "Amount of Shrouds per Enemy",
Desc = "Adjust firing rate per enemy, a high number increases fps for entire game",
Step = 0.1,
Value = {
Min = 1,
Max = 10000,
Default = 1,
},
Callback = function(value)
getgenv().shroudRate = value
end
})
task.spawn(function() -- auto shoot shroud
while true do
if getgenv().autoShroud then
local matchId = Players.LocalPlayer:GetAttribute("Match")
for _, p in matchEnemies do
blind(p)
end
task.wait(1 / getgenv().shroudRate)
else
task.wait(0.5)
end
end
end)
Ability:Space()
task.spawn(function()
if not isLocked then
lockedParagraph:Destroy()
end
end)
Ability:Toggle({ -- Remove Sprint Cooldown
Title = "Remove Sprint Cooldown",
Locked = isLocked,
Value = false,
Callback = function(state)
if state then
FeatureActivated(true)
else
FeatureActivated(false)
end
if not isLocked then
Config.SprintCooldown = state and 0 or originals.SprintCooldown
else
NotSupportedFeature()
end
end
})
Ability:Toggle({ -- Remove Dash Cooldown
Title = "Remove Dash Cooldown",
Locked = isLocked,
Value = false,
Callback = function(state)
if state then
FeatureActivated(true)
else
FeatureActivated(false)
end
if not isLocked then
Config.DashCooldown = state and 0 or originals.DashCooldown
else
NotSupportedFeature()
end
end
})
Ability:Toggle({ -- Remove Shroud Cooldown
Title = "Remove Shroud Cooldown",
Locked = isLocked,
Value = false,
Callback = function(state)
if state then
FeatureActivated(true)
else
FeatureActivated(false)
end
if not isLocked then
Config.ShroudCooldown = state and 0 or originals.ShroudCooldown
else
NotSupportedFeature()
end
end
})
Ability:Toggle({ -- Remove Soul Reap Combat Delay
Title = "Remove Soul Reap Combat Delay",
Locked = isLocked,
Value = false,
Callback = function(state)
if state then
FeatureActivated(true)
else
FeatureActivated(false)
end
if not isLocked then
Config.SoulReapCombatDelay = state and 0 or originals.SoulReapCombatDelay
else
NotSupportedFeature()
end
end
})
Ability:Space()
Ability:Slider({ -- Sprint Time
Title = "Sprint Time",
Step = 0.5,
Locked = isLocked,
Value = {
Min = 0.5,
Max = 10,
Default = not isLocked and Config.SprintTime or 0,
},
Callback = function(value)
if not isLocked then
Config.SprintTime = value
else
NotSupportedFeature()
end
end
})
Ability:Slider({ -- Sprint Boost
Title = "Sprint Boost",
Step = 0.1,
Locked = isLocked,
Value = {
Min = 0,
Max = 5,
Default = not isLocked and Config.SprintBoost or 0,
},
Callback = function(value)
if not isLocked then
Config.SprintBoost = value
else
NotSupportedFeature()
end
end
})
Ability:Slider({ -- Soul Reap Time
Title = "Soul Reap Time",
Step = 0.5,
Locked = isLocked,
Value = {
Min = 0.5,
Max = 10,
Default = not isLocked and Config.SoulReapTime,
},
Callback = function(value)
if not isLocked then
Config.SoulReapTime = value
else
NotSupportedFeature()
end
end
})
Ability:Slider({ -- Soul Reap Speed Boost
Title = "Soul Reap Speed Boost",
Step = 0.1,
Locked = isLocked,
Value = {
Min = 0.1,
Max = 10,
Default = not isLocked and Config.SoulReapSpeedBoost or 0,
},
Callback = function(value)
if not isLocked then
Config.SoulReapSpeedBoost = value
else
NotSupportedFeature()
end
end
})
Ability:Slider({ -- Propeller Jump Boost
Title = "Propeller Jump Boost",
Step = 0.1,
Locked = isLocked,
Value = {
Min = 0.1,
Max = 5,
Default = not isLocked and Config.PropellerJumpBoost or 0,
},
Callback = function(value)
if not isLocked then
Config.PropellerJumpBoost = value
else
NotSupportedFeature()
end
end
})
Ability:Slider({ -- Shroud Time
Title = "Shroud Time",
Step = 0.5,
Locked = isLocked,
Value = {
Min = 0.5,
Max = 10,
Default = not isLocked and Config.ShroudTime or 0,
},
Callback = function(value)
if not isLocked then
Config.ShroudTime = value
else
NotSupportedFeature()
end
end
})
Ability:Slider({ -- Shroud Projectile Speed
Title = "Shroud Projectile Speed",
Step = 2.5,
Locked = isLocked,
Value = {
Min = 2.5,
Max = 100,
Default = not isLocked and Config.ShroudProjectileSpeed or 0,
},
Callback = function(value)
if not isLocked then
Config.ShroudProjectileSpeed = value
else
NotSupportedFeature()
end
end
})
Ability:Slider({ -- Shroud Projectile Range
Title = "Shroud Projectile Range",
Step = 5,
Locked = isLocked,
Value = {
Min = 5,
Max = 1000,
Default = not isLocked and Config.ShroudProjectileRange or 0,
},
Callback = function(value)
if not isLocked then
Config.ShroudProjectileRange = value
else
NotSupportedFeature()
end
end
})
local Teleport = window:Tab({
Title = "Teleport",
Icon = "map-pin",
Locked = false,
})
local lobby = workspace:WaitForChild("Lobby")
local groups = { DuelRing_1v1 = 1, DuelRing_2v2 = 2, DuelRing_3v3 = 3, DuelRing_4v4 = 4 }
local autoWalkToDuelPad = false
local currentPadModel = nil
local lastJumpTime = 0
local function walkTo(model)
local character = Player.Character
if not character then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart")
if humanoid and rootPart and model and model.PrimaryPart then
local targetPosition = model.PrimaryPart.Position
local distance = (rootPart.Position - targetPosition).Magnitude
if distance <= 6 then
getgenv().noclip = false
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
return
end
humanoid.WalkSpeed = 35
humanoid:MoveTo(targetPosition)
if os.clock() - lastJumpTime >= 2 then
humanoid.Jump = true
lastJumpTime = os.clock()
end
getgenv().noclip = true
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end
Teleport:Toggle({
Title = "Enable auto walk to duel pads",
Desc = "Automatically walks to an available duel pad accurately",
Default = false,
Flag = "AutoWalkDuelPadToggle",
Callback = function(value)
autoWalkToDuelPad = value
end
})
Teleport:Space()
task.spawn(function()
while true do
if executionID ~= _G.executionID then break end
if not Player:GetAttribute("Match") then
if autoWalkToDuelPad then
local character = Player.Character
local rootPart = character and character:FindFirstChild("HumanoidRootPart")
if currentPadModel and rootPart then
local currentMaxCount = 1
for groupName, maxCount in pairs(groups) do
if lobby:FindFirstChild("DuelRingsGroup") and lobby.DuelRingsGroup:FindFirstChild(groupName) then
if lobby.DuelRingsGroup[groupName]:FindFirstChild(currentPadModel.Name) then
currentMaxCount = maxCount
break
end
end
end
if currentMaxCount == 1 then
local opponentFound = false
for _, otherPlayer in ipairs(game:GetService("Players"):GetPlayers()) do
if otherPlayer ~= Player and otherPlayer.Character then
local otherRoot = otherPlayer.Character:FindFirstChild("HumanoidRootPart")
if otherRoot then
local dist = (rootPart.Position - otherRoot.Position).Magnitude
if dist <= 8 then
opponentFound = true
break
end
end
end
end
if not opponentFound then
currentPadModel = nil
end
end
end
if currentPadModel and rootPart then
local stillValid = false
for _, groupFolder in ipairs(lobby:GetChildren()) do
if groupFolder.Name == "DuelRingsGroup" then
for groupName, maxCount in pairs(groups) do
local ringFolder = groupFolder:FindFirstChild(groupName)
if ringFolder and ringFolder:FindFirstChild(currentPadModel.Name) then
local totalPlayersInGroup = 0
local maxPlayersForGroup = maxCount * 2
local targetedPadStillNeedsPlayer = false
for _, model in ipairs(ringFolder:GetChildren()) do
if model:IsA("Model") and model.Name == "DuelPad" then
local count = model:GetAttribute("CharacterCount") or 0
totalPlayersInGroup = totalPlayersInGroup + count
if model == currentPadModel and count < maxCount then
targetedPadStillNeedsPlayer = true
end
end
end
if (totalPlayersInGroup == maxPlayersForGroup - 1 and targetedPadStillNeedsPlayer) or (totalPlayersInGroup == maxPlayersForGroup) then
stillValid = true
end
break
end
end
end
if stillValid then break end
end
if not stillValid then currentPadModel = nil end
end
if not currentPadModel then
local foundNewPad = false
for _, groupFolder in ipairs(lobby:GetChildren()) do
if groupFolder.Name == "DuelRingsGroup" then
for groupName, maxCount in pairs(groups) do
local ringFolder = groupFolder:FindFirstChild(groupName)
if ringFolder then
local pads = {}
local totalPlayersInGroup = 0
local maxPlayersForGroup = maxCount * 2
for _, model in ipairs(ringFolder:GetChildren()) do
if model:IsA("Model") and model.Name == "DuelPad" then
local count = model:GetAttribute("CharacterCount") or 0
totalPlayersInGroup = totalPlayersInGroup + count
table.insert(pads, { model = model, count = count })
end
end
if totalPlayersInGroup == maxPlayersForGroup - 1 then
for _, pad in ipairs(pads) do
if pad.count < maxCount then
local opponentReady = true
if maxCount == 1 then
opponentReady = false
for _, otherPlayer in ipairs(game:GetService("Players"):GetPlayers()) do
if otherPlayer ~= Player and otherPlayer.Character then
local otherRoot = otherPlayer.Character:FindFirstChild(
"HumanoidRootPart")
if otherRoot and pad.model.PrimaryPart then
local dist = (otherRoot.Position - pad.model.PrimaryPart.Position)
.Magnitude
if dist <= 8 then -- Opponent is waiting at the pad
opponentReady = true
break
end
end
end
end
end
if opponentReady then
walkTo(pad.model)
if rootPart and pad.model.PrimaryPart then
local distance = (rootPart.Position - pad.model.PrimaryPart.Position)
.Magnitude
if distance <= 6 then currentPadModel = pad.model end
end
foundNewPad = true
task.wait(0.5)
break
end
end
end
end
end
if foundNewPad then break end
end
end
if foundNewPad then break end
end
end
else
currentPadModel = nil
end
else
currentPadModel = nil
end
task.wait(0.2)
end
end)
if lobby and lobby:FindFirstChild("DuelRingsGroup") then
for groupName, _ in pairs(groups) do
local ringFolder = lobby.DuelRingsGroup:FindFirstChild(groupName)
if ringFolder then
local padIndex = 1
for _, model in ipairs(ringFolder:GetChildren()) do
if model:IsA("Model") and model.Name == "DuelPad" then
local sideName = (padIndex % 2 == 1) and "Right" or "Left"
local cleanTitle = "Walk to " .. groupName .. " " .. sideName
Teleport:Button({
Title = cleanTitle,
Locked = false,
Callback = function()
wind:Notify({
Title = "Walking to position!",
Content =
"Enjoying Vexal Scripts? Join our discord server located in the Welcome tab for even better stuff!",
Duration = 3,
Icon = "rbxassetid://139687752061139",
})
walkTo(model)
end
})
padIndex = padIndex + 1
end
end
end
end
end
local fov = window:Tab({
Title = "FOV Shooting",
Icon = "crosshair",
Locked = false,
})
local fov_autoshoot_enabled = false
local fov_manualShoot_enabled = false
local fov_circle_enabled = false
local fov_radius = 100
local fov_shoot_cooldown = 1
local fov_last_shot = 0
local fov_circle = nil
local fov_gunController = nil
local fov_autoshoot_toggle = nil
local fov_manual_toggle = nil
local function createFovCircle()
if fov_circle then
fov_circle:Remove()
end
fov_circle = Drawing.new("Circle")
fov_circle.Thickness = 2
fov_circle.NumSides = 64
fov_circle.Radius = fov_radius
fov_circle.Color = Color3.fromRGB(255, 255, 255)
fov_circle.Transparency = 1
fov_circle.Visible = false
fov_circle.Filled = false
end
createFovCircle()
local function update_fov_circle()
if fov_circle and (fov_circle_enabled or fov_autoshoot_enabled or fov_manualShoot_enabled) then
local mouse_pos = UserInputService:GetMouseLocation()
fov_circle.Position = Vector2.new(mouse_pos.X, mouse_pos.Y)
fov_circle.Radius = fov_radius
fov_circle.Visible = true
elseif fov_circle then
fov_circle.Visible = false
end
end
local function is_in_fov(target_position)
local screen_pos, on_screen = Camera:WorldToViewportPoint(target_position)
if not on_screen then
return false
end
local mouse_pos = UserInputService:GetMouseLocation()
local distance = math.sqrt((screen_pos.X - mouse_pos.X) ^ 2 + (screen_pos.Y - mouse_pos.Y) ^ 2)
return distance <= fov_radius
end
local function has_clear_los(from_pos, to_pos, target_character)
local params = RaycastParams.new()
params.FilterDescendantsInstances = { Player.Character, target_character }
params.FilterType = Enum.RaycastFilterType.Exclude
local result = Workspace:Raycast(from_pos, (to_pos - from_pos), params)
if result then
if not result.Instance:IsDescendantOf(target_character) then
return false
end
end
return true
end
local function valid_enemy(enemy)
if not enemy or enemy == Player then
return false
end
local character = enemy.Character
if not character or character.Parent ~= Workspace then
return false
end
if enemy.Team and enemy.Team == Player.Team then
return false
end
local humanoid = character:FindFirstChild("Humanoid")
local hrp = character:FindFirstChild("HumanoidRootPart")
local my_hrp = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
if not (humanoid and hrp and my_hrp) then
return false
end
if humanoid.Health <= 0 then
return false
end
if Collection:HasTag(character, "Invulnerable") or Collection:HasTag(character, "SpeedTrail") then
return false
end
return true
end
local function shoot_enemy(target)
local my_char = Player.Character
local my_root = my_char and my_char:FindFirstChild("HumanoidRootPart")
local target_hrp = target.Character and target.Character:FindFirstChild("HumanoidRootPart")
if not (my_root and target_hrp) then
return false
end
if not has_clear_los(my_root.Position, target_hrp.Position, target.Character) then
return false
end
if not is_in_fov(target_hrp.Position) then
return false
end
local current_time = tick()
if current_time - fov_last_shot < fov_shoot_cooldown then
return false
end
local hit_part = target.Character:FindFirstChild("LowerTorso") or
target.Character:FindFirstChild("UpperTorso") or
target.Character:FindFirstChild("Head")
if hit_part then
ShootGun(target)
fov_last_shot = current_time
return true
end
return false
end
RunService.Heartbeat:Connect(function()
update_fov_circle()
if not fov_autoshoot_enabled then
return
end
local my_char = Player.Character
if not my_char then
return
end
for _, enemy in pairs(Players:GetPlayers()) do
if valid_enemy(enemy) then
if shoot_enemy(enemy) then
break
end
end
end
end)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if fov_manualShoot_enabled and input.UserInputType == Enum.UserInputType.MouseButton1 then
local current_time = tick()
if current_time - fov_last_shot < fov_shoot_cooldown then
return
end
local my_char = Player.Character
if not my_char then
return
end
for _, enemy in pairs(Players:GetPlayers()) do
if valid_enemy(enemy) then
if shoot_enemy(enemy) then
break
end
end
end
end
end)
local function start_gun_controller_loop()
if fov_gunController then
task.cancel(fov_gunController)
end
fov_gunController = task.spawn(function()
while fov_manualShoot_enabled do
task.wait()
local gun_controller = Workspace:FindFirstChild(Player.Name)
if gun_controller then
local controller = gun_controller:FindFirstChild("GunController")
if controller then
controller.Parent = nil
end
end
end
end)
end
local function stop_gun_controller_loop()
if fov_gunController then
task.cancel(fov_gunController)
fov_gunController = nil
end
end
fov:Toggle({ -- enable fov circle
Title = "Enable FOV Circle",
Desc = "Show FOV circle around your mouse",
Default = false,
Flag = "EnableFovCircle",
Callback = function(value)
fov_circle_enabled = value
end
})
fov_autoshoot_toggle = fov:Toggle({ -- autoshoot fov
Title = "Autoshoot FOV",
Desc = "Automatically shoots enemies in your FOV circle",
Default = false,
Flag = "EnableAutoshootFov",
Callback = function(value)
fov_autoshoot_enabled = value
if value then
if fov_manual_toggle then
fov_manual_toggle:Lock()
end
else
if fov_manual_toggle then
fov_manual_toggle:Unlock()
end
end
end
})
fov_manual_toggle = fov:Toggle({ -- fov manual shoot
Title = "FOV Manual Shoot",
Desc = "Click to shoot enemies in FOV circle",
Default = false,
Flag = "EnableManualShootToggle",
Callback = function(value)
fov_manualShoot_enabled = value
if value then
if fov_autoshoot_toggle then
fov_autoshoot_toggle:Lock()
end
start_gun_controller_loop()
else
if fov_autoshoot_toggle then
fov_autoshoot_toggle:Unlock()
end
stop_gun_controller_loop()
end
end
})
fov:Slider({ -- fov circle size
Title = "FOV Circle Size",
Step = 5,
Flag = "FovCircleSizeSlider",
Value = {
Min = 35,
Max = 300,
Default = 100,
},
Callback = function(value)
fov_radius = value
end
})
fov:Slider({ -- fov shoot cooldown
Title = "FOV Autoshoot Cooldown",
Step = 0.1,
Flag = "FovAutoshootCooldownSlider",
Value = {
Min = 0,
Max = 5,
Default = 2,
},
Callback = function(value)
fov_shoot_cooldown = value
end
})
local Misc = window:Tab({
Title = "Misc",
Icon = "folder",
Locked = false,
})
getgenv().original_speed = 16
getgenv().speed_enabled = false
getgenv().current_speed = 16
getgenv().remove_gun_cooldown = false
Misc:Toggle({ -- auto spin
Title = "Auto Spin",
Desc = "Auto spins for you when not in match",
Default = false,
Callback = function(state)
getgenv().autoSpin = state
task.spawn(function()
while getgenv().autoSpin do
if not Player:GetAttribute("Match") then
local SpinnerService = require(game:GetService("ReplicatedStorage").Dailies.SpinnerService)
SpinnerService.Spin()
end
task.wait(0.1)
end
end)
end,
})
Misc:Toggle({ -- noclip
Title = "Noclip",
Desc = "Allows you to walk through walls",
Default = false,
Callback = function(state)
getgenv().noclip = state
if state then
FeatureActivated(true)
local noclipLoop
noclipLoop = game:GetService("RunService").Stepped:Connect(function()
if not getgenv().noclip then
noclipLoop:Disconnect()
return
end
local char = Player.Character
if char then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
else
FeatureActivated(false)
end
end,
})
Misc:Toggle({ -- speed toggle
Title = "Enable Speed Changer",
Desc = "Changes your walk speed",
Icon = "check",
Default = false,
Flag = "SpeedChangerToggle",
Callback = function(Value)
getgenv().speed_enabled = Value
if Value then
task.spawn(function()
while getgenv().speed_enabled do
local character = Player.Character
local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid and humanoid.WalkSpeed ~= getgenv().current_speed then
humanoid.WalkSpeed = getgenv().current_speed
end
task.wait(0.1)
end
end)
else
local character = Player.Character
local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid then
humanoid.WalkSpeed = getgenv().original_speed
end
end
end
})
Misc:Slider({ -- speed slider
Title = "Walk Speed",
Step = 1,
Value = {
Min = 16,
Max = 200,
Default = 16,
},
Flag = "SpeedChangerSlider",
Callback = function(speed)
getgenv().current_speed = speed
if getgenv().speed_enabled then
local character = Player.Character
local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid then
humanoid.WalkSpeed = speed
end
end
end
})
Player.CharacterAdded:Connect(function(character)
task.wait(0.2)
if getgenv().speed_enabled then
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = getgenv().current_speed
end
end)
local Settings = window:Tab({
Title = "Settings",
Icon = "settings",
Locked = false,
})
local themeNames = {}
for name in pairs(wind.Themes) do
table.insert(themeNames, name)
end
table.sort(themeNames)
Settings:Dropdown({
Title = "Themes",
Desc = "Select a theme",
Flag = "SelectedTheme",
Values = themeNames,
Value = "Dark",
Callback = function(option)
wind:SetTheme(option)
end
})
Settings:Keybind({
Title = "Keybind",
Desc = "Keybind to open ui",
Value = "LeftControl",
Flag = "KeybindOpenWindow",
Callback = function(v)
window:SetToggleKey(Enum.KeyCode[v])
end
})
Settings:Space()
local ConfigManager = window.ConfigManager
local CurrentConfigName = "default"
local ConfigNameInput = Settings:Input({
Title = "Config Name",
Value = CurrentConfigName,
Callback = function(value)
CurrentConfigName = value
end
})
local ConfigDropdown = Settings:Dropdown({
Title = "All Configs",
Values = ConfigManager:AllConfigs(),
Callback = function(value)
CurrentConfigName = value
ConfigNameInput:Set(value)
end
})
Settings:Button({
Title = "Save Config",
Callback = function()
local config = ConfigManager:CreateConfig(CurrentConfigName)
if config:Save() then
ConfigDropdown:Refresh(ConfigManager:AllConfigs())
end
end
})
Settings:Button({
Title = "Load Config",
Callback = function()
local config = ConfigManager:CreateConfig(CurrentConfigName)
if config:Load() then
end
end
})
Settings:Button({
Title = "Delete Config",
Callback = function()
local config = ConfigManager:CreateConfig(CurrentConfigName)
config:Delete()
ConfigDropdown:Refresh(ConfigManager:AllConfigs())
end
})
wind:Notify({
Title = "Welcome to Vexal Scripts MVSD",
Duration = 15,
Icon = "rbxassetid://139687752061139",
})



W Script
Bro just dumped vexal w bro
@thegop7y I am vexal
@deyvix really so bro can u help me make skinchanger
Is it posible to make a like silent aim script for mobile, but more like a closet cheat..?
@Ozieletion silentaim ain't closet
this is a really good script but the only thing is the soul reaper ability doesn't work with this script
@101mil great thing is, its open source, go ahead and fix it yourself!
Hi can you only give me the kill all function
Why did you deobfuscate this cheat I know it's easy to cheat in this game but why?
@mltwstb i made it