diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index c8e24a15f9d9..f686126bfcc2 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -260,6 +260,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
for(var/datum/preference_middleware/preference_middleware as anything in middleware)
preference_middleware.post_set_preference(ui.user, requested_preference_key, value)
+ requested_preference.post_set_preference(ui.user, value) // DARKPACK EDIT ADD - SPLATS - (lore primers)
return TRUE
if ("set_color_preference")
var/requested_preference_key = params["preference"]
diff --git a/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm b/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm
index 27004194aab9..6a4c443e0919 100644
--- a/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm
+++ b/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm
@@ -4,3 +4,7 @@
/// If set to TRUE, only apply preference to the mob if it acctually shows up on there sheet
var/must_be_accessible = FALSE
+
+/datum/preference/proc/post_set_preference(mob/user, value)
+ SHOULD_CALL_PARENT(FALSE)
+ return
diff --git a/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm b/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm
index dd68b8e11346..09c42a3cd9c1 100644
--- a/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm
+++ b/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm
@@ -16,6 +16,8 @@
var/name
/// Description of what the splat is and what it does
var/desc
+ /// If set, the roleplay level that is displayed in prefrences as a guide to players.
+ var/roleplay_level
/// ID for trait sources and whatnot
var/id
@@ -64,3 +66,10 @@
joining.put_in_r_hand(new subsplat_keys(joining))
UnregisterSignal(joining, COMSIG_MOB_LOGIN)
+
+/// Displays description and roleplay level of the subsplat.
+/datum/subsplat/proc/show_lore(mob/user)
+ if(desc)
+ to_chat(user, span_notice("[uppertext(name)]
[desc]"))
+ if(roleplay_level)
+ to_chat(user, span_notice("
ROLEPLAY LEVEL: [roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that auspice, are as follows: Beginner Friendly, Intermediate, Advanced."))
diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm
index c2545c4ff6c3..cfb3c6c1821f 100644
--- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm
+++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm
@@ -13,3 +13,7 @@
/datum/preference/choiced/subsplat/vampire_clan/apply_to_human(mob/living/carbon/human/target, value)
var/joining_round = !isdummy(target)
target.set_clan(value, joining_round)
+
+/datum/preference/choiced/subsplat/vampire_clan/post_set_preference(mob/user, value)
+ var/datum/subsplat/vampire_clan/clan = get_vampire_clan(value)
+ clan?.show_lore(user)
diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm
index 9afffe9d5f73..44fd86800485 100644
--- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm
+++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm
@@ -22,6 +22,10 @@
var/joining_round = !isdummy(target)
target.set_auspice(value, joining_round)
+/datum/preference/choiced/subsplat/fera_auspice/post_set_preference(mob/user, value)
+ var/datum/subsplat/werewolf/auspice/auspice = get_fera_auspice(value)
+ auspice?.show_lore(user)
+
/datum/preference/choiced/subsplat/fera_auspice/is_accessible(datum/preferences/preferences)
. = ..()
var/datum/splat/splat_path = preferences.read_preference(/datum/preference/choiced/splats)
diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm
index c325a73d7c36..91721e020a9d 100644
--- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm
+++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm
@@ -25,6 +25,10 @@
var/joining_round = !isdummy(target)
target.set_breed_form(value, joining_round)
+/datum/preference/choiced/subsplat/fera_breed/post_set_preference(mob/user, value)
+ var/datum/subsplat/werewolf/breed_form/breed = get_fera_breed_form(value)
+ breed?.show_lore(user)
+
/datum/preference/choiced/subsplat/fera_breed/is_accessible(datum/preferences/preferences)
. = ..()
var/datum/splat/splat_path = preferences.read_preference(/datum/preference/choiced/splats)
diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm
index 20ee26de9950..d27e9b97dd0a 100644
--- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm
+++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm
@@ -22,6 +22,10 @@
var/joining_round = !isdummy(target)
target.set_fera_tribe(value, joining_round)
+/datum/preference/choiced/subsplat/fera_tribe/post_set_preference(mob/user, value)
+ var/datum/subsplat/werewolf/tribe/tribe = get_fera_tribe(value)
+ tribe?.show_lore(user)
+
/datum/preference/choiced/subsplat/fera_tribe/is_accessible(datum/preferences/preferences)
. = ..()
var/datum/splat/splat_path = preferences.read_preference(/datum/preference/choiced/splats)