-- 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)