
One of the best open-source Generic Blood Ragdoll Fighting scripts, which can be used without a key and includes features such as Kill Aura, TP to NPCs, Fly, Speed, and more. This script works perfectly on PC and Mobile.
Generic Blood Ragdoll Fighting is a chaotic melee combat with powerful strikes and realistic ragdoll physics. Every fight is a mess of flying bodies, bloody effects, and unpredictable movements, which is fun but also makes farming and constant battles more challenging. This script for Generic Blood Ragdoll Fighting from the Roblox world adds chaos to the game and allows you to control it.
The main feature is the Kill Aura, which automatically strikes nearby enemies, making melee combat much easier in a game where timing and positioning can be difficult. Combined with teleportation to non-player characters, you no longer have to run around looking for a fight - you're right in the middle of the action.
The script also includes movement abilities such as "Flight," "Infinite Jump," and "Speed," which completely change the way you move around the map.
Generic Blood Ragdoll Fighting Script GUI NO KEY - Kill Aura, Teleports, Fly, Speed

--// Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
--// CONFIG
local BURST = 5
local DELAY = 0.04
local RANGE = 1000
local MAX_TARGETS = 3
local FLY_SPEED = 60
local WALK_SPEED = 32
--// STATE
local currentCharacter = nil
local auraEnabled = false
local tpEnabled = false
local flyEnabled = false
local infJumpEnabled = false
local speedEnabled = false
--// GUI
local gui = Instance.new("ScreenGui", game.CoreGui)
gui.Name = "OpenSourceGUI"
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 260, 0, 260)
frame.Position = UDim2.new(0.4, 0, 0.4, 0)
frame.BackgroundColor3 = Color3.fromRGB(15,15,15)
frame.Active = true
frame.Draggable = true
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1,0,0,30)
title.Text = "made by _OpenSource_"
title.BackgroundColor3 = Color3.fromRGB(25,25,25)
title.TextColor3 = Color3.new(1,1,1)
title.TextScaled = true
-- Button creator
local function createButton(text, posY)
local btn = Instance.new("TextButton", frame)
btn.Size = UDim2.new(0.8,0,0,30)
btn.Position = UDim2.new(0.1,0,posY,0)
btn.Text = text .. ": OFF"
btn.BackgroundColor3 = Color3.fromRGB(120,0,0)
btn.TextColor3 = Color3.new(1,1,1)
btn.TextScaled = true
btn.MouseEnter:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.15), {
Size = UDim2.new(0.85,0,0,32)
}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.15), {
Size = UDim2.new(0.8,0,0,30)
}):Play()
end)
return btn
end
local auraBtn = createButton("Kill Aura", 0.18)
local tpBtn = createButton("TP to NPCs", 0.32)
local flyBtn = createButton("Fly", 0.46)
local jumpBtn = createButton("Infinite Jump", 0.60)
local speedBtn = createButton("Speed", 0.74)
-- Toggle helper
local function toggle(btn, state, name)
state = not state
btn.Text = name .. (state and ": ON" or ": OFF")
TweenService:Create(btn, TweenInfo.new(0.2), {
BackgroundColor3 = state and Color3.fromRGB(0,170,0) or Color3.fromRGB(120,0,0)
}):Play()
return state
end
auraBtn.MouseButton1Click:Connect(function()
auraEnabled = toggle(auraBtn, auraEnabled, "Kill Aura")
end)
tpBtn.MouseButton1Click:Connect(function()
tpEnabled = toggle(tpBtn, tpEnabled, "TP to NPCs")
end)
flyBtn.MouseButton1Click:Connect(function()
flyEnabled = toggle(flyBtn, flyEnabled, "Fly")
end)
jumpBtn.MouseButton1Click:Connect(function()
infJumpEnabled = toggle(jumpBtn, infJumpEnabled, "Infinite Jump")
end)
speedBtn.MouseButton1Click:Connect(function()
speedEnabled = toggle(speedBtn, speedEnabled, "Speed")
end)
-- Character tracking
local function setCharacter(char)
currentCharacter = char
end
if player.Character then
setCharacter(player.Character)
end
player.CharacterAdded:Connect(setCharacter)
-- Infinite Jump
UserInputService.JumpRequest:Connect(function()
if infJumpEnabled and currentCharacter then
local hum = currentCharacter:FindFirstChildOfClass("Humanoid")
if hum then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end)
-- Fly
local velocity
RunService.RenderStepped:Connect(function()
if not currentCharacter then return end
local root = currentCharacter:FindFirstChild("HumanoidRootPart")
local hum = currentCharacter:FindFirstChildOfClass("Humanoid")
-- Speed
if hum then
hum.WalkSpeed = speedEnabled and WALK_SPEED or 16
end
-- Fly
if flyEnabled and root then
if not velocity then
velocity = Instance.new("BodyVelocity")
velocity.MaxForce = Vector3.new(1e5,1e5,1e5)
velocity.Parent = root
end
local move = Vector3.zero
local cam = workspace.CurrentCamera
if UserInputService:IsKeyDown(Enum.KeyCode.W) then move += cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then move -= cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then move -= cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then move += cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move += Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then move -= Vector3.new(0,1,0) end
if move.Magnitude > 0 then
velocity.Velocity = move.Unit * FLY_SPEED
else
velocity.Velocity = Vector3.zero
end
elseif velocity then
velocity:Destroy()
velocity = nil
end
end)
-- MAIN LOOP
task.spawn(function()
while true do
task.wait(DELAY)
if not currentCharacter then continue end
local root = currentCharacter:FindFirstChild("HumanoidRootPart")
local tool = currentCharacter:FindFirstChildOfClass("Tool") -- ✅ UNIVERSAL TOOL
if not root then continue end
local folder = workspace:FindFirstChild("Characters")
if not folder then continue end
local remote = ReplicatedStorage:WaitForChild("Assets")
:WaitForChild("Remotes")
:WaitForChild("MeleeHitVerification")
-- Kill Aura (UNIVERSAL)
if auraEnabled and tool then
local targets = {}
for _, target in pairs(folder:GetChildren()) do
if target ~= currentCharacter then
local humanoid = target:FindFirstChild("Humanoid")
local targetRoot = target:FindFirstChild("HumanoidRootPart")
if humanoid and targetRoot and humanoid.Health > 0 then
local distance = (root.Position - targetRoot.Position).Magnitude
if distance <= RANGE then
table.insert(targets, {
humanoid = humanoid,
distance = distance
})
end
end
end
end
table.sort(targets, function(a, b)
return a.distance < b.distance
end)
for i = 1, math.min(MAX_TARGETS, #targets) do
for j = 1, BURST do
remote:FireServer(tool, targets[i].humanoid, 2)
end
end
end
-- TP
if tpEnabled then
local closest = nil
local shortest = math.huge
for _, target in pairs(folder:GetChildren()) do
if target ~= currentCharacter then
local humanoid = target:FindFirstChild("Humanoid")
local targetRoot = target:FindFirstChild("HumanoidRootPart")
if humanoid and targetRoot and humanoid.Health > 0 then
local dist = (root.Position - targetRoot.Position).Magnitude
if dist < shortest then
shortest = dist
closest = targetRoot
end
end
end
end
if closest then
root.CFrame = closest.CFrame * CFrame.new(0, 0, -3)
end
end
end
end)
Generic Blood Ragdoll Fighting Script Features:
Kill Aura
TP to NPCs
Fly
Infinite Jump
Speed