diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm
index cfdaf605878bf..dd3ea01d59cd9 100644
--- a/code/datums/components/riding/riding.dm
+++ b/code/datums/components/riding/riding.dm
@@ -267,7 +267,7 @@
 /datum/component/riding/proc/driver_move(atom/movable/movable_parent, mob/living/user, direction)
 	SIGNAL_HANDLER
 	SHOULD_CALL_PARENT(TRUE)
-	movable_parent.set_glide_size(DELAY_TO_GLIDE_SIZE(vehicle_move_delay))
+	movable_parent.set_glide_size(DELAY_TO_GLIDE_SIZE(modified_move_delay(vehicle_move_delay))) // BANDASTATION EDIT - Vehicle speed
 
 /// So we can check all occupants when we bump a door to see if anyone has access
 /datum/component/riding/proc/vehicle_bump(atom/movable/movable_parent, obj/machinery/door/possible_bumped_door)
diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm
index 7a18e923afebe..4004a39f1bfbe 100644
--- a/code/datums/components/riding/riding_mob.dm
+++ b/code/datums/components/riding/riding_mob.dm
@@ -109,7 +109,7 @@
 	var/mob/living/living_parent = parent
 	step(living_parent, direction)
 	var/modified_move_cooldown = vehicle_move_cooldown
-	var/modified_move_delay = vehicle_move_delay
+	var/modified_move_delay = modified_move_delay(vehicle_move_delay)
 	if(ishuman(user) && HAS_TRAIT(user, TRAIT_ROUGHRIDER)) // YEEHAW!
 		var/mob/living/carbon/human/rough_rider = user
 		var/ride_benefit = null
diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm
index 3c55eae46688a..3da3b88b9f257 100644
--- a/code/datums/components/riding/riding_vehicle.dm
+++ b/code/datums/components/riding/riding_vehicle.dm
@@ -97,7 +97,7 @@
 		return
 
 	step(movable_parent, direction)
-	COOLDOWN_START(src, vehicle_move_cooldown, vehicle_move_delay)
+	COOLDOWN_START(src, vehicle_move_cooldown, modified_move_delay(vehicle_move_delay)) // BANDASTATION EDIT - Vehicle speed
 
 	if(QDELETED(src))
 		return
diff --git a/code/datums/elements/ridable.dm b/code/datums/elements/ridable.dm
index e68653b3d4a07..68a66d96a5bac 100644
--- a/code/datums/elements/ridable.dm
+++ b/code/datums/elements/ridable.dm
@@ -125,7 +125,7 @@
 		return
 	var/speed_limit = round(CONFIG_GET(number/movedelay/run_delay) * 0.85, 0.01)
 	var/datum/component/riding/theoretical_riding_component = riding_component_type
-	var/theoretical_speed = initial(theoretical_riding_component.vehicle_move_delay)
+	var/theoretical_speed = modified_move_delay(initial(theoretical_riding_component.vehicle_move_delay)) // BANDASTATION EDIT - Vehicle speed
 	if(theoretical_speed <= speed_limit) // i say speed but this is actually move delay, so you have to be ABOVE the speed limit to pass
 		to_chat(user, span_warning("[ridable_atom] can't be made any faster!"))
 		return
diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm
index 19bf0f20eb23a..8007e4db73a6c 100644
--- a/code/modules/vehicles/cars/car.dm
+++ b/code/modules/vehicles/cars/car.dm
@@ -91,7 +91,7 @@
 /obj/vehicle/sealed/car/vehicle_move(direction)
 	if(!COOLDOWN_FINISHED(src, cooldown_vehicle_move))
 		return FALSE
-	COOLDOWN_START(src, cooldown_vehicle_move, vehicle_move_delay)
+	COOLDOWN_START(src, cooldown_vehicle_move, modified_move_delay(vehicle_move_delay)) // BANDASTATION EDIT - Vehicle speed
 
 	if(COOLDOWN_FINISHED(src, enginesound_cooldown))
 		COOLDOWN_START(src, enginesound_cooldown, engine_sound_length)
diff --git a/code/modules/vehicles/mecha/mecha_movement.dm b/code/modules/vehicles/mecha/mecha_movement.dm
index dcd6f47c4fc05..03b103d5f0514 100644
--- a/code/modules/vehicles/mecha/mecha_movement.dm
+++ b/code/modules/vehicles/mecha/mecha_movement.dm
@@ -70,7 +70,7 @@
 /obj/vehicle/sealed/mecha/vehicle_move(direction, forcerotate = FALSE)
 	if(!COOLDOWN_FINISHED(src, cooldown_vehicle_move))
 		return FALSE
-	COOLDOWN_START(src, cooldown_vehicle_move, movedelay)
+	COOLDOWN_START(src, cooldown_vehicle_move, modified_move_delay(movedelay)) // BANDASTATION EDIT - Vehicle speed
 	if(completely_disabled)
 		return FALSE
 	if(!direction)
@@ -138,7 +138,7 @@
 		if(keyheld || !pivot_step) //If we pivot step, we don't return here so we don't just come to a stop
 			return TRUE
 
-	set_glide_size(DELAY_TO_GLIDE_SIZE(movedelay))
+	set_glide_size(DELAY_TO_GLIDE_SIZE(modified_move_delay(movedelay))) // BANDASTATION EDIT - Vehicle speed
 	//Otherwise just walk normally
 	. = try_step_multiz(direction)
 	if(phasing)
diff --git a/modular_bandastation/balance/code/balance_riding.dm b/modular_bandastation/balance/code/balance_riding.dm
index c63f14c45cb73..6d0d698fba47c 100644
--- a/modular_bandastation/balance/code/balance_riding.dm
+++ b/modular_bandastation/balance/code/balance_riding.dm
@@ -1,14 +1,10 @@
 #define TG_SPEED 1.5
 #define RP_SPEED CONFIG_GET(number/movedelay/run_delay)
 
-/datum/component/riding/Initialize(mob/living/riding_mob, force, buckle_mob_flags, potion_boost)
-	. = ..()
-	if(. == COMPONENT_INCOMPATIBLE)
-		return
-	if(vehicle_move_delay == 0)
-		vehicle_move_delay = round(max(RP_SPEED - TG_SPEED, 0) * TG_SPEED, 0.01)
-		return
-	vehicle_move_delay = round(RP_SPEED / TG_SPEED * vehicle_move_delay, 0.01)
+/proc/modified_move_delay(move_delay)
+	if(move_delay == 0)
+		return round(max(RP_SPEED - TG_SPEED, 0) * TG_SPEED, 0.01)
+	return round(RP_SPEED / TG_SPEED * move_delay, 0.01)
 
 #undef TG_SPEED
 #undef RP_SPEED