diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm
index 44b58252052..d0b93c78410 100644
--- a/code/__defines/chemistry.dm
+++ b/code/__defines/chemistry.dm
@@ -37,6 +37,8 @@
#define CE_ALCOHOL "alcohol" // Liver filtering
#define CE_ALCOHOL_TOXIC "alcotoxic" // Liver damage
#define CE_SPEEDBOOST "gofast" // Hyperzine
+#define CE_BERSERK "berserk"
+#define CE_PACIFIED "pacified"
// Chemistry lists.
var/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine") // Increase heart rate.
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 7ecd20df854..d741a25cab0 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -61,7 +61,7 @@ avoid code duplication. This includes items that may sometimes act as a standard
if(M == user && user.a_intent != I_HURT)
return 0
- if(user.disabilities & PACIFIST)
+ if(user.is_pacified())
return 0
/////////////////////////
diff --git a/code/game/modifiers/modifiers_chem.dm b/code/game/modifiers/modifiers_chem.dm
index 3da6a229411..af010976819 100644
--- a/code/game/modifiers/modifiers_chem.dm
+++ b/code/game/modifiers/modifiers_chem.dm
@@ -109,4 +109,46 @@
var/mob/living/L = target
if(L.fire_stacks)
return 1
- return 0
\ No newline at end of file
+ return 0
+
+//Berserk Modifier
+//Causes a hulk like effect
+
+/datum/modifier/berserk
+ var/last_shock_stage = 0
+
+/datum/modifier/berserk/activate()
+ ..()
+ if(ishuman(target))
+ var/mob/living/carbon/human/H = target
+ to_chat(H, "An uncontrollable rage overtakes your thoughts!")
+ H.add_client_color(/datum/client_color/berserk)
+
+ last_shock_stage = H.shock_stage
+ H.shock_stage = 0
+
+ H.SetParalysis(0)
+ H.SetStunned(0)
+ H.SetWeakened(0)
+ H.setHalLoss(0)
+ H.lying = 0
+ H.update_canmove()
+
+/datum/modifier/berserk/process()
+ if(..())
+ if(ishuman(target))
+ var/mob/living/carbon/human/H = target
+ H.drowsyness = max(H.drowsyness - 5, 0)
+ H.AdjustParalysis(-1)
+ H.AdjustStunned(-1)
+ H.AdjustWeakened(-1)
+ H.adjustHalLoss(-1)
+
+/datum/modifier/berserk/deactivate()
+ ..()
+ if(ishuman(target))
+ var/mob/living/carbon/human/H = target
+ to_chat(H, "Your rage fades away, your thoughts are clear once more!")
+ H.remove_client_color(/datum/client_color/berserk)
+
+ H.shock_stage = last_shock_stage
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index f7356af2e0c..8b33c82f436 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -114,7 +114,7 @@
var/stun = stunforce
var/mob/living/L = M
- if(user.disabilities & PACIFIST)
+ if(user.is_pacified())
to_chat(user, "You don't want to risk hurting [M]!")
return 0
diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm
index 19e5102f0c9..68373acfc70 100644
--- a/code/game/objects/random/random.dm
+++ b/code/game/objects/random/random.dm
@@ -193,6 +193,9 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap = 2,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris = 2,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/destroyingangel = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/ghostmushroom = 0.5,
/obj/item/seeds/ambrosiavulgarisseed = 2,
/obj/item/seeds/ambrosiadeusseed = 1,
/obj/item/clothing/mask/gas/voice = 1,
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 42a6b1a4fe2..4be9dd14c1f 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -184,7 +184,7 @@
if (istype(usr,/mob/living/carbon/human))
var/mob/living/carbon/human/H = usr
- if(H.species.can_shred(H))
+ if(H.species.can_shred(H) || (H.is_berserk()))
attack_generic(H,25)
return
diff --git a/code/modules/client/client_color.dm b/code/modules/client/client_color.dm
index 72244ad7fa4..26dfd75b830 100644
--- a/code/modules/client/client_color.dm
+++ b/code/modules/client/client_color.dm
@@ -68,4 +68,8 @@
/datum/client_color/tritanopia
client_color = list(0.95,0.07,0, 0,0.44,0.52, 0.05,0.49,0.48)
+ priority = 100
+
+/datum/client_color/berserk
+ client_color = "#AF111C"
priority = 100
\ No newline at end of file
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 639a4a31720..3c68a40a632 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -321,14 +321,6 @@
seed.do_thorns(H,src)
seed.do_sting(H,src,pick("r_hand","l_hand"))
-// Predefined types for placing on the map.
-
-/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap
- plantname = "libertycap"
-
-/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
- plantname = "ambrosia"
-
/obj/item/weapon/reagent_containers/food/snacks/fruit_slice
name = "fruit slice"
desc = "A slice of some tasty fruit."
diff --git a/code/modules/hydroponics/grown_predefined.dm b/code/modules/hydroponics/grown_predefined.dm
index 82facf30d7a..d0e9e7a1b66 100644
--- a/code/modules/hydroponics/grown_predefined.dm
+++ b/code/modules/hydroponics/grown_predefined.dm
@@ -1,3 +1,23 @@
+// Predefined types for placing on the map.
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom
+ plantname = "amanita"
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap
+ plantname = "libertycap"
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom
+ plantname = "glowshroom"
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi
+ plantname = "reishi"
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/destroyingangel
+ plantname = "destroyingangel"
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/ghostmushroom
+ plantname = "ghostmushroom"
+
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
plantname = "ambrosia"
@@ -6,6 +26,6 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/kois
plantname = "koisspore"
-
+
/obj/item/weapon/reagent_containers/food/snacks/grown/banana
plantname = "banana"
diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm
index 24dbcda26f4..be1783f444e 100644
--- a/code/modules/hydroponics/seed_datums.dm
+++ b/code/modules/hydroponics/seed_datums.dm
@@ -497,7 +497,7 @@
name = "libertycap"
seed_name = "liberty cap"
display_name = "liberty cap mushrooms"
- mutants = null
+ mutants = list("ghostmushroom")
chems = list("nutriment" = list(1), "stoxin" = list(3,3), "space_drugs" = list(1,25))
/datum/seed/mushroom/hallucinogenic/strong/setup_traits()
@@ -614,6 +614,26 @@
set_trait(TRAIT_PLANT_COLOUR,"#E6E6E6")
set_trait(TRAIT_PLANT_ICON,"mushroom10")
+/datum/seed/mushroom/ghost
+ name = "ghostmushroom"
+ seed_name = "ghost mushroom"
+ display_name = "ghost mushroom"
+ mutants = null
+ chems = list("spectrocybin" = list(5,15))
+
+/datum/seed/mushroom/ghost/setup_traits()
+ ..()
+ set_trait(TRAIT_MATURATION,5)
+ set_trait(TRAIT_PRODUCTION,4)
+ set_trait(TRAIT_YIELD,2)
+ set_trait(TRAIT_POTENCY,8)
+ set_trait(TRAIT_BIOLUM,1)
+ set_trait(TRAIT_BIOLUM_COLOUR,"#64B8C9")
+ set_trait(TRAIT_PRODUCT_ICON,"mushroom8")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#64B8C9")
+ set_trait(TRAIT_PLANT_COLOUR,"#64B8C9")
+ set_trait(TRAIT_PLANT_ICON,"mushroom3")
+
//Flowers/varieties
/datum/seed/flower
name = "harebells"
@@ -1165,111 +1185,6 @@
set_trait(TRAIT_IDEAL_HEAT, 283)
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
-/datum/seed/telriis
- name = "telriis"
- seed_name = "telriis"
- display_name = "telriis grass"
- chems = list("pwine" = list(1,5), "nutriment" = list(1,6))
-
-/datum/seed/telriis/setup_traits()
- ..()
- set_trait(TRAIT_PLANT_ICON,"telriis")
- set_trait(TRAIT_ENDURANCE,50)
- set_trait(TRAIT_MATURATION,5)
- set_trait(TRAIT_PRODUCTION,5)
- set_trait(TRAIT_YIELD,4)
- set_trait(TRAIT_POTENCY,5)
-
-/datum/seed/thaadra
- name = "thaadra"
- seed_name = "thaa'dra"
- display_name = "thaa'dra lichen"
- chems = list("frostoil" = list(1,5),"nutriment" = list(1,5))
-
-/datum/seed/thaadra/setup_traits()
- ..()
- set_trait(TRAIT_PLANT_ICON,"thaadra")
- set_trait(TRAIT_ENDURANCE,10)
- set_trait(TRAIT_MATURATION,5)
- set_trait(TRAIT_PRODUCTION,9)
- set_trait(TRAIT_YIELD,2)
- set_trait(TRAIT_POTENCY,5)
-
-/datum/seed/jurlmah
- name = "jurlmah"
- seed_name = "jurl'mah"
- display_name = "jurl'mah reeds"
- chems = list("serotrotium" = list(1,5),"nutriment" = list(1,5))
-
-/datum/seed/jurlmah/setup_traits()
- ..()
- set_trait(TRAIT_PLANT_ICON,"jurlmah")
- set_trait(TRAIT_ENDURANCE,12)
- set_trait(TRAIT_MATURATION,8)
- set_trait(TRAIT_PRODUCTION,9)
- set_trait(TRAIT_YIELD,3)
- set_trait(TRAIT_POTENCY,10)
-
-/datum/seed/amauri
- name = "amauri"
- seed_name = "amauri"
- display_name = "amauri plant"
- chems = list("zombiepowder" = list(1,10),"condensedcapsaicin" = list(1,5),"nutriment" = list(1,5))
-
-/datum/seed/amauri/setup_traits()
- ..()
- set_trait(TRAIT_PLANT_ICON,"amauri")
- set_trait(TRAIT_ENDURANCE,10)
- set_trait(TRAIT_MATURATION,8)
- set_trait(TRAIT_PRODUCTION,9)
- set_trait(TRAIT_YIELD,4)
- set_trait(TRAIT_POTENCY,10)
-
-/datum/seed/gelthi
- name = "gelthi"
- seed_name = "gelthi"
- display_name = "gelthi plant"
- chems = list("stoxin" = list(1,5),"capsaicin" = list(1,5),"nutriment" = list(1,5))
-
-/datum/seed/gelthi/setup_traits()
- ..()
- set_trait(TRAIT_PLANT_ICON,"gelthi")
- set_trait(TRAIT_ENDURANCE,15)
- set_trait(TRAIT_MATURATION,6)
- set_trait(TRAIT_PRODUCTION,6)
- set_trait(TRAIT_YIELD,2)
- set_trait(TRAIT_POTENCY,1)
-
-/datum/seed/vale
- name = "vale"
- seed_name = "vale"
- display_name = "vale bush"
- chems = list("paracetamol" = list(1,5),"dexalin" = list(1,2),"nutriment"= list(1,5))
-
-/datum/seed/vale/setup_traits()
- ..()
- set_trait(TRAIT_PLANT_ICON,"vale")
- set_trait(TRAIT_ENDURANCE,15)
- set_trait(TRAIT_MATURATION,8)
- set_trait(TRAIT_PRODUCTION,10)
- set_trait(TRAIT_YIELD,3)
- set_trait(TRAIT_POTENCY,3)
-
-/datum/seed/surik
- name = "surik"
- seed_name = "surik"
- display_name = "surik vine"
- chems = list("impedrezene" = list(1,3),"synaptizine" = list(1,2),"nutriment" = list(1,5))
-
-/datum/seed/surik/setup_traits()
- ..()
- set_trait(TRAIT_PLANT_ICON,"surik")
- set_trait(TRAIT_ENDURANCE,18)
- set_trait(TRAIT_MATURATION,7)
- set_trait(TRAIT_PRODUCTION,7)
- set_trait(TRAIT_YIELD,3)
- set_trait(TRAIT_POTENCY,3)
-
// Alien weeds.
/datum/seed/xenomorph
name = "xenomorph"
diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm
index ce3341450be..84338a6414b 100644
--- a/code/modules/hydroponics/seed_packets.dm
+++ b/code/modules/hydroponics/seed_packets.dm
@@ -261,27 +261,6 @@ var/global/list/plant_seed_sprites = list()
/obj/item/seeds/kudzuseed
seed_type = "kudzu"
-/obj/item/seeds/jurlmah
- seed_type = "jurlmah"
-
-/obj/item/seeds/amauri
- seed_type = "amauri"
-
-/obj/item/seeds/gelthi
- seed_type = "gelthi"
-
-/obj/item/seeds/vale
- seed_type = "vale"
-
-/obj/item/seeds/surik
- seed_type = "surik"
-
-/obj/item/seeds/telriis
- seed_type = "telriis"
-
-/obj/item/seeds/thaadra
- seed_type = "thaadra"
-
/obj/item/seeds/koisspore
seed_type = "koisspore"
@@ -308,3 +287,6 @@ var/global/list/plant_seed_sprites = list()
/obj/item/seeds/onionseed
seed_type = "onion"
+
+/obj/item/seeds/ghostmushroomseed
+ seed_type = "ghostmushroom"
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index d92ba5f775a..906ed507eef 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -294,7 +294,7 @@ var/list/slot_equipment_priority = list( \
var/turf/end_T = get_turf(target)
if(start_T && end_T)
var/mob/M = item
- if(disabilities & PACIFIST)
+ if(is_pacified())
to_chat(src, "You gently let go of [M].")
src.remove_from_mob(item)
item.loc = src.loc
@@ -314,7 +314,7 @@ var/list/slot_equipment_priority = list( \
src.remove_from_mob(item)
item.loc = src.loc
- if(disabilities & PACIFIST)
+ if(is_pacified())
to_chat(src, "You set [item] down gently on the ground.")
return
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index efd09c3e4e3..b4cb4ccba7e 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -412,3 +412,12 @@
if(!species)
return null
return species.default_language ? all_languages[species.default_language] : null
+
+/mob/living/carbon/is_berserk()
+ return (CE_BERSERK in chem_effects)
+
+/mob/living/carbon/is_pacified()
+ if(disabilities & PACIFIST)
+ return TRUE
+ if(CE_PACIFIED in chem_effects)
+ return TRUE
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 3b864eeafb1..6d635cb0d32 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -827,14 +827,22 @@
return 1
/mob/living/carbon/human/IsAdvancedToolUser(var/silent)
+
+ if(is_berserk())
+ if(!silent)
+ src << "You are in no state to use that!"
+ return 0
+
if(!species.has_fine_manipulation)
if(!silent)
src << "You don't have the dexterity to use that!"
return 0
+
if(disabilities & MONKEYLIKE)
if(!silent)
src << "You don't have the dexterity to use that!"
return 0
+
return 1
/mob/living/carbon/human/abiotic(var/full_body = 0)
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index 3b256482759..80bbb8d084a 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -146,7 +146,7 @@
if(I_GRAB)
if(M == src || anchored)
return 0
- if(M.disabilities & PACIFIST)
+ if(M.is_pacified())
to_chat(M, "You don't want to risk hurting [src]!")
return 0
@@ -184,7 +184,7 @@
return 1
if(I_HURT)
- if(M.disabilities & PACIFIST)
+ if(M.is_pacified())
to_chat(M, "You don't want to risk hurting [src]!")
return 0
@@ -331,7 +331,7 @@
apply_damage(real_damage, hit_dam_type, hit_zone, armour, sharp=is_sharp, edge=is_edge)
if(I_DISARM)
- if(M.disabilities & PACIFIST)
+ if(M.is_pacified())
to_chat(M, "You don't want to risk hurting [src]!")
return 0
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index ca8c61ebd00..b2bdb8e8d97 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -503,7 +503,7 @@ emp_act
/mob/living/carbon/human/proc/grabbedby(mob/living/carbon/human/user,var/supress_message = 0)
if(user == src || anchored)
return 0
- if(user.disabilities & PACIFIST)
+ if(user.is_pacified())
to_chat(user, "You don't want to risk hurting [src]!")
return 0
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index d56c08d9adf..e80e05fc73a 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -129,7 +129,7 @@
// deafness heals slowly over time, unless ear_damage is over 100
if(ear_damage < 100)
adjustEarDamage(-0.05,-1)
- if(disabilities & PACIFIST && a_intent == I_HURT)
+ if((is_pacified()) && a_intent == I_HURT)
to_chat(src, "You don't feel like harming anybody.")
a_intent_change(I_HELP)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index a605a236c84..c407532cc7a 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -164,6 +164,12 @@ proc/getsensorlevel(A)
else
return mind && (mind.assigned_role == "Space Wizard" || mind.assigned_role == "Apprentice")
+/mob/proc/is_berserk()
+ return FALSE
+
+/mob/proc/is_pacified()
+ return FALSE
+
/*
Miss Chance
*/
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 3950f845fc3..b6775f91684 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -126,7 +126,7 @@
if(!user.IsAdvancedToolUser())
return 0
- if(user.disabilities & PACIFIST)
+ if(user.is_pacified())
to_chat(user, "You don't want to risk harming anyone!")
return 0
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
index 37f45828174..07bc7d289b9 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
@@ -1153,3 +1153,14 @@
M.adjustOxyLoss(-rand(15,20))
M.visible_message("\The [M] shudders violently!")
M.stat = 0
+
+/datum/reagent/pacifier
+ name = "Paxazide"
+ id = "paxazide"
+ description = "A mind altering chemical compound capable of suppressing violent tendencies."
+ reagent_state = LIQUID
+ color = "#1ca9c9"
+ taste_description = "numbness"
+
+/datum/reagent/pacifier/affect_blood(var/mob/living/carbon/H, var/alien, var/removed)
+ H.add_chemical_effect(CE_PACIFIED, 1)
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
index eb764b5e329..2c3d13987dc 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
@@ -616,4 +616,20 @@
var/obj/item/organ/brain/B = H.internal_organs_by_name["brain"]
if(!H.has_trauma_type(/datum/brain_trauma/special/love))
- B.gain_trauma(/datum/brain_trauma/special/love,FALSE)
\ No newline at end of file
+ B.gain_trauma(/datum/brain_trauma/special/love,FALSE)
+
+/datum/reagent/bottle_lightning
+ name = "Bottled Lightning"
+ id = "lightning"
+ description = "A mysterious compound capable of producing electrical discharges."
+ reagent_state = LIQUID
+ color = "#70838A"
+ taste_description = "metal"
+
+/datum/reagent/bottle_lightning/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(prob(25))
+ tesla_zap(M, 6, 1500)
+
+/datum/reagent/bottle_lightning/touch_turf(var/turf/T)
+ if(volume >= 5)
+ tesla_zap(T, 6, 1500)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index 7722f34cf0d..c0ced2de585 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -733,3 +733,47 @@
data = 0
taste_description = "quality tobacco"
strength = 0.002
+
+/datum/reagent/toxin/berserk
+ name = "Red Nightshade"
+ id = "berserk"
+ description = "An illegal chemical enhancer, may cause aggressive and violent behavior."
+ reagent_state = LIQUID
+ color = "#AF111C"
+ strength = 5
+ taste_description = "bitterness"
+ metabolism = REM * 2
+ unaffected_species = IS_DIONA | IS_MACHINE
+ var/datum/modifier/modifier
+
+/datum/reagent/toxin/berserk/affect_blood(var/mob/living/carbon/M, var/removed)
+ ..()
+ if(!modifier)
+ modifier = M.add_modifier(/datum/modifier/berserk, MODIFIER_REAGENT, src, _strength = 1, override = MODIFIER_OVERRIDE_STRENGTHEN)
+ M.make_jittery(20)
+ M.add_chemical_effect(CE_BERSERK, 1)
+ if(M.a_intent != I_HURT)
+ M.a_intent_change(I_HURT)
+ if(prob(20))
+ M.adjustBrainLoss(5 * removed)
+
+/datum/reagent/toxin/berserk/Destroy()
+ QDEL_NULL(modifier)
+ return ..()
+
+/datum/reagent/toxin/spectrocybin
+ name = "Spectrocybin"
+ id = "spectrocybin"
+ description = "A hallucinogen chemical, rumored to be used by mystics and religious figures in their rituals."
+ reagent_state = LIQUID
+ color = "#800080"
+ strength = 5
+ taste_description = "acid"
+ metabolism = REM
+ unaffected_species = IS_DIONA | IS_MACHINE
+
+/datum/reagent/toxin/spectrocybin/affect_blood(var/mob/living/carbon/M, var/removed)
+ ..()
+ M.hallucination = max(M.hallucination, 50)
+ if(prob(10))
+ M.see_invisible = SEE_INVISIBLE_CULT
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 6d6115bf9a2..e5e179c9269 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -638,11 +638,18 @@
required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "phoron" = 0.1)
result_amount = 2
-/datum/chemical_reaction/feartoxin
- name = "Feartoxin"
- id = "feartoxin"
- result = "feartoxin"
- required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "space_drugs" = 1)
+/datum/chemical_reaction/pacifier
+ name = "Paxazide"
+ id = "paxazide"
+ result = "paxazide"
+ required_reagents = list("truthserum" = 1, "sertraline" = 1)
+ result_amount = 1
+
+/datum/chemical_reaction/berserk
+ name = "Red Nightshade"
+ id = "berserk"
+ result = "berserk"
+ required_reagents = list("psilocybin" = 1, "moonshine" = 1)
result_amount = 1
/* Solidification */
diff --git a/html/changelogs/alberyk-chem.yml b/html/changelogs/alberyk-chem.yml
new file mode 100644
index 00000000000..b5bf095b77e
--- /dev/null
+++ b/html/changelogs/alberyk-chem.yml
@@ -0,0 +1,6 @@
+author: Alberyk
+
+delete-after: True
+
+changes:
+ - rscadd: "Added new chemicals."