diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index fa3524c457c..1946b8da638 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -53,7 +53,7 @@
"p_stat" = list("*Deceased*", "*SSD*", "Active", "Physically Unfit", "Disabled"),
"m_stat" = list("*Insane*", "*Unstable*", "*Watch*", "Stable"),
// Medical
- "blood_type" = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"),
+ "blood_type" = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-", "Slime Jelly", "None"),
)
/obj/machinery/computer/med_data/Destroy()
diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm
index 9f77a378a8b..c5fc0a3b65b 100644
--- a/code/modules/client/preference/preferences.dm
+++ b/code/modules/client/preference/preferences.dm
@@ -207,7 +207,15 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
dat += "Secondary Language: [active_character.language]
"
if(S.autohiss_basic_map)
dat += "Auto-accent: [active_character.autohiss_mode == AUTOHISS_FULL ? "Full" : (active_character.autohiss_mode == AUTOHISS_BASIC ? "Basic" : "Off")]
"
- dat += "Blood Type: [active_character.b_type]
"
+ if(NO_BLOOD in S.species_traits) // unique blood type for species with no_blood/unique_blood
+ active_character.b_type = "None"
+ else
+ if(active_character.species == "Slime People")
+ active_character.b_type = "Slime Jelly"
+ else
+ if(active_character.b_type == "None" || active_character.b_type == "Slime Jelly")
+ active_character.b_type = pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+")
+ dat += "Blood Type: [active_character.b_type]
"
if(S.bodyflags & (HAS_SKIN_TONE|HAS_ICON_SKIN_TONE))
dat += "Skin Tone: [S.bodyflags & HAS_ICON_SKIN_TONE ? "[active_character.s_tone]" : "[-active_character.s_tone + 35]/220"]
"
dat += "Disabilities: \[Set\]
"