Blackhole
Key RequiredUniversal

Blackhole

Universal ScriptPreHackerPreHacker 8.2K views 344 executesUpdated May 13, 2025
Unrated
00
Lua Script•217 lines (7538 chars)
-- Server Script (Place in ServerScriptService)
-- Or u can use this with exploits

local Players = game:GetService("Players")
local Debris = game:GetService("Debris")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

-- Configuration
local BLACK_HOLE_SIZE = 10 -- Initial size
local GROWTH_RATE = 0.1 -- Size increase per second
local ITEM_GROWTH = 2 -- Size increase per absorbed item
local PULL_FORCE = 50 -- Force of the black hole pull
local TRAP_DISTANCE = 5 -- Distance at which players get trapped
local DARK_ZONE_SIZE = 50 -- Size of the dark zone

-- Black hole storage
local blackHole = nil
local darkZone = nil
local trappedPlayers = {} -- Table to track trapped players
local originalSpawnLocations = {} -- Store original SpawnLocations

-- Function to create the black hole
local function createBlackHole()
	blackHole = Instance.new("Part")
	blackHole.Size = Vector3.new(BLACK_HOLE_SIZE, BLACK_HOLE_SIZE, BLACK_HOLE_SIZE)
	blackHole.Position = Vector3.new(0, 50, 0) -- Spawn in air
	blackHole.Anchored = true
	blackHole.CanCollide = false
	blackHole.Shape = Enum.PartType.Ball
	blackHole.BrickColor = BrickColor.new("Really black")
	blackHole.Material = Enum.Material.Neon
	blackHole.Parent = workspace
	
	-- Add a swirling animation
	local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true)
	local swirlGoal = { CFrame = blackHole.CFrame * CFrame.Angles(0, math.rad(360), 0) }
	local swirlTween = TweenService:Create(blackHole, tweenInfo, swirlGoal)
	swirlTween:Play()
	
	-- Add a particle effect to simulate a black hole
	local emitter = Instance.new("ParticleEmitter")
	emitter.Texture = "rbxassetid://243098098" -- Black swirl texture
	emitter.Size = NumberSequence.new(5)
	emitter.Rate = 50
	emitter.Lifetime = NumberRange.new(1, 2)
	emitter.Speed = NumberRange.new(10)
	emitter.Parent = blackHole
end

-- Function to create the dark zone
local function createDarkZone()
	darkZone = Instance.new("Part")
	darkZone.Size = Vector3.new(DARK_ZONE_SIZE, DARK_ZONE_SIZE, DARK_ZONE_SIZE)
	darkZone.Position = Vector3.new(0, -100, 0) -- Underground
	darkZone.Anchored = true
	darkZone.CanCollide = true
	darkZone.Transparency = 0.9
	darkZone.BrickColor = BrickColor.new("Really black")
	darkZone.Parent = workspace
	
	-- Create a SpawnLocation in the dark zone
	local darkSpawn = Instance.new("SpawnLocation")
	darkSpawn.Size = Vector3.new(5, 0.2, 5)
	darkSpawn.Position = darkZone.Position + Vector3.new(0, 5, 0)
	darkSpawn.Anchored = true
	darkSpawn.Parent = darkZone
end

-- Function to trap a player in the dark zone
local function trapPlayer(player)
	if not trappedPlayers[player] and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
		trappedPlayers[player] = true
		local character = player.Character
		local humanoidRootPart = character.HumanoidRootPart
		
		-- Move player to dark zone
		humanoidRootPart.CFrame = CFrame.new(darkZone.Position + Vector3.new(0, 10, 0))
		
		-- Disable all UI for the player
		local playerGui = player:FindFirstChild("PlayerGui")
		if playerGui then
			for _, gui in pairs(playerGui:GetChildren()) do
				gui.Enabled = false
			end
		end
		
		-- Set screen to black
		local screenGui = Instance.new("ScreenGui")
		screenGui.IgnoreGuiInset = true
		local blackFrame = Instance.new("Frame")
		blackFrame.Size = UDim2.new(1, 0, 1, 0)
		blackFrame.BackgroundColor3 = Color3.new(0, 0, 0)
		blackFrame.BackgroundTransparency = 0
		blackFrame.Parent = screenGui
		screenGui.Parent = playerGui
		
		-- Prevent reset from escaping
		player.CharacterAdded:Connect(function(newCharacter)
			if trappedPlayers[player] then
				wait() -- Wait for character to fully load
				newCharacter:WaitForChild("HumanoidRootPart").CFrame = CFrame.new(darkZone.Position + Vector3.new(0, 10, 0))
			end
		end)
	end
