local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
-- Store original positions of players
local OriginalPositions = {}
local SelectedPlayer = "all" -- Default to kill all
local BringKillEnabled = false
local SilentKillEnabled = false
local ViewingEnabled = false
local ClickKillEnabled = false
local CurrentTargetHighlight = nil
local ScriptEnabled = true
local KillActive = false -- New variable to control killing state
-- Main GUI
local MainGui = Instance.new("ScreenGui", PlayerGui)
MainGui.Name = "MeleeKillGui"
MainGui.ResetOnSpawn = false
local MainFrame = Instance.new("Frame", MainGui)
MainFrame.Size = UDim2.new(0, 200, 0, 110)
MainFrame.Position = UDim2.new(1, -210, 0, 10)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
MainFrame.BackgroundTransparency = 0.2
MainFrame.Active = true
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 8)
-- Close button
local CloseButton = Instance.new("TextButton", MainFrame)
CloseButton.Size = UDim2.new(0, 20, 0, 20)
CloseButton.Position = UDim2.new(1, -25, 0, 0)
CloseButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
CloseButton.BackgroundTransparency = 0.7
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.Text = "x"
CloseButton.Font = Enum.Font.GothamBold
CloseButton.TextSize = 14
Instance.new("UICorner", CloseButton).CornerRadius = UDim.new(0, 6)
CloseButton.MouseButton1Click:Connect(function()
ScriptEnabled = false
MainGui:Destroy()
for playerName, position in pairs(OriginalPositions) do
local player = Players:FindFirstChild(playerName)
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
player.Character.HumanoidRootPart.CFrame = CFrame.new(position)
end
end
if ViewingEnabled and CurrentCamera then
CurrentCamera.CameraSubject = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid")
end
end)
-- Drag handle
local DragHandle = Instance.new("TextButton", MainFrame)
DragHandle.Size = UDim2.new(1, -25, 0, 15)
DragHandle.Position = UDim2.new(0, 0, 0, 0)
DragHandle.BackgroundTransparency = 0.7
DragHandle.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
DragHandle.Text = "≡≡≡"
DragHandle.TextColor3 = Color3.fromRGB(200, 200, 200)
DragHandle.TextSize = 14
DragHandle.Font = Enum.Font.GothamBold
Instance.new("UICorner", DragHandle).CornerRadius = UDim.new(0, 8)
local dragging = false
local dragStart
local startPos
local function updateDrag(input)
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
DragHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
updateDrag(input)
end
end)
-- Toggle button
local Btn = Instance.new("TextButton", MainFrame)
Btn.Size = UDim2.new(0.6, -10, 0, 25)
Btn.Position = UDim2.new(0, 5, 0, 20)
Btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
Btn.BackgroundTransparency = 0.3
Btn.TextColor3 = Color3.fromRGB(255, 80, 80)
Btn.Font = Enum.Font.GothamBold
Btn.TextSize = 14
Btn.Text = "Start: OFF"
Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 6)
Btn.MouseButton1Click:Connect(function()
if not ScriptEnabled then return end
KillActive = not KillActive
Btn.Text = KillActive and "Start: ON" or "Start: OFF"
Btn.TextColor3 = KillActive and Color3.fromRGB(80, 255, 80) or Color3.fromRGB(255, 80, 80)
if not KillActive then
for playerName, position in pairs(OriginalPositions) do
local player = Players:FindFirstChild(playerName)
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
player.Character.HumanoidRootPart.CFrame = CFrame.new(position)
end
end
OriginalPositions = {}
end
end)
-- Player selection dropdown
local PlayerDropdown = Instance.new("TextButton", MainFrame)
PlayerDropdown.Size = UDim2.new(0.35, -5, 0, 25)
PlayerDropdown.Position = UDim2.new(0.63, 5, 0, 20)
PlayerDropdown.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
PlayerDropdown.BackgroundTransparency = 0.3
PlayerDropdown.TextColor3 = Color3.fromRGB(200, 200, 200)
PlayerDropdown.Font = Enum.Font.GothamBold
PlayerDropdown.TextSize = 12
PlayerDropdown.Text = "all"
Instance.new("UICorner", PlayerDropdown).CornerRadius = UDim.new(0, 6)
local ViewPlayerBtn = Instance.new("TextButton", MainFrame)
ViewPlayerBtn.Size = UDim2.new(0.35, -5, 0, 25)
ViewPlayerBtn.Position = UDim2.new(0.63, 5, 0, 50)
ViewPlayerBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
ViewPlayerBtn.BackgroundTransparency = 0.3
ViewPlayerBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
ViewPlayerBtn.Font = Enum.Font.GothamBold
ViewPlayerBtn.TextSize = 12
ViewPlayerBtn.Text = "View: OFF"
Instance.new("UICorner", ViewPlayerBtn).CornerRadius = UDim.new(0, 6)
local ClickKillBtn = Instance.new("TextButton", MainFrame)
ClickKillBtn.Size = UDim2.new(1, -10, 0, 25)
ClickKillBtn.Position = UDim2.new(0, 5, 0, 80)
ClickKillBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
ClickKillBtn.BackgroundTransparency = 0.3
ClickKillBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
ClickKillBtn.Font = Enum.Font.GothamBold
ClickKillBtn.TextSize = 14
ClickKillBtn.Text = "ClickKill: OFF"
Instance.new("UICorner", ClickKillBtn).CornerRadius = UDim.new(0, 6)
ClickKillBtn.MouseButton1Click:Connect(function()
if not ScriptEnabled then return end
ClickKillEnabled = not ClickKillEnabled
ClickKillBtn.Text = ClickKillEnabled and "ClickKill: ON" or "ClickKill: OFF"
ClickKillBtn.TextColor3 = ClickKillEnabled and Color3.fromRGB(80, 255, 80) or Color3.fromRGB(255, 80, 80)
if ClickKillEnabled then
SilentKillEnabled = false
SilentKillBtn.Text = "SilentMode: OFF"
SilentKillBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
end
if CurrentTargetHighlight then
CurrentTargetHighlight:Destroy()
CurrentTargetHighlight = nil
end
end)
-- SilentKill toggle button
local SilentKillBtn = Instance.new("TextButton", MainFrame)
SilentKillBtn.Size = UDim2.new(0.6, -10, 0, 25)
SilentKillBtn.Position = UDim2.new(0, 5, 0, 50)
SilentKillBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
SilentKillBtn.BackgroundTransparency = 0.3
SilentKillBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
SilentKillBtn.Font = Enum.Font.GothamBold
SilentKillBtn.TextSize = 14
SilentKillBtn.Text = "SilentMode: OFF"
Instance.new("UICorner", SilentKillBtn).CornerRadius = UDim.new(0, 6)
SilentKillBtn.MouseButton1Click:Connect(function()
if not ScriptEnabled then return end
SilentKillEnabled = not SilentKillEnabled
SilentKillBtn.Text = SilentKillEnabled and "SilentMode: ON" or "SilentMode: OFF"
SilentKillBtn.TextColor3 = SilentKillEnabled and Color3.fromRGB(80, 255, 80) or Color3.fromRGB(255, 80, 80)
if SilentKillEnabled then
ClickKillEnabled = false
ClickKillBtn.Text = "ClickKill: OFF"
ClickKillBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
end
end)
-- Dropdown frame
local DropdownFrame = Instance.new("Frame", MainFrame)
DropdownFrame.Size = UDim2.new(0, 150, 0, 150)
DropdownFrame.Position = UDim2.new(0, PlayerDropdown.AbsolutePosition.X - MainFrame.AbsolutePosition.X, 0, PlayerDropdown.AbsolutePosition.Y - MainFrame.AbsolutePosition.Y + 30)
DropdownFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
DropdownFrame.BackgroundTransparency = 0.2
DropdownFrame.Visible = false
DropdownFrame.ZIndex = 2
DropdownFrame.ClipsDescendants = true
local DropdownScroll = Instance.new("ScrollingFrame", DropdownFrame)
DropdownScroll.Size = UDim2.new(1, 0, 1, 0)
DropdownScroll.BackgroundTransparency = 1
DropdownScroll.ScrollBarThickness = 5
DropdownScroll.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
DropdownScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
DropdownScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
local DropdownLayout = Instance.new("UIListLayout", DropdownScroll)
DropdownLayout.Padding = UDim.new(0, 5)
DropdownLayout.SortOrder = Enum.SortOrder.LayoutOrder
local AllOption = Instance.new("TextButton", DropdownScroll)
AllOption.Size = UDim2.new(1, -10, 0, 25)
AllOption.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
AllOption.BackgroundTransparency = 0.3
AllOption.TextColor3 = Color3.fromRGB(200, 200, 200)
AllOption.Font = Enum.Font.GothamBold
AllOption.TextSize = 14
AllOption.Text = "all"
AllOption.LayoutOrder = 0
Instance.new("UICorner", AllOption).CornerRadius = UDim.new(0, 6)
AllOption.MouseButton1Click:Connect(function()
if not ScriptEnabled then return end
SelectedPlayer = "all"
PlayerDropdown.Text = "all"
DropdownFrame.Visible = false
for playerName, position in pairs(OriginalPositions) do
local plr = Players:FindFirstChild(playerName)
if plr and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
plr.Character.HumanoidRootPart.CFrame = CFrame.new(position)
end
end
OriginalPositions = {}
end)
local function updateDropdown()
if not ScriptEnabled then return end
for _, child in ipairs(DropdownScroll:GetChildren()) do
if child ~= AllOption and child ~= DropdownLayout then
child:Destroy()
end
end
local yOffset = 0
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local playerOption = Instance.new("TextButton", DropdownScroll)
playerOption.Size = UDim2.new(1, -10, 0, 25)
playerOption.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
playerOption.BackgroundTransparency = 0.3
playerOption.TextColor3 = Color3.fromRGB(200, 200, 200)
playerOption.Font = Enum.Font.GothamBold
playerOption.TextSize = 14
playerOption.Text = player.Name
playerOption.LayoutOrder = yOffset + 1
Instance.new("UICorner", playerOption).CornerRadius = UDim.new(0, 6)
playerOption.MouseButton1Click:Connect(function()
if not ScriptEnabled then return end
SelectedPlayer = player.Name
PlayerDropdown.Text = player.Name
DropdownFrame.Visible = false
for playerName, position in pairs(OriginalPositions) do
local plr = Players:FindFirstChild(playerName)
if plr and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
plr.Character.HumanoidRootPart.CFrame = CFrame.new(position)
end
end
OriginalPositions = {}
end)
yOffset = yOffset + 1
end
end
end
PlayerDropdown.MouseButton1Click:Connect(function()
if not ScriptEnabled then return end
updateDropdown()
DropdownFrame.Visible = not DropdownFrame.Visible
end)
UserInputService.InputBegan:Connect(function(input)
if not ScriptEnabled then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 then
if DropdownFrame.Visible then
local mousePos = input.Position
local dropdownPos = DropdownFrame.AbsolutePosition
local dropdownSize = DropdownFrame.AbsoluteSize
if not (mousePos.X >= dropdownPos.X and mousePos.X <= dropdownPos.X + dropdownSize.X and
mousePos.Y >= dropdownPos.Y and mousePos.Y <= dropdownPos.Y + dropdownSize.Y) then
DropdownFrame.Visible = false
end
end
end
end)
local CurrentCamera = workspace.CurrentCamera
ViewPlayerBtn.MouseButton1Click:Connect(function()
if not ScriptEnabled then return end
ViewingEnabled = not ViewingEnabled
ViewPlayerBtn.Text = ViewingEnabled and "View: ON" or "View: OFF"
ViewPlayerBtn.TextColor3 = ViewingEnabled and Color3.fromRGB(80, 255, 80) or Color3.fromRGB(255, 80, 80)
if not ViewingEnabled then
CurrentCamera.CameraSubject = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid")
end
end)
RunService.RenderStepped:Connect(function()
if not ScriptEnabled or not KillActive then return end
if ViewingEnabled and SelectedPlayer ~= "all" then
local targetPlayer = Players:FindFirstChild(SelectedPlayer)
if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("Humanoid") then
CurrentCamera.CameraSubject = targetPlayer.Character.Humanoid
end
end
-- Only proceed with killing if ClickKill is disabled
if ClickKillEnabled then return end
local tool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
if not tool or not tool:FindFirstChild("Handle") then return end
local handle = tool.Handle
if SelectedPlayer == "all" then
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
local char = plr.Character
if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Humanoid") then
if LocalPlayer:DistanceFromCharacter(char.HumanoidRootPart.Position) <= 1000000 then
if not OriginalPositions[plr.Name] and char.Humanoid.Health > 0 then
OriginalPositions[plr.Name] = char.HumanoidRootPart.Position
end
if char.Humanoid.Health > 0 then
if not SilentKillEnabled then
tool:Activate()
end
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
firetouchinterest(handle, part, 0)
firetouchinterest(handle, part, 1)
end
end
end
end
end
end
end
else
local targetPlayer = Players:FindFirstChild(SelectedPlayer)
if targetPlayer then
local char = targetPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Humanoid") then
if LocalPlayer:DistanceFromCharacter(char.HumanoidRootPart.Position) <= 1000000 then
if not OriginalPositions[targetPlayer.Name] and char.Humanoid.Health > 0 then
OriginalPositions[targetPlayer.Name] = char.HumanoidRootPart.Position
end
if char.Humanoid.Health > 0 then
local originalPos = OriginalPositions[targetPlayer.Name]
local targetPos = handle.Position + Vector3.new(0, 3, 0)
if BringKillEnabled then
spawn(function()
shakeCharacter(char, 0.5, 0.3)
end)
flickerTeleport(targetPlayer, CFrame.new(targetPos), CFrame.new(originalPos), 0.5)
end
if not SilentKillEnabled then
tool:Activate()
end
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
firetouchinterest(handle, part, 0)
firetouchinterest(handle, part, 1)
end
end
end
end
end
end
end
end)
-- Function to shake a character
local function shakeCharacter(char, intensity, duration)
if not char or not char:FindFirstChild("HumanoidRootPart") then return end
local root = char.HumanoidRootPart
local originalPosition = root.Position
local startTime = os.clock()
while os.clock() - startTime < duration do
if not root or not root.Parent then break end
local offset = Vector3.new(
(math.random() * 2 - 1) * intensity,
(math.random() * 2 - 1) * intensity,
(math.random() * 2 - 1) * intensity
)
root.CFrame = CFrame.new(originalPosition + offset)
RunService.Heartbeat:Wait()
end
if root and root.Parent then
root.CFrame = CFrame.new(originalPosition)
end
end
-- Function to flicker teleport a player
local function flickerTeleport(player, targetCFrame, originalCFrame, duration)
if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end
local root = player.Character.HumanoidRootPart
local startTime = os.clock()
local flickerCount = 0
while os.clock() - startTime < duration do
if not root or not root.Parent then break end
if flickerCount % 2 == 0 then
root.CFrame = targetCFrame
else
root.CFrame = originalCFrame
end
flickerCount = flickerCount + 1
RunService.Heartbeat:Wait()
end
if root and root.Parent then
root.CFrame = targetCFrame
end
end
-- Function to restore player position
local function restorePlayerPosition(playerName)
local position = OriginalPositions[playerName]
if position then
local player = Players:FindFirstChild(playerName)
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
player.Character.HumanoidRootPart.CFrame = CFrame.new(position)
end
OriginalPositions[playerName] = nil
end
end
-- ClickKill functionality
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not ScriptEnabled or not KillActive or not ClickKillEnabled or gameProcessed then return end
if input.UserInputType ~= Enum.UserInputType.MouseButton1 and input.UserInputType ~= Enum.UserInputType.Touch then return end
local mouse = LocalPlayer:GetMouse()
local target = mouse.Target
if not target then return end
local character = target:FindFirstAncestorOfClass("Model")
if character and Players:GetPlayerFromCharacter(character) then
local player = Players:GetPlayerFromCharacter(character)
if player == LocalPlayer then return end
-- Remove previous highlight and GUI if they exist
if CurrentTargetHighlight then
CurrentTargetHighlight:Destroy()
CurrentTargetHighlight = nil
end
if CurrentTargetBillboard then
CurrentTargetBillboard:Destroy()
CurrentTargetBillboard = nil
end
-- Highlight the player
local highlight = Instance.new("Highlight")
highlight.FillColor = Color3.fromRGB(255, 0, 0)
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.FillTransparency = 0.5
highlight.OutlineTransparency = 0
highlight.Adornee = character
highlight.Parent = character
CurrentTargetHighlight = highlight
-- Create billboard GUI
local billboard = Instance.new("BillboardGui")
billboard.Name = "TargetIndicator"
billboard.Adornee = character:FindFirstChild("Head") or character:FindFirstChild("HumanoidRootPart")
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.LightInfluence = 0
billboard.MaxDistance = 100
billboard.Parent = character
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundTransparency = 1
textLabel.Text = "Targeted: 3 seconds"
textLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
textLabel.TextScaled = true
textLabel.Font = Enum.Font.SourceSansBold
textLabel.TextStrokeTransparency = 0
textLabel.TextStrokeColor3 = Color3.fromRGB(255, 255, 255)
textLabel.Parent = billboard
CurrentTargetBillboard = billboard
-- Update countdown text
local startTime = os.clock()
local countdownConnection
countdownConnection = RunService.Heartbeat:Connect(function()
if not billboard or not billboard.Parent then
countdownConnection:Disconnect()
return
end
local elapsed = os.clock() - startTime
local remaining = math.max(0, 3 - elapsed)
if remaining <= 0 then
textLabel.Text = "Targeted: 0 seconds"
countdownConnection:Disconnect()
else
textLabel.Text = string.format("Targeted: %.1f seconds", remaining)
end
end)
-- Make highlight and billboard disappear after 3 seconds
delay(3, function()
if highlight and highlight.Parent then
highlight:Destroy()
if CurrentTargetHighlight == highlight then
CurrentTargetHighlight = nil
end
end
if billboard and billboard.Parent then
billboard:Destroy()
if CurrentTargetBillboard == billboard then
CurrentTargetBillboard = nil
end
end
if countdownConnection then
countdownConnection:Disconnect()
end
end)
-- Save original position
if character:FindFirstChild("HumanoidRootPart") then
OriginalPositions[player.Name] = character.HumanoidRootPart.Position
end
-- Start the 3-second kill loop
local killStartTime = os.clock()
local killLoopConnection
killLoopConnection = RunService.Heartbeat:Connect(function()
if os.clock() - killStartTime >= 3 then
killLoopConnection:Disconnect()
return
end
if typeof(fti) == "function" then
pcall(function()
fti("kill", player.Name)
end)
else
-- Fallback to normal method if fti isn't available
local tool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
if tool and tool:FindFirstChild("Handle") then
for _, part in pairs(character:GetChildren()) do
if part:IsA("BasePart") then
firetouchinterest(tool.Handle, part, 0)
firetouchinterest(tool.Handle, part, 1)
end
end
end
end
end)
end
end)
-- Clean up when tool is unequipped
LocalPlayer.CharacterRemoving:Connect(function()
if not ScriptEnabled then return end
for playerName, position in pairs(OriginalPositions) do
local player = Players:FindFirstChild(playerName)
if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
player.Character.HumanoidRootPart.CFrame = CFrame.new(position)
end
end
OriginalPositions = {}
end)
-- Update dropdown when players join/leave
Players.PlayerAdded:Connect(function()
if ScriptEnabled then
updateDropdown()
end
end)
Players.PlayerRemoving:Connect(function()
if ScriptEnabled then
updateDropdown()
end
end)
-- Notification system
local fnl = loadstring(game:HttpGetAsync 'https://raw.githubusercontent.com/Code1Tech/utils/main/notification.lua')()
function notify(title, text, duration)
title = title or "Notification"
text = text or "No text provided."
duration = duration or 5
fnl:MakeNotification({
Title = title,
Text = text,
Duration = duration
})
end
notify("Quick Reminder", "This Only Works With A Sword\n\n[Script Made By @hmmm5650]", 3.5)