Kill tool Open Source By harlen
Key Required

Kill tool Open Source By harlen

Boys and Girls Highschool RoleplayH4RL3NH4RL3N 1.3K views 472 executesUpdated Mar 21, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•385 lines (11591 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")

local localPlayer = Players.LocalPlayer
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")

local SPIN_SPEED = 10
local secondTool = nil

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AdminUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = localPlayer.PlayerGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 280, 0, 160)
mainFrame.Position = UDim2.new(0.5, -140, 0.5, -80)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = mainFrame

local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 35)
titleBar.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame

local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 8)
titleCorner.Parent = titleBar

local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -70, 1, 0)
titleLabel.Position = UDim2.new(0, 10, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "⚙️ Kill Tool - By Harlen ⚙️"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 14
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = titleBar

local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 28, 0, 28)
minimizeBtn.Position = UDim2.new(1, -62, 0, 4)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
minimizeBtn.Text = "—"
minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeBtn.TextSize = 14
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.BorderSizePixel = 0
minimizeBtn.Parent = titleBar

local minCorner = Instance.new("UICorner")
minCorner.CornerRadius = UDim.new(0, 6)
minCorner.Parent = minimizeBtn

local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 28, 0, 28)
closeBtn.Position = UDim2.new(1, -30, 0, 4)
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextSize = 14
closeBtn.Font = Enum.Font.GothamBold
closeBtn.BorderSizePixel = 0
closeBtn.Parent = titleBar

local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeBtn

local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -35)
contentFrame.Position = UDim2.new(0, 0, 0, 35)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = mainFrame

local targetLabel = Instance.new("TextLabel")
targetLabel.Size = UDim2.new(1, -20, 0, 20)
targetLabel.Position = UDim2.new(0, 10, 0, 10)
targetLabel.BackgroundTransparency = 1
targetLabel.Text = "Target:"
targetLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
targetLabel.TextSize = 12
targetLabel.Font = Enum.Font.Gotham
targetLabel.TextXAlignment = Enum.TextXAlignment.Left
targetLabel.Parent = contentFrame

local nameInput = Instance.new("TextBox")
nameInput.Size = UDim2.new(1, -20, 0, 35)
nameInput.Position = UDim2.new(0, 10, 0, 32)
nameInput.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
nameInput.BorderSizePixel = 0
nameInput.Text = ""
nameInput.PlaceholderText = "Click on a player or type..."
nameInput.TextColor3 = Color3.fromRGB(255, 255, 255)
nameInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 120)
nameInput.TextSize = 13
nameInput.Font = Enum.Font.Gotham
nameInput.Parent = contentFrame

local inputCorner = Instance.new("UICorner")
inputCorner.CornerRadius = UDim.new(0, 6)
inputCorner.Parent = nameInput

local startBtn = Instance.new("TextButton")
startBtn.Size = UDim2.new(1, -20, 0, 38)
startBtn.Position = UDim2.new(0, 10, 0, 78)
startBtn.BackgroundColor3 = Color3.fromRGB(50, 150, 80)
startBtn.Text = "▶  Start"
startBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
startBtn.TextSize = 24
startBtn.Font = Enum.Font.GothamBold
startBtn.BorderSizePixel = 0
startBtn.Parent = contentFrame

local startCorner = Instance.new("UICorner")
startCorner.CornerRadius = UDim.new(0, 6)
startCorner.Parent = startBtn

local dragging = false
local dragStart, startPos

titleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = mainFrame.Position
    end
end)

titleBar.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = false
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
        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
end)

local minimized = false

minimizeBtn.MouseButton1Click:Connect(function()
    minimized = not minimized
    contentFrame.Visible = not minimized
    mainFrame.Size = minimized and UDim2.new(0, 280, 0, 35) or UDim2.new(0, 280, 0, 160)
    minimizeBtn.Text = minimized and "+" or "—"
end)

closeBtn.MouseButton1Click:Connect(function()
    screenGui:Destroy()
end)

UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        local unitRay = workspace.CurrentCamera:ScreenPointToRay(
            input.Position.X, input.Position.Y
        )
        local raycastParams = RaycastParams.new()
        raycastParams.FilterDescendantsInstances = {character}
        raycastParams.FilterType = Enum.RaycastFilterType.Exclude

        local result = workspace:Raycast(unitRay.Origin, unitRay.Direction * 500, raycastParams)
        if result then
            local hit = result.Instance
            local model = hit:FindFirstAncestorOfClass("Model")
            if model then
                local targetPlayer = Players:GetPlayerFromCharacter(model)
                if targetPlayer and targetPlayer ~= localPlayer then
                    nameInput.Text = targetPlayer.Name
                end
            end
        end
    end
end)

local function notify(title, text, duration)
    game:GetService("StarterGui"):SetCore("SendNotification", {
        Title = title,
        Text = text,
        Duration = duration or 4
    })
end

