From dfc726d88ea27dff6dfd0480110f9705d25a9a10 Mon Sep 17 00:00:00 2001
From: CHOMPStation2StaffMirrorBot
<94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com>
Date: Mon, 16 Feb 2026 02:37:07 -0700
Subject: [PATCH] [MIRROR] Fix Bingle Recipie Documentation Take 2 (#12422)
Co-authored-by: Will <7099514+Willburd@users.noreply.github.com>
---
code/controllers/subsystems/internal_wiki.dm | 36 +++++++++++++-------
1 file changed, 23 insertions(+), 13 deletions(-)
diff --git a/code/controllers/subsystems/internal_wiki.dm b/code/controllers/subsystems/internal_wiki.dm
index e54269e156..9d6d88aee2 100644
--- a/code/controllers/subsystems/internal_wiki.dm
+++ b/code/controllers/subsystems/internal_wiki.dm
@@ -376,18 +376,26 @@ SUBSYSTEM_DEF(internal_wiki)
data["fluid"] = display_reactions
display_reactions = list()
- var/list/instant_by_reagent = SSchemistry.instant_reactions_by_reagent["[R.id]"]
- if(instant_by_reagent && length(instant_by_reagent))
- for(var/i = 1, i <= length(instant_by_reagent), i++)
- var/decl/chemical_reaction/OR = instant_by_reagent[i]
- if(istype(OR,/decl/chemical_reaction/instant/slime)) // very bloated and meant to be a mystery
- continue
- display_reactions.Add(OR.name)
- var/list/distilled_by_reagent = SSchemistry.distilled_reactions_by_reagent["[R.id]"]
- if(distilled_by_reagent && length(distilled_by_reagent))
- for(var/i = 1, i <= length(distilled_by_reagent), i++)
- var/decl/chemical_reaction/OR = distilled_by_reagent[i]
- display_reactions.Add(OR.name)
+
+ // We need to do this instead of using distilled_reactions_by_reagent, because SSchem was built around unique logic that only uses the first reagent key found.
+ // So if we collected them all, chemistry as players know it will explode. So we recheck all reagent datums directly instead and see if we're used by them.
+ var/list/paths = decls_repository.get_decls_of_subtype(/decl/chemical_reaction)
+ for(var/path in paths)
+ var/decl/chemical_reaction/D = paths[path]
+ if(istype(D,/decl/chemical_reaction/instant/slime))
+ continue
+ if(!D.result)
+ continue
+
+ var/list/scan_list = list()
+ if(length(D.required_reagents))
+ scan_list += D.required_reagents
+ if(length(D.catalysts))
+ scan_list += D.catalysts
+
+ if(R.id in scan_list)
+ display_reactions.Add(D.name)
+
data["produces"] = null
if(length(display_reactions) > 0)
data["produces"] = display_reactions
@@ -1576,7 +1584,9 @@ SUBSYSTEM_DEF(internal_wiki)
else
body += "Potential Chemical breakdown [segment]:
"
segment++
- body += " -Temperature: [react["xgm_min"]]K - [react["xgm_max"]]K | ([react["xgm_min"] - T0C]C - [react["xgm_max"] - T0C]C)
"
+ body += " -Temperature: [react["temp_min"]]K to [react["temp_max"]]K | ([react["temp_min"] - T0C]C to [react["temp_max"] - T0C]C)
"
+ if(react["xgm_min"] || react["xgm_max"])
+ body += " -Pressure: [react["xgm_min"]]kpa - [react["xgm_max"]]kpa
"
if(react["require_xgm_gas"])
body += " -Requires Gas: [react["require_xgm_gas"]]
"
if(react["rejects_xgm_gas"])