species datum

Datum that handles different species in the game.
This datum handles species in the game, such as lizardpeople, mothmen, zombies, skeletons, etc. It is used in carbon humans to determine various things about them, like their food preferences, if they have biological genders, their damage resistances, and more.
Vars | |
armor | Percentage modifier for overall defense of the race, or less defense, if it's negative. |
---|---|
ass_image | For custom overrides for species ass images |
attack_effect | The visual effect of the attack. |
attack_type | Type of damage attack does. Ethereals attack with burn damage for example. |
attack_verb | Punch-specific attack verb. |
body_vis_overlays | List of visual overlays created by handle_body() |
bodypart_overides | The bodyparts this species uses. assoc of bodypart string - bodypart type. Make sure all the fucking entries are in or I'll skin you alive. |
bodytemp_autorecovery_min | Minimum amount of kelvin moved toward normal body temperature per tick. |
bodytemp_cold_damage_limit | The body temperature limit the body can take before it starts taking damage from cold. |
bodytemp_heat_damage_limit | The body temperature limit the body can take before it starts taking damage from heat. |
bodytemp_normal | The natural temperature for a body |
breathid | What gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm] |
brutemod | multiplier for brute damage |
burnmod | multiplier for burn damage |
changesource_flags | Bitflag that controls what in game ways something can select this species as a spawnable source, such as magic mirrors. See mob defines for possible sources. |
coldmod | multiplier for damage from cold temperature |
damage_overlay_type | What kind of damage overlays (if any) appear on our species when wounded? If this is "", does not add an overlay. |
deathsound | Used to set the mob's deathsound upon species change |
disliked_food | Bitfield for food types that the species dislikes, giving them disgust. Humans hate raw food, for example. |
dust_anim | What anim to use for dusting |
exotic_blood | If your race bleeds something other than bog standard blood, change this to reagent id. For example, ethereals bleed liquid electricity. |
exotic_bloodtype | If your race uses a non standard bloodtype (A+, O-, AB-, etc). For example, lizards have L type blood. |
external_organs | List of external organs to generate like horns, frills, wings, etc. list(typepath of organ = "Round Beautiful BDSM Snout"). Still WIP |
family_heirlooms | List of family heirlooms this species can get with the family heirloom quirk. List of types. |
fixed_mut_color | To use MUTCOLOR with a fixed color that's independent of the mcolor feature in DNA. |
fly | The actual flying ability given to flying species |
flying_species | Is this species a flying species? Used as an easy check for some things |
gib_anim | What anim to use for gibbing |
grab_sound | Special sound for grabbing |
grad_color | The gradient color used to color the gradient. |
grad_style | The gradient style used for the mob's hair. |
hair_alpha | The alpha used by the hair. 255 is completely solid, 0 is invisible. |
hair_color | This allows races to have specific hair colors. If null, it uses the H's hair/facial hair colors. If "mutcolor", it uses the H's mutant_color. If "fixedmutcolor", it uses fixedmutcolor |
has_innate_wings | Used to determine what description to give when using a potion of flight, if false it will describe them as growing new wings |
heatmod | multiplier for damage from hot temperature |
id | If the game needs to manually check your race to do something not included in a proc here, it will use this. |
inert_mutation | Special mutation that can be found in the genepool exclusively in this species. Dont leave empty or changing species will be a headache |
inherent_biotypes | List of biotypes the mob belongs to. Used by diseases. |
inherent_factions | List of factions the mob gain upon gaining this species. |
inherent_traits | Generic traits tied to having the species. |
knife_butcher_results | List of results you get from knife-butchering. null means you cant butcher it. Associated by resulting type - value of amount |
liked_food | Bitfield for food types that the species likes, giving them a mood boost. Lizards like meat, for example. |
meat | What the species drops when gibbed by a gibber machine. |
mutant_bodyparts | Visible CURRENT bodyparts that are unique to a species. DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK SHIT UP! Changes to this list for non-species specific bodyparts (ie cat ears and tails) should be assigned at organ level if possible. Assoc values are defaults for given bodyparts, also modified by aforementioned organs. They also allow for faster '[]' list access versus 'in'. Other than that, they are useless right now. Layer hiding is handled by /datum/species/proc/handle_mutant_bodyparts below. |
mutant_organs | Internal organs that are unique to this race, like a tail. |
mutantappendix | Replaces default appendix with a different organ. |
mutantbrain | Replaces default brain with a different organ |
mutantears | Replaces default ears with a different organ |
mutanteyes | Replaces default eyes with a different organ |
mutanthands | Forces an item into this species' hands. Only an honorary mutantthing because this is not an organ and not loaded in the same way, you've been warned to do your research. |
mutantheart | Replaces default heart with a different organ |
mutantliver | Replaces default liver with a different organ |
mutantlungs | Replaces default lungs with a different organ |
mutantstomach | Replaces default stomach with a different organ |
mutanttongue | Replaces default tongue with a different organ |
name | This is the fluff name. They are displayed on health analyzers and in the character setup menu. Leave them generic for other servers to customize. |
no_equip | Inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example. |
nojumpsuit | Allows the species to equip items that normally require a jumpsuit without having one equipped. Used by golems. |
offset_features | Clothing offsets. If a species has a different body than other species, you can offset clothing so they look less weird. |
outfit_important_for_life | A path to an outfit that is important for species life e.g. plasmaman outfit |
payday_modifier | multiplier for money paid at payday |
punchdamagehigh | Highest possible punch damage this species can give. |
punchdamagelow | Lowest possible punch damage this species can give. If this is set to 0, punches will always miss. |
punchstunthreshold | Damage at which punches from this race will stun |
say_mod | Affects the speech message, for example: Motharula flutters, "My speech message is flutters!" |
sexes | Whether or not the race has sexual characteristics (biological genders). At the moment this is only FALSE for skeletons and shadows |
siemens_coeff | Base electrocution coefficient. Basically a multiplier for damage from electrocutions. |
skinned_type | What skin the species drops when gibbed by a gibber machine. |
special_step_sounds | Sounds to override barefeet walking |
species_language_holder | What languages this species can understand and say. Use a language holder datum in this var. |
species_traits | Species-only traits. Can be found in code/__DEFINES/DNA.dm |
speedmod | Multiplier for the race's speed. Positive numbers make it move slower, negative numbers make it move faster. |
stunmod | multiplier for stun durations |
toxic_food | Bitfield for food types that the species absolutely hates, giving them even more disgust than disliked food. Meat is "toxic" to moths, for example. |
use_skintones | Does the species use skintones or not? As of now only used by humans. |
Procs | |
apply_burn_wounds | Used to apply burn wounds on random limbs |
body_temperature_alerts | Used to set alerts and debuffs based on body temperature vars: |
body_temperature_core | Used to stabilize the core temperature back to normal on living mobs |
body_temperature_damage | Used to apply wounds and damage based on core/body temp vars: |
body_temperature_skin | Used to normalize the skin temperature on living mobs |
check_roundstart_eligible | Checks if a species is eligible to be picked at roundstart. |
copy_properties_from | Copies some vars and properties over that should be kept when creating a copy of this species. |
fix_non_native_limbs | Removes any non-native limbs from the mob |
get_biological_state | The human species version of /mob/living/carbon/proc/get_biological_state. Depends on the HAS_FLESH and HAS_BONE species traits, having bones lets you have bone wounds, having flesh lets you have burn, slash, and piercing wounds |
give_important_for_life | Equip the outfit required for life. Replaces items currently worn. |
go_bald | Makes the target human bald. |
handle_body | Handles the body of a human |
handle_body_temperature | Body temperature handler for species |
handle_environment | Environment handler for species |
handle_environment_pressure | Handle the air pressure of the environment |
handle_hair | Handles hair icons and dynamic hair. |
handle_mutant_bodyparts | Handles the mutant bodyparts of a human |
handle_mutations_and_radiation | Species based handling for irradiation |
harm | This proc handles punching damage. IMPORTANT: Our owner is the TARGET and not the USER in this proc. For whatever reason... |
on_species_gain | Proc called when a carbon becomes this species. |
on_species_loss | Proc called when a carbon is no longer this species. |
pre_equip_species_outfit | Equips the necessary species-relevant gear before putting on the rest of the uniform. |
random_name | Generates a random name for a carbon. |
randomize_active_underwear | Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob |
randomize_main_appearance_element | Proc that will randomise the hair, or primary appearance element (i.e. for moths wings) of a species' associated mob |
regenerate_organs | Corrects organs in a carbon, removing ones it doesn't need and adding ones it does. |
spec_unarmedattack | Species override for unarmed attacks because the attack_hand proc was made by a mouth-breathing troglodyte on a tricycle. Also to whoever thought it would be a good idea to make it so the original spec_unarmedattack was not actually linked to unarmed attack needs to be checked by a doctor because they clearly have a vast empty space in their head. |
Var Details
armor

