Not a real solution, more as a help as to what you have actually built, as far as i can see
Right now, you are not STEALING those items from your NPCs, right now, you CREATE those items out of thin air the moment your event can be triggered.
That “Do Once” node just makes sure, that it spawns only one item for each time you press that key (and not multiple per key pressing), but it does not prevent repeated key pressing and therefore event triggering and summoning new items.
Right now, you do not check, what items the NPC carries in his inventory (or if he even carries anything, that could be stolen), but that could be done with casting to that NPC you just successfully line traced.
Then you would need to check his inventory, if he carries that item (or any item, if steal just grabs a random item from the inventory), and delete it from the NPCs inventory before or after you you spawned it.
Not sure, how such an inventory would be realized, but it probably would be good to have all items a variable, that tells your system, that this item can be stolen, or cannot be stolen from that char.
In my tiny tests, i have some NPCs, that collect items, which lie around in the room, and the moment they pick it up, i of course cannot pick up those items anymore (usually would happen with an overlap event).
The moment those NPCs pick up those items and carry them, they cast to those items and switch a bool variable in that very item, that it “is stolen” or “is carried”. So for me to be able to get that item, i first have to kill that NPC, because the NPC death/kill event also resets this variable in all carried items to false, and i then can collect this item again.