diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm
index 3e3f140a711..06992926f90 100644
--- a/code/__DEFINES/DNA.dm
+++ b/code/__DEFINES/DNA.dm
@@ -172,6 +172,7 @@
#define ORGAN_SLOT_EARS "ears"
#define ORGAN_SLOT_EYES "eye_sight"
#define ORGAN_SLOT_HEART "heart"
+#define ORGAN_SLOT_STACK "stack" //SKYRAT EDIT, STACKS
#define ORGAN_SLOT_HEART_AID "heartdrive"
#define ORGAN_SLOT_HUD "eye_hud"
#define ORGAN_SLOT_LIVER "liver"
@@ -226,6 +227,7 @@ GLOBAL_LIST_INIT(organ_process_order, list(
ORGAN_SLOT_LUNGS,
ORGAN_SLOT_HEART,
ORGAN_SLOT_ZOMBIE,
+ ORGAN_SLOT_STACK, //SKYRAT EDIT
ORGAN_SLOT_THRUSTERS,
ORGAN_SLOT_HUD,
ORGAN_SLOT_LIVER,
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 22368fb4921..44484a12694 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -219,6 +219,10 @@ GENE SCANNER
if(ishuman(M))
var/mob/living/carbon/human/the_dude = M
var/datum/species/the_dudes_species = the_dude.dna.species
+//SKYRAT EDIT BEGIN - Neural Laces
+ if (the_dude.getorganslot(ORGAN_SLOT_STACK))
+ render_list += "Subject possesses a cortical stack.\n"
+//SKYRAT EDIT END - Neural Laces
if (!(NOBLOOD in the_dudes_species.species_traits) && !the_dude.getorganslot(ORGAN_SLOT_HEART))
render_list += "Subject lacks a heart.\n"
if (!(TRAIT_NOBREATH in the_dudes_species.species_traits) && !the_dude.getorganslot(ORGAN_SLOT_LUNGS))
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 96ebe0c5b02..7dd4a01de12 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -172,7 +172,7 @@
return ..()
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer)
- var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit")
+ var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit", "Neural Lace Kit") //SKYRAT EDIT - Neural Laces
var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in sortList(items)
if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer)
@@ -184,6 +184,8 @@
if("Resonator Kit")
new /obj/item/extinguisher/mini(drop_location)
new /obj/item/resonator(drop_location)
+ if("Neural Lace Kit") // Skyrat edit
+ new /obj/item/autosurgeon/organ/corticalstack(drop_location)
if("Minebot Kit")
new /mob/living/simple_animal/hostile/mining_drone(drop_location)
new /obj/item/weldingtool/hugetank(drop_location)
diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm
index 95dff282839..53a2a510bf1 100644
--- a/code/modules/mob/living/carbon/death.dm
+++ b/code/modules/mob/living/carbon/death.dm
@@ -57,7 +57,7 @@
if(no_brain && istype(I, /obj/item/organ/brain))
qdel(I)
continue
- if(no_organs && !istype(I, /obj/item/organ/brain))
+ if(no_organs && !istype(I, (/obj/item/organ/brain || /obj/item/organ/corticalstack))) //Skyrat edit - Neural Laces - babyproofed
qdel(I)
continue
I.Remove(src)
diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm
index d502f7c0dd8..fab718785cd 100644
--- a/code/modules/vending/medical.dm
+++ b/code/modules/vending/medical.dm
@@ -25,7 +25,12 @@
/obj/item/pinpointer/crew = 2,
/obj/item/storage/firstaid/advanced = 2,
/obj/item/shears = 1,
- /obj/item/storage/organbox = 1)
+ /obj/item/storage/organbox = 1,
+ //SKYRAT EDIT BEGIN - ADDS CORTICAL STACKS AND REMOVERS TO NANOMEDS
+ /obj/item/autosurgeon/organ/corticalstack = 3,
+ /obj/item/stackremover = 5
+ //SKYRAT EDIT END
+ )
refill_canister = /obj/item/vending_refill/medical
default_price = PAYCHECK_EASY
extra_price = PAYCHECK_COMMAND
@@ -39,6 +44,11 @@
/obj/machinery/vending/medical/syndicate_access
name = "\improper SyndiMed Plus"
req_access = list(ACCESS_SYNDICATE)
+//SKYRAT EDIT - ADDS DELACERS AND AUTOSURGEONS TO SYNDIES
+ premium = list(/obj/item/autosurgeon/organ/syndicate/corticalstack = 20,
+ /obj/item/stackremover/syndicate = 20,
+ /obj/item/organ/corticalstack/syndicate = 40)
+//SKYRAT EDIT END
//Created out of a necessity to get these dumb chems out of the medical tools vendor.
/obj/machinery/vending/drugs
diff --git a/modular_skyrat/modules/neural-lacing/code/delacer.dm b/modular_skyrat/modules/neural-lacing/code/delacer.dm
new file mode 100644
index 00000000000..692b14872ce
--- /dev/null
+++ b/modular_skyrat/modules/neural-lacing/code/delacer.dm
@@ -0,0 +1,53 @@
+/obj/item/stackremover
+ name = "cortical stack remover"
+ desc = "A pair of tweezer-like knives, used to quickly extract a stack after death."
+ icon = 'icons/obj/surgery.dmi'
+ icon_state = "shears"
+ flags_1 = CONDUCT_1
+ item_flags = SURGICAL_TOOL
+ toolspeed = 1
+ force = 12
+ w_class = WEIGHT_CLASS_NORMAL
+ throwforce = 6
+ throw_speed = 2
+ throw_range = 5
+ custom_materials = list(/datum/material/iron=8000, /datum/material/titanium=6000)
+ attack_verb_continuous = list("shears", "snips")
+ attack_verb_simple = list("shear", "snip")
+ sharpness = SHARP_EDGED
+ custom_premium_price = PAYCHECK_MEDIUM * 14
+
+/obj/item/stackremover/syndicate
+ name = "blood-red cortical stack remover"
+ desc = "A pair of tweezer-like knives, used to quickly extract a stack after death. This one is shaped like a double-helix with blood-red blades. Are you a believer?"
+ toolspeed = 0.5
+ force = 27
+ armour_penetration = 40
+
+/datum/uplink_item/device_tools/corticalstackremover
+ name = "Blood-Red Cortical Stack Remover"
+ desc = "For those who wont be quiet... Are you a believer?"
+ item = /obj/item/stackremover/syndicate
+ cost = 15 //Support item. Dangerous
+
+
+/obj/item/stackremover/attack(mob/living/M, mob/living/user)
+ var/mob/living/carbon/patient = M
+ if(!iscarbon(M) || user.combat_mode)
+ return ..()
+ if(!patient.getorganslot("stack"))
+ return ..()
+ var/amputation_speed_mod = 1
+ var/obj/item/organ/corticalstack/CSTACK = patient.getorganslot("stack")
+ patient.visible_message(span_danger("[user] begins to secure [src] around [patient]'s neck."), span_userdanger("[user] begins to secure [src] around your neck"))
+ playsound(get_turf(patient), 'sound/items/ratchet.ogg', 20, TRUE)
+ if(patient.stat >= UNCONSCIOUS || HAS_TRAIT(patient, TRAIT_INCAPACITATED)) //if you're incapacitated (due to paralysis, a stun, being in staminacrit, etc.), critted, unconscious, or dead, it's much easier to properly line up a snip
+ amputation_speed_mod *= 0.5
+ if(patient.stat != DEAD && patient.jitteriness) //jittering will make it harder to secure the shears, even if you can't otherwise move
+ amputation_speed_mod *= 1.5 //15*0.5*1.5=11.25, so staminacritting someone who's jittering (from, say, a stun baton) won't give you enough time to snip their head off, but staminacritting someone who isn't jittering will
+
+ if(do_after(user, toolspeed * 5 SECONDS * amputation_speed_mod, target = patient))
+ playsound(get_turf(patient), 'sound/weapons/bladeslice.ogg', 250, TRUE)
+ CSTACK.Remove(patient)
+ CSTACK.forceMove(get_turf(patient))
+ user.visible_message(span_danger("[src] violently spears in, ripping out [patient]'s [CSTACK]."), span_notice("You rip out [patient]'s [CSTACK] with [src]."))
diff --git a/modular_skyrat/modules/neural-lacing/code/implanter.dm b/modular_skyrat/modules/neural-lacing/code/implanter.dm
new file mode 100644
index 00000000000..63c194d9fc3
--- /dev/null
+++ b/modular_skyrat/modules/neural-lacing/code/implanter.dm
@@ -0,0 +1,46 @@
+/obj/item/autosurgeon/organ/corticalstack
+ desc = "A single-use autosurgeon that contains a cortical stack. A screwdriver can be used to remove it, but implants can't be placed back in."
+ uses = 1
+ starting_organ = /obj/item/organ/corticalstack
+
+/obj/item/organ/corticalstack/syndicate
+ name = "Blood-Red Cortical Stack"
+ desc = "A strange, crystalline storage device containing 'DHF', digitised conciousness. This one has after-market modifications."
+ invasive = 0
+
+/obj/item/autosurgeon/organ/syndicate/corticalstack
+ desc = "A dual-use autosurgeon that contains a blood-red cortical stack. This implanter is modified to be usable twice."
+ uses = 2
+ starting_organ = /obj/item/organ/corticalstack/syndicate
+
+/datum/uplink_item/device_tools/corticalstack
+ name = "Blood-Red Cortical Stack"
+ desc = " A marvel of modern technology; the cortical stack, For when you really want to avoid that death. This one can be removed without killing the user; allowing 'double-sleeving'."
+ item = /obj/item/autosurgeon/organ/syndicate/corticalstack
+ cost = 5 //Support item
+
+/datum/supply_pack/goody/corticalstack
+ name = "Cortical Stack Crate"
+ desc = "Important employee's? Unable to afford losing them without the chance of revival? Back them up to these chips that go in the base of the neck. Warranty not included."
+ cost = CARGO_CRATE_VALUE * 6 //Expensive.
+ contains = list(/obj/item/autosurgeon/organ/corticalstack,/obj/item/autosurgeon/organ/corticalstack,/obj/item/autosurgeon/organ/corticalstack)
+ crate_name = "Cortical Stack Crate"
+
+/obj/item/storage/backpack/duffelbag/syndie/loadout/believer/PopulateContents()
+ new /obj/item/clothing/gloves/combat(src)
+ new /obj/item/clothing/shoes/combat(src)
+ new /obj/item/autosurgeon/organ/syndicate/corticalstack(src)
+ new /obj/item/stackremover/syndicate(src)
+ new /obj/item/book/granter/martial/cqc(src)
+ new /obj/item/clothing/under/syndicate/sniper(src)
+ new /obj/item/implanter/storage(src)
+ new /obj/item/autosurgeon/organ/syndicate/anti_stun(src)
+
+//Badass section down here
+/datum/uplink_item/loadout_skyrat/believer
+ name = "Believer Bundle"
+ desc = "Named after the infamous collector of souls - the believer bundle, a collection of items to ensure you get that payment on time..."
+ item = /obj/item/storage/backpack/duffelbag/syndie/loadout/believer
+ cost = 25
+
+
diff --git a/modular_skyrat/modules/neural-lacing/code/mobhandlers.dm b/modular_skyrat/modules/neural-lacing/code/mobhandlers.dm
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/modular_skyrat/modules/neural-lacing/code/mobhandlers.dm
@@ -0,0 +1 @@
+
diff --git a/modular_skyrat/modules/neural-lacing/code/resleever.dm b/modular_skyrat/modules/neural-lacing/code/resleever.dm
new file mode 100644
index 00000000000..9dd99ac2d64
--- /dev/null
+++ b/modular_skyrat/modules/neural-lacing/code/resleever.dm
@@ -0,0 +1,2 @@
+//TBA - THIS CODE FILE IS GOING TO BE USED ONCE I FINISH AN AUTOMATED RESLEEVER UI(NEVER)//
+
diff --git a/modular_skyrat/modules/neural-lacing/code/stack.dm b/modular_skyrat/modules/neural-lacing/code/stack.dm
new file mode 100644
index 00000000000..10658d1969f
--- /dev/null
+++ b/modular_skyrat/modules/neural-lacing/code/stack.dm
@@ -0,0 +1,65 @@
+/obj/item/organ/corticalstack
+ name = "Cortical Stack"
+ desc = "A strange, crystalline storage device containing 'DHF', digitised conciousness."
+ icon = 'modular_skyrat/modules/neural-lacing/icons/Neuralstack.dmi'
+ icon_state = "cortical-stack"
+ base_icon_state = "cortical-stack"
+ zone = BODY_ZONE_HEAD
+ slot = ORGAN_SLOT_STACK
+ status = ORGAN_ROBOTIC
+ organ_flags = ORGAN_SYNTHETIC
+
+ var/active = FALSE
+ var/invasive = 1 //WILL THIS KILL THE HOST IF REMOVED?
+ var/ownerckey
+ var/datum/mind/backup
+ var/prompting = FALSE // Are we waiting for a user prompt before backing them up to DHF?
+
+/obj/item/organ/corticalstack/examine()
+ . = ..()
+ if(!backup && !ownerckey && active) //SHOULD NOT HAPPEN
+ . += span_info("The integrity light upon the lace is dull, and black. The DHF is corrupted beyond repair.")
+ return
+ if((ownerckey && (backup || backup.get_ghost()))) //Incase something incredibly bad happens
+ if(organ_flags & ORGAN_FAILING)
+ . += span_info("The integrity light upon the neural lace is flashing a dull red, damaged. You may be able to restore it with some cable coils.")
+ else
+ . += span_info("The integrity light is showing a pale blue.")
+ else
+ . += span_info("This one is dark and dull, empty.")
+
+
+/obj/item/organ/corticalstack/Insert(mob/living/carbon/MSTACK)
+ . = ..()
+ MSTACK.visible_message(span_notice("[MSTACK] jerks violently as the cortical stack is inserted..."))
+ if(!active)
+ ownerckey = MSTACK.ckey
+ backup = MSTACK.mind
+ active = TRUE
+ to_chat(MSTACK, span_danger("You feel a sharp sting, and then a cool, almost numbing sensation spread over your form; your cortical stack coming online..."))
+ MSTACK.visible_message(span_notice("..Before ceasing, the stack letting out a ping; it has succeeded in integrating with their neural systems."))
+ else
+ if(MSTACK.mind && (backup || ownerckey) && !(MSTACK.mind == backup || MSTACK.ckey != ownerckey))
+ MSTACK.visible_message(span_warning("..Before ceasing, the stack letting out an alarm; unable to override the conciousness within."))
+ else
+ MSTACK.visible_message(span_notice("..Before ceasing, the stack letting out a ping; it has succeeded in integrating with their neural systems."))
+ to_chat(owner, span_notice("You feel a strange, ephermeal sensation come over you, as you re-awaken from your slumber..."))
+ REMOVE_TRAIT(MSTACK, TRAIT_DNR, src) //PREVENTS PEOPLE FROM GETTING DNR'D AFTER HAVING THEIR STACK REMOVED AND RELACED
+ MSTACK.ckey = ownerckey
+ MSTACK.mind = backup
+ MSTACK.SetSleeping(100)
+
+/obj/item/organ/corticalstack/Remove(mob/living/carbon/MSTACK)
+ . = ..()
+ if(invasive)
+ MSTACK.death()
+ MSTACK.visible_message(span_danger("[MSTACK] violently siezes as their stack is removed!"))
+ ADD_TRAIT(MSTACK, TRAIT_DNR, src)
+
+ else
+ MSTACK.visible_message(span_danger("[MSTACK] twinges in discomfort; although remains concious."))
+
+/obj/item/organ/corticalstack/Destroy()
+ . = ..()
+ ownerckey = null
+ backup = null
diff --git a/modular_skyrat/modules/neural-lacing/code/traits.dm b/modular_skyrat/modules/neural-lacing/code/traits.dm
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/modular_skyrat/modules/neural-lacing/code/traits.dm
@@ -0,0 +1 @@
+
diff --git a/modular_skyrat/modules/neural-lacing/defines/stackdefines.dm b/modular_skyrat/modules/neural-lacing/defines/stackdefines.dm
new file mode 100644
index 00000000000..b28b04f6431
--- /dev/null
+++ b/modular_skyrat/modules/neural-lacing/defines/stackdefines.dm
@@ -0,0 +1,3 @@
+
+
+
diff --git a/modular_skyrat/modules/neural-lacing/icons/Neuralstack.dmi b/modular_skyrat/modules/neural-lacing/icons/Neuralstack.dmi
new file mode 100644
index 00000000000..82f58ca5851
Binary files /dev/null and b/modular_skyrat/modules/neural-lacing/icons/Neuralstack.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 5b2d2c33c95..2bc22d4e4bc 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -4380,6 +4380,13 @@
#include "modular_skyrat\modules\nsfw\aphros\code\chemistry\aphro_keg.dm"
#include "modular_skyrat\modules\nsfw\aphros\code\chemistry\reagents\aphrodisiac_reagent.dm"
#include "modular_skyrat\modules\nsfw\aphros\code\chemistry\recipes\aphrodisiac.dm"
+#include "modular_skyrat\modules\neural-lacing\code\delacer.dm"
+#include "modular_skyrat\modules\neural-lacing\code\implanter.dm"
+#include "modular_skyrat\modules\neural-lacing\code\mobhandlers.dm"
+#include "modular_skyrat\modules\neural-lacing\code\resleever.dm"
+#include "modular_skyrat\modules\neural-lacing\code\stack.dm"
+#include "modular_skyrat\modules\neural-lacing\code\traits.dm"
+#include "modular_skyrat\modules\neural-lacing\defines\stackdefines.dm"
#include "modular_skyrat\modules\nsfw\misc\dancerpole.dm"
#include "modular_skyrat\modules\nsfw\shockcollar\code\shock_collar.dm"
#include "modular_skyrat\modules\nsfw\vendors\code\item_overrides.dm"