Percentage modifier for overall defense of the race, or less defense, if it's negative.
ass_image

For custom overrides for species ass images
attack_effect

The visual effect of the attack.
attack_type

Type of damage attack does. Ethereals attack with burn damage for example.
attack_verb

Punch-specific attack verb.
body_vis_overlays

List of visual overlays created by handle_body()
bodypart_overides

The bodyparts this species uses. assoc of bodypart string - bodypart type. Make sure all the fucking entries are in or I'll skin you alive.
bodytemp_autorecovery_min

Minimum amount of kelvin moved toward normal body temperature per tick.
bodytemp_cold_damage_limit

The body temperature limit the body can take before it starts taking damage from cold.
bodytemp_heat_damage_limit

The body temperature limit the body can take before it starts taking damage from heat.
bodytemp_normal

The natural temperature for a body
breathid

What gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm]
brutemod

multiplier for brute damage
burnmod

multiplier for burn damage
changesource_flags

Bitflag that controls what in game ways something can select this species as a spawnable source, such as magic mirrors. See mob defines for possible sources.
coldmod

multiplier for damage from cold temperature
damage_overlay_type

What kind of damage overlays (if any) appear on our species when wounded? If this is "", does not add an overlay.
deathsound

Used to set the mob's deathsound upon species change
disliked_food

