diff --git a/Accounts/manage2.php b/Accounts/manage2.php
index f78c4eaeb2..ee7635fe15 100644
--- a/Accounts/manage2.php
+++ b/Accounts/manage2.php
@@ -195,6 +195,25 @@ if (isset($_GET["command"])) {
 
 			} else echo "parameter_error";
 
+	// Update many character values
+	if ($_GET["command"] == "update_character") 
+		if (ValidLogin($data)) {
+			
+				// Saves specific character values passed as parameters
+				$arr = json_decode($data);
+				if (isset($_GET["money"]) && ($_GET["money"] != "")) $arr->Money = $_GET["money"];
+				if (isset($_GET["owner"]) && ($_GET["owner"] != "")) $arr->Owner = $_GET["owner"];
+				if (isset($_GET["lover"]) && ($_GET["lover"] != "")) $arr->Lover = $_GET["lover"];
+
+				// Overwrite the file
+				$file = GetFileName();
+				$myfile = fopen($file, "w") or die("Unable to open file!");
+				fwrite($myfile, json_encode($arr));
+				fclose($myfile);
+				echo "log_added";
+			
+		}
+			
 } else echo "no_command_error";
 
 ?>
\ No newline at end of file
diff --git a/BondageClub/Account.js b/BondageClub/Account.js
index e940752425..35c4ad0a16 100644
--- a/BondageClub/Account.js
+++ b/BondageClub/Account.js
@@ -32,4 +32,9 @@ function AccountProcess() {
 // Returns TRUE if the account queue is empty and everything is done
 function AccountQueueIsEmpty() {
 	return ((AccountURL.length == 0) && AccountReady);
+}
+
+// Sync the player data with the account server
+function AccountSync() {
+	AccountRequest("update_character", "&money=" + Player.Money.toString() + "&owner=" + Player.Owner + "&lover=" + Player.Lover);
 }
\ No newline at end of file
diff --git a/BondageClub/Backgrounds/Shop.jpg b/BondageClub/Backgrounds/Shop.jpg
index 3f59f411ee..e17919d110 100644
Binary files a/BondageClub/Backgrounds/Shop.jpg and b/BondageClub/Backgrounds/Shop.jpg differ
diff --git a/BondageClub/Backgrounds/ShopDark.jpg b/BondageClub/Backgrounds/ShopDark.jpg
index 20b0230303..d61f5a4a81 100644
Binary files a/BondageClub/Backgrounds/ShopDark.jpg and b/BondageClub/Backgrounds/ShopDark.jpg differ
diff --git a/BondageClub/Backgrounds/ShopHighRez.jpg b/BondageClub/Backgrounds/ShopHighRez.jpg
new file mode 100644
index 0000000000..3f59f411ee
Binary files /dev/null and b/BondageClub/Backgrounds/ShopHighRez.jpg differ
diff --git a/BondageClub/Dialog.js b/BondageClub/Dialog.js
index 5312ea489c..39414323db 100644
--- a/BondageClub/Dialog.js
+++ b/BondageClub/Dialog.js
@@ -105,14 +105,14 @@ function DialogInventoryBuild(C) {
 
 		// Second, we add everything from the victim inventory
 		for(var A = 0; A < C.Inventory.length; A++)
-			if (C.Inventory[A].Asset.Group.Name == C.FocusGroup.Name)
+			if ((C.Inventory[A].Asset != null) && (C.Inventory[A].Asset.Group.Name == C.FocusGroup.Name))
 				DialogInventoryAdd(C.Inventory[A].Asset, false);
 			
 		// Third, we add everything from the player inventory if the player isn't the victim
 		if (C.ID != 0)
 			for(var A = 0; A < Player.Inventory.length; A++)
-				if (Player.Inventory[A].Asset.Group.Name == Player.FocusGroup.Name)
-					DialogInventoryAdd(C.Inventory[A].Asset, false);
+				if ((Player.Inventory[A].Asset != null) && (Player.Inventory[A].Asset.Group.Name == C.FocusGroup.Name))
+					DialogInventoryAdd(Player.Inventory[A].Asset, false);
 
 	}
 
@@ -185,7 +185,8 @@ function DialogClick() {
 				if ((MouseX >= X) && (MouseX < X + 225) && (MouseY >= Y) && (MouseY < Y + 275) && DialogInventory[I].Asset.Enable) {
 
 					// Cannot change item if the previous one is locked
-					if ((DialogInventory[I].Asset.Effect == null) || (DialogInventory[I].Asset.Effect.indexOf("Lock") < 0)) {
+					var Effect = CharacterAppearanceGetCurrentValue(C, C.FocusGroup.Name, "Effect");
+					if ((Effect == null) || (Effect.indexOf("Lock") < 0)) {
 						CharacterAppearanceSetItem(C, DialogInventory[I].Asset.Group.Name, DialogInventory[I].Asset);
 						C.CurrentDialog = DialogFind(C, DialogInventory[I].Asset.Name, DialogInventory[I].Asset.Group.Name);
 						DialogLeaveItemMenu();
@@ -212,7 +213,7 @@ function DialogClick() {
 			DialogLeave();
 
 		// If the user clicked on a text dialog option, we trigger it
-		if ((MouseX >= 1025) && (MouseX <= 1975) && (MouseY >= 100) && (MouseY <= 975)) {
+		if ((MouseX >= 1025) && (MouseX <= 1975) && (MouseY >= 100) && (MouseY <= 975) && (CurrentCharacter != null)) {
 			var pos = 0;
 			for(var D = 0; D < CurrentCharacter.Dialog.length; D++)
 				if ((CurrentCharacter.Dialog[D].Stage == CurrentCharacter.Stage) && (CurrentCharacter.Dialog[D].Option != null) && DialogPrerequisite(D)) {
@@ -283,13 +284,14 @@ function DialogDrawItemMenu(C) {
 		// If the player is struggling
 		if (DialogStruggleTimerEnd > 0) {
 			var Progress = (new Date().getTime() - DialogStruggleTimerStart) / (DialogStruggleTimerEnd - DialogStruggleTimerStart);
-			DrawText("Struggling...", 1500, 450, "White", "Black");	
+			DrawText("Struggling...", 1500, 450, "White", "Black");
 			DrawRect(1200, 500, 600, 100, "White");
 			DrawRect(1202, 503, 594, 94, "Red");
 			DrawRect(1202, 503, Progress * 594, 94, "#88FF88");
 			if (Progress >= 1) {
 				Player.CurrentDialog = DialogFind(Player, "Struggle" + Player.FocusGroup.Name, "");
 				CharacterAppearanceSetItem(Player, Player.FocusGroup.Name, null);
+				DialogInventoryBuild(C);
 			}
 		}
 		else DrawText("You cannot access your items", 1500, 500, "White", "Black");
diff --git a/BondageClub/Icons/Checked.png b/BondageClub/Icons/Checked.png
new file mode 100644
index 0000000000..3978c6b43e
Binary files /dev/null and b/BondageClub/Icons/Checked.png differ
diff --git a/BondageClub/Icons/Locked.png b/BondageClub/Icons/Locked.png
index a36c82e8d9..e36d734812 100644
Binary files a/BondageClub/Icons/Locked.png and b/BondageClub/Icons/Locked.png differ
diff --git a/BondageClub/Icons/Unlocked.png b/BondageClub/Icons/Unlocked.png
index 00e5991a73..6833ca873b 100644
Binary files a/BondageClub/Icons/Unlocked.png and b/BondageClub/Icons/Unlocked.png differ
diff --git a/BondageClub/Import.js b/BondageClub/Import.js
index bcd0187989..677f3a1dfe 100644
--- a/BondageClub/Import.js
+++ b/BondageClub/Import.js
@@ -10,8 +10,8 @@ function ImportBondageCollege(C) {
 		if ((localStorage.getItem("BondageClubImportSource") != null) && (localStorage.getItem("BondageClubImportSource") == "BondageCollege")) {
 
 			// Imports the player lover and owner
-			if ((localStorage.getItem("BondageCollegeExportOwner") != null) && (localStorage.getItem("BondageCollegeExportOwner") != "")) C.Owner = "NPC-" & localStorage.getItem("BondageCollegeExportOwner");
-			if ((localStorage.getItem("BondageCollegeExportLover") != null) && (localStorage.getItem("BondageCollegeExportLover") != "")) C.Lover = "NPC-" & localStorage.getItem("BondageCollegeExportLover");			
+			if ((localStorage.getItem("BondageCollegeExportOwner") != null) && (localStorage.getItem("BondageCollegeExportOwner") != "")) C.Owner = "NPC-" + localStorage.getItem("BondageCollegeExportOwner");
+			if ((localStorage.getItem("BondageCollegeExportLover") != null) && (localStorage.getItem("BondageCollegeExportLover") != "")) C.Lover = "NPC-" + localStorage.getItem("BondageCollegeExportLover");			
 
 			// Imports Sarah status
 			if ((localStorage.getItem("BondageClubImportSource") != null) && (localStorage.getItem("BondageClubImportSource") == "BondageCollege"))
@@ -37,8 +37,11 @@ function ImportBondageCollege(C) {
 			if ((localStorage.getItem("BondageCollegeExportVibratingEgg") != null) && (localStorage.getItem("BondageCollegeExportVibratingEgg") == "true")) InventoryAdd(C, "RegularVibratingEgg", "ItemPelvis");
 
 			// Imports the locked items
-			if ((localStorage.getItem("BondageCollegeExportLockedChastityBelt") != null) && (localStorage.getItem("BondageCollegeExportLockedChastityBelt") == "true")) DialogEquipItem("ItemPelvis", "MetalChastityBelt");
-			if ((localStorage.getItem("BondageCollegeExportLockedCollar") != null) && (localStorage.getItem("BondageCollegeExportLockedCollar") == "true")) DialogEquipItem("ItemNeck", "SlaveCollar");
+			if ((localStorage.getItem("BondageCollegeExportLockedChastityBelt") != null) && (localStorage.getItem("BondageCollegeExportLockedChastityBelt") == "true")) DialogEquipItem("MetalChastityBelt", "ItemPelvis");
+			if ((localStorage.getItem("BondageCollegeExportLockedCollar") != null) && (localStorage.getItem("BondageCollegeExportLockedCollar") == "true")) DialogEquipItem("SlaveCollar", "ItemNeck");
+			
+			// Sync with the account server
+			AccountSync();
 
 		}
 	
diff --git a/BondageClub/Screens/CharacterCreation/CharacterCreation.js b/BondageClub/Screens/CharacterCreation/CharacterCreation.js
index b5c2e96dc7..aacfbcee39 100644
--- a/BondageClub/Screens/CharacterCreation/CharacterCreation.js
+++ b/BondageClub/Screens/CharacterCreation/CharacterCreation.js
@@ -10,7 +10,6 @@ function CharacterCreationLoad() {
 		ImportBondageCollegeData = true;
 		if (localStorage.getItem("BondageCollegeExportName") != null) DefaultName = localStorage.getItem("BondageCollegeExportName");
 	} else ImportBondageCollegeData = null;
-	CharacterCreationMessage = TextGet("EnterAccountCharacterInfo");
 
 	// Creates a text box to enter the character name
 	var InputCharacter = document.createElement('input');
@@ -77,21 +76,22 @@ function CharacterCreationRun() {
 	document.getElementById("InputEmail").setAttribute("style", "font-size:" + (MainCanvas.width / 50) + "px; font-family:Arial; position:absolute; padding-left:10px; left:50%; top:" + (window.innerHeight / 2 + MainCanvas.height * 0.17) + "px; width:" + (MainCanvas.width / 4) + "px; height:" + (MainCanvas.width / 40) + "px;");
 		
 	// Draw the character, the labels and buttons
+	if (CharacterCreationMessage == "") CharacterCreationMessage = TextGet("EnterAccountCharacterInfo");
 	DrawCharacter(Player, 500, 0, 1);
-	DrawText(CharacterCreationMessage, 1267, 60, "White", "Black");
+	DrawText(CharacterCreationMessage, 1267, 50, "White", "Black");
 	DrawText(TextGet("CharacterName"), 1267, 120, "White", "Black");
 	DrawText(TextGet("AccountName"), 1267, 250, "White", "Black");
 	DrawText(TextGet("Password"), 1267, 380, "White", "Black");
 	DrawText(TextGet("ConfirmPassword"), 1267, 510, "White", "Black");
 	DrawText(TextGet("Email"), 1267, 640, "White", "Black");
-	DrawButton(1080, 770, 370, 60, TextGet("CreateAccount"), "White", "");
-	DrawText(TextGet("AccountAlreadyExists"), 1180, 930, "White", "Black");
-	DrawButton(1440, 900, 120, 60, TextGet("Login"), "White", "");
+	DrawButton(1080, 820, 370, 60, TextGet("CreateAccount"), "White", "");
+	DrawText(TextGet("AccountAlreadyExists"), 1180, 950, "White", "Black");
+	DrawButton(1440, 920, 120, 60, TextGet("Login"), "White", "");
 	
 	// Draw the importation check box
 	if (ImportBondageCollegeData != null) {
-		DrawText(TextGet("ImportBondageCollege"), 1217, 20, "White", "Black");
-		DrawButton(1425, 0, 75, 75, "", "White", ImportBondageCollegeData ? "Icons/Checked.png" : "Icons/Unchecked.png");
+		DrawText(TextGet("ImportBondageCollege"), 1217, 774, "White", "Black");
+		DrawButton(1480, 740, 64, 64, "", "White", ImportBondageCollegeData ? "Icons/Checked.png" : "");
 	}
 
 }
@@ -124,11 +124,11 @@ function CharacterCreationResponse(CharacterData) {
 function CharacterCreationClick() {
 
 	// If we must check or uncheck the importation checkbox
-	if ((MouseX >= 1440) && (MouseX <= 1560) && (MouseY >= 900) && (MouseY <= 960) && (ImportBondageCollegeData != null))
+	if ((MouseX >= 1480) && (MouseX <= 1544) && (MouseY >= 740) && (MouseY <= 804) && (ImportBondageCollegeData != null))
 		ImportBondageCollegeData = !ImportBondageCollegeData;
 
 	// If we must go back to the login screen
-	if ((MouseX >= 1440) && (MouseX <= 1560) && (MouseY >= 900) && (MouseY <= 960)) {
+	if ((MouseX >= 1440) && (MouseX <= 1560) && (MouseY >= 920) && (MouseY <= 980)) {
 		document.getElementById("InputCharacter").parentNode.removeChild(document.getElementById("InputCharacter"));
 		document.getElementById("InputName").parentNode.removeChild(document.getElementById("InputName"));
 		document.getElementById("InputPassword1").parentNode.removeChild(document.getElementById("InputPassword1"));
@@ -138,7 +138,7 @@ function CharacterCreationClick() {
 	}
 	
 	// If we must try to create a new account
-	if ((MouseX >= 1080) && (MouseX <= 1450) && (MouseY >= 770) && (MouseY <= 830)) {
+	if ((MouseX >= 1080) && (MouseX <= 1450) && (MouseY >= 820) && (MouseY <= 880)) {
 		
 		// First, we make sure both passwords are the same
 		var CharacterName = document.getElementById("InputCharacter").value.trim();
diff --git a/BondageClub/Screens/CharacterCreation/Text_CharacterCreation_EN.csv b/BondageClub/Screens/CharacterCreation/Text_CharacterCreation_EN.csv
index 1d3bb63807..8277ce3395 100644
--- a/BondageClub/Screens/CharacterCreation/Text_CharacterCreation_EN.csv
+++ b/BondageClub/Screens/CharacterCreation/Text_CharacterCreation_EN.csv
@@ -10,4 +10,4 @@ Login,Login
 Error,Error:
 InvalidData,"Invalid character, account name, password or email"
 BothPasswordDoNotMatch,Both passwords do not match
-ImportBondageCollege,Import Bondage College Data
+ImportBondageCollege,Import Bondage College data
diff --git a/BondageClub/Screens/CharacterInformation/CharacterInformation.js b/BondageClub/Screens/CharacterInformation/CharacterInformation.js
index 4270c79b90..dde270417b 100644
--- a/BondageClub/Screens/CharacterInformation/CharacterInformation.js
+++ b/BondageClub/Screens/CharacterInformation/CharacterInformation.js
@@ -10,8 +10,8 @@ function CharacterInformationRun() {
 	MainCanvas.textAlign = "left";
 	DrawText(TextGet("Name") + " " + C.Name, 550, 125, "Black", "Gray");
 	DrawText(TextGet("Title") + " " + TextGet("TitleNone"), 550, 200, "Black", "Gray");
-	DrawText(TextGet("Owner") + " " + (C.Owner == "") ? TextGet("OwnerNone") : C.Owner, 550, 275, "Black", "Gray");
-	DrawText(TextGet("Lover") + " " + (C.Lover == "") ? TextGet("LoverNone") : C.Lover, 550, 350, "Black", "Gray");
+	DrawText(TextGet("Owner") + " " + (((C.Owner == null) || (C.Owner == "")) ? TextGet("OwnerNone") : C.Owner.replace("NPC-", "")), 550, 275, "Black", "Gray");
+	DrawText(TextGet("Lover") + " " + (((C.Lover == null) || (C.Lover == "")) ? TextGet("LoverNone") : C.Lover.replace("NPC-", "")), 550, 350, "Black", "Gray");
 	DrawText(TextGet("Money") + " " + ((C.ID == 0) ? C.Money.toString() + " $" : "?"), 550, 425, "Black", "Gray");
 
 	// Draw the reputation section
@@ -19,7 +19,7 @@ function CharacterInformationRun() {
 	var pos = 0;
 	for(var R = 0; R < C.Reputation.length; R++)
 		if (C.Reputation[R].Value != 0) {
-			DrawText(TextGet("Reputation" + C.Reputation[R].Type + ((C.Reputation[R].Value > 0) ? "Positive" : "Negative")) + " " + C.Reputation[R].Value.toString(), 1000, 200 + pos * 75, "Black", "Gray");
+			DrawText(TextGet("Reputation" + C.Reputation[R].Type + ((C.Reputation[R].Value > 0) ? "Positive" : "Negative")) + " " + Math.abs(C.Reputation[R].Value).toString(), 1000, 200 + pos * 75, "Black", "Gray");
 			pos++;
 		}
 	if (pos == 0) DrawText(TextGet("ReputationNone"), 1000, 200, "Black", "Gray");
diff --git a/BondageClub/Screens/CharacterLogin/CharacterLogin.js b/BondageClub/Screens/CharacterLogin/CharacterLogin.js
index e87a53b00f..eb77476f7c 100644
--- a/BondageClub/Screens/CharacterLogin/CharacterLogin.js
+++ b/BondageClub/Screens/CharacterLogin/CharacterLogin.js
@@ -60,6 +60,9 @@ function CharacterLoginResponse(CharacterData) {
 		Player.AccountName = C.AccountName;
 		Player.AccountPassword = document.getElementById("InputPassword").value.trim();
 		Player.AssetFamily = C.AssetFamily;
+		if (CommonIsNumeric(C.Money)) Player.Money = C.Money;
+		Player.Owner = C.Owner;
+		Player.Lover = C.Lover;
 		CharacterAppearanceLoadFromAccount(Player, C.Appearance);
 		InventoryLoad(Player, C.Inventory, false);
 		LogLoad(C.Log);
diff --git a/BondageClub/Screens/Shop/Shop.js b/BondageClub/Screens/Shop/Shop.js
index 7165250b6f..eb3c01a5dc 100644
--- a/BondageClub/Screens/Shop/Shop.js
+++ b/BondageClub/Screens/Shop/Shop.js
@@ -20,7 +20,7 @@ function ShopRun() {
 	// Draw both characters
 	DrawCharacter(Player, 0, 0, 1);
 	DrawCharacter(ShopVendor, 500, 0, 1);
-	if (Player.CanWalk() || ShopStart) DrawButton(1885, 25, 90, 90, "", "White", "Icons/Exit.png");
+	if (Player.CanWalk() || ShopStarted) DrawButton(1885, 25, 90, 90, "", "White", "Icons/Exit.png");
 
 	// In shopping mode
 	if (ShopStarted) {
diff --git a/C000_Intro/ChapterSelect/GameCredits.csv b/C000_Intro/ChapterSelect/GameCredits.csv
index 49e7ae1c67..bd70e144f6 100644
--- a/C000_Intro/ChapterSelect/GameCredits.csv
+++ b/C000_Intro/ChapterSelect/GameCredits.csv
@@ -19,74 +19,75 @@ Devil621
 
 CreditTypePatrons
 
-simon b.|Mindtie
-EugeneTooms|Rashiash
-Dick T.|shadow
-Sky L.|Simeon C.
-zack|Alvin
-Laioken|Terry L.
-nick m.|Christian M.
-Overlord|bryce m.
-Xepherio|Designated
-Ilsyra|Jyeoh
-Winterisbest|Michal P.
-Lasse T.|Sivart!
-Sanae X.|Yagami Y.
-Alan J.|Christopher L.
-Yang K.|Tom A.
-Hemtai|John M.
-Ghost00001|Adjarc
-Ricky R.|Carter S.
-Cybermage|Brian R.
-Matt P.|qiyufei
-Mencoz|Silly G.
-Martin V.|devan
+Ryner L.|simon b.
+Mindtie|EugeneTooms
+Rashiash|Dick T.
+shadow|Sky L.
+Simeon C.|zack
+Alvin|Laioken
+Terry L.|nick m.
+Christian M.|Overlord
+bryce m.|Xepherio
+Designated|Ilsyra
+Jyeoh|Winterisbest
+Michal P.|Lasse T.
+Sivart!|Sanae X.
+That O.|Bob
+Rei H.|高辰昊
+Jesse Y.|Fin H.
+ExpertPlasma|Koluc
+Daan|Tommy D.
+Grimsbane|jacob g.
+Yagami Y.|Alan J.
+Christopher L.|Yang K.
+Tom A.|Hemtai
+John M.|Ghost00001
+Adjarc|Ricky R.
+Carter S.|Brian R.
+Matt P.|Mencoz
+Silly G.|devan
 Joshua T.|Chaos
 skylar|CAUI
 Phillip T.|Christopher T.
 DaWolf85|horngeek
-Soulgain|Bob
-oymany|arthus
-VideogameBondag|Richard M.
-Armando A.|Dazman1234
-Yune23|Peter T.
-papettoB|Ray B.
-ajwad|Edward N.
-Maasjo|Leon
-PA|Al S.
-chi21204|plicoc
+Soulgain|oymany
+arthus|VideogameBondag
+Richard M.|Armando A.
+Dazman1234|Yune23
+Peter T.|papettoB
+Ray B.|ajwad
+Edward N.|Maasjo
+Leon|PA
+Al S.|chi21204
 Some G.|Mitch
 P|Flying V.
 Raven N.|MaxFactor85
-Azikela|MegaLucario5
-Jakaa9|Alexander J.
-calrodsomething|Apple A.
-Billy T.|Sean L.
-Tai S.|Reire M.
-steven v.|jacob g.
+MegaLucario5|Jakaa9
+Alexander J.|calrodsomething
+Apple A.|Billy T.
+Sean L.|Tai S.
+Reire M.|steven v.
 Shinonon|BinaryNerd
-Bobby S.|Alan R.
-JOSH C.|trbt
-Thomas|Karl P.
-tetris245|Destroyer-x
-Garreth W.|Apoloris98
-Amagiri Y.|john w.
-Oni|Erik L.
-Michael L.|Hunter M.
-Jared s.|Dessed
-天河|Mats J.
+Alan R.|JOSH C.
+trbt|Thomas
+Karl P.|tetris245
+Destroyer-x|Garreth W.
+Apoloris98|Amagiri Y.
+john w.|Oni
+Erik L.|Michael L.
+Hunter M.|Jared s.
+Dessed|天河
 Jinx|bla_rg
 Michael I.|hiddenlotus555
 Julio E.|Lukas B.
 Yoshoki|1073522
 Simon W.|flydeath
 KBgamer2010|CuvyanTaylor
-JohnCenaDidNoth|Gopanka
+HXH|Gopanka
 Zack|Keso
-Ryner L.|Noah J.
-Ff7sfm|thomas
-nubbs99|Lukas Z.
-ExpertPlasma|Bumurmum
+Noah J.|Ff7sfm
+thomas|nubbs99
+Lukas Z.|Bumurmum
 Ediger|Steve J.
 Nathaniel W.|Denis S.
 Blackfur|Dan S.
@@ -119,27 +120,28 @@ Robert|Daniel W.
 Lilian B.|Stanley F.
 Barbehenn|Stargat53
 Lovebdg1|Jörn P.
-Punn P.|C
-高辰昊|Bryce R.
+plicoc|Punn P.
+C|Bryce R.
 adokilume|Slash
-Fin H.|target
-gottspende|What E.
-Stefano|Rafael R.
-Koluc|AJ22
-AleX|Sumeroda
-Joel A.|Triassik
-ClockALock|韩旭东
-roulio12|ElCorro
-Lukas G.|egadonb
-Meyer|Oren B.
-Afituz I.|Raven-rj
-Zongus763|Jack S.
-dale r.|Alpha
-David R.|Escaperobe
-Magnus O.|pat
-Leonardo P.|jukehero461
-lemonda|Littleshiro-kun
-Christopher W.|
+target|gottspende
+What E.|Stefano
+Rafael R.|Harry J.
+Trosan|Kitten
+Trololol|David R.
+AJ22|AleX
+Sumeroda|Joel A.
+Triassik|ClockALock
+韩旭东|roulio12
+ElCorro|Lukas G.
+egadonb|Meyer
+Oren B.|Afituz I.
+Raven-rj|Zongus763
+Jack S.|dale r.
+Azikela|Alpha
+Escaperobe|Magnus O.
+pat|Leonardo P.
+jukehero461|lemonda
+Littleshiro-kun|Christopher W.
 
 CreditTypeFans
 
diff --git a/C000_Intro/ChapterSelect/Script.js b/C000_Intro/ChapterSelect/Script.js
index cee2dad9be..7d6c49bd9e 100644
--- a/C000_Intro/ChapterSelect/Script.js
+++ b/C000_Intro/ChapterSelect/Script.js
@@ -4,7 +4,7 @@ var C000_Intro_ChapterSelect_CreditPosition = 0;
 var C000_Intro_ChapterSelect_Credits = [];
 var C000_Intro_ChapterSelect_CreditActors = ["Player", "Amanda", "Sarah", "Sidney", "Jennifer", "Julia", "Yuki"];
 var C000_Intro_ChapterSelect_ThankYouCount = 999999;
-var C000_Intro_ChapterSelect_ThankYouList = ["Alvin", "Bryce", "Christian", "Designated", "Dick", "EugeneTooms", "Ilsyra", "Jyeoh", "Laioken", "Michal", "Mindtie", "Nick", "Overlord", "Rashiash", "Shadow", "Simeon", "Simon", "Sky", "Terry", "Winterisbest", "Xepherio", "Zack"];
+var C000_Intro_ChapterSelect_ThankYouList = ["Alvin", "Bryce", "Christian", "Designated", "Dick", "EugeneTooms", "Ilsyra", "Jyeoh", "Laioken", "Michal", "Mindtie", "Nick", "Overlord", "Rashiash", "Ryner", "Shadow", "Simeon", "Simon", "Sky", "Terry", "Winterisbest", "Xepherio", "Zack"];
 var C000_Intro_ChapterSelect_ThankYouCurrent = -1;
 var C000_Intro_ChapterSelect_CreditTextColor = "black";
 
diff --git a/C000_Intro/ChapterSelect/ThankYou/Ryner.jpg b/C000_Intro/ChapterSelect/ThankYou/Ryner.jpg
new file mode 100644
index 0000000000..6990043a76
Binary files /dev/null and b/C000_Intro/ChapterSelect/ThankYou/Ryner.jpg differ
diff --git a/C012_AfterClass/index.html b/C012_AfterClass/index.html
new file mode 100644
index 0000000000..aece71a4fb
--- /dev/null
+++ b/C012_AfterClass/index.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<title>Bondage College - Outdated Version</title>
+<meta http-equiv="refresh" content="2; URL=../V13B/">
+<meta name="keywords" content="automatic redirection">
+</head>
+<body>
+You're trying to load an outdated version of the Bondage College.<br /><br />
+If your browser doesn't automatically load the correct version in a few seconds, you can use this <a href="../V13B/">link</a>.
+</body>
+</html>
\ No newline at end of file
diff --git a/C013_BondageClub/Entrance/Stage_EN.csv b/C013_BondageClub/Entrance/Stage_EN.csv
index 060c4af85d..3d39675435 100644
--- a/C013_BondageClub/Entrance/Stage_EN.csv
+++ b/C013_BondageClub/Entrance/Stage_EN.csv
@@ -26,4 +26,4 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 140,0,0,!IsCollared,What about|my slaves?,You cannot invite your slaves without|a permission from the Head Mistress.,150,0,0,
 150,0,0,,I understand.,Are you ready to enter the club?|I will lead you to the dressing room.,160,0,0,
 160,0,0,BeltProblem,(Blush)  I have a|metal undies problem.,Don't worry girl.  You're not the only|one wearing a belt.  You can come in.,160,0,0,
-160,0,0,NoProblem,I'm ready!|(Enter the club.),,160,0,0,EnterClub()
+160,0,0,,I'm ready!|(Enter the club.),,160,0,0,EnterClub()