--// Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera --// State Variables local isAirWalking = false local isNoClipping = false local isFlinging = false local menuMinimized = false local airWalkPart = nil local noclipConnection = nil local airWalkConnection = nil local flingConnection = nil --// Create UI local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "FSHubGui" ScreenGui.ResetOnSpawn = false -- Parent to CoreGui if possible to avoid detection/reset, otherwise PlayerGui pcall(function() ScreenGui.Parent = CoreGui end) if not ScreenGui.Parent then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end --// Main Window local MainWindow = Instance.new("Frame") MainWindow.Name = "MainWindow" MainWindow.Size = UDim2.new(0, 320, 0, 360) MainWindow.Position = UDim2.new(0.5, -160, 0.5, -180) MainWindow.BackgroundColor3 = Color3.fromRGB(25, 25, 25) MainWindow.BorderSizePixel = 0 MainWindow.Active = true MainWindow.Draggable = true MainWindow.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = MainWindow --// Top Bar local TopBar = Instance.new("Frame") TopBar.Name = "TopBar" TopBar.Size = UDim2.new(1, 0, 0, 40) TopBar.BackgroundColor3 = Color3.fromRGB(35, 35, 35) TopBar.BorderSizePixel = 0 TopBar.Parent = MainWindow local TopBarCorner = Instance.new("UICorner") TopBarCorner.CornerRadius = UDim.new(0, 8) TopBarCorner.Parent = TopBar -- Fix bottom corners of topbar local FixFrame = Instance.new("Frame") FixFrame.Size = UDim2.new(1, 0, 0, 10) FixFrame.Position = UDim2.new(0, 0, 1, -10) FixFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) FixFrame.BorderSizePixel = 0 FixFrame.Parent = TopBar local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -50, 1, 0) Title.Position = UDim2.new(0, 15, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "FS Hub - Natural Disaster" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 16 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = TopBar local MinimizeBtn = Instance.new("TextButton") MinimizeBtn.Size = UDim2.new(0, 30, 0, 30) MinimizeBtn.Position = UDim2.new(1, -35, 0, 5) MinimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) MinimizeBtn.Text = "-" MinimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) MinimizeBtn.TextSize = 18 MinimizeBtn.Font = Enum.Font.GothamBold MinimizeBtn.Parent = TopBar local MinCorner = Instance.new("UICorner") MinCorner.CornerRadius = UDim.new(0, 6) MinCorner.Parent = MinimizeBtn --// Content Container local Content = Instance.new("ScrollingFrame") Content.Size = UDim2.new(1, -20, 1, -55) Content.Position = UDim2.new(0, 10, 0, 45) Content.BackgroundTransparency = 1 Content.BorderSizePixel = 0 Content.CanvasSize = UDim2.new(0, 0, 0, 320) Content.ScrollBarThickness = 4 Content.Parent = MainWindow local UIListLayout = Instance.new("UIListLayout") UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Padding = UDim.new(0, 10) UIListLayout.Parent = Content --// Minimized Button (FS Hub Square) local MinimizedBox = Instance.new("TextButton") MinimizedBox.Name = "MinimizedBox" MinimizedBox.Size = UDim2.new(0, 80, 0, 40) MinimizedBox.Position = UDim2.new(0, 20, 0, 20) MinimizedBox.BackgroundColor3 = Color3.fromRGB(25, 25, 25) MinimizedBox.Text = "FS hub" MinimizedBox.TextColor3 = Color3.fromRGB(255, 255, 255) MinimizedBox.TextSize = 14 MinimizedBox.Font = Enum.Font.GothamBold MinimizedBox.Visible = false MinimizedBox.Active = true MinimizedBox.Draggable = true MinimizedBox.Parent = ScreenGui local MinBoxCorner = Instance.new("UICorner") MinBoxCorner.CornerRadius = UDim.new(0, 8) MinBoxCorner.Parent = MinimizedBox --// Helper Function to Create Styled Buttons local function CreateButton(name, order) local btn = Instance.new("TextButton") btn.Name = name btn.Size = UDim2.new(1, 0, 0, 38) btn.BackgroundColor3 = Color3.fromRGB(45, 45, 45) btn.Text = name btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 14 btn.Font = Enum.Font.GothamMedium btn.LayoutOrder = order btn.Parent = Content local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = btn return btn end --// Create UI Elements local AirWalkBtn = CreateButton("Air Walk: OFF", 1) local NoClipBtn = CreateButton("No Clip: OFF", 2) local TpSpawnBtn = CreateButton("Teleport to Spawn", 3) local TpMapBtn = CreateButton("Teleport to Map", 4) local FlingBtn = CreateButton("Fling Aura: OFF", 5) local JerkEmoteBtn = CreateButton("Play Jerk Emote", 6) --// Minimize Toggle Logic MinimizeBtn.MouseButton1Click:Connect(function() menuMinimized = true MainWindow.Visible = false MinimizedBox.Visible = true end) MinimizedBox.MouseButton1Click:Connect(function() menuMinimized = false MainWindow.Visible = true MinimizedBox.Visible = false end) --// 1. Air Walk Logic AirWalkBtn.MouseButton1Click:Connect(function() isAirWalking = not isAirWalking if isAirWalking then AirWalkBtn.Text = "Air Walk: ON" AirWalkBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 127) airWalkPart = Instance.new("Part") airWalkPart.Size = Vector3.new(3, 1, 3) airWalkPart.Transparency = 1 airWalkPart.Anchored = true airWalkPart.CanCollide = true airWalkPart.Parent = workspace airWalkConnection = RunService.RenderStepped:Connect(function() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then local hrp = char.HumanoidRootPart airWalkPart.Position = hrp.Position - Vector3.new(0, 3.5, 0) end end) else AirWalkBtn.Text = "Air Walk: OFF" AirWalkBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 45) if airWalkConnection then airWalkConnection:Disconnect() end if airWalkPart then airWalkPart:Destroy() end end end) --// 2. No Clip Logic NoClipBtn.MouseButton1Click:Connect(function() isNoClipping = not isNoClipping if isNoClipping then NoClipBtn.Text = "No Clip: ON" NoClipBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 127) noclipConnection = RunService.Stepped:Connect(function() local char = LocalPlayer.Character if char then for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) else NoClipBtn.Text = "No Clip: OFF" NoClipBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 45) if noclipConnection then noclipConnection:Disconnect() end end end) --// 3. Teleport to Spawn TpSpawnBtn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then local hrp = char.HumanoidRootPart -- Natural Disaster Survival specific spawn areas or generic fallback local spawnLocation = workspace:FindFirstChild("SpawnLocation") or workspace:FindFirstChild("Spawns") if spawnLocation and spawnLocation:IsA("BasePart") then hrp.CFrame = spawnLocation.CFrame + Vector3.new(0, 5, 0) else -- Standard lobby fallback position for Natural Disaster Survival hrp.CFrame = CFrame.new(-290, 185, 330) end end end) --// 4. Teleport to Map TpMapBtn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then local hrp = char.HumanoidRootPart local foundMap = nil -- Look for common map containers or search workspace for typical disaster map models for _, obj in ipairs(workspace:GetChildren()) do if obj:IsA("Model") and obj ~= char and not Players:GetPlayerFromCharacter(obj) then if obj.Name ~= "Terrain" and obj.Name ~= "Camera" then foundMap = obj break end end end if foundMap then -- Try to find any basepart inside the map to teleport on top of local targetPart = nil for _, part in ipairs(foundMap:GetDescendants()) do if part:IsA("BasePart") then targetPart = part break end end if targetPart then hrp.CFrame = targetPart.CFrame + Vector3.new(0, 10, 0) end else -- Fallback center arena position if map structure varies hrp.CFrame = CFrame.new(-250, 200, -50) end end end) --// 5. Fling Button Logic FlingBtn.MouseButton1Click:Connect(function() isFlinging = not isFlinging if isFlinging then FlingBtn.Text = "Fling Aura: ON" FlingBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 127) flingConnection = RunService.Heartbeat:Connect(function() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then local hrp = char.HumanoidRootPart local vel = hrp.Velocity hrp.Velocity = Vector3.new(30000, 30000, 30000) RunService.RenderStepped:Wait() hrp.Velocity = vel end end) else FlingBtn.Text = "Fling Aura: OFF" FlingBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 45) if flingConnection then flingConnection:Disconnect() end end end) --// 6. Jerk Emote Animation JerkEmoteBtn.MouseButton1Click:Connect(function() local char = LocalPlayer.Character if char then local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then local animator = humanoid:FindFirstChildOfClass("Animator") or Instance.new("Animator", humanoid) -- Construct custom procedural/looping animation tracks or play dynamic animation local animation = Instance.new("Animation") -- Custom or standard robust id fallback for safety if specific asset IDs fail animation.AnimationId = "rbxassetid://507771019" -- Fun/dance fallback ID simulating dynamic movement pcall(function() local track = animator:LoadAnimation(animation) track:Play() track.Speed = 1.5 end) end end end)