Bitfield for food types that the species dislikes, giving them disgust. Humans hate raw food, for example.
dust_anim

What anim to use for dusting
exotic_blood

If your race bleeds something other than bog standard blood, change this to reagent id. For example, ethereals bleed liquid electricity.
exotic_bloodtype

If your race uses a non standard bloodtype (A+, O-, AB-, etc). For example, lizards have L type blood.
external_organs

List of external organs to generate like horns, frills, wings, etc. list(typepath of organ = "Round Beautiful BDSM Snout"). Still WIP
family_heirlooms

List of family heirlooms this species can get with the family heirloom quirk. List of types.
fixed_mut_color

To use MUTCOLOR with a fixed color that's independent of the mcolor feature in DNA.
fly

The actual flying ability given to flying species
flying_species

Is this species a flying species? Used as an easy check for some things
gib_anim

What anim to use for gibbing
grab_sound

Special sound for grabbing
grad_color

The gradient color used to color the gradient.
grad_style

The gradient style used for the mob's hair.
hair_alpha

The alpha used by the hair. 255 is completely solid, 0 is invisible.
hair_color

This allows races to have specific hair colors. If null, it uses the H's hair/facial hair colors. If "mutcolor", it uses the H's mutant_color. If "fixedmutcolor", it uses fixedmutcolor
has_innate_wings

Used to determine what description to give when using a potion of flight, if false it will describe them as growing new wings
heatmod

multiplier for damage from hot temperature
id

If the game needs to manually check your race to do something not included in a proc here, it will use this.
inert_mutation

Special mutation that can be found in the genepool exclusively in this species. Dont leave empty or changing species will be a headache
inherent_biotypes

List of biotypes the mob belongs to. Used by diseases.
inherent_factions

List of factions the mob gain upon gaining this species.
inherent_traits

Generic traits tied to having the species.
knife_butcher_results

List of results you get from knife-butchering. null means you cant butcher it. Associated by resulting type - value of amount
liked_food

Bitfield for food types that the species likes, giving them a mood boost. Lizards like meat, for example.
meat

What the species drops when gibbed by a gibber machine.
mutant_bodyparts

