To explain why the part at the showcase at the beginning of the video didn't move, you were only moving it on the client, but your script is on the server, so your script didn't see the change and didn't think the part was close enough to be sucked in.
script local blackHole = script.Parent local pullRadius = 200 local basePullStrength = 100 local damageRadius = 10 local damageAmount = 10 local damageInterval = 1 local function applyPullEffect() while true do local objectsInRange = workspace:GetDescendants() for _, object in ipairs(objectsInRange) do if object:IsA("BasePart") and (blackHole.Position - object.Position).Magnitude < pullRadius then local distance = (blackHole.Position - object.Position).Magnitude local direction = (blackHole.Position - object.Position).unit local bodyVelocity = object:FindFirstChild("BodyVelocity") if not bodyVelocity then bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6) -- 1e6 = 10^6 = 1,000,000 bodyVelocity.Parent = object end local pullVelocity = direction * basePullStrength * (1 - (distance / pullRadius)) local currentVelocity = object.AssemblyLinearVelocity local velocityTowardsBlackHole = currentVelocity:Dot(direction) * direction local dampenedVelocity = pullVelocity + velocityTowardsBlackHole * 0.5 bodyVelocity.Velocity = dampenedVelocity object.Touched:Connect(function(hit) if hit == blackHole then object:Destroy() end end) else local bodyVelocity = object:FindFirstChild("BodyVelocity") if bodyVelocity then bodyVelocity:Destroy() end end end task.wait(0.1) end end local function damagePlayers() while true do local players = game.Players:GetPlayers() for _, player in ipairs(players) do local character = player.Character if character and character:FindFirstChild("HumanoidRootPart") then local distance = (blackHole.Position - character.HumanoidRootPart.Position).Magnitude if distance < damageRadius then local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid:TakeDamage(damageAmount) end end end end task.wait(damageInterval) end end coroutine.wrap(applyPullEffect)() coroutine.wrap(damagePlayers)()
He added the black hole to roblox
He added roblox to black hole
He added the black hole to roblox
NO WAY
Make the player stretch when being consumed to black hole. Spaghetti.
To explain why the part at the showcase at the beginning of the video didn't move, you were only moving it on the client, but your script is on the server, so your script didn't see the change and didn't think the part was close enough to be sucked in.
Yea idk how I missed that 😅
good explenation
Wowzers
Chain
Bro got that DanTDM hat
needs a spiral effect
script
local blackHole = script.Parent
local pullRadius = 200
local basePullStrength = 100
local damageRadius = 10
local damageAmount = 10
local damageInterval = 1
local function applyPullEffect()
while true do
local objectsInRange = workspace:GetDescendants()
for _, object in ipairs(objectsInRange) do
if object:IsA("BasePart") and (blackHole.Position - object.Position).Magnitude < pullRadius then
local distance = (blackHole.Position - object.Position).Magnitude
local direction = (blackHole.Position - object.Position).unit
local bodyVelocity = object:FindFirstChild("BodyVelocity")
if not bodyVelocity then
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6) -- 1e6 = 10^6 = 1,000,000
bodyVelocity.Parent = object
end
local pullVelocity = direction * basePullStrength * (1 - (distance / pullRadius))
local currentVelocity = object.AssemblyLinearVelocity
local velocityTowardsBlackHole = currentVelocity:Dot(direction) * direction
local dampenedVelocity = pullVelocity + velocityTowardsBlackHole * 0.5
bodyVelocity.Velocity = dampenedVelocity
object.Touched:Connect(function(hit)
if hit == blackHole then
object:Destroy()
end
end)
else
local bodyVelocity = object:FindFirstChild("BodyVelocity")
if bodyVelocity then
bodyVelocity:Destroy()
end
end
end
task.wait(0.1)
end
end
local function damagePlayers()
while true do
local players = game.Players:GetPlayers()
for _, player in ipairs(players) do
local character = player.Character
if character and character:FindFirstChild("HumanoidRootPart") then
local distance = (blackHole.Position - character.HumanoidRootPart.Position).Magnitude
if distance < damageRadius then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid:TakeDamage(damageAmount)
end
end
end
end
task.wait(damageInterval)
end
end
coroutine.wrap(applyPullEffect)()
coroutine.wrap(damagePlayers)()
Bibby bobty your script is now my property
BodyVelocity is deprecated
Use align position or vector force or line force or whatever
wowzers
sols rng 1:13
bro foreshadowing next video