diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index 55af26b6b2..bd5702eef4 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -732,16 +732,30 @@
return hide_from(target)
/datum/component/storage/proc/on_alt_click(datum/source, mob/user)
- if(!isliving(user) || user.incapacitated() || !quickdraw || locked || !user.CanReach(parent))
+ if(!isliving(user) || !user.CanReach(parent))
return
- var/obj/item/I = locate() in real_location()
- if(!I)
+ if(locked)
+ to_chat(user, "[parent] seems to be locked!")
return
- remove_from_storage(I, get_turf(user))
- if(!user.put_in_hands(I))
- to_chat(user, "You fumble for [I] and it falls on the floor.")
+
+ var/atom/A = parent
+ if(!quickdraw)
+ A.add_fingerprint(user)
+ user_show_to_mob(user)
+ playsound(A, "rustle", 50, 1, -5)
+ return
+
+ if(!user.incapacitated())
+ var/obj/item/I = locate() in real_location()
+ if(!I)
+ return
+ A.add_fingerprint(user)
+ remove_from_storage(I, get_turf(user))
+ if(!user.put_in_hands(I))
+ to_chat(user, "You fumble for [I] and it falls on the floor.")
+ return
+ user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].")
return
- user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].")
/datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source)
gather_mode_switch(source.owner)