Page MenuHomeFeedback Tracker

MPclient can't take items in deadbody's vest/uniform/bag When change equipments on eden.
Closed, ResolvedPublic

Description

Multiplayer client can't take items in the deadbody's vest/uniform/bag on inventory on mission. When change the equipments on 3den Arsenal.

Details

Severity
Major
Resolution
Fixed
Reproducibility
Always
Operating System
Windows 10 x64
Operating System Version
latest
Category
Multiplayer
Steps To Reproduce
  • Start Arma 3
  • Go to Editor
  • Place any AI unit & players(need server and client)
  • change the AI unit's weapon in arsenal.
  • save the mission

or try

  • play the (this) mission on MP (need 2 players. host(server) and client)
  • kill the AI
  • Open Inventry then...
  • try the take items from vest/uniform/bag of deadbody's by client. (server(host) is can take it)
Additional Information

it's inventry bug.
so, "take" and "rearm" action command is usable.
but can't pickup/take from vest/uniform/bag on inventry view.

Repro rate: 100% (4/4) by my friends.

OS is mine: win10x64 friends: win7x64

Event Timeline

razazel claimed this task.Jul 4 2017, 2:08 PM
razazel changed the task status from New to Need More Info.
razazel added a subscriber: razazel.

Hello,

thank you for the feedback.

Unfortunately I am unable to reproduce the issue. Would you mind uploading the repro mission you have used?

Thank you

sorry I forget say it.
it's only effect client user. host(server) is not effect (can pick up)...
iow plz pick by client player.

RaikaSiray renamed this task from MPclient can't pickup items in deadbody's vest/uniform/bag When change equipments on eden. to MPclient can't take items in deadbody's vest/uniform/bag When change equipments on eden..Jul 4 2017, 3:23 PM
RaikaSiray updated the task description. (Show Details)
RaikaSiray edited Steps To Reproduce. (Show Details)

Hello,

thank you for the feedback.

Unfortunately I am unable to reproduce the issue. Would you mind uploading the repro mission you have used?

Thank you

ty try repro. I update the mission. it's need 2 players to repro.

razazel changed the task status from Need More Info to Reviewed.Jul 10 2017, 1:57 PM

Thank you very much :)

it's inventry bug.
so, "take" and "rearm" action command is usable.
but can't pickup/take from vest/uniform/bag on inventry view.

RaikaSiray edited Additional Information. (Show Details)
RaikaSiray added a comment.EditedJul 19 2017, 12:35 PM

3den Arsenal I mean loadout editor. sorry cuz Im playing at japanese laungage. but friends are using english laungage for repro.

I'm having the same exact issue with all of my players on a dedicated server. Did anyone ever figure this one out? This is the only thread I've found about it.

There doesn't even be any need to change the target's inventory; merely opening the loadout editor on them and pressing "ok" to exit without making any changes will render anything inside his uniform/vest/backpack unlootable.

DoctorButts added a subscriber: DoctorButts.EditedNov 27 2017, 4:48 PM

Able to replicate this 100% of the time using a dedicated server and one client.

If an AI unit had its loadout accessed, and clicked 'ok' via the 'Edit Loadout...' option in 3den editor, then:

  1. If a player gets the 'hand' icon when near the dead AI's body, they can pick up any of those items, regardless as to where it is in the AI inventory (i.e. gun, grenades).
  1. When accessing the Inventory menu on the dead AI, the player can take items such as weapons and inventory items on the AI such as map and compass.
  1. A player cannot take ANY item located in a dead AI's inventory container (uniform, vest, backpack) such as first aid kits, ammunition. This has been tested with right clicking and trying to drag the inventory item to player containers.
  1. However, a player can swap items from his inventory containers to the dead AI's back and forth with no issue.
  1. A player can swap a dead AI's inventory container (uniform, vest, backpack) with no issue, and access any items inside once it is on the player.
  1. If a player swaps his inventory container (such as uniform) with a dead AI's container, the items that were in the player's original container are accessible.
  1. If a player swaps the container back to the dead AI body, the items in the dead AI's container are still inaccessible.
  1. If a player takes the dead AI's container, transfers an item from it to his 'original' container on the dead AI body, then swaps containers again: if he transfers the item that was originally on the dead AI's container back to that AI container, it will be inaccessible again.
  1. The only way to access this inventory is to swap the container with the dead AI, move away from the dead AI body, and then drop the AI's inventory container on the ground.

