diff --git a/src/SecExp/propagandaHub.tw b/src/SecExp/propagandaHub.tw
index 831964839f9e3126170032f63d7ef2f9bd6c38e9..474231ed311abbcf14292acd89d66ca2b0a8b272 100644
--- a/src/SecExp/propagandaHub.tw
+++ b/src/SecExp/propagandaHub.tw
@@ -1,6 +1,6 @@
 :: propagandaHub [nobr]
 
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<if $career == "capitalist" || $career == "celebrity" || $career == "wealth">>
 	<<set _HistoryDiscount = .5>>
 <<else>>
diff --git a/src/SecExp/riotControlCenter.tw b/src/SecExp/riotControlCenter.tw
index eba811b40b1e0abffe72520c4cf27049089cc9ed..f342a3c03a1ad2a542d9fbf399995f596c859cb5 100644
--- a/src/SecExp/riotControlCenter.tw
+++ b/src/SecExp/riotControlCenter.tw
@@ -1,6 +1,6 @@
 :: riotControlCenter [nobr]
 
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<set $nextButton = "Back to Arcology Management", $nextLink = "Manage Arcology", $returnTo = "Manage Arcology">>
 
 Riot Control Center
diff --git a/src/SecExp/securityHQ.tw b/src/SecExp/securityHQ.tw
index a69371aa2345e47d93ac90045f117a5c24131b1c..5a8f3bdbe3608953c45d1240bf50be7bae2a525e 100644
--- a/src/SecExp/securityHQ.tw
+++ b/src/SecExp/securityHQ.tw
@@ -1,6 +1,6 @@
 :: securityHQ [nobr]
 
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<if $career == "mercenary" || $career == "gang" || $career == "slaver">>
 	<<set _HistoryDiscount = .5>>
 <<else>>
diff --git a/src/SecExp/weaponsManufacturing.tw b/src/SecExp/weaponsManufacturing.tw
index 2d9e4321ab66a098043d684ea4860a07ed4869fa..9a73e7c277e5842e750d992d104b2a811bc493c2 100644
--- a/src/SecExp/weaponsManufacturing.tw
+++ b/src/SecExp/weaponsManufacturing.tw
@@ -1,6 +1,6 @@
 :: weaponsManufacturing [nobr]
 
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<set $nextButton = "Back", $nextLink = "Main">>
 
 This sector of the arcology has been dedicated to weapons manufacturing. These factories supply
diff --git a/src/js/SFJS.tw b/src/js/SFJS.tw
index d016e96b98ec6fb448bb8e1061c6bcde578d654a..cd39e0634a773ca1c01d4eb27fd50959dfb5aa38 100644
--- a/src/js/SFJS.tw
+++ b/src/js/SFJS.tw
@@ -13,3 +13,29 @@ window.simpleWorldEconomyCheck = function() {
 	}
 }
 
+window.HSM = function() {
+	if (State.variables.PC.hacking <= -100)
+		return 1.5;
+	else if (State.variables.PC.hacking <= -75)
+		return 1.35;
+	else if (State.variables.PC.hacking <= -50)
+		return 1.25;
+	else if (State.variables.PC.hacking <= -25)
+		return 1.15;
+	else if (State.variables.PC.hacking < 0)
+		return 1.10;
+	else if (State.variables.PC.hacking === 0)
+		return 1;
+	else if (State.variables.PC.hacking <= 10)
+		return .97;
+	else if (State.variables.PC.hacking <= 25)
+		return .95;
+	else if (State.variables.PC.hacking <= 50)
+		return .90;
+	else if (State.variables.PC.hacking <= 75)
+		return .85;
+	else if (State.variables.PC.hacking < 100)
+		return .80;
+	else if (State.variables.PC.hacking >= 100)
+		return .75;
+	}
\ No newline at end of file
diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw
index c6b18ddafd3379ab948f8956b626a1c1ff7de4be..7bafd37b3eca7750eb326afa0babe853f2429358 100644
--- a/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw
+++ b/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw
@@ -1,6 +1,6 @@
 :: SpecialForceUpgradeOptions [nobr]
 <<set _costDebuff = 1>>
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<if ($SFAO < _max) && $securityForceUpgradeToken == 0>>
 <span id="resultX">
 	<br>Which facility or equipment do you wish _Name to upgrade this week?
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index 2daeabc9e1f206558bfb03f7391fc0f0df292b6b..1117289abcb3f3706778c973466a75894a351d39 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -1911,34 +1911,3 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if
 	}
 })>>
 <</widget>>
