diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
new file mode 100644
index 0000000000..bb37a380b6
--- /dev/null
+++ b/code/modules/paperwork/paperplane.dm
@@ -0,0 +1,102 @@
+// Ported from TG. Known issue: Throw hit can possibly double-proc. Seems to be throw code.
+/obj/item/weapon/paperplane
+ name = "paper plane"
+ desc = "Paper folded into the shape of a plane."
+ icon = 'icons/obj/bureaucracy.dmi'
+ icon_state = "paperplane"
+ throw_range = 7
+ throw_speed = 1
+ throwforce = 0
+ w_class = ITEMSIZE_TINY
+
+ var/obj/item/weapon/paper/internalPaper
+
+/obj/item/weapon/paperplane/New(loc, obj/item/weapon/paper/newPaper)
+ . = ..()
+ pixel_y = rand(-8, 8)
+ pixel_x = rand(-9, 9)
+ if(newPaper)
+ internalPaper = newPaper
+ flags = newPaper.flags
+ color = newPaper.color
+ newPaper.forceMove(src)
+ else
+ internalPaper = new /obj/item/weapon/paper(src)
+ update_icon()
+
+/obj/item/weapon/paperplane/Destroy()
+ if(internalPaper)
+ qdel(internalPaper)
+ internalPaper = null
+ return ..()
+
+/obj/item/weapon/paperplane/update_icon()
+ overlays.Cut()
+ var/list/stamped = internalPaper.stamped
+ if(!stamped)
+ stamped = new
+ else if(stamped)
+ for(var/S in stamped)
+ var/obj/item/weapon/stamp/ = S
+ var/image/stampoverlay = image('icons/obj/bureaucracy.dmi', "paperplane_[initial(stamp.icon_state)]")
+ overlays += stampoverlay
+
+/obj/item/weapon/paperplane/attack_self(mob/user)
+ to_chat(user, "You unfold [src].")
+ var/atom/movable/internal_paper_tmp = internalPaper
+ internal_paper_tmp.forceMove(loc)
+ internalPaper = null
+ qdel(src)
+ user.put_in_hands(internal_paper_tmp)
+
+/obj/item/weapon/paperplane/attackby(obj/item/P, mob/living/carbon/human/user, params)
+ ..()
+ if(istype(P, /obj/item/weapon/pen))
+ to_chat(user, "You should unfold [src] before changing it.")
+ return
+
+ else if(istype(P, /obj/item/weapon/stamp)) //we don't randomize stamps on a paperplane
+ internalPaper.attackby(P, user) //spoofed attack to update internal paper.
+ update_icon()
+
+ else if(is_hot(P))
+ if(user.disabilities & CLUMSY && prob(10))
+ user.visible_message("[user] accidentally ignites themselves!", \
+ "You miss the [src] and accidentally light yourself on fire!")
+ user.unEquip(P)
+ user.adjust_fire_stacks(1)
+ user.IgniteMob()
+ return
+
+ if(!(in_range(user, src))) //to prevent issues as a result of telepathically lighting a paper
+ return
+ user.unEquip(src)
+ user.visible_message("[user] lights [src] ablaze with [P]!", "You light [src] on fire!")
+ fire_act()
+
+ add_fingerprint(user)
+
+/obj/item/weapon/paperplane/throw_impact(atom/hit_atom)
+ if(..() || !ishuman(hit_atom))//if the plane is caught or it hits a nonhuman
+ return
+ var/mob/living/carbon/human/H = hit_atom
+ if(prob(2))
+ if((H.head && H.head.body_parts_covered & EYES) || (H.wear_mask && H.wear_mask.body_parts_covered & EYES) || (H.glasses && H.glasses.body_parts_covered & EYES))
+ return
+ visible_message("\The [src] hits [H] in the eye!")
+ H.eye_blurry += 10
+ var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
+ if(E)
+ E.damage += 2.5
+ H.emote("scream")
+
+/obj/item/weapon/paper/AltClick(mob/living/carbon/user, obj/item/I)
+ if ( istype(user) )
+ if( (!in_range(src, user)) || user.stat || user.restrained() )
+ return
+ to_chat(user, "You fold [src] into the shape of a plane!")
+ user.unEquip(src)
+ I = new /obj/item/weapon/paperplane(user, src)
+ user.put_in_hands(I)
+ else
+ to_chat(user, " You lack the dexterity to fold \the [src]. ")
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index 42fac1ec7a..b621d05474 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ
diff --git a/polaris.dme b/polaris.dme
index 5984d65873..72c09371d3 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -1923,6 +1923,7 @@
#include "code\modules\paperwork\paper.dm"
#include "code\modules\paperwork\paper_bundle.dm"
#include "code\modules\paperwork\paperbin.dm"
+#include "code\modules\paperwork\paperplane.dm"
#include "code\modules\paperwork\papershredder.dm"
#include "code\modules\paperwork\pen.dm"
#include "code\modules\paperwork\photocopier.dm"