Landscape: Physics Items Eaten By Floor

We are in the final stages of a multiplayer horror game production, nearing our v1.0 release and we are polishing and correcting as many bugs as we can find before then.

One persistent bug we run into from time to time is that our weapon and supply items characters can drop for other players fall through the landscape. I have thrown dozens of items to recreate it, and it is only once every couple dozen items I throw that I can see fall through the world. Furthermore… it happens far more often on clients as opposed to the host.

We initially had this issue when throwing items onto our static mesh flooring inside our buildings… and we found that giving our floors thicker collision meshes almost entirely eliminated this issue. The Unreal Engine Landscape is not an asset we can directly adjust the ‘thickness’ of the collision on so we are looking for a solution.

Our weapons and ammo items are BPs with static meshes and custom collisions that are spawned at about chest level and then falls to the floor with physics simulation on the server… which then updates the location to the clients.

Is there a better way to do this that we are missing? Thanks in advance!

Thats physics for you.

The only real solution is to not use the landscape or increase the size of the landscape collision - or the fidelity of the simulation (sub step) - or both.

Additional possible fix:
Since they are BPs.
Trace downwards on the visibility channel (or probably just a box trace with sweep turned on).
When you hit, stop the simulation manually by switching simulate physics to off.

You can make the code for this pretty involved, like detecting if you hit a landscape actor and only stopping the simulation for the landscape actor.

What you aren’t going to do, is rely purely on physics. Especially if the simulation is server side and then synced…
You can barely get away with doing it client side and then synchronizing both server and other clients to it… and if the client is a slow PC you get issues even in that case…

Thanks a bunch for the suggestions. I think we started adding a line trace from the player to tell the game how far the item can fall, but having the item’s BP itself line trace might be a better solution since the player can be standing on various elevations and stuff. Might explain why it only happens on the environment and never really on our flat floors in the houses.

Will try these solutions and respond back.

Just as a response and update,

Increasing the thickness of our landscape asset seems to have solved the problems. We were unable to get the floor to eat anymore of our dropped assets or weapons. Maybe it will come back, but for now it seems like that solution fixed it.

We were not even aware that was an option in the landscape object, so thanks a bunch for your suggestions!

1 Like

No worries.
Afaik there arent any adverse effects.

Note however that physics can go through all collision depending on the poll rate (in engine its called sub step), the speed of the object, and the size of the collision.

Essentially, small things fall through a lot.

This is just because the calculations to determine a hit have a really high chance to fail to detect an impact when the check for it occurs only before and after the supposedly impacted object.

For instance,
An ok solution for projectiles is to scale the collision by the velocity so that each frame you check the same amount of distance the item supposedly traveled for possible collisions.
(Should also serve as a test case to understand the above…)