diff --git a/devTools/FC.d.ts b/devTools/FC.d.ts
index c1ffd2605ddeb79957033c4a4ddf9f1c835dd0b0..fb1c648d6736d67f9ce032c588e1982058964a8b 100644
--- a/devTools/FC.d.ts
+++ b/devTools/FC.d.ts
@@ -17,6 +17,8 @@ interface Window {
 	rulesAutosurgery: any;
 	ruleApplied: any;
 	SlaveSummary: any;
+
+	slaveStateById(id: number): App.Entity.SlaveState;
 }
 
 declare namespace App {
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index e6b18003a77bd05a26788590267c107468ccebe9..ece61679cb89ed4f6ded9a9a55882d0bffc78218 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -285,6 +285,15 @@ window.getSlave = function getSlave(ID) {
 	return index === undefined ? undefined : State.variables.slaves[index];
 };
 
+/**
+ * @param {number} ID
+ * @returns {App.Entity.SlaveState}
+ */
+window.slaveStateById = function(ID) {
+	const index = State.variables.slaveIndices[ID];
+	return index === undefined ? undefined : State.variables.slaves[index];
+};
+
 window.getChild = function getChild(ID) {
 	return State.variables.cribs.find(s => s.ID === ID);
 };