Browse Source

NPC Names Fixed

Stephan Fuchs 10 months ago
parent
commit
c81bc6a651

+ 117 - 88
npcs_convert.py

@@ -5,93 +5,122 @@ from glob import glob
 import fileinput
 import re
 import sys
-exit(0)
 def file_convert(filename):
-    global tw_sources_path, tw_destination_path
-    source_filepath= os.path.join(tw_sources_path,filename)+'.tw'
-    destination_filepath= os.path.join(tw_destination_path,filename)+'compiled.js'
-    with open(source_filepath, 'r') as file:
-        lines = [line.rstrip() for line in file]
-
-    npccounter = 0
-
-    with open(destination_filepath, 'w') as file:
-        file.write("if(!setup.npcs)\n\tsetup.npcs = {};\n")
-        identifier = 'none'
-        npc_id = ''
-        npc_subobjects = {}
-        npc_defaults = []
-        counter = 0
-        for line in lines:
-            line = line.strip()
-            if match := re.match(r"""<<set\s+\$npctemp\s*=\s*(\d+)>>""",line):
-                if len(npc_id) > 0:
-
-
-                    for npc_subobject_id in npc_subobjects:
-                        npc_subobject = npc_subobjects[npc_subobject_id]
-                        file.write('\t'+npc_subobject_id+':{\n')
-                        for valueKey in npc_subobject:
-                            val = npc_subobject[valueKey]
-                            file.write('\t\t'+valueKey+':'+val+',\n')
-
-                        file.write('\t},\n')
-
-                        if len(npc_defaults) > 0:
-                            file.write('\tdefaults:[')
-                            file.write(','.join(npc_defaults))
-                            file.write('],\n')
-
-
-                    file.write('}\n')
-
-                npc_id = 'A'+match.group(1)
-                npc_subobjects = {}
-                npc_defaults = []
-                file.write('setup.npcs["'+npc_id+'"] = {\n')
-            elif len(npc_id) > 0:
-                if match := re.match(r"""<<set(?:init)?\s+\$(npc_)?(\w*?)\[\s*'A'\s*\+\s*\$npctemp\s*(?:\+\s*'(\w+)')?\]\s*=\s*(.*?)\s*>>""",line):
-                    if match.group(3):
-                        subObjectName = match.group(3)
-                        if subObjectName.startswith('_'):
-                            subObjectName = subObjectName[1:]
-                        if not match.group(2) in npc_subobjects:
-                            npc_subobjects[match.group(2)] = {}
-                        npc_subobjects[match.group(2)][subObjectName] = match.group(4)
-                    else:
-                        v = match.group(4)
-                        if v.startswith('$') or v.startswith('(') or v[0].isalpha():
-                            v="'Incorrect Initialization: "+v+"'"
-                        file.write('\t')
-                        file.write(match.group(2))
-                        file.write(':')
-                        file.write(v)
-                        file.write(',\n')
-                elif match:= re.match(r"""<<gs 'npcstaticdefaults'\s*(.*?)>>""",line,re.I):
-                    npc_defaults.append(match.group(1).replace("' '",'_'))
-
-
-        for npc_subobject_id in npc_subobjects:
-            npc_subobject = npc_subobjects[npc_subobject_id]
-            file.write('\t'+npc_subobject_id+':{\n')
-            for valueKey in npc_subobject:
-                val = npc_subobject[valueKey]
-                file.write('\t\t'+valueKey+':'+val+',\n')
-
-            file.write('\t},\n')
-
-            if len(npc_defaults) > 0:
-                file.write('\tdefaults:[')
-                file.write(','.join(npc_defaults))
-                file.write('],\n')
-
-        file.write('}\n')
-
-
-
-
-
-tw_sources_path = os.path.join("sugarcube","src","autogenerated","npcstatic")
+	global tw_sources_path, tw_destination_path
+	source_filepath= os.path.join(tw_sources_path,filename)+'.tw'
+	destination_filepath= os.path.join(tw_destination_path,filename)+'compiled.js'
+	with open(source_filepath, 'r') as file:
+		lines = [line.rstrip() for line in file]
+
+	npccounter = 0
+
+	with open(destination_filepath, 'w') as file:
+		file.write("setup.npcs ??= {};\n")
+		identifier = 'none'
+		npc_id = ''
+		npc_subobjects = {}
+		npc_defaults = []
+		counter = 0
+		for line in lines:
+			line = line.strip()
+			if match := re.match(r"""<<set\s+\$npctemp\s*=\s*(\d+)>>""",line):
+				if len(npc_id) > 0:
+
+
+					for npc_subobject_id in npc_subobjects:
+						npc_subobject = npc_subobjects[npc_subobject_id]
+						file.write('\t'+npc_subobject_id+':{\n')
+						for valueKey in npc_subobject:
+							val = npc_subobject[valueKey]
+							file.write('\t\t'+valueKey+':'+val+',\n')
+
+						file.write('\t},\n')
+
+						if len(npc_defaults) > 0:
+							file.write('\tdefaults:[')
+							file.write(','.join(npc_defaults))
+							file.write('],\n')
+
+
+					file.write('}\n')
+
+				npc_id = 'A'+match.group(1)
+				npc_subobjects = {}
+				npc_defaults = []
+				file.write('setup.npcs["'+npc_id+'"] = {\n')
+			elif len(npc_id) > 0:
+				if match := re.match(r"""<<set(?:init)?\s+\$(npc_)?(\w*?)\[\s*'A'\s*\+\s*\$npctemp\s*(?:\+\s*'(\w+)')?\]\s*=\s*(.*?)\s*>>""",line):
+					if match.group(3):
+						subObjectName = match.group(3)
+						if subObjectName.startswith('_'):
+							subObjectName = subObjectName[1:]
+						if not match.group(2) in npc_subobjects:
+							npc_subobjects[match.group(2)] = {}
+						npc_subobjects[match.group(2)][subObjectName] = match.group(4)
+					else:
+						v = match.group(4)
+						if v.startswith('$') or v.startswith('(') or v[0].isalpha():
+							v="'Incorrect Initialization: "+v+"'"
+						file.write('\t')
+						file.write(match.group(2))
+						file.write(':')
+						file.write(v)
+						file.write(',\n')
+				elif match := re.match(r"""<<run \$npcs\.set\('A' \+ \$npctemp,'([^']+)',(.*)\)>>""",line): # Plain values
+					field = match.group(1)
+					v = match.group(2)
+
+					if "rand(" in v or v[0] == '$':
+						v = "'Incorrect Initialization: "+v+"'"
+
+					if field == 'firstname':
+						firstname = v
+
+					if field == 'usedname' and v == firstname:
+						continue
+
+					file.write('\t')
+					file.write(field)
+					file.write(':')
+					file.write(v)
+					file.write(',\n')
+				elif match := re.match(r"""<<run \$npcs\.set\('A'\+\$npctemp\+'(\w+)','(\w+)',([^>]+)\)>>""",line): # Subarrays, such as preferences
+					subObjectName = match.group(1)
+					if subObjectName.startswith('_'):
+						subObjectName = subObjectName[1:]
+					if not match.group(2) in npc_subobjects:
+						npc_subobjects[match.group(2)] = {}
+					npc_subobjects[match.group(2)][subObjectName] = match.group(3)
+				elif match := re.match(r"""<<setinit \$pc\.hotcat_rating\['A' \+ \$npctemp\] = (\d+)>>""",line): # Hotcat
+					v = match.group(1)
+					file.write('\t')
+					file.write('hotcat_rating:')
+					file.write(v)
+					file.write(',\n')
+				elif match:= re.match(r"""<<gs 'npcstaticdefaults'\s*(.*?)>>""",line,re.I):
+					npc_defaults.append(match.group(1).replace("' '",'_'))
+
+
+		for npc_subobject_id in npc_subobjects:
+			npc_subobject = npc_subobjects[npc_subobject_id]
+			file.write('\t'+npc_subobject_id+':{\n')
+			for valueKey in npc_subobject:
+				val = npc_subobject[valueKey]
+				file.write('\t\t'+valueKey+':'+val+',\n')
+
+			file.write('\t},\n')
+
+			if len(npc_defaults) > 0:
+				file.write('\tdefaults:[')
+				file.write(','.join(npc_defaults))
+				file.write('],\n')
+
+		file.write('}\n')
+
+
+
+
+tw_sources_path = os.path.join("sugarcube","src","npcs","_npcstatic")
 tw_destination_path = os.path.join(tw_sources_path,"compiled")
 
 os.makedirs(tw_destination_path,exist_ok=True)
@@ -99,5 +128,5 @@ os.makedirs(tw_destination_path,exist_ok=True)
 filesNames = [y for x in os.walk(tw_sources_path) for y in glob(os.path.join(x[0], '*.tw'))]
 #print(filesNames)
 for file in filesNames:
-    #print(file)
-    file_convert(os.path.basename(file).split('.')[0])
+	#print(file)
+	file_convert(os.path.basename(file).split('.')[0])

+ 7 - 36
sugarcube/src/npcs/_npcstatic/compiled/npcstatic1compiled.js

