local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local rootPart = character:WaitForChild("HumanoidRootPart") local teamPoints = { Red = Vector3.new(149,3,-2), Blue = Vector3.new(-152,3,-2) } local targetPoint = Vector3.new(1,2,0) local tweenDuration = 0.3 local playerGui = player:WaitForChild("PlayerGui") local afkGui = Instance.new("ScreenGui") afkGui.ResetOnSpawn = false afkGui.Name = "AFKGui" afkGui.DisplayOrder = 999 afkGui.IgnoreGuiInset = true afkGui.Parent = playerGui local blur = Instance.new("BlurEffect") blur.Size = 0 blur.Parent = Lighting local overlay = Instance.new("Frame") overlay.AnchorPoint = Vector2.new(0,0) overlay.Position = UDim2.new(0,0,0,0) overlay.Size = UDim2.new(1,0,1,0) overlay.BackgroundColor3 = Color3.new(0,0,0) overlay.BackgroundTransparency = 1 overlay.Parent = afkGui overlay.Visible = false local afkLabel = Instance.new("TextLabel") afkLabel.Size = UDim2.new(0,200,0,50) afkLabel.AnchorPoint = Vector2.new(0.5,0.5) afkLabel.Position = UDim2.new(0.5,0,0.5,0) afkLabel.BackgroundTransparency = 1 afkLabel.TextColor3 = Color3.new(1,1,1) afkLabel.TextScaled = true afkLabel.Font = Enum.Font.SourceSansBold afkLabel.Visible = false afkLabel.Parent = afkGui local afkAnimCoroutine local function startAFKAnimation() if afkAnimCoroutine then afkAnimCoroutine = nil end local dots = {"", ".", "..", "..."} afkAnimCoroutine = coroutine.create(function() local index = 1 while afkAnimCoroutine do afkLabel.Text = "AFK"..dots[index] index = index + 1 if index > #dots then index = 1 end wait(0.5) end end) coroutine.resume(afkAnimCoroutine) end local function stopAFKAnimation() if afkAnimCoroutine then afkAnimCoroutine = nil end afkLabel.Text = "AFK" end local function showAFK() afkLabel.Visible = true overlay.Visible = true startAFKAnimation() for i = blur.Size, 20 do blur.Size = i overlay.BackgroundTransparency = 1 - (i/40) RunService.RenderStepped:Wait() end end local function hideAFK() stopAFKAnimation() for i = blur.Size, 0, -1 do blur.Size = i overlay.BackgroundTransparency = 1 - (i/40) RunService.RenderStepped:Wait() end afkLabel.Visible = false overlay.Visible = false end local function smoothTween(part, targetPos, duration) if not part or not part.Parent then return end local tweenInfo = TweenInfo.new(duration, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut) local tween = TweenService:Create(part, tweenInfo, {CFrame = CFrame.new(targetPos)}) tween:Play() return tween end local teleportCoroutine local function startTeamLoop() if teleportCoroutine then teleportCoroutine = nil end teleportCoroutine = coroutine.create(function() while teleportCoroutine do if not character or not character.Parent or not rootPart or not rootPart.Parent then hideAFK() break end local team = player.Team if not team or (team.Name ~= "Red" and team.Name ~= "Blue") then hideAFK() wait(0.5) continue end if blur.Size == 0 then showAFK() end local startPos = teamPoints[team.Name] if not startPos then wait(0.5) continue end if rootPart and rootPart.Parent then rootPart.CFrame = CFrame.new(startPos) local tween = smoothTween(rootPart, targetPoint, tweenDuration) if tween then tween.Completed:Wait() end end if not teleportCoroutine or not rootPart or not rootPart.Parent then break end if rootPart and rootPart.Parent then local tween = smoothTween(rootPart, startPos, tweenDuration) if tween then tween.Completed:Wait() end end end hideAFK() end) coroutine.resume(teleportCoroutine) end local function onCharacterAdded(char) if teleportCoroutine then teleportCoroutine = nil end character = char rootPart = character:WaitForChild("HumanoidRootPart") wait(0.5) startTeamLoop() end player.CharacterAdded:Connect(onCharacterAdded) if player.Character then onCharacterAdded(player.Character) end