diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm
index 886dae0247a..59aae11e11a 100644
--- a/code/game/gamemodes/nuclear/nuclear_challenge.dm
+++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm
@@ -61,6 +61,5 @@
return 1
#undef CHALLENGE_TELECRYSTALS
-#undef CHALLENGE_TIME_LIMIT
#undef CHALLENGE_MIN_PLAYERS
#undef CHALLENGE_SHUTTLE_DELAY
diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm
new file mode 100644
index 00000000000..59c26499ac1
--- /dev/null
+++ b/code/game/objects/items/charter.dm
@@ -0,0 +1,24 @@
+/obj/item/station_charter
+ name = "station charter"
+ icon = 'icons/obj/wizard.dmi'
+ icon_state = "scroll2"
+ desc = "An official document entrusting the governance of the station and surrounding space to the Captain. "
+ var/used = FALSE
+
+/obj/item/station_charter/attack_self(mob/living/user)
+ if(used)
+ user << "The station has already been named."
+ return
+ used = TRUE
+ if(world.time > CHALLENGE_TIME_LIMIT) //5 minutes
+ user << "The crew has already settled into the shift. It probably wouldn't be good to rename the station right now."
+ return
+
+ var/new_name = input(user, "What do you want to name [station_name()]? Keep in mind particularly terrible names may attract the attention of your employers.") as text|null
+ if(new_name)
+ world.name = new_name
+ station_name = new_name
+ minor_announce("[user.real_name] has designated your station as [world.name]", "Captain's Charter", 0)
+
+ else
+ used = FALSE
diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm
index 7300e294879..ce178888a7e 100644
--- a/code/modules/admin/secrets.dm
+++ b/code/modules/admin/secrets.dm
@@ -28,6 +28,7 @@
List Fingerprints
Enable/Disable CTF
Reset Thunderdome to default state
+ Reset Station Name
Shuttles
@@ -145,6 +146,14 @@
for(var/datum/disease/D in SSdisease.processing)
D.cure(D)
+ if("reset_name")
+ if(!check_rights(R_ADMIN))
+ return
+ world.name = new_station_name()
+ station_name = world.name
+ log_admin("[key_name(usr)] reset the station name.")
+ message_admins("[key_name_admin(usr)] reset the station name.")
+
if("list_bombers")
if(!check_rights(R_ADMIN))
return
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index 7f7d5312e29..66056a25dd0 100644
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -35,7 +35,7 @@ Captain
suit = /obj/item/clothing/suit/armor/vest/capcarapace
shoes = /obj/item/clothing/shoes/sneakers/brown
head = /obj/item/clothing/head/caphat
- backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
+ backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/station_charter=1)
backpack = /obj/item/weapon/storage/backpack/captain
satchel = /obj/item/weapon/storage/backpack/satchel_cap
diff --git a/tgstation.dme b/tgstation.dme
index f61f9fb5702..5675e1efc8c 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -573,6 +573,7 @@
#include "code\game\objects\items\body_egg.dm"
#include "code\game\objects\items\bodybag.dm"
#include "code\game\objects\items\candle.dm"
+#include "code\game\objects\items\charter.dm"
#include "code\game\objects\items\control_wand.dm"
#include "code\game\objects\items\crayons.dm"
#include "code\game\objects\items\dehy_carp.dm"