/tg/ Station 13 - Modules - Types — Var Details - Proc Details

human

Any humanoid (non-Xeno) mob, such as humans, plasmamen, lizards.

Vars

afk_theftsWhen an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds
base_mob_heightBase height of the mob, modified by stuff like dwarfism or species
blood_in_handsHow many "units of blood" we have on our hands
braThe selected bra.
bra_colorColor of the bra.
cached_body_heightCombined height of our body sprite
cached_body_min_x_offsetLeftmost offset of our overlays
cached_body_min_y_offsetRightmost offset of our overlays
cached_body_widthCombined width of our body sprite
chrono_ageChronological age.
coretemperatureThe core temperature of the human compaired to the skin temp of the body
custom_sprite_round_historyStyle key -> the style this body had before its last salon change. Drawings may be explicitly null.
eye_color_heterochromaticVar used to keep track of a human mob having a heterochromatic right eye. To ensure prefs don't overwrite shit
footstep_typeUsed for footstep type pref, to apply to any new legs that get added to this mob. Uses a var instead of checking prefs because there are a lot of clientless mob situations.
garment_fitWhat this body's garments are fitted to: its fitness arms' and legs' muscle sizes, and its chest's where a male chest's glutes reach past today's, the legs and chest left out on a taur body, which draws none of them; or null when they're all Normal. Kept up to date with its limbs (update_garment_fit()), so drawing a garment only reads it.
genital_layering_panelThe Genital Layering panel for the mob.
grad_colorColours used for hair and facial hair gradients.
grad_styleStyles used for hair and facial hair gradients.
hair_alphaAlpha of the hair. Takes precedent over species hair_alpha if non-null.
heat_exposure_stacksExposure to damaging heat levels increases stacks, stacks clean over time when temperatures are lower. Stack is consumed to add a wound.
held_hover_colorThis is the color of the TK effect for the hands when psionic holding is active.
held_leftThis are the TK effect object for the left hand for psionic holding.
held_rightThis are the TK effect object for the right hand for psionic holding.
mob_examine_panelThe Examine Panel datum for the mob.
mob_heightActual height of the mob. Don't touch this one, it is set via update_mob_height()
mutant_renderkeyRender key for mutant bodyparts, utilized to reduce the amount of re-rendering
override_voiceAllows for special overrides of voice
oversized_piggydamBase damage for oversized piggyback riding.
oversized_piggyknockParalyze time for oversized piggyback riding in deciseconds. (10 deciseconds = 1 second)
oversized_piggywound_chanceChance for oversized to wound someone smaller, if they try to piggyback ride them.
physiqueWhich body type to use
refractory_periodUsed to prevent nightmare scenarios.
seconds_in_low_pressureTracks how long in seconds we've been in a low pressure environment
socks_colorColor of the socks
try_hide_mutant_partsA list of mutant parts the human is trying to hide, read from mutant_renderkey
undershirt_colorColor of the undershirt
underwear_visibilityFlags for showing/hiding underwear, toggleabley by a verb

Procs

