diff --git a/code/modules/events/wizard/race.dm b/code/modules/events/wizard/race.dm
index 32b45e46f8..7ea875f152 100644
--- a/code/modules/events/wizard/race.dm
+++ b/code/modules/events/wizard/race.dm
@@ -5,6 +5,18 @@
max_occurrences = 5
earliest_start = 0 MINUTES
+/datum/round_event/wizard/race
+ var/list/stored_name
+ var/list/stored_species
+ var/list/stored_dna
+
+/datum/round_event/wizard/race/setup()
+ stored_name = list()
+ stored_species = list()
+ stored_dna = list()
+ endWhen = rand(600,1200) //10 to 20 minutes
+ ..()
+
/datum/round_event/wizard/race/start()
var/all_the_same = 0
@@ -12,18 +24,35 @@
for(var/speciestype in subtypesof(/datum/species))
var/datum/species/S = new speciestype()
- if(!S.dangerous_existence && !S.blacklisted)
+ if(!S.dangerous_existence && !S.blacklisted && !S.nojumpsuit) //Dangerous Species, Blacklisted Species, and Species who can't wear jumpsuits are blacklisted.
all_species += speciestype
var/datum/species/new_species = pick(all_species)
- if(prob(50))
+ if(prob(75))
all_the_same = 1
- for(var/mob/living/carbon/human/H in GLOB.carbon_list) //yes, even the dead
+ for(var/mob/living/carbon/human/H in GLOB.carbon_list)
+ var/turf/T = get_turf(H)
+ if(!T)
+ continue
+ if(!is_station_level(T.z))
+ continue
+ stored_name[H] = H.real_name
+ stored_species[H] = H.dna.species
+ stored_dna[H] = H.dna.unique_enzymes
H.set_species(new_species)
H.real_name = H.dna.species.random_name(H.gender,1)
H.dna.unique_enzymes = H.dna.generate_unique_enzymes()
to_chat(H, "You feel somehow... different?")
if(!all_the_same)
new_species = pick(all_species)
+
+/datum/round_event/wizard/race/end()
+ for(var/mob/living/carbon/human/H in GLOB.carbon_list)
+ if(!(stored_name[H] && stored_species[H] && stored_dna[H]))
+ continue
+ H.set_species(stored_species[H])
+ H.real_name = stored_name[H]
+ H.dna.unique_enzymes = stored_dna[H]
+ to_chat(H, "You feel back to your normal self again.")
\ No newline at end of file
diff --git a/tgstation.dme b/tgstation.dme
index de0ef8686f..5b4c4eabe5 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1596,6 +1596,7 @@
#include "code\modules\events\wizard\lava.dm"
#include "code\modules\events\wizard\magicarp.dm"
#include "code\modules\events\wizard\petsplosion.dm"
+#include "code\modules\events\wizard\race.dm"
#include "code\modules\events\wizard\rpgloot.dm"
#include "code\modules\events\wizard\shuffle.dm"
#include "code\modules\events\wizard\summons.dm"