diff --git a/src/AcDream.App/Rendering/GameWindow.cs b/src/AcDream.App/Rendering/GameWindow.cs index c6fc8e8..b78148d 100644 --- a/src/AcDream.App/Rendering/GameWindow.cs +++ b/src/AcDream.App/Rendering/GameWindow.cs @@ -8896,6 +8896,21 @@ public sealed class GameWindow : IDisposable _debugVm?.AddToast("Not in world"); return; } + + // B.5 polish (2026-05-14): block client-side when the selected + // entity is a creature/NPC — ACE's HandleActionPutItemInContainer + // would otherwise reject with WeenieError.Stuck (0x0029, "You + // cannot pick that up!") AND trigger the NPC's emote chain, + // which surfaces as "the NPC talks to me when I press F" if the + // user single-clicked an NPC last before the F press. Use + // (double-click) is the right action for NPCs; F is only for + // ground items. + if (IsLiveCreatureTarget(itemGuid)) + { + _debugVm?.AddToast("Can't pick that up"); + return; + } + var seq = _liveSession.NextGameActionSequence(); var body = AcDream.Core.Net.Messages.InteractRequests.BuildPickUp( seq, itemGuid, _playerServerGuid, placement: 0);