I've been trying to disable collisions with players and npcs and I've checked both my own and dev forum scripts but none of them seem to work, I've also tried it with R6 players and NPCs

Please help as this is a crucial part to the game i'm working on.

Here is the script :

local PhysicsService = game:GetService("PhysicsService")
 
local defaultGroup = PhysicsService:GetCollisionGroupName(0);
local playerGroup = "PlayerGroup";
local npcGroup = "NPCGroup";
 
PhysicsService:CreateCollisionGroup(playerGroup);
PhysicsService:CreateCollisionGroup(npcGroup);

function setNPCGroup(char)
    for i,v in pairs(char:GetDescendants()) do
        if (v:IsA("BasePart")) then
            PhysicsService:SetPartCollisionGroup(v, npcGroup);
        end
    end
end

function setPlayerGroup(char)
    for i,v in pairs(char:GetDescendants()) do
        if (v:IsA("BasePart")) then
            PhysicsService:SetPartCollisionGroup(v, playerGroup);
        end
    end
end

-- Handle NPC creation.

game.Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function(char)
        setPlayerGroup(char);
    end)
end)

PhysicsService:CollisionGroupSetCollidable(playerGroup, npcGroup, false);
PhysicsService:CollisionGroupSetCollidable(playerGroup, playerGroup, true);
PhysicsService:CollisionGroupSetCollidable(npcGroup, npcGroup, true);
PhysicsService:CollisionGroupSetCollidable(playerGroup, defaultGroup, true);
PhysicsService:CollisionGroupSetCollidable(npcGroup, defaultGroup, true);