InitializeInitializes Voice_Bark
add_blood_DNA_to_itemsAdds blood DNA to certain slots the mob is wearing
adjust_arousalAdjusts the parent human's arousal value based off the value assigned to arous.
adjust_coretemperatureAdjust the core temperature of a mob
apply_height_filterApplies a filter to an appearance according to mob height
bulge_coverThe cover garment a bulge shows through, outermost first: a suit unless it is reviewed to leave the groin clear, else a uniform over the groin, else a groin-length undershirt, else the underwear. Null for none, or for a suit that hides the bulge. A garment covers the penis only when it is drawn in front of it: for a penis the player has layered at chosen_layer (bulge_custom_layer()), a garment drawn behind that layer is passed over, as Nova draws the penis over it (Custom "Above underwear" wins over the underwear).
bulge_cover_colourThe cloth colour an adaptive bulge is tinted from: sampled from the cover garment's own sprite (or, for a GAGS garment, its cloth layer), tinted as the garment is drawn. Null when it has none to sample.
bulge_cover_nameWhat a bulge shows through: the garment its look is drawn on (has_bulge()), or, with none drawn, the outermost of what covered_by_clothing() finds over the groin.
bulge_cut_wornCut covers: a cover that reveals when hard (a revealing skirt, a loincloth) is drawn with its lifted part cut away, so the penis the bulge draws behind it shows through (bulge.dm). The cut is swapped in for the drawn sprite of the cover's freshly built worn appearance, after the female and digitigrade masks, the way the digitigrade leg mask swaps a uniform's icon; tg's worn icon caches only ever see the garment's own file and state. What the sprite carries over its own pixels (its emissive blocker, the damaged-clothes overlay, a glow) is cut the same way; a uniform's accessories, worn over the garment, are not. This is the only place a cover's own render is touched, and only for a wearer whose look cuts that cover.
bulge_gags_colourThe cloth colour of a GAGS garment: its cloth layer's greyscale sprite in that layer's palette colour, tinted as the garment is drawn. Only while the garment draws its config's own output (SSgreyscale), so a stale config after a run-time override samples nothing; null then.
bulge_pokes_outWhat of the penis its bulge look still shows, for interactions (INTERACTION_REQUIRE_SELF_POKES_OUT and INTERACTION_REQUIRE_TARGET_POKES_OUT) and anything else: BULGE_POKES_PAST_CLOTH while the look draws some of it over the cloth (the tip or head past the garment, what a printed patch leaves bare, the shaft over a revealing skirt), and BULGE_POKES_UNDER_COVER while it draws it behind a cover cut or lifted for it (a revealing skirt or a loincloth, hard); NONE with no look, or one that covers all of it. Any pixel the look draws counts, in any facing: the two-pixel tip past a waistband facing east and west too.
bulge_restraintThe underwear worn under a look's cover (bulge_cover()), which holds the penis in unless it lets it out itself (bulge_held_size()): underwear always takes precedence over what is worn over it. It counts while it is worn and drawn, as get_underwear_overlays() draws it, and in front of the penis as the player layered it at chosen_layer (bulge_custom_layer()).
bulge_suit_unmodifiedWhether a suit draws its own default sprite: its type's file, or its type's GAGS output in its type's colours.
bulge_suit_verdictWhat a worn suit does to a bulge (BULGE_SUIT_*). A suit leaves the groin clear, or is itself the cover, only in the cells its bulge_suit_rule names: its own unmodified appearance in its default or toggled worn state, on plain or digitigrade legs, on a body its sprites fit (no Vox, custom, taur or Cerulean body), untinted and without offsets.
bulge_uniform_fileThe sprite file a uniform is drawn from on this body before any mask, as update_worn_undersuit() picks it: its digitigrade file on digitigrade legs where it has the state, else its own worn file. A uniform fitted to a species (Vox, Teshari and other custom bodies) is sampled from its own worn file.
burn_clothingUsed by fire code to damage worn items.
can_be_ridden_byDetermines if src can be ridden by to_buckle.
can_breathe_helmetReturns the helmet if an air tank compatible helmet is equipped.
can_breathe_internalsReturns the object that allows us to breathe internals - tube implant, mask or helmet
can_breathe_maskReturns the mask if an air tank compatible mask is equipped.
can_still_climaxWhether a climax can go on after a prompt - we still exist and still have ERP on
check_if_off_dutyChecks is the parent mob is currently off duty. Returns FALSE if the mob isn't clocked out.
check_organ_damageReturns the damage of the organ_to_check, if the organ isn't there, the proc returns 100.
check_pocket_weghtSignal proc for COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED to check if an item is suddenly too heavy for our pockets
check_reflectReflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object
clean_faceCalled on the COMSIG_COMPONENT_CLEAN_FACE_ACT signal
click_altalt-clicking a human as another human while grappling them tightly makes you try for grappling-based maneuvers.
climaxNever makes its caller wait - adjust_pleasure() climaxes from Life(), process() and status effects, which must not sleep, and a climax can stop to ask where to finish. Its caller then gets null, and it ends when the player answers.
climax_askAsks the climaxing player a question, then checks the climax can still go on.
climax_container_in_reachResolves a container offered before a prompt, only while it's still in reach and open
climax_containers_in_reachGathers the open containers in reach, held weakly for the prompts that follow.
climax_fillFills an open container with a climax, spilling at its feet whatever doesn't fit.
climax_from_penisLands a penis climax, asking where it goes when the penis is exposed.
climax_from_vaginaLands a vagina climax, offering the open containers in reach when the vagina is exposed.
climax_into_partnerLands a penis climax in or on a partner in reach, asking who and where.
climax_partners_in_reachGathers the consenting partners in reach, held weakly for the prompts that follow.
climax_portal_devices_in_reachGathers the open portal devices we can climax through, held weakly for the prompts that follow.
climax_through_portal_deviceLands a penis climax through a portal device in reach, asking which one when there are several.
copy_clothing_prefscopies over clothing preferences like underwear to another human
crewlike_monkifyProc used to make monkey roles able to function like crew, but not be able to shift into humans easily.
custom_sprite_recolor_hairCarries painted hair shades along with a hair color change, the way the editor's palette does.
described_armpitThe mob's armpit as interaction text reads it: hair and sweat become adjectives, the hair's by style.
described_bulgeThe mob's bulge as interaction text reads it: sweat becomes an adjective.
do_cprPerforms CPR on the target after a delay.
drop_lewd_slot_itemDrops what one of our lewd slots holds at our feet, locked or not, and empties the slot. Returns the item - the caller redraws the slots.
electrocute_actCalculates the siemens coeff based on clothing and species, can also restart hearts.
equipOutfitOverride so outfits don't break proteans when they try to force a backpack item from an outfit
equip_species_outfitA version of equipOutfit that overrides passed in outfits with their entry on the species' outfit override registry
fan_hud_set_fandomFAN HUDs! For identifying other fans on-sight.
find_nifsoftChecks to see if a human with a NIF has the nifsoft_to_find type of NIFSoft installed?
force_sayMakes the player force say what's in their current input box. Arguments:
format_scarsFor use formatting all of the scars this human has for saving for persistent scarring, returns a string with all current scars/missing limb amputation scars for saving or loading purposes
get_age_textReports how old the mob appears to be
get_arousal_examineExamine lines for our arousal flavor text and a freshly spanked rear. Called by /mob/living/carbon/human/examine().
get_base_mob_heightGets the mob's base height, ignoring adjustments from traits or species Necessary due to VAR_PRIVATE (it's not used in hot code anyways)
get_blocking_deviceThe worn device closing off the genital in slot, like a chastity cage, or null.
get_body_hairThis human's armpit or pubic hair style, "None" when there is none.
get_body_hair_coverReturns what hides this body hair, or null when it shows. Armpit hair shows on a bare chest and under clothing that bares the armpits (GLOB.body_hair_baring_clothing); no bra or underwear hides it. Pubic hair shows on a bare groin and under underwear that bares it. Drawing asks on every body update (is_hidden()), so this allocates nothing.
get_body_temp_normalget_body_temperature Returns the body temperature with any modifications applied
get_clothing_on_partGet all the clothing on a specific body part
get_configurable_genitalsEvery genital that should appear in configuration menus.
get_dnr_examineExamine lines warning HUD users that we're not to be revived. Called by /mob/living/carbon/human/examine().
get_empath_examineExamine lines letting empaths read how aroused we are. Called by /mob/living/carbon/human/examine().
get_equipped_itemsUsed to return a list of equipped items on a human mob; does not by default include held items, see include_flags
get_genital_description_linesBuilds the per-genital description lines shown behind the "[Look closer...]" link, skipping skipped_slots.
get_lewd_slot_itemGets the item held in one of our lewd slots: an ORGAN_SLOT_* genital, or BODY_ZONE_PRECISE_MOUTH.
get_medhud_examine_infoCollects information displayed about src when examined by a user with a medical HUD.
get_mismatched_limb_textReports all body parts which are mismatched with the user's species
get_missing_organsReturns a list of all missing organs this species should have
get_num_feetGets the number of feet the human has.
get_underwear_overlaysReturns a list of all underclothing overlays to be applied to the mob
get_underwear_ui_entriesThe per-slot underwear entries every configuring UI sends to tgui.
get_visible_nameCombines get_id_name() and get_face_name() to determine a mob's name variable. Made into a separate proc as it'll be useful elsewhere
get_worn_portal_routeA route to this mob through the device linked to a receiver they are wearing, when user can reach that device.
give_emote_overlayCreates a new emote bodypart overlay and applies it to the human. The overlay can be removed by simply deleting the returned overlay.
handle_environmentEnvironment handlers for species
hardset_dnaSets the DNA of the mob to the given DNA.
has_anusReturns true if the human has an accessible anus for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_armsReturns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.
has_ballsReturns true if the human has a accessible balls for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_breastsReturns true if the human has a accessible breasts for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_bulgeWhether the human's penis shows as a bulge: whether its overlay drew a bulge look in the last body update (the bulge module's bulge.dm), so a bulge interaction is on offer just when one is drawn. Not under a suit that hides it, on underwear the body does not draw, on a garment that draws none, or with the penis layered above its only cover.
has_custom_hairWhether the head carries custom paint for any of targets (HEAD_HAIR, HEAD_FACIAL_HAIR). Paint is hair, even over a bald or shaved base style.
has_earsReturns true if the human has a accessible ears for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_exposed_genitalsReturns TRUE if any genital outside skipped_slots is currently exposed. Backs the "[Look closer...]" examine link.
has_eyesReturns true if the human has accessible eyes for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_feetReturns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.
has_nippleless_pecsWhether the human's chest is pecs drawn without nipples.
has_pecsWhether the human's chest is pecs rather than breasts.
has_penisReturns true if the human has an accessible penis for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_tailReturns true if the human has accessible tail for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
has_vaginaReturns true if the human has an accessible vagina for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.
increment_scar_slotWhen we're joining the game in /mob/dead/new_player/proc/create_character, we increment our scar slot then store the slot in our mind datum.
infuse_organAttempt to replace/add-to the occupant's organs with "mutated" equivalents. Returns TRUE on success, FALSE on failure. Requires the target mob to have an existing organic organ to "mutate".
invisible_man_toggleWhen TRAIT_INVISIBLE_MAN is added or removed we need to update a few things
is_barefootAre we wearing something that covers our shoes?
is_bottomlessAre we wearing something that covers our groin?
is_toplessAre we wearing something that covers our chest?
is_visibly_sweatyWhether this mob visibly reads as sweaty to interaction text. The hook for the dirt and sweat overlays: report their sweat state here once they land. Until then nobody reads as sweaty, so *_sweaty interaction text ships dormant.
is_wearing_condomChecks if the human is wearing a condom, and also hasn't broken it.
leave_scent_onLeaves this human's scent on [receiver] when this one gives scents and the receiver takes them.
load_nif_dataLoads the NIF data for an individual user.
load_persistent_scarsRead all the scars we have for the designated character/scar slots, verify they're good/dump them if they're old/wrong format, create them on the user, and write the scars that passed muster back to the file
load_scarTakes a single scar from the persistent scar loader and recreates it from the saved data
make_full_human_copyMakes a full copy of src and returns it. Attempts to copy as much as possible to be a close to the original. This includes job outfit (which handles skillchips), quirks, and mutations. We do not set a mind here, so this is purely the body. Args: location - The turf the human will be spawned on.
match_frills_to_tailRepaints the frills, DNA included, in the tail's colour. For bodies whose tail changes colour after their frills grow.
no_underwear_toggleWhen TRAIT_NO_UNDERWEAR is added or removed we need to update our body to hide or show underwear sprites
on_dwarf_traitGaining or losing [TRAIT_DWARF] updates our height and grants passtable
on_tootall_traitGaining or losing TRAIT_TOO_TALL updates our height
pick_infusion_organPicks a random mutated organ from the given infuser entry which is also compatible with this human. Tries to return a typepath of a valid mutant organ if all of the following criteria are true:
portal_hides_bulgeWhether this human draws no bulge look (bulge_resolve()): while wall-stuck, as a wall relay shows the hips and butt alone. A gloryhole draws one the penis pokes out of (can_relay()).
portal_relays_interactionWhether interaction touches a part of this mob that a portal is showing somewhere else right now.
portal_target_is_accessibleReturns whether this mob can put one of their own parts against a portal device.
psykerizeProc with no side effects that turns someone into a psyker. returns FALSE if it could not psykerize.
randomize_human_appearanceFully randomizes everything according to the given flags.
redraw_dirtDraws again what masks finished for this body would change.
redraw_fitted_garmentsDraws again a body's slots whose garments' fits have finished.
refit_worn_clothingRedraws the worn clothing fitted to this body's fitness limbs, its uniform, suit, shoes and gloves, after a fitness limb comes or goes. Inside a render batch (STOP_OVERLAY_UPDATE_BODY_PARTS) it's left to whoever ends the batch.
remove_custom_hairTakes custom paint off targets (HEAD_HAIR, HEAD_FACIAL_HAIR) for the round along with the hair a shave or a cut to bald removes, redrawing once. Returns TRUE when there was paint.
render_only_headMakes all aspects of the mob invisibile but the head and its associated sprites
resolve_climax_partnerResolves a partner offered before a climax prompt, only while they are still in reach and consenting.
return_items_to_consoleReturns any items inside of the items_to_send list to a cryo console on station.
ride_saddleAttempts to have buckling ride on our saddle, if we have one.
save_individual_persistenceSaves the persistence data for the owner.
save_nif_dataSaves the NIF data for a individual user.
save_persistent_scarsSave any scars we have to our designated slot, then write our current slot so that the next time we call /mob/living/carbon/human/proc/increment_scar_slot (the next round we join), we'll be there
send_applicable_messagesAny "special" suicide messages are handled by the related item that the mob uses to kill itself. This is just messages for when it's done with the bare hands.
set_all_underwear_visibilityShows or hides every underwear slot at once.
set_body_hairSets this human's armpit or pubic hair to style, growing, restyling or removing the organ to match.
set_eye_colorSets both mob's and eye organ's eye color values If color_right is not passed, its assumed to be the same as color_left
set_facial_haircolorPainted facial hair shades follow the new color; see custom_sprite_recolor_hair().
set_genderSets the gender of the human, respecting prefs unless it's forced. Do not force in non-admin operations.
set_haircolorPainted hair shades follow the new color; see custom_sprite_recolor_hair().
set_lewd_slot_itemSets an item in one of our lewd slots, as get_lewd_slot_item() names them. Returns FALSE when the slot isn't supported.
set_mob_heightSetter for mob height - updates the base height of the mob (which is then adjusted by traits or species)
set_service_styleGives the appearance of being an agent
set_underwear_visibilityShows or hides a single underwear slot by its menu label.
setup_organless_effectsThis proc is for holding effects applied when a mob is missing certain organs It is called very, very early in human init because all humans innately spawn with no organs and gain them during init Gaining said organs removes these effects
singularity_actOverrides the point value that the mob is worth
slow_psykerizeflavorful variant of psykerizing that deals damage and sends messages before calling psykerize()
smart_equip_targetedtake the most recent item out of a slot or place held item in a slot
smell_humanTells this human what [target] smells like, with any scent a partner left on them.
something_horribleDNA HELPER-PROCS
spawn_gibsXenohybrid gib and dust tweaks
sync_custom_sprite_appearanceCopies DNA drawings onto every limb and the head; with refresh_body the body redraw does it through the component.
sync_custom_taur_markingsRefresh only the lower-body snapshot; ordinary limb and donor paint remain independent.
toggle_externalsReturns TRUE if the tank successfully toggles open/closed. Opens the tank only if a breathing apparatus is found.
try_nut_shotChecks to see if it is possible to reach the mob's testicles and influence them through that - i.e. not medicated or unconscious. Knocks down when successful, with a small chance to vomit.
update_ID_cardSecurity HUDs! Basic mode shows only the job.
update_face_offsetUpdates face (as of now, only eye) offsets
update_fitness_limbsGives this body's limbs the muscle size and definition in its DNA: swaps each limb that has fitness subtypes for its family's type at them, digitigrade legs for digitigrade legs, gives the fitness limbs it keeps the definition, and points its species' limb types at them. A limb exempt from species changes stays, as it does in replace_body().
update_garment_fitSets garment_fit from this body's limbs and body shape. A fitness chest also calls it each time it's set up for the body, which sets its male or female art: only a male chest has glutes to fit, and only at the sizes the templates hold ("chest_m").
update_inv_anusUpdating anus slot
update_inv_lewdHelper proc for calling all the lewd slot update_inv_ procs.
update_inv_nipplesUpdating nipples slot
update_inv_penisUpdating penis slot
update_inv_vaginaUpdating vagina slot
update_mob_heightUpdates the mob's height
update_visible_nameUsed to update our name based on whether our face is obscured/disfigured
vv_prefs_target_validWhether the client/preferences captured before an admin prompt still own this live human. BYOND's client.mob relationship identifies the same connection after a body transfer or disconnect.
wall_relay_skips_uniformWhether a wall relay leaves out this person's uniform: a skirt or dress (a skirt bulge family). Pants stay drawn.
washCalled when this human should be washed
wash_handsWash the hands, cleaning either the gloves if equipped and not obscured, otherwise the hands themselves if they're not obscured.