Finally, if a mission maker right clicks and chooses 'reset loadout' on the AI in 3den editor, it will allow players to access that dead AI's inventory container items as normal- instead of having to delete and replace the AI.

Because of this, mission makers must rely on gear scripts for AI instead of using 3den loadout for MPmissions.

POLPOX added a subscriber: POLPOX.Apr 4 2018, 9:00 PM
POLPOX added a comment.Apr 5 2018, 9:38 AM

I don't know this works in dedicated though, place

_nil = this spawn {_this setUnitLoadout getUnitLoadout _this}

in Init field, you can now loot items from these dead bodies.
However this sometimes failed to fix it(make him naked). Use sleep or waitUntil or something to more accurate execution? Need confirmation.

More useful usage example:

waitUntil {time != 0} ;
{_x setUnitLoadout getUnitLoadout _x} forEach allUnits ;

in init.sqf.

_Shadow added a subscriber: _Shadow.EditedMay 12 2021, 9:36 AM

The bug still stands on my group dedicated server, if an IA has an custom loadout, we cannot take what's is in his uniform/vest/backpack.

I don't know this works in dedicated though, place

_nil = this spawn {_this setUnitLoadout getUnitLoadout _this}

in Init field, you can now loot items from these dead bodies.
However this sometimes failed to fix it(make him naked). Use sleep or waitUntil or something to more accurate execution? Need confirmation.

More useful usage example:

waitUntil {time != 0} ;
{_x setUnitLoadout getUnitLoadout _x} forEach allUnits ;

in init.sqf.

Kudos to you ! The second one works perfectly.

LSValmont added a comment.EditedJul 1 2021, 1:04 AM

This happened to me as a host with 10 other players yesterday on the Stable branch.

The bug is more prevalent for non host players but it can happen for the host too.

Basically I killed a guy and looted his body via the "Inventory" action on the body, was able to pick his main gun but then I couldn't pick up any other item on the body.

