diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
index 41b35e2f108..29a654fbc65 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
@@ -589,17 +589,88 @@ Congratulations! You are now trained for xenobiology research!"}
name = "resting contraption"
desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?"
icon = 'icons/obj/abductor.dmi'
+ buildstacktype = /obj/item/stack/sheet/mineral/abductor
icon_state = "bed"
+/obj/structure/table_frame/abductor
+ name = "alien table frame"
+ desc = "A strudy table frame made from alien alloy."
+ icon_state = "alien_frame"
+ framestack = /obj/item/stack/sheet/mineral/abductor
+ framestackamount = 1
+ density = 1
+
+/obj/structure/table_frame/abductor/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/weapon/wrench))
+ user << "You start disassembling [src]..."
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ if(do_after(user, 30/I.toolspeed, target = src))
+ playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
+ for(var/i = 1, i <= framestackamount, i++)
+ new framestack(get_turf(src))
+ qdel(src)
+ return
+ if(istype(I, /obj/item/stack/sheet/mineral/abductor))
+ var/obj/item/stack/sheet/P = I
+ if(P.get_amount() < 1)
+ user << "You need one alien alloy sheet to do this!"
+ return
+ user << "You start adding [P] to [src]..."
+ if(do_after(user, 50, target = src))
+ P.use(1)
+ new /obj/structure/table/abductor(src.loc)
+ qdel(src)
+ return
+
/obj/structure/table/abductor
name = "alien table"
desc = "Advanced flat surface technology at work!"
icon = 'icons/obj/smooth_structures/alien_table.dmi'
icon_state = "alien_table"
+ buildstack = /obj/item/stack/sheet/mineral/abductor
+ framestack = /obj/item/stack/sheet/mineral/abductor
+ buildstackamount = 1
+ framestackamount = 1
canSmoothWith = null
+ frame = /obj/structure/table_frame/abductor
+
/obj/structure/closet/abductor
name = "alien locker"
desc = "Contains secrets of the universe."
icon_state = "abductor"
- icon_door = "abductor"
\ No newline at end of file
+ icon_door = "abductor"
+ can_weld_shut = FALSE
+ material_drop = /obj/item/stack/sheet/mineral/abductor
+
+/obj/structure/door_assembly/door_assembly_abductor
+ name = "alien airlock assembly"
+ icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi'
+ overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi'
+ typetext = "abductor"
+ icontext = "abductor"
+ airlock_type = /obj/machinery/door/airlock/abductor
+ anchored = 1
+ state = 1
+
+/obj/structure/door_assembly/door_assembly_abductor/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
+ var/obj/item/weapon/weldingtool/WT = W
+ if(WT.remove_fuel(0,user))
+ user.visible_message("[user] disassembles the airlock assembly.", \
+ "You start to disassemble the airlock assembly...")
+ playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ if(do_after(user, 40/W.toolspeed, target = src))
+ if( !WT.isOn() )
+ return
+ user << "You disassemble the airlock assembly."
+ new /obj/item/stack/sheet/mineral/abductor(get_turf(src), 4)
+ qdel(src)
+ else
+ return
+ else if(istype(W, /obj/item/weapon/airlock_painter))
+ return // no repainting
+ else if(istype(W, /obj/item/stack/sheet))
+ return // no material modding
+ else
+ ..()
\ No newline at end of file
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 335e502f706..00357c87d86 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -299,11 +299,14 @@
/obj/machinery/door/airlock/abductor
name = "alien airlock"
+ desc = "With humanity's current technological level, it could take years to hack this advanced airlock... or maybe we should give screwdriver a try?"
icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi'
overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi'
doortype = /obj/structure/door_assembly/door_assembly_abductor
opacity = 1
- explosion_block = 2
+ explosion_block = 3
+ hackProof = 1
+ aiControlDisabled = 1
//////////////////////////////////
/*
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 1670a24e98e..7f73e2254be 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -265,7 +265,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
/obj/item/stack/sheet/mineral/snow/New(var/loc, var/amount=null)
recipes = snow_recipes
pixel_x = rand(0,4)-4
- pixel_y = rand(0,4)-4
+ pixel_y = rand(,4)-4
..()
/****************************** Others ****************************/
@@ -311,4 +311,37 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
w_class = 3
throw_speed = 1
throw_range = 3
- origin_tech = "materials=4"
\ No newline at end of file
+ origin_tech = "materials=4"
+
+/*
+ * Alien Alloy
+ */
+/obj/item/stack/sheet/mineral/abductor
+ name = "alien alloy"
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "sheet-abductor"
+ singular_name = "alien alloy sheet"
+ force = 5
+ throwforce = 5
+ w_class = 3
+ throw_speed = 1
+ throw_range = 3
+ origin_tech = "materials=6;abductor=1"
+ sheettype = "abductor"
+
+var/global/list/datum/stack_recipe/abductor_recipes = list ( \
+ new/datum/stack_recipe("alien chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("alien bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("alien table frame", /obj/structure/table_frame/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("alien airlock assembly", /obj/structure/door_assembly/door_assembly_abductor, 4, time = 20, one_per_turf = 1, on_floor = 1), \
+ null, \
+ new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \
+/* null, \
+ new/datum/stack_recipe("Abductor Agent Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("Abductor Sciencist Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1)*/
+ )
+
+/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null)
+ recipes = abductor_recipes
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm
index 319b1035190..967d4613a80 100644
--- a/code/game/objects/items/stacks/tiles/tile_mineral.dm
+++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm
@@ -58,3 +58,12 @@
mineralType = "bananium"
materials = list(MAT_BANANIUM=500)
+/obj/item/stack/tile/mineral/abductor
+ name = "alien floor tile"
+ singular_name = "alien floor tile"
+ desc = "A tile made out of alien alloy."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "tile_abductor"
+ origin_tech = "materials=6;abductor=1"
+ turf_type = /turf/simulated/floor/mineral/abductor
+ mineralType = "abductor"
\ No newline at end of file
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index e73d8c64566..94ea8e37317 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -292,16 +292,6 @@
anchored = 1
state = 1
-/obj/structure/door_assembly/door_assembly_abductor
- name = "alien airlock assembly"
- icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi'
- overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi'
- typetext = "abductor"
- icontext = "abductor"
- airlock_type = /obj/machinery/door/airlock/abductor
- anchored = 1
- state = 1
-
/obj/structure/door_assembly/door_assembly_wood
name = "wooden airlock assembly"
icon = 'icons/obj/doors/airlocks/station/wood.dmi'
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index 1de69c421da..6fb3e3cb3bc 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -271,3 +271,12 @@
mineral = "metal"
walltype = "iron"
canSmoothWith = list(/obj/structure/falsewall/iron, /turf/simulated/wall/mineral/iron)
+
+/obj/structure/falsewall/abductor
+ name = "alien wall"
+ desc = "A wall with alien alloy plating."
+ icon = 'icons/turf/walls/abductor_wall.dmi'
+ icon_state = "abductor"
+ mineral = "abductor"
+ walltype = "abductor"
+ canSmoothWith = list(/obj/structure/falsewall/abductor, /turf/simulated/wall/mineral/abductor)
diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm
index 612aec92013..35344e06e72 100644
--- a/code/game/turfs/simulated/floor/mineral_floor.dm
+++ b/code/game/turfs/simulated/floor/mineral_floor.dm
@@ -169,3 +169,34 @@
last_event = world.time
active = 0
return
+
+// ALIEN ALLOY
+/turf/simulated/floor/mineral/abductor
+ name = "alien floor"
+ icon_state = "alienpod1"
+ floor_tile = /obj/item/stack/tile/mineral/abductor
+ icons = list("alienpod1", "alienpod2", "alienpod3", "alienpod4", "alienpod5", "alienpod6", "alienpod7", "alienpod8", "alienpod9")
+
+/turf/simulated/floor/mineral/abductor/New()
+ ..()
+ icon_state = "alienpod[rand(1,9)]"
+
+/turf/simulated/floor/mineral/abductor/break_tile()
+ return //unbreakable
+
+/turf/simulated/floor/mineral/abductor/burn_tile()
+ return //unburnable
+
+/turf/simulated/floor/mineral/abductor/make_plating()
+ return ChangeTurf(/turf/simulated/floor/plating/abductor2)
+
+
+/turf/simulated/floor/plating/abductor2
+ name = "alien plating"
+ icon_state = "alienplating"
+
+/turf/simulated/floor/plating/abductor2/break_tile()
+ return //unbreakable
+
+/turf/simulated/floor/plating/abductor2/burn_tile()
+ return //unburnable
\ No newline at end of file
diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm
index 7333c428b75..e9014cd60a7 100644
--- a/code/game/turfs/simulated/walls_mineral.dm
+++ b/code/game/turfs/simulated/walls_mineral.dm
@@ -173,4 +173,16 @@
mineral = "snow"
hardness = 80
sheet_type = /obj/item/stack/sheet/mineral/snow
- canSmoothWith = null
\ No newline at end of file
+ canSmoothWith = null
+
+/turf/simulated/wall/mineral/abductor
+ name = "alien wall"
+ desc = "A wall with alien alloy plating."
+ icon = 'icons/turf/walls/abductor_wall.dmi'
+ icon_state = "abductor"
+ walltype = "abductor"
+ mineral = "abductor"
+ sheet_type = /obj/item/stack/sheet/mineral/abductor
+ slicing_duration = 200 //alien wall takes twice as much time to slice
+ explosion_block = 3
+ canSmoothWith = list(/turf/simulated/wall/mineral/abductor, /obj/structure/falsewall/abductor)
\ No newline at end of file
diff --git a/icons/obj/abductor.dmi b/icons/obj/abductor.dmi
index c08d266200f..0896e9a500a 100644
Binary files a/icons/obj/abductor.dmi and b/icons/obj/abductor.dmi differ
diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi
index 610481c7f22..b838b5a1044 100644
Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ
diff --git a/icons/turf/walls/abductor_wall.dmi b/icons/turf/walls/abductor_wall.dmi
new file mode 100644
index 00000000000..5d0f47046b3
Binary files /dev/null and b/icons/turf/walls/abductor_wall.dmi differ