Var Details

afk_thefts

When an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds

base_mob_height

Base height of the mob, modified by stuff like dwarfism or species

blood_in_hands

How many "units of blood" we have on our hands

bra

The selected bra.

bra_color

Color of the bra.

cached_body_height

Combined height of our body sprite

cached_body_min_x_offset

Leftmost offset of our overlays

cached_body_min_y_offset

Rightmost offset of our overlays

cached_body_width

Combined width of our body sprite

chrono_age

Chronological age.

coretemperature

The core temperature of the human compaired to the skin temp of the body

custom_sprite_round_history

Style key -> the style this body had before its last salon change. Drawings may be explicitly null.

eye_color_heterochromatic

Var used to keep track of a human mob having a heterochromatic right eye. To ensure prefs don't overwrite shit

footstep_type

Used for footstep type pref, to apply to any new legs that get added to this mob. Uses a var instead of checking prefs because there are a lot of clientless mob situations.

garment_fit

What this body's garments are fitted to: its fitness arms' and legs' muscle sizes, and its chest's where a male chest's glutes reach past today's, the legs and chest left out on a taur body, which draws none of them; or null when they're all Normal. Kept up to date with its limbs (update_garment_fit()), so drawing a garment only reads it.

genital_layering_panel

The Genital Layering panel for the mob.

