diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index db412292..6606a846 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -225,6 +225,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/auto_fit_viewport = TRUE
var/uplink_spawn_loc = UPLINK_PDA
+
+ var/sprint_spacebar = FALSE
+ var/sprint_toggle = FALSE
var/list/exp = list()
var/list/menuoptions
@@ -1014,6 +1017,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "
"
dat += "Ambient Occlusion: [ambientocclusion ? "Enabled" : "Disabled"]
"
dat += "Fit Viewport: [auto_fit_viewport ? "Auto" : "Manual"]
"
+ dat += "Sprint Key: [sprint_spacebar ? "Space" : "Shift"]
"
+ dat += "Toggle Sprint: [sprint_toggle ? "Enabled" : "Disabled"]
"
if (CONFIG_GET(flag/maprotation) && CONFIG_GET(flag/tgstyle_maprotation))
var/p_map = preferred_map
@@ -2521,6 +2526,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(auto_fit_viewport && parent)
parent.fit_viewport()
+ if("sprint_key")
+ sprint_spacebar = !sprint_spacebar
+
+ if("sprint_toggle")
+ sprint_toggle = !sprint_toggle
+
if("save")
save_preferences()
save_character()
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 1de8ccf0..76c98014 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -116,6 +116,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["parallax"] >> parallax
S["ambientocclusion"] >> ambientocclusion
S["auto_fit_viewport"] >> auto_fit_viewport
+ S["sprint_spacebar"] >> sprint_spacebar
+ S["sprint_toggle"] >> sprint_toggle
S["menuoptions"] >> menuoptions
S["enable_tips"] >> enable_tips
S["tip_delay"] >> tip_delay
@@ -161,6 +163,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, null)
ambientocclusion = sanitize_integer(ambientocclusion, 0, 1, initial(ambientocclusion))
auto_fit_viewport = sanitize_integer(auto_fit_viewport, 0, 1, initial(auto_fit_viewport))
+ sprint_spacebar = sanitize_integer(sprint_spacebar, 0, 1, initial(sprint_spacebar))
+ sprint_toggle = sanitize_integer(sprint_toggle, 0, 1, initial(sprint_toggle))
ghost_form = sanitize_inlist(ghost_form, GLOB.ghost_forms, initial(ghost_form))
ghost_orbit = sanitize_inlist(ghost_orbit, GLOB.ghost_orbits, initial(ghost_orbit))
ghost_accs = sanitize_inlist(ghost_accs, GLOB.ghost_accs_options, GHOST_ACCS_DEFAULT_OPTION)
@@ -226,6 +230,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["parallax"], parallax)
WRITE_FILE(S["ambientocclusion"], ambientocclusion)
WRITE_FILE(S["auto_fit_viewport"], auto_fit_viewport)
+ WRITE_FILE(S["sprint_spacebar"], sprint_spacebar)
+ WRITE_FILE(S["sprint_toggle"], sprint_toggle)
WRITE_FILE(S["menuoptions"], menuoptions)
WRITE_FILE(S["enable_tips"], enable_tips)
WRITE_FILE(S["tip_delay"], tip_delay)
diff --git a/code/modules/keybindings/bindings_carbon.dm b/code/modules/keybindings/bindings_carbon.dm
index d17f10e9..eef170ce 100644
--- a/code/modules/keybindings/bindings_carbon.dm
+++ b/code/modules/keybindings/bindings_carbon.dm
@@ -3,16 +3,7 @@
if("R", "Southwest") // Southwest is End
toggle_throw_mode()
return
- if("1")
- a_intent_change("help")
- return
- if("2")
- a_intent_change("disarm")
- return
- if("3")
- a_intent_change("grab")
- return
- if("4")
- a_intent_change("harm")
+ if("C")
+ toggle_combat_mode()
return
return ..()
\ No newline at end of file
diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm
index 5d02d9ae..ed033935 100644
--- a/code/modules/keybindings/bindings_human.dm
+++ b/code/modules/keybindings/bindings_human.dm
@@ -56,4 +56,25 @@
return
stored.attack_hand(src) // take out thing from backpack
return
- return ..()
\ No newline at end of file
+ switch(_key)
+ if("Shift")
+ if(!user.prefs.sprint_spacebar)
+ user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE) //Yes, this looks hacky. Yes, this works.
+ return
+ if("Space")
+ if(user.prefs.sprint_spacebar)
+ user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE)
+ return
+ return ..()
+
+/mob/living/carbon/human/key_up(_key, client/user)
+ switch(_key)
+ if("Shift")
+ if(!user.prefs.sprint_spacebar && !user.prefs.sprint_toggle)
+ sprint_hotkey(FALSE)
+ return
+ if("Space")
+ if(user.prefs.sprint_spacebar && !user.prefs.sprint_toggle)
+ sprint_hotkey(FALSE)
+ return
+ return ..()
diff --git a/code/modules/keybindings/bindings_living.dm b/code/modules/keybindings/bindings_living.dm
index 7ae8b996..0a9a7ef8 100644
--- a/code/modules/keybindings/bindings_living.dm
+++ b/code/modules/keybindings/bindings_living.dm
@@ -3,5 +3,22 @@
if("B")
resist()
return
+ if("1")
+ if(possible_a_intents)
+ a_intent_change(INTENT_HELP)
+ return
+ if("2")
+ if(possible_a_intents)
+ a_intent_change(INTENT_DISARM)
+ return
+ if("3")
+ if(possible_a_intents)
+ a_intent_change(INTENT_GRAB)
+ return
+ if("4")
+ if(possible_a_intents)
+ a_intent_change(INTENT_HARM)
+ return
+
return ..()
diff --git a/code/modules/keybindings/bindings_robot.dm b/code/modules/keybindings/bindings_robot.dm
index 2354f33c..29fb36fa 100644
--- a/code/modules/keybindings/bindings_robot.dm
+++ b/code/modules/keybindings/bindings_robot.dm
@@ -9,4 +9,14 @@
if("Q")
uneq_active()
return
- return ..()
\ No newline at end of file
+ if("Shift")
+ sprint_hotkey(TRUE)
+ return
+ return ..()
+
+/mob/living/silicon/robot/key_up(_key, client/user)
+ switch(_key)
+ if("Shift")
+ sprint_hotkey(FALSE)
+ return
+ return ..()
diff --git a/modular_citadel/code/modules/keybindings/bindings_carbon.dm b/modular_citadel/code/modules/keybindings/bindings_carbon.dm
deleted file mode 100644
index d49cbcf4..00000000
--- a/modular_citadel/code/modules/keybindings/bindings_carbon.dm
+++ /dev/null
@@ -1,6 +0,0 @@
-/mob/living/carbon/key_down(_key, client/user)
- switch(_key)
- if("C")
- toggle_combat_mode()
- return
- return ..()
diff --git a/modular_citadel/code/modules/keybindings/bindings_human.dm b/modular_citadel/code/modules/keybindings/bindings_human.dm
deleted file mode 100644
index ffe88bd4..00000000
--- a/modular_citadel/code/modules/keybindings/bindings_human.dm
+++ /dev/null
@@ -1,13 +0,0 @@
-/mob/living/carbon/human/key_down(_key, client/user)
- switch(_key)
- if("Shift")
- sprint_hotkey(TRUE)
- return
- return ..()
-
-/mob/living/carbon/human/key_up(_key, client/user)
- switch(_key)
- if("Shift")
- sprint_hotkey(FALSE)
- return
- return ..()
diff --git a/modular_citadel/code/modules/keybindings/bindings_robot.dm b/modular_citadel/code/modules/keybindings/bindings_robot.dm
deleted file mode 100644
index d3b6248f..00000000
--- a/modular_citadel/code/modules/keybindings/bindings_robot.dm
+++ /dev/null
@@ -1,13 +0,0 @@
-/mob/living/silicon/robot/key_down(_key, client/user)
- switch(_key)
- if("Shift")
- sprint_hotkey(TRUE)
- return
- return ..()
-
-/mob/living/silicon/robot/key_up(_key, client/user)
- switch(_key)
- if("Shift")
- sprint_hotkey(FALSE)
- return
- return ..()
diff --git a/tgstation.dme b/tgstation.dme
index 0c4aed70..f53f9053 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3192,9 +3192,6 @@
#include "modular_citadel\code\modules\food_and_drinks\snacks\meat.dm"
#include "modular_citadel\code\modules\integrated_electronics\subtypes\manipulation.dm"
#include "modular_citadel\code\modules\jobs\dresscode_values.dm"
-#include "modular_citadel\code\modules\keybindings\bindings_carbon.dm"
-#include "modular_citadel\code\modules\keybindings\bindings_human.dm"
-#include "modular_citadel\code\modules\keybindings\bindings_robot.dm"
#include "modular_citadel\code\modules\mentor\follow.dm"
#include "modular_citadel\code\modules\mentor\mentor.dm"
#include "modular_citadel\code\modules\mentor\mentor_memo.dm"