-- LocalScript in StarterPlayerScripts local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") print("Ahxura HUB script started!") -- Debug: Confirm script execution local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui", 10) -- Wait for PlayerGui if not playerGui then warn("PlayerGui not found!") return end local mouse = player:GetMouse() local character = player.Character or player.CharacterAdded:Wait() local rootPart = character:WaitForChild("HumanoidRootPart", 10) local humanoid = character:WaitForChild("Humanoid", 10) if not rootPart or not humanoid then warn("Character components not found!") return end local defaultWalkSpeed = humanoid.WalkSpeed -- Store default walk speed local teleportMode = false -- Track teleport mode (True/False) -- Create Notification GUI local notifyGui = Instance.new("ScreenGui") notifyGui.Name = "AhxuraNotify" notifyGui.ResetOnSpawn = false notifyGui.Parent = playerGui local notifyFrame = Instance.new("Frame") notifyFrame.Size = UDim2.new(0, 250, 0, 50) notifyFrame.Position = UDim2.new(0.5, -125, 0.1, 0) notifyFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) notifyFrame.BackgroundTransparency = 0.2 notifyFrame.BorderSizePixel = 0 notifyFrame.Parent = notifyGui local notifyGradient = Instance.new("UIGradient") notifyGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(20, 20, 30)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 10)) }) notifyGradient.Rotation = 45 notifyGradient.Parent = notifyFrame local notifyCorner = Instance.new("UICorner") notifyCorner.CornerRadius = UDim.new(0, 8) notifyCorner.Parent = notifyFrame local notifyStroke = Instance.new("UIStroke") notifyStroke.Color = Color3.fromRGB(100, 100, 255) notifyStroke.Thickness = 1.5 notifyStroke.Transparency = 0.5 notifyStroke.Parent = notifyFrame local notifyText = Instance.new("TextLabel") notifyText.Size = UDim2.new(1, 0, 1, 0) notifyText.BackgroundTransparency = 1 notifyText.Text = "You can Open The Gui With 'P'" notifyText.TextColor3 = Color3.fromRGB(220, 220, 255) notifyText.TextSize = 16 notifyText.Font = Enum.Font.GothamBold notifyText.TextTransparency = 0 notifyText.TextStrokeTransparency = 0.8 notifyText.TextStrokeColor3 = Color3.fromRGB(100, 100, 255) notifyText.Parent = notifyFrame -- Notification Animation local function showNotification() local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local appearTween = TweenService:Create(notifyFrame, tweenInfo, { BackgroundTransparency = 0.2, Position = UDim2.new(0.5, -125, 0.1, 0) }) local textTween = TweenService:Create(notifyText, tweenInfo, { TextTransparency = 0 }) notifyFrame.Position = UDim2.new(0.5, -125, 0, -50) appearTween:Play() textTween:Play() wait(5) -- Extended to 5 seconds local fadeTween = TweenService:Create(notifyFrame, tweenInfo, { BackgroundTransparency = 1, Position = UDim2.new(0.5, -125, 0, -50) }) local textFadeTween = TweenService:Create(notifyText, tweenInfo, { TextTransparency = 1 }) fadeTween:Play() textFadeTween:Play() fadeTween.Completed:Connect(function() notifyGui:Destroy() end) end spawn(showNotification) -- Show notification on script start -- Create Main GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "AhxuraHUB" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui print("ScreenGui created!") -- Debug: Confirm GUI creation -- Create Main Frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 300, 0, 200) mainFrame.Position = UDim2.new(0.5, -150, 0.5, -100) mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) mainFrame.BorderSizePixel = 0 mainFrame.Visible = false mainFrame.BackgroundTransparency = 1 mainFrame.Parent = screenGui -- Add Gradient to Main Frame local uiGradient = Instance.new("UIGradient") uiGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(20, 20, 30)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 10)) }) uiGradient.Rotation = 45 uiGradient.Parent = mainFrame -- Add UI Corner for rounded edges local uiCorner = Instance.new("UICorner") uiCorner.CornerRadius = UDim.new(0, 12) uiCorner.Parent = mainFrame -- Add UI Stroke for glow effect local uiStroke = Instance.new("UIStroke") uiStroke.Color = Color3.fromRGB(100, 100, 255) uiStroke.Thickness = 2 uiStroke.Transparency = 0.5 uiStroke.Parent = mainFrame -- Create Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 40) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "Ahxura HUB" title.TextColor3 = Color3.fromRGB(220, 220, 255) title.TextSize = 22 title.Font = Enum.Font.GothamBlack title.TextTransparency = 1 title.TextStrokeTransparency = 0.8 title.TextStrokeColor3 = Color3.fromRGB(100, 100, 255) title.Parent = mainFrame -- Create Close Button local closeButton = Instance.new("TextButton") closeButton.Size = UDim2.new(0, 35, 0, 35) closeButton.Position = UDim2.new(1, -45, 0, 5) closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeButton.Text = "X" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextSize = 18 closeButton.Font = Enum.Font.GothamBlack closeButton.BackgroundTransparency = 1 closeButton.TextTransparency = 1 closeButton.Parent = mainFrame local closeButtonGradient = Instance.new("UIGradient") closeButtonGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(200, 50, 50)), ColorSequenceKeypoint.new(1, Color3.fromRGB(150, 30, 30)) }) closeButtonGradient.Rotation = 45 closeButtonGradient.Parent = closeButton local closeButtonCorner = Instance.new("UICorner") closeButtonCorner.CornerRadius = UDim.new(0, 10) closeButtonCorner.Parent = closeButton local closeButtonStroke = Instance.new("UIStroke") closeButtonStroke.Color = Color3.fromRGB(255, 80, 80) closeButtonStroke.Thickness = 2 closeButtonStroke.Transparency = 0.5 closeButtonStroke.Parent = closeButton -- Create Button 1 (Teleport) local button1 = Instance.new("TextButton") button1.Size = UDim2.new(0, 120, 0, 40) button1.Position = UDim2.new(0, 20, 0, 60) button1.BackgroundColor3 = Color3.fromRGB(100, 100, 200) button1.Text = "Teleport: Off" button1.TextColor3 = Color3.fromRGB(255, 255, 255) button1.TextSize = 16 button1.Font = Enum.Font.GothamBold button1.BackgroundTransparency = 1 button1.TextTransparency = 1 button1.Parent = mainFrame local button1Corner = Instance.new("UICorner") button1Corner.CornerRadius = UDim.new(0, 8) button1Corner.Parent = button1 local button1Stroke = Instance.new("UIStroke") button1Stroke.Color = Color3.fromRGB(100, 100, 255) button1Stroke.Thickness = 1.5 button1Stroke.Transparency = 0.7 button1Stroke.Parent = button1 -- Create Button 2 (Time Reverse) local button2 = Instance.new("TextButton") button2.Size = UDim2.new(0, 120, 0, 40) button2.Position = UDim2.new(0, 160, 0, 60) button2.BackgroundColor3 = Color3.fromRGB(200, 100, 100) button2.Text = "Reverse Time" button2.TextColor3 = Color3.fromRGB(255, 255, 255) button2.TextSize = 16 button2.Font = Enum.Font.GothamBold button2.BackgroundTransparency = 1 button2.TextTransparency = 1 button2.Parent = mainFrame local button2Corner = Instance.new("UICorner") button2Corner.CornerRadius = UDim.new(0, 8) button2Corner.Parent = button2 local button2Stroke = Instance.new("UIStroke") button2Stroke.Color = Color3.fromRGB(255, 100, 100) button2Stroke.Thickness = 1.5 button2Stroke.Transparency = 0.7 button2Stroke.Parent = button2 -- Create Flash Effect for Time Reverse local flashFrame = Instance.new("Frame") flashFrame.Size = UDim2.new(1, 0, 1, 0) flashFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255) flashFrame.BackgroundTransparency = 1 flashFrame.ZIndex = 10 flashFrame.Parent = screenGui -- Animation Functions for GUI local function animateOpen() print("Attempting to open GUI!") -- Debug: Confirm open attempt mainFrame.Visible = true mainFrame.Rotation = -5 local tweenInfo = TweenInfo.new(0.4, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out) local frameTween = TweenService:Create(mainFrame, tweenInfo, { BackgroundTransparency = 0, Size = UDim2.new(0, 300, 0, 200), Rotation = 0 }) local titleTween = TweenService:Create(title, tweenInfo, {TextTransparency = 0}) local closeButtonTween = TweenService:Create(closeButton, tweenInfo, { BackgroundTransparency = 0, TextTransparency = 0 }) local button1Tween = TweenService:Create(button1, tweenInfo, { BackgroundTransparency = 0, TextTransparency = 0 }) local button2Tween = TweenService:Create(button2, tweenInfo, { BackgroundTransparency = 0, TextTransparency = 0 }) mainFrame.Size = UDim2.new(0, 0, 0, 0) frameTween:Play() titleTween:Play() closeButtonTween:Play() button1Tween:Play() button2Tween:Play() print("GUI opened!") -- Debug: Confirm open success end local function animateClose() print("Attempting to close GUI!") -- Debug: Confirm close attempt local tweenInfo = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In) local frameTween = TweenService:Create(mainFrame, tweenInfo, { BackgroundTransparency = 1, Size = UDim2.new(0, 0, 0, 0), Rotation = 5 }) local titleTween = TweenService:Create(title, tweenInfo, {TextTransparency = 1}) local closeButtonTween = TweenService:Create(closeButton, tweenInfo, { BackgroundTransparency = 1, TextTransparency = 1 }) local button1Tween = TweenService:Create(button1, tweenInfo, { BackgroundTransparency = 1, TextTransparency = 1 }) local button2Tween = TweenService:Create(button2, tweenInfo, { BackgroundTransparency = 1, TextTransparency = 1 }) frameTween:Play() titleTween:Play() closeButtonTween:Play() button1Tween:Play() button2Tween:Play() frameTween.Completed:Connect(function() mainFrame.Visible = false mainFrame.Rotation = 0 print("GUI closed!") -- Debug: Confirm close success end) end -- Button Hover and Click Animations local function setupButtonAnimations(button, stroke) local isAnimating = false -- Debounce to prevent animation overlap button.MouseEnter:Connect(function() if isAnimating then return end isAnimating = true local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local scaleTween = TweenService:Create(button, tweenInfo, { Size = UDim2.new(0, 125, 0, 45) }) local strokeTween = TweenService:Create(stroke, tweenInfo, { Transparency = 0.3 }) scaleTween:Play() strokeTween:Play() scaleTween.Completed:Connect(function() isAnimating = false end) end) button.MouseLeave:Connect(function() if isAnimating then return end isAnimating = true local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local scaleTween = TweenService:Create(button, tweenInfo, { Size = UDim2.new(0, 120, 0, 40) }) local strokeTween = TweenService:Create(stroke, tweenInfo, { Transparency = 0.7 }) scaleTween:Play() strokeTween:Play() scaleTween.Completed:Connect(function() isAnimating = false end) end) button.MouseButton1Down:Connect(function() if isAnimating then return end isAnimating = true local tweenInfo = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.In) local scaleTween = TweenService:Create(button, tweenInfo, { Size = UDim2.new(0, 115, 0, 35) }) scaleTween:Play() scaleTween.Completed:Connect(function() local tweenInfoUp = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local scaleTweenUp = TweenService:Create(button, tweenInfoUp, { Size = UDim2.new(0, 120, 0, 40) }) scaleTweenUp:Play() scaleTweenUp.Completed:Connect(function() isAnimating = false end) end) end) end -- Close Button Specific Animations closeButton.MouseEnter:Connect(function() local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local scaleTween = TweenService:Create(closeButton, tweenInfo, { Size = UDim2.new(0, 40, 0, 40), Rotation = 45 }) local strokeTween = TweenService:Create(closeButtonStroke, tweenInfo, { Transparency = 0.2, Color = Color3.fromRGB(255, 100, 100) }) scaleTween:Play() strokeTween:Play() end) closeButton.MouseLeave:Connect(function() local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local scaleTween = TweenService:Create(closeButton, tweenInfo, { Size = UDim2.new(0, 35, 0, 35), Rotation = 0 }) local strokeTween = TweenService:Create(closeButtonStroke, tweenInfo, { Transparency = 0.5, Color = Color3.fromRGB(255, 80, 80) }) scaleTween:Play() strokeTween:Play() end) closeButton.MouseButton1Down:Connect(function() local tweenInfo = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.In) local scaleTween = TweenService:Create(closeButton, tweenInfo, { Size = UDim2.new(0, 30, 0, 30) }) local colorTween = TweenService:Create(closeButton, tweenInfo, { BackgroundColor3 = Color3.fromRGB(255, 80, 80) }) scaleTween:Play() colorTween:Play() scaleTween.Completed:Connect(function() local tweenInfoUp = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local scaleTweenUp = TweenService:Create(closeButton, tweenInfoUp, { Size = UDim2.new(0, 35, 0, 35) }) local colorTweenUp = TweenService:Create(closeButton, tweenInfoUp, { BackgroundColor3 = Color3.fromRGB(200, 50, 50) }) scaleTweenUp:Play() colorTweenUp:Play() end) end) setupButtonAnimations(button1, button1Stroke) setupButtonAnimations(button2, button2Stroke) -- Draggable GUI local dragging = false local dragStart = nil local startPos = nil mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) mainFrame.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) mainFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) -- Time Reverse Functionality local history = {} local recording = false local maxHistory = 300 -- Store 5 seconds at 60 FPS local maxObjects = 50 -- Limit to 50 objects to reduce lag local objectsToTrack = {} local resetCFrame = nil -- Reset point for fallback -- Function to start tracking objects local function startTracking() objectsToTrack = {} local count = 0 for _, obj in ipairs(game.Workspace:GetDescendants()) do if obj:IsA("BasePart") and not obj.Locked and not obj.Anchored and obj ~= rootPart then table.insert(objectsToTrack, obj) count = count + 1 if count >= maxObjects then break end end end recording = true history = {} print("Started tracking objects!") -- Debug: Confirm tracking end -- Function to record object states local function recordState() if not recording then return end local frame = {} for _, obj in ipairs(objectsToTrack) do if obj and obj.Parent then frame[obj] = {CFrame = obj.CFrame} end end -- Store player position separately if rootPart and rootPart.Parent then frame.PlayerCFrame = rootPart.CFrame end table.insert(history, frame) if #history > maxHistory then table.remove(history, 1) end end -- Function to reverse time local function reverseTime() recording = false -- Reduce player walk speed for rewind effect if humanoid then humanoid.WalkSpeed = defaultWalkSpeed * 0.3 -- 30% of normal speed end -- Flash effect local flashTween = TweenService:Create(flashFrame, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), { BackgroundTransparency = 0.3 }) flashTween:Play() flashTween.Completed:Connect(function() local fadeOut = TweenService:Create(flashFrame, TweenInfo.new(0.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), { BackgroundTransparency = 1 }) fadeOut:Play() end) -- Calculate frames for playback local totalDuration = 1.5 -- Complete in 1.5 seconds local frameCount = #history if frameCount == 0 then -- Fallback to resetCFrame if no history if rootPart and resetCFrame then rootPart.CFrame = resetCFrame end if humanoid then humanoid.WalkSpeed = defaultWalkSpeed end recording = true print("No history, used resetCFrame fallback!") -- Debug return end local frameInterval = totalDuration / frameCount local elapsed = 0 local connection connection = RunService.RenderStepped:Connect(function(deltaTime) elapsed = elapsed + deltaTime if elapsed >= totalDuration then -- Set final positions for objects local frame = history[1] for obj, state in pairs(frame) do if obj and obj.Parent and obj ~= rootPart then obj.CFrame = state.CFrame end end -- Set final player position if rootPart and frame.PlayerCFrame then rootPart.CFrame = frame.PlayerCFrame elseif rootPart and resetCFrame then rootPart.CFrame = resetCFrame end -- Restore walk speed if humanoid then humanoid.WalkSpeed = defaultWalkSpeed end connection:Disconnect() history = {} recording = true print("Time reverse completed!") -- Debug return end local progress = elapsed / totalDuration local frameIndex = math.floor(frameCount * (1 - progress)) + 1 if frameIndex > 0 and frameIndex <= frameCount then local frame = history[frameIndex] -- Update object positions for obj, state in pairs(frame) do if obj and obj.Parent and obj ~= rootPart then obj.CFrame = state.CFrame end end -- Smoothly move player along reverse path if rootPart and frame.PlayerCFrame then local targetCFrame = frame.PlayerCFrame local currentCFrame = rootPart.CFrame local lerpCFrame = currentCFrame:Lerp(targetCFrame, 0.5) -- Stronger interpolation rootPart.CFrame = lerpCFrame end end end) end -- Teleport on Click when Mode is True UserInputService.InputBegan:Connect(function(input, gameProcessedEvent) if gameProcessedEvent then return end if input.UserInputType == Enum.UserInputType.MouseButton1 and teleportMode then local hitPosition = mouse.Hit.Position if hitPosition then -- Ensure valid position (e.g., above a part or terrain) local ray = Ray.new(hitPosition + Vector3.new(0, 100, 0), Vector3.new(0, -200, 0)) local hitPart, hitPos = workspace:FindPartOnRayWithIgnoreList(ray, {character}) if hitPos then rootPart.CFrame = CFrame.new(hitPos + Vector3.new(0, 3, 0)) -- Teleport 3 studs above surface print("Teleported to: " .. tostring(hitPos)) else print("Invalid teleport location!") end end end end) -- Toggle GUI with P key UserInputService.InputBegan:Connect(function(input, gameProcessedEvent) if input.KeyCode == Enum.KeyCode.P then print("P key pressed!") -- Debug: Confirm key press if mainFrame.Visible then animateClose() else animateOpen() end end end) -- Connect Buttons closeButton.MouseButton1Click:Connect(function() animateClose() end) button1.MouseButton1Click:Connect(function() teleportMode = not teleportMode local tweenInfo = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) if teleportMode then local colorTween = TweenService:Create(button1, tweenInfo, { BackgroundColor3 = Color3.fromRGB(100, 200, 100) }) local strokeTween = TweenService:Create(button1Stroke, tweenInfo, { Color = Color3.fromRGB(100, 255, 100) }) button1.Text = "Teleport: On" colorTween:Play() strokeTween:Play() print("Teleport mode enabled!") else local colorTween = TweenService:Create(button1, tweenInfo, { BackgroundColor3 = Color3.fromRGB(100, 100, 200) }) local strokeTween = TweenService:Create(button1Stroke, tweenInfo, { Color = Color3.fromRGB(100, 100, 255) }) button1.Text = "Teleport: Off" colorTween:Play() strokeTween:Play() print("Teleport mode disabled!") end end) button2.MouseButton1Click:Connect(function() reverseTime() end) -- Handle character respawn player.CharacterAdded:Connect(function(newCharacter) character = newCharacter rootPart = character:WaitForChild("HumanoidRootPart", 10) humanoid = character:WaitForChild("Humanoid", 10) if not rootPart or not humanoid then warn("Character components not found after respawn!") return end defaultWalkSpeed = humanoid.WalkSpeed startTracking() resetCFrame = nil -- Clear reset point on respawn print("Character respawn handled!") -- Debug end) -- Start recording object states startTracking() RunService.Heartbeat:Connect(recordState)