grad_color

Colours used for hair and facial hair gradients.

grad_style

Styles used for hair and facial hair gradients.

hair_alpha

Alpha of the hair. Takes precedent over species hair_alpha if non-null.

heat_exposure_stacks

Exposure to damaging heat levels increases stacks, stacks clean over time when temperatures are lower. Stack is consumed to add a wound.

held_hover_color

This is the color of the TK effect for the hands when psionic holding is active.

held_left

This are the TK effect object for the left hand for psionic holding.

held_right

This are the TK effect object for the right hand for psionic holding.

mob_examine_panel

The Examine Panel datum for the mob.

mob_height

Actual height of the mob. Don't touch this one, it is set via update_mob_height()

mutant_renderkey

Render key for mutant bodyparts, utilized to reduce the amount of re-rendering

override_voice

Allows for special overrides of voice

oversized_piggydam

Base damage for oversized piggyback riding.

oversized_piggyknock

Paralyze time for oversized piggyback riding in deciseconds. (10 deciseconds = 1 second)

oversized_piggywound_chance

Chance for oversized to wound someone smaller, if they try to piggyback ride them.

physique

Which body type to use

refractory_period

Used to prevent nightmare scenarios.

seconds_in_low_pressure

Tracks how long in seconds we've been in a low pressure environment

