I heard somewhere that doing :SetPartCollisionGroup on a basepart meant that all it's descendants will also be affected
I used the code
local PhysicsService = game:GetService("PhysicsService")
local Part1 = workspace.Part1
local Part2 = workspace.Part2
wait(5)
PhysicsService:SetPartCollisionGroup(Part1,"Group1")
PhysicsService:SetPartCollisionGroup(Part2,"Group2")
By the way I created an group in an server script so don't worry about that
this is an local script
But What I thought it would do was if I put any one of them in an group all it's descendants will also follow the collision rules

2 comments
maybe try this https://developer.roblox.com/en-us/api-reference/function/PhysicsService/SetPartCollisionGroup
and it only accepts baseparts.