diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
new file mode 100644
index 00000000000..677d1f112d8
--- /dev/null
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -0,0 +1,63 @@
+/obj/item/device/megaphone
+ name = "megaphone"
+ desc = "A device used to project your voice. Loudly."
+ icon_state = "megaphone"
+ item_state = "radio"
+ w_class = 2
+ flags = FPRINT
+ siemens_coefficient = 1
+
+ var/spamcheck = 0
+ var/emagged = 0
+ var/insults = 0
+ var/list/insultmsg = list("FUCK EVERYONE!", "DEATH TO LIZARDS!", "ALL SECURITY TO SHOOT ME ON SIGHT!", "I HAVE A BOMB!", "CAPTAIN IS A COMDOM!", "FOR THE SYNDICATE!", "VIVA!", "HONK!")
+
+/obj/item/device/megaphone/attack_self(mob/living/carbon/human/user as mob)
+ if(user.client)
+ if(user.client.prefs.muted & MUTE_IC)
+ src << "You cannot speak in IC (muted)."
+ return
+ if(!ishuman(user))
+ user << "You don't know how to use this!"
+ return
+ if(user.can_speak())
+ user << "You find yourself unable to speak at all."
+ return
+ if(spamcheck > world.time)
+ user << "\The [src] needs to recharge!"
+ return
+
+ var/message = copytext(sanitize(input(user, "Shout a message?", "Megaphone", null) as text),1,MAX_MESSAGE_LEN)
+ if(!message)
+ return
+ message = capitalize(message)
+ if ((src.loc == user && user.stat == 0))
+ if(emagged)
+ if(insults)
+ user.audible_message("[user] broadcasts, \"[pick(insultmsg)]\"", null, 1) // 2 stands for hearable message
+ insults--
+ else
+ user << "*BZZZZzzzzzt*"
+ else
+ user.audible_message("[user] broadcasts, \"[message]\"", null, 1) // 2 stands for hearable message
+
+ playsound(loc, 'sound/items/megaphone.ogg', 100, 0, 1)
+ spamcheck = world.time + 50
+ return
+
+/obj/item/device/megaphone/emag_act(mob/user)
+ user << "You overload \the [src]'s voice synthesizer."
+ emagged = 1
+ insults = rand(1, 3) //to prevent dickflooding
+
+/obj/item/device/megaphone/sec
+ name = "security megaphone"
+ icon_state = "megaphone-sec"
+
+/obj/item/device/megaphone/command
+ name = "command megaphone"
+ icon_state = "megaphone-command"
+
+/obj/item/device/megaphone/cargo
+ name = "supply megaphone"
+ icon_state = "megaphone-cargo"
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
index e4c16bf5bba..c84a04233ca 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
@@ -34,9 +34,10 @@
new /obj/item/clothing/under/rank/cargo(src)
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/device/radio/headset/headset_cargo(src)
- new /obj/item/clothing/gloves/fingerless(src)
// new /obj/item/weapon/cartridge/quartermaster(src)
new /obj/item/clothing/suit/fire/firefighter(src)
+ new /obj/item/clothing/gloves/fingerless(src)
+ new /obj/item/device/megaphone/cargo(src)
new /obj/item/weapon/tank/internals/emergency_oxygen(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 4ec805ea742..5a95ac1914b 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -48,6 +48,7 @@
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/weapon/storage/box/ids(src)
new /obj/item/weapon/storage/box/ids(src)
+ new /obj/item/device/megaphone/command(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/device/flash/handheld(src)
@@ -80,6 +81,7 @@
new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/box/flashbangs(src)
+ new /obj/item/device/megaphone/sec(src)
new /obj/item/tapeproj/security(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
new /obj/item/weapon/shield/riot/tele(src)
diff --git a/html/changelogs/Paprka-megaphoney.yml b/html/changelogs/Paprka-megaphoney.yml
new file mode 100644
index 00000000000..d1f9383a089
--- /dev/null
+++ b/html/changelogs/Paprka-megaphoney.yml
@@ -0,0 +1,6 @@
+author: Paprka
+
+delete-after: True
+
+changes:
+ - rscadd: "Added megaphones for the HoS, HoP, and QM."
\ No newline at end of file
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index b359a653969..2ea63e08ba0 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/sound/items/megaphone.ogg b/sound/items/megaphone.ogg
new file mode 100644
index 00000000000..31d7a8d1ad9
Binary files /dev/null and b/sound/items/megaphone.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
index 0a6d982434e..5b6c3dedcc0 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -553,6 +553,7 @@
#include "code\game\objects\items\devices\flashlight.dm"
#include "code\game\objects\items\devices\laserpointer.dm"
#include "code\game\objects\items\devices\lightreplacer.dm"
+#include "code\game\objects\items\devices\megaphone.dm"
#include "code\game\objects\items\devices\multitool.dm"
#include "code\game\objects\items\devices\paicard.dm"
#include "code\game\objects\items\devices\pipe_painter.dm"