socks_color

Color of the socks

try_hide_mutant_parts

A list of mutant parts the human is trying to hide, read from mutant_renderkey

undershirt_color

Color of the undershirt

underwear_visibility

Flags for showing/hiding underwear, toggleabley by a verb

Proc Details

Initialize

Initializes Voice_Bark

add_blood_DNA_to_items

Adds blood DNA to certain slots the mob is wearing

adjust_arousal

Adjusts the parent human's arousal value based off the value assigned to arous.

adjust_coretemperature

Adjust the core temperature of a mob

vars:

apply_height_filter

Applies a filter to an appearance according to mob height

bulge_cover

The cover garment a bulge shows through, outermost first: a suit unless it is reviewed to leave the groin clear, else a uniform over the groin, else a groin-length undershirt, else the underwear. Null for none, or for a suit that hides the bulge. A garment covers the penis only when it is drawn in front of it: for a penis the player has layered at chosen_layer (bulge_custom_layer()), a garment drawn behind that layer is passed over, as Nova draws the penis over it (Custom "Above underwear" wins over the underwear).

bulge_cover_colour

The cloth colour an adaptive bulge is tinted from: sampled from the cover garment's own sprite (or, for a GAGS garment, its cloth layer), tinted as the garment is drawn. Null when it has none to sample.

bulge_cover_name

What a bulge shows through: the garment its look is drawn on (has_bulge()), or, with none drawn, the outermost of what covered_by_clothing() finds over the groin.

bulge_cut_worn

Cut covers: a cover that reveals when hard (a revealing skirt, a loincloth) is drawn with its lifted part cut away, so the penis the bulge draws behind it shows through (bulge.dm). The cut is swapped in for the drawn sprite of the cover's freshly built worn appearance, after the female and digitigrade masks, the way the digitigrade leg mask swaps a uniform's icon; tg's worn icon caches only ever see the garment's own file and state. What the sprite carries over its own pixels (its emissive blocker, the damaged-clothes overlay, a glow) is cut the same way; a uniform's accessories, worn over the garment, are not. This is the only place a cover's own render is touched, and only for a wearer whose look cuts that cover.

The uniform and underwear renders call bulge_cut_worn() for a wearer with a penis. The look (look.dm) checks the cut each slot was drawn with against the one it wants and draws a cover again when they differ; the penis's genital-updated signal does the same for a uniform as soon as an erection or a size changes, and underclothes are drawn again by the body update an arousal change ends with (redraw.dm).

Returns a cover's freshly built worn appearance with its drawn sprite swapped for its cut, where the wearer's look cuts this cover, and records the cut (or none) the slot is drawn with.

Arguments:

bulge_gags_colour

The cloth colour of a GAGS garment: its cloth layer's greyscale sprite in that layer's palette colour, tinted as the garment is drawn. Only while the garment draws its config's own output (SSgreyscale), so a stale config after a run-time override samples nothing; null then.

bulge_pokes_out

What of the penis its bulge look still shows, for interactions (INTERACTION_REQUIRE_SELF_POKES_OUT and INTERACTION_REQUIRE_TARGET_POKES_OUT) and anything else: BULGE_POKES_PAST_CLOTH while the look draws some of it over the cloth (the tip or head past the garment, what a printed patch leaves bare, the shaft over a revealing skirt), and BULGE_POKES_UNDER_COVER while it draws it behind a cover cut or lifted for it (a revealing skirt or a loincloth, hard); NONE with no look, or one that covers all of it. Any pixel the look draws counts, in any facing: the two-pixel tip past a waistband facing east and west too.

It reads the look as drawn (bulge_resolve()), so it follows the layering, Custom "Above underwear" and suits as the renderer does, and is current as has_bulge() is: a few var reads, no icons. Two looks it does not answer exactly, as the look does not record what of them shows: a penis drawn behind a cover not cut for it (a skirt half hard, a long curtain skirt) shows wherever it reaches past the cover, below the hem or past the curtain, and is not counted; and the smallest Tentacled (Alt) penis under a hard loincloth counts as under the cover, though its drape hides all of it.

bulge_restraint

The underwear worn under a look's cover (bulge_cover()), which holds the penis in unless it lets it out itself (bulge_held_size()): underwear always takes precedence over what is worn over it. It counts while it is worn and drawn, as get_underwear_overlays() draws it, and in front of the penis as the player layered it at chosen_layer (bulge_custom_layer()).

Returns the underwear, or null for none: no underwear, underwear the body does not draw or the penis is layered above, or underwear that is itself the cover.

bulge_suit_unmodified

Whether a suit draws its own default sprite: its type's file, or its type's GAGS output in its type's colours.

bulge_suit_verdict

What a worn suit does to a bulge (BULGE_SUIT_*). A suit leaves the groin clear, or is itself the cover, only in the cells its bulge_suit_rule names: its own unmodified appearance in its default or toggled worn state, on plain or digitigrade legs, on a body its sprites fit (no Vox, custom, taur or Cerulean body), untinted and without offsets.

bulge_uniform_file

The sprite file a uniform is drawn from on this body before any mask, as update_worn_undersuit() picks it: its digitigrade file on digitigrade legs where it has the state, else its own worn file. A uniform fitted to a species (Vox, Teshari and other custom bodies) is sampled from its own worn file.

burn_clothing

Used by fire code to damage worn items.

Arguments:

can_be_ridden_by

Determines if src can be ridden by to_buckle.

Args:

can_breathe_helmet

Returns the helmet if an air tank compatible helmet is equipped.

can_breathe_internals

Returns the object that allows us to breathe internals - tube implant, mask or helmet

