How to make npcs and players not collide

I have been recently trying to make the spawning npcs not collide with the player, I have tried using Physics Service and nothing seems to work.

Here is my code:

local PS = game:GetService(“PhysicsService”)
PS:CreateCollisionGroup(“Player”)
PS:CollisionGroupSetCollidable(“Player”,“Player”,false)
PS:CreateCollisionGroup(“NPC”)
PS:CollisionGroupSetCollidable(“NPC”,“NPC”,false)

PS:CollisionGroupSetCollidable(“NPC”,“Player”,false)

game.Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function(Character)
Character:WaitForChild(“HumanoidRootPart”)
Character:WaitForChild(“Head”)
Character:WaitForChild(“Humanoid”)
for i,v in pairs(Character:GetChildren()) do
if v:IsA(“BasePart”) then
PS:SetPartCollisionGroup(v,“Player”)
end
end
end)
end)
spawn(function()
for i = 1,math.huge do
for _, v in pairs(game.Workspace.NPCS:GetChildren()) do
if v and v:FindFirstChildOfClass(“Humanoid”) then
for _,b in pairs(v:GetChildren()) do
if b:IsA(“Part”) then
PS:SetPartCollisionGroup(b,“NPC”)
end
wait()
end
end
wait()
end
wait(0.001)
end
end)
Help would be greatly appreciated, thanks!