local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local tool = Instance.new("Tool") tool.Name = "TeleportSelector" tool.RequiresHandle = false tool.CanBeDropped = false local selectionGui = Instance.new("ScreenGui") selectionGui.Name = "ChoiceGui" selectionGui.ResetOnSpawn = false selectionGui.Enabled = false selectionGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 420, 0, 150) frame.Position = UDim2.new(0.5, -210, 0.5, -75) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BackgroundTransparency = 0.1 frame.BorderSizePixel = 0 frame.Parent = selectionGui local corner = Instance.new("UICorner", frame) corner.CornerRadius = UDim.new(0, 12) local uiLayout = Instance.new("UIListLayout", frame) uiLayout.FillDirection = Enum.FillDirection.Horizontal uiLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center uiLayout.VerticalAlignment = Enum.VerticalAlignment.Center uiLayout.Padding = UDim.new(0, 10) local function createButton(text, color) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 130, 0, 130) btn.Text = text btn.Font = Enum.Font.GothamBlack btn.TextScaled = true btn.TextColor3 = Color3.new(1, 1, 1) btn.BackgroundColor3 = color btn.AutoButtonColor = true local uiCorner = Instance.new("UICorner", btn) uiCorner.CornerRadius = UDim.new(0, 12) return btn end local leftButton = createButton("← Left", Color3.fromRGB(80, 80, 255)) leftButton.Parent = frame local rightButton = createButton("Right →", Color3.fromRGB(80, 255, 80)) rightButton.Parent = frame local modeButton = createButton("Mode: Regular", Color3.fromRGB(255, 170, 50)) modeButton.Parent = frame local mouse = LocalPlayer:GetMouse() local selectedTarget = nil local mode = "Regular" modeButton.MouseButton1Click:Connect(function() mode = (mode == "Regular") and "Singular" or "Regular" modeButton.Text = "Mode: " .. mode end) tool.Activated:Connect(function() if not mouse.Target then return end local model = mouse.Target:FindFirstAncestorOfClass("Model") if not model then return end local humanoid = model:FindFirstChildOfClass("Humanoid") local targetPlayer = Players:GetPlayerFromCharacter(model) if humanoid and targetPlayer and targetPlayer ~= LocalPlayer then selectedTarget = targetPlayer selectionGui.Enabled = true end end) local function getTeleportCFrame(targetCharacter, direction) local root = targetCharacter:FindFirstChild("HumanoidRootPart") if root then local offset = (mode == "Singular") and 6 or 9 local rightVector = root.CFrame.RightVector local newPos = root.Position + (rightVector * direction * offset) local look = root.CFrame.LookVector return CFrame.new(newPos, newPos + look) end end leftButton.MouseButton1Click:Connect(function() if selectedTarget then local cframe = getTeleportCFrame(selectedTarget.Character, -1) if cframe then LocalPlayer.Character:SetPrimaryPartCFrame(cframe) end end selectionGui.Enabled = false selectedTarget = nil end) rightButton.MouseButton1Click:Connect(function() if selectedTarget then local cframe = getTeleportCFrame(selectedTarget.Character, 1) if cframe then LocalPlayer.Character:SetPrimaryPartCFrame(cframe) end end selectionGui.Enabled = false selectedTarget = nil end) tool.Parent = LocalPlayer:WaitForChild("Backpack")