diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index a673d2b8d41..17b1c1c6d03 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -248,6 +248,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
// and emit less heat. Present on /mob or /datum/mind
#define TRAIT_SUPERMATTER_SOOTHER "supermatter_soother"
+// If present on a mob or mobmind, allows them to "suplex" an immovable rod
+// turning it into a glorified potted plant, and giving them an
+// achievement. Can also be used on rod-form wizards.
+// Normally only present in the mind of a Research Director.
+#define TRAIT_ROD_SUPLEX "rod_suplex"
+
//SKILLS
#define TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE "underwater_basketweaving"
#define TRAIT_WINE_TASTER "wine_taster"
diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm
index 44095de94d7..0599e9e01af 100644
--- a/code/modules/events/immovable_rod.dm
+++ b/code/modules/events/immovable_rod.dm
@@ -174,22 +174,30 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
smeared_mob.ex_act(EXPLODE_HEAVY)
/obj/effect/immovablerod/attack_hand(mob/living/user)
- if(ishuman(user))
- var/mob/living/carbon/human/U = user
- if(U.job in list("Research Director"))
- playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE)
- for(var/mob/M in urange(8, src))
- if(!M.stat)
- shake_camera(M, 2, 3)
- if(wizard)
- U.visible_message("[src] transforms into [wizard] as [U] suplexes them!", "As you grab [src], it suddenly turns into [wizard] as you suplex them!")
- to_chat(wizard, "You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!")
- wizard.Stun(60)
- wizard.apply_damage(25, BRUTE)
- qdel(src)
- else
- U.client.give_award(/datum/award/achievement/misc/feat_of_strength, U) //rod-form wizards would probably make this a lot easier to get so keep it to regular rods only
- U.visible_message("[U] suplexes [src] into the ground!", "You suplex [src] into the ground!")
- new /obj/structure/festivus/anchored(drop_location())
- new /obj/effect/anomaly/flux(drop_location())
- qdel(src)
+ . = ..()
+ if(.)
+ return
+
+ if(!(HAS_TRAIT(user, TRAIT_ROD_SUPLEX) || (user.mind && HAS_TRAIT(user.mind, TRAIT_ROD_SUPLEX))))
+ return
+
+ playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE)
+ for(var/mob/M in urange(8, src))
+ if(M.stat != CONSCIOUS)
+ continue
+ shake_camera(M, 2, 3)
+
+ if(wizard)
+ user.visible_message("[src] transforms into [wizard] as [user] suplexes them!", "As you grab [src], it suddenly turns into [wizard] as you suplex them!")
+ to_chat(wizard, "You're suddenly jolted out of rod-form as [user] somehow manages to grab you, slamming you into the ground!")
+ wizard.Stun(60)
+ wizard.apply_damage(25, BRUTE)
+ qdel(src)
+ else
+ user.client.give_award(/datum/award/achievement/misc/feat_of_strength, user) //rod-form wizards would probably make this a lot easier to get so keep it to regular rods only
+ user.visible_message("[user] suplexes [src] into the ground!", "You suplex [src] into the ground!")
+ new /obj/structure/festivus/anchored(drop_location())
+ new /obj/effect/anomaly/flux(drop_location())
+ qdel(src)
+
+ return TRUE
diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm
index c00760c4e44..824effb5e65 100644
--- a/code/modules/jobs/job_types/research_director.dm
+++ b/code/modules/jobs/job_types/research_director.dm
@@ -51,6 +51,8 @@
backpack = /obj/item/storage/backpack/science
satchel = /obj/item/storage/backpack/satchel/tox
+ skillchips = list(/obj/item/skillchip/job/research_director)
+
chameleon_extras = /obj/item/stamp/rd
/datum/outfit/job/rd/rig
diff --git a/code/modules/library/skill_learning/job_skillchips/research_director.dm b/code/modules/library/skill_learning/job_skillchips/research_director.dm
new file mode 100644
index 00000000000..6d6b11142f7
--- /dev/null
+++ b/code/modules/library/skill_learning/job_skillchips/research_director.dm
@@ -0,0 +1,9 @@
+/obj/item/skillchip/job/research_director
+ name = "R.D.S.P.L.X. skillchip"
+ desc = "Knowledge of how to solve the ancient conumdrum; what happens when an unstoppable force meets an immovable object."
+ auto_traits = list(TRAIT_ROD_SUPLEX)
+ skill_name = "True Strength"
+ skill_description = "The knowledge and strength to resolve the most ancient conumdrum; what happens when an unstoppable force meets an immovable object."
+ skill_icon = "dumbbell"
+ activate_message = "You realise if you apply the correct force, at the correct angle, it is possible to make the immovable permamently movable."
+ deactivate_message = "You forget how to permamently anchor a paradoxical object."
diff --git a/tgstation.dme b/tgstation.dme
index ddb272dcec9..784cee67f0a 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2195,6 +2195,7 @@
#include "code\modules\library\skill_learning\skill_station.dm"
#include "code\modules\library\skill_learning\skillchip.dm"
#include "code\modules\library\skill_learning\job_skillchips\_job.dm"
+#include "code\modules\library\skill_learning\job_skillchips\research_director.dm"
#include "code\modules\library\skill_learning\job_skillchips\roboticist.dm"
#include "code\modules\library\skill_learning\job_skillchips\station_engineer.dm"
#include "code\modules\library\skill_learning\job_skillchips\psychologist.dm"