I've been working on this for a while now, but all of my ideas have failed. I made a block that appears in front of the player when they press a button and expands for a bit before disappearing. It's supposed to damage anything that it touches once as long as it has a humanoid, but things that don't move are never detected.
f = script.Parent.Touched:connect(function(hit) local x = hit.Parent:FindFirstChild("Humanoid") if x then f:disconnect() x:TakeDamage(math.random(2, 5)) end end)
This is the part of the code that damages humanoids. The rest of the code is in separate scripts (I plan on cleaning things up later). The block is summoned when you press a button. I'll show the other two scripts:
Expanding script (child of a part named Skull):
cf = script.Parent.CFrame num = 0.3 for i = 1, 4, 0.1 do script.Parent.Size = Vector3.new(i, i, i) script.Parent.Mesh.Scale = script.Parent.Mesh.Scale + Vector3.new(num, num, num) script.Parent.CFrame = cf wait() end for i = 0, 1, 0.1 do script.Parent.Transparency = i wait() end script.Parent:Destroy()
Summoning script (local script in StarterGui; ignore that there's no delay between presses yet):
p = game.Players.LocalPlayer m = p:GetMouse() m.KeyDown:connect(function(k) if k == "z" then local c = p.Character local anim = script.Animation local animPlay = c.Humanoid:LoadAnimation(anim) animPlay:Play() wait(0.3) local x = game.ReplicatedStorage.Skull:Clone() x.CFrame = c.Torso.CFrame * CFrame.new(5, 0, 0) x.CFrame = x.CFrame * CFrame.Angles(0, 300, 0) x.Parent = workspace end end)
Any help is appreciated. I've been trying hard to fix this myself.