Visible CURRENT bodyparts that are unique to a species. DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK SHIT UP! Changes to this list for non-species specific bodyparts (ie cat ears and tails) should be assigned at organ level if possible. Assoc values are defaults for given bodyparts, also modified by aforementioned organs. They also allow for faster '[]' list access versus 'in'. Other than that, they are useless right now. Layer hiding is handled by /datum/species/proc/handle_mutant_bodyparts below.
mutant_organs

Internal organs that are unique to this race, like a tail.
mutantappendix

Replaces default appendix with a different organ.
mutantbrain

Replaces default brain with a different organ
mutantears

Replaces default ears with a different organ
mutanteyes

Replaces default eyes with a different organ
mutanthands

Forces an item into this species' hands. Only an honorary mutantthing because this is not an organ and not loaded in the same way, you've been warned to do your research.
mutantheart

Replaces default heart with a different organ
mutantliver

Replaces default liver with a different organ
mutantlungs

Replaces default lungs with a different organ
mutantstomach

Replaces default stomach with a different organ
mutanttongue

Replaces default tongue with a different organ
name

This is the fluff name. They are displayed on health analyzers and in the character setup menu. Leave them generic for other servers to customize.
no_equip

Inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example.
nojumpsuit

Allows the species to equip items that normally require a jumpsuit without having one equipped. Used by golems.
offset_features

Clothing offsets. If a species has a different body than other species, you can offset clothing so they look less weird.
outfit_important_for_life

A path to an outfit that is important for species life e.g. plasmaman outfit
payday_modifier

multiplier for money paid at payday
punchdamagehigh

Highest possible punch damage this species can give.
punchdamagelow

Lowest possible punch damage this species can give. If this is set to 0, punches will always miss.
punchstunthreshold

Damage at which punches from this race will stun
say_mod

Affects the speech message, for example: Motharula flutters, "My speech message is flutters!"
sexes

Whether or not the race has sexual characteristics (biological genders). At the moment this is only FALSE for skeletons and shadows
siemens_coeff

Base electrocution coefficient. Basically a multiplier for damage from electrocutions.
skinned_type

What skin the species drops when gibbed by a gibber machine.
special_step_sounds

Sounds to override barefeet walking
species_language_holder

What languages this species can understand and say. Use a language holder datum in this var.
species_traits

Species-only traits. Can be found in code/__DEFINES/DNA.dm
speedmod

Multiplier for the race's speed. Positive numbers make it move slower, negative numbers make it move faster.
stunmod

multiplier for stun durations
toxic_food

Bitfield for food types that the species absolutely hates, giving them even more disgust than disliked food. Meat is "toxic" to moths, for example.
use_skintones

