diff --git a/code/game/objects/items/devices/enginepicker.dm b/code/game/objects/items/devices/enginepicker.dm
new file mode 100644
index 00000000000..9ce4185eb0c
--- /dev/null
+++ b/code/game/objects/items/devices/enginepicker.dm
@@ -0,0 +1,88 @@
+/*
+//////////
+ Item meant to spawn one of the three (Tesla / Singularity / Supermatter) engines on-station at round-start.
+ Should be found in the CE's office. Not access-restricted.
+//////////
+*/
+
+/obj/item/enginepicker
+ name = "Bluespace Engine Delivery Device"
+ desc = "With all of the innovations in power-generating science, Nanotrasen has decided to invent a per-station bluespace-based delivery system for a unique engine of the Chief Engineer's choice. Only one choice can be made. Device self-destructs on use."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "enginepicker"
+
+ var/list/list_enginebeacons = list()
+
+/obj/item/enginepicker/attack_self(mob/living/carbon/user)
+ if(usr.stat || !usr.canmove || usr.restrained())
+ return
+ locatebeacons()
+ var/default = null
+ var/E = input("Select the station's Engine:", "[src]", default) as null|anything in list_enginebeacons
+ if(E)
+ processchoice(E, user)
+
+//This proc finds all of the '/obj/item/radio/beacon/engine' in the world and assigns them to a list
+/obj/item/enginepicker/proc/locatebeacons()
+ LAZYCLEARLIST(list_enginebeacons)
+ for(var/obj/item/radio/beacon/engine/B in world)
+ if(B && !QDELETED(B))
+ list_enginebeacons += B
+
+//Spawns and logs / announces the appropriate engine based on the choice made
+/obj/item/enginepicker/proc/processchoice(var/obj/item/radio/beacon/engine/choice, mob/living/carbon/user)
+ var/issuccessful = FALSE
+ var/engname
+ var/G
+ var/turf/T = get_turf(choice)
+ if(choice.enginetype.len > 1) //If the beacon has multiple engine types
+ var/default = null
+ var/E = input("You have selected a combined beacon, which option would you prefer?", "[src]", default) as null|anything in choice.enginetype
+ if(E)
+ switch(E)
+ if("Singularity")
+ G = /obj/machinery/the_singularitygen
+ issuccessful = TRUE
+ engname = E
+ if("Tesla")
+ G = /obj/machinery/the_singularitygen/tesla
+ issuccessful = TRUE
+ engname = E
+ else //If the beacon has only one
+ var/E = DEFAULTPICK(choice.enginetype, null) //This should(?) account for a possibly scrambled list with a single entry
+ if(E)
+ switch(E)
+ if("Tesla")
+ G = /obj/machinery/the_singularitygen/tesla
+ issuccessful = TRUE
+ engname = E
+ if("Singularity")
+ G = /obj/machinery/the_singularitygen
+ issuccessful = TRUE
+ engname = E
+
+ if(issuccessful)
+ clearturf(T) //qdels all items / gibs all mobs on the turf. Let's not have an SM shard spawn on top of a poor sod.
+ new G(T) //Spawns the switch-selected engine on the chosen beacon's turf
+
+ var/ailist[] = list()
+ for(var/mob/living/silicon/ai/A in GLOB.living_mob_list)
+ ailist += A
+ if(ailist.len)
+ var/mob/living/silicon/ai/announcer = pick(ailist)
+ announcer.say(";Engine delivery detected. Type: " + engname + ".") //Let's announce the terrible choice to everyone
+
+ visible_message("\The [src] begins to violently vibrate and hiss, then promptly disintegrates!")
+ qdel(src) //Self-destructs to prevent crew from spawning multiple engines.
+ else
+ visible_message("\The [src] buzzes! No beacon found or selected!")
+ return
+
+//Deletes objects and mobs from the beacon's turf.
+/obj/item/enginepicker/proc/clearturf(var/turf/T)
+ for(var/obj/item/I in T)
+ visible_message("\The [I] gets crushed to dust!")
+ qdel(I)
+ for(var/mob/living/M in T)
+ visible_message("\The [M] gets obliterated!")
+ M.gib()
\ No newline at end of file