diff --git a/_maps/map_files/Instanced/Saucer.json b/_maps/map_files/Instanced/Saucer.json
new file mode 100644
index 00000000000..9519c53cacc
--- /dev/null
+++ b/_maps/map_files/Instanced/Saucer.json
@@ -0,0 +1,7 @@
+{
+ "map_name": "!*!*! Xenophorica",
+ "map_path": "map_files/Instanced/map_files",
+ "map_file": ["Saucer.dmm"],
+ "traits": [{"Linkage": "Self", "Boardable Ship": 1}],
+ "ship_type": "/obj/structure/overmap/antag/alien"
+}
diff --git a/_maps/map_files/Instanced/map_files/Saucer.dmm b/_maps/map_files/Instanced/map_files/Saucer.dmm
new file mode 100644
index 00000000000..a61a2e1226c
--- /dev/null
+++ b/_maps/map_files/Instanced/map_files/Saucer.dmm
@@ -0,0 +1,1460 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ak" = (
+/turf/closed/indestructible/abductor{
+ icon_state = "alien18"
+ },
+/area/abductor_ship)
+"aS" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien6"
+ },
+/area/abductor_ship)
+"bK" = (
+/obj/effect/spawner/structure/window/plasma,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"cl" = (
+/obj/structure/hull_plate/end{
+ dir = 9
+ },
+/turf/open/space/basic,
+/area/abductor_ship)
+"cL" = (
+/obj/structure/bed/abductor,
+/obj/item/bedsheet/cosmos,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"cN" = (
+/obj/effect/landmark/abductor/agent{
+ team_number = 2
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"dx" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien9"
+ },
+/area/abductor_ship)
+"dD" = (
+/obj/machinery/computer/ship/ftl_computer/preset{
+ dir = 8
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"eQ" = (
+/obj/structure/table/abductor,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"gQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"gZ" = (
+/obj/machinery/power/apc/highcap/fifteen_k,
+/turf/closed/wall/mineral/abductor,
+/area/abductor_ship)
+"hc" = (
+/obj/structure/hull_plate/end{
+ dir = 10
+ },
+/turf/open/space/basic,
+/area/abductor_ship)
+"iI" = (
+/obj/structure/hull_plate/end{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/abductor_ship)
+"iW" = (
+/obj/machinery/ship_weapon/energy/emp_blaster,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"ja" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien22"
+ },
+/area/abductor_ship)
+"jf" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"jp" = (
+/obj/machinery/power/rtg/abductor,
+/obj/structure/cable/white{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"ku" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"kI" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien3"
+ },
+/area/abductor_ship)
+"kY" = (
+/obj/structure/table/optable/abductor,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"lS" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"ma" = (
+/obj/machinery/door/airlock/abductor,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"mh" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien20"
+ },
+/area/abductor_ship)
+"ms" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien11"
+ },
+/area/abductor_ship)
+"nd" = (
+/obj/machinery/replicator,
+/turf/closed/wall/mineral/abductor,
+/area/abductor_ship)
+"oj" = (
+/obj/structure/hull_plate/end{
+ dir = 6
+ },
+/turf/open/space/basic,
+/area/abductor_ship)
+"ow" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien5"
+ },
+/area/abductor_ship)
+"oF" = (
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"pp" = (
+/obj/structure/cable/white{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/white{
+ icon_state = "5-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"qj" = (
+/obj/machinery/door/airlock/abductor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"rf" = (
+/obj/structure/cable/white{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"rj" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien10"
+ },
+/area/abductor_ship)
+"sz" = (
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/abductor,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"sO" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien2"
+ },
+/area/abductor_ship)
+"sS" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 8
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"tc" = (
+/obj/structure/table/abductor,
+/obj/machinery/recharger,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"tJ" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien16"
+ },
+/area/abductor_ship)
+"ug" = (
+/turf/closed/wall/mineral/abductor,
+/area/abductor_ship)
+"uI" = (
+/obj/structure/closet/abductor,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"uO" = (
+/obj/structure/hull_plate,
+/turf/open/space/basic,
+/area/abductor_ship)
+"vA" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"vW" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien15"
+ },
+/area/abductor_ship)
+"wF" = (
+/turf/closed/indestructible/abductor{
+ icon_state = "alien17"
+ },
+/area/abductor_ship)
+"xa" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor,
+/area/abductor_ship)
+"yp" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"yR" = (
+/obj/machinery/computer/camera_advanced/abductor,
+/obj/machinery/abductor/console,
+/obj/machinery/abductor/pad{
+ team_number = 2
+ },
+/obj/machinery/computer/camera_advanced/abductor,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"zS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/abductor/scientist{
+ team_number = 2
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"zU" = (
+/turf/closed/indestructible/abductor{
+ icon_state = "alien8"
+ },
+/area/abductor_ship)
+"AB" = (
+/obj/machinery/computer/ship/navigation/console{
+ dir = 8;
+ icon_state = "computer_mid"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Bd" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien14"
+ },
+/area/abductor_ship)
+"Bj" = (
+/obj/structure/table/abductor,
+/obj/item/surgical_drapes,
+/obj/item/surgicaldrill/alien,
+/obj/item/circular_saw/alien,
+/obj/item/cautery/alien,
+/obj/item/hemostat/alien,
+/obj/item/retractor/alien,
+/obj/item/scalpel/alien,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"BI" = (
+/obj/machinery/door/airlock/abductor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Cw" = (
+/obj/structure/hull_plate/end{
+ dir = 5
+ },
+/turf/open/space/basic,
+/area/abductor_ship)
+"CQ" = (
+/turf/open/space/basic,
+/area/space)
+"CY" = (
+/obj/structure/hull_plate/end{
+ dir = 4
+ },
+/turf/open/space/basic,
+/area/abductor_ship)
+"Db" = (
+/turf/closed/indestructible/abductor{
+ icon_state = "alien7"
+ },
+/area/abductor_ship)
+"FL" = (
+/obj/structure/hull_plate/end{
+ dir = 1
+ },
+/turf/open/space/basic,
+/area/abductor_ship)
+"FR" = (
+/obj/structure/hull_plate/end,
+/turf/open/space/basic,
+/area/abductor_ship)
+"Ga" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 8
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"GK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"Ia" = (
+/obj/structure/table/abductor,
+/obj/item/paper/guides/antag/abductor,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Ie" = (
+/obj/structure/reagent_dispensers/foamtank/hull_repair_juice,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"JE" = (
+/obj/machinery/computer/ship/helm/console{
+ dir = 8
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"KC" = (
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"KU" = (
+/obj/machinery/abductor/experiment,
+/obj/machinery/abductor/console,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Lc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"LD" = (
+/obj/structure/closet/abductor,
+/obj/item/storage/box/alienhandcuffs,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"LH" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien24"
+ },
+/area/abductor_ship)
+"LI" = (
+/obj/machinery/abductor/experiment,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"MJ" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien21"
+ },
+/area/abductor_ship)
+"MP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Na" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/ship_weapon/energy/emp_blaster,
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"Ni" = (
+/obj/structure/bed/abductor,
+/obj/item/bedsheet/random,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"NQ" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Oi" = (
+/obj/machinery/power/rtg/abductor,
+/obj/structure/cable/white{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"Qa" = (
+/obj/machinery/computer/ship/dradis/console{
+ dir = 5;
+ icon_state = "computer_end"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Qt" = (
+/obj/effect/spawner/structure/window/plasma,
+/turf/open/floor/plating/abductor2,
+/area/abductor_ship)
+"RA" = (
+/obj/structure/table/abductor,
+/obj/item/extinguisher/advanced/hull_repair_juice,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Tq" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien19"
+ },
+/area/abductor_ship)
+"TJ" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien4"
+ },
+/area/abductor_ship)
+"Vl" = (
+/obj/machinery/jukebox/disco,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"VK" = (
+/obj/machinery/shuttle/engine/void{
+ dir = 4
+ },
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien12"
+ },
+/area/abductor_ship)
+"Wx" = (
+/obj/machinery/door/airlock/abductor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"XS" = (
+/obj/machinery/abductor/gland_dispenser,
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"Yc" = (
+/obj/machinery/abductor/pad{
+ team_number = 2
+ },
+/turf/open/floor/plating/abductor,
+/area/abductor_ship)
+"YG" = (
+/obj/structure/hull_plate,
+/turf/closed/indestructible/abductor{
+ icon_state = "alien23"
+ },
+/area/abductor_ship)
+
+(1,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(2,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(3,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(4,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(5,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(6,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(7,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(8,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+cl
+iI
+iI
+iI
+iI
+iI
+iI
+iI
+iI
+iI
+hc
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(9,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+cl
+uO
+tJ
+Bd
+VK
+rj
+oF
+Bd
+VK
+rj
+aS
+uO
+hc
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(10,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+cl
+uO
+mh
+wF
+jp
+sS
+ug
+sz
+ug
+Ga
+Ni
+Db
+xa
+uO
+hc
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(11,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+cl
+uO
+tJ
+wF
+Oi
+pp
+ku
+ug
+KC
+ug
+uI
+KC
+cL
+Db
+aS
+uO
+hc
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(12,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+mh
+wF
+Oi
+rf
+oF
+GK
+ug
+KC
+nd
+KC
+KC
+KC
+Ni
+Db
+xa
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(13,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+MJ
+ug
+ug
+ug
+ug
+Wx
+ug
+ma
+ug
+ug
+ug
+ma
+ug
+ug
+sO
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(14,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+ja
+KC
+KC
+dD
+KC
+gQ
+ug
+KC
+jf
+MP
+BI
+MP
+NQ
+LD
+kI
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(15,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+ja
+KC
+cN
+KC
+KC
+Lc
+BI
+MP
+lS
+yp
+ug
+LI
+gQ
+XS
+kI
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(16,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+ja
+eQ
+eQ
+KC
+KC
+gQ
+ug
+Vl
+KC
+yp
+ug
+KU
+zS
+kY
+kI
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(17,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+ja
+RA
+eQ
+KC
+KC
+gQ
+ma
+KC
+KC
+yp
+ug
+yR
+gQ
+Bj
+kI
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(18,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+ja
+KC
+KC
+jf
+MP
+lS
+nd
+KC
+KC
+KC
+ma
+jf
+vA
+KC
+kI
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(19,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+YG
+Ie
+ug
+qj
+ug
+ug
+ug
+ma
+ug
+ug
+ug
+qj
+gZ
+Yc
+TJ
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(20,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+FL
+LH
+ak
+ug
+iW
+bK
+tc
+tc
+KC
+eQ
+Ia
+bK
+Na
+ug
+zU
+ow
+FR
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(21,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+Cw
+uO
+Tq
+ak
+oF
+bK
+KC
+KC
+KC
+KC
+KC
+bK
+oF
+zU
+dx
+uO
+oj
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(22,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+Cw
+uO
+LH
+ak
+ug
+uI
+JE
+AB
+Qa
+uI
+ug
+zU
+ow
+uO
+oj
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(23,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+Cw
+uO
+Tq
+vW
+ms
+Qt
+Qt
+Qt
+vW
+ms
+dx
+uO
+oj
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(24,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+Cw
+CY
+CY
+CY
+CY
+CY
+CY
+CY
+CY
+CY
+oj
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(25,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(26,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(27,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(28,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(29,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
+(30,1,1) = {"
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+CQ
+"}
diff --git a/nsv13.dme b/nsv13.dme
index 2b0ca9adc67..f6e4b8fef33 100644
--- a/nsv13.dme
+++ b/nsv13.dme
@@ -4060,6 +4060,7 @@
#include "nsv13\code\modules\overmap\FTL\ftl_jump_mishaps\jump_mishap_helpers.dm"
#include "nsv13\code\modules\overmap\FTL\ftl_jump_mishaps\phase_ghost.dm"
#include "nsv13\code\modules\overmap\ship_areas\badmiral.dm"
+#include "nsv13\code\modules\overmap\types\antagships.dm"
#include "nsv13\code\modules\overmap\types\miningships.dm"
#include "nsv13\code\modules\overmap\types\nanotrasen.dm"
#include "nsv13\code\modules\overmap\types\solgov.dm"
diff --git a/nsv13/code/__DEFINES/overmap.dm b/nsv13/code/__DEFINES/overmap.dm
index ca0b003bd46..f0108bdc5fb 100644
--- a/nsv13/code/__DEFINES/overmap.dm
+++ b/nsv13/code/__DEFINES/overmap.dm
@@ -31,8 +31,9 @@
#define FIRE_MODE_LASER_PD 16
#define FIRE_MODE_BLUE_LASER 17
#define FIRE_MODE_HYBRID_RAIL 18
+#define FIRE_MODE_EMP 19
-#define MAX_POSSIBLE_FIREMODE 18 //This should relate to the maximum number of weapons a ship can ever have. Keep this up to date please!
+#define MAX_POSSIBLE_FIREMODE 19 //This should relate to the maximum number of weapons a ship can ever have. Keep this up to date please!
//Weapon classes for AIs
#define WEAPON_CLASS_LIGHT 1
diff --git a/nsv13/code/datums/weapon_types.dm b/nsv13/code/datums/weapon_types.dm
index 4d4f32881ce..4fdaaeeee52 100644
--- a/nsv13/code/datums/weapon_types.dm
+++ b/nsv13/code/datums/weapon_types.dm
@@ -203,6 +203,23 @@
if(!override_mass_check && target.mass <= MASS_TINY) //Alright fighter mains. I'm not THAT much of a bastard. Generally AIs will prefer to not use their MAC for flyswatting.
return FALSE
return TRUE
+
+/datum/ship_weapon/emp_blaster // really big ion gun for when you have to make everyone stop
+ name = "Phased Ion Pulse Driver"
+ default_projectile_type = /obj/item/projectile/beam/laser/phaser/emp
+ burst_size = 2
+ fire_delay = 0.3 SECONDS
+ range_modifier = 10
+ overmap_select_sound = 'nsv13/sound/effects/ship/phaser_adjust.ogg'
+ overmap_firing_sounds = list('sound/weapons/emitter.ogg')
+ select_alert = "Activating High Energy Defense weapons.."
+ failure_alert = "DANGER: Defensive weapon offline."
+ lateral = FALSE
+ miss_chance = 33
+ firing_arc = 45
+ max_miss_distance = 6
+ ai_fire_delay = 0.3 SECONDS
+ allowed_roles = OVERMAP_USER_ROLE_PILOT
//End Energy Weapons
/datum/ship_weapon/missile_launcher
diff --git a/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm b/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm
index cd041f433e3..2468b593e7d 100644
--- a/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm
+++ b/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm
@@ -159,3 +159,20 @@
/obj/machinery/ship_weapon/energy/beam/admin //ez weapon for quickly testing.
charge_per_shot = 0
+
+/obj/machinery/ship_weapon/energy/emp_blaster
+ name = "Phased Ion Pulse Driver"
+ desc = "A strange energy weapon, it seems to share some distant legacy with the ion gun"
+ icon_state = "emp gun"
+ fire_mode = FIRE_MODE_EMP //Shot by the pilot.
+ circuit = /obj/item/circuitboard/machine
+ idle_power_usage = 0
+ charge = 0
+ charge_rate = 1000 //How quickly do we charge?
+ charge_per_shot = 10000 //How much power per shot do we have to use?
+ max_charge = 100000 //10 shots before it has to recharge.
+ power_modifier = 0 //Power youre inputting into this thing.
+ power_modifier_cap = 1 //Which means that your guns are spitting bursts that do 60 damage.
+ energy_weapon_type = /datum/ship_weapon/emp_blaster
+ static_charge = TRUE //Controls whether power and energy cost scale with power modifier. True = no scaling
+ damage_deflection = 100
diff --git a/nsv13/code/modules/overmap/overmap.dm b/nsv13/code/modules/overmap/overmap.dm
index 44fa6c5745d..6ad40d98570 100644
--- a/nsv13/code/modules/overmap/overmap.dm
+++ b/nsv13/code/modules/overmap/overmap.dm
@@ -593,6 +593,11 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill.
var/list/params_list = params2list(params)
if(target == src || istype(target, /atom/movable/screen) || (target in user.GetAllContents()) || params_list["alt"] || params_list["shift"])
return FALSE
+ if(disruption)
+ if(user)
+ to_chat(user, "The controls buzz angrily!")
+ playsound(helm, 'sound/machines/buzz-sigh.ogg', 75, 1)
+ return
if(LAZYFIND(gauss_gunners, user)) //Special case for gauss gunners here. Takes priority over them being the regular gunner.
var/datum/component/overmap_gunning/user_gun = user.GetComponent(/datum/component/overmap_gunning)
if(user_gun)
@@ -1030,3 +1035,12 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill.
*/
/obj/structure/overmap/proc/spec_collision_handling(obj/structure/overmap/other_ship, list/impact_powers, impact_angle)
return
+
+
+/obj/structure/overmap/key_down(key, client/user)
+ if(disruption)
+ if(user)
+ to_chat(user, "The controls buzz angrily!")
+ playsound(helm, 'sound/machines/buzz-sigh.ogg', 75, 1)
+ return
+ . = ..()
diff --git a/nsv13/code/modules/overmap/types/antagships.dm b/nsv13/code/modules/overmap/types/antagships.dm
new file mode 100644
index 00000000000..5f3a95ae3ed
--- /dev/null
+++ b/nsv13/code/modules/overmap/types/antagships.dm
@@ -0,0 +1,28 @@
+/obj/structure/overmap/antag/alien //Abductor flying saucer.
+ name = "!*!*! Xenophorica"
+ icon = 'nsv13/icons/overmap/new/saucer.dmi'
+ icon_state = "saucer"
+ desc = "Information not found: Update your NTOS "
+ mass = MASS_MEDIUM
+ sprite_size = 96
+ damage_states = FALSE
+ obj_integrity = 600
+ max_integrity = 600
+ ai_controlled = FALSE
+ //collision_positions = list(new /datum/vector2d(-27,62), new /datum/vector2d(-30,52), new /datum/vector2d(-30,11), new /datum/vector2d(-32,-16), new /datum/vector2d(-30,-45), new /datum/vector2d(-24,-58), new /datum/vector2d(19,-60), new /datum/vector2d(33,-49), new /datum/vector2d(35,24), new /datum/vector2d(33,60))
+ bound_width = 128
+ bound_height = 128
+ faction = "Abductor"
+ role = INSTANCED_MIDROUND_SHIP
+ starting_system = "Staging" //Abductors come from an unkown part of space.... probably
+ armor = list("overmap_light" = 70, "overmap_medium" = 60, "overmap_heavy" = 60) //advanced armor? IDK, these are completely arbitary rn. it's a smaller ship though
+ use_armour_quadrants = FALSE
+ cloak_factor = 30 //they're pretty advanced. and they need to be undetected. powerful cloak
+
+/obj/structure/overmap/antag/alien/Initialize(mapload)
+ . = ..()
+ handle_cloak(TRUE)
+ AddComponent(/datum/component/overmap_shields, 1200, 1200, 35) //inital integrity, max integrity, and recharge rate.
+
+/obj/structure/overmap/antag/alien/apply_weapons()
+ weapon_types[FIRE_MODE_EMP] = new/datum/ship_weapon/emp_blaster(src)
diff --git a/nsv13/code/modules/overmap/weapons/projectiles_fx.dm b/nsv13/code/modules/overmap/weapons/projectiles_fx.dm
index 28aac6a8671..762e77df662 100644
--- a/nsv13/code/modules/overmap/weapons/projectiles_fx.dm
+++ b/nsv13/code/modules/overmap/weapons/projectiles_fx.dm
@@ -697,3 +697,33 @@ Misc projectile types, effects, think of this as the special FX file.
icon = 'nsv13/goonstation/icons/hugeexplosion2.dmi'
icon_state = "explosion"
duration = 10
+
+
+
+/obj/item/projectile/beam/laser/phaser/emp
+ name = "Massive Ion bolt"
+ var/disruption = 20 //Do you like stuncombat? Well the AI doesn't. and neither does the mainship- hopefully.
+ var/disruption_cap = 30 //Very effective if applied spaced out over time against damage-resistant ships.
+ damage = 30 //anemic damage
+ icon = 'icons/obj/projectiles.dmi'
+ icon_state = "ion"
+ impact_effect_type = /obj/effect/temp_visual/impact_effect/ion
+ flag = "overmap_heavy"
+ relay_projectile_type = /obj/item/projectile/beam/laser/phaser/emp/relayed
+
+/obj/item/projectile/beam/laser/phaser/emp/spec_overmap_hit(obj/structure/overmap/target)
+ if(target.disruption <= disruption_cap)
+ target.disruption = min(target.disruption + disruption, disruption_cap)
+ return
+
+/obj/item/projectile/beam/laser/phaser/emp/relayed
+ projectile_piercing = PASSTABLE
+ flag = "energy"
+
+/obj/item/projectile/beam/laser/phaser/relayed/Initialize(mapload)
+ src.transform *= 2
+
+/obj/item/projectile/beam/laser/phaser/relayed/on_hit(atom/target, blocked = FALSE)
+ ..()
+ empulse(target, 1, 1)
+ return BULLET_ACT_HIT
diff --git a/nsv13/goonstation/icons/obj/computer.dmi b/nsv13/goonstation/icons/obj/computer.dmi
index d67d4505ca9..b4d89122da6 100644
Binary files a/nsv13/goonstation/icons/obj/computer.dmi and b/nsv13/goonstation/icons/obj/computer.dmi differ
diff --git a/nsv13/icons/obj/energy_weapons.dmi b/nsv13/icons/obj/energy_weapons.dmi
index 1d9aab52ff0..6788b003267 100644
Binary files a/nsv13/icons/obj/energy_weapons.dmi and b/nsv13/icons/obj/energy_weapons.dmi differ
diff --git a/nsv13/icons/overmap/new/saucer.dmi b/nsv13/icons/overmap/new/saucer.dmi
new file mode 100644
index 00000000000..7b463238cb9
Binary files /dev/null and b/nsv13/icons/overmap/new/saucer.dmi differ