diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index fb61cacbc28..03f0fd1efbc 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -111,42 +111,6 @@
R.speed--
return 1
-
-/obj/item/borg/upgrade/tasercooler
- name = "robotic Rapid Taser Cooling Module"
- desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate."
- icon_state = "cyborg_upgrade3"
- require_module = 1
-
-
-/obj/item/borg/upgrade/tasercooler/action(var/mob/living/silicon/robot/R)
- if(..()) return 0
-
- if(!R.module || !(src.type in R.module.supported_upgrades))
- to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
- to_chat(usr, " There's no mounting point for the module!")
- return 0
-
- var/obj/item/weapon/gun/energy/taser/mounted/cyborg/T = locate() in R.module
- if(!T)
- T = locate() in R.module.contents
- if(!T)
- T = locate() in R.module.modules
- if(!T)
- to_chat(usr, "This robot has had its taser removed!")
- return 0
-
- if(T.recharge_time <= 2)
- to_chat(R, "Maximum cooling achieved for this hardpoint!")
- to_chat(usr, "There's no room for another cooling unit!")
- return 0
-
- else
- T.recharge_time = max(2 , T.recharge_time - 4)
-
- return 1
-
-
/obj/item/borg/upgrade/syndicate/
name = "illegal equipment module"
desc = "Unlocks the hidden, deadlier functions of a robot"
diff --git a/code/global.dm b/code/global.dm
index ffaefccffe6..d1f429e9c51 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -117,7 +117,6 @@ var/list/robot_module_types = list(
"Custodial",
"Service",
"Clerical",
- "Security",
"Research"
)
diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm
index a9e3bd6923f..2037aee6838 100644
--- a/code/modules/events/event_dynamic.dm
+++ b/code/modules/events/event_dynamic.dm
@@ -142,8 +142,6 @@ var/list/event_last_fired = list()
if(R.module)
if(istype(R.module, /obj/item/weapon/robot_module/engineering))
active_with_role["Engineer"]++
- else if(istype(R.module, /obj/item/weapon/robot_module/security))
- active_with_role["Security"]++
else if(istype(R.module, /obj/item/weapon/robot_module/medical))
active_with_role["Medical"]++
else if(istype(R.module, /obj/item/weapon/robot_module/research))
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index 0d47d9ab3d4..87c15b424de 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -185,24 +185,6 @@
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
m_type = 1
- if("law")
- if (istype(module,/obj/item/weapon/robot_module/security))
- message = "shows its legal authorization barcode."
-
- playsound(src.loc, 'sound/voice/biamthelaw.ogg', 50, 0)
- m_type = 2
- else
- to_chat(src, "You are not THE LAW, pal.")
-
- if("halt")
- if (istype(module,/obj/item/weapon/robot_module/security))
- message = "'s speakers skreech, \"Halt! Security!\"."
-
- playsound(src.loc, 'sound/voice/halt.ogg', 50, 0)
- m_type = 2
- else
- to_chat(src, "You are not security.")
-
if ("help")
to_chat(src, "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt")
else
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 80b8bfa9fe9..7b819c6bb53 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -411,14 +411,6 @@
if(!R)
return
if(!overclocked)
- //Give them some taser speed if they have a taser.
- var/obj/item/weapon/gun/energy/taser/mounted/cyborg/T = locate() in R.module
- if(!T)
- T = locate() in module.contents
- if(!T)
- T = locate() in module.modules
- if(T)
- T.recharge_time = max(2 , T.recharge_time - 4)
//Give them the hacked item if they don't have it.
if(!emagged)
R.emagged = 1
@@ -430,14 +422,6 @@
if(!cell_emp_mult < 2)
cell_emp_mult = 1
if(overclocked)
- //Reduce their free taser speed.
- var/obj/item/weapon/gun/energy/taser/mounted/cyborg/T = locate() in R.module
- if(!T)
- T = locate() in module.contents
- if(!T)
- T = locate() in module.modules
- if(T)
- T.recharge_time = max(2 , T.recharge_time + 4)
//Show them on the robotics console.
if(scrambledcodes)
scrambledcodes = 0
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index d61553d37c2..f1e0895a736 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -5,7 +5,6 @@ var/global/list/robot_modules = list(
"Mining" = /obj/item/weapon/robot_module/miner,
"Rescue" = /obj/item/weapon/robot_module/medical/rescue,
"Medical" = /obj/item/weapon/robot_module/medical/general,
- "Security" = /obj/item/weapon/robot_module/security/general,
"Combat" = /obj/item/weapon/robot_module/combat,
"Engineering" = /obj/item/weapon/robot_module/engineering/general,
"Construction" = /obj/item/weapon/robot_module/engineering/construction,
@@ -501,52 +500,6 @@ var/global/list/robot_modules = list(
FTD.synths = list(plasteel)
src.modules += FTD
-/obj/item/weapon/robot_module/security
- name = "security robot module"
- channels = list("Security" = 1)
- networks = list(NETWORK_SECURITY)
- subsystems = list(/mob/living/silicon/proc/subsystem_crew_monitor)
- can_be_pushed = 0
- supported_upgrades = list(/obj/item/borg/upgrade/tasercooler,/obj/item/robot_parts/robot_component/jetpack)
-
-/obj/item/weapon/robot_module/security/general
- sprites = list(
- "Basic" = "robotsecy",
- "Sleek" = "sleeksecurity",
- "Black Knight" = "securityrobot",
- "Bloodhound" = "bloodhound",
- "Bloodhound - Treaded" = "treadhound",
- "Drone" = "drone-sec",
- "Classic" = "secborg",
- "Spider" = "spidersec",
- "Heavy" = "heavysec"
- )
-
-/obj/item/weapon/robot_module/security/general/New()
- ..()
- src.modules += new /obj/item/weapon/crowbar(src)
- src.modules += new /obj/item/device/flash(src)
- src.modules += new /obj/item/borg/sight/hud/sec(src)
- src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
- src.modules += new /obj/item/weapon/melee/baton/robot(src)
- src.modules += new /obj/item/weapon/gun/energy/taser/mounted/cyborg(src)
- src.modules += new /obj/item/taperoll/police(src)
- src.modules += new /obj/item/device/holowarrant(src)
- src.modules += new /obj/item/weapon/book/manual/security_space_law(src) // book of security space law
- src.emag = new /obj/item/weapon/gun/energy/laser/mounted(src)
-
-/obj/item/weapon/robot_module/security/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
- ..()
- var/obj/item/weapon/gun/energy/taser/mounted/cyborg/T = locate() in src.modules
- if(T.power_supply.charge < T.power_supply.maxcharge)
- T.power_supply.give(T.charge_cost * amount)
- T.update_icon()
- else
- T.charge_tick = 0
- var/obj/item/weapon/melee/baton/robot/B = locate() in src.modules
- if(B && B.bcell)
- B.bcell.give(amount)
-
/obj/item/weapon/robot_module/janitor
name = "custodial robot module"
channels = list("Service" = 1)
@@ -793,6 +746,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/weapon/gun/launcher/grenade/cyborg(src)
src.modules += new /obj/item/weapon/crowbar(src)
src.modules += new /obj/item/weapon/robot_emag(src)
+ src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
supported_upgrades = list(/obj/item/robot_parts/robot_component/jetpack)
return
@@ -814,6 +768,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/weapon/melee/hammer/powered(src)
src.modules += new /obj/item/borg/combat/shield(src)
src.modules += new /obj/item/borg/combat/mobility(src)
+ src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
src.modules += new /obj/item/weapon/crowbar(src)
src.emag = new /obj/item/weapon/gun/energy/lasercannon/mounted(src)
@@ -1102,8 +1057,6 @@ var/global/list/robot_modules = list(
// Security
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
src.modules += new /obj/item/weapon/melee/baton/robot(src)
- src.modules += new /obj/item/weapon/gun/energy/taser/mounted/cyborg/overclocked(src)
- src.modules += new /obj/item/weapon/gun/energy/laser/mounted/cyborg/overclocked(src)
src.modules += new /obj/item/weapon/melee/hammer/powered(src)
src.modules += new /obj/item/weapon/gun/energy/lasercannon/mounted/cyborg/overclocked(src)
src.modules += new /obj/item/borg/combat/shield(src)
@@ -1172,12 +1125,6 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/bluespace/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
..()
- var/obj/item/weapon/gun/energy/taser/mounted/cyborg/T = locate() in src.modules
- if(T.power_supply.charge < T.power_supply.maxcharge)
- T.power_supply.give(T.charge_cost * amount)
- T.update_icon()
- else
- T.charge_tick = 0
var/obj/item/weapon/melee/baton/robot/B = locate() in src.modules
if(B && B.bcell)
B.bcell.give(amount)
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 1cc8abc0556..98af3292966 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -17,15 +17,6 @@
use_external_power = 1
can_turret = 0
-/obj/item/weapon/gun/energy/taser/mounted/cyborg
- name = "taser gun"
- max_shots = 6
- recharge_time = 10 //Time it takes for shots to recharge (in ticks)
-
-/obj/item/weapon/gun/energy/taser/mounted/cyborg/overclocked
- max_shots = 20
- recharge_time = 1
-
/obj/item/weapon/gun/energy/stunrevolver
name = "stun revolver"
desc = "A high-tech revolver that fires rechargeable stun bolts."
diff --git a/code/modules/research/designs/mechfab_designs.dm b/code/modules/research/designs/mechfab_designs.dm
index acd5e100133..c740f9b7db1 100644
--- a/code/modules/research/designs/mechfab_designs.dm
+++ b/code/modules/research/designs/mechfab_designs.dm
@@ -417,13 +417,6 @@
materials = list(DEFAULT_WALL_MATERIAL = 80000, "glass" = 6000, "gold" = 5000)
build_path = /obj/item/borg/upgrade/vtec
-/datum/design/item/robot_upgrade/tasercooler
- name = "Rapid taser cooling module"
- desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate."
- id = "borg_taser_module"
- materials = list(DEFAULT_WALL_MATERIAL = 80000, "glass" = 6000, "gold" = 2000, "diamond" = 500)
- build_path = /obj/item/borg/upgrade/tasercooler
-
/datum/design/item/robot_upgrade/jetpack
name = "Jetpack module"
desc = "A carbon dioxide jetpack suitable for low-gravity mining operations."
diff --git a/html/changelogs/paradoxspace-notthelaw.yml b/html/changelogs/paradoxspace-notthelaw.yml
new file mode 100644
index 00000000000..5f882a83462
--- /dev/null
+++ b/html/changelogs/paradoxspace-notthelaw.yml
@@ -0,0 +1,42 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: ParadoxSpace
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscdel: "The security cyborg module has been removed."
+ - rscadd: "Combat and Syndicate modules now have handcuffs, for non-lethal capturing."