Does the species use skintones or not? As of now only used by humans.
Proc Details
apply_burn_wounds
Used to apply burn wounds on random limbs
This is called from body_temperature_damage when exposure to extream heat adds up and causes a wound. The wounds will increase in severity as the temperature increases. vars:
- humi (required) The mob we will targeting
body_temperature_alerts
Used to set alerts and debuffs based on body temperature vars:
- humi (required) The mob we will targeting
body_temperature_core
Used to stabilize the core temperature back to normal on living mobs
The metabolisim heats up the core of the mob trying to keep it at the normal body temp vars:
- humi (required) The mob we will stabilize
body_temperature_damage
Used to apply wounds and damage based on core/body temp vars:
- humi (required) The mob we will targeting
body_temperature_skin
Used to normalize the skin temperature on living mobs
The core temp effects the skin, then the enviroment effects the skin, then we refect that back to the core. This happens even when dead so bodies revert to room temp over time. vars:
- humi (required) The mob we will targeting
- delta_time: The amount of time that is considered as elapsing
- times_fired: The number of times SSmobs has fired
check_roundstart_eligible
Checks if a species is eligible to be picked at roundstart.
Checks the config to see if this species is allowed to be picked in the character setup menu. Used by /proc/generate_selectable_species.
copy_properties_from
Copies some vars and properties over that should be kept when creating a copy of this species.
Used by slimepeople to copy themselves, and by the DNA datum to hardset DNA to a species Arguments:
- old_species - The species that the carbon used to be before copying
fix_non_native_limbs
Removes any non-native limbs from the mob
get_biological_state
The human species version of /mob/living/carbon/proc/get_biological_state. Depends on the HAS_FLESH and HAS_BONE species traits, having bones lets you have bone wounds, having flesh lets you have burn, slash, and piercing wounds
give_important_for_life
Equip the outfit required for life. Replaces items currently worn.
go_bald
Makes the target human bald.
Arguments:
- target: The mob to make go bald.
handle_body
Handles the body of a human
Handles lipstick, having no eyes, eye color, undergarnments like underwear, undershirts, and socks, and body layers. Calls handle_mutant_bodyparts Arguments:
- species_human - Human, whoever we're handling the body for
handle_body_temperature
Body temperature handler for species
These procs manage body temp, bamage, and alerts Some of these will still fire when not alive to balance body temp to the room temp. vars:
- humi (required)(type: /mob/living/carbon/human) The mob we will target
handle_environment
Environment handler for species
vars:
- environment (required) The environment gas mix
- humi (required)(type: /mob/living/carbon/human) The mob we will target
handle_environment_pressure
Handle the air pressure of the environment
handle_hair
Handles hair icons and dynamic hair.
Handles hiding hair with clothing, hair layers, losing hair due to husking or augmented heads, facial hair, head hair, and hair styles. Arguments:
- H - Human, whoever we're handling the hair for
- forced_colour - The colour of hair we're forcing on this human. Leave null to not change. Mind the british spelling!
handle_mutant_bodyparts
Handles the mutant bodyparts of a human
Handles the adding and displaying of, layers, colors, and overlays of mutant bodyparts and accessories. Handles digitigrade leg displaying and squishing. Arguments:
- H - Human, whoever we're handling the body for
- forced_colour - The forced color of an accessory. Leave null to use mutant color.
handle_mutations_and_radiation
Species based handling for irradiation
Arguments:
- source: The mob requesting handling
- delta_time: The amount of time that has passed since the last tick
- times_fired: The number of times SSmobs has fired
harm
This proc handles punching damage. IMPORTANT: Our owner is the TARGET and not the USER in this proc. For whatever reason...
on_species_gain
Proc called when a carbon becomes this species.
This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible. Produces a COMSIG_SPECIES_GAIN signal. Arguments:
- C - Carbon, this is whoever became the new species.
- old_species - The species that the carbon used to be before becoming this race, used for regenerating organs.
- pref_load - Preferences to be loaded from character setup, loads in preferred mutant things like bodyparts, digilegs, skin color, etc.
on_species_loss
Proc called when a carbon is no longer this species.
This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible. Produces a COMSIG_SPECIES_LOSS signal. Arguments:
- C - Carbon, this is whoever lost this species.
- new_species - The new species that the carbon became, used for genetics mutations.
- pref_load - Preferences to be loaded from character setup, loads in preferred mutant things like bodyparts, digilegs, skin color, etc.
pre_equip_species_outfit
Equips the necessary species-relevant gear before putting on the rest of the uniform.
random_name
Generates a random name for a carbon.
This generates a random unique name based on a human's species and gender. Arguments:
- gender - The gender that the name should adhere to. Use MALE for male names, use anything else for female names.
- unique - If true, ensures that this new name is not a duplicate of anyone else's name currently on the station.
- lastname - Does this species' naming system adhere to the last name system? Set to false if it doesn't.
randomize_active_underwear
Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob
randomize_main_appearance_element
Proc that will randomise the hair, or primary appearance element (i.e. for moths wings) of a species' associated mob
regenerate_organs
Corrects organs in a carbon, removing ones it doesn't need and adding ones it does.
Takes all organ slots, removes organs a species should not have, adds organs a species should have. can use replace_current to refresh all organs, creating an entirely new set.
Arguments:
- C - carbon, the owner of the species datum AKA whoever we're regenerating organs in
- old_species - datum, used when regenerate organs is called in a switching species to remove old mutant organs.
- replace_current - boolean, forces all old organs to get deleted whether or not they pass the species' ability to keep that organ
- excluded_zones - list, add zone defines to block organs inside of the zones from getting handled. see headless mutation for an example
spec_unarmedattack
Species override for unarmed attacks because the attack_hand proc was made by a mouth-breathing troglodyte on a tricycle. Also to whoever thought it would be a good idea to make it so the original spec_unarmedattack was not actually linked to unarmed attack needs to be checked by a doctor because they clearly have a vast empty space in their head.