Set Actor Enable Collision not replicated

I have been trying to disable an Actor’s collision using Blueprints. code is really straightforward, I am just cascading a call of “Set Actor Enable Collision” and “Set Actor Hidden In Game”, on a particular actor on server side. I know code is actually targeting right Actor in world because the “Set Actor Hidden In Game” node works, yet actor is always accepting collisions.

Hey hardballs,

Thanks for report! I was able to reproduce this behavior in 4.8.2 and our internal build if only Server uses Set Actor Enable Collision, even if BP is set to Replicate. I’ve entered a bug report for issue (UE-18622), and I’ll let you know if I see an update on it. For now, make sure both Server and Client are disabling collision.

For what it is worth, I’ve come up with a work around that works in my setup (4.8.2).

  1. Promote the “Collision Type” Enum to a variable that is replicated.

  2. Create two custom events, set both to “Replicate on Server”. You will use these to replicate value of variable you just created.

  3. Now that both client and server now value of new enum variable, use a multicast to call Set Collision Enabled on both client and server, making sure to use enum variable we’ve promoted and replicated.

Since variable has been replicated on it’s own outside of multicast/Set Collision enabled, both server and client know value and can use it to set collision properly to desired setting. Make sure you also trigger custom event that replicates variable value first before triggering multicast.

Any news yet? This bug is very annoying and is making my blueprints overly complicated to work around it.

No update on it yet. I’ll post here once I see any change.

Has this been fixed yet?

Im having issues attempting to replicate collision on client side.

ActorHiddenInGame replicates fine and then next node is ActorEnableCollision and it does not.

Hi DevilsD,

There’s been no update thus far. We’ll post here once there is.

Hey,

I think i’m experiencing same pb in c++ (4.10.2).

following code is called on server and component still collides with everything on clients (and collisions are correctly disabled on server).

UStaticMeshComponent* ThisFirstComponent = Cast<UStaticMeshComponent>(YagParentObject->RightHandBlueprintActor->GetRootComponent()->GetChildComponent(0));
if (ThisFirstComponent  && ThisFirstComponent->GetName().Equals("HighLightSphere"))
{
	ThisFirstComponent->SetIsReplicated(true);
	ThisFirstComponent->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
	ThisFirstComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);
}

Both YagParentObject and RightHandBlueprintActor are replicated actors.

RightHandBlueprintActor is spawned by dynamically loading a blueprint class, so technically it is a BP but there is no BP scripting involved.

When i manually set HighLightSphere (first component of BP) to no collision, then there is no collision everywhere.

Cheers

Cedric

Hey , I’ve just added a PR to fix issue https://github.com/EpicGames/UnrealEngine/pull/2010

Have a nice weekend!

Thanks for your help with this Moss.

Hopefully this gets done soon!

I have tryed to do workaround you are talking about, but with no luck, can u explain a little further ?
Do you have other settings enabled ? I mean, do you remove collision and only do it in BP ? Or do you keep collision on objects and also BP ?

Sorry, your example is working correctly, i was just making a noob mistake by doing it in wrong BP, thx for your bugfix, it helped me alot ! :slight_smile:

Hi ,

I’m just raised this thread so you know that there is a community interest in getting a fix and it seems that 4.11 still not manage this.

Thanks,

Hey Elvince,

This issue is still under investigation by our developers, but there is currently no timeline for when a fix will be released. Thank you for your post.

Have a great day

Just in case this got missed: https://github.com/EpicGames/UnrealEngine/pull/2010

This is still not working for me (4.14). It would be more than just convenient to have it.

Hey Jin_VE,

Here’s a link to public tracker so you can keep an eye on status of issue: Unreal Engine Issues and Bug Tracker (UE-18622)

I am also having this issue with 4.14.1.

Could you please publish some information on why this issue is marked as “won’t fix”?

It should be marked as by design, so that’s a slight oversight on our part. reason is that several games rely on this not being replicated. If you’d like it to be replicated, you can grab a source build of engine off of Github, and make changes yourself so that you can customize it to what you need for your game.

Have a great day