-- Black Hole By DenishRRQ
local headerText = "Black hole Best Scripts Troll"
local textColor = Color3.fromRGB(255, 165, 0) -- Orange color
local fadeDuration = 2 -- Duration for fade-in and fade-out
local displayDuration = 2 -- Duration the text stays fully visible
-- Display the text before executing the script
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
local Label = Instance.new("TextLabel")
Label.Parent = ScreenGui
Label.Size = UDim2.new(0.5, 0, 0.1, 0)
Label.Position = UDim2.new(0.25, 0, 0.45, 0)
Label.Text = headerText
Label.TextColor3 = textColor
Label.TextTransparency = 1 -- Start fully transparent
Label.TextScaled = true
Label.BackgroundTransparency = 1
Label.Font = Enum.Font.Arcade -- Set to a better font (Arcade)
-- Fade-in effect
for i = 1, 10 do
    Label.TextTransparency = 1 - (i / 10)
    wait(fadeDuration / 10)
end
-- Wait for the text to display fully
wait(displayDuration)
-- Fade-out effect
for i = 1, 10 do
    Label.TextTransparency = i / 10
    wait(fadeDuration / 10)
end
-- Remove the GUI after the fade-out
ScreenGui:Destroy()
--[[
    WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your
own risk!
]]
local Players, RunService, Workspace = game:GetService("Players"),
game:GetService("RunService"), game:GetService("Workspace")
local LocalPlayer = Players.LocalPlayer
local   blackHoleActive = false
local   Folder, Part, Attachment1
local   screenGui, controlButton, closeButton
local   seatRemovalTimer = 2 -- Time interval for seat removal (in seconds)
local function disableScript()
    blackHoleActive = false
    if Folder then Folder:Destroy() end
    if screenGui then screenGui:Destroy() end
end
local function setupCharacter()
    local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
    local humanoid = character:WaitForChild("Humanoid")
    -- Set up death listener to disable the script on character death
    humanoid.Died:Connect(disableScript)
    -- Reset Folder and Part on each respawn
    if Folder then Folder:Destroy() end
    Folder = Instance.new("Folder", Workspace)
    Part = Instance.new("Part", Folder)
    Attachment1 = Instance.new("Attachment", Part)
    Part.Anchored, Part.CanCollide, Part.Transparency = true, false, 1
    if not getgenv().Network then
        getgenv().Network = { BaseParts = {}, Velocity = Vector3.new(14.46262424,
14.46262424, 14.46262424) }
        Network.RetainPart = function(Part)
            if Part:IsA("BasePart") and Part:IsDescendantOf(Workspace) then
                table.insert(Network.BaseParts, Part)
                Part.CustomPhysicalProperties, Part.CanCollide =
PhysicalProperties.new(0, 0, 0, 0, 0), false
            end
        end
        LocalPlayer.ReplicationFocus = Workspace
        RunService.Heartbeat:Connect(function()
             sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)
             for _, Part in ipairs(Network.BaseParts) do
                 if Part:IsDescendantOf(Workspace) then Part.Velocity =
Network.Velocity end
             end
        end)
    end
    local function ForcePart(v)
        local range = 5000
        if v:IsA("Part") and not v.Anchored and not
v.Parent:FindFirstChild("Humanoid") and not v.Parent:FindFirstChild("Head") and
v.Name ~= "Handle" then
            local distance = (v.Position - humanoidRootPart.Position).Magnitude
            if distance <= range then
                for _, x in ipairs(v:GetChildren()) do
                    if x:IsA("BodyAngularVelocity") or x:IsA("BodyForce") or
x:IsA("BodyGyro") or x:IsA("BodyPosition") or x:IsA("BodyThrust") or
x:IsA("BodyVelocity") or x:IsA("RocketPropulsion") then
                        x:Destroy()
                    end
                end
                for _, objName in ipairs({"Attachment", "AlignPosition", "Torque"})
