diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm
index d730a42258c..9c83b2102c8 100644
--- a/code/game/gamemodes/clock_cult/clock_cult.dm
+++ b/code/game/gamemodes/clock_cult/clock_cult.dm
@@ -153,8 +153,8 @@ This file's folder contains:
var/list/servants_of_ratvar = list() //The Enlightened servants of Ratvar
var/required_escapees = 0 //How many servants need to escape, if applicable
var/required_silicon_converts = 0 //How many robotic lifeforms need to be converted, if applicable
- var/clockwork_objective = "escape" //The objective that the servants must fulfill
- var/clockwork_explanation = "Ensure that the meme levels of the station remain high." //The description of the current objective
+ var/clockwork_objective = "gateway" //The objective that the servants must fulfill
+ var/clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar." //The description of the current objective
/datum/game_mode/clockwork_cult
name = "clockwork cult"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index a4742693017..bee4afe7f68 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -119,6 +119,13 @@
else
message_admins("[key_name_admin(usr)] tried to create an abductor team. Unfortunatly there were not enough candidates available.")
log_admin("[key_name(usr)] failed to create an abductor team.")
+ if("15")
+ if(src.makeClockCult())
+ message_admins("[key_name(usr)] started a clockwork cult.")
+ log_admin("[key_name(usr)] started a clockwork cult.")
+ else
+ message_admins("[key_name_admin(usr)] tried to start a clockwork cult. Unfortunately, there were no candidates available.")
+ log_admin("[key_name(usr)] failed to start a clockwork cult.")
if("16")
if(src.makeShadowling())
message_admins("[key_name(usr)] created a shadowling.")
@@ -826,6 +833,12 @@
else
jobs += "
[replacetext("Cultist", " ", " ")] | "
+ //Servant of Ratvar
+ if(jobban_isbanned(M, "servant of Ratvar") || isbanned_dept)
+ jobs += "[replacetext("Servant", " ", " ")] | "
+ else
+ jobs += "[replacetext("Servant", " ", " ")] | "
+
//Shadowling
if(jobban_isbanned(M, "shadowling") || isbanned_dept)
jobs += "[replacetext("Shadowling", " ", " ")] | "
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index 1416f8e7c2b..075eb11bee8 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -15,6 +15,7 @@
Make Changelings
Make Revs
Make Cult
+ Make Clockwork Cult
Make Blob
Make Gangsters
Make Shadowling
@@ -173,6 +174,43 @@
return 0
+/datum/admins/proc/makeClockCult()
+ var/datum/game_mode/clockwork_cult/temp = new
+ if(config.protect_roles_from_antagonist)
+ temp.restricted_jobs += temp.protected_jobs
+
+ if(config.protect_assistant_from_antagonist)
+ temp.restricted_jobs += "Assistant"
+
+ var/list/mob/living/carbon/human/candidates = list()
+ var/mob/living/carbon/human/H = null
+
+ for(var/mob/living/carbon/human/applicant in player_list)
+ if(ROLE_SERVANT_OF_RATVAR in applicant.client.prefs.be_special)
+ var/turf/T = get_turf(applicant)
+ if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && T.z == ZLEVEL_STATION)
+ if(!jobban_isbanned(applicant, ROLE_SERVANT_OF_RATVAR) && !jobban_isbanned(applicant, "Syndicate"))
+ if(temp.age_check(applicant.client))
+ if(!(applicant.job in temp.restricted_jobs))
+ candidates += applicant
+
+ if(candidates.len)
+ var/numCultists = min(candidates.len, 4)
+
+ for(var/i = 0, iThe world before you suddenly glows a brilliant yellow. You hear the whooshing steam and clanking cogs of a billion billion machines, and all at once \
+ you see the truth. Ratvar, the Clockwork Justiciar, lies derelict and forgotten in an unseen realm, and he has selected you as one of his harbringers. You are now a servant of \
+ Ratvar, and you will bring him back."
+ add_servant_of_ratvar(H, TRUE)
+ ticker.mode.equip_servant(H)
+ candidates.Remove(H)
+
+ return 1
+
+ return 0
+
+
/datum/admins/proc/makeNukeTeam()