How ignore Collisions between one actor and it's owner without Mask?

Hi everyone, i’m making a Derby Arena Multiplayer game where player loots weapons and destroy each others. So Cars have slots for weapons (Range or Physical) and when they overlap a weapon on the ground they attach it. For range weapons it’s working fine weapon and car don’t physically intersects each others but it’s not the same with the other type. So i would like to disable collision between my physic weapon and the owner car when i attach the weapon.

void AMeleeWeapon::Attach()
{
Mesh->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Block);
Mesh->SetCollisionEnabled(ECollisionEnabled::PhysicsOnly);
Mesh->SetNotifyRigidBodyCollision(true);

ACar* car = Cast<ACar>(GetOwner());

car->Mesh->IgnoreActorWhenMoving(this, true);
car->Mesh->MoveIgnoreActors.Add(this);
Mesh->IgnoreActorWhenMoving(car, true);
//Mesh->IgnoreComponentWhenMoving

}

i’ve tried this but it doesn’t work.

Thanks for your answers.

MoveIgnoreActor won’t because of this :
/**
* Set of actors to ignore during component sweeps in MoveComponent().
* All components owned by these actors will be ignored when this component moves or updates overlaps.
* Components on the other Actor may also need to be told to do the same when they move.
* Does not affect movement of this component when simulating physics.
* @see IgnoreActorWhenMoving()
*/

I found this : Ignore physics collision with specific actors? - World Creation - Epic Developer Community Forums

But i’m looking for a simpler awnser ^^’

I ended up creating physics constraint between two components: set all it’s limits to Free and disable collision between constrained components

1 Like