diff --git a/GainStation13/code/game/lore_papers.dm b/GainStation13/code/game/lore_papers.dm
index ff374201..9232b92b 100644
--- a/GainStation13/code/game/lore_papers.dm
+++ b/GainStation13/code/game/lore_papers.dm
@@ -24,6 +24,26 @@
name = "READ ME!"
info = "Don't use this auto-surgeon on yourself, dumbass!"
+/obj/item/paper/fluff/ruins/feeder_den/tool_warning
+ name = "READ ME BEFORE USING!"
+ info = "For those interested in grabbing more victims, make sure to read this first
\n\n\
+ OOC: Your goal here is to capture people to fatten up. Avoid intentionally killing and causing chaos on the station if you can at all help it.
\
+ Before capturing someone, be sure to check their preferences and make sure that they are not already occupied. A discord message or LOOC never hurts if you aren't sure. OOC communication is very important.
\
+ You have the power to send people back to the station, make sure that you talk with them before sending them back. Especially if they are someone that wasn't on the station in the first place, like a Den Victim. \
+
\
+ It is heavily advised that you find a target before you teleport onto the station as some crew members are not good canidates.
\
+ With the camera console you have access to the entire camera network of the station, use this to your advantage to formulate a plan. \
+
\
+ Right before heading onto the station, make sure that you grab a science tool and sync it with the feeder console. \
+ Syncing it will allow you to beam both yourself and captives back to the den. \
+ To do this, mark the person you want to mark by touching them with the tool. Once someone is marked you can use the tool on them again to beam them up.
\
+ Additionally, if you have someone to help you, they can beam up anyone that is marked, by using the camera console.\
+
\
+ Credits can be gained by having someone you fattened up use the tracking scale. Keep in mind that credits can only be gained when someone surpasses their previous max weight.\
+ Additionally, you are only able to get 900 credits from a person.\
+
\
+ You are able to use the console and pad to send victims back to the station after you are done with them. Avoid sending them anywhere dangerous or obvious unless you want to risk the ire of GATO. "
+
// calorite research facility
/obj/item/paper/fluff/ruins/calorite_facility/note1
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
new file mode 100644
index 00000000..36631bd0
--- /dev/null
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -0,0 +1,242 @@
+/obj/machinery/abductor/feeder_console
+ name = "feeder console"
+ desc = "You were into feeding enough that you managed to reverse-engineer alien technology to suit your goals, Amazing."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "console"
+ density = TRUE
+ team_number = 27 // 6(F) + 1(A) + 20(T) :3
+ /// What pad is linked with the console?
+ var/obj/machinery/abductor/pad/pad
+ /// What camera console is linked with the console?
+ var/obj/machinery/computer/camera_advanced/abductor/camera
+ /// What abductor gizmo is linked with the console?
+ var/obj/item/abductor/gizmo/gizmo
+ /// The current scale linked with the console
+ var/obj/structure/scale/credits/linked_scale
+ /// How much of each goodie have we purchased?
+ var/list/buy_counts = list()
+
+/obj/machinery/abductor/feeder_console/attack_hand(mob/user)
+ . = ..()
+ if(.)
+ return
+ user.set_machine(src)
+ var/dat = ""
+ dat += "
FeederSoft 3000
"
+
+ var/credits = linked_scale?.credits
+ dat += "Gear Credits: [credits]
"
+ dat += "Transfer credits in exchange for supplies:
"
+ for(var/goodie in subtypesof(/datum/feeders_den_goodie))
+ var/datum/feeders_den_goodie/temp_goodie = new goodie()
+ dat += "[temp_goodie.name] (Cost: [temp_goodie.credit_cost])
"
+ qdel(temp_goodie)
+
+ if(pad)
+ dat += "Emergency Teleporter System."
+ dat += "Consider using primary observation console first."
+ dat += "Activate Teleporter
"
+ if(gizmo && gizmo.marked)
+ dat += "Retrieve Mark
"
+ else
+ dat += "Retrieve Mark
"
+ else
+ dat += "NO TELEPAD DETECTED"
+
+ var/datum/browser/popup = new(user, "computer", "Abductor Console", 400, 500)
+ popup.set_content(dat)
+ popup.open()
+
+/obj/machinery/abductor/feeder_console/Topic(href, href_list)
+ if(..())
+ return
+
+ usr.set_machine(src)
+ if(href_list["teleporter_send"])
+ TeleporterSend()
+ if(href_list["dispense"])
+ var/datum_path = href_list["dispense"]
+ var/datum/feeders_den_goodie/goodie_datum = new datum_path()
+ var/price = goodie_datum.credit_cost
+ var/item_path = goodie_datum.item_to_dispense
+
+ if(!isnull(goodie_datum.initial_stock) && buy_counts[goodie_datum.name] && (buy_counts[goodie_datum.name] >= goodie_datum.initial_stock))
+ say("Unable to purchase more!")
+ return FALSE
+
+ if(!Dispense(item_path, price))
+ return FALSE
+
+ if(buy_counts[goodie_datum.name] == null)
+ buy_counts[goodie_datum.name] = 0
+
+ buy_counts[goodie_datum.name] += 1
+ qdel(goodie_datum)
+
+ updateUsrDialog()
+
+/obj/machinery/abductor/feeder_console/proc/TeleporterRetrieve()
+ if(pad && gizmo && gizmo.marked)
+ pad.Retrieve(gizmo.marked)
+
+/obj/machinery/abductor/feeder_console/proc/TeleporterSend()
+ if(pad)
+ pad.Send()
+
+/obj/machinery/abductor/feeder_console/proc/SetDroppoint(turf/open/location,user)
+ if(!istype(location))
+ to_chat(user, "That place is not safe for the specimen.")
+ return
+
+ if(pad)
+ pad.teleport_target = location
+ to_chat(user, "Location marked as test subject release point.")
+
+/obj/machinery/abductor/feeder_console/Initialize(mapload)
+ ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/machinery/abductor/feeder_console/LateInitialize()
+ if(!team_number)
+ return
+
+ for(var/obj/machinery/abductor/pad/found_pad in GLOB.machines)
+ if(found_pad.team_number == team_number)
+ pad = found_pad
+ break
+
+ for(var/obj/machinery/computer/camera_advanced/abductor/found_console in GLOB.machines)
+ if(found_console.team_number == team_number)
+ camera = found_console
+ found_console.console = src
+
+/obj/machinery/abductor/feeder_console/proc/AddGizmo(obj/item/abductor/gizmo/G)
+ if(G == gizmo && G.console == src)
+ return FALSE
+
+ if(G.console)
+ G.console.gizmo = null
+
+ gizmo = G
+ G.console = src
+ return TRUE
+
+/obj/machinery/abductor/feeder_console/proc/Dispense(obj/item/new_item, cost = 1)
+ if(!ispath(new_item))
+ return FALSE
+
+ if(!linked_scale?.credits || linked_scale.credits < cost)
+ say("Insufficent credits!")
+ return FALSE
+
+ linked_scale.credits -= cost
+ say("Incoming supply!")
+ var/drop_location = loc
+
+ if(pad)
+ flick("alien-pad", pad)
+ drop_location = pad.loc
+
+ new new_item(drop_location)
+ return TRUE
+
+/obj/machinery/abductor/feeder_console/attackby(obj/item/used_tool, mob/user, params)
+ if(istype(used_tool, /obj/item/abductor/gizmo) && AddGizmo(used_tool))
+ to_chat(user, "You link the tool to the console.")
+ return TRUE
+
+ return ..()
+
+/obj/structure/scale/credits
+ name = "tracking scale"
+ desc = "A upgraded scale that tracks to weight of all of those that have stepped on it. Using this will add credits to the feeder console"
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+ flags_1 = NODECONSTRUCT_1
+ /// How much credits do we currently have?
+ var/credits = 0
+ /// How many credits are we going to reward per pound gained?
+ var/credits_per_fatness = 1
+ /// A list containing all of the people we've scanned and their maximum weight.
+ var/list/scanned_people = list()
+ /// What is the current team number?
+ var/team_number = 27
+ /// What is the maximum ammount of credits that can be gained per person?
+ var/maximum_credits = 900 // A little bit over the fattness for blob.
+
+/obj/structure/scale/credits/Initialize(mapload)
+ ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/structure/scale/credits/attackby(obj/item/used_tool, mob/user, params)
+ if(!istype(used_tool, /obj/item/wrench))
+ return ..()
+
+ anchored = !anchored
+ to_chat(user, "You [anchored ? "secure" : "unsecure"] \the [src].")
+ used_tool.play_tool_sound(src)
+ return TRUE
+
+/obj/structure/scale/credits/LateInitialize()
+ for(var/obj/machinery/abductor/feeder_console/found_console in GLOB.machines)
+ if(found_console.team_number != team_number)
+ continue
+
+ found_console.linked_scale = src
+
+/obj/structure/scale/credits/weighperson(mob/living/carbon/human/fatty)
+ . = ..()
+ if(!istype(fatty))
+ return FALSE
+
+ var/credits_to_add = min((fatty.fatness * credits_per_fatness), maximum_credits)
+ var/credits_to_remove = 0
+ if(scanned_people[fatty])
+ credits_to_remove = scanned_people[fatty]
+
+ var/credit_total = max((credits_to_add - credits_to_remove), 0)
+ if(credit_total > 0)
+ say("[credit_total] credits have been deposited into the console.")
+
+ credits += credit_total
+ scanned_people[fatty] = max(credit_total, credits_to_remove)
+ return TRUE
+
+/obj/machinery/abductor/pad/feeder
+ team_number = 27
+
+/obj/machinery/computer/camera_advanced/abductor/feeder
+ team_number = 27
+ vest_mode_action = null
+ vest_disguise_action = null
+
+/obj/machinery/computer/camera_advanced/abductor/feeder/IsScientist(mob/living/carbon/human/H)
+ return TRUE
+
+/obj/item/abductor/gizmo/feeder
+ mode = GIZMO_MARK
+
+/obj/item/abductor/gizmo/feeder/ScientistCheck(mob/user)
+ return TRUE
+
+/obj/item/abductor/gizmo/attack_self(mob/user)
+ return
+
+/obj/item/abductor/gizmo/feeder/mark(atom/target, mob/living/user)
+ if(!ishuman(target))
+ return FALSE
+
+ if(target == marked)
+ to_chat(user, "You begin to teleport [target]...")
+ if(!do_after(user, 45 SECONDS, target = target)) // You have to be standing still for a while
+ return FALSE
+
+ console?.pad.Retrieve(marked)
+ return TRUE
+
+ if(target == user)
+ marked = user
+ return TRUE
+
+ prepare(target,user)
+ return TRUE
+
diff --git a/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm b/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm
new file mode 100644
index 00000000..a070abc3
--- /dev/null
+++ b/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm
@@ -0,0 +1,71 @@
+/datum/feeders_den_goodie
+ /// What is the name of the goodie we want to buy?
+ var/name
+ /// How much credits does this cost to buy?
+ var/credit_cost = 0
+ /// How much stock of this can be bought? If this is null, infinite can be bought
+ var/initial_stock
+ /// What is the path of the item to dispense?
+ var/item_to_dispense
+
+/datum/feeders_den_goodie/food_vendor_refill
+ name = "Food Vendor Refill"
+ credit_cost = 100
+ item_to_dispense = /obj/item/vending_refill/mealdor
+
+/datum/feeders_den_goodie/gizmo
+ name = "Science Tool"
+ credit_cost = 120
+ item_to_dispense = /obj/item/abductor/gizmo/feeder
+
+/datum/feeders_den_goodie/nutripump_turbo
+ name = "Nutri-Pump TURBO Autosurgeon"
+ credit_cost = 150
+ item_to_dispense = /obj/item/autosurgeon/nutripump_turbo
+
+/datum/feeders_den_goodie/fatbeam_gun
+ name = "Fatbeam gun"
+ credit_cost = 400
+ item_to_dispense = /obj/item/gun/fatbeam
+ initial_stock = 2
+
+/datum/feeders_den_goodie/grenade_weak
+ name = "Lipofier Grenade (Weak)"
+ credit_cost = 120
+ item_to_dispense = /obj/item/grenade/chem_grenade/lipoifier_weak
+ initial_stock = 6
+
+/datum/feeders_den_goodie/grenade_strong
+ name = "Lipofier Grenade (Strong)"
+ credit_cost = 360
+ item_to_dispense = /obj/item/grenade/chem_grenade/lipoifier_strong
+ initial_stock = 3
+
+/datum/feeders_den_goodie/chameleon
+ name = "Chameleon Kit"
+ credit_cost = 300
+ item_to_dispense = /obj/item/storage/box/syndie_kit/chameleon
+ initial_stock = 2
+
+/datum/feeders_den_goodie/pie_cannon
+ name = "Banana Cream Pie Cannon"
+ credit_cost = 500
+ item_to_dispense = /obj/item/pneumatic_cannon/pie/selfcharge
+ initial_stock = 2
+
+/datum/feeders_den_goodie/thermals
+ name = "Thermal Imaging Glasses"
+ credit_cost = 400
+ item_to_dispense = /obj/item/clothing/glasses/thermal/syndi
+ initial_stock = 2
+
+/datum/feeders_den_goodie/reagent_gun
+ name = "Reagent Gun"
+ credit_cost = 500
+ item_to_dispense = /obj/item/gun/chem
+
+/datum/feeders_den_goodie/protolathe
+ name = "R&D Kit"
+ credit_cost = 1500
+ item_to_dispense = /obj/item/storage/box/rndboards
+ initial_stock = 2
diff --git a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
index 6d75ff25..fc3867b0 100644
--- a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
+++ b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
@@ -14,7 +14,8 @@
"cw" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate{pixel_x = -10},/obj/item/clothing/head/helmet/space/syndicate{pixel_x = -10},/obj/item/clothing/mask/gas{pixel_x = -10; pixel_y = 3},/obj/item/clothing/suit/space/syndicate/orange{pixel_x = 8; name = "extra stretchy space suit"},/obj/item/clothing/head/helmet/space/syndicate/orange{pixel_x = 10},/obj/item/clothing/mask/gas{pixel_x = 10; pixel_y = 3},/obj/item/tank/jetpack/carbondioxide/eva,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"cx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"cy" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/food/snacks/store/cake/chocolate,/obj/machinery/light/small{dir = 1},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
-"cV" = (/obj/structure/sign/poster/contraband/syndicate_recruitment{pixel_x = -28},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
+"cR" = (/obj/machinery/door/airlock/abductor,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
+"cV" = (/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"cW" = (/obj/structure/cable{icon_state = "0-4"},/obj/machinery/power/apc{name = "Base Power Controller"; pixel_x = -28},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"dd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"de" = (/obj/structure/sign/poster/contraband/donut_corp{pixel_y = 32},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
@@ -73,13 +74,14 @@
"mf" = (/obj/structure/reagent_dispensers/cooking_oil,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"mm" = (/obj/machinery/vending/mealdor{free = 1},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"mD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/door/airlock/public/glass{name = "Cell 3"; id_tag = "feederden_cell3"},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
-"mJ" = (/obj/structure/scale,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
+"mJ" = (/obj/structure/scale/credits,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
"mU" = (/obj/structure/sink/kitchen{dir = 8; pixel_x = 11},/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"nd" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/snacks/store/cake/chocolate{pixel_y = 15},/obj/item/trash/plate{pixel_x = -4; pixel_y = 3},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
"nr" = (/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden)
"nu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/door/airlock/public/glass{name = "Cell 1"; id_tag = "feederden_cell1"},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
"nw" = (/obj/machinery/light/small{dir = 1},/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"nE" = (/obj/structure/flora/junglebush,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
+"nK" = (/obj/machinery/abductor/feeder_console,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"nW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/plantgenes{pixel_y = 6},/obj/structure/table,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"oH" = (/obj/structure/lattice/catwalk,/turf/template_noop,/area/ruin/space/has_grav/feedersden)
"oK" = (/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
@@ -180,6 +182,7 @@
"DM" = (/obj/machinery/vending/boozeomat/all_access,/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
"DO" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"DU" = (/obj/structure/chair/sofa/right,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
+"Ef" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Ek" = (/obj/structure/table/wood,/obj/item/storage/box/drinkingglasses{pixel_y = 10; pixel_x = 4},/obj/item/reagent_containers/food/drinks/soda_cans/cola,/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{pixel_y = -7; pixel_x = -5},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
"En" = (/obj/item/reagent_containers/food/snacks/chocolatebar,/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
"Eq" = (/obj/machinery/shower{dir = 8},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
@@ -228,6 +231,7 @@
"NA" = (/obj/structure/sign/poster/contraband/donut_corp{pixel_x = -32},/obj/structure/scale,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
"NB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/stripes{icon_state = "steel_grid"; dir = 10},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"NJ" = (/obj/structure/curtain,/obj/effect/turf_decal/tile{dir = 4},/obj/effect/turf_decal/tile{dir = 1},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
+"NU" = (/obj/machinery/abductor/pad/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"NX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/railing,/turf/open/floor/plasteel/stairs/left{dir = 4},/area/ruin/space/has_grav/feedersden)
"Oc" = (/turf/open/floor/wood{icon_state = "wood-broken"},/area/ruin/space/has_grav/feedersden)
"Ow" = (/obj/effect/turf_decal/sand/plating,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
@@ -242,8 +246,10 @@
"QV" = (/obj/structure/sign/poster/contraband/sun_kist{pixel_y = 32},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
"QW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Ra" = (/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
+"Rc" = (/obj/machinery/computer/camera_advanced/abductor/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Rh" = (/obj/structure/table,/obj/machinery/microwave,/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"Rp" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
+"Rr" = (/obj/structure/table/abductor,/obj/item/abductor/gizmo/feeder,/obj/item/abductor/gizmo/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Ru" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/old/preopen{id = "feederden_north"},/obj/effect/turf_decal/tile/red,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Rw" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plating/airless,/area/ruin/space/has_grav/feedersden)
"Rz" = (/obj/structure/railing{dir = 1},/turf/open/floor/plasteel/stairs/left{dir = 8},/area/ruin/space/has_grav/feedersden)
@@ -270,6 +276,7 @@
"Ws" = (/obj/machinery/light{dir = 1},/obj/effect/turf_decal{dir = 4},/obj/machinery/airalarm/syndicate{pixel_y = 32},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Wt" = (/obj/structure/lattice/catwalk,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"; pixel_x = 12; pixel_y = -10},/turf/template_noop,/area/ruin/space/has_grav/feedersden)
"WJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
+"WK" = (/obj/structure/table/abductor,/obj/item/paper/fluff/ruins/feeder_den/tool_warning,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"WN" = (/obj/structure/rack/shelf,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/candy,/obj/item/reagent_containers/food/snacks/candy,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"Xh" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"XL" = (/turf/closed/mineral/random,/area/ruin/space/has_grav/feedersden)
@@ -308,13 +315,13 @@ FEFEFEFEFEFEfmBrBrBrnrZnNBLvAjAjuAKWAjAjNXYAYAYAYABDTGXWTGTGTGqquOuOkakakaybDsAj
FEFEFEFEFEfmfmBrBrBrDcDcNJNJDcnrnrnrnrnrnrnrnrnrDcWJiONxgUgUgUuXZpTKDcnrnrgqnrnrnrnrnrnrDciuiuDcDcBrFEFEFEFEFE
FEFEFEFEBrZCfmISBrBrBrnrMaEqnrxGNgqtnrWNYEfncnbanrDxvYFDLNdCsRiNvYSsnrrJZOWrkoPgnrridlkCnrfNginrBrBrBrFEFEFEFE
FEFEFEFEBrBrfmfmBrBrBrnrtyEqnrikJhBeWsDOlslslslsvtDxvYSyvYvYvYvwvYmUnrcWmaICrscxtVbXJhkMnrfNdAnrBrBrBrFEFEFEFE
-FEFEFEFEFEBrwwfmeEBrBrDcnrnrnrnrxGHpNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrxCTYFHYpDBnrzlJhXPnrnrnrDcBrBrBrFEFEFEFE
-FEFEFEFEFEBrxZfmfmBrBrBrBrBrBrDcnrnrDcsNlsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhYXnrnrRanrnrBrEWYNfmBrBrBrFEFEFE
-FEFEFEFEFEFEfmfmBrBrBrBrBrBrBrBrBrBrnrqhlslslsVFDczAnrnrnrkgnrnrnrnrDcAgcwddRCuFnrKnlsdvnrISVefmxZfxBrBrFEFEFE
-FEFEFEFEFEFEFEfmBrBrBrBrBrBrBrBrBrBrnrcVlslslsdzPItjfhnroHoHoHdrVxnwAalslsfKJhvHRalslssCkgeEfmFEFEebFEFEFEFEFE
-FEFEFEFEFEFEFEFEBrBrBrBrBrBrBrBrBrBrnrqMyqzJjSTUbWTxsunroHoHoHdrBVBVAalslscdzoFmEsienWQWEsRwfmFEFEebFEFEFEFEFE
-FEFEFEFEFEFEFEFEFEBrBrBrBrBrBrBrBrBrDcnrnrnrnrnrnrnrnrpfgDoHWtpfnrnrnrnrnrzEvLvLMivLvLvLMiUZFEFEFEebFEFEFEFEFE
-FEFEFEFEFEFEFEFEFEFEBrBrBrBrBrFEFEBrBrBrBrBrBrBrXLBrqFebebebebebqFXLBrBrBrBrBrBrBrBrBrBrBrqFebebqFqFFEFEFEFEFE
+FEFEFEFEFEBrwwfmeEBrBrDcnrnrDcnrxGHpNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrxCTYFHYpDBnrzlJhXPnrnrnrDcBrBrBrFEFEFEFE
+FEFEFEFEFEBrxZfmfmBrBrBrBrBrDcDcnrnrDcsNlsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhYXnrnrRanrnrBrEWYNfmBrBrBrFEFEFE
+FEFEFEFEFEFEfmfmBrBrBrBrBrBrnrnKEfWKnrqhlslslsVFDczAnrnrnrkgnrnrnrnrDcAgcwddRCuFnrKnlsdvnrISVefmxZfxBrBrFEFEFE
+FEFEFEFEFEFEFEfmBrBrBrBrBrBrnrNUcVcVcRDOlslslsdzPItjfhnroHoHoHdrVxnwAalslsfKJhvHRalslssCkgeEfmFEFEebFEFEFEFEFE
+FEFEFEFEFEFEFEFEBrBrBrBrBrBrnrRccVRrnrqMyqzJjSTUbWTxsunroHoHoHdrBVBVAalslscdzoFmEsienWQWEsRwfmFEFEebFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEBrBrBrBrBrDcnrnrnrDcnrnrnrnrnrnrnrnrpfgDoHWtpfnrnrnrnrnrzEvLvLMivLvLvLMiUZFEFEFEebFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEBrBrBrBrBrBrBrBrBrBrBrBrBrBrXLBrqFebebebebebqFXLBrBrBrBrBrBrBrBrBrBrBrqFebebqFqFFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrBrplfmFEFEFEFEFEFExZEWISfmeEfmBrBrBrBrBrBrBrFEFEFEBrBrFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrfmfmFEFEFEFEFEFEfmfmfmfmfmfmISBrBrBrBrBrBrFEFEFEFEFEFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrFEFEFEFEFEFEFEBrfmfmwwxZfmfmfmBrBrqFqFFEFEFEFEFEFEFEFEFEFEFE
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index 320dff0d..1c40abde 100644
--- a/code/game/machinery/computer/camera_advanced.dm
+++ b/code/game/machinery/computer/camera_advanced.dm
@@ -89,7 +89,7 @@
return TRUE
/obj/machinery/computer/camera_advanced/abductor/can_use(mob/user)
- if(!isabductor(user))
+ if(!IsScientist(user)) //GAINSTATION EDIT ORIGINAL: if(!isabductor(user))
return FALSE
return ..()
diff --git a/tgstation.dme b/tgstation.dme
index 9159dda6..4feb4645 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3086,6 +3086,8 @@
#include "GainStation13\code\mechanics\spells.dm"
#include "GainStation13\code\mechanics\wand.dm"
#include "GainStation13\code\mechanics\web_weaving.dm"
+#include "GainStation13\code\mechanics\den abductors\console.dm"
+#include "GainStation13\code\mechanics\den abductors\purchaseble_goodies.dm"
#include "GainStation13\code\mobs\cakegolem.dm"
#include "GainStation13\code\mobs\chocoslime.dm"
#include "GainStation13\code\mobs\races\caloritegolem.dm"