-
-/%
-Call as <<HSM>>
-%/
-<<widget "HSM">>
-	<<if ndef $PC.hacking>>
-		<<set $PC.hacking = 1, $HackingSkillMultiplier = 1>>
-	<<elseif $PC.hacking <= -100>>
-		<<set $HackingSkillMultiplier = 1.5>>
-	<<elseif $PC.hacking <= -75>>
-		<<set $HackingSkillMultiplier = 1.35>>
-	<<elseif $PC.hacking <= -50>>
-		<<set $HackingSkillMultiplier = 1.25>>
-	<<elseif $PC.hacking <= -25>>
-		<<set $HackingSkillMultiplier = 1.15>>
-	<<elseif $PC.hacking < 0>>
-		<<set $HackingSkillMultiplier = 1.10>>
-	<<elseif $PC.hacking <= 10>>
-		<<set $HackingSkillMultiplier = 1>>
-	<<elseif $PC.hacking <= 25>>
-		<<set $HackingSkillMultiplier = .95>>
-	<<elseif $PC.hacking <= 50>>
-		<<set $HackingSkillMultiplier = .90>>
-	<<elseif $PC.hacking <= 75>>
-		<<set $HackingSkillMultiplier = .85>>
-	<<elseif $PC.hacking < 100>>
-		<<set $HackingSkillMultiplier = .80>>
-	<<elseif $PC.hacking >= 100>>
-		<<set $HackingSkillMultiplier = .75>>
-	<</if>>
-<</widget>>
diff --git a/src/uncategorized/SFMBarracks.tw b/src/uncategorized/SFMBarracks.tw
index a1d01bd469056af610f4c0520912bafab6d34001..1d7a41a0084326c2731b3fa5a5dd872da9c7134e 100644
--- a/src/uncategorized/SFMBarracks.tw
+++ b/src/uncategorized/SFMBarracks.tw
@@ -1,6 +1,5 @@
 :: SFM Barracks [nobr]
 
-<<HSM>>
 <<set _Name = "<<if $CurrentTradeShowAttendance == 1 && $LieutenantColonel == 2>>Lieutenant Colonel <<SlaveFullName $LieutenantColonel>> <<elseif $CurrentTradeShowAttendance == 1 && $LieutenantColonel != 2>> a soldier <<elseif $CurrentTradeShowAttendance == 0>>  The Colonel<</if>>">>
 
 <<if ndef $ColonelRelationship>>
diff --git a/src/uncategorized/dispensary.tw b/src/uncategorized/dispensary.tw
index 6152e672196533a8366e9e7c0d02e9ab7ab60508..8f35a7788768a7ee93955550d64a7b9e7652e272 100644
--- a/src/uncategorized/dispensary.tw
+++ b/src/uncategorized/dispensary.tw
@@ -1,6 +1,6 @@
 :: Dispensary [nobr]
 
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse", $showEncyclopedia = 1, $encyclopedia = "The Pharmaceutical Fab.", _PCSkillCheck = Math.max($upgradeMultiplierMedicine, $HackingSkillMultiplier)>>
 
 <br>
diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw
index aa72244016fae0fe0313db62f6effb1bc7945f4e..66772dfc1ae96a0e762444421fc3b9c71e40926e 100644
--- a/src/uncategorized/endWeek.tw
+++ b/src/uncategorized/endWeek.tw
@@ -21,7 +21,6 @@
 <<if $sexualOpeness == 1>>
 	<<set $penetrativeUseWeight++>>
 <</if>>
-<<HSM>>
 
 <<for _i = 0; _i < $slaves.length; _i++>>
 	<<if $slaves[_i].inflationMethod == 1 || $slaves[_i].inflationMethod == 2>>
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index 2d244592731ed845bc1eacb121f6635eb54451e3..feca9e882d874b16e3da3b4bbc38e41813f570e1 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -1,6 +1,6 @@
 :: Manage Arcology [nobr]
 
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<set $nextButton = "Back", $nextLink = "Main">>
 
 <<if $cheatMode == 1>>
diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw
index 779757d38eccec404f572f6e0e061bc049ec6750..18670cfb1b13a8e92435aadb98cecf0e16776bbd 100644
--- a/src/uncategorized/personalAssistantOptions.tw
+++ b/src/uncategorized/personalAssistantOptions.tw
@@ -1,6 +1,6 @@
 :: Personal assistant options [nobr]
 
-<<HSM>>
+<<set $HackingSkillMultiplier = HSM()>>
 <<set $nextButton = "Back", $nextLink = "Main">>
 
 <<if $marketAssistantLimit>><<set $marketAssistantLimit to Math.clamp($marketAssistantLimit, 10000, 10000000)>><</if>>