diff --git a/Content.Shared/Inventory/VirtualItem/SharedVirtualItemSystem.cs b/Content.Shared/Inventory/VirtualItem/SharedVirtualItemSystem.cs
index 8842223afc..db3a4fd95c 100644
--- a/Content.Shared/Inventory/VirtualItem/SharedVirtualItemSystem.cs
+++ b/Content.Shared/Inventory/VirtualItem/SharedVirtualItemSystem.cs
@@ -103,13 +103,14 @@ public abstract class SharedVirtualItemSystem : EntitySystem
/// The entity we will make a virtual entity copy of
/// The entity that we want to insert the virtual entity
/// Whether or not to try and drop other items to make space
- public bool TrySpawnVirtualItemInHand(EntityUid blockingEnt, EntityUid user, bool dropOthers = false)
+ /// If true this won't show a popup when dropping other items
+ public bool TrySpawnVirtualItemInHand(EntityUid blockingEnt, EntityUid user, bool dropOthers = false, bool silent = false)
{
- return TrySpawnVirtualItemInHand(blockingEnt, user, out _, dropOthers);
+ return TrySpawnVirtualItemInHand(blockingEnt, user, out _, dropOthers, silent: silent);
}
///
- public bool TrySpawnVirtualItemInHand(EntityUid blockingEnt, EntityUid user, [NotNullWhen(true)] out EntityUid? virtualItem, bool dropOthers = false, string? empty = null)
+ public bool TrySpawnVirtualItemInHand(EntityUid blockingEnt, EntityUid user, [NotNullWhen(true)] out EntityUid? virtualItem, bool dropOthers = false, string? empty = null, bool silent = false)
{
virtualItem = null;
if (empty == null && !_handsSystem.TryGetEmptyHand(user, out empty))
@@ -128,7 +129,7 @@ public abstract class SharedVirtualItemSystem : EntitySystem
if (!_handsSystem.TryDrop(user, hand))
continue;
- if (!TerminatingOrDeleted(held))
+ if (!silent && !TerminatingOrDeleted(held))
_popup.PopupClient(Loc.GetString("virtual-item-dropped-other", ("dropped", held)), user, user);
empty = hand;
diff --git a/Content.Shared/Wieldable/SharedWieldableSystem.cs b/Content.Shared/Wieldable/SharedWieldableSystem.cs
index 0a49622f8b..3b9b8dd8e7 100644
--- a/Content.Shared/Wieldable/SharedWieldableSystem.cs
+++ b/Content.Shared/Wieldable/SharedWieldableSystem.cs
@@ -314,7 +314,8 @@ public abstract class SharedWieldableSystem : EntitySystem
var virtuals = new ValueList();
for (var i = 0; i < component.FreeHandsRequired; i++)
{
- if (_virtualItem.TrySpawnVirtualItemInHand(used, user, out var virtualItem, true))
+ // don't show a popup when dropping items because it will overlap with the popup for wielding
+ if (_virtualItem.TrySpawnVirtualItemInHand(used, user, out var virtualItem, true, silent: true))
{
virtuals.Add(virtualItem.Value);
continue;