Closing and reopening the inventory screen via the "Inventory" action that appears on the body then started glitching, appearing and disappearing intermittently and then finally when I was able to open the inventory UI it closed a second later (And that kept happening so I wasn't even able to try again.

Guys this bug has been reported several times over several years and it was never addressed even when the Arma 3 dev team was very numerous so don't get your hopes up this time.

Yet this is such a prevailing and recurrent issue/bug that it would be a shame not to have it fixed before we see the last patch arrive for Arma 3.

I don't know this works in dedicated though, place

_nil = this spawn {_this setUnitLoadout getUnitLoadout _this}

in Init field, you can now loot items from these dead bodies.
However this sometimes failed to fix it(make him naked). Use sleep or waitUntil or something to more accurate execution? Need confirmation.

More useful usage example:

waitUntil {time != 0} ;
{_x setUnitLoadout getUnitLoadout _x} forEach allUnits ;

in init.sqf.

I found something rather interesting while trying to get the second workaround to work for me:
The second script was run on postInit, works for the host (in self-hosted multiplayer, meaning a player is the server) but no other clients in my setup (for some unknown reason).
When the host takes items out of a container of a unit affected by the bug (even when they are unconscious when using ACE), it does NOT update the inventory, meaning that anyone else except the host will see the full inventory as it was spawned, yet the host will see the correct inventory.

Testing some more today (with one self-hosted server (host), other client) revealed that if the locality of the AI is changed, it fixes this bug - but only for the PC it was set local to.
So in my case it made it possible to pick up items from a dead body local to my connected client, but from my host I couldn't pick anything up from that body anymore.
When I made the body local to the host again, I could pick stuff up on the host again, but not from the connected client.

With the previous discoveries, I'm guessing it's some sort of locality issue not being correctly synced across all connected PCs.

LSValmont added a comment.EditedMar 18 2022, 6:11 PM

Testing some more today (with one self-hosted server (host), other client) revealed that if the locality of the AI is changed, it fixes this bug - but only for the PC it was set local to.
So in my case it made it possible to pick up items from a dead body local to my connected client, but from my host I couldn't pick anything up from that body anymore.
When I made the body local to the host again, I could pick stuff up on the host again, but not from the connected client.

With the previous discoveries, I'm guessing it's some sort of locality issue not being correctly synced across all connected PCs.

Good find!

Perhaps if the player opening the inventory makes the body/container local to himself while the GUI is open it could be a work around that the devs could implement relatively fast.

Such work around shouldn't be hard to implement with the default addaction but for players nearby just pressing the "I" button then I don't know how it could be made to work.

Perhaps when a nearby player presses the "I" button the client creates a virtual "container" with duplicate items that are local to himself but also update the original body once the UI is closed.

That could lead to item duplication thou, if more than one player is checking the same container at the same time and moving items around.

Another potential way to deal with the issue is to have only one player being able to interact with any container at the same time. So only the player who pressed "I" first gets the items on the container/body while the second one gets nothing or gets a "unable to interact with Container X, it is being used by player X" message or something.

This issue still happens extensively as of August 2022! Here is a video to clearly illustrate how and when it is happening so there is absolutely no doubt about it: >

https://youtu.be/a7FLyLSqhN8?t=99

In the video you can see the issue happening when trying to pick items from weapon holders and crates while I have previously experienced it when trying to pick weapons from enemy Ai bodies.

Another player on the same server was having item duplication each time he tried to pick up the weapons from a dead Ai body too. He would drag the weapon to his inventory only to have the weapon duplicated on the floor but not adding it to his inventory.

The inventory system is a core system to the game and a staple to the whole arma experience so allowing it to remain broken sends a terrible message about how even core features are handled

BIS_fnc_KK removed BIS_fnc_KK as the assignee of this task.Feb 4 2023, 4:26 AM
BIS_fnc_KK changed the task status from Reviewed to Feedback.
BIS_fnc_KK set Ref Ticket to AIII-44542.
BIS_fnc_KK added a subscriber: BIS_fnc_KK.
odds added a subscriber: odds.Feb 21 2023, 3:39 PM

I have a workaround for crates. I use a trigger to assign ownership of the crate to a nearby player. I'm not sure if this reproduces johnb43's workaround, by changing locality. Here's the snippet of code in the trigger: {crate setOwner owner _x} forEach thislist;

Unfortunately still broken in rev 150832.

assigning to myself so won’t forget to test the fix

TRAGER added a subscriber: TRAGER.Aug 3 2023, 1:11 PM

I able to reproduce this on Arma 3 Stable https://youtu.be/ERRmsWPZE24, but on today's Arma 3 Dev rev. 150832 - no https://youtu.be/H7DOBWyRKus, I have it fixed
Dedicated server, 1 player

Unfortunately still broken in rev 150832.

I should have added: There is one instance where it's still broken.

If you set the health of a unit to 0 in the editor and start the mission, it's broken in the same it was before this fix.
Generally speaking though, units that have their health set to 0 in the editor behave in odd ways.

However, for units that die in the mission the fix works.

BIS_fnc_KK added a comment.EditedAug 3 2023, 10:43 PM

This would be a different issue. I will look at it for 2.16

I'm surprised it event works anyhow on dead unit. I wont touch it in fear it might break something else, so just kill unit after mission start rather than starting with health 0. Gonna close this as fixed

BIS_fnc_KK removed BIS_fnc_KK as the assignee of this task.Feb 8 2024, 2:13 PM
BIS_fnc_KK closed this task as Resolved.
BIS_fnc_KK changed Resolution from Open to Fixed.