diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 9d1365290cf..eea992ec41c 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -118,6 +118,27 @@
to_chat(user, "You fill the [src].")
else if(!silent)
to_chat(user, "You fail to pick anything up with \the [src].")
+ if(istype(user.pulling, /obj/structure/ore_box/)) //Bit of a crappy way to do this, as it doubles spam for the user, but it works.
+ var/obj/structure/ore_box/O = user.pulling
+ O.attackby(src, user)
+
+/obj/item/weapon/storage/bag/ore/equipped(mob/user)
+ ..()
+ if(user.get_inventory_slot(src) == slot_wear_suit || slot_l_hand || slot_l_hand || slot_belt) //Basically every place they can go. Makes sure it doesn't unregister if moved to other slots.
+ GLOB.moved_event.register(user, src, /obj/item/weapon/storage/bag/ore/proc/autoload, user)
+
+/obj/item/weapon/storage/bag/ore/dropped(mob/user)
+ ..()
+ if(user.get_inventory_slot(src) == slot_wear_suit || slot_l_hand || slot_l_hand || slot_belt) //See above. This should really be a define.
+ GLOB.moved_event.register(user, src, /obj/item/weapon/storage/bag/ore/proc/autoload, user)
+ else
+ GLOB.moved_event.unregister(user, src)
+
+/obj/item/weapon/storage/bag/ore/proc/autoload(mob/user)
+ var/obj/item/weapon/ore/O = locate() in get_turf(src)
+ if(O)
+ gather_all(get_turf(src), user)
+
/obj/item/weapon/storage/bag/ore/examine(mob/user)
..()
diff --git a/html/changelogs/chaoko99 - pullbox.yml b/html/changelogs/chaoko99 - pullbox.yml
new file mode 100644
index 00000000000..c1bd9162068
--- /dev/null
+++ b/html/changelogs/chaoko99 - pullbox.yml
@@ -0,0 +1,37 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: chaoko99
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Ore bags will automatically pick up items when held, belted, or pocketed, and automatically deposit ore in boxes if one is being pulled."
+