diff --git a/Docs/Modding/All_moods.txt b/Docs/Modding/All_moods.txt deleted file mode 100644 index f815e10..0000000 --- a/Docs/Modding/All_moods.txt +++ /dev/null @@ -1,37 +0,0 @@ -These are used in dialogue like below: -Player(Happy):: "Hello!" - -Replace 'Happy' with any of the below: - Angry - Annoyed - Anxious - Attentive - Bored - Confused - Crying - Curious - Disgusted - Drained - Embarassed - Evil - Excited - Flirty - Furious - Grin - Irritated - Kiss - Lazy - Offended - Pain - Peaceful - Posing - Sarcastic - Scared - Serene - Shocked - Shy - Surprised - Wink - Sad - Happy - Tired \ No newline at end of file diff --git a/Docs/Modding/All_tags.txt b/Docs/Modding/All_tags.txt deleted file mode 100644 index 4812776..0000000 --- a/Docs/Modding/All_tags.txt +++ /dev/null @@ -1,74 +0,0 @@ -These are used in the function Tag() in lpdesc and lptalk files: - - Solo - - Couple - MF - FF - - Threesome - MM - MMF - MFF - FFF - - Foursome - MMMM - MMMF - MMFF - MFFF - FFFF - - Fivesome - MMMMM - MMMMF - MMMFF - MMFFF - MFFFF - FFFFF - - Gay - Lesbian - Bisexual - - Group - Gangbang - ReverseGangbang - - - Foreplay - Oral - Blowjob - Licking - Boobjob - LickingBoobs - - MutualMasturbation - 69 - - Fingering - Handjob - Fisting - - NonSexual - Kissing - Hugging - - - Penetration - - Vaginal - Anal - - Standing - Sitting - Lying - Kneeling - - Doggy - Missionary - Cowgirl - ReverseCowgirl - Sideways - - Aggressive diff --git a/Docs/Modding/All_wheres.txt b/Docs/Modding/All_wheres.txt deleted file mode 100644 index d6c94e7..0000000 --- a/Docs/Modding/All_wheres.txt +++ /dev/null @@ -1,76 +0,0 @@ -These are used in the WHERE: line of lpscene and lpaction files -- art -- bag -- bakery -- bank -- bar -- beauty -- beverages -- bicycle -- biergarten -- books -- butcher -- cafe -- car -- chemist -- cinema -- clothes -- coffee -- community_centre -- computer -- confectionery -- convenience -- copyshop -- cosmestics -- deli -- dentist -- department_store -- doctor -- doityourself -- electronics -- fast_food -- florist -- furniture -- garden_centre -- gift -- greengrocer -- hairdresser -- hospital -- hotel -- ice_cream -- jewellery -- laundry -- library -- marketplace -- mobile_phone -- motorcycle -- musical_instrument -- newsagent -- nightclub -- office -- optician -- outdoor -- pet -- pharmacy -- photo -- place_of_worship -- police -- post_office -- prison -- pub -- residential -- restaurant -- seafood -- shoes -- sports -- sports_centre -- stationery -- supermarket -- tea -- theatre -- tobacco -- toilets -- toys -- travel_agency -- variety_store -- veterinary \ No newline at end of file diff --git a/Docs/Modding/Assignment_Operators.txt b/Docs/Modding/Assignment_Operators.txt deleted file mode 100644 index e72b420..0000000 --- a/Docs/Modding/Assignment_Operators.txt +++ /dev/null @@ -1,18 +0,0 @@ -Assignment operators are used to modify the values of float variables and stats. They are: -+= : add --= : deduct -*= : multiply -/= : divide -= : set (for a float variable) -=> : set (for a actor stat) - -Examples: - CurrentCompanion:attractiontoplayer += Random(0, 2) - count += 1 - martial *= 2 - Salary /= 2 - jobperformance => 50 // use '=>' instead of just '=' because job performance is a actor stat - count = 0 // use '=' instead of '=>' because count is not an actor stat but a local float variable - count += 1 - - \ No newline at end of file diff --git a/Docs/Modding/Command_Functions/convertToLocalCurrency.txt b/Docs/Modding/Command_Functions/convertToLocalCurrency.txt index 0f8e936..372a1f5 100644 --- a/Docs/Modding/Command_Functions/convertToLocalCurrency.txt +++ b/Docs/Modding/Command_Functions/convertToLocalCurrency.txt @@ -11,4 +11,6 @@ COMPARE: getRent, getSalary, setRent, setSalary EXAMPLE: Salary = 3000 SalaryConverted = Salary.convertToLocalCurrency() - "My salary is ." // will show up as 'My salary is £ 2000.' \ No newline at end of file + "My salary is ." // will show up as 'My salary is £ 2000.' + + SalaryConverted = Salary.convertToLocalCurrency(true) \ No newline at end of file diff --git a/Docs/Modding/Command_Functions/forgiveAffairs.txt b/Docs/Modding/Command_Functions/forgiveAffairs.txt index bd70d2b..85af520 100644 --- a/Docs/Modding/Command_Functions/forgiveAffairs.txt +++ b/Docs/Modding/Command_Functions/forgiveAffairs.txt @@ -6,7 +6,7 @@ Clear all affairs commited while in this current relationship. This is done auto TYPE: Command, Non-Ref RETURNS: / THEME: Relationships -COMPARE: isAffair, loseDating +COMPARE: isAffair, loseDating, getSpecific(Affair) EXAMPLE: Dating(Crying):: "Alright, after everything we've been through, I guess I can forgive you this time ..." diff --git a/Docs/Modding/Command_Functions/getSpecific.txt b/Docs/Modding/Command_Functions/getSpecific.txt index ceafd25..f9a75b0 100644 --- a/Docs/Modding/Command_Functions/getSpecific.txt +++ b/Docs/Modding/Command_Functions/getSpecific.txt @@ -4,7 +4,7 @@ getSpecific(float variable) USE: Get a specific person in your current game. -Available keywords are: Dating, Dating_Friend, Boss, Colleague, Neighbour, PT, ExDating, Landlord, CurrentBabyDaddy, Impregnated +Available keywords are: Dating, Dating_Friend, Boss, Colleague, Neighbour, PT, ExDating, Landlord, CurrentBabyDaddy, Impregnated, Affair Alternatively, you can input an ID number or a float variable containing it to get the actor with that ID. diff --git a/Docs/Modding/Command_Functions/loseHome.txt b/Docs/Modding/Command_Functions/loseHome.txt index b1431db..f3e14ec 100644 --- a/Docs/Modding/Command_Functions/loseHome.txt +++ b/Docs/Modding/Command_Functions/loseHome.txt @@ -2,13 +2,18 @@ loseHome() USE: The player moves out of their current home. Set rent to 0. Landlord and neighbours become acquantainces. +If the player's SO has a home, they'll move in with them instead. TYPE: Command, Non-Ref RETURNS: / THEME: Housing -COMPARE: moveHome +COMPARE: moveHome, PlayerHasHome, DatingHasHome EXAMPLE: Landlord(Angry):: "That's enough. You're evicted!" loseHome() - "I need to find a new place to live now." \ No newline at end of file + "I need to find a new place to live now." + + Dating = getSpecific(Dating) + "I accepted 's offer. It would be a good experience living together. Besides, I can save quite a bit of money on rent." + loseHome() \ No newline at end of file diff --git a/Docs/Modding/Command_Functions/loseHomeDating.txt b/Docs/Modding/Command_Functions/loseHomeDating.txt new file mode 100644 index 0000000..b7dcf49 --- /dev/null +++ b/Docs/Modding/Command_Functions/loseHomeDating.txt @@ -0,0 +1,16 @@ +loseHomeDating() + +USE: +Your SO moves out of their home, and in with you. + +TYPE: Command, non-Ref +RETURNS: / +THEME: Relationships, Housing +COMPARE: loseHome, moveHome, isAtDatingHome, PlayerHasHome, DatingHasHome + +EXAMPLE: + + SO = getSpecific(Dating) + Player:: "Babe, why don't you just come live with me?" + SO:: "Sure, that's a great idea!" + loseHomeDating() \ No newline at end of file diff --git a/Docs/Modding/Condition_Functions/DatingHasHome.txt b/Docs/Modding/Condition_Functions/DatingHasHome.txt new file mode 100644 index 0000000..fdaaba6 --- /dev/null +++ b/Docs/Modding/Condition_Functions/DatingHasHome.txt @@ -0,0 +1,18 @@ +DatingHasHome() + +USE: +Checks to see if the player's significant other lives in their own apartment. + +TYPE: Condition, non-Ref +RETURNS: bool +THEME: Housing, Relationships +COMPARE: PlayerHasHome, isAtHome, isAtDatingHome, loseHomeDating + +EXAMPLE: + + If !PlayerHasHome() + Player:: "I can't afford to rent my own apartment." + If DatingHasHome() + Player:: "Maybe I can move in with my girlfriend instead?" + Endif + Endif \ No newline at end of file diff --git a/Docs/Modding/Condition_Functions/PlayerHasHome.txt b/Docs/Modding/Condition_Functions/PlayerHasHome.txt new file mode 100644 index 0000000..6109ed6 --- /dev/null +++ b/Docs/Modding/Condition_Functions/PlayerHasHome.txt @@ -0,0 +1,18 @@ +PlayerHasHome() + +USE: +Checks if the player lives in their own apartment. + +TYPE: Condition, non-Ref +RETURNS: bool +THEME: Housing +COMPARE: DatingHasHome, isAtHome, isAtDatingHome, loseHomeDating + +EXAMPLE: + + If !PlayerHasHome() + Player:: "I can't afford to rent my own apartment." + If DatingHasHome() + Player:: "Maybe I can move in with my girlfriend instead?" + Endif + Endif \ No newline at end of file diff --git a/Docs/Modding/Condition_Functions/isAffair.txt b/Docs/Modding/Condition_Functions/isAffair.txt index 46c7dd9..b7e8b3d 100644 --- a/Docs/Modding/Condition_Functions/isAffair.txt +++ b/Docs/Modding/Condition_Functions/isAffair.txt @@ -6,7 +6,7 @@ Check if you have commited an affair with this actor while with your current boy TYPE: Condition, Reference RETURNS: bool THEME: Relationships -COMPARE: forgiveAffairs +COMPARE: forgiveAffairs, getSpecific(Affair) EXAMPLE: If John.isAffair() diff --git a/Docs/Modding/Condition_Functions/isAtDatingHome.txt b/Docs/Modding/Condition_Functions/isAtDatingHome.txt new file mode 100644 index 0000000..b3c3f36 --- /dev/null +++ b/Docs/Modding/Condition_Functions/isAtDatingHome.txt @@ -0,0 +1,18 @@ +isAtDatingHome() + +USE: +Checks if player is at significant other's home rather than their own. (The WHERE : home trigger catches both) + +TYPE: Condition, non-Ref +RETURNS: bool +THEME: location, Relationships +COMPARE: isAtHome, WHERE + +EXAMPLE: + + SO::"Well, I have an early day tomorrow so..." + If isAtDatingHome() + Player:: "OK, I'll just grab my things and go home." + Else + Player:: "OK, I'll walk you to the door." + Endif \ No newline at end of file diff --git a/Docs/Modding/Condition_Functions/isPlayerMarried.txt b/Docs/Modding/Condition_Functions/isPlayerMarried.txt new file mode 100644 index 0000000..42b61e0 --- /dev/null +++ b/Docs/Modding/Condition_Functions/isPlayerMarried.txt @@ -0,0 +1,16 @@ +isPlayerMarried() + +USE: +checks if the player is married + +TYPE: Condition, non-Ref +RETURNS: bool +THEME: Relationships +COMPARE: isMarried, isDating + +EXAMPLE: + If isPlayerMarried() + Player(Crying):: "I cannot put up with this abusive marriage any longer ..." + Divorce() + loseDating() + Endif \ No newline at end of file diff --git a/Docs/Modding/Condition_Functions/isVisible.txt b/Docs/Modding/Condition_Functions/isVisible.txt new file mode 100644 index 0000000..b25c53b --- /dev/null +++ b/Docs/Modding/Condition_Functions/isVisible.txt @@ -0,0 +1,23 @@ +Actor.isVisible(slot) + +USE: +Check if an actor is wearing any clothes in a certain 'slot'. Will return false if it's an underwear hidden under other clothes. The slots are: ++Outerwear ++Headwear ++Eyewear ++Top ++Top_Under ++Bottom ++Bottom_Under ++Foot ++Foot_Under + +TYPE: Condition, Reference +RETURNS: Bool +THEME: Clothes +COMPARE: isEquipped, dress, strip + +EXAMPLE: + If Actor.isVisible(Top_Under) && Actor.isVisible(Bottom_Under) + "I walked in on wearing nothing but her underwear." + Endif diff --git a/Docs/Modding/If_Random_and_While.txt b/Docs/Modding/If_Random_and_While.txt deleted file mode 100644 index 40c9cc6..0000000 --- a/Docs/Modding/If_Random_and_While.txt +++ /dev/null @@ -1,89 +0,0 @@ -If, Random and While need to be ended with EndIf, EndRandom and EndWhile respectively, with the correct indentations. - -## INCORRECT: - If count > 2 - If count > 3 - count *= 2 - Else - count /= 2 - Endif - count += 1 - -## CORRECT: - If count > 2 - If count > 3 - count *= 2 - Else - count /= 2 - Endif - count += 1 - Endif - -'If' is used to check a condition or a set of conditions, if matched then the lines immediately below the 'If' line are executed, if not: - - It jumps to the next 'Elseif' line and check the conditions there. - - If there is no 'Elseif' or if none of the 'Elseif's matched, it jumps to 'Else' and execute the lines below it. - - If there's no 'Else', then nothing is executed - - Between 'If' and 'Endif', there can be as many 'Elseif's as you want, but only one 'Else'. - - One something matches, or if nothing is matched and there's no 'Else', it jumps to the line below 'Endif' - -EXAMPLE: - If 1 > 2 //false so no african person is generated, instead it jumps to the next Elseif - Actor = generatePerson(african) - Elseif 2 < 3 //false again so no eastern european is generated either, it jumps to the next Elseif - Actor = generatePerson(easterneuropean) - Elseif 5 > 2 //true so an east asian is generated, it then ignores the rest and jump after the 'Endif' to dress the actor - Actor = generatePerson(eastasian) - Else //since the above elseif already matched, this Else is ignored - Actor = generatePerson(southasian) - Endif - - Actor.dress() - -To connect conditions into a set of conditions, '&&' is used for 'and' and '||' is used for 'or'. The square brackets [] are used to group conditions -EXAMPLE: - If [1 < 2 && 2 < 3] || [6 > 7 && 8 > 10] //this returns true because the first half is true (both its conditions are true) and there's an || in the middle so even when the second half is false, the whole condition set is still true - -You can also use the ! sign in front of a bool variable or a condition function to return the opposite of what that variable or function would normally return, for example - If !MyBool && isModEnabled(vin_VanillaPorn) && !Player.isDating() // this would match if MyBool is false, vin_VanillaPorn is enabled and the player is not in a relationship - -To compare two floats, you can use == (equal), != (not equal), > (larger than), >= (larger than or equal), < (less than), <= (less than or equal) - -'While' is similar to 'If', except: - - With 'If', if the conditions are matched, the lines are executed once. With 'While', as long as the conditions remain matched, the lines are executed again and again in a loop until the conditions no longer matched. - - There's no 'Else' or 'Elseif' counterparts for 'While' - - It can cause the game to freeze if you haven't implemented a way for the conditions to become unmatched eventually (indefinite While loop) - -EXAMPLE: generate 10 temporary actors who come up to say hi to the player one by one - count = 0 - While count < 10 - Actor = generatePersonTemporary() - Actor.dress() - Actor.show(2) - Actor(Happy):: "Hello, !" - count += 1 //without this line, the loop will continue forever will remain less than 10 forever - Endwhile - -Special Dialogue Choice Condition. A single number as a condition checks for the last choice the player pressed on. - -EXAMPLE: - "Invite inside?" - 0:: "Yes" - 1:: "No" - // not entirely sure why, but an empty line here is crucial - it looks neater anyway - If 0 // instead if just '0', can also be written as 'choice == 0' - Player(Happy):: "Hey, do you want to come in?" - Else - Player(Happy):: "Goodbye darling!" - Endif - -Using Random simply allows you to randomly pick one of the lines between Random and EndRandom to execute - -EXAMPLE: - Random - Actor = generatePerson(african) - Actor = generatePerson(eastasian) - Actor = generatePerson(easterneuropean) - Actor = generatePerson(southasian) - EndRandom - -In the above example, the race of the actor generated will be chosen randomly, with each option having an equal 25% chance diff --git a/Docs/Modding/Interpolating.txt b/Docs/Modding/Interpolating.txt deleted file mode 100644 index 66e3805..0000000 --- a/Docs/Modding/Interpolating.txt +++ /dev/null @@ -1,30 +0,0 @@ -Sometimes, parts of your texts (dialogues, dialogue option, dirty talks, scene description) need to be dynamic as you don't know in advance the name or gender of the actor involved or whether they are the player or not. That's where interpolating comes in. - -You can interpolate by using the <> brackets in the following structure: - - -For example: -"I'm hanging out with , who is very . car is one of the finest looking cars I've seen recently." - -The keywords are as follow: - name: returns the actor's first name - name_last: returns the actor's last name - - P: short for Possessive adjective, returns My, His or Her - p: same as above, just not capitalized - - S: short for Subject pronoun, returns I, He or She - s: same as above, just not capitalized - - O: short for Object pronoun, returns Me, Him or Her - o: same as above, just not capitalized - - R: short for Reflexive pronoun, returns Myself, Himself or Herself - r: same as above, just not capitalized - - PP: short for Possessive Pronoun, return Mine, His or Hers - pp: same as above, just not capitalized - -You can also use _or_ to make LifePlay select whatever on the left of the _or_ if the actor is male, or select whatever on the right of the _or_ if the actor is female. For example, the following are all valid: - "I consider myself a ." - "My friend is one of those who spend their whole days playing video games." \ No newline at end of file diff --git a/Docs/Modding/Lists/Functions_By_Theme.txt b/Docs/Modding/Lists/Functions_By_Theme.txt index fc93d6d..4e7d80d 100644 --- a/Docs/Modding/Lists/Functions_By_Theme.txt +++ b/Docs/Modding/Lists/Functions_By_Theme.txt @@ -20,7 +20,7 @@ Overview of command and condition functions, by theme - Clothes dress, strip, dressWedding - isEquipped + isEquipped, isVisible - Companions endDate, getCompanion, startDate @@ -40,8 +40,8 @@ Overview of command and condition functions, by theme isAsexual, isInterestedIn - Housing - addNeighbour, getRent, loseHome, moveHome, removeNeighbour, setLandlord, setLivingWithPlayer, setRent - isAtHome, isLandlord, isNeighbour, livesWithPlayer + addNeighbour, getRent, loseHome, loseHomeDating, moveHome, removeNeighbour, setLandlord, setLivingWithPlayer, setRent + DatingHasHome, isAtHome, isLandlord, isNeighbour, livesWithPlayer, PlayerHasHome getSpecific(Neighbour), getSpecific(Landlord) - Identity @@ -55,7 +55,7 @@ Overview of command and condition functions, by theme - Location moveTo, setBackground, WHERE - isAtHome + isAtDatingHome, isAtHome - Looks blendPreset, randomizeFace, randomizeHairs @@ -73,16 +73,16 @@ Overview of command and condition functions, by theme getSpecific(CurrentBabyDaddy), getSpecific(Impregnated) - Relationships - forgiveAffairs, loseDating, setDating, getMarried, Divorce, dressWedding - isAffair, isDating, isMarried - getSpecific(Dating), getSpecific(ExDating) + Divorce, dressWedding, forgiveAffairs, getMarried, loseDating, loseHomeDating, setDating + DatingHasHome, isAffair, isAtDatingHome, isDating, isMarried + getSpecific(Dating), getSpecific(ExDating), getSpecific(Affair) - Scenes - hide, show, sceneEnd, sceneStart, setBackground, timeout, timeoutprecise, closeEyes, WHAT, WHEN, WHERE + closeEyes, hide, sceneEnd, sceneStart, setBackground, show, timeout, timeoutprecise, WHAT, WHEN, WHERE ForcedTrigger - Sex - Sex, SexNoAffair, Filter, TalkNonConsensual + Filter, Sex, SexNoAffair, TalkNonConsensual - Special Characters losePT, setPT diff --git a/Docs/Modding/Stats_and_Random.txt b/Docs/Modding/Stats_and_Random.txt deleted file mode 100644 index 5ae1104..0000000 --- a/Docs/Modding/Stats_and_Random.txt +++ /dev/null @@ -1,11 +0,0 @@ -Actor stats are referenced with {ActorVariable}:{StatID} like 'CurrentCompanion:interpersonal' or 'Player:intelligence'. The latter can simply be expressed as 'intelligence' (i.e. if no actor variable is specified, the player is assumed.) - -Random(min, max) is used to generate a random float between a min float and a max float for example: -Random(0, 100) will generate a random value between 0 and 100 - -EXAMPLE: - If Random(0, 100) < interpersonal - CurrentCompanion:rapportwithplayer += Random(0, 1) - Endif - - In the above example, the higher the player's interpersonal skill, the more likely the current companion's rapport with the player will increase. This increase is by a random amount between 0 and 1. \ No newline at end of file diff --git a/Docs/Modding/SyntaxHighlighter/LifePlaySyntaxNP.xml b/Docs/Modding/SyntaxHighlighter/LifePlaySyntaxNP.xml index b2ec7ad..9892d53 100644 --- a/Docs/Modding/SyntaxHighlighter/LifePlaySyntaxNP.xml +++ b/Docs/Modding/SyntaxHighlighter/LifePlaySyntaxNP.xml @@ -25,9 +25,9 @@ snipend } sceneStart sceneEnd If Else Elseif Endif While EndWhile Random EndRandom - addColleague addDatingFriend addNeighbour blendPreset blockContact clearGlobal closeEyes convertToLocalCurrency delete dress endDate exchangeContact Filter forgiveAffairs generatePerson generatePersonTemporary getCompanion getGlobal getID getPerson getRelative getRelativeExcept getRent getSalary getSpecific hide loseDating loseHome loseJob losePT makePermanent moveHome moveJobs moveTo passTime Random( randomizeFace randomizeHairs removeColleague removeDatingFriend removeNeighbour setBackground setBoss setDating setGlobal setHomeCity setLandlord setLivingWithPlayer setPT setRent setSalary Sex SexNoAffair show startDate strip TalkNonConsensual timeout timeoutprecise - ForcedTrigger isAffair isAsexual isAtHome isBoss isColleague isContactExchanged isDating isDatingFriend isDominantSex isEquipped isInterestedIn isLandlord isMale isMarried isModEnabled isNeighbour isPlayer isRelative isSameAs isSameGender isValid isWithCompanion livesWithPlayer Tag - Player CurrentCompanion actionDuration Difficulty + addColleague addDatingFriend addNeighbour blendPreset blockContact clearGlobal closeEyes convertToLocalCurrency delete Divorce dress endDate exchangeContact Filter forgiveAffairs generatePerson generatePersonTemporary getCompanion getGlobal getID getMarried getPerson getRelative getRelativeExcept getRent getSalary getSpecific hide loseDating loseHome loseHomeDating loseJob losePT makePermanent moveHome moveJobs moveTo passTime Random( randomizeFace randomizeHairs removeColleague removeDatingFriend removeNeighbour setBackground setBoss setDating setGlobal setHomeCity setLandlord setLivingWithPlayer setPT setRent setSalary Sex SexNoAffair show startDate strip TalkNonConsensual timeout timeoutActor timeoutprecise timeoutActorPrecise WHAT WHEN WHERE + DatingHasHome ForcedTrigger isAffair isAsexual isAtDatingHome isAtHome isBoss isColleague isContactExchanged isDating isDatingFriend isDominantSex isEquipped isInterestedIn isLandlord isMale isMarried isModEnabled isNeighbour isPlayer isPlayerMarried isRelative isSameAs isSameGender isValid isVisible isWithCompanion livesWithPlayer PlayerHasHome Tag + Player CurrentCompanion actionDuration Difficulty CostOfLiving age arousal attractiontoplayer attractiveness car_value children cooking dance energy fertility fitness incest intelligence interpersonal intoxication jobexperience jobperformance martial masochist money mood muscle music perversion pet_health pornfame rapportwithplayer sneak stock_alcohol stock_book stock_coffee stock_condom stock_flower stock_gift stock_haircare stock_ingredient stock_juice stock_makeup stock_meal stock_movie stock_musicalinstrument stock_petfood stock_photo stock_pill stock_skincare stock_snack stock_soda stock_supplement stock_tea stock_tobacco stock_video art bag bakery bank bar beauty beverages bicycle biergarten books butcher cafe car chemist cinema clothes coffee community_centre computer confectionery convenience copyshop cosmetics deli dentist department_store doctor doityourself electronics fast_food florist furniture garden_centre gift greengrocer hairdresser hospital hotel ice_cream jewellery laundry library marketplace mobile_phone motorcycle musical_instrument newsagent nightclub office optician outdoor pet pharmacy photo place_of_worship police post_office prison pub residential restaurant seafood shoes sports sports_centre stationery supermarket tea theatre tobacco toilets toys travel_agency variety_store veterinary Angry Annoyed Anxious Attentive Bored Confused Crying Curious Disgusted Drained Embarassed Evil Excited Flirty Furious Grin Irritated Kiss Lazy Offended Pain Peaceful Posing Sarcastic Scared Serene Shocked Shy Surprised Wink Sad Happy Tired diff --git a/Docs/Modding/Variable_Types.txt b/Docs/Modding/Variable_Types.txt deleted file mode 100644 index bd46ef0..0000000 --- a/Docs/Modding/Variable_Types.txt +++ /dev/null @@ -1,13 +0,0 @@ -There are only four local variable types in LifePlay scripting language: - -- Actor: refers to a generated character, most often as the result of GeneratePerson(), GetSpecific() or GetPerson(). The special variables 'Player' and 'CurrentCompanion' are also actors. Not all actors in the current game are always present in memory, they need to be 'called' first using the functions above to become actors. Each actor has an ID which is a float, which can be saved as a global variable so that the actor can be called by using GetSpecific() on the global variable. - -- Float: a number, also used as Actor ID - -- String: anything textual, functions like convertToLocalCurrency() convert floats to readable strings. - -- Bool: true or false, very important for If and While, many functions are 'checking functions' that return a bool - -Global variables are like floats but need to be converted into float first before use: see getGlobal(), setGlobal() and clearGlobal() - -Currently, arrays and structs aren't available. \ No newline at end of file diff --git a/Docs/Modding/explanation.lpaction b/Docs/Modding/explanation.lpaction deleted file mode 100644 index c45528f..0000000 --- a/Docs/Modding/explanation.lpaction +++ /dev/null @@ -1,18 +0,0 @@ -ACTION_UNIQUEID: have_a_meal_in -ACTION_NAME: Have a meal -WHERE: home, work -WHEN: 5.30 - 22.30 -MINUTES: 40 - 90 -TIMEOUT_MINUTES: 180 -ALSO_TIMEOUT: have_a_snack_in, have_a_snack, have_a_meal_in -EFFECTS: stock_meal -1 (START), mood +3 (END), energy +15 (DURATION), mood -1 (INTERRUPTED) -CONDITIONS: stock_meal >= 0.8 (STAT_COMPARE) -MOVE_FIRST: true -SCENE_ALWAYS: -ANIMATION: - -Again, pretty self explanatory here. The last two lines are not used. The only thing that the above doesn't include is the BUFF effect that can be added to the EFFECTS lines, for example -attractiveness +5 (BUFF:300) -That will give you a temporary buff of 5 attractiveness for 300 minutes. - -Note also that the CONDITIONS line only allows (STAT_COMPARE) for now. \ No newline at end of file diff --git a/Docs/Modding/explanation.lpcharacter b/Docs/Modding/explanation.lpcharacter deleted file mode 100644 index 89cc9e2..0000000 --- a/Docs/Modding/explanation.lpcharacter +++ /dev/null @@ -1,16 +0,0 @@ -Lpcharacter files are used to hold data about an actor: player or NPC. These data include their appearance (morphs, hairs, skin colors, muscle tone etc) and stat. - -The easiest way to generate a lpcharacter is via the character generation (Ctrl + E) > Save Preset button on the top left corner. However, the game actually generates a lpcharacter whenever a new character is introduced (saved first in Content\Saves\_session\Characters, then moved to the save slot's folder whenever the player saves the game) - it's the only way to store a character. - -Open one of those generated lpcharacters and you'll find a full list of the parameters, but each line follows the same rule: - -CATEGORY Parameter_Name: value1% value1, value2% value2, ..., valueN% valueN - -For bool and string parameters, valueN can only be a single value. However, for float parameters, valueN can be a range also, with the min and max values separated by a '=>'. - -EXAMPLES: the following lines are all valid: - - INFO First_Name: 50% John, 50% Josh - MORPH Arms_ForearmMass-ForearmTone_max-max: 100% 0.128191=>0.89546 - INFO Genital: 80% Penis - HAIR Brow_Color_R: 10% 0.7=>0.9, 20% 0.2=>0.3, 30% 0.5=>0.8 \ No newline at end of file diff --git a/Docs/Modding/explanation.lpmod b/Docs/Modding/explanation.lpmod deleted file mode 100644 index 658f626..0000000 --- a/Docs/Modding/explanation.lpmod +++ /dev/null @@ -1,12 +0,0 @@ -Lpmods hold header information about a mod. You can make a new folder inside Content\Modules for your mod. But that mod will not be recognized by the mod manager until you create a lpmod file for it. Without a lpmod file, all the rest of the files in that folder will not be read. - -Lpmod is basically the equivalent of an esp file in Bethesda's games. - -Lpmod follows a rigid structure as follows: - -MODULE_UNIQUEID: vin_NTR // unique ID for the mod, must match the subfolder's name under Content\Modules -MODULE_NAME: Official Netorare Module -MODULE_AUTHOR: Vinfamy -MODULE_LINK: www.loverslab.com -MODULE_DESCRIPTION: Netorare, cuckoldry, being cheated on - aka the most divisive fetish on the internet -MODULE_REQUIREMENTS: vin_VanillaRealistic // unique IDs of the prerequisite mods, without all these mods enabled, this mod cannot be enabled. \ No newline at end of file diff --git a/Docs/Modding/explanation.lpscene b/Docs/Modding/explanation.lpscene deleted file mode 100644 index 496e0c5..0000000 --- a/Docs/Modding/explanation.lpscene +++ /dev/null @@ -1,45 +0,0 @@ -LPScene holds the script of a scene, a random event that occurs when the player is performing an action provided all of its conditions are met. Most scenes follow the skeleton below: - -WHAT: all, -sleep, -nap // what actions can trigger this scene, use their IDs, or alternatively, use all, followed by a bunch -action to exclude -WHERE: home // for list of wheres, check All_wheres.txt and use their IDs specifically, or alternatively, use all, followed by a bunch -action to exclude -WHEN: 0 - 24 //you can also do things like '22 - 3' -WHO: Actor = getSpecific(ExDating); If !Actor.isContactExchanged() && Random(20, 100) < Actor:rapportwithplayer // could simply be 'none', or could be one or multiple parts, including at least one that 'gets' an actor using getSpecific() or getPerson(). There's also an option for the last part to be an If function which could be anything but is recommended to be related to the actors you just grabbed. If one of the getSpecific() or getPerson() functions fail to get an appropriate actor, or if the actors found don't match the conditions in the final 'If' part, then the scene is ignored -OTHER: isAtHome() // just a normal If function without the word 'If' - - SceneStart() // this brings up the scene UI - - // YOUR MAIN SCRIPT GOES HERE - - SceneEnd() // this closes down the scene UI and delete all actors generated / 'gotten' during the scene from memory after saving their data (whether modified or not during the scene) back into their respetive lpcharacters - timeout(200, ex_wants_to_be_friend) //not necessary, but you might want to timeout a scene for x hours after it gets triggered. Otherwise, it will get too repetitive and bore the player to death. - -The main script contains lines that can be roughly divided into two types: -- Display scene description, dialogues and dialogue options -- Everything else, i.e. code to generate actors, to modify stat, etc - -The second type you can learn about in the Docs\Functions folder as well the Assignment_Operators, If_Random_and_While, Stats_and_Random and Variable_Types documents. The display stuffs is as follows: - -## Scene Description: i.e. text that tells the story that is not spoken by anyone - "Scene description goes here." - -## Dialogue: text that is spoken by someone: - Structure: - ActorVariable(Mood):: "Dialogue content" // with (Mood) optional - full list of moods can be found in All_moods.txt - For example: - Player(Sad):: "I miss you, ." - // If you're wondering what the heck is in the <>, check Interpolating.txt. - -## Options: options for the player to click on to proceed - Structure: - Index:: Conditions:: "Option text" // with the Conditions optional and without the 'If' at the start - For example: - " is asking for sex in exchange for this job!" - 0:: perversion > 30:: "Accept proposal" // This option will be greyed out unless the player's perversion is over 30 - 1:: "Turn it down" - - If 0 - Sex(Player, Interviewer) - Else - Player(Angry):: "No fucking way!" - Endif - diff --git a/Docs/Modding/explanation.lpstat b/Docs/Modding/explanation.lpstat deleted file mode 100644 index b3707d5..0000000 --- a/Docs/Modding/explanation.lpstat +++ /dev/null @@ -1,11 +0,0 @@ -Pretty self-explanatory. Not sure what I can explain here ... - -STAT_ID: mood -STAT_NAME: Mood -PLAYER_ONLY: true -HIGHER_BETTER: true -STAT_MIN: 0 -STAT_MAX: 100 -DAILY_CHANGE: -5 -DEFAULT_VALUE: 100 -NPC_ONLY: false \ No newline at end of file