@@ -1,5 +1,4 @@
-if(!setup.npcs)
-	setup.npcs = {};
+setup.npcs ??= {};
 setup.npcs["A1"] = {
 	dna:'1594378993 1607632682 1428796224 1448474566 1775134737 1909315069 1882255348',
 	firstname:'Dmitriy',
@@ -65,7 +64,6 @@ setup.npcs["A3"] = {
 	firstname:'Ivan',
 	nickname:'Ivan',
 	lastname:'Prokhorov',
-	usedname:'Ivan',
 	dob:19990717,
 	notes:'Ivan Prokhorov is a talented athlete who is able to succeed in any sport he takes part of. He is mostly into boxing and running at this time and is considered to be very good looking by the girls in school. He spends a lot of time training and regularly is away competing. He isn`t very sociable and, other than when he is training, tends to keep to himself, a true lone wolf. He is calm and collected by nature, some might even say apathetic.',
 	gender:0,
@@ -88,7 +86,6 @@ setup.npcs["A4"] = {
 	firstname:'Igor',
 	nickname:'Igor',
 	lastname:'Kruglov',
-	usedname:'Igor',
 	dob:19991222,
 	notes:'Igor Kruglov is Dimka`s best friends and whenever you see one of them the other is usually not too far away. With a small stature, high pitched voice, and pretty face many consider him to be very feminine. Normally a boy like him would be mocked but his friendship with Dimka, the most popular boy in school, shields him from such abuse. Many wonder about their friendship as Igor follows Dimka around so often and they seem to have always been friends. Some would even say that Igor is overly attached to Dimka. Other than Dimka though Igor doesn`t seem to have any other close friends.',
 	gender:0,
@@ -165,7 +162,6 @@ setup.npcs["A7"] = {
 	firstname:'Lesco',
 	nickname:'Lesco',
 	lastname:'Tsarev',
-	usedname:'Lesco',
 	dob:19990703,
 	notes:'Everyone at school always bullies Lesco about anything and everything. He is the nephew of Mr. Tsarev and cousin of Lera. He resides with the Tsarev`s after his mother abandoned him for a week on one of her drug binges.',
 	gender:0,
@@ -186,7 +182,6 @@ setup.npcs["A8"] = {
 	firstname:'Svyatoslav',
 	nickname:'Svyatoslav',
 	lastname:'Voinov',
-	usedname:'Svyatoslav',
 	dob:19990503,
 	notes:'Svyatoslav Voinov is an athletic guy with a very competitive spirit. He is always engaged in sports one way or another. He runs track and often competes with Ivan to be the fastest boy at school. His other focus is football as well as many other sports the school offers. He`s always trying to one up Ivan but rarely manages to beat him at anything.',
 	gender:0,
@@ -301,7 +296,6 @@ setup.npcs["A12"] = {
 	firstname:'Julia',
 	nickname:'Julia',
 	lastname:'Milov',
-	usedname:'Julia',
 	dob:19990330,
 	notes:'Julia is a diligent and silent girl. She`s very nerdy, and doesn`t really have any friends in school. She seems to like keeping to herself, but has sometimes been caught eyeing the other girls while they changing after the gym lessons.',
 	gender:1,
@@ -331,7 +325,6 @@ setup.npcs["A13"] = {
 	firstname:'Lariska',
 	nickname:'Lariska',
 	lastname:'Gruzdeva',
-	usedname:'Lariska',
 	notes:'Lariska is a very athletic girl, with an exceptional talent for volleyball. She has a very weak personality though, and is very dependent on other people`s opinions of her. Her best friend is <<=$npcs.get("A18","usedname")>> and one can often see Lariska chasing after <<=$npcs.get("A18","usedname")>>.',
 	dob:19990603,
 	gender:1,
@@ -416,7 +409,6 @@ setup.npcs["A16"] = {
 	firstname:'Natasha',
 	nickname:'Natasha',
 	lastname:'Belova',
-	usedname:'Natasha',
 	dob:19990706,
 	notes:'Natasha is an excellent student and one of the smartest people in your school. Even though you are living in the same building, her parents are very poor, and it shows as Natasha is always dressed in second-hand clothes and can never afford to do anything fun. As a result, she doesn`t have many friends, as most of the other girls shun her or mock her poor clothing.',
 	gender:1,
@@ -446,7 +438,6 @@ setup.npcs["A17"] = {
 	firstname:'Irina',
 	nickname:'Inna',
 	lastname:'Devyatova',
-	usedname:'Irina',
 	dob:19990329,
 	notes:'Inna Devyatova is a tall and pretty girl, she knows it and takes full advantage of it. She has a very arrogant and haughty personality hidden behind her sweet smile. She often makes the boys do her dirty work.',
 	gender:1,
@@ -476,7 +467,6 @@ setup.npcs["A18"] = {
 	firstname:'Christina',
 	nickname:'Christina',
 	lastname:'Zvereva',
-	usedname:'Christina',
 	notes:'<<=$npcs.get("A18","usedname")>> is one of your school`s best athletes, and is the strongest girl you know. She has leadership abilities that, together with her tenacity and intelligence, make her having a dominant presence wherever she goes. She is also more than a bit of a bully to most of the other girls in school.',
 	dob:19991226,
 	gender:1,
@@ -509,7 +499,7 @@ setup.npcs["A19"] = {
 	lastname:'Starov',
 	usedname:'Lina',
 	dob:19990224,
-	notes:'Lina Starov is a mediocre athlete. She`s sort of <<=$npcs.get("A18","usedname")>>`s friend... but not really, the right term you would use is <<=$npcs.get("A18","usedname")>>`s lapdog. She usually does anything <<=$npcs.get("A18","usedname")>> wants her to do as if she doesn`t have a mind of her own.',
+	notes:'Lina Starov is a mediocre athlete. She`s sort of <<=$npcs.get("A18","usedname_possessive")>> friend... but not really, the right term you would use is <<=$npcs.get("A18","usedname_possessive")>> lapdog. She usually does anything <<=$npcs.get("A18","usedname")>> wants her to do as if she doesn`t have a mind of her own.',
 	gender:1,
 	bust:14,
 	intel:30,
@@ -617,7 +607,6 @@ setup.npcs["A23"] = {
 	firstname:'Albina',
 	nickname:'Albina',
 	lastname:'Barlovskaya',
-	usedname:'Albina',
 	notes:'Albina Barlovskaya comes from a wealthy family. She always does her best to look and dress well, she is considered to have the best sense of style in school. She is also an excellent dancer. Always conducting herself properly as her father is trying to become the town mayor. Image is everything is probably Albina`s motto.',
 	dob:19990502,
 	gender:1,
@@ -648,7 +637,6 @@ setup.npcs["A24"] = {
 	firstname:'Pauline',
 	nickname:'Pauline',
 	lastname:'Sebagotulina',
-	usedname:'Pauline',
 	notes:'Pauline Sebagotulina is a bit of a wild child making her very unpredictable. She often hangs out with the Gopniks in your class and is liked by them. No one dares to mess with her cause she`s been in more fights than anyone else.',
 	dob:19991026,
 	gender:1,
@@ -677,7 +665,6 @@ setup.npcs["A25"] = {
 	firstname:'Sonia',
 	nickname:'Sonia',
 	lastname:'Ivanko',
-	usedname:'Sonia',
 	dob:19990623,
 	gender:1,
 	bust:9,
@@ -685,6 +672,7 @@ setup.npcs["A25"] = {
 	hotcat_rating:6,
 	rep:390,
 	rep:40,
+	passage:'npc_Sonia',
 	preference:{
 		bimbo:1,
 		punk:1,
@@ -698,14 +686,12 @@ setup.npcs["A25"] = {
 		strong:- 1,
 	},
 	defaults:['defaults'],
-	passage: 'npc_Sonia'
 }
 setup.npcs["A26"] = {
 	dna:'1047167563 2063456541 1533040976 1303801542 1620497680 1042269021 1659592524',
 	firstname:'Anatoly E.',
 	nickname:'Anatoly E.',
 	lastname:'Tsarev',
-	usedname:'Mr. Tsarev',
 	notes:'<<=$npcs.get("A26","fullname")>> is the school`s math teacher. He`s a stern teacher, who always demands the best out of his students. His daughter Lera is in your class. He`s married to Vera, who works at the train station as a ticket saleswoman and as a cleaner in the garment factory. There are rumors that sense Lesco came to live with them, his marriage has been on the rocks.',
 	dob:19730307,
 	gender:0,
@@ -732,7 +718,6 @@ setup.npcs["A27"] = {
 	firstname:'Vera',
 	nickname:'Vera',
 	lastname:'Tsarev',
-	usedname:'Vera',
 	notes:'The mother of Lera',
 	dob:19750903,
 	gender:1,
@@ -744,13 +729,13 @@ setup.npcs["A28"] = {
 	firstname:'Vladimir',
 	nickname:'Dad',
 	lastname:'Incorrect Initialization: $pc.name_last',
-	usedname:'Vladimir',
 	notes:'Your stepfather is a greying, slightly flabby man working as a truck driver. Your mother divorced your biological father and married <<=$npcs.get("A28","firstname")>> when you were only one year old. You`ve never seen your biological father since their divorce, and as such you have no real memory of him.',
 	dob:19700418,
 	gender:0,
 	thdick:'well proportioned',
 	dick:17,
 	sexskill:1,
+	passage:'npc_stepfather',
 	hotcat_rating:7,
 	preference:{
 		bimbo:1,
@@ -764,7 +749,6 @@ setup.npcs["A28"] = {
 		strong:- 1,
 	},
 	defaults:['defaults','group_family'],
-	passage: 'npc_stepfather'
 }
 setup.npcs["A29"] = {
 	dna:'1545843327 1962976090 1780199176 1930957336 1888703623 1843607237 1675779774',
@@ -777,6 +761,7 @@ setup.npcs["A29"] = {
 	gender:1,
 	sexskill:2,
 	bust:25,
+	passage:'npc_mother',
 	hotcat_rating:6,
 	preference:{
 		bimbo:- 1,
@@ -792,8 +777,6 @@ setup.npcs["A29"] = {
 		strong:- 1,
 	},
 	defaults:['defaults','group_family'],
-	passage: 'npc_mother',
-	memoryVars:['$pc.hairCol']
 }
 setup.npcs["A30"] = {
 	dna:'1545843328 1962976090 1780199176 1930957336 1888703623 1843607237 1675779774',
@@ -881,12 +864,12 @@ setup.npcs["A33"] = {
 	firstname:'Anya',
 	nickname:'Sister',
 	lastname:'Incorrect Initialization: $pc.name_last',
-	usedname:'Anya',
 	notes:'Your older sister',
 	dob:19970816,
 	gender:1,
 	bust:19,
 	hotcat_rating:7,
+	passage:'npc_sister',
 	preference:{
 		bimbo:0,
 		punk:0,
@@ -903,20 +886,19 @@ setup.npcs["A33"] = {
 		strong:0,
 	},
 	defaults:['defaults','group_family'],
-	passage: 'npc_sister'
 }
 setup.npcs["A34"] = {
 	dna:'1588599246 1545843327 1085730943 1962976090 1780199176 1931034853 1979821791',
 	firstname:'Kolka',
 	nickname:'Kolka',
 	lastname:'Incorrect Initialization: $pc.name_last',
-	usedname:'Kolka',
 	notes:'Your Brother',
 	dob:20001219,
 	gender:0,
 	thdick:'slim',
 	dick:14,
 	intel:43,
+	passage:'npc_brother',
 	hotcat_rating:7,
 	preference:{
 		bimbo:0,
@@ -934,7 +916,6 @@ setup.npcs["A34"] = {
 		strong:0,
 	},
 	defaults:['defaults','group_family'],
-	passage: 'npc_brother'
 }
 setup.npcs["A35"] = {
 	dna:'1198040660 1936146603 2049979334 1276791698 1325847789 1379325296 1029736884',
@@ -988,7 +969,6 @@ setup.npcs["A37"] = {
 setup.npcs["A38"] = {
 	dna:'1226305314 1430928850 1144576786 1435600997 1537092669 1301461802 1167005269',
 	firstname:'Yuri',
-	usedname:'Yuri',
 	notes:'An Office Worker',
 	dob:19940609,
 	gender:0,
@@ -999,7 +979,6 @@ setup.npcs["A38"] = {
 setup.npcs["A39"] = {
 	dna:'1792509661 1994108013 1588492806 1200642788 1785136518 1482855645 1903324752',
 	firstname:'Sasha',
-	usedname:'Sasha',
 	notes:'Cleaning Job Security Guard',
 	dob:19920215,
 	gender:0,
@@ -1010,7 +989,6 @@ setup.npcs["A39"] = {
 setup.npcs["A40"] = {
 	dna:'1378982990 1311934118 1904514436 1282506111 1725049043 1341280625 1250233099',
 	firstname:'Kisame',
-	usedname:'Kisame',
 	notes:'A powerful Athelete who swims regularly in the pool.',
 	dob:19960514,
 	gender:0,
@@ -1032,7 +1010,6 @@ setup.npcs["A42"] = {
 	dna:'1684075531 1825751910 1655527813 1683610108 1813375771 2012109105 1708557162',
 	firstname:'Ashot',
 	lastname:'Karapetovich',
-	usedname:'Ashot',
 	notes:'Fabiyan Pankratov`s nephew.',
 	dob:19970502,
 	gender:0,
@@ -1050,7 +1027,6 @@ setup.npcs["A43"] = {
 setup.npcs["A44"] = {
 	dna:'1313155229 1195459649 1517554507 1714940250 1195812044 1410182720 1106787557',
 	firstname:'Jora',
-	usedname:'Jora',
 	dob:19890925,
 	gender:0,
 	thdick:'well proportioned',
@@ -1059,7 +1035,6 @@ setup.npcs["A44"] = {
 setup.npcs["A45"] = {
 	dna:'2120036389 1608902916 1608360250 1348006946 1295114181 1691995142 1058262054',
 	firstname:'Semyon',
-	usedname:'Semyon',
 	dob:19920205,
 	gender:0,
 	thdick:'massive',
@@ -1068,7 +1043,6 @@ setup.npcs["A45"] = {
 setup.npcs["A46"] = {
 	dna:'1730012364 1640374953 1450067760 1963836408 1594339112 1081934143 1987109342',
 	firstname:'Andrew',
-	usedname:'Andrew',
 	notes:'Rapist at the lake',
 	dob:19980408,
 	gender:0,
@@ -1078,7 +1052,6 @@ setup.npcs["A46"] = {
 setup.npcs["A47"] = {
 	dna:'1093558586 1874182199 1860051813 1894735696 2013967885 1566236664 1861552325',
 	firstname:'Stasik',
-	usedname:'Stasik',
 	gender:0,
 	thdick:'thick',
 	dick:15,
@@ -1087,7 +1060,6 @@ setup.npcs["A47"] = {
 setup.npcs["A48"] = {
 	dna:'1399171137 1247493113 1072511322 1204732676 1430581863 1194553758 1926427252',
 	firstname:'Valera',
-	usedname:'Valera',
 	gender:0,
 	thdick:'thicker than average',
 	dick:17,
@@ -1095,7 +1067,6 @@ setup.npcs["A48"] = {
 setup.npcs["A49"] = {
 	dna:'1801121147 1596587819 1688642091 1202650974 1577509272 1059659374 1678770230',
 	firstname:'Bobka',
-	usedname:'Bobka',
 	gender:0,
 	thdick:'thicker than average',
 	dick:16,

+ 1 - 26
sugarcube/src/npcs/_npcstatic/compiled/npcstatic2compiled.js

@@ -1,5 +1,4 @@
-if(!setup.npcs)
-	setup.npcs = {};
+setup.npcs ??= {};
 setup.npcs["A50"] = {
 	dna:'1435367511 1891990398 1521901210 1459906326 1825460937 1413691134 1744017772',
 	firstname:'Stas',
@@ -12,7 +11,6 @@ setup.npcs["A50"] = {
 setup.npcs["A51"] = {
 	dna:'1852796600 2106532432 1184050637 1847025401 1606707948 1039681085 1957750328',
 	firstname:'Vitali',
-	usedname:'Vitali',
 	gender:0,
 	thdick:'massive',
 	dick:18,
@@ -21,7 +19,6 @@ setup.npcs["A52"] = {
 	dna:'1571713339 1381421911 1129274296 1580593240 1693511984 1798824352 1655802955',
 	firstname:'Nicholas',
 	lastname:'Polyakov',
-	usedname:'Nicholas',
 	gender:0,
 	thdick:'thick',
 	dick:16,
@@ -79,7 +76,6 @@ setup.npcs["A56"] = {
 	firstname:'Roma',
 	nickname:'Roma',
 	lastname:'Meynold',
-	usedname:'Roma',
 	notes:'Your Sister`s Boyfriend. Brother to Katja and Viktoriya.',
 	gender:0,
 	thdick:'thicker than average',
@@ -106,7 +102,6 @@ setup.npcs["A57"] = {
 	dna:'1173276062 1427985989 1736266892 1028816280 1824359669 1132882533 1134471109',
 	firstname:'Rex',
 	lastname:'Borisyuk',
-	usedname:'Rex',
 	notes:'A good friend of your older sister, he throws parties almost every weekend.',
 	gender:0,
 	thdick:'well proportioned',
@@ -134,7 +129,6 @@ setup.npcs["A58"] = {
 	firstname:'Zhendos',
 	nickname:'Zhen',
 	lastname:'Mikhailov',
-	usedname:'Zhendos',
 	notes:'Your Brother`s Friend.',
 	gender:0,
 	thdick:'thicker than average',
@@ -163,7 +157,6 @@ setup.npcs["A59"] = {
 	firstname:'Mishan',
 	nickname:'Misha',
 	lastname:'Andreev',
-	usedname:'Mishan',
 	notes:'Your brother`s friend.',
 	gender:0,
 	thdick:'well proportioned',
@@ -204,7 +197,6 @@ setup.npcs["A61"] = {
 	dna:'1674740055 1616332471 1238320018 1885547841 1948804143 1271878978 1383881679',
 	firstname:'Kolyamba',
 	nickname:'Kolyamba',
-	usedname:'Kolyamba',
 	lastname:'Rostislav',
 	dob:20000605,
 	notes:'Boy from Gadukino',
@@ -244,10 +236,8 @@ setup.npcs["A64"] = {
 	dna:'2011848683 2053109941 2123319868 1126381092 1930867160 1481040265 1607304091',
 	firstname:'Afanasiy',
 	nickname:'Afanasiy',
-	usedname:'Afanasiy',
 	lastname:'Maximov',
 	notes:'Mira`s Father',
-	dob:'Incorrect Initialization: ($pcs_dob - ($pcs_dob % 10000)) + 34523',
 	gender:0,
 	thdick:'thick',
 	dick:18,
@@ -258,7 +248,6 @@ setup.npcs["A65"] = {
 	dna:'1407717462 1572128651 2011848683 1766614432 1751115695 2053109941 2123319868',
 	firstname:'Vitaliy',
 	nickname:'Vitaliy',
-	usedname:'Vitaliy',
 	lastname:'Maximov',
 	notes:'Mira`s Brother',
 	dob:20000623,
@@ -376,7 +365,6 @@ setup.npcs["A73"] = {
 	dna:'2012922376 1037502234 1553944791 1481530732 1811451079 1396452842 1984210226',
 	firstname:'Arthur',
 	nickname:'Arthur',
-	usedname:'Arthur',
 	notes:'An entrepeneur who owns market stalls in several locations.',
 	gender:0,
 	thdick:'monstrous',
@@ -387,7 +375,6 @@ setup.npcs["A74"] = {
 	firstname:'Anatoly',
 	nickname:'Chubais',
 	lastname:'Borisovich',
-	usedname:'Anatoly',
 	notes:'Director of the Burger Bistro',
 	gender:0,
 	thdick:'slim',
@@ -397,7 +384,6 @@ setup.npcs["A75"] = {
 	dna:'2039225506 1786885929 1179834057 1525285053 1729741476 1870377171 1879004056',
 	firstname:'Sergei',
 	lastname:'Borisovich',
-	usedname:'Sergei',
 	notes:'Assistant Manager at the Burger Bistro, son of the owner.',
 	gender:0,
 	thdick:'massive',
@@ -422,7 +408,6 @@ setup.npcs["A77"] = {
 	dna:'1971687970 1162271469 1942122372 1675574199 1926720739 1720477118 2120304425',
 	firstname:'Tryndin',
 	lastname:'Maximovich',
-	usedname:'Tryndin',
 	notes:'Lives in apartment 37 in the Residential area of the City and attends the city University.',
 	gender:0,
 	thdick:'thicker than average',
@@ -443,7 +428,6 @@ setup.npcs["A77"] = {
 setup.npcs["A78"] = {
 	dna:'1129198910 2123899265 2070826103 1263408683 1266342598 1852602642 1659580757',
 	firstname:'Vic',
-	usedname:'Vic',
 	notes:'Personnel Manager of the Burger Bistro.',
 	gender:1,
 	bust:19,
@@ -476,7 +460,6 @@ setup.npcs["A82"] = {
 	dna:'1518919857 1263522764 1853362558 1903972455 1560042249 1858587108 1920541253',
 	firstname:'Djibril',
 	lastname:'Maina',
-	usedname:'Djibril',
 	notes:'African University Student, attend the Saint Petersburg University. He is the nephew of Oluuosegun and lives in the student dorms.',
 	gender:0,
 	thdick:'monstrous',
@@ -493,7 +476,6 @@ setup.npcs["A83"] = {
 	dna:'1473539500 1300272748 1849153490 1148245338 1587757384 1435094984 1944660918',
 	firstname:'Goshi',
 	lastname:'Sidorov',
-	usedname:'Goshi',
 	notes:'Goshi has live in Saint Petersburg his whole life, he comes from a well off family, not rich but not wanting for things. He is use to always getting his way. His mother is a stay at home mom and his dad is a business man. He is going to the University to follow in his fathers footsteps.',
 	gender:0,
 	thdick:'thick',
@@ -516,7 +498,6 @@ setup.npcs["A84"] = {
 	dna:'2106927598 1295208699 1791495642 1377661124 2006483992 1113518034 1579903219',
 	firstname:'Kendra',
 	lastname:' Abiodun',
-	usedname:'Kendra',
 	notes:'Kendra is from South Africa and attends the University in Saint Petersburg now. She is well known to have a dominate personality, she often tries to dominate those around her. Some believe she is a racist as she seems to especially love dominate white students that attend the university.',
 	gender:1,
 	intel:63,
@@ -542,7 +523,6 @@ setup.npcs["A85"] = {
 setup.npcs["A86"] = {
 	dna:'1292901057 1445078354 1576836749 1579962358 1713996320 2046365622 1579166032',
 	firstname:'Yaroslav',
-	usedname:'Yaroslav',
 	notes:'A businessman whose house you clean.',
 	gender:0,
 	thdick:'thick',
@@ -571,7 +551,6 @@ setup.npcs["A89"] = {
 	dna:'1686681956 1037303803 1438812408 1000615186 1838310950 1945611800 1031199730',
 	firstname:'Eugene',
 	nickname:'Eugene',
-	usedname:'Eugene',
 	notes:'A dickgirl whom is the barmaid at the barbeque by the lake. She has one testicle in her sack, the other having ascended to become an ovary. Sister of Angela.',
 	gender:1,
 	thdick:'thick',
@@ -596,7 +575,6 @@ setup.npcs["A90"] = {
 setup.npcs["A91"] = {
 	dna:'1091682576 2037714665 1534661263 1602294938 1206288726 1612990215 1456060861',
 	firstname:'Abdul',
-	usedname:'Abdul',
 	notes:'Owns a market stall next to Arthur.',
 	gender:0,
 	thdick:'massive',
@@ -605,7 +583,6 @@ setup.npcs["A91"] = {
 setup.npcs["A92"] = {
 	dna:'1215179226 1132967920 1233565533 2074043785 1042603573 1361029355 2138150185',
 	firstname:'Hassan',
-	usedname:'Hassan',
 	notes:'Owns a market stall next to Arthur.',
 	gender:0,
 	thdick:'thick',
@@ -652,7 +629,6 @@ setup.npcs["A97"] = {
 setup.npcs["A98"] = {
 	dna:'1236168432 1165329555 1245952733 1661287661 1117236841 1677164094 1151987548',
 	firstname:'Aslan',
-	usedname:'Aslan',
 	notes:'A Sexually aggressive caucasian from the Residential Area marketplace.',
 	gender:0,
 	thdick:'thicker than average',
@@ -661,7 +637,6 @@ setup.npcs["A98"] = {
 setup.npcs["A99"] = {
 	dna:'1510466089 1004233017 1279999730 1803351444 1641046743 1766586587 1960434703',
 	firstname:'Mukhtar',
-	usedname:'Mukhtar',
 	notes:'A Sexually agressive caucasian from the Residential Area marketplace.',
 	gender:0,
 	thdick:'massive',

+ 1 - 15
sugarcube/src/npcs/_npcstatic/compiled/npcstatic3compiled.js

@@ -1,5 +1,4 @@
-if(!setup.npcs)
-	setup.npcs = {};
+setup.npcs ??= {};
 setup.npcs["A100"] = {
 }
 setup.npcs["A101"] = {
@@ -70,7 +69,6 @@ setup.npcs["A107"] = {
 setup.npcs["A108"] = {
 	dna:'1643991188 1952232493 1071028063 2074038111 1147795375 2118341095 1847972590',
 	firstname:'Vladimir',
-	usedname:'Vladimir',
 	gender:0,
 	thdick:'thicker than average',
 	dick:14,
@@ -88,7 +86,6 @@ setup.npcs["A109"] = {
 setup.npcs["A110"] = {
 	dna:'1382385133 2015745814 1777689033 1679307387 1776217771 1917449428 2071160465',
 	firstname:'Vitaly',
-	usedname:'Vitaly',
 	gender:0,
 	thdick:'slim',
 	dick:12,
@@ -105,7 +102,6 @@ setup.npcs["A112"] = {
 	dna:'1357552191 1808035750 1644370082 1970842460 1776176573 1211917555 1776040163',
 	firstname:'Sergey',
 	lastname:'Shulgin',
-	usedname:'Sergey',
 	notes:'gray hair and a small beer belly, but still hearty looking. Father of Vasily.',
 	dob:19670504,
 	gender:0,
@@ -574,7 +570,6 @@ setup.npcs["A137"] = {
 		tan:1,
 	},
 	defaults:['defaults','group_teacher'],
-	touchesStudentsInappropriately: true
 }
 setup.npcs["A138"] = {
 	dna:'1041262937 1103319358 1212009691 1617547174 1655867289 1930930487 1952353548',
@@ -647,7 +642,6 @@ setup.npcs["A141"] = {
 	firstname:'Veronika',
 	nickname:'Ronnie',
 	lastname:'Sokolov',
-	usedname:'Veronika',
 	notes:'Veronika Sokolov is called the ice queen by her fellow students behind her back, for a couple of reasons. One of the reasons is that she is very talented ice skater, there is even talk about she might compete in the next winter Olympics. The other reason is because she is cold and indifferent. She never lets anyone get close to her. She comes from a rich family.',
 	gender:1,
 	dob:19990725,
@@ -667,7 +661,6 @@ setup.npcs["A142"] = {
 	firstname:'Zinaida',
 	nickname:'Zina',
 	lastname:'Alkaev',
-	usedname:'Zinaida',
 	notes:'Zinaida Alkaev is a mousey girl who is very plain looking. She never wears makeup, dresses in baggy clothes and barely bothers to brush her hair. She mostly keeps to herself, playing various games on her phone, although she is fairly popular with the nerd boys, for reasons unknown to everyone else.',
 	gender:1,
 	dob:19990311,
@@ -690,7 +683,6 @@ setup.npcs["A143"] = {
 	firstname:'Alyona',
 	nickname:'Alyona',
 	lastname:'Zima',
-	usedname:'Alyona',
 	notes:'Alyona Zima is a hardcore troublemaker, she lives to cause trouble or jumps into any trouble she can find. She comes from a fucked up family, her parents are alcoholics and drug addicts, most view her as the apple that didn`t fall far from the tree. Knowing this the teachers don`t even bother to try and help her out anymore.',
 	gender:1,
 	dob:19990809,
@@ -711,7 +703,6 @@ setup.npcs["A144"] = {
 	firstname:'Anushka',
 	nickname:'Nush',
 	lastname:'Konstantinov',
-	usedname:'Anushka',
 	notes:'Anushka Konstantinov is the lead guitarist in Radomir`s band. She has very strong political views, which she shares in her anarchist lyrics that she writes for the band. She has strong if untrained vocal ability as well, doing some of the singing. She is pretty dominant and can be cruel but not sadistic like some of the other Gopniks. She is very adventurous and not shy about her bisexuality, she is also a bit of an exhibitionist.',
 	gender:1,
 	dob:19991228,
@@ -738,7 +729,6 @@ setup.npcs["A145"] = {
 	firstname:'Ekaterina',
 	nickname:'Katyusha',
 	lastname:'Maksimov',
-	usedname:'Ekaterina',
 	notes:'Ekaterina Maksimov also known as Katyusha. She`s a chameleon, fitting in with all the groups. She is pretty athletic and does surprisingly well in school considering how little school work she does when she bothers to show up in class. She is not a traditional beauty, her face is too masculine for that, but she is attractive and could be even more so if she bothered to try, but she doesn`t. She only seems to care about two things, booze and fighting. She gets the booze in any way she can, stealing or smooching from the boys in exchange for favors. Or she buys it from her considerable "war chest" (her father is an army Colonel that is rarely around). When she "plays" with the boys, it only goes as far as she wants it. She is the only girl other than Lena who can do that, but while the boys are afraid of Lena`s brother, Katyusha prefers fighting the boys herself. She practices Sambo in the park every day before school, regardless of weather. She often taunts or makes fun of the boxers, claiming boxing is for pussies, real fighters fight without rules. She doesn`t see herself as a gopnik, it`s others that consider her one. This doesn`t bother her because she only cares about the opinion of the people whom earn her respect. Which is really hard to do.',
 	gender:1,
 	dob:19990110,
@@ -764,7 +754,6 @@ setup.npcs["A146"] = {
 	firstname:'Marcus',
 	nickname:'Marcus',
 	lastname:'Larson',
-	usedname:'Marcus',
 	notes:'Marcus Larson is an African American exchange student. He does well in school and is fairly athletic. He seems to really enjoy Russia and has an eye for Russian girls, always going on about how they are so much more beautiful, than the girls back home. He is a decent looking guy, combined with his exotic looks, accent, athletic ability, and different views has made him pretty popular with the cool kids and jocks. He is friendly and outgoing, he stays with Andrey`s family, whom he has become close friends with.',
 	gender:0,
 	dob:19990426,
@@ -789,7 +778,6 @@ setup.npcs["A147"] = {
 	firstname:'Andrey',
 	nickname:'Andrey',
 	lastname:'Aleksandrov',
-	usedname:'Andrey',
 	notes:'Andrey Aleksandrov family took part in the exchange student program. Rumor is they were less than happy when the student they sent was an African American, but Andrey doesn`t seem to mind. He and Marcus quickly became friends, he tends to use Marcus popularity to boost his own and in the process spend a lot less time with his long time girl friend Stasya. The school nurse is his aunt.',
 	gender:0,
 	dob:19990903,
@@ -813,7 +801,6 @@ setup.npcs["A148"] = {
 	firstname:'Mefodiy',
 	nickname:'Mefodiy',
 	lastname:'Utkin',
-	usedname:'Mefodiy',
 	notes:'Mefodiy Utkin is reasonably intelligent, with middle-of-the-road grades. Fairly average looking, but possess a good sense of humor and timing. He isn`t to popular, just popular enough to hang among the cool kids, who like his humor.',
 	gender:0,
 	dob:19990620,
@@ -844,7 +831,6 @@ setup.npcs["A149"] = {
 	firstname:'Lazar',
 	nickname:'Lazar',
 	lastname:'Pajari',
-	usedname:'Lazar',
 	notes:'Lazar Pajari is the school football star. He is a central midfielder and team captain. He excels in other sports as well, but his passion is football, least when he is not chasing girls or more often being chased by girls, whom he happily lets catch him. His status make him desirable among the girls and he is often seen with different girls.',
 	gender:0,
 	dob:19990709,

+ 1 - 28
sugarcube/src/npcs/_npcstatic/compiled/npcstatic4compiled.js

@@ -1,11 +1,9 @@
-if(!setup.npcs)
-	setup.npcs = {};
+setup.npcs ??= {};
 setup.npcs["A150"] = {
 	dna:'1912077115 1054317172 1216715520 1272636005 1666248718 2044828734 1577551516',
 	firstname:'Erast',
 	nickname:'Erast',
 	lastname:'Vagin',
-	usedname:'Erast',
 	notes:'Erast Vagin is a huge boy, he is not a looker or even clever, but is always polite and a little shy. When he is playing sports he changes into a demon, always fighting and is often sent off. He is the most popular kid during the ice hockey season and is often found sparring with Ivan.',
 	gender:0,
 	dob:19990527,
@@ -29,7 +27,6 @@ setup.npcs["A151"] = {
 	firstname:'Evgeny',
 	nickname:'Evgeny',
 	lastname:'Kuznetsov',
-	usedname:'Evgeny',
 	notes:'Evgeny Kuznetsov is the school chess champion, and you can always find him at the chess club. He is shy and very intelligent, not showing any interest in girls or anyone else really. No one would be surprised if he has mild autism.',
 	gender:0,
 	dob:19991215,
@@ -50,7 +47,6 @@ setup.npcs["A152"] = {
 	firstname:'Feofan',
 	nickname:'Feofan',
 	lastname:'Krupin',
-	usedname:'Feofan',
 	notes:'Feofan Krupin is heavily into science fiction, fantasy, and the like. He is constantly planning on going to some convention and is always wearing a costume. He has a serious love for super heroes and is talking about them, their movies and comic books all the time, not to mention his collection of cosplay outfits of all the most famous super heroes. He does well in school, but not as well as most would expect. He is a nerd`s nerd but not bad looking in a somewhat effeminate manner.',
 	gender:0,
 	dob:19990822,
@@ -76,7 +72,6 @@ setup.npcs["A153"] = {
 	firstname:'Gerasim',
 	nickname:'Gerasim',
 	lastname:'Vasilyev',
-	usedname:'Gerasim',
 	notes:"Gerasim Vasilyev is confined to a wheelchair, from an early childhood accident. He is kind and nice to everyone, even if most don't return the favor. He is well accepted by his fellow nerds and surprisingly a few of the jocks. Most of the rest see him as an easy target to bully and/or force him to do their homework.",
 	gender:0,
 	dob:19990814,
@@ -99,7 +94,6 @@ setup.npcs["A154"] = {
 	firstname:'Radomir',
 	nickname:'Radomir',
 	lastname:'Popov',
-	usedname:'Radomir',
 	notes:'Radomir Popov is the lead singer of a local underground rock/punk band. He is more or less an asshole, thinking he should already be a star, thus being arrogant to almost everybody. Some of the girls obviously adore him, because they think he is cool or are just groupies, latching onto his limited fame. He is more than happy to use his mini fame to let him use as many girls as he can, as often as he can.',
 	gender:0,
 	dob:19990302,
@@ -129,7 +123,6 @@ setup.npcs["A155"] = {
 	firstname:'Lavrenti',
 	nickname:'Lavrenti',
 	lastname:'Romanov',
-	usedname:'Lavrenti',
 	notes:'Lavrenti Romanov comes from a wealthy family, an only child with parents that are rarely around. He used to be one of the cool kids, but his attitude abruptly changed last year. He became mean and violent, which lead to him and Dimika having a major falling out at the same time, since the fight he started hanging with the Gopniks. He is more of a follower, and the Gopniks like using his money, while tolerating him.',
 	gender:0,
 	dob:19990420,
@@ -154,7 +147,6 @@ setup.npcs["A156"] = {
 	firstname:'Arkadi',
 	nickname:'Arkadi',
 	lastname:'Fyodorov',
-	usedname:'Arkadi',
 	notes:'Arkadi Fyodorov is the drummer in Radomir`s band. His family recently moved from the city, to Pavlovsk, he was also held back a year. He is very violent, especially with anyone outside the Gopniks. He is also not shy about reminding everyone how much harder the city is and how lame Pavlovsk is.',
 	dob:19980415,
 	gender:0,
@@ -180,7 +172,6 @@ setup.npcs["A157"] = {
 	firstname:'Roman',
 	nickname:'Roman',
 	lastname:'Yakovlev',
-	usedname:'Roman',
 	notes:'Roman Yakovlev is a psychopath, he`s one of the smaller kids, but is always causing trouble. He`ll start fights knowing that the other Gopniks will have his back. He always has a snide remark and is not afraid to speak back to the teachers and other adults. Not doing great at school, not that he cares. The other gopnik`s find his attitude amusing and seem to like that he`s always getting them into funny situations.',
 	gender:0,
 	dob:19990625,
@@ -206,7 +197,6 @@ setup.npcs["A158"] = {
 	firstname:'Valentin',
 	nickname:'Valentin',
 	lastname:'Bogdanov',
-	usedname:'Valentin',
 	notes:'Valentin Bogdanov is the bassist in Radomir`s band, he the nicest guy in the band. This still doesn`t stop him from using his mini fame with the girls, to use them in return, it is just he is rarely a dick about it. He is popular with the Gopniks because of the band and because he easily looks old enough to buy beer. His goal is to make enough cash from the band to buy an old American motor bike and ride across the country.',
 	gender:0,
 	dob:19990212,
@@ -237,7 +227,6 @@ setup.npcs["A159"] = {
 	firstname:'Petia',
 	nickname:'Petia',
 	lastname:'Alkaev',
-	usedname:'Petia',
 	notes:'Petia Alkaev is the class mooch. He persistently asks others for food, money, cigarettes, etc. Can`t take a hint, and doesn`t know the meaning of "personal space", which is made worse by the fact, he seems to be unaware what soap is. He is an unattractive guy who makes the pretty girls uncomfortable by hitting on them repeatedly.',
 	gender:0,
 	dob:19990829,
@@ -300,7 +289,6 @@ setup.npcs["A163"] = {
 	dna:'1748187802 2032789191 1711627574 1292957633 1111654803 1788616009 1772047830',
 	firstname:'Arsen',
 	nickname:'Arsen',
-	usedname:'Arsen',
 	gender:0,
 	thdick:'well proportioned',
 	dick:13,
@@ -309,7 +297,6 @@ setup.npcs["A164"] = {
 	dna:'1034557513 1185767528 1251220411 1486489711 1093403292 1015320258 1011612550',
 	firstname:'Maksim',
 	nickname:'Maksim',
-	usedname:'Maksim',
 	gender:0,
 	thdick:'thick',
 	dick:18,
@@ -319,7 +306,6 @@ setup.npcs["A165"] = {
 	firstname:'Vanya',
 	nickname:'Vanya',
 	lastname:'Yanka',
-	usedname:'Vanya',
 	notes:'Vanya Yanka is a little goofy jock, playing jokes on his teammates and annoying the coaches. He never goes too far with his jokes and is a good moral booster so most everyone likes him and despite his easy going attitude is a better athlete than most would suspect. When he`s not training or competing, he spends most of his free time hanging out with Vicky and Katja. Vanya is also popular with the girls at school but only seems to have eyes for Vicky.',
 	gender:0,
 	thdick:'thicker than average',
@@ -348,7 +334,6 @@ setup.npcs["A166"] = {
 	dna:'8678987195 3857034937 9131318721 1506516098 6640960268 3377018962 2108967494',
 	firstname:'Nikita',
 	lastname:'Kirill',
-	usedname:'Nikita',
 	notes:'Father Kirill is a kindly man that entered the church as a young man and became a priest. Now in his fifties, he serves the people of Pavlovsk. Not one to feed into the gossip or judge those around him, he keeps an open heart and mind, believing everyone deserves forgiveness and a chance to repent for their sins. He is a good listener, well known for giving sound advice to help people resolve their problems. Even some that don`t regularly attend church seek him out for advice.',
 	gender:0,
 	thdick:'well proportioned',
@@ -365,7 +350,6 @@ setup.npcs["A166"] = {
 setup.npcs["A167"] = {
 	dna:'1784699091 1203401906 1216561919 1916388994 1239904750 1929086392 1148871462',
 	firstname:'Reinhold',
-	usedname:'Reinhold',
 	notes:'"Maintenance operative"',
 	gender:0,
 	thdick:'well proportioned',
@@ -419,7 +403,6 @@ setup.npcs["A172"] = {
 	dna:'2035042362 1045516320 1994842543 1052417530 1977000071 1331823092 1986866420',
 	firstname:'Andrei',
 	nickname:'Andrei',
-	usedname:'Andrei',
 	lastname:'Saveliev',
 	notes:'A hunter in Gadukino.',
 	dob:19800317,
@@ -432,7 +415,6 @@ setup.npcs["A173"] = {
 	dna:'1140758667 1773455079 2123382286 1650309847 1391480172 1829299044 1187608522',
 	firstname:'Igor',
 	nickname:'Igor',
-	usedname:'Igor',
 	lastname:'Danilovich',
 	notes:'A hunter in Gadukino.',
 	dob:19920609,
@@ -446,7 +428,6 @@ setup.npcs["A174"] = {
 	dna:'1008006962 1236637588 1489896373 1580273620 1293163913 1709107929 1173381311',
 	firstname:'Sergei',
 	nickname:'Sergei',
-	usedname:'Sergei',
 	lastname:'Kirillov',
 	notes:'A hunter in Gadukino.',
 	dob:19850120,
@@ -490,7 +471,6 @@ setup.npcs["A178"] = {
 	firstname:'Natalya',
 	nickname:'Natalya',
 	lastname:'Petrovna',
-	usedname:'Natalya',
 	notes:'A woman who looks at you with a twinkle in her eye.',
 	gender:1,
 	bust:19,
@@ -512,7 +492,6 @@ setup.npcs["A180"] = {
 	firstname:'Sasori',
 	nickname:'Sasori',
 	lastname:'Sasori',
-	usedname:'Sasori',
 	notes:'Scorpion.',
 	gender:0,
 	thdick:'well proportioned',
@@ -531,7 +510,6 @@ setup.npcs["A182"] = {
 	dna:'1020750214 1760012487 1196272894 1622978428 1628391634 2022138491 2071033872',
 	firstname:'Conan',
 	nickname:'Conan',
-	usedname:'Conan',
 	notes:'Conan.',
 	gender:0,
 	thdick:'well proportioned',
@@ -542,7 +520,6 @@ setup.npcs["A183"] = {
 	dna:'1372778085 1912011495 1743459319 1874701039 1361625511 1281898844 1820485903',
 	firstname:'Hidan',
 	nickname:'Hidan',
-	usedname:'Hidan',
 	notes:'Hidan.',
 	gender:0,
 	thdick:'skinny',
@@ -573,7 +550,6 @@ setup.npcs["A185"] = {
 	dna:'1688667877 1444143245 1971085394 1614262160 1304657108 2094208929 1374312201',
 	firstname:'Michael',
 	nickname:'Misha',
-	usedname:'Michael',
 	notes:'An invalid.',
 	gender:0,
 	thdick:'well proportioned',
@@ -608,7 +584,6 @@ setup.npcs["A186"] = {
 		strong:0,
 	},
 	defaults:['defaults'],
-	image: 'locations/pavlovsk/clinic/therapist/pavlov.jpg'
 }
 setup.npcs["A187"] = {
 	dna:'1828318755 1912110768 1763625475 1700953844 1635556809 1788400335 1891647424',
@@ -660,7 +635,6 @@ setup.npcs["A190"] = {
 	firstname:'Yurik',
 	nickname:'Yurik',
 	lastname:'Volkov',
-	usedname:'Yurik',
 	notes:'Yurik Volkov is a burly biker, who spends most of his time customizing, upgrading and tuning his motorcycle when he is not on the road. He is the older brother of Nikolai Volkov. Yurik is 5 years older then Niko, and tries his best to advise, and provide a future for his brother even though Niko continuously pushes him away, still blaming him for their sister`s death.',
 	dob:19951116,
 	gender:0,
@@ -673,7 +647,6 @@ setup.npcs["A191"] = {
 	firstname:'Isabella',
 	nickname:'Bella',
 	lastname:'Belova',
-	usedname:'Isabella',
 	notes:'Your classmate Natasha`s mother, Isabella Belova.',
 	dob:19820922,
 	gender:1,

+ 2 - 25
sugarcube/src/npcs/_npcstatic/compiled/npcstatic5compiled.js

@@ -1,5 +1,4 @@
-if(!setup.npcs)
-	setup.npcs = {};
+setup.npcs ??= {};
 setup.npcs["A200"] = {
 	dna:'7894193659 7682081397 7204840012 1999784485 1457862984 1446965385 1706290392',
 	firstname:'Daniil',
@@ -59,7 +58,6 @@ setup.npcs["A204"] = {
 	firstname:'Savva',
 	nickname:'Savva',
 	lastname:'Timurovich',
-	usedname:'Savva',
 	notes:'Savva is a high-spirited, optimistic boy who works at an alternative clothing store called Patchwork Dolls. Due to him being openly gay, he is often harassed, most notably by gopniks. Despite the physical and verbal abuse thrown his way, he remains proud of who he is, and wants to see everyone else be proud of who they are too, especially if they`re gay, lesbian, transgender, etc. His personal motto is "What hurts you today, makes you stronger tomorrow."',
 	dob:19990124,
 	gender:0,
@@ -85,7 +83,6 @@ setup.npcs["A205"] = {
 	firstname:'Viola',
 	nickname:'Viola',
 	lastname:'Valerievna',
-	usedname:'Viola',
 	notes:'Viola looks like your typical emo or alternative girl. Her hair is often colored and she has a number of tattoos and piercings. She is in her late teens or early twenties and has been working at the Patchwork Dolls store for the past few years. She spends almost all her time on Vasilyevsky Island, claiming it is the most enlightened area in Russia.',
 	dob:19981114,
 	gender:1,
@@ -134,7 +131,6 @@ setup.npcs["A208"] = {
 	firstname:'Emily',
 	nickname:'Emily',
 	lastname:'Rastorguyev',
-	usedname:'Emily',
 	notes:'A girl who grew up sexy and she knows it. She is often very bitchy to other models because she is focused on furthering her career and surpassing Anastasia to become the most famous model and she thinks everyone else is getting in her way.',
 	dob:19960607,
 	gender:1,
@@ -158,7 +154,6 @@ setup.npcs["A210"] = {
 	firstname:'Miranda',
 	nickname:'Miranda',
 	lastname:'Kedrov',
-	usedname:'Miranda',
 	notes:'A veteran model who is incredibly professional but wishes she could find a nice man to marry so she can be a mother.',
 	dob:19890919,
 	gender:1,
@@ -170,7 +165,6 @@ setup.npcs["A211"] = {
 	firstname:'Lily',
 	nickname:'Lily',
 	lastname:'Ilyushin',
-	usedname:'Lily',
 	notes:'Very casual person who is very natural. She models part time, focusing more on being a pornstar and camgirl.',
 	dob:19950816,
 	gender:1,
@@ -182,7 +176,6 @@ setup.npcs["A212"] = {
 	firstname:'Mila',
 	nickname:'Mila',
 	lastname:'Aliyev',
-	usedname:'Mila',
 	notes:'A language and culture university student using modelling to pay her way through school. Friendly, but sometimes easily stressed out trying to balance modelling with schoolwork with keeping it a secret from the people in the university. Even more secret, she might actually get off on the idea that people who know her might see these lewd pictures of her.',
 	dob:19980209,
 	gender:1,
@@ -206,7 +199,6 @@ setup.npcs["A214"] = {
 	firstname:'Olga',
 	nickname:'Olga',
 	lastname:'Kuzubov',
-	usedname:'Olga',
 	notes:'An actress with a wild spirit. Free and unpredictable, she`s very artistic and is the reason she got into modelling. For her it`s a bit more of a hobby since she gets paid enough for doing movies and stuff.',
 	dob:19861117,
 	gender:1,
@@ -218,7 +210,6 @@ setup.npcs["A215"] = {
 	firstname:'Alisa',
 	nickname:'Alisa',
 	lastname:'Alexandrov',
-	usedname:'Alisa',
 	notes:'Just another random model who isn`t very famous. She is very nonchalant, not particularly social, mostly there for the money, not really looking for a career or anything, doesn`t interact with others very much as a result.',
 	dob:19980106,
 	gender:1,
@@ -230,7 +221,6 @@ setup.npcs["A216"] = {
 	firstname:'Martin',
 	nickname:'Martin',
 	lastname:'Martínez',
-	usedname:'Martin',
 	notes:'',
 	dob:19690703,
 	gender:0,
@@ -257,7 +247,6 @@ setup.npcs["A218"] = {
 	firstname:'Tanya',
 	nickname:'Tanya',
 	lastname:'Polyakov',
-	usedname:'Tanya',
 	notes:'Girl you meet at the city gym',
 	dob:19980622,
 	gender:1,
@@ -280,7 +269,6 @@ setup.npcs["A220"] = {
 	firstname:'Vika',
 	nickname:'Vika',
 	lastname:'Kirilova',
-	usedname:'Vika',
 	notes:'Vika goes to the local university. She comes from a town in a truly remote part of Russia. Her family is poor. She pays for her studies by working in a brothel in the city center.',
 	dob:'Incorrect Initialization: $pcs_dob - 10000',
 	gender:1,
@@ -300,7 +288,6 @@ setup.npcs["A221"] = {
 	firstname:'Grigory',
 	nickname:'Grigory',
 	lastname:'Chekov',
-	usedname:'Grigory',
 	notes:'Grigory is a farmhand who has worked on your grandparents land for many years.',
 	dob:19860603,
 	gender:0,
@@ -442,7 +429,6 @@ setup.npcs["A232"] = {
 	firstname:'Gala',
 	nickname:'Gala',
 	lastname:'Polyakov',
-	usedname:'Gala',
 	notes:'Wife of Nicholas and mother of Tanya',
 	dob:19810225,
 	gender:1,
@@ -452,7 +438,6 @@ setup.npcs["A233"] = {
 	dna:'9159003581 0954981945 0686651022 2271837550 3220855447 8045833245 0831070730',
 	firstname:'Taras',
 	lastname:'Polyakov',
-	usedname:'Taras',
 	notes:'Bodyguard of Gala Polyakov',
 	gender:0,
 	thdick:'thick',
@@ -511,7 +496,6 @@ setup.npcs["A238"] = {
 	firstname:'Glinina',
 	nickname:'Glinina',
 	lastname:'Chebotarev',
-	usedname:'Glinina',
 	notes:'Artem`s mother, who works at the community center library as the librarian. She meet her husband when they both attended Pavlovsk Secondary School and started dating. They also both attended the University in Saint Petersburg and after graduating, got married and moved back to Pavlovsk, when her husband Masharin was offered a job at the Palace as an office administrator. Soon after, she got pregnant with Artem and she now hopes her son will have the same kind of happy life her and her husband had. She hopes he meets a nice smart girl in school and they can go to college together before settling down to get married and have kids.',
 	dob:19980106,
 	gender:1,
@@ -536,7 +520,6 @@ setup.npcs["A239"] = {
 	firstname:'Masharin',
 	nickname:'Masharin',
 	lastname:'Chebotarev',
-	usedname:'Masharin',
 	notes:'Artem`s father works at the Palace tourism office as their office administrator, head of their IT department. He met his wife when they were both still in Secondary school in Pavlovsk and they started dating. They kept dating through college when they both attended the University in Saint Petersburg. After college, Masharin got the offer to work at the Palace tourism office in the IT department, so they moved back to Pavlovsk. Soon after Artem was born and they have had a happy and wonderful life. Now he and his wife are hoping Artem meets a nice girl and can have the same kind of experience they did.',
 	dob:19690703,
 	gender:0,
@@ -557,7 +540,6 @@ setup.npcs["A240"] = {
 	firstname:'Natalia',
 	nickname:'Nat',
 	lastname:'Pavlova',
-	usedname:'Natalia',
 	dob:20000330,
 	notes:'Natalia is a very smart, but weak willed girl. She constantly struggles to maintain friendships, but her friendly attitude and eagerness to help others prevents her from being an outcast, despite being a little chubby and not overly attractive. She is rarely seen hanging out with anyone. She fiercely guards a notebook she likes to keep private, never letting anyone read or even touch it.',
 	gender:1,
@@ -597,7 +579,6 @@ setup.npcs["A242"] = {
 	firstname:'Lebogang',
 	nickname:'Lebo',
 	lastname:'Kayode',
-	usedname:'Lebogang',
 	notes:'Djibril`s closet friend in Russia. They both live on the same floor in the same dorm and he also attends the University. He is also from Africa.',
 	dob:0,
 	gender:0,
@@ -617,7 +598,6 @@ setup.npcs["A243"] = {
 	firstname:'Ermias',
 	nickname:'Ermias',
 	lastname:'Okeke',
-	usedname:'Ermias',
 	notes:'Ermias is Lebogang`s dorm roommate and friend. He is also from Africa.',
 	dob:0,
 	gender:0,
@@ -642,7 +622,6 @@ setup.npcs["A244"] = {
 	firstname:'Farai',
 	nickname:'Farai',
 	lastname:'Ihejirika',
-	usedname:'Farai',
 	notes:'Djibril`s roommate at the university dorms. He is also from Africa.',
 	dob:0,
 	gender:0,
@@ -684,7 +663,6 @@ setup.npcs["A246"] = {
 	firstname:'Arendse',
 	nickname:'Arendse',
 	lastname:'Idowu',
-	usedname:'Arendse',
 	notes:'Arendse is Haruna`s roommate and friend. They live in the same dorm room and both attend the University. He is also from Africa.',
 	dob:0,
 	gender:0,
@@ -732,8 +710,7 @@ setup.npcs["A248"] = {
 	firstname:'Silvestr',
 	nickname:'Sly',
 	lastname:'Zvereva',
-	usedname:'Silvestr',
-	notes:'Silvestr is one of <<=$npcs.get("A18","usedname")>>`s older brothers. The black sheep of the family, he was often a disappointment to his hard-working parents. He taught his little sister to fight at a young age, but they aren`t that close these days.',
+	notes:'Silvestr is one of <<=$npcs.get("A18","usedname_possessive")>> older brothers. The black sheep of the family, he was often a disappointment to his hard-working parents. He taught his little sister to fight at a young age, but they aren`t that close these days.',
 	dob:19971231,
 	gender:0,
 	thdick:'thick',

+ 1 - 3
sugarcube/src/npcs/_npcstatic/compiled/npcstatic6compiled.js

@@ -1,5 +1,4 @@
-if(!setup.npcs)
-	setup.npcs = {};
+setup.npcs ??= {};
 setup.npcs["A250"] = {
 	dna:'0',
 	firstname:'Gora',
@@ -318,7 +317,6 @@ setup.npcs["A263"] = {
 	firstname:'Ksenya',
 	nickname:'Ksenya',
 	lastname:'Pavlov',
-	usedname:'Ksenya',
 	dob:19950101,
 	notes:'Ksenya dosent use her last name anyone as she dosent like or trust her father. She is of Chinese decent as her mother was a mail-order bride for her father and after she was born, her mother left him. She is an only child living in Russia with a shop of her own selling the exhibitionist clothing. She has been called a tease with her sheer clothing and flashing habits.',
 	gender:1,

+ 12 - 16
sugarcube/src/npcs/_npcstatic/npcstatic1.tw

@@ -370,7 +370,7 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'nickname','Lariska')>>
 <<run $npcs.set('A' + $npctemp,'lastname','Gruzdeva')>>
 <<run $npcs.set('A' + $npctemp,'usedname','Lariska')>>
-<<run $npcs.set('A' + $npctemp,'notes','Lariska is a very athletic girl, with an exceptional talent for volleyball. She has a very weak personality though, and is very dependent on other people`s opinions of her. Her best friend is Christina and one can often see Lariska chasing after Christina.')>>
+<<run $npcs.set('A' + $npctemp,'notes','Lariska is a very athletic girl, with an exceptional talent for volleyball. She has a very weak personality though, and is very dependent on other people`s opinions of her. Her best friend is <<=$npcs.get("A18","usedname")>> and one can often see Lariska chasing after <<=$npcs.get("A18","usedname")>>.')>>
 <<run $npcs.set('A' + $npctemp,'dob',19990603)>>
 <<run $npcs.set('A' + $npctemp,'gender',1)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
@@ -520,7 +520,7 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'nickname','Christina')>>
 <<run $npcs.set('A' + $npctemp,'lastname','Zvereva')>>
 <<run $npcs.set('A' + $npctemp,'usedname','Christina')>>
-<<run $npcs.set('A' + $npctemp,'notes','Christina is one of your school`s best athletes, and is the strongest girl you know. She has leadership abilities that, together with her tenacity and intelligence, make her having a dominant presence wherever she goes. She is also more than a bit of a bully to most of the other girls in school.')>>
+<<run $npcs.set('A' + $npctemp,'notes','<<=$npcs.get("A18","usedname")>> is one of your school`s best athletes, and is the strongest girl you know. She has leadership abilities that, together with her tenacity and intelligence, make her having a dominant presence wherever she goes. She is also more than a bit of a bully to most of the other girls in school.')>>
 <<run $npcs.set('A' + $npctemp,'dob',19991226)>>
 <<run $npcs.set('A' + $npctemp,'gender',1)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
@@ -553,7 +553,7 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'lastname','Starov')>>
 <<run $npcs.set('A' + $npctemp,'usedname','Lina')>>
 <<run $npcs.set('A' + $npctemp,'dob',19990224)>>
-<<run $npcs.set('A' + $npctemp,'notes','Lina Starov is a mediocre athlete. She`s sort of Christina`s friend... but not really, the right term you would use is Christina`s lapdog. She usually does anything Christina wants her to do as if she doesn`t have a mind of her own.')>>
+<<run $npcs.set('A' + $npctemp,'notes','Lina Starov is a mediocre athlete. She`s sort of <<=$npcs.get("A18","usedname_possessive")>> friend... but not really, the right term you would use is <<=$npcs.get("A18","usedname_possessive")>> lapdog. She usually does anything <<=$npcs.get("A18","usedname")>> wants her to do as if she doesn`t have a mind of her own.')>>
 <<run $npcs.set('A' + $npctemp,'gender',1)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
 <<gs 'npcstaticdefaults' 'group' 'jock'>>
@@ -728,20 +728,11 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'nickname','Sonia')>>
 <<run $npcs.set('A' + $npctemp,'lastname','Ivanko')>>
 <<run $npcs.set('A' + $npctemp,'usedname','Sonia')>>
-<<if $npcs.get('A25','slutStatus',0) > 0>>
-	<<run $npcs.set('A' + $npctemp,'notes','Ever since Sonia inadvertently got way too drunk and gave five guys including Vitek and his buddies a simultaneous blowjob near the disco, her reputation has been in shambles. The girls in her class all give her the silent treatment, pretending she does not exist. Meanwhile all the guys treat her like a cheap whore and regularly ask (or sometimes even demand) sex from her, knowing she doesn`t have the strength to say no.')>>
-<<else>>
-	<<setinit $npc_notes["A" + $npctemp] = "Sonia Ivanko is an ordinary girl and doesn't stand out much. A pretty, smart , and sociable girl Sonia loves to party and is rarely in a bad mood. She lives with her mother in a small apartment after her father left some time ago. Her mother is a nervous, hysterical , and scandalous woman who, when not at work in the Garment Factory, is often out drinking and flirting with men.">>
-<</if>>
 <<run $npcs.set('A' + $npctemp,'dob',19990623)>>
 <<run $npcs.set('A' + $npctemp,'gender',1)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
 <<run $npcs.set('A' + $npctemp,'bust',9)>>
-<<if $npcs.get('A25','slutStatus',0) > 0>>
-	<<gs 'npcstaticdefaults' 'group' 'outcast'>>
-<<else>>
-	<<gs 'npcstaticdefaults' 'group' 'coolkid'>>
-<</if>>
+
 <<run $npcs.set('A' + $npctemp,'intel',54)>>
 <<setinit $pc.hotcat_rating['A' + $npctemp] = 6>>
 <<if $npcs.get('A25','slutStatus',0) > 0>>
@@ -762,13 +753,14 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A'+$npctemp+'_cum_on_face','preference',1)>>
 <<run $npcs.set('A'+$npctemp+'_cum_on_clothes','preference',1)>>
 <<run $npcs.set('A'+$npctemp+'_strong','preference',- 1)>>
+<<run $npcs.set('A' + $npctemp,'passage','npc_Sonia')>>
 <<set $npctemp = 26>>
 <<run $npcs.set('A' + $npctemp,'dna','1047167563 2063456541 1533040976 1303801542 1620497680 1042269021 1659592524')>>
 <<run $npcs.set('A' + $npctemp,'firstname','Anatoly E.')>>
 <<run $npcs.set('A' + $npctemp,'nickname','Anatoly E.')>>
 <<run $npcs.set('A' + $npctemp,'lastname','Tsarev')>>
 <<run $npcs.set('A' + $npctemp,'usedname','Anatoly E.')>>
-<<run $npcs.set('A' + $npctemp,'notes','Anatoly Tsarev is the school`s math teacher. He`s a stern teacher, who always demands the best out of his students. His daughter Lera is in your class. He`s married to Vera, who works at the train station as a ticket saleswoman and as a cleaner in the garment factory. There are rumors that sense Lesco came to live with them, his marriage has been on the rocks.')>>
+<<run $npcs.set('A' + $npctemp,'notes','<<=$npcs.get("A26","fullname")>> is the school`s math teacher. He`s a stern teacher, who always demands the best out of his students. His daughter Lera is in your class. He`s married to Vera, who works at the train station as a ticket saleswoman and as a cleaner in the garment factory. There are rumors that sense Lesco came to live with them, his marriage has been on the rocks.')>>
 <<run $npcs.set('A' + $npctemp,'dob',19730307)>>
 <<run $npcs.set('A' + $npctemp,'gender',0)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
@@ -805,7 +797,7 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'nickname','Dad')>>
 <<run $npcs.set('A' + $npctemp,'lastname',$pc.name_last)>>
 <<run $npcs.set('A' + $npctemp,'usedname','Vladimir')>>
-<<run $npcs.set('A' + $npctemp,'notes','Your stepfather is a greying, slightly flabby man working as a truck driver. Your mother divorced your biological father and married Vladimir when you were only one year old. You`ve never seen your biological father since their divorce, and as such you have no real memory of him.')>>
+<<run $npcs.set('A' + $npctemp,'notes','Your stepfather is a greying, slightly flabby man working as a truck driver. Your mother divorced your biological father and married <<=$npcs.get("A28","firstname")>> when you were only one year old. You`ve never seen your biological father since their divorce, and as such you have no real memory of him.')>>
 <<run $npcs.set('A' + $npctemp,'dob',19700418)>>
 <<run $npcs.set('A' + $npctemp,'gender',0)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
@@ -813,6 +805,7 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'thdick','well proportioned')>>
 <<run $npcs.set('A' + $npctemp,'dick',17)>>
 <<run $npcs.set('A' + $npctemp,'sexskill',1)>>
+<<run $npcs.set('A' + $npctemp,'passage','npc_stepfather')>>
 <<setinit $pc.hotcat_rating['A' + $npctemp] = 7>>
 <<run $npcs.set('A'+$npctemp+'_bimbo','preference',1)>>
 <<run $npcs.set('A'+$npctemp+'_punk','preference',- 1)>>
@@ -829,13 +822,14 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'nickname','Mother')>>
 <<run $npcs.set('A' + $npctemp,'lastname',$pc.name_last)>>
 <<run $npcs.set('A' + $npctemp,'usedname','Mother')>>
-<<run $npcs.set('A' + $npctemp,'notes','Your mother Natasha')>>
+<<run $npcs.set('A' + $npctemp,'notes','Your mother <<=$npcs.get("A29","firstname")>>')>>
 <<run $npcs.set('A' + $npctemp,'dob',19820612)>>
 <<run $npcs.set('A' + $npctemp,'gender',1)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
 <<gs 'npcstaticdefaults' 'group' 'family'>>
 <<run $npcs.set('A' + $npctemp,'sexskill',2)>>
 <<run $npcs.set('A' + $npctemp,'bust',25)>>
+<<run $npcs.set('A' + $npctemp,'passage','npc_mother')>>
 <<setinit $pc.hotcat_rating['A' + $npctemp] = 6>>
 <<run $npcs.set('A'+$npctemp+'_bimbo','preference',- 1)>>
 <<run $npcs.set('A'+$npctemp+'_punk','preference',- 1)>>
@@ -934,6 +928,7 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<gs 'npcstaticdefaults' 'group' 'family'>>
 <<run $npcs.set('A' + $npctemp,'bust',19)>>
 <<setinit $pc.hotcat_rating['A' + $npctemp] = 7>>
+<<run $npcs.set('A' + $npctemp,'passage','npc_sister')>>
 <<run $npcs.set('A'+$npctemp+'_bimbo','preference',0)>>
 <<run $npcs.set('A'+$npctemp+'_punk','preference',0)>>
 <<run $npcs.set('A'+$npctemp+'_goth','preference',0)>>
@@ -961,6 +956,7 @@ $npcs.get('A'+$npctemp,'selfie') = '<a href="exec:numnpc = 1 & gt ''phone_selfie
 <<run $npcs.set('A' + $npctemp,'thdick','slim')>>
 <<run $npcs.set('A' + $npctemp,'dick',14)>>
 <<run $npcs.set('A' + $npctemp,'intel',43)>>
+<<run $npcs.set('A' + $npctemp,'passage','npc_brother')>>
 <<setinit $pc.hotcat_rating['A' + $npctemp] = 7>>
 <<run $npcs.set('A'+$npctemp+'_bimbo','preference',0)>>
 <<run $npcs.set('A'+$npctemp+'_punk','preference',0)>>

+ 0 - 1
sugarcube/src/npcs/_npcstatic/npcstatic2.tw

@@ -234,7 +234,6 @@
 <<run $npcs.set('A' + $npctemp,'usedname','Afanasiy')>>
 <<run $npcs.set('A' + $npctemp,'lastname','Maximov')>>
 <<run $npcs.set('A' + $npctemp,'notes','Mira`s Father')>>
-<<run $npcs.set('A' + $npctemp,'dob',($pcs_dob - ($pcs_dob % 10000)) + 34523)>>
 <<run $npcs.set('A' + $npctemp,'gender',0)>>
 <<gs 'npcstaticdefaults' 'defaults'>>
 <<run $npcs.set('A' + $npctemp,'thdick','thick')>>

+ 1 - 1
sugarcube/src/npcs/_npcstatic/npcstatic5.tw

@@ -755,7 +755,7 @@
 <<run $npcs.set('A' + $npctemp,'nickname','Sly')>>
 <<run $npcs.set('A' + $npctemp,'lastname','Zvereva')>>
 <<run $npcs.set('A' + $npctemp,'usedname','Silvestr')>>
-<<run $npcs.set('A' + $npctemp,'notes','Silvestr is one of Christina`s older brothers. The black sheep of the family, he was often a disappointment to his hard-working parents. He taught his little sister to fight at a young age, but they aren`t that close these days.')>>
+<<run $npcs.set('A' + $npctemp,'notes','Silvestr is one of <<=$npcs.get("A18","usedname_possessive")>> older brothers. The black sheep of the family, he was often a disappointment to his hard-working parents. He taught his little sister to fight at a young age, but they aren`t that close these days.')>>
 <<run $npcs.set('A' + $npctemp,'dob',19971231)>>
 <<run $npcs.set('A' + $npctemp,'gender',0)>>
 <<gs 'npcstaticdefaults' 'defaults'>>

+ 1 - 1
sugarcube/src/npcs/_system/NPCsDict.js

@@ -94,7 +94,7 @@ class NPCsDict{
 
                 }
             case 'fullname': return this.get(npcId,'firstname')+' '+this.get(npcId,'lastname');
-
+            case 'usedname': return this.get(npcId,'firstname');
         }
 
         if(field.endsWith('_possessive')){

+ 1 - 1
sugarcube/src/npcs/_system/npc.tw

@@ -1,5 +1,5 @@
 :: NPC_Widgets[widget]
-<<widget "npc" container>>
+<<widget 'npc' container>>
 	<<set _npcId = _args[0]>>
 	<!-- Present NPCs -->
 	<<if !_presentNPCs>><<set _presentNPCs = {}>><</if>>