end

-- Function to handle telekinesis (move/throw black hole)
local function setupTelekinesis()
	for _, player in pairs(Players:GetPlayers()) do
		local tool = Instance.new("Tool")
		tool.Name = "Test"
		tool.RequiresHandle = false
		tool.Parent = player.Backpack
		
		tool.Activated:Connect(function()
			if blackHole then
				local mouse = player:GetMouse()
				local targetPos = mouse.Hit.Position
				local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
				local moveGoal = { Position = targetPos }
				local moveTween = TweenService:Create(blackHole, tweenInfo, moveGoal)
				moveTween:Play()
			end
		end)
	end
	
	Players.PlayerAdded:Connect(function(player)
		local tool = Instance.new("Tool")
		tool.Name = "Test"
		tool.RequiresHandle = false
		tool.Parent = player.Backpack
		
		tool.Activated:Connect(function()
			if blackHole then
				local mouse = player:GetMouse()
				local targetPos = mouse.Hit.Position
				local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
				local moveGoal = { Position = targetPos }
				local moveTween = TweenService:Create(blackHole, tweenInfo, moveGoal)
				moveTween:Play()
			end
		end)
	end)
end

-- Function to pull objects and players
local function pullObjects()
	while blackHole do
		-- Grow black hole over time
		blackHole.Size = blackHole.Size + Vector3.new(GROWTH_RATE, GROWTH_RATE, GROWTH_RATE) / 10
		
		-- Pull players
		for _, player in pairs(Players:GetPlayers()) do
			if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and not trappedPlayers[player] then
				local humanoidRootPart = player.Character.HumanoidRootPart
				local distance = (blackHole.Position - humanoidRootPart.Position).Magnitude
				
				if distance < TRAP_DISTANCE then
					trapPlayer(player)
				elseif distance < PULL_FORCE then
					local direction = (blackHole.Position - humanoidRootPart.Position).Unit
					humanoidRootPart.Velocity = direction * (PULL_FORCE - distance)
				end
			end
		end
		
		-- Pull workspace objects (including anchored parts)
		for _, part in pairs(workspace:GetChildren()) do
			if part:IsA("BasePart") and part ~= blackHole and part ~= darkZone then
				local distance = (blackHole.Position - part.Position).Magnitude
				if distance < PULL_FORCE then
					local direction = (blackHole.Position - part.Position).Unit
					if part.Anchored then
						-- Move anchored parts by updating CFrame
						local newPos = part.Position + direction * (PULL_FORCE - distance) * 0.05 -- Adjust speed with multiplier
						part.CFrame = CFrame.new(newPos)
					else
						-- Move unanchored parts with velocity
						part.Velocity = direction * (PULL_FORCE - distance)
					end
					if distance < TRAP_DISTANCE then
						blackHole.Size = blackHole.Size + Vector3.new(ITEM_GROWTH, ITEM_GROWTH, ITEM_GROWTH) / 10
						Debris:AddItem(part, 0) -- Absorb the part
					end
				end
			end
		end
		
		RunService.Heartbeat:Wait()
	end
end

-- Initialize black hole and dark zone
createBlackHole()
createDarkZone()
setupTelekinesis()

-- Start pulling objects
coroutine.wrap(pullObjects)()

-- Store original SpawnLocations and modify respawn behavior
for _, spawn in pairs(workspace:GetChildren()) do
	if spawn:IsA("SpawnLocation") then
		originalSpawnLocations[spawn] = true
	end
end

-- Handle player respawn to keep them in dark zone
Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		if trappedPlayers[player] then
			wait() -- Wait for character to fully load
			character:WaitForChild("HumanoidRootPart").CFrame = CFrame.new(darkZone.Position + Vector3.new(0, 10, 0))
		end
	end)
end)

Features & Information

--created for roblox studio --u can use this in roblox player but it's visible only for u --BETA! --ORIGINAL VERSION CREATED BY ME ON GITHUB + DOCUMENTATION: /ravyyxd/Blackhole/blob/main/bin/script.lua

Community Comments (2)

PreHackerPreHackerMay 13, 2025

THIS SCRIPT was created for ROBLOX STUDIO in ServerScriptService! YOU WILL BE ABLE TO USE IT IN ROBLOX, BUT ONLY YOU WILL SEE IT!

enderbro640enderbro640May 13, 2025

what full black?

More Scripts for Universal Scripts