Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Tween All Children in For Loop (with animation)?

Hi! I have this script that plays an Animation and gives you a tool. The tool you acquire is from a crate, and I want to tween some cool fading thing. However, I could've used unions, but it was too glitchy and left some parts. So, I tried using a for loop to gather every part in my crate and do the fading thing. I failed because the Animation would run in the for loop, and I had to wait for it to gather every part I wanted. How would I go about this? You don't need to give me code. Just explain and answer for me to put it in my code. Here's the code!

local proximityPrompt = script.Parent.Special2.ProximityPrompt
local RS = game:GetService("ReplicatedStorage")

proximityPrompt.Triggered:Connect(function(plr)
	local char = plr.Character or plr.CharacterAdded:Wait()
	local hum = char:WaitForChild("Humanoid")
	local randomArray = {RS:WaitForChild("Tool"), RS:WaitForChild("Tool2"), RS:WaitForChild("Tool3"), RS:WaitForChild("Tool4"), RS:WaitForChild("Tool5")}
	local randomIndex = math.random(1,#randomArray)
	local randomTool = randomArray[randomIndex]
	local toolClone = randomTool:Clone()
	local deathAnim = hum:LoadAnimation(script.DeathAnim)
	local debounce = true
	
	for i,v in pairs(plr.Backpack:GetChildren()) do
		if v.Name == randomTool.Name then
			debounce = false
			print(randomTool.Name)
		end
	end
	if debounce == true then
		for i,v in pairs(script.Parent:GetChildren()) do
			if v.Name == "Part" then
		
		local Info = TweenInfo.new(1.5)
		local Tween1 = game:GetService("TweenService"):Create(v,Info,{Transparency=0})
		local Tween2 = game:GetService("TweenService"):Create(v,Info,{Transparency=1})
		deathAnim:Play()
		wait(1.5)
		Tween2:Play()
		proximityPrompt.Enabled = false
		v.CanCollide = false
		script.Parent.Spawner.Attachment.ParticleEmitter.Enabled = true
		toolClone.Parent = plr.Backpack
		wait(5)
		Tween1:Play()
		v.CanCollide = true
		script.Parent.Spawner.Attachment.ParticleEmitter.Enabled = false
		proximityPrompt.Enabled = true
			end
		end
	end
	debounce = true
end)

1 answer

Try using delay instead of wait:

delay(time, function()
	-- Your code
end)

1 comment

0

Can you explain what that delay function is/does?

This discussion is preserved as it was. New answers, comments, and votes are closed.