-- TP FusionCity Script - Fixed Working Buttons local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local mouse = player:GetMouse() -- Variables local savedPositions = {} local noclipEnabled = false local autoKickEnabled = false local selectedPositions = {} local forwardStuds = 10 local noclipConnection = nil local bypassMode = "Advanced" local isGUIVisible = false local clickTPEnabled = false -- Anti-Detection Teleport System local function microMovementTP(targetPosition) local character = player.Character local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false end local startPos = humanoidRootPart.Position local distance = (targetPosition - startPos).Magnitude local steps = math.max(math.ceil(distance / 3), 8) spawn(function() for i = 1, steps do if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then break end local progress = i / steps local currentPos = startPos:Lerp(targetPosition, progress) player.Character.HumanoidRootPart.CFrame = CFrame.new(currentPos) player.Character.HumanoidRootPart.Velocity = Vector3.new(0, 0, 0) if player.Character.HumanoidRootPart.AssemblyLinearVelocity then player.Character.HumanoidRootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end wait(0.03) end if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = CFrame.new(targetPosition) end end) return true end local function smoothTeleport(targetPosition) local character = player.Character local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false end local distance = (targetPosition - humanoidRootPart.Position).Magnitude local tweenTime = math.max(distance / 100, 0.5) local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Linear, Enum.EasingDirection.Out) local tween = TweenService:Create(humanoidRootPart, tweenInfo, {CFrame = CFrame.new(targetPosition)}) tween:Play() return true end -- Enhanced Noclip local function toggleNoclip(enable) local character = player.Character if not character then return end if enable and not noclipEnabled then noclipEnabled = true noclipConnection = RunService.Stepped:Connect(function() pcall(function() for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.Parent == character then part.CanCollide = false end end end) end) elseif not enable and noclipEnabled then noclipEnabled = false if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end spawn(function() for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.Parent == character and part.Name ~= "HumanoidRootPart" then wait(0.05) part.CanCollide = true end end end) end end -- Smart teleport local function smartTeleport(targetPosition) local success = false local method = "Unknown" if bypassMode == "Stealth" then success = microMovementTP(targetPosition) method = "Micro-Movement" else success = smoothTeleport(targetPosition) method = "Smooth Tween" end return success, method end -- Directional teleport functions local function directionalTeleport(direction, studs) local character = player.Character local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false end local currentPosition = humanoidRootPart.Position local targetPosition if direction == "Forward" then local lookDirection = humanoidRootPart.CFrame.LookVector targetPosition = currentPosition + (lookDirection * studs) elseif direction == "Up" then targetPosition = currentPosition + Vector3.new(0, studs, 0) elseif direction == "Down" then targetPosition = currentPosition - Vector3.new(0, studs, 0) else return false end return smartTeleport(targetPosition) end -- Click TP functionality local function setupClickTP() mouse.Button1Down:Connect(function() if not clickTPEnabled then return end local hit = mouse.Hit if hit then local targetPosition = hit.Position + Vector3.new(0, 3, 0) smartTeleport(targetPosition) end end) end -- Create GUI local function createGUI() -- Remove existing local existing = playerGui:FindFirstChild("TPFusionCity") if existing then existing:Destroy() end -- ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "TPFusionCity" screenGui.Parent = playerGui screenGui.ResetOnSpawn = false -- Draggable Toggle Button local toggleBtn = Instance.new("TextButton") toggleBtn.Name = "ToggleButton" toggleBtn.Size = UDim2.new(0, 100, 0, 35) toggleBtn.Position = UDim2.new(0, 10, 0, 10) toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215) toggleBtn.BackgroundTransparency = 0.2 toggleBtn.Text = "TP Menu" toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.TextScaled = true toggleBtn.Font = Enum.Font.GothamBold toggleBtn.BorderSizePixel = 0 toggleBtn.Active = true toggleBtn.Draggable = true toggleBtn.Parent = screenGui local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 8) toggleCorner.Parent = toggleBtn -- Main Frame local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 300, 0, 400) mainFrame.Position = UDim2.new(0.5, -150, 0.5, -200) mainFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) mainFrame.BackgroundTransparency = 0.3 mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Visible = isGUIVisible mainFrame.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 12) mainCorner.Parent = mainFrame -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundColor3 = Color3.fromRGB(0, 120, 215) title.BackgroundTransparency = 0.3 title.Text = "TP FusionCity" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextScaled = true title.Font = Enum.Font.GothamBold title.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 12) titleCorner.Parent = title return screenGui, mainFrame, toggleBtn end -- Create button local function createButton(parent, text, position, size, color, callback) local button = Instance.new("TextButton") button.Size = size button.Position = position button.BackgroundColor3 = color or Color3.fromRGB(60, 60, 60) button.BackgroundTransparency = 0.2 button.Text = text button.TextColor3 = Color3.fromRGB(255, 255, 255) button.TextScaled = true button.Font = Enum.Font.Gotham button.BorderSizePixel = 0 button.Parent = parent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = button if callback then button.MouseButton1Click:Connect(callback) end return button end -- Update positions list local function updatePositionsList(scrollFrame, statusLabel) for _, child in pairs(scrollFrame:GetChildren()) do if child:IsA("Frame") and child.Name:find("PosItem") then child:Destroy() end end local yPos = 0 for name, position in pairs(savedPositions) do local itemFrame = Instance.new("Frame") itemFrame.Name = "PosItem_" .. name itemFrame.Size = UDim2.new(1, -10, 0, 35) itemFrame.Position = UDim2.new(0, 5, 0, yPos) itemFrame.BackgroundColor3 = selectedPositions[name] and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(40, 40, 40) itemFrame.BackgroundTransparency = 0.2 itemFrame.BorderSizePixel = 0 itemFrame.Parent = scrollFrame local itemCorner = Instance.new("UICorner") itemCorner.CornerRadius = UDim.new(0, 6) itemCorner.Parent = itemFrame -- Name label local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(0.4, 0, 1, 0) nameLabel.Position = UDim2.new(0, 5, 0, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = name nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255) nameLabel.TextScaled = true nameLabel.Font = Enum.Font.Gotham nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.Parent = itemFrame -- Select button local selectBtn = createButton(itemFrame, "Select", UDim2.new(0.4, 2, 0, 3), UDim2.new(0.2, -2, 1, -6), Color3.fromRGB(0, 120, 0), function() selectedPositions[name] = not selectedPositions[name] updatePositionsList(scrollFrame, statusLabel) local count = 0 for _ in pairs(selectedPositions) do count = count + 1 end statusLabel.Text = count > 0 and (count .. " selected") or "Ready" statusLabel.TextColor3 = count > 0 and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(0, 255, 0) end) -- TP button local tpBtn = createButton(itemFrame, "TP", UDim2.new(0.6, 2, 0, 3), UDim2.new(0.2, -2, 1, -6), Color3.fromRGB(0, 120, 215), function() statusLabel.Text = "Teleporting to " .. name .. "..." statusLabel.TextColor3 = Color3.fromRGB(0, 200, 255) local success, method = smartTeleport(savedPositions[name]) if success then statusLabel.Text = "Teleported to " .. name statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) else statusLabel.Text = "Failed to teleport" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) end end) -- Delete button local deleteBtn = createButton(itemFrame, "Del", UDim2.new(0.8, 2, 0, 3), UDim2.new(0.2, -7, 1, -6), Color3.fromRGB(200, 0, 0), function() savedPositions[name] = nil selectedPositions[name] = nil updatePositionsList(scrollFrame, statusLabel) statusLabel.Text = "Position deleted" statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end) yPos = yPos + 40 end scrollFrame.CanvasSize = UDim2.new(0, 0, 0, math.max(yPos + 20, 100)) end -- Main setup local function setupScript() local screenGui, mainFrame, toggleBtn = createGUI() -- Variables for UI elements local statusLabel, nameInput, positionsFrame, studInput local noclipBtn, kickBtn, clickTpBtn, modeBtn -- Toggle functionality toggleBtn.MouseButton1Click:Connect(function() isGUIVisible = not isGUIVisible mainFrame.Visible = isGUIVisible toggleBtn.Text = isGUIVisible and "Hide Menu" or "TP Menu" end) -- Position name input nameInput = Instance.new("TextBox") nameInput.Size = UDim2.new(0.65, -5, 0, 25) nameInput.Position = UDim2.new(0, 5, 0, 40) nameInput.BackgroundColor3 = Color3.fromRGB(40, 40, 40) nameInput.BackgroundTransparency = 0.2 nameInput.PlaceholderText = "Position name..." nameInput.Text = "" nameInput.TextColor3 = Color3.fromRGB(255, 255, 255) nameInput.TextScaled = true nameInput.Font = Enum.Font.Gotham nameInput.BorderSizePixel = 0 nameInput.Parent = mainFrame local inputCorner = Instance.new("UICorner") inputCorner.CornerRadius = UDim.new(0, 6) inputCorner.Parent = nameInput -- Save button local saveBtn = createButton(mainFrame, "Save", UDim2.new(0.65, 5, 0, 40), UDim2.new(0.35, -10, 0, 25), Color3.fromRGB(0, 150, 0), function() local character = player.Character local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then statusLabel.Text = "Character not found!" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) return end local name = nameInput.Text if name == "" then name = "Position_" .. (#savedPositions + 1) end savedPositions[name] = humanoidRootPart.Position updatePositionsList(positionsFrame, statusLabel) nameInput.Text = "" statusLabel.Text = "Position saved!" statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) end) -- Positions ScrollingFrame positionsFrame = Instance.new("ScrollingFrame") positionsFrame.Name = "PositionsFrame" positionsFrame.Size = UDim2.new(1, -10, 0, 120) positionsFrame.Position = UDim2.new(0, 5, 0, 75) positionsFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) positionsFrame.BackgroundTransparency = 0.3 positionsFrame.BorderSizePixel = 0 positionsFrame.ScrollBarThickness = 6 positionsFrame.ScrollBarImageColor3 = Color3.fromRGB(0, 120, 215) positionsFrame.Parent = mainFrame local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 8) frameCorner.Parent = positionsFrame -- Chain TP button local chainBtn = createButton(mainFrame, "Chain TP", UDim2.new(0, 5, 0, 205), UDim2.new(1, -10, 0, 25), Color3.fromRGB(255, 165, 0), function() local selectedList = {} for name, selected in pairs(selectedPositions) do if selected and savedPositions[name] then table.insert(selectedList, {name = name, pos = savedPositions[name]}) end end if #selectedList == 0 then statusLabel.Text = "No positions selected!" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) return end statusLabel.Text = "Chain TP starting..." statusLabel.TextColor3 = Color3.fromRGB(255, 165, 0) spawn(function() for i, posData in ipairs(selectedList) do statusLabel.Text = "TP " .. i .. "/" .. #selectedList .. ": " .. posData.name local success = smartTeleport(posData.pos) if not success then statusLabel.Text = "Chain TP failed" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) return end if i < #selectedList then wait(1.5) end end statusLabel.Text = "Chain TP completed!" statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) end) end) -- Control buttons row 1 clickTpBtn = createButton(mainFrame, "Click TP: OFF", UDim2.new(0, 5, 0, 240), UDim2.new(0.48, -2, 0, 25), Color3.fromRGB(100, 100, 100), function() clickTPEnabled = not clickTPEnabled if clickTPEnabled then clickTpBtn.Text = "Click TP: ON" clickTpBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) statusLabel.Text = "Click TP enabled" else clickTpBtn.Text = "Click TP: OFF" clickTpBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) statusLabel.Text = "Click TP disabled" end statusLabel.TextColor3 = Color3.fromRGB(0, 255, 255) end) noclipBtn = createButton(mainFrame, "Noclip: OFF", UDim2.new(0.52, 2, 0, 240), UDim2.new(0.48, -7, 0, 25), Color3.fromRGB(100, 100, 100), function() toggleNoclip(not noclipEnabled) if noclipEnabled then noclipBtn.Text = "Noclip: ON" noclipBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) statusLabel.Text = "Noclip enabled" else noclipBtn.Text = "Noclip: OFF" noclipBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) statusLabel.Text = "Noclip disabled" end statusLabel.TextColor3 = Color3.fromRGB(0, 255, 255) end) -- Control buttons row 2 kickBtn = createButton(mainFrame, "Auto Kick: OFF", UDim2.new(0, 5, 0, 270), UDim2.new(0.48, -2, 0, 25), Color3.fromRGB(100, 100, 100), function() autoKickEnabled = not autoKickEnabled if autoKickEnabled then kickBtn.Text = "Auto Kick: ON" kickBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) statusLabel.Text = "Auto kick enabled" else kickBtn.Text = "Auto Kick: OFF" kickBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) statusLabel.Text = "Auto kick disabled" end statusLabel.TextColor3 = Color3.fromRGB(255, 255, 0) end) modeBtn = createButton(mainFrame, "Mode: " .. bypassMode, UDim2.new(0.52, 2, 0, 270), UDim2.new(0.48, -7, 0, 25), Color3.fromRGB(150, 50, 150), function() if bypassMode == "Advanced" then bypassMode = "Stealth" else bypassMode = "Advanced" end modeBtn.Text = "Mode: " .. bypassMode statusLabel.Text = "Mode changed to: " .. bypassMode statusLabel.TextColor3 = Color3.fromRGB(255, 0, 255) end) -- Directional TP input studInput = Instance.new("TextBox") studInput.Size = UDim2.new(0.25, -2, 0, 25) studInput.Position = UDim2.new(0, 5, 0, 305) studInput.BackgroundColor3 = Color3.fromRGB(40, 40, 40) studInput.BackgroundTransparency = 0.2 studInput.Text = "10" studInput.TextColor3 = Color3.fromRGB(255, 255, 255) studInput.TextScaled = true studInput.Font = Enum.Font.Gotham studInput.BorderSizePixel = 0 studInput.Parent = mainFrame local studCorner = Instance.new("UICorner") studCorner.CornerRadius = UDim.new(0, 6) studCorner.Parent = studInput -- Directional buttons local forwardBtn = createButton(mainFrame, "Forward", UDim2.new(0.25, 3, 0, 305), UDim2.new(0.25, -2, 0, 25), Color3.fromRGB(255, 165, 0), function() local studs = tonumber(studInput.Text) or 10 statusLabel.Text = "Forward TP " .. studs .. " studs..." statusLabel.TextColor3 = Color3.fromRGB(255, 165, 0) local success, method = directionalTeleport("Forward", studs) if success then statusLabel.Text = "Forward TP completed" statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) else statusLabel.Text = "Forward TP failed" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) end end) local upBtn = createButton(mainFrame, "Up", UDim2.new(0.5, 3, 0, 305), UDim2.new(0.25, -2, 0, 25), Color3.fromRGB(0, 200, 0), function() local studs = tonumber(studInput.Text) or 10 statusLabel.Text = "Up TP " .. studs .. " studs..." statusLabel.TextColor3 = Color3.fromRGB(0, 200, 0) local success, method = directionalTeleport("Up", studs) if success then statusLabel.Text = "Up TP completed" statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) else statusLabel.Text = "Up TP failed" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) end end) local downBtn = createButton(mainFrame, "Down", UDim2.new(0.75, 3, 0, 305), UDim2.new(0.25, -7, 0, 25), Color3.fromRGB(200, 100, 0), function() local studs = tonumber(studInput.Text) or 10 statusLabel.Text = "Down TP " .. studs .. " studs..." statusLabel.TextColor3 = Color3.fromRGB(200, 100, 0) local success, method = directionalTeleport("Down", studs) if success then statusLabel.Text = "Down TP completed" statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) else statusLabel.Text = "Down TP failed" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) end end) -- Status label statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, -10, 0, 30) statusLabel.Position = UDim2.new(0, 5, 0, 340) statusLabel.BackgroundColor3 = Color3.fromRGB(30, 30, 30) statusLabel.BackgroundTransparency = 0.2 statusLabel.Text = "Script loaded! Ready to teleport." statusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) statusLabel.TextScaled = true statusLabel.Font = Enum.Font.Gotham statusLabel.TextWrapped = true statusLabel.TextXAlignment = Enum.TextXAlignment.Center statusLabel.BorderSizePixel = 0 statusLabel.Parent = mainFrame local statusCorner = Instance.new("UICorner") statusCorner.CornerRadius = UDim.new(0, 6) statusCorner.Parent = statusLabel -- Keyboard shortcuts UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.One then -- Stealth mode toggleNoclip(true) autoKickEnabled = true bypassMode = "Stealth" clickTPEnabled = true noclipBtn.Text = "Noclip: ON" noclipBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) kickBtn.Text = "Auto Kick: ON" kickBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) modeBtn.Text = "Mode: " .. bypassMode clickTpBtn.Text = "Click TP: ON" clickTpBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) statusLabel.Text = "STEALTH MODE ACTIVATED" statusLabel.TextColor3 = Color3.fromRGB(255, 0, 255) elseif input.KeyCode == Enum.KeyCode.Two then -- Disable all toggleNoclip(false) autoKickEnabled = false bypassMode = "Advanced" clickTPEnabled = false noclipBtn.Text = "Noclip: OFF" noclipBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) kickBtn.Text = "Auto Kick: OFF" kickBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) modeBtn.Text = "Mode: " .. bypassMode clickTpBtn.Text = "Click TP: OFF" clickTpBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) statusLabel.Text = "All features disabled" statusLabel.TextColor3 = Color3.fromRGB(255, 255, 0) elseif input.KeyCode == Enum.KeyCode.Three then -- Toggle GUI isGUIVisible = not isGUIVisible mainFrame.Visible = isGUIVisible toggleBtn.Text = isGUIVisible and "Hide Menu" or "TP Menu" end end) -- Initialize updatePositionsList(positionsFrame, statusLabel) setupClickTP() print("TP FusionCity loaded successfully!") print("Key 1: Stealth Mode | Key 2: Disable All | Key 3: Toggle GUI") end -- Start the script setupScript()