From a42406d731fc054981e7cb2fd60ffcddb9d30aa9 Mon Sep 17 00:00:00 2001
From: chel <64568243+iliyaxox@users.noreply.github.com>
Date: Thu, 8 Jan 2026 03:33:32 -0300
Subject: [PATCH] Fixes ambiguous_genders to only obscure gender from other
species (#7460)
## About The Pull Request
Fixes #7163
Previously, species with `ambiguous_genders = TRUE` would be forced to
display they pronouns when examined by anyone, even by themselves and
other members of the same species, as well as ghosts and silicons. Now,
as the var's comment intended, pronouns are properly displayed if
examined by a member of the same species, ghosts and/or silicons.
Otherwise, it'll be displayed as they. Also added a message at the
bottom of the examine for further context.
### When examined by outsider:
### When examined by kin (or yourself):
## Why It's Good For The Game
Bug fix & consistency
## Changelog
:cl:Chelxox
fix: Species which gender definition is unknown/undefinable to outsiders
now display their proper pronouns when examined by members of their own
species, ghosts and silicons, whilst maintaining "they" pronouns to
those who don't are not members of the same species.
/:cl:
---
code/modules/mob/living/carbon/human/examine.dm | 17 ++++++++++++++---
code/modules/mob/living/carbon/human/human.dm | 4 +---
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 9a5244888f5..a0edca65295 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -80,17 +80,24 @@
var/skipface = (wear_mask && (wear_mask.inv_hide_flags & HIDEFACE)) || (head && (head.inv_hide_flags & HIDEFACE))
var/datum/gender/T = GLOB.gender_datums[get_visible_gender()]
+ var/gender_obscured_by_species = FALSE // for different species examine
if((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)) //big suits/masks/helmets make it hard to tell their gender
T = GLOB.gender_datums[PLURAL]
else if(species && species.ambiguous_genders)
- if(ishuman(user))
+ // ghosts are omnipotent and omniscient. borgs are logical and precise. whatever. they identify anyone's gender
+ if(issilicon(user) || isobserver(user))
+ else if(ishuman(user))
var/mob/living/carbon/human/H = user
+ // only obscure gender if examiner is a different species
if(H.species && !istype(species, H.species))
- T = GLOB.gender_datums[PLURAL]// Species with ambiguous_genders will not show their true gender upon examine if the examiner is not also the same species.
- if(!(issilicon(user) || isobserver(user))) // Ghosts and borgs are all knowing
+ T = GLOB.gender_datums[PLURAL]
+ gender_obscured_by_species = TRUE
+ else
+ // non-human, non-silicon, non-observer examining
T = GLOB.gender_datums[PLURAL]
+ gender_obscured_by_species = TRUE
//! Just in case someone VVs the gender to something strange.
//! It'll runtime anyway when it hits usages, better to CRASH() now with a helpful message.
@@ -481,6 +488,10 @@
. += applying_pressure
+ // Add message if gender is obscured by species differences
+ if(gender_obscured_by_species)
+ . += SPAN_INFO("[T.He] [T.is] a different species. You don't have the scientific knowledge to figure out [T.his] exact gender...")
+
var/show_descs = show_descriptors_to(user)
if(show_descs)
. += SPAN_NOTICE("[jointext(show_descs, "\n")]")
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index c983972408e..28991a2cb2c 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -869,9 +869,7 @@
/mob/living/carbon/human/get_visible_gender()
if(wear_suit && wear_suit.inv_hide_flags & HIDEJUMPSUIT && ((head && head.inv_hide_flags & HIDEMASK) || wear_mask))
return PLURAL //plural is the gender-neutral default
- if(species)
- if(species.ambiguous_genders)
- return PLURAL // regardless of what you're wearing, your gender can't be figured out
+ //! attention! ambiguous_genders is now handled contextually in examine.dm based on who is examining
return get_gender()
/mob/living/carbon/human/proc/increase_germ_level(n)