diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 9b90e06acce..f4861e0dfdc 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -997,7 +997,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/explosives/syndicate_bomb
name = "Syndicate Bomb"
- desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 60 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \
+ desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 90 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \
You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb."
reference = "SB"
item = /obj/item/radio/beacon/syndicate/bomb
@@ -1005,6 +1005,16 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
surplus = 0
cant_discount = TRUE
+/datum/uplink_item/explosives/emp_bomb
+ name = "EMP bomb"
+ desc = "The EMP has an adjustable timer with a minimum setting of 90 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \
+ You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb."
+ reference = "SBEMP"
+ item = /obj/item/radio/beacon/syndicate/bomb/emp
+ cost = 10
+ surplus = 0
+ cant_discount = TRUE
+
/datum/uplink_item/explosives/syndicate_minibomb
name = "Syndicate Minibomb"
desc = "The minibomb is a grenade with a five-second fuse."
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index 37dd2c6d439..e6f9f617cff 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -273,6 +273,12 @@
desc = "A salvaged syndicate device gutted of its explosives to be used as a training aid for aspiring bomb defusers."
payload = /obj/item/bombcore/training
+/obj/machinery/syndicatebomb/emp
+ name = "emp bomb"
+ icon_state = "emp-bomb"
+ desc = "A large bomb, seemingly made to make a large electromagnetic pulse."
+ payload = /obj/item/bombcore/emp
+
/obj/machinery/syndicatebomb/badmin
name = "generic summoning badmin bomb"
desc = "Oh god what is in this thing?"
@@ -449,6 +455,35 @@
range_light = 4
range_flame = 2
+/obj/item/bombcore/emp
+ name = "EMP bomb core"
+ var/light_emp = 36
+ var/heavy_emp = 18
+ var/pulse_number = 1 //Since one EMP wont destroy anything other then consoles and IPCS, here is an option to have multiple pulses when dentonating. DO NOT USE THIS WITH REALLY LARGE AREAS
+ var/adminlogged = FALSE //If it exploded once, don't do it again.
+
+/obj/item/bombcore/emp/ex_act(severity) //It's an EMP bomb, not a chemical explosive
+ return
+
+/obj/item/bombcore/emp/burn()
+ return
+
+/obj/item/bombcore/emp/detonate()
+ if(adminlog && !adminlogged)
+ message_admins(adminlog)
+ log_game(adminlog)
+ adminlogged = TRUE
+ empulse(src, heavy_emp, light_emp, 1)
+ if(pulse_number <= 1)
+ src.visible_message("The bomb's core burns out, and the bomb disintegrates into ash.")
+ new /obj/effect/decal/cleanable/ash(get_turf(src))
+ if(loc && istype(loc, /obj/machinery/syndicatebomb))
+ qdel(loc)
+ qdel(src)
+ else
+ pulse_number -= 1
+ addtimer(CALLBACK(src, .proc/detonate), 20) // every 2 seconds go off again till pulses run out
+
/obj/item/bombcore/chemical
name = "chemical payload"
desc = "An explosive payload designed to spread chemicals, dangerous or otherwise, across a large area. It is able to hold up to four chemical containers, and must be loaded before use."
diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm
index aa123930323..487a582a3ab 100644
--- a/code/game/objects/items/devices/radio/beacon.dm
+++ b/code/game/objects/items/devices/radio/beacon.dm
@@ -76,15 +76,20 @@
name = "suspicious beacon"
desc = "A label on it reads: Warning: Activating this device will send a high-ordinance explosive to your location."
origin_tech = "bluespace=5;syndicate=5"
+ var/bomb = /obj/machinery/syndicatebomb
/obj/item/radio/beacon/syndicate/bomb/attack_self(mob/user)
if(user)
to_chat(user, "Locked In")
- new /obj/machinery/syndicatebomb( user.loc )
+ new bomb(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
user.drop_item()
qdel(src)
+/obj/item/radio/beacon/syndicate/bomb/emp
+ desc = "A label on it reads: Warning: Activating this device will send a high-ordinance EMP explosive to your location."
+ bomb = /obj/machinery/syndicatebomb/emp
+
/obj/item/radio/beacon/engine
desc = "A label on it reads: Warning: This device is used for transportation of high-density objects used for high-yield power generation. Stay away!."
anchored = 1 //Let's not move these around. Some folk might get the idea to use these for assassinations
diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi
index 62a1c314388..b6e458c0e24 100644
Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