diff --git a/code/game/mecha/equipment/tools/running_board.dm b/code/game/mecha/equipment/tools/running_board.dm
new file mode 100644
index 0000000000..aa2748c7a7
--- /dev/null
+++ b/code/game/mecha/equipment/tools/running_board.dm
@@ -0,0 +1,17 @@
+// concept borrowed from vgstation-coders/vgstation13#26316 on GitHub
+/obj/item/mecha_parts/mecha_equipment/runningboard
+ name = "hacked powered exosuit running board"
+ desc = "A running board with a power-lifter attachment, to quickly catapult exosuit pilots into the cockpit. Fits any exosuit."
+ icon_state = "mecha_runningboard"
+ origin_tech = list(TECH_MATERIAL = 6)
+ equip_type = EQUIP_HULL
+
+/obj/item/mecha_parts/mecha_equipment/runningboard/limited
+ name = "powered exosuit running board"
+ desc = "A running board with a power-lifter attachment, to quickly catapult exosuit pilots into the cockpit. Only fits to working exosuits."
+
+/obj/item/mecha_parts/mecha_equipment/runningboard/limited/can_attach(obj/mecha/M)
+ if(istype(M, /obj/mecha/working)) // is this a ripley?
+ . = ..()
+ else
+ return FALSE
\ No newline at end of file
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index e7e0d3b7dd..8e7480c6a2 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -1804,6 +1804,14 @@
set src in oview(1)
move_inside()
+//returns an equipment object if we have one of that type, useful since is_type_in_list won't return the object
+//since is_type_in_list uses caching, this is a slower operation, so only use it if needed
+/obj/mecha/proc/get_equipment(var/equip_type)
+ for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
+ if(istype(ME,equip_type))
+ return ME
+ return null
+
/obj/mecha/proc/move_inside()
if (usr.stat || !ishuman(usr))
return
@@ -1844,18 +1852,22 @@
return
// to_chat(usr, "You start climbing into [src.name]")
-
- visible_message("\The [usr] starts to climb into [src.name]")
-
- if(enter_after(40,usr))
- if(!src.occupant)
- moved_inside(usr)
- if(ishuman(occupant)) //Aeiou
- GrantActions(occupant, 1)
- else if(src.occupant!=usr)
- to_chat(usr, "[src.occupant] was faster. Try better next time, loser.")
+ if(get_equipment(/obj/item/mecha_parts/mecha_equipment/runningboard))
+ visible_message("\The [usr] is instantly lifted into [src.name] by the running board!")
+ moved_inside(usr)
+ if(ishuman(occupant))
+ GrantActions(occupant, 1)
else
- to_chat(usr, "You stop entering the exosuit.")
+ visible_message("\The [usr] starts to climb into [src.name]")
+ if(enter_after(40,usr))
+ if(!src.occupant)
+ moved_inside(usr)
+ if(ishuman(occupant)) //Aeiou
+ GrantActions(occupant, 1)
+ else if(src.occupant!=usr)
+ to_chat(usr, "[src.occupant] was faster. Try better next time, loser.")
+ else
+ to_chat(usr, "You stop entering the exosuit.")
return
/obj/mecha/proc/moved_inside(var/mob/living/carbon/human/H as mob)
diff --git a/code/modules/research/mechfab_designs.dm b/code/modules/research/mechfab_designs.dm
index d3fb8179bf..53a0c98ddf 100644
--- a/code/modules/research/mechfab_designs.dm
+++ b/code/modules/research/mechfab_designs.dm
@@ -679,6 +679,14 @@
materials = list(DEFAULT_WALL_MATERIAL = 5000, "osmium" = 3000, "silver" = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/orescanner/advanced
+/datum/design/item/mecha/runningboard
+ name = "Powered Exosuit Running Board"
+ desc = "A running board with a power-lifter attachment, to quickly catapult exosuit pilots into the cockpit. Only fits to working exosuits."
+ id = "mech_runningboard"
+ req_tech = list(TECH_MATERIAL = 6)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ build_path = /obj/item/mecha_parts/mecha_equipment/runningboard/limited
+
/datum/design/item/mecha/powerwrench
name = "hydraulic wrench"
desc = "A large, hydraulic wrench."
diff --git a/icons/mecha/mecha_equipment.dmi b/icons/mecha/mecha_equipment.dmi
index 1fcdff0f72..eb5944366a 100644
Binary files a/icons/mecha/mecha_equipment.dmi and b/icons/mecha/mecha_equipment.dmi differ
diff --git a/vorestation.dme b/vorestation.dme
index a90a780389..1f71e9e7e0 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1027,6 +1027,7 @@
#include "code\game\mecha\equipment\tools\powertool.dm"
#include "code\game\mecha\equipment\tools\rcd.dm"
#include "code\game\mecha\equipment\tools\repair_droid.dm"
+#include "code\game\mecha\equipment\tools\running_board.dm"
#include "code\game\mecha\equipment\tools\shield.dm"
#include "code\game\mecha\equipment\tools\shield_omni.dm"
#include "code\game\mecha\equipment\tools\sleeper.dm"