-- Galaxity-Hub Premium Script v5.0
-- Created by Colin
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local CoreGui = game:GetService("CoreGui")
local Lighting = game:GetService("Lighting")
-- Safe wait function
local function safeWait(time)
if time then
for _=1, time*20 do
task.wait(0.05)
end
else
task.wait()
end
end
-- Improved Loading Screen with smooth appearance
local LoadingScreen = Instance.new("ScreenGui")
LoadingScreen.Name = "GalaxityLoading"
LoadingScreen.Parent = PlayerGui
LoadingScreen.DisplayOrder = 999
local LoadingBackground = Instance.new("Frame")
LoadingBackground.Size = UDim2.new(0, 400, 0, 120)
LoadingBackground.Position = UDim2.new(0.5, -200, 0.8, -60)
LoadingBackground.BackgroundColor3 = Color3.fromRGB(25, 12, 50)
LoadingBackground.BorderSizePixel = 0
LoadingBackground.BackgroundTransparency = 1 -- Start transparent
LoadingBackground.Parent = LoadingScreen
local LoadingCorner = Instance.new("UICorner")
LoadingCorner.CornerRadius = UDim.new(0, 15)
LoadingCorner.Parent = LoadingBackground
local LoadingStroke = Instance.new("UIStroke")
LoadingStroke.Color = Color3.fromRGB(120, 60, 200)
LoadingStroke.Thickness = 3
LoadingStroke.Parent = LoadingBackground
local LoadingGradient = Instance.new("UIGradient")
LoadingGradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(35, 18, 70)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(25, 12, 50))
})
LoadingGradient.Rotation = 45
LoadingGradient.Parent = LoadingBackground
local LoadingLabel = Instance.new("TextLabel")
LoadingLabel.Size = UDim2.new(1, -40, 0, 30)
LoadingLabel.Position = UDim2.new(0, 20, 0, 15)
LoadingLabel.BackgroundTransparency = 1
LoadingLabel.Text = "Loading"
LoadingLabel.TextColor3 = Color3.fromRGB(220, 180, 255)
LoadingLabel.TextSize = 20
LoadingLabel.Font = Enum.Font.SourceSansBold
LoadingLabel.Parent = LoadingBackground
-- Improved dots animation (slower)
local dotsAnimation
local function startDotsAnimation()
local dots = {"", ".", "..", "..."}
local current = 1
local lastUpdate = tick()
dotsAnimation = RunService.Heartbeat:Connect(function()
if tick() - lastUpdate > 0.5 then -- Slower animation
current = (current % 4) + 1
LoadingLabel.Text = "Loading" .. dots[current]
lastUpdate = tick()
end
end)
end
local LoadingBarBackground = Instance.new("Frame")
LoadingBarBackground.Size = UDim2.new(1, -40, 0, 20)
LoadingBarBackground.Position = UDim2.new(0, 20, 0, 60)
LoadingBarBackground.BackgroundColor3 = Color3.fromRGB(40, 20, 80)
LoadingBarBackground.BorderSizePixel = 0
LoadingBarBackground.Parent = LoadingBackground
local LoadingBarCorner = Instance.new("UICorner")
LoadingBarCorner.CornerRadius = UDim.new(0, 10)
LoadingBarCorner.Parent = LoadingBarBackground
local LoadingBar = Instance.new("Frame")
LoadingBar.Size = UDim2.new(0, 0, 1, 0)
LoadingBar.Position = UDim2.new(0, 0, 0, 0)
LoadingBar.BackgroundColor3 = Color3.fromRGB(120, 60, 200)
LoadingBar.BorderSizePixel = 0
LoadingBar.Parent = LoadingBarBackground
local LoadingBarInnerCorner = Instance.new("UICorner")
LoadingBarInnerCorner.CornerRadius = UDim.new(0, 10)
LoadingBarInnerCorner.Parent = LoadingBar
local LoadingPercent = Instance.new("TextLabel")
LoadingPercent.Size = UDim2.new(1, -40, 0, 20)
LoadingPercent.Position = UDim2.new(0, 20, 0, 85)
LoadingPercent.BackgroundTransparency = 1
LoadingPercent.Text = "0%"
LoadingPercent.TextColor3 = Color3.fromRGB(220, 180, 255)
LoadingPercent.TextSize = 16
LoadingPercent.Font = Enum.Font.SourceSansBold
LoadingPercent.Parent = LoadingBackground
-- Smooth loading appearance
local function startLoadingAnimation()
-- Fade in loading screen
local fadeIn = TweenService:Create(LoadingBackground, TweenInfo.new(0.8), {BackgroundTransparency = 0})
fadeIn:Play()
startDotsAnimation()
local loadProgress = 0
local loadStartTime = tick()
local function updateLoading()
local elapsed = tick() - loadStartTime
loadProgress = math.min(100, (elapsed / 2.5) * 100) -- 2.5 seconds total
-- Synchronize bar and percentage
LoadingBar.Size = UDim2.new(loadProgress / 100, 0, 1, 0)
LoadingPercent.Text = math.floor(loadProgress) .. "%"
if loadProgress >= 100 then
if dotsAnimation then
dotsAnimation:Disconnect()
end
-- Fade out loading screen
local fadeOut = TweenService:Create(LoadingBackground, TweenInfo.new(0.5), {BackgroundTransparency = 1})
fadeOut:Play()
fadeOut.Completed:Wait()
LoadingScreen:Destroy()
loadMainGUI()
return false
end
return true
end
-- Start loading loop
local loadingConnection
loadingConnection = RunService.Heartbeat:Connect(function()
if not updateLoading() then
loadingConnection:Disconnect()
end
end)
end
-- Start loading animation
startLoadingAnimation()
function loadMainGUI()
-- Main GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "GalaxityHub"
ScreenGui.Parent = PlayerGui
ScreenGui.DisplayOrder = 999
-- Mobile open/close button (outside menu)
local MobileToggleButton = Instance.new("TextButton")
MobileToggleButton.Size = UDim2.new(0, 70, 0, 70)
MobileToggleButton.Position = UDim2.new(0, 20, 0.5, -35)
MobileToggleButton.BackgroundColor3 = Color3.fromRGB(80, 40, 150)
MobileToggleButton.BorderSizePixel = 0
MobileToggleButton.Text = "GXH"
MobileToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
MobileToggleButton.TextSize = 18
MobileToggleButton.Font = Enum.Font.SourceSansBold
MobileToggleButton.Visible = false
MobileToggleButton.Parent = ScreenGui
local MobileToggleCorner = Instance.new("UICorner")
MobileToggleCorner.CornerRadius = UDim.new(0, 15)
MobileToggleCorner.Parent = MobileToggleButton
local MobileToggleStroke = Instance.new("UIStroke")
MobileToggleStroke.Color = Color3.fromRGB(120, 60, 200)
MobileToggleStroke.Thickness = 3
MobileToggleStroke.Parent = MobileToggleButton
-- Check if mobile
if UserInputService.TouchEnabled then
MobileToggleButton.Visible = true
end
-- Main Frame (start transparent for smooth appearance)
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 500, 0, 450)
MainFrame.Position = UDim2.new(0.5, -250, 0.5, -225)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 12, 50)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.BackgroundTransparency = 1 -- Start transparent
MainFrame.Parent = ScreenGui
-- Make frame draggable and resizable
local dragging = false
local dragInput
local dragStart
local startPos
local resizing = false
local resizeStart
local startSize
local function update(input)
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
local function updateResize(input)
local delta = input.Position - resizeStart
local newSize = UDim2.new(0, math.max(400, startSize.X.Offset + delta.X), 0, math.max(300, startSize.Y.Offset + delta.Y))
MainFrame.Size = newSize
end
MainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
if input.Position.X > MainFrame.AbsolutePosition.X + MainFrame.AbsoluteSize.X - 20 and
input.Position.Y > MainFrame.AbsolutePosition.Y + MainFrame.AbsoluteSize.Y - 20 then
-- Start resizing from bottom-right corner
resizing = true
resizeStart = input.Position
startSize = MainFrame.Size
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
resizing = false
end
end)
else
-- Start dragging
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end
end)
MainFrame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
elseif input == dragInput and resizing then
updateResize(input)
end
end)
-- Visual elements
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 15)
UICorner.Parent = MainFrame
local UIStroke = Instance.new("UIStroke")
UIStroke.Color = Color3.fromRGB(120, 60, 200)
UIStroke.Thickness = 3
UIStroke.Parent = MainFrame
local Gradient = Instance.new("UIGradient")
Gradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(35, 18, 70)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(25, 12, 50))
})
Gradient.Rotation = 45
Gradient.Parent = MainFrame
-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 45)
TitleBar.Position = UDim2.new(0, 0, 0, 0)
TitleBar.BackgroundColor3 = Color3.fromRGB(50, 25, 100)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame
local TitleBarCorner = Instance.new("UICorner")
TitleBarCorner.CornerRadius = UDim.new(0, 15)
TitleBarCorner.Parent = TitleBar
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -100, 1, 0)
TitleLabel.Position = UDim2.new(0, 20, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "Galaxity-Hub v5.0"
TitleLabel.TextColor3 = Color3.fromRGB(220, 180, 255)
TitleLabel.TextSize = 22
TitleLabel.Font = Enum.Font.SourceSansBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TitleBar
-- Tabs Frame
local TabsFrame = Instance.new("Frame")
TabsFrame.Size = UDim2.new(1, -20, 0, 40)
TabsFrame.Position = UDim2.new(0, 10, 0, 50)
TabsFrame.BackgroundColor3 = Color3.fromRGB(40, 20, 80)
TabsFrame.BorderSizePixel = 0
TabsFrame.Parent = MainFrame
local TabsCorner = Instance.new("UICorner")
TabsCorner.CornerRadius = UDim.new(0, 10)
TabsCorner.Parent = TabsFrame
-- Content Frame
local ContentFrame = Instance.new("Frame")
ContentFrame.Size = UDim2.new(1, -20, 1, -100)
ContentFrame.Position = UDim2.new(0, 10, 0, 95)
ContentFrame.BackgroundColor3 = Color3.fromRGB(35, 18, 70)
ContentFrame.BorderSizePixel = 0
ContentFrame.Parent = MainFrame
local ContentCorner = Instance.new("UICorner")
ContentCorner.CornerRadius = UDim.new(0, 10)
ContentCorner.Parent = ContentFrame
-- Tabs
local Tabs = {"Player", "Visual", "Info"}
local TabButtons = {}
local CurrentTab = "Player"
-- UI Creation Functions
local function createButton(parent, text, position, size)
local button = Instance.new("TextButton")
button.Size = size or UDim2.new(0, 120, 0, 35)
button.Position = position
button.BackgroundColor3 = Color3.fromRGB(80, 40, 150)
button.BorderSizePixel = 0
button.Text = text
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.TextSize = 14
button.Font = Enum.Font.SourceSansBold
button.Parent = parent
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = button
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(120, 60, 200)
stroke.Thickness = 1
stroke.Parent = button
return button
end
local function createToggle(parent, text, position, callback)
local toggleFrame = Instance.new("Frame")
toggleFrame.Size = UDim2.new(1, -20, 0, 30)
toggleFrame.Position = position
toggleFrame.BackgroundTransparency = 1
toggleFrame.Parent = parent
local toggleLabel = Instance.new("TextLabel")
toggleLabel.Size = UDim2.new(0.7, 0, 1, 0)
toggleLabel.Position = UDim2.new(0, 0, 0, 0)
toggleLabel.BackgroundTransparency = 1
toggleLabel.Text = text
toggleLabel.TextColor3 = Color3.fromRGB(220, 180, 255)
toggleLabel.TextSize = 14
toggleLabel.TextXAlignment = Enum.TextXAlignment.Left
toggleLabel.Font = Enum.Font.SourceSans
toggleLabel.Parent = toggleFrame
local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0, 50, 0, 25)
toggleButton.Position = UDim2.new(1, -50, 0.5, -12.5)
toggleButton.BackgroundColor3 = Color3.fromRGB(60, 30, 100)
toggleButton.BorderSizePixel = 0
toggleButton.Text = ""
toggleButton.Parent = toggleFrame
local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 12)
toggleCorner.Parent = toggleButton
local toggleDot = Instance.new("Frame")
toggleDot.Size = UDim2.new(0, 21, 0, 21)
toggleDot.Position = UDim2.new(0, 2, 0.5, -10.5)
toggleDot.BackgroundColor3 = Color3.fromRGB(120, 60, 200)
toggleDot.BorderSizePixel = 0
toggleDot.Parent = toggleButton
local dotCorner = Instance.new("UICorner")
dotCorner.CornerRadius = UDim.new(0, 10)
dotCorner.Parent = toggleDot
local isToggled = false
local function updateToggle()
if isToggled then
local tween = TweenService:Create(toggleDot, TweenInfo.new(0.2), {Position = UDim2.new(1, -23, 0.5, -10.5)})
tween:Play()
toggleButton.BackgroundColor3 = Color3.fromRGB(80, 40, 150)
else
local tween = TweenService:Create(toggleDot, TweenInfo.new(0.2), {Position = UDim2.new(0, 2, 0.5, -10.5)})
tween:Play()
toggleButton.BackgroundColor3 = Color3.fromRGB(60, 30, 100)
end
if callback then
callback(isToggled)
end
end
toggleButton.MouseButton1Click:Connect(function()
isToggled = not isToggled
updateToggle()
end)
return {
Set = function(value)
isToggled = value
updateToggle()
end,
Get = function()
return isToggled
end
}
end
local function createSlider(parent, text, position, min, max, default, callback)
local sliderFrame = Instance.new("Frame")
sliderFrame.Size = UDim2.new(1, -20, 0, 60)
sliderFrame.Position = position
sliderFrame.BackgroundTransparency = 1
sliderFrame.Parent = parent
local sliderLabel = Instance.new("TextLabel")
sliderLabel.Size = UDim2.new(1, 0, 0, 20)
sliderLabel.Position = UDim2.new(0, 0, 0, 0)
sliderLabel.BackgroundTransparency = 1
sliderLabel.Text = text .. ": " .. tostring(default)
sliderLabel.TextColor3 = Color3.fromRGB(220, 180, 255)
sliderLabel.TextSize = 14
sliderLabel.TextXAlignment = Enum.TextXAlignment.Left
sliderLabel.Font = Enum.Font.SourceSans
sliderLabel.Name = text .. "Label"
sliderLabel.Parent = sliderFrame
local sliderBackground = Instance.new("Frame")
sliderBackground.Size = UDim2.new(1, 0, 0, 20)
sliderBackground.Position = UDim2.new(0, 0, 0, 30)
sliderBackground.BackgroundColor3 = Color3.fromRGB(50, 25, 90)
sliderBackground.BorderSizePixel = 0
sliderBackground.Parent = sliderFrame
local backgroundCorner = Instance.new("UICorner")
backgroundCorner.CornerRadius = UDim.new(0, 10)
backgroundCorner.Parent = sliderBackground
local sliderFill = Instance.new("Frame")
sliderFill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
sliderFill.Position = UDim2.new(0, 0, 0, 0)
sliderFill.BackgroundColor3 = Color3.fromRGB(120, 60, 200)
sliderFill.BorderSizePixel = 0
sliderFill.Parent = sliderBackground
local fillCorner = Instance.new("UICorner")
fillCorner.CornerRadius = UDim.new(0, 10)
fillCorner.Parent = sliderFill
local sliderButton = Instance.new("TextButton")
sliderButton.Size = UDim2.new(1, 0, 1, 0)
sliderButton.Position = UDim2.new(0, 0, 0, 0)
sliderButton.BackgroundTransparency = 1
sliderButton.Text = ""
sliderButton.Parent = sliderBackground
local isSliding = false
local function updateValue(value)
value = math.clamp(value, min, max)
local tweenInfo = TweenInfo.new(0.1)
local tween = TweenService:Create(sliderFill, tweenInfo, {Size = UDim2.new((value - min) / (max - min), 0, 1, 0)})
tween:Play()
sliderLabel.Text = text .. ": " .. tostring(math.floor(value))
if callback then
callback(value)
end
end
sliderButton.MouseButton1Down:Connect(function()
isSliding = true
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
isSliding = false
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if isSliding and input.UserInputType == Enum.UserInputType.MouseMovement then
local mousePos = UserInputService:GetMouseLocation()
local sliderPos = sliderBackground.AbsolutePosition
local sliderSize = sliderBackground.AbsoluteSize
local x = math.clamp(mousePos.X - sliderPos.X, 0, sliderSize.X)
local value = min + (x / sliderSize.X) * (max - min)
updateValue(value)
end
end)
updateValue(default)
return {
Set = updateValue,
Get = function()
return tonumber(string.match(sliderLabel.Text, "%d+"))
end
}
end
-- Tab Management
local function showTab(tabName)
CurrentTab = tabName
for _, child in ipairs(ContentFrame:GetChildren()) do
if child:IsA("Frame") then
child.Visible = false
end
end
local tabContent = ContentFrame:FindFirstChild(tabName)
if tabContent then
tabContent.Visible = true
end
for _, button in pairs(TabButtons) do
if button.Name == tabName then
button.BackgroundColor3 = Color3.fromRGB(100, 50, 180)
else
button.BackgroundColor3 = Color3.fromRGB(60, 30, 110)
end
end
end
-- Create tabs
for i, tabName in ipairs(Tabs) do
local TabButton = Instance.new("TextButton")
TabButton.Size = UDim2.new(0.33, -5, 1, 0)
TabButton.Position = UDim2.new(0.33 * (i - 1), 0, 0, 0)
TabButton.BackgroundColor3 = Color3.fromRGB(60, 30, 110)
TabButton.BorderSizePixel = 0
TabButton.Text = tabName
TabButton.TextColor3 = Color3.fromRGB(220, 180, 255)
TabButton.TextSize = 14
TabButton.Font = Enum.Font.SourceSansBold
TabButton.Name = tabName
TabButton.Parent = TabsFrame
local TabCorner = Instance.new("UICorner")
TabCorner.CornerRadius = UDim.new(0, 8)
TabCorner.Parent = TabButton
TabButton.MouseButton1Click:Connect(function()
showTab(tabName)
end)
TabButtons[tabName] = TabButton
end
-- Player Tab
local PlayerTab = Instance.new("Frame")
PlayerTab.Size = UDim2.new(1, 0, 1, 0)
PlayerTab.Position = UDim2.new(0, 0, 0, 0)
PlayerTab.BackgroundTransparency = 1
PlayerTab.Visible = true
PlayerTab.Name = "Player"
PlayerTab.Parent = ContentFrame
local PlayerScroll = Instance.new("ScrollingFrame")
PlayerScroll.Size = UDim2.new(1, 0, 1, 0)
PlayerScroll.Position = UDim2.new(0, 0, 0, 0)
PlayerScroll.BackgroundTransparency = 1
PlayerScroll.BorderSizePixel = 0
PlayerScroll.ScrollBarThickness = 6
PlayerScroll.ScrollBarImageColor3 = Color3.fromRGB(120, 60, 200)
PlayerScroll.Parent = PlayerTab
local PlayerLayout = Instance.new("UIListLayout")
PlayerLayout.Padding = UDim.new(0, 15)
PlayerLayout.Parent = PlayerScroll
-- Player features
local speedEnabled = false
local speedToggle = createToggle(PlayerScroll, "Speed", UDim2.new(0, 0, 0, 10), function(enabled)
speedEnabled = enabled
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
LocalPlayer.Character.Humanoid.WalkSpeed = enabled and speedSlider.Get() or 16
end
end)
local speedSlider = createSlider(PlayerScroll, "Speed Value", UDim2.new(0, 0, 0, 50), 16, 100, 16, function(value)
if speedEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
LocalPlayer.Character.Humanoid.WalkSpeed = value
end
end)
local jumpEnabled = false
local jumpToggle = createToggle(PlayerScroll, "Jump Height", UDim2.new(0, 0, 0, 130), function(enabled)
jumpEnabled = enabled
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
LocalPlayer.Character.Humanoid.JumpPower = enabled and jumpSlider.Get() or 50
end
end)
local jumpSlider = createSlider(PlayerScroll, "Jump Value", UDim2.new(0, 0, 0, 170), 50, 200, 50, function(value)
if jumpEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
LocalPlayer.Character.Humanoid.JumpPower = value
end
end)
-- Fixed Tp-Walk with proper anti-cheat bypass
local tpWalkEnabled = false
local tpWalkConnection
local lastTpTime = 0
local tpWalkToggle = createToggle(PlayerScroll, "TpWalk", UDim2.new(0, 0, 0, 250), function(enabled)
tpWalkEnabled = enabled
if enabled then
tpWalkConnection = RunService.Heartbeat:Connect(function()
local currentTime = tick()
if currentTime - lastTpTime < 0.05 then return end -- Limit to 20 teleports per second
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character:FindFirstChild("Humanoid") then
local humanoid = LocalPlayer.Character.Humanoid
local rootPart = LocalPlayer.Character.HumanoidRootPart
-- Check if player is moving and on ground
if humanoid.MoveDirection.Magnitude > 0 and humanoid.FloorMaterial ~= Enum.Material.Air then
local moveDirection = humanoid.MoveDirection
local speed = tpWalkSlider.Get()
-- Calculate small teleport distance (bypasses anti-cheat)
local teleportDistance = speed * 0.02 -- Very small distance per teleport
-- Teleport player in small increments
local newPosition = rootPart.Position + (moveDirection * teleportDistance)
rootPart.CFrame = CFrame.new(newPosition)
lastTpTime = currentTime
end
end
end)
else
if tpWalkConnection then
tpWalkConnection:Disconnect()
tpWalkConnection = nil
end
end
end)
local tpWalkSlider = createSlider(PlayerScroll, "TpWalk Speed", UDim2.new(0, 0, 0, 290), 10, 200, 50, function(value)
-- Used in tpWalk connection
end)
-- Noclip moved to Player tab
local noclipEnabled = false
local noclipToggle = createToggle(PlayerScroll, "Noclip", UDim2.new(0, 0, 0, 370), function(enabled)
noclipEnabled = enabled
end)
-- Noclip functionality
RunService.Stepped:Connect(function()
if noclipEnabled and LocalPlayer.Character then
for _, part in pairs(LocalPlayer.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
-- Visual Tab
local VisualTab = Instance.new("Frame")
VisualTab.Size = UDim2.new(1, 0, 1, 0)
VisualTab.Position = UDim2.new(0, 0, 0, 0)
VisualTab.BackgroundTransparency = 1
VisualTab.Visible = false
VisualTab.Name = "Visual"
VisualTab.Parent = ContentFrame
local VisualScroll = Instance.new("ScrollingFrame")
VisualScroll.Size = UDim2.new(1, 0, 1, 0)
VisualScroll.Position = UDim2.new(0, 0, 0, 0)
VisualScroll.BackgroundTransparency = 1
VisualScroll.BorderSizePixel = 0
VisualScroll.ScrollBarThickness = 6
VisualScroll.ScrollBarImageColor3 = Color3.fromRGB(120, 60, 200)
VisualScroll.Parent = VisualTab
local VisualLayout = Instance.new("UIListLayout")
VisualLayout.Padding = UDim.new(0, 15)
VisualLayout.Parent = VisualScroll
-- Fixed ESP System with purple colors
local espFunctions = {
ESP = {active = false, data = {}}
}
-- Enhanced ESP with purple colors and reliable toggling
local function updateESP()
-- Cleanup first
for _, data in pairs(espFunctions.ESP.data) do
if data.highlight then
pcall(function()
data.highlight:Destroy()
end)
end
if data.tag then
pcall(function()
data.tag:Destroy()
end)
end
if data.connection then
pcall(function()
data.connection:Disconnect()
end)
end
if data.colorAnim then
pcall(function()
data.colorAnim:Disconnect()
end)
end
end
espFunctions.ESP.data = {}
if not espFunctions.ESP.active then return end
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
coroutine.wrap(function()
local character = player.Character
if not character then
player.CharacterAdded:Wait()
character = player.Character
safeWait(1)
end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then return end
local highlight = Instance.new("Highlight")
highlight.Parent = character
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.FillTransparency = 0.4
highlight.OutlineTransparency = 0.1
-- Purple colors for ESP
highlight.FillColor = Color3.fromRGB(120, 60, 200) -- Main purple
highlight.OutlineColor = Color3.fromRGB(60, 30, 100) -- Dark purple outline
-- Tag setup with darker colors
local tag = Instance.new("BillboardGui")
tag.Parent = character:FindFirstChild("Head") or character:WaitForChild("Head", 2)
if not tag.Parent then return end
tag.Size = UDim2.new(4, 0, 1.5, 0)
tag.StudsOffset = Vector3.new(0, 3.5, 0)
tag.AlwaysOnTop = true
tag.Enabled = true
local label = Instance.new("TextLabel")
label.Parent = tag
label.Size = UDim2.new(1, 0, 1, 0)
label.Text = player.DisplayName.." | "..player.Name.." | 0m"
label.TextColor3 = Color3.fromRGB(180, 140, 220) -- Darker purple for text
label.BackgroundTransparency = 1
label.Font = Enum.Font.SourceSansBold
label.TextSize = 14
label.TextStrokeColor3 = Color3.fromRGB(40, 20, 80) -- Very dark purple stroke
label.TextStrokeTransparency = 0.3
local connection = RunService.Heartbeat:Connect(function()
if not character or not character.Parent then
connection:Disconnect()
return
end
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") and character:FindFirstChild("HumanoidRootPart") then
local distance = math.floor((LocalPlayer.Character.HumanoidRootPart.Position - character.HumanoidRootPart.Position).Magnitude)
label.Text = player.DisplayName.." | "..player.Name.." | "..distance.."m"
end
end)
espFunctions.ESP.data[player] = {
highlight = highlight,
tag = tag,
connection = connection
}
end)()
end
end
end
-- ESP Toggle with reliable cleanup
local espToggle = createToggle(VisualScroll, "ESP", UDim2.new(0, 0, 0, 10), function(enabled)
espFunctions.ESP.active = enabled
if not enabled then
-- Immediate cleanup when turning off
for _, data in pairs(espFunctions.ESP.data) do
if data.highlight then
pcall(function()
data.highlight:Destroy()
end)
end
if data.tag then
pcall(function()
data.tag:Destroy()
end)
end
if data.connection then
pcall(function()
data.connection:Disconnect()
end)
end
end
espFunctions.ESP.data = {}
else
updateESP()
end
end)
-- Sky Changer
local skyChangerEnabled = false
local originalSky
local skyChangerToggle = createToggle(VisualScroll, "Sky Changer", UDim2.new(0, 0, 0, 60), function(enabled)
skyChangerEnabled = enabled
if enabled then
-- Save original sky
originalSky = Lighting:FindFirstChildOfClass("Sky")
-- Create beautiful purple sky
local newSky = Instance.new("Sky")
newSky.SkyboxBk = "http://www.roblox.com/asset/?id=271042516" -- Purple gradient
newSky.SkyboxDn = "http://www.roblox.com/asset/?id=271042556"
newSky.SkyboxFt = "http://www.roblox.com/asset/?id=271042516"
newSky.SkyboxLf = "http://www.roblox.com/asset/?id=271042556"
newSky.SkyboxRt = "http://www.roblox.com/asset/?id=271042516"
newSky.SkyboxUp = "http://www.roblox.com/asset/?id=271042579"
newSky.Name = "GalaxitySky"
newSky.Parent = Lighting
-- Add stars
Lighting.StarCount = 5000
-- Animate sky colors
local pulseValue = 0
local skyAnimation = RunService.Heartbeat:Connect(function()
if not skyChangerEnabled then
skyAnimation:Disconnect()
return
end
pulseValue = (pulseValue + 0.01) % 1
local colorValue = 0.7 + (math.sin(pulseValue * math.pi) * 0.3)
Lighting.Ambient = Color3.fromRGB(80 * colorValue, 40 * colorValue, 160 * colorValue)
Lighting.OutdoorAmbient = Color3.fromRGB(60 * colorValue, 30 * colorValue, 120 * colorValue)
end)
else
-- Restore original sky
if originalSky then
local currentSky = Lighting:FindFirstChild("GalaxitySky")
if currentSky then
currentSky:Destroy()
end
Lighting.StarCount = 3000
Lighting.Ambient = Color3.fromRGB(127, 127, 127)
Lighting.OutdoorAmbient = Color3.fromRGB(127, 127, 127)
end
end
end)
-- Redux (Graphics Enhancer)
local reduxEnabled = false
local reduxToggle = createToggle(VisualScroll, "Redux Graphics", UDim2.new(0, 0, 0, 110), function(enabled)
reduxEnabled = enabled
if enabled then
-- Enhance graphics with purple theme
Lighting.Brightness = 2
Lighting.GlobalShadows = true
Lighting.FogColor = Color3.fromRGB(40, 20, 80)
Lighting.FogEnd = 1000
Lighting.ColorShift_Bottom = Color3.fromRGB(60, 30, 100)
Lighting.ColorShift_Top = Color3.fromRGB(120, 60, 200)
-- Add bloom effect
local bloom = Instance.new("BloomEffect")
bloom.Intensity = 0.4
bloom.Size = 24
bloom.Threshold = 0.9
bloom.Name = "GalaxityBloom"
bloom.Parent = Lighting
-- Add color correction
local colorCorrection = Instance.new("ColorCorrectionEffect")
colorCorrection.Brightness = 0.1
colorCorrection.Contrast = 0.2
colorCorrection.Saturation = 0.3
colorCorrection.TintColor = Color3.fromRGB(255, 240, 255)
colorCorrection.Name = "GalaxityColorCorrection"
colorCorrection.Parent = Lighting
else
-- Restore original graphics
Lighting.Brightness = 1
Lighting.GlobalShadows = false
Lighting.FogColor = Color3.fromRGB(191, 191, 191)
Lighting.FogEnd = 100000
Lighting.ColorShift_Bottom = Color3.fromRGB(0, 0, 0)
Lighting.ColorShift_Top = Color3.fromRGB(0, 0, 0)
local bloom = Lighting:FindFirstChild("GalaxityBloom")
if bloom then bloom:Destroy() end
local colorCorrection = Lighting:FindFirstChild("GalaxityColorCorrection")
if colorCorrection then colorCorrection:Destroy() end
end
end)
-- Info Tab
local InfoTab = Instance.new("Frame")
InfoTab.Size = UDim2.new(1, 0, 1, 0)
InfoTab.Position = UDim2.new(0, 0, 0, 0)
InfoTab.BackgroundTransparency = 1
InfoTab.Visible = false
InfoTab.Name = "Info"
InfoTab.Parent = ContentFrame
local InfoText = Instance.new("TextLabel")
InfoText.Size = UDim2.new(1, -20, 0, 150)
InfoText.Position = UDim2.new(0, 10, 0, 20)
InfoText.BackgroundTransparency = 1
InfoText.Text = "Galaxity-Hub Premium v5.0\n\n• Исправленный Tp-Walk (обход анти-чита)\n• Надежная система ESP в фиолетовых тонах\n• Красивый Sky Changer с анимацией\n• Улучшенная графика Redux\n• Плавные анимации загрузки\n\nСкрипт будет дорабатываться!"
InfoText.TextColor3 = Color3.fromRGB(220, 180, 255)
InfoText.TextSize = 16
InfoText.TextWrapped = true
InfoText.Font = Enum.Font.SourceSans
InfoText.Parent = InfoTab
local ExitButton = createButton(InfoTab, "Exit Script", UDim2.new(0.5, -80, 0, 190), UDim2.new(0, 160, 0, 40))
-- Menu open/close functionality
local menuOpen = true
local function toggleMenu()
menuOpen = not menuOpen
if menuOpen then
local tween = TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 500, 0, 450)})
tween:Play()
else
local tween = TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.In), {Size = UDim2.new(0, 0, 0, 0)})
tween:Play()
end
end
-- Input bindings
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed then
if input.KeyCode == Enum.KeyCode.Insert then
toggleMenu()
end
end
end)
MobileToggleButton.MouseButton1Click:Connect(toggleMenu)
ExitButton.MouseButton1Click:Connect(function()
-- Clean up everything
if tpWalkConnection then
tpWalkConnection:Disconnect()
end
-- Clean up ESP
for _, data in pairs(espFunctions.ESP.data) do
if data.highlight then pcall(function() data.highlight:Destroy() end) end
if data.tag then pcall(function() data.tag:Destroy() end) end
if data.connection then pcall(function() data.connection:Disconnect() end) end
end
-- Clean up visual effects
if skyChangerEnabled then
local currentSky = Lighting:FindFirstChild("GalaxitySky")
if currentSky then currentSky:Destroy() end
Lighting.StarCount = 3000
Lighting.Ambient = Color3.fromRGB(127, 127, 127)
Lighting.OutdoorAmbient = Color3.fromRGB(127, 127, 127)
end
if reduxEnabled then
Lighting.Brightness = 1
Lighting.GlobalShadows = false
Lighting.FogColor = Color3.fromRGB(191, 191, 191)
Lighting.FogEnd = 100000
Lighting.ColorShift_Bottom = Color3.fromRGB(0, 0, 0)
Lighting.ColorShift_Top = Color3.fromRGB(0, 0, 0)
local bloom = Lighting:FindFirstChild("GalaxityBloom")
if bloom then bloom:Destroy() end
local colorCorrection = Lighting:FindFirstChild("GalaxityColorCorrection")
if colorCorrection then colorCorrection:Destroy() end
end
-- Reset player values
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
LocalPlayer.Character.Humanoid.WalkSpeed = 16
LocalPlayer.Character.Humanoid.JumpPower = 50
end
ScreenGui:Destroy()
end)
-- Update scroll sizes
PlayerLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
PlayerScroll.CanvasSize = UDim2.new(0, 0, 0, PlayerLayout.AbsoluteContentSize.Y + 20)
end)
VisualLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
VisualScroll.CanvasSize = UDim2.new(0, 0, 0, VisualLayout.AbsoluteContentSize.Y + 20)
end)
-- Character added event
LocalPlayer.CharacterAdded:Connect(function(character)
wait(1)
if speedEnabled then
character:WaitForChild("Humanoid").WalkSpeed = speedSlider.Get()
end
if jumpEnabled then
character:WaitForChild("Humanoid").JumpPower = jumpSlider.Get()
end
end)
-- Player handlers for ESP
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
safeWait(0.5)
if espFunctions.ESP.active then updateESP() end
end)
end)
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
player.CharacterAdded:Connect(function()
safeWait(0.5)
if espFunctions.ESP.active then updateESP() end
end)
end
end
-- Smooth menu appearance
local menuAppear = TweenService:Create(MainFrame, TweenInfo.new(0.8), {BackgroundTransparency = 0})
menuAppear:Play()
showTab("Player")
end