diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 09a2858268d..7224805e689 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -254,4 +254,7 @@
name = "engineering_sec"
/obj/effect/landmark/start/depsec/science
- name = "science_sec"
\ No newline at end of file
+ name = "science_sec"
+
+/obj/effect/landmark/latejoin
+ name = "JoinLate"
\ No newline at end of file
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 3849bf0f623..249cd05528b 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -129,7 +129,8 @@ var/list/admin_verbs_debug = list(
/client/proc/check_bomb_impacts,
/proc/machine_upgrade,
/client/proc/populate_world,
- /client/proc/cmd_display_del_log
+ /client/proc/cmd_display_del_log,
+ /client/proc/reset_latejoin_spawns
)
var/list/admin_verbs_possess = list(
/proc/possess,
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 96054f461d4..14de38a5a83 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -747,3 +747,14 @@ Traitors and the like can also be revived with the previous role mostly intact.
log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z]).")
message_admins("[key_name_admin(usr)] (FLW) [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z] - JMP).")
feedback_add_details("admin_verb","TN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+/client/proc/reset_latejoin_spawns()
+ set category = "Debug"
+ set name = "Reset Latejoin Spawns"
+
+ if(!check_rights(R_DEBUG)) return
+
+ latejoin.Cut()
+
+ log_admin("[key_name(usr)] reset latejoin spawnpoints.")
+ message_admins("[key_name_admin(usr)] reset latejoin spawnpoints.")
\ No newline at end of file