I have created a blueprint class which is an Actor. Its only component is a skeletal mesh. The skeletal mesh I am using has a physics asset and can be instanced as a skeletal mesh with working physics. However, my blueprint does not have any physics settings, and when I attempt to enable physics on the instance of the skeletal mesh component, I receive a warning that Collision Enabled is incompatible.
Does my blueprint need to inherit from a class other than Actor in order to use physics?
If you’re getting this message, go into your mesh collision settings inside of your blueprint and ensure that your Collision Enabled setting is set to Physics Only or Collision Enabled (Query and Physics). This option is shown in the image below. Once I set that option, I no longer received errors upon exiting PIE.
And what to do, if I need Query Collision too?
I made some debris that can attach to player, and later detach. For that I have to disable and enable physics and collision. If it would be physics only I couldn’t later attach them to the player (I use a sphere overlap to check distance).
Apart from this it works wonderfully, but the warning messages make me feel like I’m doing something wrong.
Im also having this issue. But it works in the editor without warnings. Whenever I package my project I get the warning together with messed up collisions.
I actually ran into this same message earlier. The issue is that if you’re trying to simulate physics to cause your character to ragdoll, you’ll need to change the collision type of the Skeletal Mesh to Ragdoll instead of the default. This fixed the issue for me. Let me know how it works.
This is a problem still in 4.20. I have tried all collision options but still run into this problem with destructible meshes. It does not seem to actually effect anything at runtime but of course I haven’t fully tested for a significant length of time. Also, this is on replicated actors and does not occur every time the project is ran.
If you’re simulating physics on an object, as long as you have a collision present that has Physics or Physics and Query collision enabled you shouldn’t be running into this warning. Could you confirm that you have either one of those settings on your collision preset?
Yes, I have tried both physics and physics and query and still get the warning. The meshes react to input just fine and don’t seem to actually cause an issue, I just keep getting the warning.
Seems to happen when you are trying to physics call before the setting is enabled / set. Like in the case of a bomb if you set an object to no collision while it is being put down, and scale up the sphere triggering the bomb to make it activate at longer range with Update Overlaps ON the Overlap update can set off the Query and give the warning message even though the Object is setup right. If you move the scaling the sphere radius after the set collision command it fixed it for me.
Vexar, that is incorrect. I actually figured this out but completely forgot to post the solution.
Here goes:
A collision sphere should only have query enabled if you are going to simulate physics on your static mesh.
Your static mesh, ideally, should only have physics collision enabled, since of course you have a collision sphere (cube, capsule) to hand your queries. If you need to have two different query calls for your sphere and your mesh itself, then of course you can use physics and query but depending on your geometry, this can still cause an issue with the mesh’s collision so it’s better, in this case, to add a smaller collision sphere that just barely reaches passed the bounds of your mesh. Of course, you can always edit your collision (with more detail in a third part program) but you can add some fair complexity in the engine itself.
I have found, it SOMETIMES bugs when a collision sphere is a child component of a mesh, so to prevent this kind of potential bug, it’s best to keep the two components separate within the base actor. So don’t make the mesh the root of the actor. Also, don’t try to put collision on the scene root of the object as it should only be handled by the collision object and the mesh.
This error will actually also prompt if you spawn a simulated actor into the world, but it never collides with anything.
For example, it spawns just a bit inside the landscape and falls down into the KillZ zone - you will get the Collision Enabled but incompatible error for that actor.
I have objects with active physics and colliders.
When I put them into my inventory, I deactivate both.
If I then want to drop the item, I have to reactivate both and I get the same error.
I’ve even tried saving the type of collisions to a variable and then reverting to the exact same type.
Before disabling physics and collisions, everything worked fine.
On reactivation I still get the error
Invalid Simulate Options: Body (ElectricBox4.ObjectMeshParent SM_MetallicSwitch_5) is set to simulate physics but Collision Enabled is incompatible
This was really tricky for me to figure out. I have an explosive barrel which needs:
gravity
physics simulation
hit events
Here 1) and 2) are such that the player may push the barrel around (gently) in the world without it going BOOM.
And 3) is such that when player shoots at the barrel it goes BOOM.
But as we have seen, “simulate physics” in incompatible with “collision enabled”. But without “simulate physics” gravity doesn’t work. And without “collision enabled” I can never trigger hit events from the player’s projectiles.
My ONLY solution so far is to create a custom Object Channel “Projectile” inside Project Settings → Engine - >Collision. My explosive barrel’s root component is a static mesh with SimulateGraphics=true, EnableGravity=true, and for Collision ignore Projectile objects. The barrel then has a Capsule Component which does not simulate graphics, but instead has Collision Enabled (Query and Physics) and blocks Projectile objects.
I also have OnComponentHit event binding on the Capsule Component.