diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index 4bacf2d9e8..27a9338191 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -235,7 +235,9 @@
flavor_text = dna.features["flavor_text"] //Update the flavor_text to use new dna text
if(mrace)
- set_species(mrace, icon_update=0)
+ var/datum/species/newrace = new mrace.type
+ newrace.copy_properties_from(mrace)
+ set_species(newrace, icon_update=0)
if(newreal_name)
real_name = newreal_name
@@ -396,4 +398,4 @@
value = values
return value
-/////////////////////////// DNA HELPER-PROCS
+/////////////////////////// DNA HELPER-PROCS
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 821ed9d7a6..19fa9ce82e 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -111,6 +111,10 @@
randname += " [pick(GLOB.last_names)]"
return randname
+
+//Called when cloning, copies some vars that should be kept
+/datum/species/proc/copy_properties_from(datum/species/old_species)
+ return
//Please override this locally if you want to define when what species qualifies for what rank if human authority is enforced.
@@ -1721,4 +1725,4 @@
#undef COLD_DAMAGE_LEVEL_1
#undef COLD_DAMAGE_LEVEL_2
-#undef COLD_DAMAGE_LEVEL_3
+#undef COLD_DAMAGE_LEVEL_3
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm
index 18444bb366..80d64b29d4 100644
--- a/code/modules/mob/living/carbon/human/species_types/abductors.dm
+++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm
@@ -7,3 +7,7 @@
mutanttongue = /obj/item/organ/tongue/abductor
var/scientist = 0 // vars to not pollute spieces list with castes
var/team = 1
+
+/datum/species/abductor/copy_properties_from(datum/species/abductor/old_species)
+ scientist = old_species.scientist
+ team = old_species.team
diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm
index 7c58ecbf86..dbab6b94eb 100644
--- a/code/modules/mob/living/carbon/human/species_types/angel.dm
+++ b/code/modules/mob/living/carbon/human/species_types/angel.dm
@@ -18,11 +18,10 @@
if(H.dna && H.dna.species &&((H.dna.features["wings"] != "Angel") && ("wings" in H.dna.species.mutant_bodyparts)))
H.dna.features["wings"] = "Angel"
H.update_body()
- if(ishuman(H)&& !fly)
+ if(ishuman(H) && !fly)
fly = new
fly.Grant(H)
-
/datum/species/angel/on_species_loss(mob/living/carbon/human/H)
if(fly)
fly.Remove(H)
@@ -66,7 +65,7 @@
/datum/action/innate/flight
name = "Toggle Flight"
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUN
- icon_icon = 'icons/mob/actions/actions_items.dmi'
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "flight"
/datum/action/innate/flight/Activate()
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 3319895fe0..60f2e821f2 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -9,7 +9,6 @@
exotic_blood = "slimejelly"
damage_overlay_type = ""
var/datum/action/innate/regenerate_limbs/regenerate_limbs
- toxic_food = NONE
liked_food = MEAT
/datum/species/jelly/on_species_loss(mob/living/carbon/C)
@@ -60,6 +59,7 @@
name = "Regenerate Limbs"
check_flags = AB_CHECK_CONSCIOUS
button_icon_state = "slimeheal"
+ icon_icon = 'icons/mob/actions/actions_slime.dmi'
background_icon_state = "bg_alien"
/datum/action/innate/regenerate_limbs/IsAvailable()
@@ -128,7 +128,7 @@
/datum/species/jelly/slime/on_species_gain(mob/living/carbon/C, datum/species/old_species)
..()
if(ishuman(C))
-/* slime_split = new
+ /* slime_split = new
slime_split.Grant(C)
swap_body = new
swap_body.Grant(C) */
@@ -140,6 +140,10 @@
C.faction |= "slime"
+//If you're cloned you get your body pool back
+/datum/species/jelly/slime/copy_properties_from(datum/species/jelly/slime/old_species)
+ bodies = old_species.bodies
+
/datum/species/jelly/slime/spec_life(mob/living/carbon/human/H)
if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT)
if(prob(5))
@@ -154,6 +158,7 @@
name = "Split Body"
check_flags = AB_CHECK_CONSCIOUS
button_icon_state = "slimesplit"
+ icon_icon = 'icons/mob/actions/actions_slime.dmi'
background_icon_state = "bg_alien"
/datum/action/innate/split_body/IsAvailable()
@@ -220,6 +225,7 @@
name = "Swap Body"
check_flags = AB_CHECK_CONSCIOUS
button_icon_state = "slimeswap"
+ icon_icon = 'icons/mob/actions/actions_slime.dmi'
background_icon_state = "bg_alien"
/datum/action/innate/swap_body/Activate()
@@ -326,4 +332,4 @@
M.transfer_to(dupe)
dupe.visible_message("[dupe] blinks and looks \
around.",
- "...and move this one instead.")
+ "...and move this one instead.")
\ No newline at end of file