Chest rig inventory and interaction become broken when placed on ground and corpse.
Description
Details
- Severity
- Major
- Resolution
- Open
- Reproducibility
- Always
- Operating System
- Windows 10 x64
- Operating System Version
- multiple servers and clients. My client on 19045.4894, my private dedicated on 19045.5011
- Category
- Dedicated Server
On dedicated server.
Take chest rig from dead body on ground.
Place chest rig on ground.
Interact with inventory in chest rig.
In a basic vanilla test mission (1 blufor player, 4 opfor AI, Stratis Terrain), the interaction with the chest rig on the ground becomes broken. If the chest rig is picked up, the interaction with it's inventory works. If a chest rig is worn at mission start the interaction with it's inventory continues to work, even when placed on ground. Eventually, the ability to even pickup the chest rig (especially from dead body 'ground' inventory) also becomes broken and this happens quickly in more detailed missions like CO10 Escape and Recon OPs. This bug does not happen if the same missions are tested in the editor (so far). Tested with vanilla missions running no mods and missions using 10 - 20+ mods. On hosted public server and private box, with other players experiencing the same problem and have had confirmation from other outside source, non related.
Event Timeline
This was interesting.
We had a big issue with container entities being "leaked" and spamming server logs. So we fixed that.
Turns out, the inventory system requires entities to leak.
When you swap vest, its first unassigned from the dead body. The container entity is now not assigned to anything, its "leaked". So our fix to clean up leaked entities deletes it.
Then, the vest is assigned to the player, but the vest has been deleted on the server because it was leaked, the server cannot find it, and thinks the player doesn't have any vest. From now on the inventory is desynced.
Player doesn't care what server thinks when using its own "vest", so you don't notice that it doesn't network sync anymore.
When you drop it back on the ground, you drop a vest that doesn't exist.
Because the player doesn't "own" the vest now, it asks server for permission for every item to take out of the vest. But the vest doesn't exist on the server, so the server refuses.
The server cannot know that after the vest is unassigned, it would soon be re-assigned to someone else. If the vest were deleted, it would also be unassigned and then just not re-assigned afterwards.
There doesn't seem to be a feasible way to fix this properly, we will just have to let the entity leak and potentially spam logs with object not found messages..
Ah ok, so this will be happening across the board in missions where these circumstances arise, which I suppose is mostly PvE, hence why more people haven't mentioned it. I've seen the object not found spam in the logs and others mention it in the Faster discord, but I can't say as I've noticed too much of a negative impact when playing the game because of it, though that's usually with just a small group. Typical, stick your finger in a hole to plug one 'leak' and another one just appears. Thanks for the answer.
fix is on profiling branch tomorrow, serverside installation might be enough to fix it