diff --git a/code/game/objects/items/syndeka.dm b/code/game/objects/items/syndeka.dm
new file mode 100644
index 0000000000..7f5889e263
--- /dev/null
+++ b/code/game/objects/items/syndeka.dm
@@ -0,0 +1,43 @@
+/obj/item/borgroller
+ name = "collision autotargeter"
+ icon = 'icons/obj/device.dmi'
+ icon_state = "shield0"
+ flags_1 = CONDUCT_1
+ force = 5
+
+/obj/item/borgroller/afterattack(atom/target, mob/living/silicon/user, proximity_flag, click_parameters)// deploy time
+ if(istype(user))
+ if(istype(target, /obj))
+ user.visible_message("[user] whirrs and charges at [target]!", "You charge at [target]!")
+ walk_towards(user,target,0.1,10)
+ user.icon_state = "synd_hatin"
+ var/turf/T = get_turf(target)
+ var/safety = 10
+ while((get_turf(user) != T) && (safety > 0) && !(target.Adjacent(user)))
+ sleep(1)
+ safety--
+ if(target.Adjacent(user))
+ if(istype(target, /obj))
+ var/obj/O = target
+ user.visible_message("[user] collides with [O]!", "You collide with [O]!")
+ O.take_damage(20, BRUTE, "melee", 1, 100) //20 brute, melee, 100% armor pen. Pretty robust.
+ if(istype(target, /mob/living/carbon))
+ var/mob/living/carbon/C = target
+ user.visible_message("[user] smashes into [C]!", "You violently impact [C]!")
+ C.Knockdown(1, TRUE, FALSE, 0.1, 45) //45 stam, 0.1 hardstun and 1sec softstun
+ C.apply_damage_type(20, BRUTE)
+ user.icon_state = "synd_rollin"
+ walk(user,0)
+ return TRUE
+
+/mob/living/silicon/robot/syndeka/proc/toggle_movemode()
+ uneq_module(held_items[1])
+ uneq_module(held_items[2])
+ uneq_module(held_items[3])
+
+/obj/item/melee/borgclaw
+ name = "robot claws"
+ icon = 'icons/obj/items_cyborg.dmi'
+ icon_state = "2knife"
+ flags_1 = CONDUCT_1
+ force = 25
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 5b670aaa42..ccdbe81aa2 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -920,6 +920,22 @@
Help the operatives secure the disk at all costs!"
set_module = /obj/item/robot_module/syndicate_medical
+
+/mob/living/silicon/robot/modules/syndicate/syndeka
+ icon_state = "synd_rollin"
+ faction = list(ROLE_SYNDICATE)
+ bubble_icon = "syndibot"
+ req_access = list(ACCESS_SYNDICATE)
+ lawupdate = FALSE
+ scrambledcodes = TRUE // These are rogue borgs.
+ ionpulse = TRUE
+ playstyle_string = "You are a Syndicate rapid offense cyborg!
\
+ You are armed wit offensive tools and a selection of mobility aids to support you in your mission: help the operatives secure the nuclear authentication disk. \
+ You cannot move normally- you must directly roll or activate your rolling mode. Your operative pinpointer will find and locate fellow nuclear operatives. \
+ Help the operatives secure the disk at all costs!"
+ set_module = /obj/item/robot_module/syndeka
+
+
/mob/living/silicon/robot/proc/notify_ai(notifytype, oldname, newname)
if(!connected_ai)
return
@@ -1271,4 +1287,4 @@
sitting = 1
if("Belly up")
bellyup = 1
- update_icons()
\ No newline at end of file
+ update_icons()
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 7b95ced63f..95485d3e5d 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -615,3 +615,33 @@
max_energy = 30
recharge_rate = 1
name = "Marker Beacon Storage"
+
+/obj/item/robot_module/syndeka //syndicate droideka.
+ name = "Syndicate Rapid Offense"
+ basic_modules = list(
+ /obj/item/assembly/flash/cyborg,
+ /obj/item/melee/borgclaw,
+ /obj/item/gun/energy/twinlaser/cyborg,
+ /obj/item/borgroller,
+ /obj/item/card/emag,
+ /obj/item/crowbar/cyborg,
+ /obj/item/pinpointer/syndicate_cyborg)
+ ratvar_modules = list(
+ /obj/item/clockwork/slab/cyborg/security,
+ /obj/item/clockwork/weapon/ratvarian_spear)
+ cyborg_base_icon = "synd_rollin"
+ moduleselect_icon = "malf"
+ can_be_pushed = FALSE
+ hat_offset = 3
+
+/obj/item/robot_module/syndeka/rebuild_modules()
+ ..()
+ anchored = TRUE
+ var/mob/living/silicon/robot/Syndi = loc
+ Syndi.faction -= "silicon" //ai turrets
+
+/obj/item/robot_module/syndeka/remove_module(obj/item/I, delete_after)
+ ..()
+ anchored = FALSE
+ var/mob/living/silicon/robot/Syndi = loc
+ Syndi.faction += "silicon" //ai is your bff now!
diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm
index 0940144721..85a094f3c7 100644
--- a/code/modules/projectiles/ammunition/energy/laser.dm
+++ b/code/modules/projectiles/ammunition/energy/laser.dm
@@ -12,6 +12,13 @@
e_cost = 200
select_name = "kill"
+/obj/item/ammo_casing/energy/twin
+ projectile_type = /obj/item/projectile/beam/laser
+ e_cost = 50
+ select_name = "kill"
+ pellets = 2
+ variance = 10
+
/obj/item/ammo_casing/energy/laser/hos
e_cost = 100
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index bb97f9cf99..a21b2122b8 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -221,3 +221,21 @@
chambered.BB.damage *= 5
process_fire(target, user, TRUE, params)
+
+/obj/item/gun/energy/twinlaser
+ name = "twin-linked lasrifle"
+ can_charge = TRUE
+ icon_state = "LaserAK"
+ item_state = "laser"
+ desc = "Twin laser gun. It's two in one. With a linked trigger group. One could say it's... twin-linked."
+ charge_delay = 3
+ ammo_type = list(/obj/item/ammo_casing/energy/twin)
+
+/obj/item/gun/energy/twinlaser/cyborg
+ name = "laser arms"
+ icon_state = "lasercannon"
+ item_state = null
+ automatic = 1 //fun!
+ desc = "The Syndicate Rapid Assault cyborg has two arm-like extremeties. They normally have claws, but someone duct-taped laser guns to them as well."
+ use_cyborg_cell = TRUE
+ selfcharge = EGUN_NO_SELFCHARGE
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index 896a87ff3a..139e7b7af7 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/icons/obj/items_cyborg.dmi b/icons/obj/items_cyborg.dmi
index cddb57303d..2741d3a6a0 100644
Binary files a/icons/obj/items_cyborg.dmi and b/icons/obj/items_cyborg.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 3daee9d346..c85324d712 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -844,6 +844,7 @@
#include "code\game\objects\items\signs.dm"
#include "code\game\objects\items\singularityhammer.dm"
#include "code\game\objects\items\stunbaton.dm"
+#include "code\game\objects\items\syndeka.dm"
#include "code\game\objects\items\taster.dm"
#include "code\game\objects\items\teleportation.dm"
#include "code\game\objects\items\teleprod.dm"