can_breathe_mask

Returns the mask if an air tank compatible mask is equipped.

can_still_climax

Whether a climax can go on after a prompt - we still exist and still have ERP on

check_if_off_duty

Checks is the parent mob is currently off duty. Returns FALSE if the mob isn't clocked out.

Arguements

check_organ_damage

Returns the damage of the organ_to_check, if the organ isn't there, the proc returns 100.

check_pocket_weght

Signal proc for COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED to check if an item is suddenly too heavy for our pockets

check_reflect

Reflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object

clean_face

Called on the COMSIG_COMPONENT_CLEAN_FACE_ACT signal

click_alt

alt-clicking a human as another human while grappling them tightly makes you try for grappling-based maneuvers.

climax

Never makes its caller wait - adjust_pleasure() climaxes from Life(), process() and status effects, which must not sleep, and a climax can stop to ask where to finish. Its caller then gets null, and it ends when the player answers.

climax_ask

Asks the climaxing player a question, then checks the climax can still go on.

Arguments:

Returns the answer, null when the prompt was closed, or CLIMAX_LOST when the climax can't go on.

climax_container_in_reach

Resolves a container offered before a prompt, only while it's still in reach and open

climax_containers_in_reach

Gathers the open containers in reach, held weakly for the prompts that follow.

We loop over view() itself, which BYOND doesn't keep, so nothing in reach is held once this returns.

Returns names to weakrefs, same names numbered apart, or null when there are none.

climax_fill

Fills an open container with a climax, spilling at its feet whatever doesn't fit.

Arguments:

Returns CLIMAX_FILL_FITS, CLIMAX_FILL_OVERFLOWED or CLIMAX_FILL_FULL.

climax_from_penis

Lands a penis climax, asking where it goes when the penis is exposed.

Returns FALSE when the climax can't go on, CLIMAX_IN_CLOTHES when it ends up in our clothes, TRUE otherwise.

climax_from_vagina

Lands a vagina climax, offering the open containers in reach when the vagina is exposed.

Returns FALSE when the climax can't go on, CLIMAX_IN_CLOTHES when it ends up in our underwear, TRUE otherwise.

climax_into_partner

Lands a penis climax in or on a partner in reach, asking who and where.

Arguments:

Returns FALSE when the climax can't go on, TRUE otherwise.

climax_partners_in_reach

Gathers the consenting partners in reach, held weakly for the prompts that follow.

We loop over view() itself, which BYOND doesn't keep, so nothing in reach is held once this returns.

Returns humans in view order, then portal relays, names to weakrefs, or null when there are none.

climax_portal_devices_in_reach

Gathers the open portal devices we can climax through, held weakly for the prompts that follow.

That's a device in our hands, or one within a tile that lies out or sits in someone's hands. We loop over view() itself, which BYOND doesn't keep, so nothing in reach is held once this returns.

Returns names to weakrefs, same names numbered apart, or null when there are none.

climax_through_portal_device

Lands a penis climax through a portal device in reach, asking which one when there are several.

A receiver sitting on a penis gets the load on that penis. Any other part it sits on takes it inside.

Arguments:

Returns FALSE when the climax can't go on, TRUE otherwise.

copy_clothing_prefs

copies over clothing preferences like underwear to another human

crewlike_monkify

Proc used to make monkey roles able to function like crew, but not be able to shift into humans easily.

custom_sprite_recolor_hair

Carries painted hair shades along with a hair color change, the way the editor's palette does.

Dyeing or recoloring hair moves paint drawn in the old shades to the matching new shade. Saved custom colors and paint that isn't a hair shade keep their color. Temporary color overrides, which leave the character's own hair color alone, change nothing.

described_armpit

The mob's armpit as interaction text reads it: hair and sweat become adjectives, the hair's by style.

described_bulge

The mob's bulge as interaction text reads it: sweat becomes an adjective.

do_cpr

Performs CPR on the target after a delay.

drop_lewd_slot_item

Drops what one of our lewd slots holds at our feet, locked or not, and empties the slot. Returns the item - the caller redraws the slots.

electrocute_act

Calculates the siemens coeff based on clothing and species, can also restart hearts.

equipOutfit

Override so outfits don't break proteans when they try to force a backpack item from an outfit

equip_species_outfit

A version of equipOutfit that overrides passed in outfits with their entry on the species' outfit override registry

fan_hud_set_fandom

FAN HUDs! For identifying other fans on-sight.

find_nifsoft

Checks to see if a human with a NIF has the nifsoft_to_find type of NIFSoft installed?

force_say

Makes the player force say what's in their current input box. Arguments:

format_scars

For use formatting all of the scars this human has for saving for persistent scarring, returns a string with all current scars/missing limb amputation scars for saving or loading purposes

get_age_text

Reports how old the mob appears to be

get_arousal_examine

Examine lines for our arousal flavor text and a freshly spanked rear. Called by /mob/living/carbon/human/examine().

get_base_mob_height

Gets the mob's base height, ignoring adjustments from traits or species Necessary due to VAR_PRIVATE (it's not used in hot code anyways)

get_blocking_device

The worn device closing off the genital in slot, like a chastity cage, or null.

get_body_hair

This human's armpit or pubic hair style, "None" when there is none.

get_body_hair_cover

Returns what hides this body hair, or null when it shows. Armpit hair shows on a bare chest and under clothing that bares the armpits (GLOB.body_hair_baring_clothing); no bra or underwear hides it. Pubic hair shows on a bare groin and under underwear that bares it. Drawing asks on every body update (is_hidden()), so this allocates nothing.

Arguments:

Returns:

get_body_temp_normal

get_body_temperature Returns the body temperature with any modifications applied

This applies the result from proc/get_body_temp_normal_change() against the bodytemp_normal for the species and returns the result

arguments:

get_clothing_on_part

Get all the clothing on a specific body part

get_configurable_genitals

Every genital that should appear in configuration menus.

get_dnr_examine