do
                    if v:FindFirstChild(objName) then v[objName]:Destroy() end
                end
                v.CanCollide = false
                local Torque, AlignPosition, Attachment2 = Instance.new("Torque",
v), Instance.new("AlignPosition", v), Instance.new("Attachment", v)
                Torque.Torque, Torque.Attachment0 = Vector3.new(1e5, 1e5, 1e5),
Attachment2
                AlignPosition.MaxForce, AlignPosition.MaxVelocity,
AlignPosition.Responsiveness = 1e16, math.huge, 200
                AlignPosition.Attachment0, AlignPosition.Attachment1 = Attachment2,
Attachment1
            end
        end
    end
    local function toggleBlackHole()
        blackHoleActive = not blackHoleActive
        if blackHoleActive then
            for _, v in ipairs(Workspace:GetDescendants()) do ForcePart(v) end
            Workspace.DescendantAdded:Connect(function(v) if blackHoleActive then
ForcePart(v) end end)
            spawn(function()
                 while blackHoleActive and RunService.RenderStepped:Wait() do
                     if humanoidRootPart then
                         Attachment1.WorldCFrame = humanoidRootPart.CFrame
                     end
                 end
            end)
                humanoid.StateChanged:Connect(function(_, newState)
                     if newState == Enum.HumanoidStateType.Seated then
                         humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
                     end
                end)
          else
                blackHoleActive = false
          end
    end
    local function createControlGUI()
        if screenGui then screenGui:Destroy() end
          screenGui = Instance.new("ScreenGui")
          screenGui.Name = "ControlGUI"
          screenGui.ResetOnSpawn = false
          screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
          -- Control Button
          controlButton = Instance.new("TextButton")
          controlButton.Name = "ToggleBlackHoleButton"
          controlButton.Size = UDim2.new(0, 180, 0, 30)
          controlButton.Position = UDim2.new(0.5, -90, 0, 100)
          controlButton.Text = "Activate Black Hole"
          controlButton.BackgroundColor3 = Color3.new(0.2, 0.8, 0.2)
          controlButton.Parent = screenGui
          controlButton.Active, controlButton.Draggable = true, true
          -- Close Button
          closeButton = Instance.new("TextButton")
          closeButton.Name = "CloseButton"
          closeButton.Size = UDim2.new(0, 30, 0, 30)
          closeButton.Position = UDim2.new(0.5, 90, 0, 100)
          closeButton.Text = "X"
            closeButton.BackgroundColor3 = Color3.new(1, 0, 0)
            closeButton.Parent = screenGui
        -- Button Functions
        local function updateButton()
            controlButton.Text = blackHoleActive and "Deactivate Black Hole" or
"Activate Black Hole"
            controlButton.BackgroundColor3 = blackHoleActive and Color3.new(1, 0,
0) or Color3.new(0.2, 0.8, 0.2)
        end
            updateButton()
            controlButton.MouseButton1Click:Connect(function()
                 toggleBlackHole()
                 updateButton()
            end)
            closeButton.MouseButton1Click:Connect(function()
                 disableScript()
            end)
        -- Follow black hole button
        controlButton:GetPropertyChangedSignal("Position"):Connect(function()
             closeButton.Position = UDim2.new(controlButton.Position.X.Scale,
controlButton.Position.X.Offset + controlButton.Size.X.Offset + 5,
controlButton.Position.Y.Scale, controlButton.Position.Y.Offset)
        end)
    end
      createControlGUI()
end
local function     removeAllSeats()
    while true     do
        for _,     seat in ipairs(Workspace:GetDescendants()) do
            if     seat:IsA("Seat") or seat:IsA("VehicleSeat") then
                    seat:Destroy()
                end
            end
            wait(seatRemovalTimer)
      end
end
setupCharacter()
LocalPlayer.CharacterAdded:Connect(setupCharacter)
spawn(removeAllSeats)