Description
1. Setup & Toggle Control UI: A small panel appears on the left side of your screen. You can click and drag the header title to move it anywhere. Toggle Button: Click the SAE PASS: ON / OFF button at any time to enable or disable the script. 2. Keybind & Functionality (F Key) Hover your mouse cursor over a teammate on your screen and press F : Scenario 1: When you DO NOT have the ball Press F near a teammate. The ball will immediately teleport from anywhere on the pitch straight to that teammate's location.(ONLY WORK IF U HAVE THE CONTROL OVER BALL PHYSICS, E.G U KICK THE BALL AND NO ONE TOUCH IT, IF U STILL ONE UNDERSTAND THEN GO SEARCH BRUH). Scenario 2: When you ARE holding the ball Press F near a teammate. The script will lock on and highlight that teammate in green. As soon as you kick, pass, or release the ball, the script automatically teleports the ball directly to the locked teammate .
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6aa7eabd69ea4aa57bf49398"))()
end)
end)
--[[rscripts:analytics:end]]
--========================================================--
-- SAE PASS (STICK BALL TO TARGET UNTIL PICKED) --
--========================================================--
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local camera = workspace.CurrentCamera
local BALL_NAME = "Ball"
local State = {
enabled = true,
selectedTarget = nil,
targetHighlight = nil,
wasHoldingBall = false,
isSticking = false -- Trạng thái đang giữ dính bóng
}
--========================================================--
-- NOTIFICATION SYSTEM
--========================================================--
local notificationHolder = Instance.new("Frame")
notificationHolder.Name = "SaePassNotifications"
notificationHolder.Size = UDim2.fromOffset(280, 200)
notificationHolder.AnchorPoint = Vector2.new(0.5, 0)
notificationHolder.Position = UDim2.new(0.5, 0, 0, 10)
notificationHolder.BackgroundTransparency = 1
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 5)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.Parent = notificationHolder
local function notify(titleText, bodyText, duration)
duration = duration or 1.5
local card = Instance.new("Frame")
card.Size = UDim2.fromOffset(240, 42)
card.BackgroundColor3 = Color3.fromRGB(25, 25, 32)
card.BorderSizePixel = 0
card.Parent = notificationHolder
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 8)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(70, 70, 90)
stroke.Transparency = 0.2
stroke.Parent = card
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -12, 0, 16)
title.Position = UDim2.fromOffset(6, 4)
title.BackgroundTransparency = 1
title.Text = tostring(titleText)
title.Font = Enum.Font.GothamBold
title.TextSize = 11
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = card
local body = Instance.new("TextLabel")
body.Size = UDim2.new(1, -12, 0, 16)
body.Position = UDim2.fromOffset(6, 20)
body.BackgroundTransparency = 1
body.Text = tostring(bodyText)
body.Font = Enum.Font.Gotham
body.TextSize = 10
body.TextColor3 = Color3.fromRGB(180, 180, 190)
body.TextXAlignment = Enum.TextXAlignment.Left
body.Parent = card
task.delay(duration, function()
if card and card.Parent then card:Destroy() end
end)
end
--========================================================--
-- CORE HELPER FUNCTIONS
--========================================================--
local function findBall()
local direct = workspace:FindFirstChild(BALL_NAME)
if direct and direct:IsA("BasePart") then return direct end
for _, obj in ipairs(workspace:GetChildren()) do
if obj:IsA("BasePart") and string.lower(obj.Name) == string.lower(BALL_NAME) then
return obj
end
end
return workspace:FindFirstChild(BALL_NAME, true)
end
-- Kiểm tra xem có BẤT KỲ AI đang cầm bóng trong người hay không
local function isAnyPlayerHoldingBall()
for _, plr in ipairs(Players:GetPlayers()) do
if plr.Character and plr.Character:FindFirstChild(BALL_NAME, true) then
return true, plr
end
end
return false, nil
end
local function localHasBall()
if not player.Character then return false end
return player.Character:FindFirstChild(BALL_NAME, true) ~= nil
end
local function sameTeam(plr)
return plr and player.Team and plr.Team == player.Team
end
local function getPlayerRoot(plr)
if not plr or not plr.Character then return nil end
return plr.Character:FindFirstChild("HumanoidRootPart")
end
local function clearTarget()
State.selectedTarget = nil
State.isSticking = false
if State.targetHighlight then
State.targetHighlight:Destroy()
State.targetHighlight = nil
end
end
local function highlightTarget(plr)
clearTarget()
if not plr or not plr.Character then return end
State.selectedTarget = plr
local hl = Instance.new("Highlight")
hl.Name = "SaeTargetHL"
hl.FillColor = Color3.fromRGB(0, 255, 120)
hl.FillTransparency = 0.4
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.OutlineTransparency = 0
hl.Adornee = plr.Character
hl.Parent = plr.Character
State.targetHighlight = hl
end
local function getClosestTeammateToMouse()
camera = workspace.CurrentCamera
if not camera then return nil end
local mousePos = UserInputService:GetMouseLocation()
local best, bestDist = nil, math.huge
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and sameTeam(plr) and plr.Character then
local hrp = getPlayerRoot(plr)
if hrp then
local point, onScreen = camera:WorldToViewportPoint(hrp.Position)
if onScreen and point.Z > 0 then
local dist = (Vector2.new(point.X, point.Y) - mousePos).Magnitude
if dist < bestDist then
bestDist = dist
best = plr
end
end
end
end
end
return best
end
-- Hàm khóa chặt bóng vào ngay phía trước chân mục tiêu
local function stickBallToTarget(target)
if not target or not target.Character then return end
local targetRoot = getPlayerRoot(target)
local ball = findBall()
if ball and targetRoot then
pcall(function()
-- Khóa vận tốc bóng để bóng không bị nảy hay văng ra ngoài
ball.AssemblyLinearVelocity = Vector3.zero
ball.AssemblyAngularVelocity = Vector3.zero
-- Ép vị trí bóng dính sát ngay trước chân mục tiêu (dưới mặt đất 1.5 stud)
ball.CFrame = targetRoot.CFrame * CFrame.new(0, -1.5, -1)
end)
end
end
--========================================================--
-- GUI INTERFACE
--========================================================--
local gui = Instance.new("ScreenGui")
gui.Name = "SaePassAutoTPGui"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = playerGui
notificationHolder.Parent = gui
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.fromOffset(200, 90)
mainFrame.Position = UDim2.new(0.05, 0, 0.4, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 26)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = gui
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 10)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(60, 60, 80)
stroke.Transparency = 0.2
stroke.Parent = mainFrame
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 0, 30)
titleLabel.Position = UDim2.fromOffset(0, 2)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "⚽ SAE PASS (AUTO TP)"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 12
titleLabel.Font = Enum.Font.GothamBold
titleLabel.Parent = mainFrame
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.fromOffset(160, 36)
toggleBtn.Position = UDim2.fromOffset(20, 40)
toggleBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
toggleBtn.BorderSizePixel = 0
toggleBtn.Text = "SAE PASS: ON"
toggleBtn.TextColor3 = Color3.fromRGB(100, 255, 130)
toggleBtn.TextSize = 12
toggleBtn.Font = Enum.Font.GothamMedium
toggleBtn.Parent = mainFrame
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8)
-- Drag UI
local dragging, dragStart, startPos
titleLabel.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 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 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)
toggleBtn.MouseButton1Click:Connect(function()
State.enabled = not State.enabled
if not State.enabled then
clearTarget()
toggleBtn.Text = "SAE PASS: OFF"
toggleBtn.TextColor3 = Color3.fromRGB(255, 100, 100)
else
toggleBtn.Text = "SAE PASS: ON"
toggleBtn.TextColor3 = Color3.fromRGB(100, 255, 130)
end
notify("SAE PASS", State.enabled and "Enabled" or "Disabled", 1.2)
end)
--========================================================--
-- EVENT LISTENERS & LOOP
--========================================================--
-- Bấm phím F để khóa dính bóng vào đồng đội
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed or not State.enabled then return end
if input.KeyCode == Enum.KeyCode.F then
local target = getClosestTeammateToMouse()
if not target then
notify("SAE PASS", "No teammate found near mouse", 1.2)
return
end
highlightTarget(target)
State.isSticking = true
if localHasBall() then
notify("SAE PASS", "Locked " .. target.Name .. "! Will stick on release", 1.5)
else
notify("SAE PASS", "Sticking ball to " .. target.Name .. "!", 1.5)
end
end
end)
-- Vòng lặp RenderStepped (chạy ở mọi khung hình FPS) để bóng không bị trôi ra ngoài
RunService.RenderStepped:Connect(function()
if not State.enabled then return end
local isHeld, holder = isAnyPlayerHoldingBall()
-- Nếu đã có người nhặt bóng thành công (chui vào người/balo) -> Ngắt khóa
if isHeld then
if State.isSticking then
notify("SAE PASS", holder.Name .. " picked up the ball!", 1.2)
clearTarget()
end
return
end
-- Khóa vị trí bóng liên tục theo từng mili-giây
if State.isSticking and State.selectedTarget then
stickBallToTarget(State.selectedTarget)
end
end)
notify("SAE PASS", "Script is ready", 1.5)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.


Your community, in one place