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

Is there a way to make a wait() command without stopping the whole script?

Code:

script.Parent.Derif.OnServerEvent:Connect(function(Player)
	
	local tweening = game:GetService("TweenService")
	local Tween = TweenInfo.new(
		7,
		Enum.EasingStyle.Linear,
		Enum.EasingDirection.Out,
		0,
		false,
		1)
	local partprop = {
		Size = Vector3.new(200,200,200);
		Transparency = 1
	}
local plr = Player.Character or Player.CharacterAdded:wait()
local hum = plr.Humanoid
local Folder = Instance.new("Folder", plr)
local explosion = Instance.new("Part", Folder)
local anim = tweening:Create(explosion,Tween,partprop)
explosion.Transparency = 0
explosion.CanCollide = false
explosion.Anchored = true
explosion.BrickColor = BrickColor.new("Gold")
explosion.CFrame = plr.HumanoidRootPart.CFrame
explosion.Shape = Enum.PartType.Ball
explosion.Size = Vector3.new(0.1,0.1,0.1)
explosion.BackSurface = "Smooth"
explosion.FrontSurface = "Smooth"
explosion.RightSurface = "Smooth"
explosion.LeftSurface = "Smooth"
explosion.TopSurface = "Smooth"
explosion.BottomSurface = "Smooth"
explosion.Parent = Folder
anim:Play()
hum.WalkSpeed = 0
wait(10)
hum.WalkSpeed = 16


explosion.Touched:Connect(function(hit)
 local inhum = hit.Parent.Humanoid
if inhum == nil then return end
if inhum.Parent == plr then
	--inhum.Health = inhum.Health - 0
	inhum.Health = inhum.Health - 10000
else
	inhum.Health = inhum.Health - 10000
end
	
end)
wait(3)
Folder:Destroy()
end)

In the code above, I tried to make the Player unable to walk for 10 seconds, but because I used wait() the whole script waited. And because of this, the explosion wouldn't kill the player immediately after touching it. How do I fix this?

2 comments

0

put the Touched function above the wait

1

Indent your code

1 answer

✓ Accepted answer

Yes, this can be used one of two ways, either the coroutine. method or the spawn(f) method. Preferably it's easiest to use the spawn method to have this work properly. The quick gist of this function is that it separates whichever nested lines into another thread allowing it to run separately from the mojo of the current running thread. Applying it is very simple, just write:

spawn(function()
	--// whatever code you wish to be unaffected remain outside of this encasing.
end)

Hope this helps! don't forget to accept and upvote:)

Still, don't understand? Read more about spawn here, and some quick pointers about threading

Stop by to check out coroutine too

2 comments

0

This answer was really useful! Thanks!

0

Glad to help!

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