diff --git a/baystation12.dme b/baystation12.dme
index 53a88423eb..7be8481944 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -1059,6 +1059,7 @@
#include "code\modules\paperwork\folders.dm"
#include "code\modules\paperwork\handlabeler.dm"
#include "code\modules\paperwork\paper.dm"
+#include "code\modules\paperwork\paper_bundle.dm"
#include "code\modules\paperwork\paperbin.dm"
#include "code\modules\paperwork\pen.dm"
#include "code\modules\paperwork\photocopier.dm"
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index 38b42a86b9..aeb6851145 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -29,12 +29,12 @@
/obj/structure/filingcabinet/initialize()
for(var/obj/item/I in loc)
- if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo))
+ if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo) || istype(I, /obj/item/weapon/paper_bundle))
I.loc = src
/obj/structure/filingcabinet/attackby(obj/item/P as obj, mob/user as mob)
- if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo))
+ if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/weapon/paper_bundle))
user << "You put [P] in [src]."
user.drop_item()
P.loc = src
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 1c491c126d..0f1b612e93 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -29,7 +29,7 @@
return
/obj/item/weapon/folder/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo))
+ if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo) || istype(W, /obj/item/weapon/paper_bundle))
user.drop_item()
W.loc = src
user << "You put the [W] into \the [src]."
@@ -47,6 +47,8 @@
dat += "Remove - [P.name]
"
for(var/obj/item/weapon/photo/Ph in src)
dat += "Remove - [Ph.name]
"
+ for(var/obj/item/weapon/paper_bundle/Pb in src)
+ dat += "Remove - [Pb.name]
"
user << browse(dat, "window=folder")
onclose(user, "folder")
add_fingerprint(usr)
@@ -78,6 +80,11 @@
var/obj/item/weapon/photo/P = locate(href_list["look"])
if(P)
P.show(usr)
+ if(href_list["browse"])
+ var/obj/item/weapon/paper_bundle/P = locate(href_list["browse"])
+ if(P)
+ P.attack_self(usr)
+ onclose(usr, "[P.name]")
//Update everything
attack_self(usr)
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 992cbd22d6..4fec2ee842 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -315,7 +315,33 @@
if(user.mind && (user.mind.assigned_role == "Clown"))
clown = 1
- if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
+ if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo))
+ var/obj/item/weapon/paper_bundle/B = new(src.loc)
+ if (name != "paper")
+ B.name = name
+ else if (P.name != "paper" && P.name != "photo")
+ B.name = P.name
+ user.drop_from_inventory(P)
+ if (user.r_hand == src)
+ user.drop_from_inventory(src)
+ B.loc = user
+ user.r_hand = B
+ B.layer = 20
+ else if (user.l_hand == src)
+ user.drop_from_inventory(src)
+ B.loc = user
+ user.l_hand = B
+ B.layer = 20
+ if(istype(user,/mob/living/carbon/human))
+ user:update_inv_l_hand()
+ user:update_inv_r_hand()
+ user << "You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name]."
+ src.loc = B
+ P.loc = B
+ B.amount++
+ B.update_icon()
+
+ else if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
if ( istype(P, /obj/item/weapon/pen/robopen) && P:mode == 2 )
P:RenamePaper(user,src)
else
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
new file mode 100644
index 0000000000..d6c0058ff8
--- /dev/null
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -0,0 +1,228 @@
+/obj/item/weapon/paper_bundle
+ name = "paper bundle"
+ gender = PLURAL
+ icon = 'icons/obj/bureaucracy.dmi'
+ icon_state = "paper"
+ item_state = "paper"
+ throwforce = 0
+ w_class = 1.0
+ throw_range = 2
+ throw_speed = 1
+ layer = 4
+ pressure_resistance = 1
+ attack_verb = list("bapped")
+ var/amount = 0 //Amount of items clipped to the paper
+ var/page = 1
+ var/screen = 0
+
+
+/obj/item/weapon/paper_bundle/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
+ var/obj/item/weapon/paper/P
+ if(istype(W, /obj/item/weapon/paper))
+ P = W
+ amount++
+ if(screen == 2)
+ screen = 1
+ user << "You add [(P.name == "paper") ? "the paper" : P.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]."
+ user.drop_from_inventory(P)
+ P.loc = src
+ if(istype(user,/mob/living/carbon/human))
+ user:update_inv_l_hand()
+ user:update_inv_r_hand()
+ else if(istype(W, /obj/item/weapon/photo))
+ amount++
+ if(screen == 2)
+ screen = 1
+ user << "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]."
+ user.drop_from_inventory(W)
+ W.loc = src
+ if(istype(user,/mob/living/carbon/human))
+ user:update_inv_l_hand()
+ user:update_inv_r_hand()
+ else
+ if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon))
+ usr << browse("", "window=[name]") //Closes the dialog
+ P = src[page]
+ P.attackby(W, user)
+ update_icon()
+ add_fingerprint(usr)
+ return
+
+
+/obj/item/weapon/paper_bundle/examine()
+ set src in oview(1)
+
+ usr << desc
+ if(in_range(usr, src))
+ src.attack_self(usr)
+ else
+ usr << "It is too far away."
+ return
+
+
+/obj/item/weapon/paper_bundle/attack_self(mob/user as mob)
+ if(ishuman(user))
+ var/mob/living/carbon/human/human_user = user
+ var/dat
+ var/obj/item/weapon/W = src[page]
+ switch(screen)
+ if(0)
+ dat+= "
Written on the back: