diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm
index 5e11a78888d..be071fc80ad 100644
--- a/code/game/gamemodes/nuclear/nuclear_challenge.dm
+++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm
@@ -55,6 +55,7 @@
for(var/obj/machinery/computer/shuttle/syndicate/S in GLOB.machines)
S.challenge = TRUE
+ S.challenge_time = world.time
// No. of player - Min. Player to dec, divided by player per bonus, then multipled by TC per bonus. Rounded.
total_tc = CHALLENGE_TELECRYSTALS + round((((GLOB.player_list.len - CHALLENGE_MIN_PLAYERS)/CHALLENGE_SCALE_PLAYER) * CHALLENGE_SCALE_BONUS))
diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm
index 7f5bf470686..87a03e2e8e9 100644
--- a/code/modules/shuttle/syndicate.dm
+++ b/code/modules/shuttle/syndicate.dm
@@ -12,6 +12,7 @@
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags = NODECONSTRUCT
var/challenge = FALSE
+ var/challenge_time = 0 //When was war declared?
/obj/machinery/computer/shuttle/syndicate/recall
name = "syndicate shuttle recall terminal"
@@ -19,9 +20,10 @@
possible_destinations = "syndicate_away"
/obj/machinery/computer/shuttle/syndicate/can_call_shuttle(user, action)
+ var/time_to_go = max(SYNDICATE_CHALLENGE_TIMER, (challenge_time + 10 MINUTES))
if(action == "move")
- if(challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
- to_chat(user, "You've issued a combat challenge to the station! You've got to give them at least [round(((SYNDICATE_CHALLENGE_TIMER - world.time) / 10) / 60)] more minutes to allow them to prepare.")
+ if(challenge && world.time < time_to_go)
+ to_chat(user, "You've issued a combat challenge to the station! You've got to give them at least [round(((time_to_go - world.time) / 10) / 60)] more minutes to allow them to prepare.")
return FALSE
return TRUE