
Key Required

local repS = cloneref(game:GetService("ReplicatedStorage"))
local plrs = cloneref(game:GetService("Players"))
local runS = cloneref(game:GetService("RunService"))
local ws = cloneref(game:GetService("Workspace"))
local lplr = plrs.LocalPlayer
local util = require(repS.Modules.Utility)
local enum = require(repS.Modules.EnumLibrary)
local FighterController = require(lplr.PlayerScripts.Controllers.FighterController)
local SpectateController = require(lplr.PlayerScripts.Controllers:WaitForChild("SpectateController"))
getgenv().Config = {
Enabled = true,
FireRate = 0.0005,
WeaponSlot = "Primary", -- Initial weapon slot
EmoteID = 83194012641579,
StopOnMove = false,
FadeIn = 0.1,
FadeOut = 0.1,
Weight = 1,
Speed = 1,
AllowInvisible = true,
-- Random Teleport Settings & Bounds Protection:
RandomTeleport = true,
MinTeleportRadius = 3,
MaxTeleportRadius = 8,
HeightOffsetMin = -1,
HeightOffsetMax = 3,
BehindDistance = 5,
DeathDropThreshold = -5.5,
-- Rivals Arena Bounds Limits
MinBoundsY = 0,
MaxBoundsY = 200,
MaxDistanceFromTarget = 25,
}
-- UI Setup (Status Button + Weapon Slot Dropdown)
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ControlPanelGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = game:GetService("CoreGui") or lplr:WaitForChild("PlayerGui")
local toggleBtn = Instance.new("TextButton")
toggleBtn.Name = "ToggleBtn"
toggleBtn.Size = UDim2.new(0, 140, 0, 40)
toggleBtn.Position = UDim2.new(0, 20, 0, 20)
toggleBtn.BackgroundColor3 = Color3.fromRGB(40, 160, 40)
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.TextSize = 14
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.Text = "Status: ON"
toggleBtn.Parent = screenGui
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 8)
uiCorner.Parent = toggleBtn
toggleBtn.MouseButton1Click:Connect(function()
getgenv().Config.Enabled = not getgenv().Config.Enabled
if getgenv().Config.Enabled then
toggleBtn.Text = "Status: ON"
toggleBtn.BackgroundColor3 = Color3.fromRGB(40, 160, 40)
else
toggleBtn.Text = "Status: OFF"
toggleBtn.BackgroundColor3 = Color3.fromRGB(160, 40, 40)
end
end)
-- Weapon Dropdown UI
local weaponBtn = Instance.new("TextButton")
weaponBtn.Name = "WeaponBtn"
weaponBtn.Size = UDim2.new(0, 140, 0, 35)
weaponBtn.Position = UDim2.new(0, 20, 0, 70)
weaponBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
weaponBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
weaponBtn.TextSize = 13
weaponBtn.Font = Enum.Font.GothamMedium
weaponBtn.Text = "Weapon: Primary"
weaponBtn.Parent = screenGui
local weaponCorner = Instance.new("UICorner")
weaponCorner.CornerRadius = UDim.new(0, 8)
weaponCorner.Parent = weaponBtn
local slotsList = {"Primary", "Secondary", "Melee"}
local currentSlotIndex = 1
weaponBtn.MouseButton1Click:Connect(function()
currentSlotIndex = currentSlotIndex % #slotsList + 1
local newSlot = slotsList[currentSlotIndex]
getgenv().Config.WeaponSlot = newSlot
weaponBtn.Text = "Weapon: " .. newSlot
end)
-- Anti-Kill / Hazard / Chainsaw & SubSpace Tripmine Void Cleaner
local function handleDangerousItems()
for _, obj in ipairs(ws:GetDescendants()) do
local name = obj.Name:lower()
if name:find("kill") or name:find("lava") or name:find("death") or name:find("hazard") or name:find("damage") or name:find("chainsaw") or name:find("subspace tripmine") then
pcall(function()
if obj:IsA("BasePart") then
-- Send to void and freeze
obj.CFrame = CFrame.new(obj.Position.X, -500, obj.Position.Z)
obj.AssemblyLinearVelocity = Vector3.zero
obj.AssemblyAngularVelocity = Vector3.zero
obj.Anchored = true
elseif obj:IsA("Model") then
local primary = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
if primary then
primary.CFrame = CFrame.new(primary.Position.X, -500, primary.Position.Z)
primary.Anchored = true
end
end
end)
end
end
end
task.spawn(function()
while true do
handleDangerousItems()
task.wait(0.5)
end
end)
ws.DescendantAdded:Connect(function(obj)
local name = obj.Name:lower()
if name:find("kill") or name:find("lava") or name:find("death") or name:find("hazard") or name:find("damage") or name:find("chainsaw") or name:find("subspace tripmine") then
pcall(function()
if obj:IsA("BasePart") then
obj.CFrame = CFrame.new(obj.Position.X, -500, obj.Position.Z)
obj.AssemblyLinearVelocity = Vector3.zero
obj.AssemblyAngularVelocity = Vector3.zero
obj.Anchored = true
elseif obj:IsA("Model") then
local primary = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
if primary then
primary.CFrame = CFrame.new(primary.Position.X, -500, primary.Position.Z)
primary.Anchored = true
end
end
end)
end
end)
local slots = {
Primary = 1,
Secondary = 2,
Melee = 3
}
local function getSlotNumber()
return slots[getgenv().Config.WeaponSlot] or 1
end
task.spawn(function()
local localFighter = FighterController.LocalFighter
while not localFighter do
task.wait(0.1)
localFighter = FighterController.LocalFighter
end
pcall(function() localFighter:EquipItem(getSlotNumber()) end)
end)
task.spawn(function()
while true do
task.wait(1)
if not getgenv().Config.Enabled then continue end
local localFighter = FighterController.LocalFighter
if localFighter then
pcall(function() localFighter:EquipItem(getSlotNumber()) end)
end
end
end)
-- Emote Player Logic
local CurrentTrack
local character = lplr.Character or lplr.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local lastPosition = character.PrimaryPart and character.PrimaryPart.Position or Vector3.new()
lplr.CharacterAdded:Connect(function(newCharacter)
character = newCharacter
humanoid = character:WaitForChild("Humanoid")
lastPosition = character.PrimaryPart and character.PrimaryPart.Position or Vector3.new()
end)
local function LoadTrack(id)
if CurrentTrack then CurrentTrack:Stop(0) end
local animId = "rbxassetid://" .. tostring(id)
local ok, result = pcall(function() return game:GetObjects(animId) end)
if ok and result and #result > 0 then
local anim = result[1]
if anim:IsA("Animation") then animId = anim.AnimationId end
end
local newAnim = Instance.new("Animation")
newAnim.AnimationId = animId
local newTrack = humanoid:LoadAnimation(newAnim)
newTrack.Priority = Enum.AnimationPriority.Action4
local weight = getgenv().Config.Weight == 0 and 0.001 or getgenv().Config.Weight
newTrack:Play(getgenv().Config.FadeIn, weight, getgenv().Config.Speed)
CurrentTrack = newTrack
return newTrack
end
task.spawn(function()
task.wait(1)
pcall(function() LoadTrack(getgenv().Config.EmoteID) end)
end)
-- Collision / Invisibility Handling
local originalCollisionStates = {}
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local function saveCollisionStates()
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") and part ~= humanoidRootPart then
originalCollisionStates[part] = part.CanCollide
end
end
end
local function disableCollisionsExceptRootPart()
if not getgenv().Config.AllowInvisible then return end
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") and part ~= humanoidRootPart then
part.CanCollide = false
end
end
end
local function restoreCollisionStates()
for part, canCollide in pairs(originalCollisionStates) do
if part and part.Parent then part.CanCollide = canCollide end
end
originalCollisionStates = {}
end
saveCollisionStates()
runS.Stepped:Connect(function()
if character and character.Parent and getgenv().Config.AllowInvisible then
disableCollisionsExceptRootPart()
end
end)
lplr.CharacterAdded:Connect(function(newCharacter)
restoreCollisionStates()
character = newCharacter
humanoidRootPart = character:WaitForChild("HumanoidRootPart")
saveCollisionStates()
task.wait(1)
pcall(function() LoadTrack(getgenv().Config.EmoteID) end)
end)
runS.RenderStepped:Connect(function()
if character.PrimaryPart then
if getgenv().Config.StopOnMove and CurrentTrack and CurrentTrack.IsPlaying then
local moved = (character.PrimaryPart.Position - lastPosition).Magnitude > 0.1
local jumped = humanoid and humanoid:GetState() == Enum.HumanoidStateType.Jumping
if moved or jumped then
CurrentTrack:Stop(getgenv().Config.FadeOut)
CurrentTrack = nil
end
end
lastPosition = character.PrimaryPart.Position
end
end)
local lastFire = 0
local deflecting = {}
plrs.PlayerRemoving:Connect(function(player) deflecting[player] = nil end)
local function updateDeflection()
if not FighterController or not FighterController.Objects then return end
for _, fighterObj in FighterController.Objects do
local player = fighterObj.Player
if not player then continue end
if not fighterObj.Entity or not fighterObj.Entity:IsAlive() or fighterObj:Get("IsSpectating") then
deflecting[player] = false
continue
end
local equipped = fighterObj.EquippedItem
local itemName = equipped and equipped.ViewModel and equipped.ViewModel.Name or ""
local isDeflecting = (itemName == "Katana" or itemName == "Chainsaw") and (equipped._attack_cooldown and equipped._attack_cooldown > tick()) or false
deflecting[player] = isDeflecting
end
end
local function isEnemy(player)
if player == lplr then return false end
local duel = SpectateController.CurrentDuelSubject
local localDueler = duel and duel:GetDueler(lplr)
local localTeam = localDueler and localDueler:Get("TeamID") or nil
if localTeam and duel and duel.Duelers then
for _, dueler in duel.Duelers do
if dueler.Player == player then
return dueler:Get("TeamID") ~= localTeam
end
end
end
local pTeam = player:GetAttribute("TeamID")
local lTeam = lplr:GetAttribute("TeamID")
if pTeam and lTeam then return pTeam ~= lTeam end
return true
end
local function getClosestTarget()
local char = lplr.Character
if not char then return nil, nil, nil end
local myRoot = char:FindFirstChild("HumanoidRootPart")
if not myRoot then return nil, nil, nil end
local closestPlayer, closestRoot, closestHead = nil, nil, nil
local closestDist = 500
for _, player in plrs:GetPlayers() do
if not isEnemy(player) then continue end
local pChar = player.Character
if not pChar then continue end
local pRoot = pChar:FindFirstChild("HumanoidRootPart")
local pHead = pChar:FindFirstChild("Head")
local pHum = pChar:FindFirstChildWhichIsA("Humanoid")
if not (pRoot and pHead and pHum) then continue end
local dist = (myRoot.Position - pRoot.Position).Magnitude
if dist < closestDist then
closestDist = dist
closestPlayer = player
closestRoot = pRoot
closestHead = pHead
end
end
return closestPlayer, closestRoot, closestHead
end
runS.Heartbeat:Connect(function()
if lplr.Character and lplr.Character:FindFirstChild("HumanoidRootPart") then
local myRootPart = lplr.Character.HumanoidRootPart
if myRootPart.Position.Y < -40 then
myRootPart.CFrame = CFrame.new(myRootPart.Position.X, 50, myRootPart.Position.Z)
myRootPart.Velocity = Vector3.zero
end
end
updateDeflection()
local targetPlayer, targetRoot, targetHead = getClosestTarget()
local desyncCF = nil
if targetPlayer and targetRoot and targetHead then
local pHum = targetPlayer.Character and targetPlayer.Character:FindFirstChildWhichIsA("Humanoid")
local isTargetDead = (not pHum or pHum.Health <= 0 or pHum.Health <= -150)
if isTargetDead then
local dropPos = targetRoot.Position + Vector3.new(0, getgenv().Config.DeathDropThreshold, 0)
desyncCF = CFrame.new(dropPos)
else
local targetPos = targetRoot.Position
if getgenv().Config.RandomTeleport then
local angle = math.random() * math.pi * 2
local radius = math.random(getgenv().Config.MinTeleportRadius * 10, getgenv().Config.MaxTeleportRadius * 10) / 10
local height = math.random(getgenv().Config.HeightOffsetMin * 10, getgenv().Config.HeightOffsetMax * 10) / 10
local randomOffset = Vector3.new(math.cos(angle) * radius, height, math.sin(angle) * radius)
targetPos = targetRoot.Position + randomOffset
else
local behindOffset = Vector3.new(0, 0, getgenv().Config.BehindDistance)
targetPos = targetRoot.CFrame:PointToWorldSpace(behindOffset)
end
-- Out-of-Bounds & Arena Protection Check
local validPos = true
if targetPos.Y < getgenv().Config.MinBoundsY or targetPos.Y > getgenv().Config.MaxBoundsY then
validPos = false
end
if (targetPos - targetRoot.Position).Magnitude > getgenv().Config.MaxDistanceFromTarget then
validPos = false
end
if not validPos then
targetPos = targetRoot.Position + Vector3.new(0, 2, 2)
end
desyncCF = CFrame.lookAt(targetPos, targetHead.Position) * CFrame.Angles(math.rad(180), 0, 0)
end
else
local myRoot = lplr.Character and lplr.Character:FindFirstChild("HumanoidRootPart")
if myRoot then desyncCF = myRoot.CFrame end
end
if desyncCF and lplr.Character then
local myRoot = lplr.Character:FindFirstChild("HumanoidRootPart")
if myRoot then
local oldCF = myRoot.CFrame
local oldVel = myRoot.Velocity
local oldRotVel = myRoot.RotVelocity
myRoot.CFrame = desyncCF
runS:BindToRenderStep("__restore", 101, function()
if myRoot then
myRoot.CFrame = oldCF
myRoot.Velocity = oldVel
myRoot.RotVelocity = oldRotVel
end
runS:UnbindFromRenderStep("__restore")
end)
end
end
if not getgenv().Config.Enabled then return end
if not targetPlayer or not targetHead or not targetRoot then return end
local pHum = targetPlayer.Character and targetPlayer.Character:FindFirstChildWhichIsA("Humanoid")
if not pHum or pHum.Health <= 0 or pHum.Health <= -150 then return end
if deflecting[targetPlayer] then return end
if not lplr.Character or not lplr.Character:FindFirstChild("HumanoidRootPart") then return end
if not FighterController or not FighterController.LocalFighter then return end
local item = FighterController.LocalFighter.EquippedItem
if not item then return end
if tick() - lastFire < getgenv().Config.FireRate then return end
lastFire = tick()
local originPos = desyncCF and desyncCF.Position or targetRoot.Position
local targetPos = targetHead.Position
local aimCF = CFrame.lookAt(originPos, targetPos)
local targetCF = targetHead.CFrame
local randomOffset = Vector3.new((math.random() - 0.5) * 0.1, (math.random() - 0.5) * 0.1, (math.random() - 0.5) * 0.1)
local aimedPos = targetPos + randomOffset
local objSpaceHeadOffset = targetHead.CFrame:ToObjectSpace(CFrame.new(aimedPos))
local cameradata = {}
local utf8_char_1 = string.char(1)
local utf8_char_0 = string.char(0)
local utf8_char_2 = string.char(2)
local utf8_char_3 = string.char(3)
cameradata[utf8_char_1] = {
[utf8_char_0] = util:EncodeCFrame(aimCF),
[utf8_char_1] = util:EncodeCFrame(targetCF),
[utf8_char_2] = targetHead,
[utf8_char_3] = util:EncodeCFrame(objSpaceHeadOffset)
}
repS.Remotes.Replication.Fighter.UseItem:FireServer(
item:Get("ObjectID"),
enum:ToEnum("StartShooting"),
cameradata,
nil
)
end) --- made by Srilangish



best script ever working. 100%
@Dreamhubowner thank you