diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 0076de0497110598b8b184035d54c34e0e43b4d6..6d3f7919b29b27249841bff5feefb612ca1c5b2e 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -33616,7 +33616,7 @@ window.PGT = function() {
 	if (S.PGT >= 4) armor0 = `reinforced, increasing survivability for the crew inside.`, armor1 = `The armor has been`;
 	if (S.PGT >= 5) cannon = `A coaxial 30mm autocannon has been installed in the turret, along with automated .50 cal machine guns mounted over the front treads.`;
 	if (S.PGT >= 6) laser = `Laser anti-missile countermeasures have been installed, destroying any subsonic ordinance fired at the Goliath.`;
-	if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and gun.`;
+	if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and guns.`;
 	if (S.PGT >= 8) armor0 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor-piercing tank rounds.`;
 	if (S.PGT >= 9) gun1 = `firing guided projectiles`;
 	if (S.PGT >= 10) gun0 = `a twin-barreled railgun capable of rapidly`;
@@ -33821,7 +33821,7 @@ window.Interactions = function() {
 			if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) {
 			choice += `"Our interests should see a @@.yellowgreen;big boost@@, boss."`;}
 			else { 
-			choice += `"Your @@.yellowgreen;arcology's business prospects should see an improvement@@ this week, <<print PCTitle()>>.`;
+			choice += `"Your @@.yellowgreen;arcology's business prospects should see an improvement@@ this week, <<= properTitle()>>.`;
 			}}}
 
 	if (C.Talk + C.Fun > 0) time = `The Colonel is busy for the rest of the week, so the Lieutenant Colonel will assist you.`;
@@ -33865,6 +33865,16 @@ window.progress = function(x,max) {
 	return `${out}`;
 };
 