Examine lines warning HUD users that we're not to be revived. Called by /mob/living/carbon/human/examine().

get_empath_examine

Examine lines letting empaths read how aroused we are. Called by /mob/living/carbon/human/examine().

get_equipped_items

Used to return a list of equipped items on a human mob; does not by default include held items, see include_flags

Argument(s):

get_genital_description_lines

Builds the per-genital description lines shown behind the "[Look closer...]" link, skipping skipped_slots.

get_lewd_slot_item

Gets the item held in one of our lewd slots: an ORGAN_SLOT_* genital, or BODY_ZONE_PRECISE_MOUTH.

get_medhud_examine_info

Collects information displayed about src when examined by a user with a medical HUD.

get_mismatched_limb_text

Reports all body parts which are mismatched with the user's species

get_missing_organs

Returns a list of all missing organs this species should have

list [key] is the ORGAN_SLOT missing an organ, list value is the text name of the slot organ

get_num_feet

Gets the number of feet the human has.

get_underwear_overlays

Returns a list of all underclothing overlays to be applied to the mob

get_underwear_ui_entries

The per-slot underwear entries every configuring UI sends to tgui.

get_visible_name

Combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a separate proc as it'll be useful elsewhere

get_worn_portal_route

A route to this mob through the device linked to a receiver they are wearing, when user can reach that device.

give_emote_overlay

Creates a new emote bodypart overlay and applies it to the human. The overlay can be removed by simply deleting the returned overlay.

Returns the given overlay, which can be deleted to stop displaying it. Will return null if no bodypart matching the overlay's attached_body_zone field can be found.

handle_environment

Environment handlers for species

hardset_dna

Sets the DNA of the mob to the given DNA.

has_anus

Returns true if the human has an accessible anus for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_arms

Returns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.

has_balls

Returns true if the human has a accessible balls for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_breasts

Returns true if the human has a accessible breasts for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_bulge

Whether the human's penis shows as a bulge: whether its overlay drew a bulge look in the last body update (the bulge module's bulge.dm), so a bulge interaction is on offer just when one is drawn. Not under a suit that hides it, on underwear the body does not draw, on a garment that draws none, or with the penis layered above its only cover.

It stays current because whatever starts or ends a look (arousal, clothing, a device, layering, organs) ends in the body update that resolves it; asked between such a change and its body update, it answers what is still drawn.

has_custom_hair

Whether the head carries custom paint for any of targets (HEAD_HAIR, HEAD_FACIAL_HAIR). Paint is hair, even over a bald or shaved base style.

has_ears

Returns true if the human has a accessible ears for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_exposed_genitals

Returns TRUE if any genital outside skipped_slots is currently exposed. Backs the "[Look closer...]" examine link.

has_eyes

Returns true if the human has accessible eyes for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_feet

Returns true if the human has a accessible feet for the parameter, returning the number of feet the human has if they do. Accepts any of the REQUIRE_GENITAL_ defines.

has_nippleless_pecs

Whether the human's chest is pecs drawn without nipples.

has_pecs

Whether the human's chest is pecs rather than breasts.

has_penis

Returns true if the human has an accessible penis for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_tail

Returns true if the human has accessible tail for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

has_vagina

Returns true if the human has an accessible vagina for the parameter. Accepts any of the REQUIRE_GENITAL_ defines.

increment_scar_slot

When we're joining the game in /mob/dead/new_player/proc/create_character, we increment our scar slot then store the slot in our mind datum.

infuse_organ

Attempt to replace/add-to the occupant's organs with "mutated" equivalents. Returns TRUE on success, FALSE on failure. Requires the target mob to have an existing organic organ to "mutate".

invisible_man_toggle

When TRAIT_INVISIBLE_MAN is added or removed we need to update a few things

is_barefoot

Are we wearing something that covers our shoes?

is_bottomless

Are we wearing something that covers our groin?

is_topless

Are we wearing something that covers our chest?

is_visibly_sweaty

Whether this mob visibly reads as sweaty to interaction text. The hook for the dirt and sweat overlays: report their sweat state here once they land. Until then nobody reads as sweaty, so *_sweaty interaction text ships dormant.

is_wearing_condom

Checks if the human is wearing a condom, and also hasn't broken it.

leave_scent_on

Leaves this human's scent on [receiver] when this one gives scents and the receiver takes them.

load_nif_data

Loads the NIF data for an individual user.

load_persistent_scars

Read all the scars we have for the designated character/scar slots, verify they're good/dump them if they're old/wrong format, create them on the user, and write the scars that passed muster back to the file

load_scar

Takes a single scar from the persistent scar loader and recreates it from the saved data

make_full_human_copy

Makes a full copy of src and returns it. Attempts to copy as much as possible to be a close to the original. This includes job outfit (which handles skillchips), quirks, and mutations. We do not set a mind here, so this is purely the body. Args: location - The turf the human will be spawned on.

match_frills_to_tail

Repaints the frills, DNA included, in the tail's colour. For bodies whose tail changes colour after their frills grow.

no_underwear_toggle

When TRAIT_NO_UNDERWEAR is added or removed we need to update our body to hide or show underwear sprites

on_dwarf_trait

Gaining or losing [TRAIT_DWARF] updates our height and grants passtable

on_tootall_trait

Gaining or losing TRAIT_TOO_TALL updates our height

pick_infusion_organ

Picks a random mutated organ from the given infuser entry which is also compatible with this human. Tries to return a typepath of a valid mutant organ if all of the following criteria are true:

  1. Target must have a pre-existing organ in the same organ slot as the new organ;
  1. Target's pre-existing organ must be organic / not robotic.
  2. Target must not have the same/identical organ.

portal_hides_bulge

Whether this human draws no bulge look (bulge_resolve()): while wall-stuck, as a wall relay shows the hips and butt alone. A gloryhole draws one the penis pokes out of (can_relay()).

portal_relays_interaction

Whether interaction touches a part of this mob that a portal is showing somewhere else right now.

