diff --git a/Content.Server/Chemistry/ReagentEffects/Polymorph.cs b/Content.Server/Chemistry/ReagentEffects/Polymorph.cs
new file mode 100644
index 0000000000..bf7d8b7099
--- /dev/null
+++ b/Content.Server/Chemistry/ReagentEffects/Polymorph.cs
@@ -0,0 +1,35 @@
+using Content.Server.Mind.Components;
+using Content.Server.Polymorph.Components;
+using Content.Server.Polymorph.Systems;
+using Content.Shared.Chemistry.Reagent;
+using Content.Shared.Item;
+using Content.Shared.Polymorph;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
+
+namespace Content.Server.Chemistry.ReagentEffects;
+
+public sealed partial class Polymorph : ReagentEffect
+{
+ ///
+ /// What polymorph prototype is used on effect
+ ///
+ [DataField("prototype", customTypeSerializer:typeof(PrototypeIdSerializer))]
+ public string PolymorphPrototype { get; set; }
+
+ protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
+ => Loc.GetString("reagent-effect-guidebook-make-polymorph",
+ ("chance", Probability), ("entityname",
+ prototype.Index(prototype.Index(PolymorphPrototype).Entity).Name));
+
+ public override void Effect(ReagentEffectArgs args)
+ {
+ var entityManager = args.EntityManager;
+ var uid = args.SolutionEntity;
+ var polySystem = entityManager.System();
+
+ // Make it into a prototype
+ entityManager.EnsureComponent(uid);
+ polySystem.PolymorphEntity(uid, PolymorphPrototype);
+ }
+}
diff --git a/Resources/Locale/en-US/guidebook/chemistry/effects.ftl b/Resources/Locale/en-US/guidebook/chemistry/effects.ftl
index 6f3645c705..b6f45d2386 100644
--- a/Resources/Locale/en-US/guidebook/chemistry/effects.ftl
+++ b/Resources/Locale/en-US/guidebook/chemistry/effects.ftl
@@ -267,6 +267,12 @@ reagent-effect-guidebook-make-sentient =
*[other] make
} the metabolizer sentient
+reagent-effect-guidebook-make-polymorph =
+ { $chance ->
+ [1] Polymorphs
+ *[other] polymorph
+ } the metabolizer into a { $entityname }
+
reagent-effect-guidebook-modify-bleed-amount =
{ $chance ->
[1] { $deltasign ->
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml
index 39bc97cbac..2dc5555c03 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml
@@ -49,6 +49,20 @@
- type: UseDelay
delay: 0.5
+- type: entity
+ name: experimental hypospray
+ suffix: Admeme
+ parent: SyndiHypo
+ description: The ultimate application of bluespace technology and rapid chemical administration.
+ id: AdminHypo
+ components:
+ - type: SolutionContainerManager
+ solutions:
+ hypospray:
+ maxVol: 3000
+ - type: UseDelay
+ delay: 0.0
+
- type: entity
name: chemical medipen
parent: BaseItem
diff --git a/Resources/Prototypes/Polymorphs/polymorph.yml b/Resources/Prototypes/Polymorphs/polymorph.yml
index ccc35ae47a..fe4f80811f 100644
--- a/Resources/Prototypes/Polymorphs/polymorph.yml
+++ b/Resources/Prototypes/Polymorphs/polymorph.yml
@@ -94,3 +94,11 @@
revertOnCrit: false
revertOnDeath: true
revertOnEat: true
+
+- type: polymorph
+ id: TreeMorph
+ entity: FloraTree01
+ forced: true
+ transferName: true
+ revertOnDeath: true
+
diff --git a/Resources/Prototypes/Reagents/botany.yml b/Resources/Prototypes/Reagents/botany.yml
index 6ab90a1113..4929dc1cec 100644
--- a/Resources/Prototypes/Reagents/botany.yml
+++ b/Resources/Prototypes/Reagents/botany.yml
@@ -145,6 +145,17 @@
Asphyxiation: 1
Burn: 2
Poison: 1
+ Medicine:
+ effects:
+ - !type:Polymorph
+ prototype: TreeMorph
+ conditions:
+ - !type:OrganType
+ type: Plant
+ - !type:ReagentThreshold
+ min: 80
+
+
- type: reagent
id: WeedKiller
name: reagent-name-weed-killer