+window.SFInit = function() {
+	const V = State.variables;
+	V.SF = Object.assign({}, V.SF, {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1});
+	V.SFUnit = Object.assign({}, V.SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0});
+	V.SFColonel = Object.assign({}, V.SFColonel, {Core:"", Talk:0, Fun:0, Status:0});
+	V.SFTradeShow = Object.assign({}, V.SFTradeShow, {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0});
+	V.SatLaunched = 0, V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1;
+	V.SF.Facility = Object.assign({}, V.SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]});
+};
+
 /*:: DebugJS [script]*/
 
 /*
diff --git a/devTools/AutoGitVersionUploadBackground.sh b/devTools/AutoGitVersionUploadBackground.sh
index 7bfa4379632db65cdd4023042452ebe04238bf4d..e0a78540509ff7e74570877c6250fef1bec9a9ec 100755
--- a/devTools/AutoGitVersionUploadBackground.sh
+++ b/devTools/AutoGitVersionUploadBackground.sh
@@ -1,8 +1,8 @@
-#!/bin/sh Additional packages required: megatools,	MEGAcmd and git
-U=anon@anon.anon P=13245 rdir=FC ldir='FC' outpt='bin/*.h*' login='-u $U -p $P' rpo=git@ssh.gitgud.io:pregmodfan/fc-pregmod.git build=0; echo "Fresh git clone? 0:y 1:n 2:na" && read Opt && clear && mega-login $U $P > /dev/null 
-while true; do
-	if [[ $Opt == 0 ]]; then build=1 && mkdir $ldir && git clone -q $rpo $ldir && cd $ldir
-	elif [[ $Opt > 0||$build < 1 ]]; then cd $ldir && git fetch -q origin && if [ `git rev-list HEAD...origin/pregmod-master --count` -gt 0 ]; then build=1 && git pull -q; fi #Check is a slight tweak of https://stackoverflow.com/a/17192101 and conversion into a single line check.
+#!/bin/sh Additional packages required: megatools, MEGAcmd, minify and git
+U=anon@anon.anon P=13245 sdr=/tmp/FC-Dev/devTools rdr=FC/ ldr=FC/ gen='bin/*.*' rpo=https://gitgud.io/pregmodfan/fc-pregmod.git preVC=00; echo "Fresh git clone? 0:y 1:n 2:na" &&  read Opt && clear && mega-login $U $P > /dev/null
+while true;do if [ `ls $ldr|echo $?` -eq 0 ]; then cd $ldr;fi ;clear
+	if [[ $Opt == 0 ]]; then mkdir $ldr; git clone -q $rpo $ldr && cd $ldr && if [ `git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //'` != $preVC ]; then build=1	&& sed -Ei "s/preVC=$preVC/preVC=$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')/" $sdr/AutoGitVersionUploadBackground.sh;fi
+	elif [[ $Opt > 0 || $build < 1 ]]; then git fetch -q origin && if [ `git rev-list HEAD...origin/pregmod-master --count` -gt 0 ]; then build=1 && git pull -q && sed -Ei "s/preVC=$preVC/preVC=$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')/" $sdr/AutoGitVersionUploadBackground.sh;fi #A tweak of https://stackoverflow.com/a/17192101 and single line conversion.
 	fi
-	if [[ $Opt > 1||$build > 0 ]]; then cd $ldir && rm $outpt; ./compile --insane > /dev/null && minify -o $outpt $outpt && mv $outpt "bin/FC-pregmod-$(git log -1 --format='%cd' --date='format:%d-%m-%Y-%H-%M')-$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')".html && mega-put $outpt $rdir && megals $login /Root/$rdir|sed -n '1!p'|sort -r|tail -n +11|paste -sd " " -|xargs megarm $login > /dev/null; fi
-if [[ $build > 0 ]];then build=0;fi && if [[ $Opt != -1 ]];then Opt=-1;fi && clear && sleep 15m; done 
\ No newline at end of file
+	if [[ $Opt > 1 || $build > 0 ]]; then rm $gen; ./compile --insane && clear && minify -o $gen $gen && mv $gen bin/"FC-pregmod-$(git log -1 --format='%cd' --date='format:%d-%m-%Y-%H-%M')-$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')".html && mega-put $gen $rdr && megals -u $U -p $P /Root/$rdr|sed -n '1!p'|tail -n +10|paste -sd " " -|xargs megarm -u $U -p $P;clear;fi
+if [[ $build > 0 ]];then build=0;fi ; if [[ $Opt != -1 ]];then Opt=-1;fi ;sleep 15m ;done
\ No newline at end of file
diff --git a/src/SecExp/attackOptions.tw b/src/SecExp/attackOptions.tw
index 9cfa7d27dee6a726ac80ad3d46b7c1a7f662727a..4e45e01d9e69c47a56b493d734f65238ce90a864 100644
--- a/src/SecExp/attackOptions.tw
+++ b/src/SecExp/attackOptions.tw
@@ -171,9 +171,9 @@ approximately <strong><<print $estimatedMen>> men</strong> are coming, they seem
 <<if $expectedEquip <= 0>>
 	<strong>poorly armed</strong>. Old rusty small arms are the norm with just a few barely working civilian vehicles.
 <<elseif $expectedEquip == 1>>
-	<strong>lightly armed</strong>. Mostly small arms with some repurposed civilian vehicles and a scattered few machine guns. There's no sign of heavy vehicles, artillery or aircraft.
+	<strong>lightly armed</strong>. Mostly small arms with some repurposed civilian vehicles and a few scattered machine guns. There's no sign of heavy vehicles, artillery or aircraft.
 <<elseif $expectedEquip == 2>>
-	<strong>decently armed</strong>. Good quality small arms, machine guns a few mortars. There seems to be some heavy military vehicles coming as well.
+	<strong>decently armed</strong>. Good quality small arms, machine guns and a few mortars. There seems to be some heavy military vehicles coming as well.
 <<elseif $expectedEquip == 3>>
 	<strong>well armed</strong>. High quality small arms, snipers, demolitions teams, heavy duty machine guns and mortars. Heavy military vehicles are numerous and a few artillery pieces are accompanying the detachment.
 <<elseif $expectedEquip >= 4>>
diff --git a/src/SpecialForce/Firebase.tw b/src/SpecialForce/Firebase.tw
index ce9b92519f7e382b50f57e4b74a5de0d40c70b08..06ef4777afcce5fcece72e5d2d00b6a0f4af0d86 100644
--- a/src/SpecialForce/Firebase.tw
+++ b/src/SpecialForce/Firebase.tw
@@ -86,25 +86,19 @@
 
 		<<include "WC">>
 
-		<<if $SpecOpsLock < 1>>
+		<<if $SF.SpecOpsLock < 1>>
 			<br><<switch $SF.SpecOps>>
 
 			<<case 0>>
-
-				<br>No soldiers are working undercover. [[Full time assignement|Firebase][$SpecOpsLock = 1]]
-
+				<br>No soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]]
 				<br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]]
 
 			<<case 1>>
-
-				<br>A small section of soldiers are working undercover. [[Full time assignement|Firebase][$SpecOpsLock = 1]]
-
+				<br>A small section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]]
 				<br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]]
 
 			<<case 2>>
-
-				<br>A large section of soldiers are working undercover. [[Full time assignement|Firebase][$SpecOpsLock = 1]]
-
+				<br>A large section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]]
 				<br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]]
 
 			<<default>>
@@ -119,7 +113,7 @@
 
 			<</switch>>
 		<<else>>
-			<br> <<if $SF.SpecOps < 1>>''Zero''<<elseif $SF.SpecOps < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work. [[Re-alloclate the units|Firebase][$SpecOpsLock = 0]]
+			<br> <<if $SF.SpecOps < 1>>''Zero''<<elseif $SF.SpecOps < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work. [[Re-alloclate the units|Firebase][$SF.SpecOpsLock = 0]]
 		<</if>>
 
 		<<if $SFUnit.Firebase > 5 && $secExp > 0 && $SFSupportLevel >= 4 && $maxUnits === 16 && $readiness <= 10>>
diff --git a/src/SpecialForce/JS.js b/src/SpecialForce/JS.js
index be12853a08415ba941d92583876ab09f048c793a..a20ade83d09898fe6f1e47d646c3d0eebcdc9699 100644
--- a/src/SpecialForce/JS.js
+++ b/src/SpecialForce/JS.js
@@ -200,7 +200,7 @@ window.PGT = function() {
 	if (S.PGT >= 4) armor0 = `reinforced, increasing survivability for the crew inside.`, armor1 = `The armor has been`;
 	if (S.PGT >= 5) cannon = `A coaxial 30mm autocannon has been installed in the turret, along with automated .50 cal machine guns mounted over the front treads.`;
 	if (S.PGT >= 6) laser = `Laser anti-missile countermeasures have been installed, destroying any subsonic ordinance fired at the Goliath.`;
-	if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and gun.`;
+	if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and guns.`;
 	if (S.PGT >= 8) armor0 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor-piercing tank rounds.`;
 	if (S.PGT >= 9) gun1 = `firing guided projectiles`;
 	if (S.PGT >= 10) gun0 = `a twin-barreled railgun capable of rapidly`;
@@ -447,4 +447,14 @@ window.progress = function(x,max) {
 		for (i=0;i<x;i++) out += `█⏐`;
 		for (i=0;i<z;i++) out += `<span style=\"opacity: 0;\">█</span>⏐`;}
 	return `${out}`;
+};
+
+window.SFInit = function() {
+	const V = State.variables;
+	V.SF = Object.assign({}, V.SF, {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1});
+	V.SFUnit = Object.assign({}, V.SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0});
+	V.SFColonel = Object.assign({}, V.SFColonel, {Core:"", Talk:0, Fun:0, Status:0});
+	V.SFTradeShow = Object.assign({}, V.SFTradeShow, {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0});
+	V.SatLaunched = 0, V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1;
+	V.SF.Facility = Object.assign({}, V.SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]});
 };
\ No newline at end of file
diff --git a/src/SpecialForce/Proposal.tw b/src/SpecialForce/Proposal.tw
index acae9e49da365f5857ef976f49abf0204073f007..b9acd01fc5eeaa4566fd64b79ba931c99c7307c1 100644
--- a/src/SpecialForce/Proposal.tw
+++ b/src/SpecialForce/Proposal.tw
@@ -16,30 +16,11 @@
 	<<elseif $PC.warfare >= 50||$PC.career === "arcology owner">>
 	<<set _price = _price*.75>> <</if>>
 	<br><<link "Prepare for an announcement.""Security Force Proposal">> <<replace "#result">>
-
 		You instruct $assistantName to announce to the arcology's citizenry that you will be making an important announcement in the near future regarding the security situation. Given the damage still present from the Daughters' attack, everyone will be tuning in. You also instruct your assistant to begin quietly investigating potential leadership figures for the force itself.
-
-	<<run Object.assign($SF, {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0,
-		ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force",
-		Lower:"the special force", Subsidy:1})>> <<set $cash -= _price>>
-	<<set $SFUnit = Object.assign({}, $SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0,
-		Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0,
-		AircraftCarrier:0, Sub:0, HAT:0})>> <<set $arcologies[0].SFRaid = 1,$arcologies[0].SFRaidTarget = -1>>
-		<<set $SFColonel = Object.assign({}, $SFColonel, {Core:"", Talk:0, Fun:0, Status:0})>>
-		<<set $SFTradeShow = Object.assign({}, $SFTradeShow, {History:0, CanAttend:0,
-		Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0})>>
-		<<set $SatLaunched = 0>>
-		<<set $SF.Facility = Object.assign({}, $SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>>
-		<</replace>> <</link>><br>//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.//
+		<<set $cash -= _price>> <<= SFInit()>>
+	<</replace>> <</link>><br>//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.//
 
 	<br><<link "The current measures are enough.""Next Week">> <<replace "#result">> <<run Object.assign(, $SF, {Active:0})>> <</replace>> <</link>> </span>
 <<elseif $SF.Active === 1>>
 	<<include "Security Force Naming-Colonel">>
-<<elseif $SF.Active !== -1 && passage() === "New Game Plus">>
-		<<run Object.assign($SF, {Active:-1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1})>>
-	<<set $SFUnit = Object.assign({}, $SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0})>>
-		<<set $SatLaunched = 0>>
-	<<set $arcologies[0].SFRaid = 1,$arcologies[0].SFRaidTarget = -1>> <<set $SFColonel = Object.assign({}, $SFColonel, {Core:"", Talk:0, Fun:0, Status:0})>>
-	<<set $SFTradeShow = Object.assign({}, $SFTradeShow, {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0})>>
-	<<run Object.assign($SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>>
 <</if>>
\ No newline at end of file
diff --git a/src/SpecialForce/Report.tw b/src/SpecialForce/Report.tw
index c0166f4804aa39f653eb7d13b2e8a7474f3b550a..822b22b262f83ba5f7643495df16bb9ecc68c302 100644
--- a/src/SpecialForce/Report.tw
+++ b/src/SpecialForce/Report.tw
@@ -201,4 +201,4 @@ $SF.Caps managed to recruit <<print Math.round(_FNGs/2)>> new soldiers this week
 		<<set $SFTradeShow.Mercs += _NewMercs>>
 	<</if>> <<set $SFTradeShow.History += 1>>
 <</if>><<if $SF.SpecOps === 1 && !$SF.SpecOpsLock>> <<set $SF.SpecOps = 0>> <</if>>
-<<set $SF.U = 0,$SF.WG = 0,$SFColonel.Talk = 0,$SFColonel.Fun = 0>>
\ No newline at end of file
+<<set $SF.U = 0,$SF.WG = 0,$SFColonel.Talk = 0,$SFColonel.Fun = 0>>
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 74035467f331bf651991d2234fa5a3690e57cf82..87171c041b5149451318d36c7690400bd3255258 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -47,7 +47,7 @@ __''World Settings''__
 <br>Economic forecast: 
 <<if $difficultySwitch == 0>>
 	''no change.'' //Vanilla//
-	<br>[[harder|Intro Summary][$difficultySwitch = 1, $econRate = 1]]
+	<br>[[Harder|Intro Summary][$difficultySwitch = 1, $econRate = 1]]
 <<elseif $econRate == 1>>
 	''slow decline''. //Easy//
 	<br>[[Harder|Intro Summary][$econRate = 2]] | [[Easier|Intro Summary][$difficultySwitch = 0]]
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 7faec3e983fc208c242832d5f649a56b9b5bd280..a52cbba39cf347ac42ef13f95d1e09d565a249e0 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -1131,7 +1131,11 @@
 	<<set $SF.Facility = Object.assign({}, $SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>>
 <</if>>
 <<if def $SF>>
-	<<if $SF.Active >= 1 && passage() === "New Game Plus">> <<silently>> <<include "Security Force Proposal">> <</silently>> <</if>>
+	<<if def $SpecOpsLock>>
+		<<set $SF.SpecOpsLock = $SpecOpsLock>>
+		<<unset $SpecOpsLock>>
+	<</if>>
+	<<if $SF.Active >= 0 && passage() === "New Game Plus">> <<= SFInit()>> <<run Object.assign($SF, {Active:-1})>> <</if>>
 	<<if ndef $SF.Facility>>
 		<<set $SF.Facility = Object.assign({}, $SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>>
 	<</if>>