diff --git a/code/datums/action.dm b/code/datums/action.dm
index 11556253e06..395de2dfc87 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -415,3 +415,9 @@
name = "Summon Stick Minions"
desc = "Allows you to summon faithful stickmen allies to aide you in battle."
button_icon_state = "art_summon"
+
+//surf_ss13
+/datum/action/item_action/bhop
+ name = "Activate Jump Boots"
+ desc = "Activates the jump boot's internal propulsion system, allowing the user to dash over 4-wide gaps."
+ button_icon_state = "jetboot"
\ No newline at end of file
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 5b36a0c22fd..01263250ce5 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -161,3 +161,36 @@
icon_state = "griffinboots"
item_state = "griffinboots"
pockets = /obj/item/weapon/storage/internal/pocket/shoes
+
+/obj/item/clothing/shoes/bhop
+ name = "jump boots"
+ desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement."
+ icon_state = "jetboots"
+ item_state = "jackboots"
+ item_color = "hosred"
+ burn_state = FIRE_PROOF
+ actions_types = list(/datum/action/item_action/bhop)
+ var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles
+ var/recharging_rate = 60 //default 6 seconds between each dash
+ var/recharging_time = 0 //time until next dash
+ var/jumping = FALSE //are we mid-jump?
+
+/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, actiontype)
+ if(!isliving(usr))
+ return
+
+ if(jumping)
+ return
+
+ if(recharging_time > world.time)
+ usr << "The boot's internal propulsion needs to recharge still!"
+ return
+
+ var/atom/target = get_edge_target_turf(usr, usr.dir) //gets the user's direction
+
+ jumping = TRUE
+ playsound(src.loc, 'sound/effects/stealthoff.ogg', 50, 1, 1)
+ usr.visible_message("[usr] dashes foward into the air!")
+ usr.throw_at(target,jumpdistance,1, spin=0, diagonals_first = 1)
+ jumping = FALSE
+ recharging_time = world.time + recharging_rate
\ No newline at end of file
diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm
index 85924dd4a0f..a2e76222198 100644
--- a/code/modules/mining/equipment.dm
+++ b/code/modules/mining/equipment.dm
@@ -459,4 +459,4 @@
C.preserved()
user << "You inject the [M] with the stabilizer. It will no longer go inert."
- qdel(src)
+ qdel(src)
\ No newline at end of file
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 9eb0589ee6b..7bfeefc707a 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -45,6 +45,7 @@
new /datum/data/mining_equipment("Drone Health Upgrade",/obj/item/device/mine_bot_ugprade/health, 400),
new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600),
new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000),
+ new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500),
)
/datum/data/mining_equipment/
diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi
index 6455904fb29..fe624c95016 100644
Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ
diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi
index a8fe8c5ec68..53beecf4b41 100644
Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