Hi. My problem is that my NPC stops shooting after a few iterations. I'm using Run Mode on Roblox Studio. The script that makes it function is a descendant of the NPC itself. It is a Server Script. No errors. Attempts: Around 3-6. Outcome: Shoots around 3 - 15 times, then suddenly breaks.
Video (Its really bad quality but you can see that it is making a movement, then stops):
The script (In NPC, NPC in the workspace, not cloned):
muz = Particle Emitter for Bullet Muzzle bullet = literally the bullet effect both animations are parents of the NPC itself
local root = script.Parent.HumanoidRootPart local hum = script.Parent.Humanoid local range = 160 local dmg = 15 local char = script.Parent local idle = char.Idle local shoot = char.Shoot local anim1 = hum.Animator:LoadAnimation(idle) local anim2 = hum.Animator:LoadAnimation(shoot) local SS = game.ServerStorage local bullet = SS.Bullet local tweser = game:GetService('TweenService') function findTarget() for i, target in pairs(workspace:GetChildren()) do if target:IsA("Model") and target:FindFirstChild("HumanoidRootPart") and target:FindFirstChild("HumanoidRootPart"):IsA("Part") and target.Name ~= char.Name then local HumanoidRootPart = target:FindFirstChild("HumanoidRootPart") local Humanoid = target:FindFirstChild('Humanoid') local pos = (root.Position - HumanoidRootPart.Position).Magnitude if pos < range and HumanoidRootPart.Parent:FindFirstChild("Humanoid").Health > 0 then return HumanoidRootPart, Humanoid end end end end while wait() do local humroot, hum = findTarget() if humroot and hum then hum:TakeDamage(dmg) local clone = bullet:Clone() clone.Anchored = true clone.Parent = workspace clone.Position = char.muz.Position clone.CFrame = CFrame.lookAt(clone.Position, humroot.Position) local info = TweenInfo.new( .1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, 0 ) local goal = {} goal.Position = humroot.Position local tween = tweser:Create(clone, info, goal) tween:Play() print('Found target') root.CFrame = CFrame.lookAt(root.Position, humroot.Position) anim2:Play() anim1:Stop() char.muz.ParticleEmitter:Emit(1) anim2.DidLoop:Wait() clone:Destroy() else print('Target no where to be seen') anim1:Play() anim2:Stop() anim1.DidLoop:Wait() end end