local antiSitConnection = nil

local function enableAntiSit()
    antiSitConnection = RunService.Heartbeat:Connect(function()
        if humanoid.SeatPart ~= nil then
            humanoid.Jump = true
        end
    end)
end

local function disableAntiSit()
    if antiSitConnection then
        antiSitConnection:Disconnect()
        antiSitConnection = nil
    end
end

local function equipSecondTool()
    for _, item in ipairs(character:GetChildren()) do
        if item:IsA("Tool") then
            secondTool = item
            return true
        end
    end

    if secondTool and secondTool.Parent == localPlayer.Backpack then
        humanoid:EquipTool(secondTool)
        return true
    end

    local backpack = localPlayer:WaitForChild("Backpack")
    local toolList = {}
    for _, item in ipairs(backpack:GetChildren()) do
        if item:IsA("Tool") then
            table.insert(toolList, item)
        end
    end

    if #toolList >= 2 then
        secondTool = toolList[2]
        humanoid:EquipTool(secondTool)
        return true
    else
        print('labubu 2027')
        return false
    end
end

local function unequipTool()
    humanoid:UnequipTools()
end

local function findTarget(name)
    local target = workspace:FindFirstChild(name)
    if target then
        local targetRoot = target:FindFirstChild("HumanoidRootPart")
        if targetRoot then
            return target, targetRoot
        end
    end
    warn("Player '" .. name .. "' not found in workspace")
    return nil, nil
end

local function hasSatDown()
    local seat = character:FindFirstChild("Seat")
    if seat and seat:FindFirstChild("SeatWeld") then
        return true
    end
    return false
end

local function run(targetName)
    local originalCFrame = humanoidRootPart.CFrame

    local ok = equipSecondTool()
    if not ok then
        print('Sigma boy, 67, city boy, tralalero tralala')
        return
    end
    task.wait(0.5)

    local targetModel, targetRoot = findTarget(targetName)
    if not targetModel then
        notify("⚠️ Admin Tool", "Player '" .. targetName .. "' not found!", 4)
        return
    end

    humanoidRootPart.CFrame = targetRoot.CFrame

    enableAntiSit()

    local angle = 0
    local spinConnection
    local safetyConnection
    local finished = false
    local spinning = true

    local lastSafePosition = originalCFrame
    local fallingTime = 0

    safetyConnection = RunService.Heartbeat:Connect(function(dt)
        if finished then
            safetyConnection:Disconnect()
            return
        end

        if spinning then
            
            fallingTime = 0
            return
        end

        local velocity = humanoidRootPart.AssemblyLinearVelocity
        local isFalling = velocity.Y < -1

        if isFalling then
            fallingTime = fallingTime + dt
            if fallingTime >= 3 then
                humanoidRootPart.CFrame = lastSafePosition
                fallingTime = 0
                notify("🛡️ Admin Tool", "Safety activated! Returned to the last position.", 4)
            end
        else
            
            fallingTime = 0
            lastSafePosition = humanoidRootPart.CFrame
        end
    end)

    local function cleanup(msg, icon)
        if finished then return end
        finished = true

        if spinConnection then spinConnection:Disconnect() end
        if safetyConnection then safetyConnection:Disconnect() end

        spinning = false
        disableAntiSit()
        unequipTool()
        humanoidRootPart.CFrame = originalCFrame
        notify(icon .. " Admin Tool", msg, 5)
    end

    spinConnection = RunService.Heartbeat:Connect(function(dt)
        if not targetRoot or not targetRoot.Parent then
            cleanup(targetName .. " left the game!", "⚠️")
            return
        end

        angle = angle + SPIN_SPEED * dt
        humanoidRootPart.CFrame = CFrame.new(targetRoot.CFrame.Position)
            * CFrame.Angles(0, angle, 0)

        if hasSatDown() then
            if finished then return end
            finished = true

            if spinConnection then spinConnection:Disconnect() end
            if safetyConnection then safetyConnection:Disconnect() end

            spinning = false
            disableAntiSit()

            task.wait(0.3)
            humanoidRootPart.CFrame = CFrame.new(0, 0, 0)
            task.wait(0.7)
            unequipTool()
            task.wait(0.5)
            humanoidRootPart.CFrame = originalCFrame
            notify("✅ Admin Tool", targetName .. " sat successfully!", 5)
        end
    end)
end

startBtn.MouseButton1Click:Connect(function()
    local targetName = nameInput.Text
    if targetName == "" then
        notify("⚠️ Admin Tool", "Type the name of a player!", 3)
        return
    end
    run(targetName)
end)

Features & Information

ATTENTION: Expect bugs. If you encounter any bug, reset your character and re-execute the script. This script is completely keyless and open-source! By Harlen
#Kill#Tool#Boys and Girls Highschool Roleplay#open source#keyless

Community Comments (0)

No comments yet for this script.

More Scripts for Boys and Girls Highschool Roleplay