-- Spaxware: TP Forward UI local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") -- Create main UI container local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "SpaxwareTPForward" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = PlayerGui -- Create toggle button (always visible at top of screen) local ToggleButton = Instance.new("TextButton") ToggleButton.Name = "ToggleButton" ToggleButton.Size = UDim2.new(0.1, 0, 0.04, 0) ToggleButton.Position = UDim2.new(0.45, 0, 0.01, 0) ToggleButton.BackgroundColor3 = Color3.new(0, 0, 0) ToggleButton.Text = "ON" ToggleButton.TextColor3 = Color3.fromRGB(0, 1, 0) -- Green when ON ToggleButton.Font = Enum.Font.GothamBold ToggleButton.TextSize = 14 ToggleButton.Parent = ScreenGui local ToggleCorner = Instance.new("UICorner") ToggleCorner.CornerRadius = UDim.new(0, 8) ToggleCorner.Parent = ToggleButton -- Create main UI window local MainFrame = Instance.new("Frame") MainFrame.Name = "MainWindow" MainFrame.Size = UDim2.new(0, 250, 0, 200) -- Slightly taller to fit new elements MainFrame.Position = UDim2.new(0.5, -125, 0.5, -100) MainFrame.BackgroundColor3 = Color3.fromRGB(30, 80, 50) MainFrame.BorderSizePixel = 0 MainFrame.Parent = ScreenGui -- Add rounded corners local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0, 12) Corner.Parent = MainFrame -- Title text local Title = Instance.new("TextLabel") Title.Name = "Title" Title.Size = UDim2.new(0.8, 0, 0.15, 0) Title.Position = UDim2.new(0.1, 0, 0.05, 0) Title.BackgroundTransparency = 1 Title.Text = "Spaxware: TP Forward" Title.TextColor3 = Color3.new(1, 1, 1) Title.Font = Enum.Font.GothamBold Title.TextSize = 18 Title.Parent = MainFrame -- Distance input box local DistanceInput = Instance.new("TextBox") DistanceInput.Name = "DistanceInput" DistanceInput.Size = UDim2.new(0.5, 0, 0.15, 0) DistanceInput.Position = UDim2.new(0.1, 0, 0.25, 0) DistanceInput.BackgroundColor3 = Color3.fromRGB(40, 100, 60) DistanceInput.TextColor3 = Color3.new(1, 1, 1) DistanceInput.PlaceholderText = "Distance (1-100)" DistanceInput.Text = "50" DistanceInput.Font = Enum.Font.Gotham DistanceInput.TextSize = 14 DistanceInput.Parent = MainFrame local InputCorner = Instance.new("UICorner") InputCorner.CornerRadius = UDim.new(0, 8) InputCorner.Parent = DistanceInput -- Set button local SetButton = Instance.new("TextButton") SetButton.Name = "SetButton" SetButton.Size = UDim2.new(0.25, 0, 0.15, 0) SetButton.Position = UDim2.new(0.65, 0, 0.25, 0) SetButton.BackgroundColor3 = Color3.fromRGB(50, 110, 70) SetButton.Text = "Set" SetButton.TextColor3 = Color3.new(1, 1, 1) SetButton.Font = Enum.Font.GothamBold SetButton.TextSize = 14 SetButton.Parent = MainFrame local SetCorner = Instance.new("UICorner") SetCorner.CornerRadius = UDim.new(0, 8) SetCorner.Parent = SetButton -- Max text label local MaxLabel = Instance.new("TextLabel") MaxLabel.Name = "MaxLabel" MaxLabel.Size = UDim2.new(0.7, 0, 0.08, 0) MaxLabel.Position = UDim2.new(0.15, 0, 0.42, 0) MaxLabel.BackgroundTransparency = 1 MaxLabel.Text = "Max 100" MaxLabel.TextColor3 = Color3.new(1, 1, 1) MaxLabel.Font = Enum.Font.Gotham MaxLabel.TextSize = 12 MaxLabel.Parent = MainFrame -- TP Forward button local TPButton = Instance.new("TextButton") TPButton.Name = "TPButton" TPButton.Size = UDim2.new(0.8, 0, 0.2, 0) TPButton.Position = UDim2.new(0.1, 0, 0.55, 0) TPButton.BackgroundColor3 = Color3.fromRGB(40, 100, 60) TPButton.Text = "TP Forward🚀" TPButton.TextColor3 = Color3.new(1, 1, 1) TPButton.Font = Enum.Font.GothamBold TPButton.TextSize = 16 TPButton.Parent = MainFrame local TPCorner = Instance.new("UICorner") TPCorner.CornerRadius = UDim.new(0, 12) TPCorner.Parent = TPButton -- Discord link at bottom local DiscordLink = Instance.new("TextLabel") DiscordLink.Name = "DiscordLink" DiscordLink.Size = UDim2.new(0.8, 0, 0.1, 0) DiscordLink.Position = UDim2.new(0.1, 0, 0.8, 0) DiscordLink.BackgroundTransparency = 1 DiscordLink.Text = "discord.gg/RhMQvJFz" DiscordLink.TextColor3 = Color3.new(1, 1, 1) DiscordLink.Font = Enum.Font.Gotham DiscordLink.TextSize = 14 DiscordLink.Parent = MainFrame -- Toggle functionality local UIVisible = true local TeleportDistance = 50 -- Default distance -- Dark rainbow background for toggle button local function updateRainbowBackground() local time = tick() local r = math.sin(time * 2) * 0.2 + 0.3 local g = math.sin(time * 2 + 2) * 0.2 + 0.3 local b = math.sin(time * 2 + 4) * 0.2 + 0.3 ToggleButton.BackgroundColor3 = Color3.new(r, g, b) end -- Connect to render step for rainbow effect RunService.Heartbeat:Connect(updateRainbowBackground) ToggleButton.MouseButton1Click:Connect(function() UIVisible = not UIVisible MainFrame.Visible = UIVisible if UIVisible then ToggleButton.Text = "ON" ToggleButton.TextColor3 = Color3.fromRGB(0, 1, 0) -- Green else ToggleButton.Text = "OFF" ToggleButton.TextColor3 = Color3.fromRGB(1, 0, 0) -- Red end end) -- Set button functionality SetButton.MouseButton1Click:Connect(function() local input = tonumber(DistanceInput.Text) if not input then ShowNotification("Please enter a valid number", 3, Color3.fromRGB(1, 0, 0)) return end if input > 100 then ShowNotification("Error: Max amount reached, Please enter an amount that is between 1-100.", 5, Color3.fromRGB(1, 0, 0)) return end if input < 1 then ShowNotification("Error: Please enter an amount that is at least 1.", 5, Color3.fromRGB(1, 0, 0)) return end TeleportDistance = input ShowNotification("Edited successfully!📝", 3, Color3.fromRGB(0, 1, 0)) end) -- Create black screen overlay local function createBlackScreen() local BlackScreen = Instance.new("Frame") BlackScreen.Name = "BlackScreen" BlackScreen.Size = UDim2.new(1, 0, 1, 0) BlackScreen.Position = UDim2.new(0, 0, 0, 0) BlackScreen.BackgroundColor3 = Color3.new(0, 0, 0) BlackScreen.BackgroundTransparency = 0 BlackScreen.ZIndex = 10 BlackScreen.Parent = ScreenGui -- Teleporting text local TeleportText = Instance.new("TextLabel") TeleportText.Name = "TeleportText" TeleportText.Size = UDim2.new(0.8, 0, 0.2, 0) TeleportText.Position = UDim2.new(0.1, 0, 0.4, 0) TeleportText.BackgroundTransparency = 1 TeleportText.Text = "Teleporting Forward..." TeleportText.TextColor3 = Color3.new(1, 1, 1) TeleportText.Font = Enum.Font.GothamBold TeleportText.TextSize = 24 TeleportText.Parent = BlackScreen -- Subtext local SubText = Instance.new("TextLabel") SubText.Name = "SubText" SubText.Size = UDim2.new(0.8, 0, 0.1, 0) SubText.Position = UDim2.new(0.1, 0, 0.55, 0) SubText.BackgroundTransparency = 1 SubText.Text = "This shouldn't take long" SubText.TextColor3 = Color3.new(0.8, 0.8, 0.8) SubText.Font = Enum.Font.Gotham SubText.TextSize = 16 SubText.Parent = BlackScreen -- Cancel button local CancelButton = Instance.new("TextButton") CancelButton.Name = "CancelButton" CancelButton.Size = UDim2.new(0.4, 0, 0.1, 0) CancelButton.Position = UDim2.new(0.3, 0, 0.7, 0) CancelButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) CancelButton.Text = "Cancel TP" CancelButton.TextColor3 = Color3.new(1, 1, 1) CancelButton.Font = Enum.Font.GothamBold CancelButton.TextSize = 16 CancelButton.Parent = BlackScreen local CancelCorner = Instance.new("UICorner") CancelCorner.CornerRadius = UDim.new(0, 8) CancelCorner.Parent = CancelButton -- Rainbow text animation local rainbowConnection rainbowConnection = RunService.Heartbeat:Connect(function() local time = tick() local r = math.sin(time * 2) * 0.5 + 0.5 local g = math.sin(time * 2 + 2) * 0.5 + 0.5 local b = math.sin(time * 2 + 4) * 0.5 + 0.5 TeleportText.TextColor3 = Color3.new(r, g, b) end) return BlackScreen, rainbowConnection, CancelButton end -- TP Forward functionality TPButton.MouseButton1Click:Connect(function() local character = LocalPlayer.Character if not character then ShowNotification("No character found", 3, Color3.fromRGB(1, 0, 0)) return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then ShowNotification("HumanoidRootPart not found", 3, Color3.fromRGB(1, 0, 0)) return end -- Create black screen local BlackScreen, rainbowConnection, CancelButton = createBlackScreen() local teleportCancelled = false -- Cancel button functionality CancelButton.MouseButton1Click:Connect(function() teleportCancelled = true if BlackScreen then BlackScreen:Destroy() end if rainbowConnection then rainbowConnection:Disconnect() end ShowNotification("Teleport cancelled", 3, Color3.fromRGB(1, 0.5, 0)) end) -- Perform teleportation after a short delay task.spawn(function() -- Wait a moment to show the black screen task.wait(0.5) if teleportCancelled then return end -- Calculate new position local currentPosition = humanoidRootPart.Position local lookVector = humanoidRootPart.CFrame.LookVector local newPosition = currentPosition + (lookVector * TeleportDistance) -- Try to teleport local success = pcall(function() humanoidRootPart.CFrame = CFrame.new(newPosition) end) -- Remove black screen if BlackScreen then BlackScreen:Destroy() end if rainbowConnection then rainbowConnection:Disconnect() end -- Show result notification if success and not teleportCancelled then ShowNotification("TP Forward success!", 3, Color3.fromRGB(0, 1, 0)) else ShowNotification("TP Forward failed, please try again or wait until fix.", 5, Color3.fromRGB(1, 0, 0)) end end) end) -- Simple and reliable dragging system local dragging = false local dragOffset = Vector2.new(0, 0) local function startDrag(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true local mouseLocation = Vector2.new(input.Position.X, input.Position.Y) local guiLocation = Vector2.new(MainFrame.AbsolutePosition.X, MainFrame.AbsolutePosition.Y) dragOffset = guiLocation - mouseLocation -- Capture the input even if it moves outside the frame local connection connection = input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false connection:Disconnect() end end) end end local function updateDrag(input) if dragging then local mouseLocation = Vector2.new(input.Position.X, input.Position.Y) MainFrame.Position = UDim2.new( 0, mouseLocation.X + dragOffset.X, 0, mouseLocation.Y + dragOffset.Y ) end end -- Connect input events to the entire frame for dragging MainFrame.InputBegan:Connect(startDrag) MainFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then updateDrag(input) end end) -- Also allow dragging from the title Title.InputBegan:Connect(startDrag) Title.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then updateDrag(input) end end) -- Notification function local function ShowNotification(Message, Duration, Color) Duration = Duration or 3 Color = Color or Color3.fromRGB(30, 80, 50) local Notif = Instance.new("Frame") Notif.Name = "Notification" Notif.Size = UDim2.new(0.4, 0, 0, 40) Notif.Position = UDim2.new(0.3, 0, 0.1, 0) Notif.BackgroundColor3 = Color Notif.ZIndex = 20 Notif.Parent = ScreenGui local NotifCorner = Instance.new("UICorner") NotifCorner.CornerRadius = UDim.new(0, 8) NotifCorner.Parent = Notif local NotifText = Instance.new("TextLabel") NotifText.Text = Message NotifText.Size = UDim2.new(0.9, 0, 0.8, 0) NotifText.Position = UDim2.new(0.05, 0, 0.1, 0) NotifText.BackgroundTransparency = 1 NotifText.TextColor3 = Color3.new(1, 1, 1) NotifText.Font = Enum.Font.Gotham NotifText.TextSize = 16 NotifText.TextXAlignment = Enum.TextXAlignment.Left NotifText.Parent = Notif -- Auto-remove after delay task.delay(Duration, function() if Notif and Notif.Parent then Notif:Destroy() end end) end -- Show initial notification ShowNotification("Spaxware: TP Forward loaded! Set distance and press TP Forward.", 5)