
KeylessUniversal

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



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