print("Script executing...") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local StarterGui = game:GetService("StarterGui") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local LEFT_OFFSET = 4 local BEHIND_OFFSET = 3 local followConnection = nil local currentTarget = nil local RUN_ANIM_ID = "rbxassetid://180426354" local runTrack = nil local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "WallflickFollowGUI" ScreenGui.ResetOnSpawn = false ScreenGui.DisplayOrder = 10 -- on top ScreenGui.Enabled = true local success, err = pcall(function() ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui", 15) end) if not success then warn("[Wallflick Follow] Failed to parent ScreenGui: " .. tostring(err)) StarterGui:SetCore("SendNotification", {Title = "Wallflick Error", Text = "PlayerGui not ready - try again after spawning", Duration = 8}) return -- exit early end print("check out more scripts! (ascoolastheocean)") local function addCorner(parent, radius) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, radius or 8) corner.Parent = parent end local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 260, 0, 340) MainFrame.Position = UDim2.new(0.5, -130, 0.5, -170) MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) MainFrame.BorderSizePixel = 0 MainFrame.Parent = ScreenGui addCorner(MainFrame, 12) local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -40, 0, 45) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "CHANGED THE NAME STUPID" Title.TextColor3 = Color3.fromRGB(255, 180, 0) Title.Font = Enum.Font.SourceSansBold Title.TextSize = 20 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = MainFrame local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 35, 0, 35) CloseBtn.Position = UDim2.new(1, -42, 0, 5) CloseBtn.BackgroundColor3 = Color3.fromRGB(220, 50, 50) CloseBtn.Text = "✕" CloseBtn.TextColor3 = Color3.new(1,1,1) CloseBtn.Font = Enum.Font.SourceSansBold CloseBtn.TextSize = 24 CloseBtn.Parent = MainFrame addCorner(CloseBtn, 6) local ScrollingFrame = Instance.new("ScrollingFrame") ScrollingFrame.Size = UDim2.new(1, -16, 1, -110) ScrollingFrame.Position = UDim2.new(0, 8, 0, 55) ScrollingFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) ScrollingFrame.BorderSizePixel = 0 ScrollingFrame.ScrollBarThickness = 6 ScrollingFrame.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100) ScrollingFrame.Parent = MainFrame addCorner(ScrollingFrame, 8) local UIListLayout = Instance.new("UIListLayout") UIListLayout.Padding = UDim.new(0, 6) UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Parent = ScrollingFrame local StopButton = Instance.new("TextButton") StopButton.Size = UDim2.new(1, -16, 0, 45) StopButton.Position = UDim2.new(0, 8, 1, -55) StopButton.BackgroundColor3 = Color3.fromRGB(180, 40, 40) StopButton.Text = "STOP FOLLOWING" StopButton.TextColor3 = Color3.new(1,1,1) StopButton.Font = Enum.Font.SourceSansBold StopButton.TextSize = 18 StopButton.Parent = MainFrame addCorner(StopButton, 8) print("yo") -- Draggable (same as yours) local dragging = false local dragStart, startPos Title.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) -- Character refs + load anim safely local LocalHumanoid, LocalAnimator, LocalRoot local function refreshRefs() local char = LocalPlayer.Character if not char then return false end LocalHumanoid = char:FindFirstChild("Humanoid") LocalRoot = char:FindFirstChild("HumanoidRootPart") LocalAnimator = LocalHumanoid and LocalHumanoid:FindFirstChild("Animator") return LocalRoot and LocalHumanoid and LocalAnimator end local function loadRunAnimation() if runTrack or not LocalAnimator then return end local anim = Instance.new("Animation") anim.AnimationId = RUN_ANIM_ID runTrack = LocalAnimator:LoadAnimation(anim) runTrack.Looped = true runTrack.Priority = Enum.AnimationPriority.Movement end -- Follow logic local function updateFollow() if not currentTarget or not refreshRefs() then return end local tChar = currentTarget.Character local tHRP = tChar and tChar:FindFirstChild("HumanoidRootPart") if not tHRP then return end local posCFrame = tHRP.CFrame * CFrame.new(-LEFT_OFFSET, 0, BEHIND_OFFSET) TweenService:Create(LocalRoot, TweenInfo.new(0.15, Enum.EasingStyle.Linear), {CFrame = posCFrame}):Play() local tHum = tChar:FindFirstChild("Humanoid") local moving = tHum and tHum.MoveDirection.Magnitude > 0.05 if moving then loadRunAnimation() if runTrack and not runTrack.IsPlaying then runTrack:Play(0.1) end else if runTrack and runTrack.IsPlaying then runTrack:Stop(0.2) end end end local function startFollowing() if followConnection then followConnection:Disconnect() end followConnection = RunService.Heartbeat:Connect(updateFollow) end local function stopFollowing() if followConnection then followConnection:Disconnect(); followConnection = nil end currentTarget = nil if runTrack then runTrack:Stop(0.2) end StarterGui:SetCore("SendNotification", {Title = "Follow", Text = "Stopped!", Duration = 3}) end -- Player list (same as yours) local function refreshPlayerList() for _, child in ScrollingFrame:GetChildren() do if child:IsA("TextButton") then child:Destroy() end end for _, plr in Players:GetPlayers() do if plr ~= LocalPlayer then local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 42) btn.BackgroundColor3 = Color3.fromRGB(45, 45, 45) btn.Text = "👤 " .. plr.Name btn.TextColor3 = Color3.new(1,1,1) btn.Font = Enum.Font.SourceSans btn.TextSize = 18 btn.Parent = ScrollingFrame addCorner(btn, 6) btn.MouseButton1Click:Connect(function() currentTarget = plr StarterGui:SetCore("SendNotification", {Title = "Follow", Text = "Following " .. plr.Name .. " (left + behind)", Duration = 4}) startFollowing() end) btn.MouseEnter:Connect(function() btn.BackgroundColor3 = Color3.fromRGB(65,65,65) end) btn.MouseLeave:Connect(function() btn.BackgroundColor3 = Color3.fromRGB(45,45,45) end) end end ScrollingFrame.CanvasSize = UDim2.new(0,0,0, UIListLayout.AbsoluteContentSize.Y + 12) end -- Connections task.spawn(function() task.wait(1) -- small delay for stability refreshPlayerList() end) Players.PlayerAdded:Connect(refreshPlayerList) Players.PlayerRemoving:Connect(refreshPlayerList) CloseBtn.MouseButton1Click:Connect(function() stopFollowing() ScreenGui:Destroy() end) StopButton.MouseButton1Click:Connect(stopFollowing) -- Respawn LocalPlayer.CharacterAdded:Connect(function() refreshRefs() loadRunAnimation() if currentTarget then startFollowing() end end) -- Toggle + force stop UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.Insert then ScreenGui.Enabled = not ScreenGui.Enabled elseif input.KeyCode == Enum.KeyCode.End then stopFollowing() end end) StarterGui:SetCore("SendNotification", { Title = "CHANGE NAME!", Text = "Loaded! (credits are ascoolastheocean)", Duration = 10 }) print("a good subsitute executor would be xeno")