diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 9c5f67ec601..06a13b68b82 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -203,6 +203,11 @@ SUBSYSTEM_DEF(ticker)
else
reboot_hud.maptext = MAPTEXT_PIXELLARI("
Server rebooting in:\n\ [DisplayTimeText(timeleft(SSticker.reboot_timer), 1)]")
+/datum/controller/subsystem/ticker/vv_edit_var(var_name, var_value)
+ if(var_name == NAMEOF(src, login_music))
+ set_lobby_music(var_value, override = TRUE)
+ return ..()
+
/// Checks if the round should be ending, called every ticker tick
/datum/controller/subsystem/ticker/proc/check_finished()
if(!setup_done)
@@ -887,6 +892,10 @@ SUBSYSTEM_DEF(ticker)
return
login_music = new_music
+ //we just overrode the song, let's update everyone.
+ if(override)
+ for(var/mob/dead/new_player/new_player as anything in GLOB.new_player_list)
+ new_player?.client.playtitlemusic()
#undef ROUND_START_MUSIC_LIST
#undef SS_TICKER_TRAIT
diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm
index a39855ce114..3e6d68cbffd 100644
--- a/code/modules/holiday/holidays.dm
+++ b/code/modules/holiday/holidays.dm
@@ -298,10 +298,6 @@ GLOBAL_LIST_INIT(holiday_mail, list())
. = ..()
SSjob.set_overflow_role(/datum/job/clown)
SSticker.set_lobby_music('sound/music/lobby_music/clown.ogg', override = TRUE)
- for(var/i in GLOB.new_player_list)
- var/mob/dead/new_player/P = i
- if(P.client)
- P.client.playtitlemusic()
/datum/holiday/april_fools/get_holiday_colors(atom/thing_to_color)
return "#[random_short_color()]"