portal_target_is_accessible

Returns whether this mob can put one of their own parts against a portal device.

This is the device end only. The receiver end sits on its part underneath any clothing, so it never checks this. Genitals follow the same exposure rule as a face to face interaction, sheathed or not. The mouth only needs to be free of a mask or helmet that covers it, so oral works while clothed.

Arguments:

psykerize

Proc with no side effects that turns someone into a psyker. returns FALSE if it could not psykerize.

randomize_human_appearance

Fully randomizes everything according to the given flags.

redraw_dirt

Draws again what masks finished for this body would change.

Arguments:

redraw_fitted_garments

Draws again a body's slots whose garments' fits have finished.

Arguments:

refit_worn_clothing

Redraws the worn clothing fitted to this body's fitness limbs, its uniform, suit, shoes and gloves, after a fitness limb comes or goes. Inside a render batch (STOP_OVERLAY_UPDATE_BODY_PARTS) it's left to whoever ends the batch.

remove_custom_hair

Takes custom paint off targets (HEAD_HAIR, HEAD_FACIAL_HAIR) for the round along with the hair a shave or a cut to bald removes, redrawing once. Returns TRUE when there was paint.

render_only_head

Makes all aspects of the mob invisibile but the head and its associated sprites

resolve_climax_partner

Resolves a partner offered before a climax prompt, only while they are still in reach and consenting.

The reference is either a nearby human, or a wall portal relay standing in for the occupant it projects.

return_items_to_console

Returns any items inside of the items_to_send list to a cryo console on station.

ride_saddle

Attempts to have buckling ride on our saddle, if we have one.

save_individual_persistence

Saves the persistence data for the owner.

save_nif_data

Saves the NIF data for a individual user.

save_persistent_scars

Save any scars we have to our designated slot, then write our current slot so that the next time we call /mob/living/carbon/human/proc/increment_scar_slot (the next round we join), we'll be there

send_applicable_messages

Any "special" suicide messages are handled by the related item that the mob uses to kill itself. This is just messages for when it's done with the bare hands.

set_all_underwear_visibility

Shows or hides every underwear slot at once.

set_body_hair

Sets this human's armpit or pubic hair to style, growing, restyling or removing the organ to match.

set_eye_color

Sets both mob's and eye organ's eye color values If color_right is not passed, its assumed to be the same as color_left

set_facial_haircolor

Painted facial hair shades follow the new color; see custom_sprite_recolor_hair().

set_gender

Sets the gender of the human, respecting prefs unless it's forced. Do not force in non-admin operations.

set_haircolor

Painted hair shades follow the new color; see custom_sprite_recolor_hair().

set_lewd_slot_item

Sets an item in one of our lewd slots, as get_lewd_slot_item() names them. Returns FALSE when the slot isn't supported.

set_mob_height

Setter for mob height - updates the base height of the mob (which is then adjusted by traits or species)

set_service_style

Gives the appearance of being an agent

set_underwear_visibility

Shows or hides a single underwear slot by its menu label.

setup_organless_effects

This proc is for holding effects applied when a mob is missing certain organs It is called very, very early in human init because all humans innately spawn with no organs and gain them during init Gaining said organs removes these effects

singularity_act

Overrides the point value that the mob is worth

slow_psykerize

flavorful variant of psykerizing that deals damage and sends messages before calling psykerize()

smart_equip_targeted

take the most recent item out of a slot or place held item in a slot

smell_human

Tells this human what [target] smells like, with any scent a partner left on them.

something_horrible

DNA HELPER-PROCS

spawn_gibs

Xenohybrid gib and dust tweaks

sync_custom_sprite_appearance

Copies DNA drawings onto every limb and the head; with refresh_body the body redraw does it through the component.

sync_custom_taur_markings

Refresh only the lower-body snapshot; ordinary limb and donor paint remain independent.

toggle_externals

Returns TRUE if the tank successfully toggles open/closed. Opens the tank only if a breathing apparatus is found.

try_nut_shot

Checks to see if it is possible to reach the mob's testicles and influence them through that - i.e. not medicated or unconscious. Knocks down when successful, with a small chance to vomit.

update_ID_card

Security HUDs! Basic mode shows only the job.

update_face_offset

Updates face (as of now, only eye) offsets

update_fitness_limbs

Gives this body's limbs the muscle size and definition in its DNA: swaps each limb that has fitness subtypes for its family's type at them, digitigrade legs for digitigrade legs, gives the fitness limbs it keeps the definition, and points its species' limb types at them. A limb exempt from species changes stays, as it does in replace_body().

The swap is one render batch. It draws only the worn clothing fitted to the limbs when it ends the batch (refit_worn_clothing()): the preferences that call it are applied before the body is drawn. A new definition alone changes no fit, and is drawn with the body.

update_garment_fit

Sets garment_fit from this body's limbs and body shape. A fitness chest also calls it each time it's set up for the body, which sets its male or female art: only a male chest has glutes to fit, and only at the sizes the templates hold ("chest_m").

update_inv_anus

Updating anus slot

update_inv_lewd

Helper proc for calling all the lewd slot update_inv_ procs.

update_inv_nipples

Updating nipples slot

update_inv_penis

Updating penis slot

update_inv_vagina

Updating vagina slot

update_mob_height

Updates the mob's height

Mainly so that dwarfism can adjust height without needing to override existing height

Returns a mob height num

update_visible_name

Used to update our name based on whether our face is obscured/disfigured

vv_prefs_target_valid

Whether the client/preferences captured before an admin prompt still own this live human. BYOND's client.mob relationship identifies the same connection after a body transfer or disconnect.

wall_relay_skips_uniform

Whether a wall relay leaves out this person's uniform: a skirt or dress (a skirt bulge family). Pants stay drawn.

wash

Called when this human should be washed

wash_hands

Wash the hands, cleaning either the gloves if equipped and not obscured, otherwise the hands themselves if they're not obscured.

Returns false if we couldn't wash our hands due to them being obscured, otherwise true