diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm
index c91f5921a54..00aae01d07b 100644
--- a/code/__HELPERS/time.dm
+++ b/code/__HELPERS/time.dm
@@ -33,17 +33,17 @@
/proc/gameTimestamp(format = "hh:mm:ss", wtime=null)
if(!wtime)
wtime = world.time
- return time2text(wtime - timezoneOffset, format)
+ return time2text(wtime - GLOB.timezoneOffset, format)
/* This is used for displaying the "station time" equivelent of a world.time value
Calling it with no args will give you the current time, but you can specify a world.time-based value as an argument
- You can use this, for example, to do "This will expire at [station_time_at(world.time + 500)]" to display a "station time" expiration date
which is much more useful for a player)*/
-/proc/station_time(time=world.time)
- return ((((time - round_start_time)) + GLOB.gametime_offset) % 864000) - timezoneOffset
+/proc/station_time(time=world.time, display_only=FALSE)
+ return ((((time - round_start_time)) + GLOB.gametime_offset) % 864000) - (display_only ? GLOB.timezoneOffset : 0)
/proc/station_time_timestamp(format = "hh:mm:ss", time=world.time)
- return time2text(station_time(time), format)
+ return time2text(station_time(time, TRUE), format)
/* Returns 1 if it is the selected month and day */
proc/isDay(var/month, var/day)
diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm
index cb0fdba6916..46c10ed351b 100644
--- a/code/_globalvars/misc.dm
+++ b/code/_globalvars/misc.dm
@@ -74,7 +74,7 @@ var/score_dmgestkey = null
var/TAB = " "
-var/timezoneOffset = 0 // The difference betwen midnight (of the host computer) and 0 world.ticks.
+GLOBAL_VAR_INIT(timezoneOffset, 0) // The difference betwen midnight (of the host computer) and 0 world.ticks.
// For FTP requests. (i.e. downloading runtime logs.)
// However it'd be ok to use for accessing attack logs and such too, which are even laggier.
diff --git a/code/controllers/subsystem/nightshift.dm b/code/controllers/subsystem/nightshift.dm
index 7c7b017868b..b24a1d45e59 100644
--- a/code/controllers/subsystem/nightshift.dm
+++ b/code/controllers/subsystem/nightshift.dm
@@ -48,7 +48,7 @@ SUBSYSTEM_DEF(nightshift)
/datum/controller/subsystem/nightshift/proc/update_nightshift(active, announce = TRUE)
nightshift_active = active
if(announce)
- if (active)
+ if(active)
announce("Good evening, crew. To reduce power consumption and stimulate the circadian rhythms of some species, all of the lights aboard the station have been dimmed for the night.")
else
announce("Good morning, crew. As it is now day time, all of the lights aboard the station have been restored to their former brightness.")
diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm
index 9692eac6713..21731cc8b7a 100644
--- a/code/modules/admin/secrets.dm
+++ b/code/modules/admin/secrets.dm
@@ -23,6 +23,7 @@
Show Game Mode
Show Crew Manifest
Show current traitors and objectives
+ Set Night Shift Mode
Bombs
Bombing List
Remove all bombs currently in existence
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index d92b9088d4a..17b6a2b9dcd 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -3023,6 +3023,24 @@
dat += "