
Key RequiredUniversal

local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
-- Toggle configurations
local loopUp = false
local loopBehind = false
-- Dynamic offsets
local tpDistance = 2 -- Backwards offset (controlled by Left/Right)
local tpHeight = 2 -- Vertical offset (controlled by Up/Down)
-- Targeted Username Blacklist Table
local blacklistedUsers = {
["blacklisted_user"] = true,
["blacklisted_user2] = true,
}
-- Advanced Check optimized specifically for Roblox Rivals setup
local function getRivalsTeammate()
local myCharacter = LocalPlayer.Character
if not myCharacter then return nil end
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
-- 1. MULTIPLE USERNAME BLACKLIST CHECK
if not blacklistedUsers[player.Name] then
-- 2. Regular Team Checks
local isTeammate = (player.Team == LocalPlayer.Team) or
(player:GetAttribute("Team") == LocalPlayer:GetAttribute("Team"))
if isTeammate then
local char = player.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local humanoid = char and char:FindFirstChildOfClass("Humanoid")
if root and humanoid and humanoid.Health > 0 and root.Position.Y > -100 then
return root
end
end
end
end
end
return nil
end
-- Continuous frame loop using safe interpolation (Anti-Rubberband)
RunService.Heartbeat:Connect(function()
if not loopUp and not loopBehind then return end
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if not myRoot then return end
local targetRoot = getRivalsTeammate()
if not targetRoot then return end
local destinationCFrame
if loopUp then
destinationCFrame = targetRoot.CFrame * CFrame.new(0, tpHeight, 0)
elseif loopBehind then
destinationCFrame = targetRoot.CFrame * CFrame.new(0, tpHeight, tpDistance)
end
if destinationCFrame then
myRoot.CFrame = myRoot.CFrame:Lerp(destinationCFrame, 0.45)
end
end)
-- Keybind Processing
UserInputService.InputBegan:Connect(function(input, gameProcessed)
local isArrowKey = input.KeyCode == Enum.KeyCode.Up or
input.KeyCode == Enum.KeyCode.Down or
input.KeyCode == Enum.KeyCode.Left or
input.KeyCode == Enum.KeyCode.Right
if gameProcessed and not isArrowKey then return end
-- Toggles
if input.KeyCode == Enum.KeyCode.K then
loopUp = not loopUp
loopBehind = false
elseif input.KeyCode == Enum.KeyCode.L then
loopBehind = not loopBehind
loopUp = false
-- Horizontal Distance Adjustments
elseif input.KeyCode == Enum.KeyCode.Right then
tpDistance = tpDistance + 1
print("Horizontal distance increased to: " .. tpDistance)
elseif input.KeyCode == Enum.KeyCode.Left then
tpDistance = math.max(1, tpDistance - 1)
print("Horizontal distance decreased to: " .. tpDistance)
-- Vertical Height Adjustments
elseif input.KeyCode == Enum.KeyCode.Up then
tpHeight = tpHeight + 1
print("Vertical height increased to: " .. tpHeight)
elseif input.KeyCode == Enum.KeyCode.Down then
tpHeight = tpHeight - 1
print("Vertical height adjusted to: " .. tpHeight)
end
end)No comments yet for this script.


![Sir Meme Hub | [16 GAMES] [$14.99 LIFETIME] | FARM/AIM/ESP](https://scriptblox.com/images/sb/-1-1791044877945.webp)
