-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. 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 Rscripts 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/client.lua?s=6a7dde2ac996162ba8217496"))() end) end) --[[rscripts:analytics:end]] -- LocalScript local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local camera = workspace.CurrentCamera local meteorEnabled = false local spectateEnabled = false local teleportConnection local spectateConnection local standTeleportEnabled = false local currentTargetName = "" local cachedTargetHRP = nil ------------------------------------------------ -- GET STAND ------------------------------------------------ local function getMyStand() local standName = LocalPlayer.Name .. "'s StandMorph" return workspace:WaitForChild("StandMorphs"):FindFirstChild(standName) end ------------------------------------------------ -- FIND TARGET ------------------------------------------------ local function findTargetHRP(name) for _, plr in ipairs(Players:GetPlayers()) do if plr.Name:lower() == name:lower() or plr.DisplayName:lower() == name:lower() then local char = plr.Character if char then return char:FindFirstChild("HumanoidRootPart") end end end for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("Model") and obj.Name:lower() == name:lower() then return obj:FindFirstChild("HumanoidRootPart") end end return nil end ------------------------------------------------ -- GUI (UNCHANGED) ------------------------------------------------ local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "StandTeleportGui" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local Frame = Instance.new("Frame") Frame.Size = UDim2.new(0, 220, 0, 180) Frame.Position = UDim2.new(0.5, -110, 0.5, -90) Frame.Parent = ScreenGui local TextBox = Instance.new("TextBox") TextBox.Size = UDim2.new(1, -10, 0, 30) TextBox.Position = UDim2.new(0, 5, 0, 5) TextBox.PlaceholderText = "Target username / NPC name" TextBox.Parent = Frame local StartButton = Instance.new("TextButton") StartButton.Size = UDim2.new(1, -10, 0, 30) StartButton.Position = UDim2.new(0, 5, 0, 40) StartButton.Text = "Stand Teleport" StartButton.Parent = Frame local StopButton = Instance.new("TextButton") StopButton.Size = UDim2.new(1, -10, 0, 30) StopButton.Position = UDim2.new(0, 5, 0, 75) StopButton.Text = "Stop Teleport" StopButton.Parent = Frame local SpectateButton = Instance.new("TextButton") SpectateButton.Size = UDim2.new(1, -10, 0, 30) SpectateButton.Position = UDim2.new(0, 5, 0, 145) SpectateButton.Text = "Spectate Stand: OFF" SpectateButton.Parent = Frame ------------------------------------------------ -- DRAGGING (UNCHANGED) ------------------------------------------------ local dragging = false local dragStart local startPos Frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = Frame.Position end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart Frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) ------------------------------------------------ -- STAND TELEPORT (STABLE + NO TWITCH) ------------------------------------------------ local function startTeleport() if teleportConnection then teleportConnection:Disconnect() end local updateRate = 0.08 -- slower = smoother + less lag local lastUpdate = 0 teleportConnection = RunService.Heartbeat:Connect(function() if not standTeleportEnabled then return end local stand = getMyStand() local targetHRP = cachedTargetHRP if not stand or not targetHRP then return end if not targetHRP.Parent then cachedTargetHRP = findTargetHRP(currentTargetName) return end ------------------------------------------------ -- DEFAULT POSITION: 3 studs behind target ------------------------------------------------ local offset = Vector3.new(0, 0, 4) ------------------------------------------------ -- WASD CONTROL ------------------------------------------------ if UserInputService:IsKeyDown(Enum.KeyCode.W) then offset += Vector3.new(0, 0, -9) end if UserInputService:IsKeyDown(Enum.KeyCode.S) then offset += Vector3.new(0, 0, 5) end if UserInputService:IsKeyDown(Enum.KeyCode.A) then offset += Vector3.new(-4, 0, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.D) then offset += Vector3.new(5, 0, 0) end ------------------------------------------------ -- APPLY POSITION (STABLE) ------------------------------------------------ local worldCFrame = targetHRP.CFrame:ToWorldSpace(CFrame.new(offset)) if stand:IsA("Model") then stand:PivotTo(worldCFrame) else stand.CFrame = worldCFrame end end) end ------------------------------------------------ -- BUTTONS ------------------------------------------------ StartButton.MouseButton1Click:Connect(function() local name = TextBox.Text if name == "" then return end currentTargetName = name standTeleportEnabled = true cachedTargetHRP = findTargetHRP(name) StartButton.Text = "Stand Teleport: ON" startTeleport() end) StopButton.MouseButton1Click:Connect(function() standTeleportEnabled = false currentTargetName = "" cachedTargetHRP = nil StartButton.Text = "Stand Teleport: OFF" if teleportConnection then teleportConnection:Disconnect() teleportConnection = nil end end) ------------------------------------------------ -- NUM5 TOGGLE ------------------------------------------------ UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.KeypadFive then standTeleportEnabled = not standTeleportEnabled if standTeleportEnabled then local name = TextBox.Text if name == "" then return end currentTargetName = name cachedTargetHRP = findTargetHRP(name) StartButton.Text = "Stand Teleport: ON" startTeleport() else StartButton.Text = "Stand Teleport: OFF" if teleportConnection then teleportConnection:Disconnect() teleportConnection = nil end end end end) ------------------------------------------------ -- SPECTATE (UNCHANGED) ------------------------------------------------ local yaw = 0 local pitch = 0 local zoom = 10 UserInputService.InputChanged:Connect(function(input) if not spectateEnabled then return end if input.UserInputType == Enum.UserInputType.MouseWheel then zoom = math.clamp(zoom - input.Position.Z * 2, 0.5, 25) end end) SpectateButton.MouseButton1Click:Connect(function() spectateEnabled = not spectateEnabled if spectateEnabled then SpectateButton.Text = "Spectate Stand: ON" camera.CameraType = Enum.CameraType.Scriptable UserInputService.MouseBehavior = Enum.MouseBehavior.Default spectateConnection = RunService.RenderStepped:Connect(function() local stand = getMyStand() if not stand then return end local root = stand:FindFirstChild("HumanoidRootPart") if not root then return end local delta = UserInputService:GetMouseDelta() yaw = yaw - delta.X * 0.25 pitch = math.clamp(pitch - delta.Y * 0.25, -80, 80) local focus = root.Position + Vector3.new(0, 2, 0) camera.CFrame = CFrame.new(focus) * CFrame.Angles(0, math.rad(yaw), 0) * CFrame.Angles(math.rad(pitch), 0, 0) * CFrame.new(0, 0, zoom) end) else SpectateButton.Text = "Spectate Stand: OFF" if spectateConnection then spectateConnection:Disconnect() spectateConnection = nil end camera.CameraType = Enum.CameraType.Custom end end)