You are a new headmaster in a school. Your main task is to try to bring students up to a maximum stage of depravity. To do this you will have to convince the PTA to agree on changes that through time will help you achieve this goal. Several quests exist to help you achieve your goal.
Год выпуска: 2018
Жанр: 2dcg, male protagonist, female protagonist, futanari protagonist, school setting, corruption, sandbox, management, dating sim, teasing,
titfuck, groping, handjob, spanking, oral, vagina, anal, group, sex toys, lesbian, gay, futanari, virgin, voyeurism, exhibitionism, bdsm, incest, milf, prostitution, sexual harassment, rape, drugs, mind control, slave, urination, trap, pregnancy,
Цензура: Включается и отключается в настройках игры
Разработчик/Издатель: www.henthighschool.com - henthighschool.net/hhs/hhs-1-10-0-official-release-thread/15/
Переводчик мода: motoyarik
Платформа: Windows/PC
Тип издания: Оригинальная (официальная)
Таблетка: Не требуется
Версия: v.1.10.6.0 Release Eng / 1.9.5-2050.41 (update_37) Rus + Lexville mod v1.1.2-HHS1.9.5 Rus
Язык игры: Русский/Английский
Язык интерфейса: Русский/Английский
Hentai High School+ является последней игрой из серии HentHighSchool, она находится в разработке с 2010 года и до сих пор обновляется и дорабатывается.
Общая цель игры состоит в том, что вы должны развратить как можно больше людей в вашем городе, при этом не умереть и не быть уволенным. К каждому персонажу может быть свой подход и он может быть не один а несколько. Постепенно продвигаясь по игре, можно оказаться в разных ситуациях, а влиять на них или нет, зависит от игрока.
Игра имеет возможность запускать различные сценарии, которые отвечают не только за сюжет но и за всю окружающую среду вокруг игрока. В данный момент для версии 1.08 сценариев есть: 1.
Сценарий - Смоллвиль
Смоллвиль - это небольшой городок с прекрасными людьми и обычной работой, где учащиеся только и ждут, когда их развратят. Вас назначили ее новым директором, чтобы достичь того, чего ваши предшественники не смогли.
Цель этого сценария: закончить учебный год и хорошо подготовить учеников к экзаменам. Каким методом достигнет этого директор, сможет ли он справится с давлением родительского комитета и что это вообще за город Смоллвиль - ответы на эти вопросы может найти сам игрок.
Своего директора вместе с его фетишами можно создать перед началом игры.
Крайняя русифицированная версия: HHS+1.9.5-2050.41 (update_37)
Включает в себя полную игру и все изменения по пост 41 включительно (с оф. сайта), играть с начала (можно использовать свои сейвы, если до этого игра была обновлена до 37 поста).
Changelog 1.10.6.0 - 2024-01-16
New_PD_System_V0.3+
The download folder contains an [Optional Mod] featuring a part of a potential overhaul of the PD system: Heads & Body.
Installation (important)
Standard mod installation instructions apply.
Should have higher priority than all my other mods (move it below) and any conflicting mods. Other PD mods are not recommended.
It's recommended to set the GFX mode to non-GPU to avoid blur and high GPU usage.
Important: If you don't like skin colour inaccuracies on old PDs, remove all (non-genital) skin colours (except #FFF9DCC3) from the skin colour Color List and [ Regenerate Database ]. Accurate shadering requires all outfits to be converted.
Existing saves: If you had a previous version, it's recommended to be at the Map. Do the mod update steps (reload Obj, Glob, Ev...).
Then: Top left > Mod Options > PD System New > Color Lists > Reset All > [ Regenerate Database ] > Preserve or Reset.
Features
Head:
- Gives the PC / NPCs heads consisting of multiple layers.
- Hair, expression, glasses, piercings, aging, etc.
- Ability to customise said layers & their colours via Bathroom mirror (PC) or interaction (NPC).
Body:
- Expands on above with body layers. Currently only applies to Nude PD & School uniforms.
- Arm emotes. Body piercings. Skin colours.
- Uniform designer (Clothing Store) for modifying your school uniforms (and whatever else might use it in the future).
Changelog
0.3+:
- Optimized Hair init for future change.
- Fixed weather & season checks.
- Fixed adult umbrellas.
- Tweaked age overlays to kick in later.
- Improved shader fallback skin colour accuracy by reducing non-skin accuracy a bit.
0.3:
- Removed hair & skin colour change on gender change, using current always.
- Made layout timer reset on database regeneration & improved preservation.
- Finished Casual placeholder - terrible as expected.
- Made ShowActionImageProvider use ShowImageOverlaid.
- Added head overrides to special NPCs.
- Added option to reset all color DBs.
- Added OutfitDebug interaction.
- _Tucked & _OnePiece support.
- Added a Club emote dir.
- Added a generic GetExposureStates function.
- Finished Piercing logic. Moved half to heads so head piercings show without body.
- Improved some Initialize & Regenerate logic.
- Improved & bugfixed DB init/regeneration logic, so that NPCs keep more of the valid data.
- Made SuggestLook system switch logic require Debug Events flag.
-- Added choice to regenerate an individual + ignore requirements.
- Improved some logic using new Layer Op variant.
- Added leg variation shader test, likely to be scrapped because it's not great.
- Added pregnancy child dummies to refresh list.
- Added some age checks to limit options not useful for children.
- Added EventEmote support.
- Removed principal asset hardcoding, now treated as a regular Special NPC via dummy.
- Allowed specifying which Shared Expression set to use for a Special NPC, since those are a lot of effort to make.
- Tweaked Glasses to support gendering.
- Tweaked Hats to support shpungout's indoor accessory & rebel logic. And not apply if already applied via other means.
- Tweaked LooksMenu to support Head, Body, Foot view offsets, and outfits.
-- Added skin tone (for PC, DebugEventsEnabled for NPCs) & PubicHair menus.
- Added PubicHair logic, with growth / shaving.
- Improved Beard assets & added growth / shaving logic if PC is CleanShaven.
- Added HeadAge logic test. Older NPCs get wrinkles and white hair if the colour is genetic.
- ShowImageOverlaid: Added Skin, Eye, Pubic, Futa overlay support.
- Sorted paths so gendered assets come after unisex.
- Hopefully supported Lexville's vulvas.
- Colour picker tweaks.
-- Implemented custom color entry. Swapped other alpha control from blue channel to green.
-- Tweaked ColorMenu to use OR logic for whitelist.
-- Added option to apply other colour in ShowColorMenu where applicable.
--- Also fixed extra options not showing if no category selection.
- Added shader fallback for old PDs.
- Hat fix.
Changes:
- Minor balance tweaks to GetWillingness, Pornography, Swimming class.
- Added variable link variant to SetPaperDoll Op - hova
- Added byName link variant to CreateItem.
- Added DebugCommand dropdown as a workaround for those that can't see the regular one + a way to see the whole list.
- Added a Name from UID debug command to aid with database reading.
- Added location from person & UID from name debug commands.
- Added link variant to GetPaperDollLayer(s) for getting layer directly by Name.
- Added a Clear option to the layer transform Op.
- Added a PaperDollLayerRank Op.
- Tweaked Gen Home street exit to use real location buttons & fixed AskForSex not updating location.
Bugfixes:
- Fixed club enlistment not working when ImportantStat is maxed.
- Fixed event-opening Edit buttons not working in Debugger.
-- Made Edit focus on referenced ID for SeqVar_Ref.
- Fixed LayerTransform dynamic + variables exception.
- Fixed PaperDollLayerCustomShader clone dynamics issue.
- Tweaked list Ops to support true modulo instead of the c# version.
- Tweaked @FullReload to respect variable persistance.
- Made relevant April events trigger if called to office outside of breaks.
- Fixed missing time passes in SierraHardmanSex.
- Fixed some menstruation issues: Broken check & swap on gender change.
- Use the bedroom location of Annette instead of the hardcoded Guest Room in SH.
- Specifying assembly in Themes allows local: to be loaded.
- Tweaked SusanCorruption to mark its images as non special on completion.
- Added Imazen support to VEE.
- Fixed FindExternalReferences exception in debugger.
- Miniquest_AearosolDrug drug strenght check fix.
- Btn_OrderProstitute discount state fix.
- JuneTalk intro tweak (knocking).
- Futa drug GenderOverride tweak.
- Fixed GetWillingness inveting friendship bonus.
- Tweaked GetAttraction Grunge to reduce Charisma to 0 instead of into the negatives.
- Btn_peeFem-Futa exception.
- Reduced some SierraHardmanSex checks, since they were excessively high.
- Sherilyn_Encounters scheduling failsafe.
- Tweaked onsen change room layout to have lights on.
- Added ShowImageOverlayed & applied it to POO.
- Tweaked lactation regex.
- Misc tweaks and typos.
Changelog 1.10.5.7
Bugfixes:
- Added virginity removal failsafe to missing girl.
- Redirected POOActivities to lower branch instead of popup if no matching NPCs found.
- ForestRunUnderwear missing link.
- Sierra double panties fix.
- LoveAsk missing link fix.
- Moved the Pass time operation to the end of the event.
- Grouped the notifications of a couple of events affecting multiple NPCs.
- Fixed bad weighted logic in POOActivities & DetentionFingering.
- Tweaked Wardrobe to use item stacks instead of instances, as failsafe for people with 1M+ items...
- Carl_Chain & BeachGirlsMix missing links.
- Typos.
Changelog 1.10.5.5(2023.05.24)
Bugfixes:
- Fixed chain wierdness due to typos & tweaked things.
- Undid setting tools as special in xml, must be in VEE instead.
- Changed capacity uncapping to update daily instead of weekly.
- Typos.
Changelog 1.10.5.4
Changes:
- Redid portions of Sierra's chain based on MaskedPanda's contributions.
-- Mostly some textual changes & logic updates.
-- Moved tracking to globals.
-- Added post chain sex interaction & encounter (very limited currently).
-- Made logic of cure and futa route a bit more uniform, fixed some checks.
-- Made it possible to get her panties on cure route.
Bugfixes:
- Removed Blocked Status from Teachers B&D.
- Marked some items as special by default, since bought are.
- Fixed Sherilyn_Encounters having a chance to schedule next chain part too quickly.
- Lowered Hypno resistance check on Sherilyn Red Corner receptionist a bit.
- Fixed Knocking always triggering CarlTraining.
- Added futa GenderStatusKnown to some events.
- Fixed FoodDruggingAdministration using same person as P1 & P2.
- Fixed QuestStats not adding Friendship.
- Fixed some errors in GetAttraction & GetWillingness.
- Added missing gating to Miniquest_SexySwimsuit.
- Added nullchecks to Rule IsPassed().
- Added Imazen.Webp library (using libwebp) as a fallback for missing WIC Webp codecs.
- Redirected user settings save exceptions to log to avoid WineHQ issues.
- Typos.
Changelog 1.10.5.3
Changes:
- Expanded and finished the main Carl Walker chain by MaskedPanda.
-- Tweaked and expanded some parts based on suggestions.
-- Added an ending and the Carla alternative.
- Replaced Smith BoobyGrab image with Alum's.
Bugfixes:
- Added link for setting NextRuleChoice to SetRuleChoiceActive & fixed it not clearing Next on default set.
- Fixed SetPropertyByName enum set (again).
- Fixed some ObjectReloading issues.
- Fixed QuestStats Friendship check.
- Fixed Sherilyn_Toy futa PC check.
- Fixed KarinLabAssistant putting her there too early + extended to all breaks.
- Fixed various sex issues in ChangingRoom cam & Hospital HypnoPractice.
- Added pitch choice to BoyPissing.
- Fixed inverted checks in CheerleaderGangbang & ExhibitionClubAllowSex.
- Misc tweaks & Typos.
1.10.5.2(2023.04.12)
Bugfixes:
- Feb 29 birthday fix fix.
- CoppersStart exception fix.
- Typos.
- Removed ShedulingFrequency 1 skip, since it became necessary again after removing another part...
1.10.5.1(2023.04.10)
Bugfixes
- HooterSex typo.
- Fixed RuleChoice statistics daily exception.
- Added time checks to rooftop events.
- Temp tweak to GetSocialProfile so new archetype flirts defaults to old equivalents.
- Tweaked ScheduleHandler to make FollowIndicator bypass frequency setting.
1.10.5.0
Notable Changes and New Stuff
Finished off MaskedPanda's Sherilyn Ambrose chain.
Redid the logic as PersonAttached for more flexibility & added previously missing steps.
Added some very basic Management Panel timetable events.
Mass setting / replacement of subjects.
Timetable rotation / swapping / shift.
Saving / loading / exporting of presets.
Can be expanded further via ExtensionEvents\ManagementPanel.
Added 'Karin Masturbation' chain with a new one by MaskedPanda.
Replaces the ancient non-functional Karmin Masturbation chain.
The mandatory masturbation PTA proposals are once again tied into it.
They were separated out when it was noted that the old chain never actually functioned.
Merges the two machine proposals into one, part of the main rule.
It's an alternative to the Sierra 'Revenge' route (longer, mutually exclusive).
Added HasQuest & proposal support to Karin.
Made Karin help out with some things at the lab (after a specific point in one of her chains).
MadScience Epic/Fail & Research explosion avoidance via a 'Chemistry Fail Minigame' and skill check.
Has difficulty types, scaling, and time sensitivity.
Expanded to Research & gave low chance for solo trigger (skill based up to 20%).
Karin (100% trigger chance) will always show up during lunch (for either).
Otherwise relationship percentage chance while working, for MadScience only.
Chance to make a free drug daily.
alkalash's numerous performance improvements throughout the codebase - cleaning up gameplay bottlenecks.
Fixed GetRandomLocationWeighted(Person): Stat and gender preference filtering wasn't working correctly.
Optimized multithreaded scheduling: Precalculations, avoiding thread locks, limiting number of tasks.
Implemented memory caching of certain debug-related game settings - much faster access times.
Switched to ConcurrentDictionary for Location occupants - more efficient multithreaded updating.
Made console logging slightly more lenient w.r.t. buffer size, reducing cleanup overhead.
Further optimization: Implemented better algorithm for WeightedRandomizer.
Optimized PaperDollUserControl for faster rendering.
Instead of building UI element hierarchy with Image components, use a single component that draws all layers
Saves a lot of UI layout computation work
Small drawback: Layer Effects (Shaders) and Transforms cannot be updated without a full PD update
Implemented caches for directory file listings and custom shaders (PixelShader objects).
Should avoid excessive disk I/O when using these, e.g. for paperdolls.
Debugger and performance improvements.
Reworked save system.
Now: Save file is SQL database file.
Contains relationship database plus compressed savestate XML as blob.
Also features savefile CRC64 checksum.
Made saving more robust and space-efficient.
Old systems still in place, can be re-enabled using app setting, and old saves should be loadable either way.
[close]
Other Tweaks
Tweaked SetEffectsOnObservers to treat casual/accident Actions where PC does something as PC's fault.
Tweaked AskFavorsNeeded to provide an ending like it used to.
Ending still checks for new favours being available (Try) just in case of new events.
Added button to visit generic NPCs from the streets they're assigned to.
Replaced 'Smallville' button with a Btn_ event to exist at the right street.
Added a jog button in sports area.
Added vague inhibition indicators to outfit descriptions.
Added check for awake occupants to LocationLayout LightingMode 4 & 6, and LightsOn/Off traits to force it.
Reduced the requirement for the best cabaret deal to 90 relationship with Stacy to bring it in line with the love indicator.
Added option to postpone some repeatable events.
Removed HasQuest from end of unfinished chains.
Added temp HasQuest removal for Sarah & Eric.
Tweaked HallwaySex event based on Neme & MaskedPanda's tweaks.
Merged & updated some some rules due to chain tweaks & new built-in daily change functionality.
Made loan decline hint at max amount.
Added photoshop button to Smallville Times.
Merged, updated and expanded a few Bathroom F events.
When fucking increase like for gender instead of instantly converting bisexual.
Added PTA proposal for 'Physical Exams'.
Merges the Measurement events into it & allows non-female genders.
Added a regular DVD miniquest.
Replaced EnergyDrink miniquest with general Drink one for a bit more variation.
Added proper Inhibition calculation to player Info Panel.
Tweaked CarlStart to check if he's teaching Sport in general, instead of right now (further tweaks pending).
Now showing the status of the rule choice on School Policy panel.
Made Weather generation more realistic & optionally configurable via the weather app.
[close]
Developer/API changes (only relevant for mod authors)
Added Regex support to PersonTraits(Remove).
Tweaked HasTrait description to mention that it supports Regex and StringList.
Added Regex Group Match operation. For matching a string against a regex, and outputing any capture groups onto optional variables.
Added a simple hover to RegexGroupMatch preview to show individual captures.
Debuger:
Improved VirtualizedEvent debugging:
Hovering over the top half of a currently virtualized variable will show its in-memory value. Double-clicking will edit it.
Hovering over its bottom half will show the original value (copied at each event run). Double-clicking will edit it.
Added a button for jumping between or deleting set breakpoints.
Added breakpoint step focus button with auto-focus.
Added Step Over/Out buttons to the Debugger, for RemoteEvent handling.
Debugger should now also successfully return to parent even if Remote doesn't output into anything.
Added support for custom String Constant and Enum definitions. Updated relevant UI forms for support them.
Custom Enums have their own dropdown to avoid mixups & due to differing internal logic.
Added validation for Enum values (for notifying of relevant changes or invalid values).
Added Enum Description support to IntEnum UI & CustomConstants.
Added CustomEnums for basic GenSex values and attached them to the commonly used functions.
Added CustomConstants for some common Traits & GetCandidates.
Added an Op for getting and setting school Timetable slots.
Added an Op for getting and setting a teacher's subjects.
Added support for a custom button to Management Panel's Timetable.
Added operation to check if a subject is available to teach.
Added ability to create rules that are updated at midnight or Monday.
Added traits to rule choices and an operation to check them.
Added operation to check if a rule choice is available or not.
Added requirements to the rules.
Added a few operations to handle School Upgrades through VEE.
Changed SetEffectsOnObservers to take the location from the first person.
Added special handling for middle clicking RemoteEvent's IntBitField & IntEnum inputs.
Tweaked CheckForErrors error quick-jumping to work outside of current event and VEE.
Added SizeDescriptions to BodyParts, for defining CharacterCreator and text replacements.
Some places still use the enum based logic, due to their hardcoded nature.
Enabled mod assets in AssetBrowser view & removed expanders from last items.
Added some more options to CheckEventExection list variant:
Execute All (ordered by priority).
Try Only & Remove failed from List (+ priority).
Moved progress tracking of some of the chains to Global variables & changed display mode of Chains_* global variables to Integer_BitField.
Added simple filter to Debug Console log.
Added comment about @SuppressWarnings to Comment Box.
Added WineHQ Gfx setting for slightly improved visual compatibility on WineHQ.
Recompiled all compatible shaders as PS2. The remaining 12 required PS3 and will not work anywhere that pre-renders the bitmap.
[close]
Bugfixes
PhoneContact sorting fix.
Added back expelling of Missing Girl, to lower the likelyhood of events & school mechanics interacting with her.
At least until all engine mechanics & events check for ScheduleHandlerNoneIndicator status.
Fixed various issues in Voyeurism_Effects & added support for solo exposure (GiveReceive 4). Updated Doc accordingly.
Reverted WPF Extended Toolkit to 4.2, to prevent collection reset bug.
Tweaked Object Reloading to do less complex objects first.
Fixed GlobalVar SurvivesReload.
HaveSex Op missing InitializeComponent() fix.
CheckAndyRoom exception fix.
Renamed category from "Chains" to "Chains (Person)"
Fixed AskOverMain time conversions.
Tweaked MissingGirl head to check if exists before applying.
Fixed inconsistencies in some events.
Fixed some datetime stuff in some PTA & Smartphone events.
Fixed missing Survive state & tweaked date checks to use Cron in TownCouncil.
Added assembly preloading so themes can access custom controls at exe start. Unfortunately it doesn't work with our assembly, so local: controls still can't be styled directly.
Also made it so the exe doesn't hang if a theme crashes.
Fixed ListFilterProperty checking wrong count.
Fixed SetEffectsOnObservers giving loyalty hit when player not involved.
Fixed invalid mode in CoppersStart.
Made it possible for NPCs with General Home to be there when you knock.
Updated Train Ticket checks in remaining Parker events.
Various fixes to GenSex:
Brought back separation between Consent values for more explicit specification & future proofing.
They still do the same thing under the hood, but properly track their tags now, because a lot of older events also didn't use the new merged meaning.
Fixed tag GiveReceive being all over the place.
Fixed missing Modifier bit compensation, causing non-general scenes to always give max lust.
Fixed WeatherCheck being inverted.
Made Tanning Oil use check for rain.
Fixed Cloistered & Restrictive Undress State settings being inverted.
Fixed some offset issues in the High Street layout.
Fixed CheckForErrors quick jump not working properly in the debugger.
Fixed -f argument for pointing to a specific event with the -editor hhs+.exe argument. Used for making shortcuts that open the editor with/out a specific file.
Fixed bad crons in TownHallCommitee.
Fixed instill loyalty check in try phase.
Fixed B&D outfit logic & corrected inhibition indicator.
Fixed inconsistency in UI notification popup positions.
Fixed UILayer breaking debugger render.
Removed redundant arrange call & improved height compensation in PDUC.
Tweaked ParsedStringPreview to be accessible while debugging.
Added a simple dependency priority check to Modules.
Fixed club reloading not updating selected index.
Added FontAwesome preview to Event Properties.
Fixed PlayerStringInput being constrained to 1 line if no MaxLenght was specified.
Fixes to Btn_GloryHole context & CarlAdjust cast.
Fixed incorrent replacement tags.
Fixed probability of suggesting nude jogging.
Removed corruption from outfit level calculation.
Fixed SetPropertyByName not supporting enums.
Tweaked FindMissingImages to handle .webp and LocationLayout assets.
NudeRuleAcceptance filter fix.
Image path fixes.
Removing reloaded event from VEEStreamingCache.
Fixed IntBitField GlobalVars not being editable in Debug.
Fixed IntBitFields and IntEnums not working in math conditionals.
Fixed bad Mode in Btn_GloryHole.
Fixed "Rule Choice is Available" returning available for unavailable rules.
Mass CheckForErrors cleanup.
Added missing Numeric check in ReturnArgument, causing Int callback to fail Double conversion.
Fixed BitmapFromColor Op.
Fixed BitmapImage Var rendering errors while debugging due to lack of freezing.
Added BitmapImage var link to ShowImage Op.
Fixed StringList Clone failing to recognise serialised line endings, causing SingleLine mode to kick in.
Fixed some invalid GenSex values.
Fixed missing link in one of the MovieEvents & tweaked them to be a bit more re-usable.
Fixed file manager caching bug when loading a save with a different mod config from what's selected in the frontend.
Added a scrollbar to interactions.
Fixed Classroom 9 layout.
Fixed exception in 00_SpecialDesert.
Fixed wrong context in FoodDruggingAdministration.
Typos.
1.10.4.2
Bugfixes:
- Fixed layout cleanup null instead of clear.
- Fixed replacing MultiCompareBool with CompareBool.
- Made AttemptToDial check for ScheduleHandlerNone instead of slave.
- Tweaked Sports Area button to only show Cheerleader practice if they bother showing up.
- Undid accidental US locale in .exe.config from testing.
- Typo.
1.10.4.1
Other Tweaks:
- Switched Birthday related interactions to use Friendship.
- Made LayoutBed require all NPCs (instead of any) in scene to love PC for them to get in & removed sleeping mask for PC.
- Improved NotAlwaysSunny App accuracy.
- Disabled 'Prefer 32bit' to allow more ram usage in 64bit.
Bugfixes:
- Fixes to ReplaceString24h Function.
- Hopefully got the GFX settings under control by freezing & providing more cleanup routines.
-- Make sure to read the description when hovering over Settings > Gfx.
- Added BreakIn caught check to Hypno.
- Fixed shader lighting getting darker in events.
- BackgroundEvents not being saved fix.
- Carl knock exception fix.
- Moved PD cleanup from PD_Default to subs.
- Fixed GetCompletedMiniquestIDs returning the results of the previous NPC if no entries are found for the current one.
- AskFavorsNeeded delay fix.
- Typos & misc tweaks.
Developer/API changes (only relevant for mod authors):
- Switched Weather caching to DB.
- Added a CheckWeather function for checking at a specific time.
1.10.4.0
Notable Changes and New Stuff
A background event will now manage the weather state in the game, with chances to switch between "Clear", "Cloudy", "Windy", "Rainy", "Stormy" and "Snowy" throughout the day.
Not all weather conditions are visually represented at this point in time. The engine has built-in support for snow and rain.
There is a new option in Debug menu under "Global Variables" -> "Disable_Weather_Effects" that you can use to turn off the visual part of the weather, if you don't want to see it or it causes performance issues for you.
When being in an outdoor area, you may now hear rain, storm and wind sounds based on the current weather.
The volume of these effects is controlled via the separate "Ambient" volume slider, so you can disable them that way if you don't like them.
Greatly improved upon the personality archetypes in the game:
Extended the previous 5 NPC archetypes (Jock/Athlete, Artist/Creative, Nerd/Intellectual, Rebel, Royal) with 7 additional overarching archetypes (Advocate, Caregiver, Explorer, Performer, Spiritual, Trendsetter, Visionary).
For each of the now 12 overarching archetypes, added 5-8 new subarchetypes that are assigned based on the overarching archetype and one of the 8 possible personalities that an NPC can have. This results in ~150 different archetype specializations.
Asking NPCs for their hobbies will now give you a different response for each of the ~150 subarchetypes, adding a lot more variety and personality to the NPCs.
Reworked favor miniquests so you don't do the exact same 3 favors for each particular NPC archetype in the same order. Instead, a miniquest is now chosen randomly from all available quests that are suitable for a specific archetype.
Also relaxed some of the archetype restrictions for more generic favors, so e.g. everyone could now ask you for an energy drink and not just "Rebels".
Added more miniquests for some of the new archetypes. (However, it's still not enough to get at least 3 unique miniquests for each archetype, so some may have more than others.)
Denying a miniquest now prevents obtaining a new one for 2 days.
Reworked train ticket handling.
Normal tickets are now one ride per item instance. They can stack in the inventory, though.
Also added flatrate tickets with daily, weekly and monthly duration. They grant unlimited access to the train from the moment of purchase on.
No regular ticket will be consumed by the respective events while a flatrate ticket is active.
Limited train rides to the time between 5:00 and 23:15. Not enough passengers to warrant operating at night time. Daily tickets are only valid until the end of business hours on that day.
LocationLayout GFX overhaul (what you see when navigating):
Added 4 Graphic settings.
Sad GPU: Old real-time shader rendering.
High (new default): Pre-renders shaders the PD shaders.
Mid: Same + removes a few extra shader effects.
Low: Pre-renders the whole layout + disables all other shader effects.
Layout Animation Settings:
GIF + Adorner vs Adorner vs none.
Location Button settings:
Image vs static color (+optional shadows).
Added shader based lighting setting, looks a bit better than regular.
Rebalanced max loan logic to be less exploitable.
Added UI notifications to AjustMind.
SkippingClass added, a mini event chain with quite a few branches.
[close]
Other Tweaks
Clipped old cold shoulder interaction.
Added a lazy tweak to SpycamClue to allow futas.
Moved JerimiahHelp to chat since that seems to be where all quest interactions go.
Changed several weather-specific events so that they now check for specific weather conditions by using a new FunctionLibrary event.
To make up for the stricter conditions, the Random Chance in their Try phases has been increased.
Updated the weather app to actually weather.
Moved "Wish happy birthday" from general "Chat" category to "Personal information".
Added filter to event tree in debug menu to make it easier to find known events.
Added some simpler info to the Population Parameters Doc.
Added hobby dialogue to the chat interaction for each of the new sub-archetypes.
Made AfterglowEffect more effective at preventing arousal.
Replaced some images because of reasons. Slightly altered event text in cases where the new image no longer fits the described scenario in the event.
[close]
Bugfixes
Fixed SeqEvent_EventReloaded not having been triggered up till now. This operation is intended to allow events to add init/cleanup steps for cases where the events are added/reloaded to an already started game.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
Fixed some bugs where some of the "Random Split" replacements were creating the wrong operation to replace with, and the operations also did not link up all original output links in the replacement process.
Fixed wrong interaction category selection due to sorting + improved selection accuracy.
Fixed all the broken image metadata from a faulty replacement (whoops).
Fixed AprilClass & AprilOffice exception & scheduling.
GetAdjucentLocations function: No longer returns locked locations without a key.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
February 29 birthday wish fix.
MaleChangingRoom Spycam fixes.
PTA meeting tracker fix.
Typos, journal improvements, misc tweaks & fixes.
Fixed Debug > add/set time not rendering layout.
Upskirt fix, tweaks to CarlStart & PhoneNumberAsk.
Made layout hijack autosaving since event driven UI Button Waits don't trigger it, also allows rendering the scene before saving.
Tweaked switching from frontend mod tab to properly reload relevant files.
Swimmingpool layer fix & extra layer optimisations.
Fixes in MadScience, AprilPhone, BreakInMain.
Added back chat interaction with Susan Hooter where you can ask her about Peter. Was missing from previous migration of generic chat event to individual interactions.
Fixed missing link in Init_FertilityCycles (previously missing in Init_SocialProfile).
Added OOM failsafe attempt on saving.
Fixed bad caret indexes in ShowDecisionsNumeric insert.
Fixed inverted link in ShowActionImageFilter & relaxed 'no tag' to be treated as the same priority as 'Student/Adult' tags.
Fixed missing link in SetHonorificDict & missed MadScience survive state.
Updated Template scenario to a 'working' order (maybe).
Made game generate default folders for each scenario.
Fixed quirks with scenario change while in char creation.
Fixed "HSVColorComponent" Op passing bad Hue.
Fixed "LayerTransforms" Op using wrong keys + fixed offsets.
Improved age adjustments to take days and siblings into account.
Tweaked Annette & Andy's birthdays to be 9 months apart.
Fixed AssetBrowser filter not actually working and letting everything pass.
Fixed Dev Tool "Find Image References in Events" being broken at least since the conversion to C#.
[close]
Developer/API changes (only relevant for mod authors)
Implemented Background Events. They also come with a new "Events\BackgroundEvents\" directory to keep things tidy.
These events are scheduled via Cron expressions using the new "Add Background Event Schedule" and "Remove Background Event Schedule" operations instead of the regular event scheduling operations.
It's perfectly good practice to use the new "Game Initialized" event entry points to let these events schedule their own execution.
They are executed by the engine at all points in time described by the Cron expression, and without any Try-phase checks. No latent operations are allowed in background events.
Their execution does not count as part of the regular event execution, so a regular event can still be encountered in the same slot when passing time and a background event was executed.
Unlike regular events, background events will trigger exactly at the point in time they were scheduled for.
Regular events would wait for the full specified amount of waiting time (e.g. 30 minutes, 60 minutes, etc.) to have passed first and then check the event execution.
The purpose of background events is to perform operations and tasks in the background without interfering with the player's actions.
For example gathering data, updating certain NPCs, precalculating stuff. But the more frequently your background event is being run, the more lightweight it should be in terms of performance.
Added new "Random Split (Weighted)" operation.
The old one has been visually renamed to "Random Split (Weighted Vars)", but still has the same internal name for serialization purposes.
The new operation holds its weights internally and allows to set them via property window, rather than linking up variables.
This makes it more compact and easy to use in all cases where the random weights are static and don't not intended to be changed at runtime.
For ease of migration, the "Replace Object" menu option can initialize the internal weights of the operation from the values of the linked Double variables of the old "Random Split (Weighted)" operation.
For this to work, the containing VisualEvent is now passed to the method signature of the ReplaceObject function.
The engine now supports rendering of built-in snow and rain effects, which can be controlled via events using the new "Weather Effect" operation.
The previous GIF-based overlay has been removed, since it could lead to high CPU and GPU usage in places with many paperdolls and shaders.
Increased the arbitrarily chosen maximum possible connectors for some operations like "Show Decisions", "Set Int/Double Directly", "Constant Split".
Also improved the property windows of these operations, so things don't become unusable with high connector numbers.
Added "Set String To" operation, which works the same way as "Set Int To" and "Set Double To", but for strings.
Intended usage is only for short one-liners that don't require spellchecking, text preview or line break support. More sophisticated stuff should just use the regular "Set String" with a variable.
Added support for multithreaded debugging & improved a few things:
Debugger will no longer jump between events unless it has to.
Pause Icon on currently debugged tab.
Debugger title now shows runner chain.
On Next Step breakpoint hangs onto its Op instead of vanishing, to indicate need for user input if there is one.
Person Relationship Database operation should now be able to handle other data types than Integer via link variations.
Internally, the DB functions now accept and return object instead of int. The VEE operation will attempt to convert the result based on the type of the linked variables.
UI notifications are still supported for changes to numeric values. The operations will attempt to interpret the current value as numeric and fallback to 0.0 if it cannot be parsed as a number.
Added tags to status effects and VEE operations to go along with them.
It's possible to check whether a person has effects with a specific tag or combination of tag.
It's possible to remove one or all effects with a specific tag or combination of tags.
Updated archetype and personality effects to have matching tags.
Added GetContentFiltered function for getting candidate combos adhearing to gender filters.
Added the new ModInfo fields to Modules, with a simple missing dependency indicator.
Added "Add Custom UI Notification" operation for... adding custom UI Notifications.
Added FontAwesome support in event text.
Added search filter to "Get/Set Property by Name".
Added missing ScheduleHandlerAwakeIndicator StatusEffect to go along with the Asleep ones.
Added new "Split String" operation, which splits a string into a string list. This can be more straight-forward in certain cases than using a "Split String Iterator".
Tweaked "StringReplace" Op to use Regex Groups if both Replacement and Replace are regex vars.
Fully deprecated LocationLayout floor layers, in favour of VEE applied leg removal shader (less RAM use).
Moved PD Layer cleanup into a Function for easier future adjustment.
Added an experimental "Get All Paper Doll Layers" Op to aid PD automation tests. Subject to change.
Added relative ranking to PaperdollLayers.
1.10.3.5
Other:
- Overhauled working at the restaurant to give an oppurtunity to drug customers.
- Added a rep hit to monthly RSD report if in negative money, in exchange for emergency funds.
- Another attempt at state funding balance based on some feedback.
- Updated the Map's futa removal option to remove gender override & apply gendered forename.
- Added 'Enforce numeric' setting to time converter options.
- Made the 'knock' button expandable with custom events.
- Made AskForSex less arousal exploitable by adding a tiny friendship requirement at lower arousal.
- Replaced Loyalty with Friendship in GetWillingness + lowered arousal bonus.
- Tweaked Info Panel Fetishes to show No even if there's developing ones.
- Made Andy's SH similar to Annette's.
- Add an index for documentation.
- Made Interaction Panel sort its categories/interactions.
- Added skill based modifier to rescheduling of MadScience.
- Made Debug NPC list use DisplayName.
- Added better support for DisplayName vs Name for debug commands.
- Added the ability to add additional execution entry points to events.
-- Currently supports three handlers that can react to lifecycle events of the engine: Game Initialized, Game Loaded (from saved file) and Event Reloaded (via debug).
-- Moved some initialization logic around to ensure that most of the other initialization is complete by the time these new event handlers are triggered.
Bugfixes:
- Fixed PD Overlay Previewer using wrong cast.
- Updated FoodDruggingAdministration + fixed its many bugs.
- Fixed SlutMaker stat checks.
- Menu sorting fixes.
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Changeroom F Spycam bugs.
- Fixed ShowActionImageProvider adding underscore to lastnameless NPCs.
- Tweaked MissingGirl to properly change virgin flag + tweaked reset.
- SwimTeam count fix + lowered gender mix requirements.
- Fixed Reloading & Debugger not implementing TriggerType changes. Closes issue #24
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Fixed multithreading being inverted on event execution check.
- Made the .pdb hide user path in release mode exceptions.
- Fixed iff conditions only working for first and final condition due to capture group limitations.
- Fixes in GetCandidates & TryForSchoolEvents.
- Tweaks to Raymund Chains:
-- Hint event. Moved one office event to classroom.
-- Btn_Call hints at next stage, reduced from 12 to 10.
-- Sherilyn fixes & tweaks.
- Lydia's phone is now available 24/7 like she claims to be.
- Fixed exception in Rooftop_Telescope & BoardDildo.
- Tweaked HypnoTraining to not end at 100 Hypno + inconsistency.
- Fixed Hypno not applying HasQuest protection, with bypass for Secondaries.
- Added missing removal of HasQuest on a few quest branches.
- Raymund chain fixes.
- Some limiting to a few events that call upon student list.
- Minor fixes in Daisy events.
- InstillLoyalty fix.
- Added Walker story knock entry & fixed traning bits.
- Fixed job slots being re-filled on location reload.
- Fixed minigames sometimes being unresponsive and VEE rendering slowing down (especially with attached debugger).
- Typos & meta tweaks.
1.10.3.4
Other:
- Moved futanari colour setting to Map's Help & Options > Advanced, instead of relying on futa fetish. Review your setting there.
- Overhauled office spycam list to be dynamic.
- Tweaked computer wallpapers to be unlockable via website hacking & expandable via Images\EventPictures\Custom\Computer\Wallpapers\
Bugfixes:
- Fixed Show Decisions & String input not accepting tabs.
- Fixed a bunch of rules using wrong min-max.
- Fixed GetCandidates not filtering properly.
- Tweaked Goth panties to show her PD instead of bugcatcher when sniffing
1.10.3.3
Other:
- Added Math event by MaskedPanda.
- InstorePorn tweak + text by Neme
- Tweaked club journals to show president if exists.
- Show Random Image in round-robin mode now chooses a random start index for each game, resulting in more variety.
- Made GetCandidates use In + Out instead of overwrite.
Bugfixes:
- Religious Studies president fix + journal.
- Fixed Class Clown event using the teacher as the boy who is misbehaving.
- Fixed missing gender replacement in SkippingClass.
- Religious studies club fix & temporary nerf.
- Fixed ExhibitionistMaleStudent event not showing images because they came after the text.
- Park Soccer fix.
- Nina Parker is now into "Risky Places" by default.
- Fixed bug where not all links may have been deleted when removing a link by using "delete" on an input link of an operation.
- Carl & April fix.
- Photoshop Chain wasn't actually doing its final adjustments, thank @UmhRshJt.
- Fixed incidental peeking in clothing store having a positive relationship impact.
- Fixed several issues with badly migrated code and internal data structure of "List Filter: Person List" and improved the autofixing to clean up existing operations.
- AprilOffice fix.
- Fixed calendar not circling dates with specified time.
- Fixed Student panel refreshing on favourite toggle when not in favourite view.
- Typos.
1.10.4.2(2023.03.05)
Bugfixes:
- Fixed layout cleanup null instead of clear.
- Fixed replacing MultiCompareBool with CompareBool.
- Made AttemptToDial check for ScheduleHandlerNone instead of slave.
- Tweaked Sports Area button to only show Cheerleader practice if they bother showing up.
- Undid accidental US locale in .exe.config from testing.
- Typo.
1.10.4.1
Other Tweaks:
- Switched Birthday related interactions to use Friendship.
- Made LayoutBed require all NPCs (instead of any) in scene to love PC for them to get in & removed sleeping mask for PC.
- Improved NotAlwaysSunny App accuracy.
- Disabled 'Prefer 32bit' to allow more ram usage in 64bit.
Bugfixes:
- Fixes to ReplaceString24h Function.
- Hopefully got the GFX settings under control by freezing & providing more cleanup routines.
-- Make sure to read the description when hovering over Settings > Gfx.
- Added BreakIn caught check to Hypno.
- Fixed shader lighting getting darker in events.
- BackgroundEvents not being saved fix.
- Carl knock exception fix.
- Moved PD cleanup from PD_Default to subs.
- Fixed GetCompletedMiniquestIDs returning the results of the previous NPC if no entries are found for the current one.
- AskFavorsNeeded delay fix.
- Typos & misc tweaks.
Developer/API changes (only relevant for mod authors):
- Switched Weather caching to DB.
- Added a CheckWeather function for checking at a specific time.
Changelog 1.10.4.0
A background event will now manage the weather state in the game, with chances to switch between "Clear", "Cloudy", "Windy", "Rainy", "Stormy" and "Snowy" throughout the day.
Not all weather conditions are visually represented at this point in time. The engine has built-in support for snow and rain.
There is a new option in Debug menu under "Global Variables" -> "Disable_Weather_Effects" that you can use to turn off the visual part of the weather, if you don't want to see it or it causes performance issues for you.
When being in an outdoor area, you may now hear rain, storm and wind sounds based on the current weather.
The volume of these effects is controlled via the separate "Ambient" volume slider, so you can disable them that way if you don't like them.
Greatly improved upon the personality archetypes in the game:
Extended the previous 5 NPC archetypes (Jock/Athlete, Artist/Creative, Nerd/Intellectual, Rebel, Royal) with 7 additional overarching archetypes (Advocate, Caregiver, Explorer, Performer, Spiritual, Trendsetter, Visionary).
For each of the now 12 overarching archetypes, added 5-8 new subarchetypes that are assigned based on the overarching archetype and one of the 8 possible personalities that an NPC can have. This results in ~150 different archetype specializations.
Asking NPCs for their hobbies will now give you a different response for each of the ~150 subarchetypes, adding a lot more variety and personality to the NPCs.
Reworked favor miniquests so you don't do the exact same 3 favors for each particular NPC archetype in the same order. Instead, a miniquest is now chosen randomly from all available quests that are suitable for a specific archetype.
Also relaxed some of the archetype restrictions for more generic favors, so e.g. everyone could now ask you for an energy drink and not just "Rebels".
Added more miniquests for some of the new archetypes. (However, it's still not enough to get at least 3 unique miniquests for each archetype, so some may have more than others.)
Denying a miniquest now prevents obtaining a new one for 2 days.
Reworked train ticket handling.
Normal tickets are now one ride per item instance. They can stack in the inventory, though.
Also added flatrate tickets with daily, weekly and monthly duration. They grant unlimited access to the train from the moment of purchase on.
No regular ticket will be consumed by the respective events while a flatrate ticket is active.
Limited train rides to the time between 5:00 and 23:15. Not enough passengers to warrant operating at night time. Daily tickets are only valid until the end of business hours on that day.
LocationLayout GFX overhaul (what you see when navigating):
Added 4 Graphic settings.
Sad GPU: Old real-time shader rendering.
High (new default): Pre-renders shaders the PD shaders.
Mid: Same + removes a few extra shader effects.
Low: Pre-renders the whole layout + disables all other shader effects.
Layout Animation Settings:
GIF + Adorner vs Adorner vs none.
Location Button settings:
Image vs static color (+optional shadows).
Added shader based lighting setting, looks a bit better than regular.
Rebalanced max loan logic to be less exploitable.
Added UI notifications to AjustMind.
SkippingClass added, a mini event chain with quite a few branches.
Other Tweaks:
Clipped old cold shoulder interaction.
Added a lazy tweak to SpycamClue to allow futas.
Moved JerimiahHelp to chat since that seems to be where all quest interactions go.
Changed several weather-specific events so that they now check for specific weather conditions by using a new FunctionLibrary event.
To make up for the stricter conditions, the Random Chance in their Try phases has been increased.
Updated the weather app to actually weather.
Moved "Wish happy birthday" from general "Chat" category to "Personal information".
Added filter to event tree in debug menu to make it easier to find known events.
Added some simpler info to the Population Parameters Doc.
Added hobby dialogue to the chat interaction for each of the new sub-archetypes.
Made AfterglowEffect more effective at preventing arousal.
Replaced some images because of reasons. Slightly altered event text in cases where the new image no longer fits the described scenario in the event.
Bugfixes:
Fixed SeqEvent_EventReloaded not having been triggered up till now. This operation is intended to allow events to add init/cleanup steps for cases where the events are added/reloaded to an already started game.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
Fixed some bugs where some of the "Random Split" replacements were creating the wrong operation to replace with, and the operations also did not link up all original output links in the replacement process.
Fixed wrong interaction category selection due to sorting + improved selection accuracy.
Fixed all the broken image metadata from a faulty replacement (whoops).
Fixed AprilClass & AprilOffice exception & scheduling.
GetAdjucentLocations function: No longer returns locked locations without a key.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
February 29 birthday wish fix.
MaleChangingRoom Spycam fixes.
PTA meeting tracker fix.
Typos, journal improvements, misc tweaks & fixes.
Fixed Debug > add/set time not rendering layout.
Upskirt fix, tweaks to CarlStart & PhoneNumberAsk.
Made layout hijack autosaving since event driven UI Button Waits don't trigger it, also allows rendering the scene before saving.
Tweaked switching from frontend mod tab to properly reload relevant files.
Swimmingpool layer fix & extra layer optimisations.
Fixes in MadScience, AprilPhone, BreakInMain.
Added back chat interaction with Susan Hooter where you can ask her about Peter. Was missing from previous migration of generic chat event to individual interactions.
Fixed missing link in Init_FertilityCycles (previously missing in Init_SocialProfile).
Added OOM failsafe attempt on saving.
Fixed bad caret indexes in ShowDecisionsNumeric insert.
Fixed inverted link in ShowActionImageFilter & relaxed 'no tag' to be treated as the same priority as 'Student/Adult' tags.
Fixed missing link in SetHonorificDict & missed MadScience survive state.
Updated Template scenario to a 'working' order (maybe).
Made game generate default folders for each scenario.
Fixed quirks with scenario change while in char creation.
Fixed "HSVColorComponent" Op passing bad Hue.
Fixed "LayerTransforms" Op using wrong keys + fixed offsets.
Improved age adjustments to take days and siblings into account.
Tweaked Annette & Andy's birthdays to be 9 months apart.
Fixed AssetBrowser filter not actually working and letting everything pass.
Fixed Dev Tool "Find Image References in Events" being broken at least since the conversion to C#.
Developer/API changes (only relevant for mod authors):
Implemented Background Events. They also come with a new "Events\BackgroundEvents\" directory to keep things tidy.
These events are scheduled via Cron expressions using the new "Add Background Event Schedule" and "Remove Background Event Schedule" operations instead of the regular event scheduling operations.
It's perfectly good practice to use the new "Game Initialized" event entry points to let these events schedule their own execution.
They are executed by the engine at all points in time described by the Cron expression, and without any Try-phase checks. No latent operations are allowed in background events.
Their execution does not count as part of the regular event execution, so a regular event can still be encountered in the same slot when passing time and a background event was executed.
Unlike regular events, background events will trigger exactly at the point in time they were scheduled for.
Regular events would wait for the full specified amount of waiting time (e.g. 30 minutes, 60 minutes, etc.) to have passed first and then check the event execution.
The purpose of background events is to perform operations and tasks in the background without interfering with the player's actions.
For example gathering data, updating certain NPCs, precalculating stuff. But the more frequently your background event is being run, the more lightweight it should be in terms of performance.
Added new "Random Split (Weighted)" operation.
The old one has been visually renamed to "Random Split (Weighted Vars)", but still has the same internal name for serialization purposes.
The new operation holds its weights internally and allows to set them via property window, rather than linking up variables.
This makes it more compact and easy to use in all cases where the random weights are static and don't not intended to be changed at runtime.
For ease of migration, the "Replace Object" menu option can initialize the internal weights of the operation from the values of the linked Double variables of the old "Random Split (Weighted)" operation.
For this to work, the containing VisualEvent is now passed to the method signature of the ReplaceObject function.
The engine now supports rendering of built-in snow and rain effects, which can be controlled via events using the new "Weather Effect" operation.
The previous GIF-based overlay has been removed, since it could lead to high CPU and GPU usage in places with many paperdolls and shaders.
Increased the arbitrarily chosen maximum possible connectors for some operations like "Show Decisions", "Set Int/Double Directly", "Constant Split".
Also improved the property windows of these operations, so things don't become unusable with high connector numbers.
Added "Set String To" operation, which works the same way as "Set Int To" and "Set Double To", but for strings.
Intended usage is only for short one-liners that don't require spellchecking, text preview or line break support. More sophisticated stuff should just use the regular "Set String" with a variable.
Added support for multithreaded debugging & improved a few things:
Debugger will no longer jump between events unless it has to.
Pause Icon on currently debugged tab.
Debugger title now shows runner chain.
On Next Step breakpoint hangs onto its Op instead of vanishing, to indicate need for user input if there is one.
Person Relationship Database operation should now be able to handle other data types than Integer via link variations.
Internally, the DB functions now accept and return object instead of int. The VEE operation will attempt to convert the result based on the type of the linked variables.
UI notifications are still supported for changes to numeric values. The operations will attempt to interpret the current value as numeric and fallback to 0.0 if it cannot be parsed as a number.
Added tags to status effects and VEE operations to go along with them.
It's possible to check whether a person has effects with a specific tag or combination of tag.
It's possible to remove one or all effects with a specific tag or combination of tags.
Updated archetype and personality effects to have matching tags.
Added GetContentFiltered function for getting candidate combos adhearing to gender filters.
Added the new ModInfo fields to Modules, with a simple missing dependency indicator.
Added "Add Custom UI Notification" operation for... adding custom UI Notifications.
Added FontAwesome support in event text.
Added search filter to "Get/Set Property by Name".
Added missing ScheduleHandlerAwakeIndicator StatusEffect to go along with the Asleep ones.
Added new "Split String" operation, which splits a string into a string list. This can be more straight-forward in certain cases than using a "Split String Iterator".
Tweaked "StringReplace" Op to use Regex Groups if both Replacement and Replace are regex vars.
Fully deprecated LocationLayout floor layers, in favour of VEE applied leg removal shader (less RAM use).
Moved PD Layer cleanup into a Function for easier future adjustment.
Added an experimental "Get All Paper Doll Layers" Op to aid PD automation tests. Subject to change.
Added relative ranking to PaperdollLayers.
Changelog 1.10.3.5
Other:
- Overhauled working at the restaurant to give an oppurtunity to drug customers.
- Added a rep hit to monthly RSD report if in negative money, in exchange for emergency funds.
- Another attempt at state funding balance based on some feedback.
- Updated the Map's futa removal option to remove gender override & apply gendered forename.
- Added 'Enforce numeric' setting to time converter options.
- Made the 'knock' button expandable with custom events.
- Made AskForSex less arousal exploitable by adding a tiny friendship requirement at lower arousal.
- Replaced Loyalty with Friendship in GetWillingness + lowered arousal bonus.
- Tweaked Info Panel Fetishes to show No even if there's developing ones.
- Made Andy's SH similar to Annette's.
- Add an index for documentation.
- Made Interaction Panel sort its categories/interactions.
- Added skill based modifier to rescheduling of MadScience.
- Made Debug NPC list use DisplayName.
- Added better support for DisplayName vs Name for debug commands.
- Added the ability to add additional execution entry points to events.
-- Currently supports three handlers that can react to lifecycle events of the engine: Game Initialized, Game Loaded (from saved file) and Event Reloaded (via debug).
-- Moved some initialization logic around to ensure that most of the other initialization is complete by the time these new event handlers are triggered.
Bugfixes:
- Fixed PD Overlay Previewer using wrong cast.
- Updated FoodDruggingAdministration + fixed its many bugs.
- Fixed SlutMaker stat checks.
- Menu sorting fixes.
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Changeroom F Spycam bugs.
- Fixed ShowActionImageProvider adding underscore to lastnameless NPCs.
- Tweaked MissingGirl to properly change virgin flag + tweaked reset.
- SwimTeam count fix + lowered gender mix requirements.
- Fixed Reloading & Debugger not implementing TriggerType changes. Closes issue #24
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Fixed multithreading being inverted on event execution check.
- Made the .pdb hide user path in release mode exceptions.
- Fixed iff conditions only working for first and final condition due to capture group limitations.
- Fixes in GetCandidates & TryForSchoolEvents.
- Tweaks to Raymund Chains:
-- Hint event. Moved one office event to classroom.
-- Btn_Call hints at next stage, reduced from 12 to 10.
-- Sherilyn fixes & tweaks.
- Lydia's phone is now available 24/7 like she claims to be.
- Fixed exception in Rooftop_Telescope & BoardDildo.
- Tweaked HypnoTraining to not end at 100 Hypno + inconsistency.
- Fixed Hypno not applying HasQuest protection, with bypass for Secondaries.
- Added missing removal of HasQuest on a few quest branches.
- Raymund chain fixes.
- Some limiting to a few events that call upon student list.
- Minor fixes in Daisy events.
- InstillLoyalty fix.
- Added Walker story knock entry & fixed traning bits.
- Fixed job slots being re-filled on location reload.
- Fixed minigames sometimes being unresponsive and VEE rendering slowing down (especially with attached debugger).
- Typos & meta tweaks.
Changelog 1.10.3.4(2022.10.12)
Other:
- Moved futanari colour setting to Map's Help & Options > Advanced, instead of relying on futa fetish. Review your setting there.
- Overhauled office spycam list to be dynamic.
- Tweaked computer wallpapers to be unlockable via website hacking & expandable via Images\EventPictures\Custom\Computer\Wallpapers\
Bugfixes:
- Fixed Show Decisions & String input not accepting tabs.
- Fixed a bunch of rules using wrong min-max.
- Fixed GetCandidates not filtering properly.
- Tweaked Goth panties to show her PD instead of bugcatcher when sniffing.
1.10.3.3
Other:
- Added Math event by MaskedPanda.
- InstorePorn tweak + text by Neme
- Tweaked club journals to show president if exists.
- Show Random Image in round-robin mode now chooses a random start index for each game, resulting in more variety.
- Made GetCandidates use In + Out instead of overwrite.
Bugfixes:
- Religious Studies president fix + journal.
- Fixed Class Clown event using the teacher as the boy who is misbehaving.
- Fixed missing gender replacement in SkippingClass.
- Religious studies club fix & temporary nerf.
- Fixed ExhibitionistMaleStudent event not showing images because they came after the text.
- Park Soccer fix.
- Nina Parker is now into "Risky Places" by default.
- Fixed bug where not all links may have been deleted when removing a link by using "delete" on an input link of an operation.
- Carl & April fix.
- Photoshop Chain wasn't actually doing its final adjustments, thank @UmhRshJt.
- Fixed incidental peeking in clothing store having a positive relationship impact.
- Fixed several issues with badly migrated code and internal data structure of "List Filter: Person List" and improved the autofixing to clean up existing operations.
- AprilOffice fix.
- Fixed calendar not circling dates with specified time.
- Fixed Student panel refreshing on favourite toggle when not in favourite view.
- Typos.
Changelog 1.10.3.1(2022.10.04)
Bugfixes:
- Fixed photoshop assignment button not appearing at home computer.
- Fixed Sherilyn auto-enlisting due to old property.
Changelog 1.10.3.0
Notable Changes and New Stuff
Start of the Raymunds chain & generic events by MaskedPanda.
Fixed most of the generic Yaoi events + added a few.
Start of April's chain.
Start of Max's chain.
Start of Sherilyn's chain.
Start of rewriting of Walker chain.
Jerimiah Sanderson chain.
Made Smartphone Contact Notes (RelNotes) read Info Panel data.
Added alternative sorting to student Management Panel.
Added GenSex, Fetish & Global Info Panel tabs.
Added chat event where you can ask people about their fetishes.
If they like/trust you enough or are uninhibited/lusty enough, they will tell you about their most significant likes/dislikes (above a threshold of 50).
The game will remember for each NPC which fetish you already talked about. You also cannot ask more than one fetish per day.
If the NPC's opinion about a fetish changes significantly enough from what they previously told you, they can give you an update on their new view.
All extension library events for the individual fetishes currently use a generic placeholder event.
Each should at some point be fully fleshed out, with different branches based on gender, sexual orientation, dominance/submissiveness and past activities and perhaps even player decisions.
Each event should give insight into what the NPC thinks the fetish is about and why they like/dislike it. But that's a lot of work, so it might come gradually over time.
Other tweaks
Made CreatePerson obey its template's clamping.
Smartphone:
Calling now shows a visual for the contact like some of the other menus.
Unified contact categories a bit more, and added class/other student categories.
Improved the Wallpaper App, is now easily expandable (just add images + meta).
Tweaked info panel to use a ScrollViewer.
Made GlobalVariables keep their value on reload.
OneAmongMany's subject tweaks.
Tweaked starting funds & made bigger schools a lot more viable.
Starting funding will be a bit tighter until 150 students.
Developer/API changes (only relevant for mod authors)
Added additional operations utilizing Cron expressions.
Find Next Cron Occurrence.
Date Satisfies Cron.
Added separate documentation to outline how Cron expressions work.
Added link variations to "Set Next Schedule" and "Set Remote Schedule" to pick different types of variable links.
Regular "Days offset" like usual.
A "Cron expression", which is a string variable that specifies eligible points in time and the next valid time is used by the event.
A "Calendar datetime", that simply uses a Date variable to provide the point in time when the event is supposed to run.
Text Tags:
Event variables and global variables can now be inserted via tags in text replacement processing.
Text replacement processing now also has a new {if=...;then=...;else=...} tag for conditional text passages.
Text replacement now supports nested tags in {Gender:...} and {if=...} by repeating the replacement process up to 10 times. Closing brackets of nested tags should be escaped via \}.
Added additional text replacement tag {iff:condition=(MathExpression1);result=Hello World|condition=(MathExpression2);result=Hello New World|...} to allow the checking of arbitrary numbers of conditions with individual replacements.
The text of the first fulfilled condition will be used.
Added new Math Expressionoperation that uses the mXparser library to allow event creators to write complex mathematical expressions that follow established rules and use built-in functions of the library.
Math expressions now support the custom constants "True" (1.0) and "False" (0.0). This makes it possible to insert string representation of boolean variables into the math expressions and have them work without a hitch.
Smartphone overhaul:
Main menus can now be added without editing the UI_Button (events in ExtensionLibrary\Smartphone).
Mostly uses a tweaked version of the category function.
Each menu is responsible for its own structure (can make use of helper functions).
Phone Contact menu:
Its sub-menus are also dynamic now (events in ExtensionLibrary\Smartphone\PhoneCall).
Computer Overhaul:
Menu now dynamically pull events from ExtensionLibrary\Computer instead of using a hardcoded list.
Was likely intended to happen at some point, as the structure was pretty streamlined already.
OnlineDelivery allows custom deliveries so long as they stick to its logic.
Hack a Website is expandable.
SearchPorn can optionally pull images from Images\EventPictures\Computer\SearchPorn\
Added String Preview default replacements to VEE. Allows seeing the results of default person keyword replacements.
Added keyword replacement info to string inputs.
Added Ordinal sort to SortStringList.
Replaced SetBirthdayState with a variant that can Set Get and Wish, as part of gendered name fix.
Added value injection to existing Info Panel tabs via ExtensionLibrary.
Additional events in the panel's respective folder can add/edit existing values.
Bugfixes
Around 200 typo fixes.
Improved location reload.
Fixed AsyncNativeEvents rarely hanging UI on Object Reload.
Fixed GlobalString draw fail on default value.
Fixed ShowDecisions tag insert buttons always inserting at start.
Fixed image provider tag sorting & wrong image tags.
Clipped an event that was meant to be clipped + added a missing image path.
Fixed EventProperties returning null strings, causing regex compare to throw exception.
Made strings remember UserFacing on clone, Variables remember SurvivesReload.
Fixed some visual issues in Student Management Panel.
GetSubjectOfPerson break exception fix.
Fixed PantyMagic errors.
Fixed FirstCouncil.
Fixed Interaction_KeepGoing + added a simple function for it & added it where it made sense.
Misc logic & missing link fixes.
OnsenStudentMed missing link fix.
CosplayClaire clone wars fix.
Voyeurism 4 & Onsen fixes/tweaks.
Ward Measurement & Exhibition Meeting fixes.
InfoPanel rounding fix & SPE GenSex fix.
OnlineDelivery failsafe & typos.
Computer & Laundry exception fix.
Changelog 1.10.1.2
Bugfixes:
- Hooters Journal.
- Lowered exhibition club event female requirements.
- Another issue in SetEffectOnObservers.
- SexCheck issue (found in AnnetteCasual).
- Tweaked UI not being suppressed for AddSkillWithLimits' set. Making it look like you're losing skill levels sometimes.
- Special template age fix.
- MissingGirlStart fix.
- Added updated InfoPanel override file + GenSex fixes to template.
- Issue with Age context replacement.
- Typos.
VEE:
- Added heuristic to determine the probable type of a SeqVar_Object based on the variable links of connected operations and flag potential cases where a variable is used in multiple operations with incompatible types.
- VEE's ErrorCheck output can be double-clicked to jump to ID.
Changelog 1.10.1.1
Emergency fix for previous update, which was meant to be named 1.10.1.0 (fixed that too). It's just a few files, harmless to reload from previous patch on existing saves.
Edit: Now also contains the emergency fix to AM/PM converter.
Changelog 1.10.1.0
Changes:
- Some new events by malorn, shilo, OneAmongMany (the 2 mods), plus some reworks by malorn, me, Ame.
- Slight chemistry rebalance. GenSex rep hits are potentially fixed.
- Game start 'end goal' selection (new game only), only the choice is implemented.
- Object and Event Reloading now potentially won't massively break existing saves (I give it a solid 50-50).
API:
- GenSex support for after sex events (CustomPostSexEvents folder).
- Show Random Image - Round Robin mode.
- Op to obtain the number of times a subjects has been taught.
- Layer Transform Op for simple PD layer transforms (resize, offset, rotate).
- Int++/-- on a Double/Integer in random mode sets it to a random value first and disables random mode (old mantis request).
- Person Age has a Set option (respecting MinAge).
- SpecialCharacters:
-- Now use their Template for Min/Max clamping of Age, BodySize, Height. No template defined default to special gender+type template.
-- Age field defines their birth year relative to scenario (if specified) start.
-- CustomForename supports {Random}, CustomLastname supports {Random} and {PrincipalLast}. {Random} will pick from their template's name list, not guaranteed unique.
-- Can be reloaded.
- FunctionLibrary events for converting 24h time to cultured (used only by journal and calendar notes atm).
-- To change ingame clock to 12h edit hhs+.exe.config CultureInfo field to en-US or en-AU.
-- If done before new game function will auto-select settings, otherwise they can be further adjusted in the Map settings.
Event Reloading + VEE
All old events will be put in Legacy mode. In which, variables meeting the following conditions will attempt to keep their value on event reloading:
- Non-@FullReload, Non-constant, non-Object, non-Object List, non-userfacing + (has comment OR attached to non-readonly Op OR is referenced in same/external event OR is global var (see further down)).
Manually changing the variable's persistance state in VEE, or making a new event, will disable Legacy mode.
- In regular events, only variables marked as 'Survives Reload' will attempt to keep their value on reloading events. Done same way as setting an Op breakpoint.
In either case:
- Variables attempting to survive will use matching by ID to find their old values.
-- There's now a way to fix IDs if mistakes are made (variable deleted etc).
- Casting between same types (exact, or compatible types like numeric) is allowed (at own risk).
- Global variables can also attempt to 'survive' if the old event had a regular variable for that ID (must be exact matching type, like Int > Int).
-- Intended for backward compatibility when switching over to globals.
- Ctrl+Shift+Click resets the reloaded events to file state (scheduling included), like in old days.
Bugfixes (messy notes cause there's much more, but bleh):
- Extra layers for nighttime in PC's house to layouts.
- Hopefully tracked down remaining hardcoded dates in the scenario.
- Removed a weird check that prevented the Hooter chain if Susan's HasQuest got removed.
- Info Panel not updating 'Told to seek love', 'Address', VEE override issue with dupes, etc fixes.
- Make mod Paperdoll Layers refresh on loading a save, current workaround: Enable the mod before loading a save in main menu.
- Extra layers (furniture) sometimes sticking on loc transitions. Maybe fixed, not sure because for some reason things started performing so well I can't see it anymore...
- Sierra sex events had inverted GiveReceive logic on most branches.
- Fixed slave outfits.
- Fixed 'Are you single?'
- Saving the Database breaking if a table is dropped.
- GetFamilyHome exception fix (though it shouldn't happen to begin with, unless an NPC got renamed).
- TBBle's reports.
- More panel tag fixes.
- Age clamping broken for grandparents & in general.
- Music Classroom & Sleepy Estate layout fix.
- PJ breast colours.
- Miniquest delays.
- Chemistry intros not having/clearing notes.
- Bunch of Template fixes.
- BeachMEFuta & AskAboutSchoolDressCode fixes.
v1.10.0.3:
Changes:
- Some new events by malorn, shilo, OneAmongMany (the 2 mods), plus some reworks by malorn, me, Ame.
- Slight chemistry rebalance. GenSex rep hits are potentially fixed.
- Game start 'end goal' selection (new game only), only the choice is implemented. Currently has no effects, but showcases future plans for different playstyles.
- Object and Event Reloading now potentially won't massively break existing saves (I give it a solid 50-50).
API:
- GenSex support for after sex events (CustomPostSexEvents folder).
- Show Random Image - Round Robin mode (currently always starts at first index, but will likely use a random start index in the future).
- Op to obtain the number of times a subjects has been taught.
- Layer Transform Op for simple PD layer transforms (resize, offset, rotate).
- Int++/-- on a Double/Integer in random mode sets it to a random value first and disables random mode (old mantis request).
- Person Age has a Set option (respecting MinAge).
- SpecialCharacters:
-- Now use their Template for Min/Max clamping of Age, BodySize, Height. No template defined default to special gender+type template.
-- Age field defines their birth year relative to scenario (if specified) start.
-- CustomForename supports {Random}, CustomLastname supports {Random} and {PrincipalLast}. {Random} will pick from their template's name list, not guaranteed unique.
-- Can be reloaded.
- FunctionLibrary events for converting 24h time to cultured (used only by journal and calendar notes atm).
-- To change ingame clock to 12h edit hhs+.exe.config CultureInfo field to en-US or en-AU.
-- If done before new game function will auto-select settings, otherwise they can be further adjusted in the Map settings.
Event Reloading + VEE
Bugfixes (messy notes cause there's much more, but bleh):
- Extra layers for nighttime in PC's house to layouts.
- Hopefully tracked down remaining hardcoded dates in the scenario.
- Removed a weird check that prevented the Hooter chain if Susan's HasQuest got removed.
- Info Panel not updating 'Told to seek love', 'Address', VEE override issue with dupes, etc fixes.
- Make mod Paperdoll Layers refresh on loading a save, current workaround: Enable the mod before loading a save in main menu.
- Extra layers (furniture) sometimes sticking on loc transitions. Maybe fixed, not sure because for some reason things started performing so well I can't see it anymore...
- Sierra sex events had inverted GiveReceive logic on most branches.
- Fixed slave outfits.
- Fixed 'Are you single?'
- Saving the Database breaking if a table is dropped.
- GetFamilyHome exception fix (though it shouldn't happen to begin with, unless an NPC got renamed).
- TBBle's reports.
- More panel tag fixes.
- Age clamping broken for grandparents & in general.
- Music Classroom & Sleepy Estate layout fix.
- PJ breast colors.
- Miniquest delays.
- Chemistry intros not having/clearing notes.
- Bunch of Template fixes.
- BeachMEFuta & AskAboutSchoolDressCode fixes.
v1.10.0.2 Hotfix:
Small bugfix package since I'm away a few days:
- Info Panel button + offset improvement.
- Info Panel now shows actual stats instead of debug ones. Also fixed some Database tags.
- Old Player Info hover removed in favour of Info Panel (due to customisability).
- Reloading locations and clubs keeps event IDs, but all other data is currently still reset.
- Fixed rare bug with Error Check exception/hang-up.
- Made Error Check lock buttons to prevent collection change.
- Fixed Wardrobe sending you to the void (removing Map buttons) when it detects an error.
-- However this one is optional (if you've never experienced that then you're unlikely to), as it will reset your wardrobe settings.
-- Delete FunctionLibrary\PCAppearance\ wardrobe file if you don't want it.
v1.10.0.1 Hotfix
Umgah's Hypno fix.
Info Panel wrong flirt fix.
Breakin 'knock' fix.
Left side of shopping panel being empty fix. Means you can now sell special items if they're tagged wrong, so careful just in case.
v1.10.0 Release
This is the full 1.10 release, no longer a beta. That doesn't mean it's bug free, in fact, there's a lot of new features that need testing.
However, we're leaving 'beta' in hope of stabilizing this build with bug fixes as the final 1.10 version. So no more massive changes any time soon.
Due to a move from SVN to Git, the versioning format changed - we will no longer use the Revision (commit) number.
1.10.0.0 is the first public release version of 1.10.
1.10.1.0 would be the first minor update that may change some features.
1.10.1.1 would be the first patch release for that minor update, because we noticed some bug that required immediate fixing.
If you're hoping to see new story progression since the 1.10 beta... I'm sorry, but this update is mainly big engine changes and new features, aimed at easier expansion of content/mechanics and at mod/event authors.
We've lost contact with the people working on the event side (plus a few on engine side) when the site went down.
And since no new writers have expressed interest in assisting, the progress on that end will be very slow at best. This doesn't mean there won't be updates and fixes, just no 'content'.
Lots of events have been reworked, code cleaned and/or typos fixed, etc.
Stand out items (i.e. things to specifically look for) are noted below
For the complete list of all changes and fixes see the game's Docs\Changelog folder.
Notable Changes and New Stuff:
UI notifications for stat changes
Official modding framework
Global variables
New population generation system. Gives more control over how/what kind of NPCs are generated.
Custom Paper Doll Layers - the PD system is now less hardcoded and easier to automate/expand.
The game only uses it for small things currently, this is mainly something for modders to play with.
Pixel Shaders - allow manipulation (like recoloring) of PD layers and images. Has predefined shaders and also allows use of custom shaders.
Location Layouts (aka LookAround V3) - allows showing PDs on location, and conditional backgrounds by providing simple Layout.xml definitions.
Info Panel - when enabled provides some info about the NPC you're interacting with, like relationship.
More details are available in the official release thread.
v1.10.0 SP1-SP4
Added some additional Teacher trait checks, some revised teacher room handling (it is now possible to assign a teacher their own office), and made it so that teachers are assigned to the teacher room at the start of classroom assignments (to hopefully prevent double-booking classrooms due to any old assignments). Additionally, added the new teacher office traits to the existing Teacher Room location.
----
The razor item events now only mark a single item instance as used. Additionally, the Shave button event now preferentially looks for used razors before using a new razor.
----
Altered the "Add To Dictionary" operations to have add/remove input links, and be retitled as "Modify Dictionary"
----
Reorganized some operations in UpdateStudentCount.ve.xml to prevent first-day enrollment of ScheduleHandlerNone NPCs.
Fixed an incorrect variable link in Ward/Measurement.ve.xml
----
Added some instantiation checks to various text replacement dictionary functions.
----
Revised the SPE chain a bit. It should now be easier to open (no school-wide Lust requirement), the Computer Lab upgrade event is now non-random, and the journal will show up (under "Computer Room") before the club is opened to guide players towards what needs to be done.
----
Added a new set of status effect modifiers, which multiply the current value of a stat (allowing, e.g., +20% Lust)
v1.10.0 SP1-SP3
updating the listing of rule groups within the file editor to reflect changes in code revision #2362.
----
Corrected "wardrode" instances to "wardrobe" (exception: filenames)
Tweaked the logic in FunctionLibrary/Spycams/ChangingRoom.ve.xml to avoid pulling an object from an empty list.
Fixed some text replacements in Classroom Shared/RainSoaked.ve.xml
Modernized Ward/BreastExamLez.ve.xml
----
Removed the Ginny Nightshade requirement from SPE Club's start event. She is not specifically mentioned anywhere in the event, has no obvious connection to the club for players, and this seems like the most-likely cause of players reporting an inability to trigger the event.
----
Removed hard-coded NormalSchool paths in image references.
----
Added a tweak so that Add Person Stats With Limits will now ignore the effects of AddStatValue, MinStatValue, and MaxStatValue status effect modifiers, resulting in more accurate caps.
----
Stripping had an error which caused lust gain regardless of giverecieve settings.
----
Correction to seteffectsonobservers, giverecieve was set incorrectly.
----
Consolidated a number of Location-based operations into two: Person Location, and Location String, each of which have a number of link variants. Also includes an update to trait handling which will allow for automatic enrollment/expelling of students as they gain or lose the Enrolled and Expelled traits.
----
Fixed a bug where Subject Experience's Set input was adding instead of setting. Also includes DasBrain's fix of Set Object List, resolving a bug where it didn't actually activate its output link.
----
Fixed some missing connections within VirginAsk that could cause the event to end prematurely.
----
Added a LinkVariation for the Get Student's Class operation which returns the class's current classroom. If no class is currently in session, the result will be Nothing.
----
Revised Person.AddTrait(), Person.RemoveTrait(), and Person.ValidateTraitList() so that adding or removing the "Enrolled" trait, or adding the "Expelled" trait, should perform all required actions to enroll or expel the student.
----
Use event schedule to determine if the PA system has been build.
Allows for easier updating of the relevant events.
Fast Schedule Check should improve performance a bit.
----
Use HasQuest instead of special for candidate selection.
----
Added a new set of interactions to arbitrarily mark and unmark NPCs as favorites.
----
Added additional rule effect person groups. Also simplified the logic a bit.
New list of groups: Principal, All, Student, Detention, Rogue, Parent, Teacher, Staff, OtherChild, OtherAdult
----
- Added some additional debug info to the Profiler tab.
- Added ability to explicitly set thread pool size via command line arguments "-threadPoolMin" and "-threadPoolMax".
----
Add a quest filter to the PA system.
----
Altered SeqAct_HaveSex so that Nothing is a valid second person object, to allow for more intuitive setups for masturbation calls.
Revised UpdateStudentCount so that it now *favors* minority genders in the calculations instead of *requiring* them; this way, it still shifts towards gender equality, but not so harshly as before.
Fixed a few bugs (mostly resulting from me being an SQL noob) in VirginAsk.
Replaced the SetPersonContextDict calls in BeachGirls with Text Replace (Person Context) operations; they were totally unnecessary for the event, since it never has the secondary girl talk and never uses the other features, and just needlessly added complexity.
Added a Nude Uniform check to RoofNude, removed the Event Is Scheduled check since it has fast scheduling check enabled.
Reordered operations in SwimTeamCoach to avoid a null reference for the secretary.
Tweaked AndyNight so that it will work even without the included engine update.
Added a missing text replacement tag closing bracket in Visit_BethManiliBoyfriendCheated.
----
Massive overhaul of VirginAsk. It now uses engine-level database tags to catch any sex interactions regardless of source, handles all genders, and has special penalty routes for asking people with whom you've had all possible types of sex. Additionally, the over-asking penalty has been changed from an absolute number of times to instead be based on re-asking during the same day.
----
Fixed a logic error in AskAboutParents.ve.xml, where the wrong parent was being checked before branching.
----
Enable Mods by default.
----
Fix Teacher Bondage uniform.
v1.10.0
One of the goals of this release has been polishing up the existing content and introducing a general framework for certain gameplay mechanics, so they appear more coherent and balanced in terms of gameplay.
There have been over 1000 commits with changes to content alone, over the course of several years.
- Lots of events have been reworked, code cleaned and/or typos fixed, etc.
- Stand out items (i.e. things to specifically look for) are noted below
- For the complete list of all changes see: https://chat.henthighschool.com/channel/hhsplus
- For the list of addressed issues that were reported via the bugtracker see: https://www.henthighschool.com/hhsplus/bugs/changelog_page.php?version_id=59
Notable Changes and New Stuff
-----------------------------
- UI notifications have been added to show individual changes in the stats, skills, properties and relationship trackers of NPCs that are part of active events.
We feel that this drastically alters the gameplay experience and improves the sense of agency of the player. There are many sophisticated VEE operations related to controlling this. Details are further below.
- Global variables have been introduced as a mechanic in preparation of a future modding framework.
- Panty Thief Paperdolls (not yet used)
- New Hardman events in Ward
- Rework and new content in Underwood quest line
- Many reworks and improvements by Malorn (Annette, general school and interactions, beach, swimming)
- Cleanup of rules (removed outdated parts, adjusted balancing)
- Reducing image file size
- Tagging images correctly
- New PTA decisions (sex machines, affection at pool)
- New background music available for selection
- New enrollment mechanics
- Balancing update to school events
- Lactation drug (and paperdoll effects)
- Custom calendar notes creation/editing
- Bunch of new “apps” on the phone
- Neglected lovers
- Evolution of Get Physical - now called General Sex
- Hypnosis now supported for female PC
- Futas are shown in light green on the people list if you know their gender.
- Improved visibility of favorite characters by adding a star before their name on the person list of the current location.
- Added a new game option to remove HasQuest from all characters. Tester feedback showed that this feature is not universally liked, since it may spoil the discovery aspect.
UI Notifications
----------------
- Added UI change notifications for operations: "Person Stats", "Person Stats by List", "Add Arousal by Fetish", "Person Body Sizes", "Have Sex", "Perform Intercourse", "Person Skill"
- Fixed notifcation for groups showing the sum of the change instead of the average.
- The Scenario Config has a new property that determines whether the notifications are enabled or disabled by default. The event may still explicitly override that property with the mentioned operation.
- UI notifications are never shown for event hierarchies that were not originally started in their Execute phase.
- Started work on grouping stat change notifications from multiple persons and operations.
- Added operations to control the gathering and grouping of UI Change Notifications.
- Added operation to add a list of persons to a UI Change Notification Group.
- Fixed grouped notifications being shown for every person of the group, rather than just once at the end.
- Grouped notifications now show the number of people in the group.
- Sex Toy objects are now exempted from showing change notifications.
- Gathered notifications are shown automatically on passing time now.
- A flag in the scenario config now controls whether notifications are gathered by default or not.
(Note: When gathering notifications, "Person Stats by List" will currently record the changes for each person individually if no group name has been set yet. This is due to how that operation works and might actually be intended in some use cases.)
- Person Stats by List now implicitly adds affected persons to a group named "People" when changing their stats and gathering is enabled.
- "Person Stats by List" operation will now attempt to use the comment of the linked Object List variable as group name for the stat notifications.
- "Add to UI Change Notification Group" now has an optional variable link to specify the group name. If not set, it will use the name from the current event execution.
- Removed the "Change" from the names of "UI Change Notification" operations for brevity. They still conceptually refer to notifications about changes, though.
- Stat and Skill notifications can now define their increment/decrement colors in the XML definitions.
- Stat notifications can now define whether they are shown for all characters, players or NPCs only or not at all in the XML definitions.
- Notifications for NPCs are now shown under the location label, rather than the occupands table.
- Prevented player character from ever being added to notification groups.
- If a notification group only consists of a single person, it will just use the notification display for single persons (but still using the group name specified for the group instead of the NPC's name) instead of showing averages and the number of affected NPCs.
- "Add to UI Notification Group" operation now has a link variation to replace the Object List variable link with one for Object variables, so the operation can now also be used to add individual persons directly.
- AddToUIChangeNotificationGroup now supports link variations for objects and object lists at the same time.
- Added separate operation SetUIChangeNotificationFakeName to set the fake name for notifications for a single person.
- Reverted previous change so that group names are now also used, even when there is just a single person (in which case it still drops the "avg." part).
- Fixed notifications using the real person Name instead of the Display Name.
- Notifications should now honor the value of the UINotificationVisibility specified in the stat and skill definitions.
- Notifications are now invoked directly by the queue's worker thread instead of creating a new work item for a threadpool first.
- Improved clarity of text when showing relationship notifications.
- If a grouoed relationship notification is from exactly one person to another, it will show the target's name instead of the number of affected relationships.
- Added notification history.
- Fixed duplicate history entries being created for single NPC notifications.
Global Variables
----------------
- Added dedicated system for global variables. In order to make use of a global variable, it must be added as XML file to the new "GlobalVariables" folder. A new file editor tab helps with that.
The old version with Reference Variables still works, but preferably this new version will be used from here on out for global stuff and the references only to refer to variables inside the same event.
- Added new tab to debug panel to view and edit the values of global variables.
- Added DisplayMode property to global variable definitions. It's currently used only in combination with global integer variables, where you can specify that the value should be shown and parsed as bit field instead of a regular integer.
- The property form for assigning global variables will now show an edit button to open the regular property form for that variable type if opened via the Event Debugger.
- Added the ability to create global variables from the editor.
- Added the ability to "reload" global variables. Currently it only adds new global variables.
Modding Framework
-----------------
- Merged mod framework from feature branch to trunk. It is still disabled by default and uses an implementation instead that only uses the base game folder structure.
- Added the directory where mod folders are meant to be kept.
- Changed additional file system operations to properly use the modding framework.
- Common FileManager functionality was extracted into an interface and the ModFileManager is no longer a subclass of the BaseGameFileManager.
- Changed code in several places to now use file paths relative to the current scenario root folder instead of relative to the game directory.
- There is still built-in backwards compatibility for resolving the legacy paths, but they should not be used anymore to allow for proper modding support.
- Removed explicit mention of "Schools\NormalSchool\" in XML files, in accordance with the new code.
- Fixed some issues with the order in which resources from mods were resolved.
- Fixed resources from mods having a leading backslash when getting their relative path.
- Moved FrontendWindow to a subfolder and extracted the UI for the Mods panel to a dedicated user control.
- ModInfo.xml from mod directories is now used to display additional information about the selected mod in the Mods panel.
- ModInfo now has an additional property for the TitleImage to display in the UI.
- Added a button in the Mods panel to check all currently active mods (but not the base game) for errors.
- Savegames now include their mod configuration and restore it when loading the savegame.
- The active mod configuration can now be edited via a tab in the debug menu.
- Added a new feature to the Mods menu to list all files that are overridden by files from a mod, as well as all files in the mod that get overridden by other files.
- Related Events tool now properly handled events from active mods.
Other tweaks
------------
- FontAwesome icons can now be used with event decision buttons by writing the "fa-iconname" tag at the start of the decision text.
- Windows created from the Frontend now appear on the same monitor as the Frontend.
- Accounting tab now shows net profit/loss as dedicated row in the list and has a description.
- Shopping and Trading forms now have an additional button for convenience to buy/sell exactly one item.
- Shopping and Trading forms now remember the last picked amount for buying/selling per item. (Based on the item's display name.)
- Chat topics of the general chat event have been turned into individual interactions. The old event is still provided for compatibility and in case the new stuff still has some bugs.
- Maximum timeout for async event processing is now configurable instead of hardcoding it. By default, if event processing has not finished after 30 seconds, it is forcefully aborted.
- Sound device can now be configured from the settings page.
- Some improvements to the Jobs panel in the management window:
- Biography is now read from a dedicated field in the Person object, so it's possible to add bios for each teacher to display there.
- The individual experience in each subject is now listed in addition to the subject family experience. (This is not the same as the overall qualification, which would take stats into account, though.)
- Added a BaseValue for the Stamina subject influences in SchoolSport and Swimming subjects, so no teacher with average stamina is better in PE than in their primary subject.
- Removed the Expell Student operation from MissingGirlFound. This way, taking the girl for your own slave still leaves a spot reserved for her at the school in case you free her in good condition. She will still get expelled by the WholeFamilyMovesAway function library event if she is underfed or released in poor condition.
- Added Panty Thief support for Anastasia Goth (not yet used, but I plan to integrate it into some of her interaction events).
- Restricted Kiss and Ask For Sex interactions so that they only appear if the player character is interested in the target's gender.
- Added a MinigameConfig file which gives access to several variables each for the Lockpicking (Balance) and Hacking minigames.
- When loading a saved game without a MinigameConfig file, a default one will be created for the savegame. This default file will have identical values to how the minigames functioned in previous game versions.
- Also included is a variant config file which has more difficulty and skill level changes applied; be forewarned, the values in this variant config have not been heavily tested.
- Added a member list to the club tab of the management window.
- Altered the management window so that the student list, staff list, and club member list color character names as per the main screen's occupant list.
- Added option to log unresponsive operations as warning if they take longer than a configurable threshold amount of time.
- Added mechanism to log thread dumps of unresponsive VEE operations.
- Moved setting to Profiling tab.
- Added a smartphone app that lets the player pick their alarm clock sound. (Currently only has our existing beep sound and a muted option. Feel free to add more.)
- Added negative event that fires every time the player tries to enter the OP room in the hospital.
- General refactoring of GameWindow, turning some of the hardcoded button bindings and hotkeys into commands. Some hotkeys have changed as a result, for example settings are now opened with CTRL+S instead of CTRL+Q.
- Notification history overlay now takes up the whole screen and blocks all UI elements behind it from being clicked. The toggle button has been moved in front of it to ensure it can be disabled. It's also bound to F2, so it can be summoned in events.
- Toggling Worksafe Mode or Debug Exec Phase Only settings through hotkeys now writes a notification, so the player actually sees the effect.
- Wait buttons now also use commands.
- Prevent settings from being opened via hotkey while an event is showing.
- Related Events tool now limits the result to events that are in the immediate vicinity of the current event.
Developer/API changes (only relevant for mod authors)
-----------------------------------------------------
- DetentionLocationProvider will now use the first rule with "detention" (case-insensitive) in its name instead of looking hard-coded for "Detention rules".
- Rules now apply the actual value for a Reputation change on each day. Previously, it would only apply 1/5th of the value to avoid too rapid growth. This behavior was confusing and entirely opaque to modders.
- CurrentOutfit is now always calculated whenever its checked.
- While showing a teacher in the management panel, their OutfitName will be set to "Work" while updating their paperdoll and back to the previous value afterwards.
- Random Chance now works for values from 0 to 100, rather than 1 to 99.
- More population-related properties can now be configured in the ScenarioConfig.
- ScenarioConfig is now visible in the Game Objects debug tab.
- Documented use of the individual properties in the ScenarioConfig.
- Adding/Setting the relationship value in the database now clamps it to the [-100;100] range. Previously it was only clamped when reading the value.
- Event priority is now always serialized, even if it's 0.
- Clubs will now validate if their current members have the correct gender for the club on a daily basis and kick out anyone who no longer fits.
- Simplified code for the calendar note tooltip at the bottom and made it only show unfinished notes.
- The maximum number of students per class can now be configured via the Scenario Config. A new VEE constant is available that returns the current value of the config.
- "Item by Name" operations now use the regular "Name" property of an item by default and have a link variation for the "Display Name".
- SetRuleActive is now named SetRuleAvailable in code and XML.
- SetRuleChoiceActive is now named SetRuleChoiceAvailable in code and XML.
- Added a new operation SetRuleChoiceActive (i.e. same name as the old operation) that can be used to set the currently active Rule Choice from VEE.
- Creating calendar notes with a blank name now cause an exception.
- Adding calendar notes with a blank name now causes an exception.
- Deleting calendar notes now only considers the name and not at the other properties.
- Database Query operation now has an additional input to end the iteration prematurely and also frees up resources when activating the Finished output.
- Remote Event operations now have an error check for connections to "N/A" inputs and outputs.
- Added button to Options menu to manually clear the event cache of the editor.
- Refactored error checking framework to use structured data for findings instead of one big concatenated string.
- Error messages have been overhauled for brevity, since context information is now provided in the structured data.
- Added new view to present the structured results of the error check.
- Checking for unlinked objects and incorrect variable cardinalities now also uses the new system, so all results can be presented in the same view at once and without individual message boxes.
- Loading tooltips for Remote Events already placed in the editor will now load the tooltip of that specific event synchronously in order to provide instant feedback. (The tooltip is still cached in this step to avoid overhead)
- Person name list in the debug menu is now editable and the category ALL is the preselected default.
- VEE now uses WPF CommandBindings for common menu items, which come with some built-in keybindings that are familiar from other Windows software.
- Toggling VEE tooltips is now bound to F2.
- Command to show orphaned assets is now available in the VEE menu as well.
- Refactored the whole BodySize mechanic and made it compatible with new StatusEffectModifiers.
- This also makes it easier to add new body sizes in the future, since everything now uses a unified system to access them.
- Added VEE operation to get the list of all School Subjects in the game.
- Added custom override for last name, in the same way as for the first name.
- Added property "HideFromMenu" to Rule definition to hide it from the management panel while otherwise preserving its functionality.
- Added File Editor for Rules, so the descriptions and properties can be seen. (Not necessarily recommended for active use due to File Editor bugs.)
- Added "Get Rule" operation to acquire a Rule object for use with reflective property modification.
- Config now can specify in the setting "vee_AssetPathsWithoutMetadata" which paths relative to the school folder are OK to have no metadata associated with assets, preventing from showing them in the Orphaned Assets dialog.
- Orphaned Assets results can now be exported to CSV.
- Added new Dev Tool to the VEE that allows to check all events for errors at once. (Takes a moment to finish)
- Fixed list in result window of error checking phase not being scrollable.
- Added error report if an event with Trigger Type "Location", "Visit" or "Button" contains no reachable "Accept Event" operation. (It would be even better if it was checking if it can be reached from the Try-phase, but that's not as easy to fix right now.)
- If the event description contains #NoAccept, it won't cause an error message when there is no Accept Event operation on specific Trigger Types.
- Removed the almost all differences between the folders under Events\.
- NativeEvents are still special, as the engine knows their name.
- Vist events in Interactions are attached to the player at game start.
- All events in StaticEvents are attached to the player at game start.
- Events in folders mentioned by a Location or ClubLevel are attached to the Location/ClubLevel.
- ScheduleHander events in ScheduleHandlers are attached to the person with that name.
- The Snippets and Templates folders are ignored.
- Schedule handlers now work for all persons, special or not. They can be attached/detached like any other event.
- The Get Events from Folder operation now works for all folders (except Snippets and Templates).
- New VE Op: Set Display Gender Override - overrides how the person should be displayed in the person list. Doesn't affect paperdolls.
- New VE Conditions: Person Display Gender & Person Gender Override. Used to determine the data above.
- PTA Members can be dynamically changed by adding / removing the PTA trait.
- New VE Op: Convert To Object List - Idea is for this to be used after an Get Property By Name operation.
- New VE Op: Set Object List. Doubles as List Union if more than one input list is used.
- Created a universal WillpowerCheck.ve.xml that factors in various modifiers, can use authority of the 'enforcer' and has thresholds built in. Hopefully a good starting place for more willpower-related event work.
- Added Link Variation to Attach Event to provide an event as parameter.
- Added String Trim operation.
- Implemented a simple dirty flag for the VE Editor. Moving an object around does not set the dirty flag, all other modifications should.
- Don't ask if you want to close an event tab if the event is not dirty.
- Don't ask if you want to close the editor if no loaded event has the dirty flag set.
- Outfit Name now works with Locations too. For the Get input, it takes Location Modifiers into account.
- Allow CheckEventExecution to work in syncronous execution.
- Added SeqCond_PersonShift.
- Implemented styling For Show Decisions and Show Decisions (Dynamic).
- Made Text Replace Dictionary take the person dictionary into account.
- Added 2 new operations: Get Account by Name and Get All Accounts.
- Added a new condition: Is Account Active.
- Added Link Variations to the existing 2 operations that deal with Accounts to accept an Account Object.
- Virtualized all PaperDollHandlers. Threw messages on multi-threaded use before.
- Show PD in outfit from the engine (Management Panel...) will also set Clothing Always Wear to true.
- Add new status effect to allow temporary outfit changes. Not yet used, as this would break existing games.
- Allow dynamically adding/removing staff (teachers included) to School Management
- Adding or removing the Staff trait to a person makes it available/unavailable for hiring through School Management
- If the person is hired and you change their Job property they will be fired
- Adding the Teacher job to a person will add them subject experience if they don't have it already
- Use enum for calendar status.
- Text Replace operation now uses different values for each match if the replacement is a random variable.
- GameObjects are now reloadable via a new tab in the debug menu. It's just the barebones functionality right now. No state is carried over from the previous one and no references are being replaced in other object instances.
- Reloading certain objects now tries to keep the status of their availability, since it's likely they got enabled during gameplay and we don't want to break quest progress.
- Job string is now cleared on unchecking Job checkmark, previously the check would reset if you didn't manually clear the string.
- Checking the Job checkmark, but leaving the string empty will now match people without a Job (like Person Filter: Job), instead of throwing an exception.
- Fixed copy-paste not remembering the job, unfortunately doesn't work if job is empty (need to reenable checkmark for now).
- Fixed DisplayName not linking back to Name if no display name is set.
- Show Decisions now shows the respective decision text on up to 80% of the operation's width (scales with zoom factor).
- Added support for marking people as asleep through status effects (using the status tag "ScheduleHandlerAsleepIndicator"), to allow for future support for sleeping drugs / devices / etc.
- Additionally made it so that people marked as asleep through status effects will not be moved by the scheduling system while the effect is active.
- Added a ScheduleHandlerAwakeIndicator, which overrides the IsAsleep checks to return False. This indicator still blocks movement and still returns the Sleep outfit for paperdoll checks.
- Added link variations to SeqAct_PersonStatusEffect to allow for directly setting the duration and/or start time when adding an effect to a Person, rather than requiring a separate SeqAct_PersonStatusEffectDuration node to accomplish this.
- Added a new operation "Add Person Stats With Limits", which allows stat modifiers to a set of Person objects (or object lists, if using the link variation) which will not exceed supplied minimum and maximum values.
- Added a new Add Person Skill With Limits operation. Same deal as the new stats operation, just targeting skills instead.
- Added a new HeightMultiplier field to Person objects, which will affect the paper doll size in VEE events and the interaction menu (does not currently affect the Management Panel or Character Creator).
- This can be controlled through a new gender-specific setting in the scenario config, and can be set directly within special character files.
- The default config has been updated to provide some variation (by default, there will be an 8% range of variation, and males will tend to be SLIGHTLY taller than females, with futas being in-between)
without looking too odd (e.g., students stretched to taller-than-adult sizes look weird because of their head size).
- Added LikedGender (a List(Of Gender) property) and RequiredStats (a List(Of StatRange) property) to the Location class, to allow for more restrictions on who can visit a given location.
- At the moment, the World Editor is able to alter the LikedGender property, but the RequiredStats property can only be edited through a text editor (Sorry, I suck with UI design!). Values have been added for the Cabaret's Dining Room location as an example.
- Added a new OccupantInfoConfig filetype, which controls what information is displayed in the occupant list.
- Added a {Job} replacement to the text replacer used by Text Replace (Person).
- Added an additional automatic trait ("Parent"), which is added automatically to anyone with children as they are loaded or generated, and is removed from anyone without children.
- Added a list of traits with hard-coded functionality to the descriptions of the Get Person Traits and Person Traits operations.
- Added automatic tracking of the parents of enrolled children through a "HasEnrolledChild" trait.
- Refactored enrollment and expelling to be handled through Person class subroutines, which handle any necessary schoolclass, club, and trait changes.
- Added three more options to Get Person List, for retrieving lists of all parents, the parents of your school's students, and the parents of other students.
- Added access properties for the Range.Min and Range.Max values to the StatRange struct, to make it play better with the File Editor.
- Added a {Class} replacer to the Text Replace (Person) replacer, which replaces with a student's class number.
- Added a string-based Fetish lookup function to the Person class.
- Expanded the OccupantInfoConfig with many additional conditions, and grouped most of them into rough categories within the editor.
- Updated all existing OccupantInfoConfigs for the renamed properties.
- Added a new OccupantInfoConfig which displays the class number for enrolled students; their display should now read as ", Student (class 1)" or similar.
- Added new VEE operation to put key-value-pairs into a dictionary in the event runner, which can then be read by the calling code. This allows events to provide optional return values to the code without impacting the use cases where it's not needed.
- Interactions now check if a boolean result value is set for the key "Interaction_KeepGoing".
- If it exists and is True, the interaction will force the NPC to stay in the location in order to keep it going.
- If it exists and is False, the interaction dialog will forcefully stop (even if the NPC is not moved away).
- If it does not exist, it behaves like before and depends on whether the NPC is still in the location.
- This property is currently still experimental. It might get replaced with a probability-based one in the future.
- Interaction Events can now use Text Replace gender placeholders in the Choice Name.
- Checking events for errors now also ensures that the variable type of linked variables match the declared type of the connector they are linked to.
- Reference Variables now display an info message during validation if the referenced variable does not have a comment.
- String variables can now be converted to String List variables via the "Replace" menu.
- String List variables can be converted back to String variables. (This will use a random entry from the list, so it could lead to potential loss of data)
- Updated the Perform Intercourse VEE operation. It now handles updates the relationship database as appropriate when two non-sex-toy characters have sex.
- Additionally, the previously-ignored Cum Inside parameter is now used to determine whether a creampie entry should be added to the database.
- Updated the Person Intercourse Manager (used by the Have Sex VEE operation). It now properly accounts for sex toys, and will *NOT* update the relationship database if someone is just masturbating with a sex toy (but *will* give additional joy if they have masturbation or sex toy fetishes).
- Additionally, it will now set "lost virginity to" / "took virginity of" entries for male and futa active partners having vaginal sex for the first time.
- Copied the body size change calculations from the Perform Intercourse VEE operation to the Person Intercourse Manager, which previously did not have any size change functionality.
- In the case of dildo-based sex, I made the PIM assumes a medium-sized dildo, since the Have Sex operation doesn't pass through any sort of size data and I really don't want to refactor it to do so.
Bugfixes
--------
- Fixed one constellation of PersonTraits operation removing the trait when it should actually add it.
- Duplicating SeqCond_CompareDate now properly copies link variations.
- Duplicating a ShowRandomImage operation now also duplicates the separate output links correctly, if that option is set on the source.
- Fixed bug causing the CurrentOutfit to not properly resolve to the Club Outfit because it was comparing the name of the club location to the actual location.
- Attempt to improve classroom scheduling.
- Fixed null pointer when hashing the name of scenario configurations of existing save files.
- Better handling for random numbers from floating point ranges.
- Fixed off-by-1 error potentially preventing the last item in a location from being picked up by NPCs.
- Made sure that String-to-Number conversions in VEE operations use the invariant culture, to avoid unexpected issues on specific locales.
- Fixed bug causing exception when attaching/detaching an event to a person in Try-phase while having multi-threading disabled.
- Database input field in debug menu now accepts return and tab keys.
- Database input field in VEE menu now accepts return and tab keys.
- SetPersonTextColor operation was reading variables at the wrong index.
- Fixed String Pad operation not having an output link.
- Check Rule condition now makes sure that rules have been loaded when pasting the operation.
- Fixed bug causing status effects that modify the maximum value to change the minimum value instead.
- AddArousalByFetish will now no longer reset the comment if it does not match the format of autogenerated comments for the operation.
- Fixed bug causing PersonStatsByList operation to incorrectly calculate the average value if it was used for multiple stats in the same operation.
- Fixed bug causing the reloading of events in a location subfolder to also be added to the parent folder.
- Special characters now only get a random head assigned for the gender slot they are missing, rather than both.
- The Frontend now disappears and stops the task bar status after the Initialize event, rather than the StartEvent.
- Classes now only allow to add your own students to them, which fixes a bug that assigned expelled students to the "spare students" class.
- If a GameMind for the current scenario does not contain a stat adjustment for a specific stat, this will no longer throw an exception but just skip the stat.
- No longer throw an exception during daily population stat adjustments if the scenario defines no mind data.
- Fixed exception when creating second VEE directly from new process where it skips the Frontend.
- Fixed some Item operations not taking over their link variations when cloning them.
- Description fields of objects in File Editor now support multi-line text.
- Fixed clubs not applying their stat changes at the end of their meeting.
- Clubs now only apply their stat changes if the person is in the location of the club meeting.
- Fixed adding/removing a person to/from a club potentially doing so one more time than intended.
- Pending autosaves are now also done after clicking on task buttons, interactions and using items, rather than just passing time.
- The current day is now marked as last autosave day before doing the save, so it is correctly reflected in the save file.
- Fixed typecast error in PersonStatsByList.
- Set Inventory Image operation no longer throws random exceptions during error checking.
- Bitwise Integer Math operation no longer requires a variable connected to B if ONLY the "NOT" input is used. It still does in all other cases.
- Corrected layout resizing of school subject description.
- Exporting profiling data to CSV now adds quotes to escape the name, since some SQL statements contain semicolons that otherwise mess up the format.
- Button events are now checked in parallel if multithreading is not disabled.
- Changed the way non-always outfit names work. Now each category is responsible for selecting the outfit. See PaperDollHandlers/Student/Swimsuit/ClothingItem.ve.xml for an example.
- Fixed changed outfit names in all events.
- Another fix for BrokenSwimsuit.
- Fixed logic error in SeqAct_AttachEvent. It caused NPEs after loading a saved game.
- Fixed miniquests.
- Fixed multi-selection in VE.
- Fixed copy and paste.
- Change Number From String generation strategy. Should prevent stuff like n mod 9 = 0 => n mod 3 = 0
- Hopefully fixed IndexOfString with last input. Before it did start at position 0, and goes backwards, always returning -1.
- Fixed events in the Debug Events list not being in alphabetical order after the rework of event loading.
- Added a daily event to update the outfit levels of the characters. They were always 0.
- Fixed Person Status Effect Duration returning the lifespan instead of te remaining lifespan in the Get input.
- Fixed bug preventing numerical value of stat bars from being displayed.
- Fixed some events to use Text Replace (Person Context) and proper placeholders for pronouns and names, so it's possible in theory to change the display name and gender of special characters.
- Added an item event for the Double Dildo, which was lacking one; it's basically a placeholder copy of the Deluxe dildo event with slightly increased values, since balancing isn't really my forte.
- Fixed an exception that occurs when hiring all available staff.
- Fixed a logic error in TraitHelper.Match(), where the "Some" result could be incorrectly skipped due to the "HasNone" boolean never being toggled off when matches were found.
Result: The "Has Traits" operation should now always return as expected, instead of sometimes incorrectly returning that no matches were found.
- An inverted condition in the JobDoesNotEqual check was causing jobless people to pass checks that were supposed to filter out people without jobs.
- Fixed comment boxes losing their stored size when copy-pasting them.
Known (open) Issues
-------------------
- Very rare and unreproducible performance drops during event progression where the game may freeze for several seconds.
- If you enabled performance monitoring in the debug menu by entering a threshold value in the profiler tab (something reasonable like 5 seconds), you should be able to find an entry in the game's log folder about this incident. We would like to hear back about it.
v.1.9.5-2050
Changes and New Stuff
v.1.9.4-2008
[Deleted Files]
The following files from the full 1.9.3 release are no longer needed in 1.9.4 and can/should be deleted to avoid potential issues in the game:
(Since we can't tell Zip archives to delete those files, you need to remove them manually)
// General update to loan stuff. Existing events have been moved, merged and updated.
- Schools/NormalSchool/Events/FunctionLibrary/LoanConsideration.ve.xml
- Schools/NormalSchool/Events/FunctionLibrary/LoanGetNumRemainingPayments.ve.xml
- Schools/NormalSchool/Events/FunctionLibrary/LoanGetPayment.ve.xml
- Schools/NormalSchool/Events/Location/Bank/LoanRepaymentTittyfuck.ve.xml
// Moved to changing room.
- Schools/NormalSchool/Events/Location/School/Hallway Shared/LockerGirl.ve.xml
// "My Debut" was not used anywhere. "School of Cock" has been replaced by three gender-specific books "School of Sex".
- Schools/NormalSchool/Items/Books/My Debut.xml
- Schools/NormalSchool/Items/Books/School of Cock.xml
// Image folder was renamed to "School Main Gate".
- Schools/NormalSchool/Images/Locations/Normal School
// Item has been renamed to "Onsen Membership Card" and related events have been improved.
- Schools/NormalSchool/Items/Miscellaneous/Onsen card.xml
[Full Commit Log]
The following commits have been made in this release:
----
- Fixed SQLite backup not working due to missing parameters for source and destination DB type. (Previous versions may have tolerated that, but the latest doesn't.) bug #1199
----
- Fixed exception when trying to display tooltip for a RemoteEvent operation that had no event specified yet.
bug #1198
----
- Removed obsolete "BreakInLevel" legacy property from Item class.
----
Fixes (or should fix) two Principal clothing bugs (one per bug #1195)
• Reported by roberttx: player's char is a floating head
• Reported by xyza7890: Commando underwear variant of clothing not displayed
----
- Changed most (but not all) internal person list structures to use UIDs instead of names as reference.
- Added some missing values to the String Constants Hint form.
bug #1195
----
Fixes a (progress stopping) bug reported by barteke22 (can't propose Practical Sex Ed)
----
- Remove Item from Inventory now processes all item variables attached to the operation.
- Added note that the "set parameter to nothing for removal" option only applies to item events that are directly triggered by the engine.
bug #1192
----
- Removal of some hardcoded locations from ScheduleHandler.
----
General update and rework of the bank loans stuff (modernising, text improvements, etc.)
- Fixes big reported by jsb (loan payment treated as income, not expense.)
- Fixes unreported bug of loan terminating 1 month early
- Merged LoanRepayment and LoanRepaymentTittyfuck into one event
- Updated EdgarBanks xml (giving him his speaking color)
- Added LOC_Bank (so bank is only open during office hours)
- Linked Bank map to Stores Shared (so bank closes after office hours)
----
Updated Tanning oil_ItemEvent (overlooked in the work done per bug #1178)
- Added some content and changed the effects
- It's no longer such a 'quick and easy' appearance booster
- But does deliver others things
----
- "Location Connection" operation now requires the additional "Travel Time" parameter when adding a new connection.
- Removed obsolete "Time to Cross" property from location.
----
Moved LockerGirl to changing room (where there are lockers) and did a general update.
----
More work done on the map
- Further tweaks to some school location visit frequencies (e.g. increased canteen usage during breaks)
- Cleaned up Editor layout to improve readability
- Changed Red corner and Cabaret linkages to what I believe feels more logical (and matches story content)
- Reduced 'To Smallville' location buttons to only those required (i.e. is the only way out)
- Renamed Onsen changing rooms to match event folder names
----
General clean up / modernisation of these events
----
Bug fix: Execute was connected to Add input of Person Stats 117 (increasing adding inhibition every time the event fired)
----
Adding moving player to bedroom if they fall asleep at home (per request from DeniedInMontana)
- Also made a minor adjustment to probability of making it home [try to make it home path]. It's now 40 yes / 60 no
----
Fixes issue raised by jsd (relaxing time passing mechanic out of whack)
----
Should fix the bug reported by blumph (Exhibition club not progressing, and Club Journal throws an exception)
- Also did a couple of minor clean-ups to related events
----
Just more typos
----
Mostly just fixing typos (plus some minor code clean ups)
----
Just marking various (with todos and notes) for rework
----
Just fixing typos
----
- "Database" tab in Debug Window can now correctly handle the use of "EXPLAIN QUERY PLAN" commands, to get an overview over the performance of a specific query.
- Optimized query for Person Relationship Database by adding two indices to avoid full table scans on most operations. (This improves startup performance A LOT!)
----
Just updated (existing) todos. Event needs a general update.
----
Added a bookshelf (i.e. somewhere to store books)
----
Fixes bug report by Duskoxiv (general passing out from low energy not resulting in sleep)
----
- Amended some of the school navigation and button position (to what I believe feel is more logical)
- Replaced item 'School of Cock' with 3 'School of Sex' items (with gender preference-specific variants and item images)
- Removed item 'My Debut' (as isn't used anywhere)
----
Just fixing more typos
----
Just fixing typos (talk sentences missing closing quote)
----
Fixed bug reported by blumph (event was not rescheduling itself correctly)
----
Fixing (exception causing) bug in TriggerCompulsoryMasturbation
----
Main just typos (with a couple of minor code clean-ups)
----
- Fixed bug reported by remembermethistime (Special Char nude breasts not working)
- Final cleanup and refinement to exhaustion mechanics
----
Fixed a bug reported by warrior89 (progress stopping exception the Underwood chain)
----
- Fixed World Editor trying to load Worlds as World Extension through the menu.
bug #1188
----
- Remove Item by Name from Inventory had incorrect variable link type set.
bug #1190
----
General clean-up and update to PrincipalSleepTracker
- Adds a 'clock dream' (just to say something is still happening during long sleep period)
- Adds a graduation factor into the algorithm (be better reflect exhaustion accumulating over time)
- Fixed bug reported by imnotoverhere (not resetting states correctly after a collapse event)
- Fixes lesser issue of not calculating fitness correctly
----
Corrected event intended to fire only a 'Classroom' firing in Gym, Swimming Pool, Etc.
----
Amended 'Normal School' location name to 'School Main Gate' and set description back to 'WayToSchool'. And, as part and parcel:
- Renamed location image folder to match
- Updated all events that use the location name and location image
- Added a note to the Event Images Folder (which is still called 'Normal School') to explain the relationship
- Also complete a general review of school locations and corrected various inconsistencies (full details posted to bug #1185)
----
Cleaned up Onsen membership and logic of the events:
- Membership now required to use the Onsen (previously could use without being a member, even you're told you can't).
- Membership lifetime fee increased to a (slightly more sensible) $500
- Membership card given an image and purpose is better explained
----
Bug fixes: Immodesty check was never firing (due to a bad regex) and the "Always wear" option in AccessWardrobe was broken
----
Torso of futa principal no longer looses breasts in onsen towel (reported by zaiaku)
bug #1187
----
v.1.9.3-1991
Added some new girl names (handpicked from the mod of 22mice)
Statistics tab is now separated into individual sub-tabs for the different statistic topics
Bug fixes:
All item bugs believed to be now fixed (please report any items issues you still encounter)
Lots of typos fixed, thanks to Positron (still more to do here)
Fixed adult Education and Lust values ignoring the values defined in the config
Various other minor bugs fixed (thanks to all the reporters)
Fixed bad performance during event execution (caused by too detailed execution logging)
Improved general startup time in release versions (by pre-compiling XML serializers)
Developer/API changes (only relevant for mod authors):
All school location event folders moved into single main folder "School"
Various new functions added, existing ones amended (with descriptions added/updated) and some moved to appropriate category sub-folders
VEE operations that change a person's inventory now have link variations that determine how many items are affected: Single item instance from a stack of items (Object variable); entire stack of items with the same properties (Object variable); all items with the same name (Object List variable). Stacks can be turned into a list of individual instances via flattening operation.
"Remove Item from Inventory" operation can no longer be used to remove an item from the inventory of its owner while executing its own item event. Instead, set the Item parameter passed to the event to "Nothing".
The "Search for Operation" function in the VEE's DevTools has been improved, so it's now possible to search for operations with a combination of specific names, comments and variable links.
The "Find Unused and Missing Images" function in the VEE's DevTools has been improved and is a lot more reliable now.
Item descriptions can now use placeholders like {Counter}, {Data}, {Uses}, {RemainingUses} and {MaxUses} to insert the respective property value into the text when showing it in the UI.
The "Text Replace Dictionary" now behaves the same way as the "Text Replace Person Context" in terms of scope. It is no longer persisted with the owning event but instead valid for the duration of the current execution. The values are propagated to called remote events and changes made by those events are fetched back to the calling event.
Removed hardcoded random assignment of club president from code. The logic has been recreated in UpdateClubPresidents.ve.xml.
Added some operations to control which school classes are available and how students are assigned to them.
Added mechanic to let mod authors add and override ingame locations in a non-destructive manner via "World Extensions". World Extensions are XML files that contain only a property "Locations" with a list of location data as it would be included in the actual base scenario file. At game start, these additional locations are merged into the existing world (allowing to override existing locations with the same name) before proceeding to load files as usual. The World Editor has a new option to save the current locations as World Extension.
Added new VEE operation to add connections between locations at runtime, so you can hook up locations from World Extensions to the main game locations in an initialization event.
Added new StatusEffectModifier "FollowUpEffect", which applies a new StatusEffect as soon as the existing one expires. Useful to chain different effects together if you don't need to fine-tune them with an actual ExpirationEvent.
Reversed sorting logic in Initialize event: now events with a numerically "higher" priority value are run before those with a "lower" value. The Initialize events that were relying on this have been adjusted accordingly. This also matches the explanation of the "Priority" property in its tooltip.
Прекращена работа программы hhs+
![Hentai High School+ / Разврат в учебке+ [v.1.10.6.0 Release Eng / 1.9.5-2050.41 (update_37) Rus] (2018) (Rus/Eng) [Others] [HHS+]](https://picusha.pw/img/2017-08/21/y67y4rb4xn4vdi5oaxjoalk1s.png)
- Для исправления необходимо обновить/установить несколько программ
Что для чего
Microsoft .NET Framework - Программная платформа, позволяющая запускать программы написанное на разных языках программирования.
Visual C++ Redist - Пакет, устанавливающий компоненты, необходимые для запуска приложений и игр, разработанных с помощью Visual C++. (Ошибка "Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему"). Некоторые антивирусы могут реагировать на файлы как на вирус, но его там нет, это обычная реакция на взломанные ключи, подобная как и на некоторые таблетки для разных игр, в архиве Hybrid версия.
Microsoft Silverlight - Программная платформа, включающая в себя плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики.
Microsoft XML - Набор служб, который позволяет приложениям, написанным на JScript, VBScript и средствах разработки Microsoft строить приложения для Windows, основанные на XML.
Microsoft XNA Framework - Обеспечивает необходимые компоненты для работы и запуска игр, которые была разработаны с использованием Microsoft XNA Game Studio.
RuntimePack - Содержит набор Runtime библиотек, необходимых для работы различных программ.
Год выпуска: 2018
Жанр: 2dcg, male protagonist, female protagonist, futanari protagonist, school setting, corruption, sandbox, management, dating sim, teasing,
titfuck, groping, handjob, spanking, oral, vagina, anal, group, sex toys, lesbian, gay, futanari, virgin, voyeurism, exhibitionism, bdsm, incest, milf, prostitution, sexual harassment, rape, drugs, mind control, slave, urination, trap, pregnancy,
Цензура: Включается и отключается в настройках игры
Разработчик/Издатель: www.henthighschool.com - henthighschool.net/hhs/hhs-1-10-0-official-release-thread/15/
Переводчик мода: motoyarik
Платформа: Windows/PC
Тип издания: Оригинальная (официальная)
Таблетка: Не требуется
Версия: v.1.10.6.0 Release Eng / 1.9.5-2050.41 (update_37) Rus + Lexville mod v1.1.2-HHS1.9.5 Rus
Язык игры: Русский/Английский
Язык интерфейса: Русский/Английский
Hentai High School+ является последней игрой из серии HentHighSchool, она находится в разработке с 2010 года и до сих пор обновляется и дорабатывается.
Общая цель игры состоит в том, что вы должны развратить как можно больше людей в вашем городе, при этом не умереть и не быть уволенным. К каждому персонажу может быть свой подход и он может быть не один а несколько. Постепенно продвигаясь по игре, можно оказаться в разных ситуациях, а влиять на них или нет, зависит от игрока.
Игра имеет возможность запускать различные сценарии, которые отвечают не только за сюжет но и за всю окружающую среду вокруг игрока. В данный момент для версии 1.08 сценариев есть: 1.
Сценарий - Смоллвиль
Смоллвиль - это небольшой городок с прекрасными людьми и обычной работой, где учащиеся только и ждут, когда их развратят. Вас назначили ее новым директором, чтобы достичь того, чего ваши предшественники не смогли.
Цель этого сценария: закончить учебный год и хорошо подготовить учеников к экзаменам. Каким методом достигнет этого директор, сможет ли он справится с давлением родительского комитета и что это вообще за город Смоллвиль - ответы на эти вопросы может найти сам игрок.
Своего директора вместе с его фетишами можно создать перед началом игры.
Крайняя русифицированная версия: HHS+1.9.5-2050.41 (update_37)
Включает в себя полную игру и все изменения по пост 41 включительно (с оф. сайта), играть с начала (можно использовать свои сейвы, если до этого игра была обновлена до 37 поста).
Changelog 1.10.6.0 - 2024-01-16
New_PD_System_V0.3+
The download folder contains an [Optional Mod] featuring a part of a potential overhaul of the PD system: Heads & Body.
Installation (important)
Standard mod installation instructions apply.
Should have higher priority than all my other mods (move it below) and any conflicting mods. Other PD mods are not recommended.
It's recommended to set the GFX mode to non-GPU to avoid blur and high GPU usage.
Important: If you don't like skin colour inaccuracies on old PDs, remove all (non-genital) skin colours (except #FFF9DCC3) from the skin colour Color List and [ Regenerate Database ]. Accurate shadering requires all outfits to be converted.
Existing saves: If you had a previous version, it's recommended to be at the Map. Do the mod update steps (reload Obj, Glob, Ev...).
Then: Top left > Mod Options > PD System New > Color Lists > Reset All > [ Regenerate Database ] > Preserve or Reset.
Features
Head:
- Gives the PC / NPCs heads consisting of multiple layers.
- Hair, expression, glasses, piercings, aging, etc.
- Ability to customise said layers & their colours via Bathroom mirror (PC) or interaction (NPC).
Body:
- Expands on above with body layers. Currently only applies to Nude PD & School uniforms.
- Arm emotes. Body piercings. Skin colours.
- Uniform designer (Clothing Store) for modifying your school uniforms (and whatever else might use it in the future).
Changelog
0.3+:
- Optimized Hair init for future change.
- Fixed weather & season checks.
- Fixed adult umbrellas.
- Tweaked age overlays to kick in later.
- Improved shader fallback skin colour accuracy by reducing non-skin accuracy a bit.
0.3:
- Removed hair & skin colour change on gender change, using current always.
- Made layout timer reset on database regeneration & improved preservation.
- Finished Casual placeholder - terrible as expected.
- Made ShowActionImageProvider use ShowImageOverlaid.
- Added head overrides to special NPCs.
- Added option to reset all color DBs.
- Added OutfitDebug interaction.
- _Tucked & _OnePiece support.
- Added a Club emote dir.
- Added a generic GetExposureStates function.
- Finished Piercing logic. Moved half to heads so head piercings show without body.
- Improved some Initialize & Regenerate logic.
- Improved & bugfixed DB init/regeneration logic, so that NPCs keep more of the valid data.
- Made SuggestLook system switch logic require Debug Events flag.
-- Added choice to regenerate an individual + ignore requirements.
- Improved some logic using new Layer Op variant.
- Added leg variation shader test, likely to be scrapped because it's not great.
- Added pregnancy child dummies to refresh list.
- Added some age checks to limit options not useful for children.
- Added EventEmote support.
- Removed principal asset hardcoding, now treated as a regular Special NPC via dummy.
- Allowed specifying which Shared Expression set to use for a Special NPC, since those are a lot of effort to make.
- Tweaked Glasses to support gendering.
- Tweaked Hats to support shpungout's indoor accessory & rebel logic. And not apply if already applied via other means.
- Tweaked LooksMenu to support Head, Body, Foot view offsets, and outfits.
-- Added skin tone (for PC, DebugEventsEnabled for NPCs) & PubicHair menus.
- Added PubicHair logic, with growth / shaving.
- Improved Beard assets & added growth / shaving logic if PC is CleanShaven.
- Added HeadAge logic test. Older NPCs get wrinkles and white hair if the colour is genetic.
- ShowImageOverlaid: Added Skin, Eye, Pubic, Futa overlay support.
- Sorted paths so gendered assets come after unisex.
- Hopefully supported Lexville's vulvas.
- Colour picker tweaks.
-- Implemented custom color entry. Swapped other alpha control from blue channel to green.
-- Tweaked ColorMenu to use OR logic for whitelist.
-- Added option to apply other colour in ShowColorMenu where applicable.
--- Also fixed extra options not showing if no category selection.
- Added shader fallback for old PDs.
- Hat fix.
Changes:
- Minor balance tweaks to GetWillingness, Pornography, Swimming class.
- Added variable link variant to SetPaperDoll Op - hova
- Added byName link variant to CreateItem.
- Added DebugCommand dropdown as a workaround for those that can't see the regular one + a way to see the whole list.
- Added a Name from UID debug command to aid with database reading.
- Added location from person & UID from name debug commands.
- Added link variant to GetPaperDollLayer(s) for getting layer directly by Name.
- Added a Clear option to the layer transform Op.
- Added a PaperDollLayerRank Op.
- Tweaked Gen Home street exit to use real location buttons & fixed AskForSex not updating location.
Bugfixes:
- Fixed club enlistment not working when ImportantStat is maxed.
- Fixed event-opening Edit buttons not working in Debugger.
-- Made Edit focus on referenced ID for SeqVar_Ref.
- Fixed LayerTransform dynamic + variables exception.
- Fixed PaperDollLayerCustomShader clone dynamics issue.
- Tweaked list Ops to support true modulo instead of the c# version.
- Tweaked @FullReload to respect variable persistance.
- Made relevant April events trigger if called to office outside of breaks.
- Fixed missing time passes in SierraHardmanSex.
- Fixed some menstruation issues: Broken check & swap on gender change.
- Use the bedroom location of Annette instead of the hardcoded Guest Room in SH.
- Specifying assembly in Themes allows local: to be loaded.
- Tweaked SusanCorruption to mark its images as non special on completion.
- Added Imazen support to VEE.
- Fixed FindExternalReferences exception in debugger.
- Miniquest_AearosolDrug drug strenght check fix.
- Btn_OrderProstitute discount state fix.
- JuneTalk intro tweak (knocking).
- Futa drug GenderOverride tweak.
- Fixed GetWillingness inveting friendship bonus.
- Tweaked GetAttraction Grunge to reduce Charisma to 0 instead of into the negatives.
- Btn_peeFem-Futa exception.
- Reduced some SierraHardmanSex checks, since they were excessively high.
- Sherilyn_Encounters scheduling failsafe.
- Tweaked onsen change room layout to have lights on.
- Added ShowImageOverlayed & applied it to POO.
- Tweaked lactation regex.
- Misc tweaks and typos.
Changelog 1.10.5.7
Bugfixes:
- Added virginity removal failsafe to missing girl.
- Redirected POOActivities to lower branch instead of popup if no matching NPCs found.
- ForestRunUnderwear missing link.
- Sierra double panties fix.
- LoveAsk missing link fix.
- Moved the Pass time operation to the end of the event.
- Grouped the notifications of a couple of events affecting multiple NPCs.
- Fixed bad weighted logic in POOActivities & DetentionFingering.
- Tweaked Wardrobe to use item stacks instead of instances, as failsafe for people with 1M+ items...
- Carl_Chain & BeachGirlsMix missing links.
- Typos.
Changelog 1.10.5.5(2023.05.24)
Bugfixes:
- Fixed chain wierdness due to typos & tweaked things.
- Undid setting tools as special in xml, must be in VEE instead.
- Changed capacity uncapping to update daily instead of weekly.
- Typos.
Changelog 1.10.5.4
Changes:
- Redid portions of Sierra's chain based on MaskedPanda's contributions.
-- Mostly some textual changes & logic updates.
-- Moved tracking to globals.
-- Added post chain sex interaction & encounter (very limited currently).
-- Made logic of cure and futa route a bit more uniform, fixed some checks.
-- Made it possible to get her panties on cure route.
Bugfixes:
- Removed Blocked Status from Teachers B&D.
- Marked some items as special by default, since bought are.
- Fixed Sherilyn_Encounters having a chance to schedule next chain part too quickly.
- Lowered Hypno resistance check on Sherilyn Red Corner receptionist a bit.
- Fixed Knocking always triggering CarlTraining.
- Added futa GenderStatusKnown to some events.
- Fixed FoodDruggingAdministration using same person as P1 & P2.
- Fixed QuestStats not adding Friendship.
- Fixed some errors in GetAttraction & GetWillingness.
- Added missing gating to Miniquest_SexySwimsuit.
- Added nullchecks to Rule IsPassed().
- Added Imazen.Webp library (using libwebp) as a fallback for missing WIC Webp codecs.
- Redirected user settings save exceptions to log to avoid WineHQ issues.
- Typos.
Changelog 1.10.5.3
Changes:
- Expanded and finished the main Carl Walker chain by MaskedPanda.
-- Tweaked and expanded some parts based on suggestions.
-- Added an ending and the Carla alternative.
- Replaced Smith BoobyGrab image with Alum's.
Bugfixes:
- Added link for setting NextRuleChoice to SetRuleChoiceActive & fixed it not clearing Next on default set.
- Fixed SetPropertyByName enum set (again).
- Fixed some ObjectReloading issues.
- Fixed QuestStats Friendship check.
- Fixed Sherilyn_Toy futa PC check.
- Fixed KarinLabAssistant putting her there too early + extended to all breaks.
- Fixed various sex issues in ChangingRoom cam & Hospital HypnoPractice.
- Added pitch choice to BoyPissing.
- Fixed inverted checks in CheerleaderGangbang & ExhibitionClubAllowSex.
- Misc tweaks & Typos.
1.10.5.2(2023.04.12)
Bugfixes:
- Feb 29 birthday fix fix.
- CoppersStart exception fix.
- Typos.
- Removed ShedulingFrequency 1 skip, since it became necessary again after removing another part...
1.10.5.1(2023.04.10)
Bugfixes
- HooterSex typo.
- Fixed RuleChoice statistics daily exception.
- Added time checks to rooftop events.
- Temp tweak to GetSocialProfile so new archetype flirts defaults to old equivalents.
- Tweaked ScheduleHandler to make FollowIndicator bypass frequency setting.
1.10.5.0
Notable Changes and New Stuff
Finished off MaskedPanda's Sherilyn Ambrose chain.
Redid the logic as PersonAttached for more flexibility & added previously missing steps.
Added some very basic Management Panel timetable events.
Mass setting / replacement of subjects.
Timetable rotation / swapping / shift.
Saving / loading / exporting of presets.
Can be expanded further via ExtensionEvents\ManagementPanel.
Added 'Karin Masturbation' chain with a new one by MaskedPanda.
Replaces the ancient non-functional Karmin Masturbation chain.
The mandatory masturbation PTA proposals are once again tied into it.
They were separated out when it was noted that the old chain never actually functioned.
Merges the two machine proposals into one, part of the main rule.
It's an alternative to the Sierra 'Revenge' route (longer, mutually exclusive).
Added HasQuest & proposal support to Karin.
Made Karin help out with some things at the lab (after a specific point in one of her chains).
MadScience Epic/Fail & Research explosion avoidance via a 'Chemistry Fail Minigame' and skill check.
Has difficulty types, scaling, and time sensitivity.
Expanded to Research & gave low chance for solo trigger (skill based up to 20%).
Karin (100% trigger chance) will always show up during lunch (for either).
Otherwise relationship percentage chance while working, for MadScience only.
Chance to make a free drug daily.
alkalash's numerous performance improvements throughout the codebase - cleaning up gameplay bottlenecks.
Fixed GetRandomLocationWeighted(Person): Stat and gender preference filtering wasn't working correctly.
Optimized multithreaded scheduling: Precalculations, avoiding thread locks, limiting number of tasks.
Implemented memory caching of certain debug-related game settings - much faster access times.
Switched to ConcurrentDictionary for Location occupants - more efficient multithreaded updating.
Made console logging slightly more lenient w.r.t. buffer size, reducing cleanup overhead.
Further optimization: Implemented better algorithm for WeightedRandomizer.
Optimized PaperDollUserControl for faster rendering.
Instead of building UI element hierarchy with Image components, use a single component that draws all layers
Saves a lot of UI layout computation work
Small drawback: Layer Effects (Shaders) and Transforms cannot be updated without a full PD update
Implemented caches for directory file listings and custom shaders (PixelShader objects).
Should avoid excessive disk I/O when using these, e.g. for paperdolls.
Debugger and performance improvements.
Reworked save system.
Now: Save file is SQL database file.
Contains relationship database plus compressed savestate XML as blob.
Also features savefile CRC64 checksum.
Made saving more robust and space-efficient.
Old systems still in place, can be re-enabled using app setting, and old saves should be loadable either way.
[close]
Other Tweaks
Tweaked SetEffectsOnObservers to treat casual/accident Actions where PC does something as PC's fault.
Tweaked AskFavorsNeeded to provide an ending like it used to.
Ending still checks for new favours being available (Try) just in case of new events.
Added button to visit generic NPCs from the streets they're assigned to.
Replaced 'Smallville' button with a Btn_ event to exist at the right street.
Added a jog button in sports area.
Added vague inhibition indicators to outfit descriptions.
Added check for awake occupants to LocationLayout LightingMode 4 & 6, and LightsOn/Off traits to force it.
Reduced the requirement for the best cabaret deal to 90 relationship with Stacy to bring it in line with the love indicator.
Added option to postpone some repeatable events.
Removed HasQuest from end of unfinished chains.
Added temp HasQuest removal for Sarah & Eric.
Tweaked HallwaySex event based on Neme & MaskedPanda's tweaks.
Merged & updated some some rules due to chain tweaks & new built-in daily change functionality.
Made loan decline hint at max amount.
Added photoshop button to Smallville Times.
Merged, updated and expanded a few Bathroom F events.
When fucking increase like for gender instead of instantly converting bisexual.
Added PTA proposal for 'Physical Exams'.
Merges the Measurement events into it & allows non-female genders.
Added a regular DVD miniquest.
Replaced EnergyDrink miniquest with general Drink one for a bit more variation.
Added proper Inhibition calculation to player Info Panel.
Tweaked CarlStart to check if he's teaching Sport in general, instead of right now (further tweaks pending).
Now showing the status of the rule choice on School Policy panel.
Made Weather generation more realistic & optionally configurable via the weather app.
[close]
Developer/API changes (only relevant for mod authors)
Added Regex support to PersonTraits(Remove).
Tweaked HasTrait description to mention that it supports Regex and StringList.
Added Regex Group Match operation. For matching a string against a regex, and outputing any capture groups onto optional variables.
Added a simple hover to RegexGroupMatch preview to show individual captures.
Debuger:
Improved VirtualizedEvent debugging:
Hovering over the top half of a currently virtualized variable will show its in-memory value. Double-clicking will edit it.
Hovering over its bottom half will show the original value (copied at each event run). Double-clicking will edit it.
Added a button for jumping between or deleting set breakpoints.
Added breakpoint step focus button with auto-focus.
Added Step Over/Out buttons to the Debugger, for RemoteEvent handling.
Debugger should now also successfully return to parent even if Remote doesn't output into anything.
Added support for custom String Constant and Enum definitions. Updated relevant UI forms for support them.
Custom Enums have their own dropdown to avoid mixups & due to differing internal logic.
Added validation for Enum values (for notifying of relevant changes or invalid values).
Added Enum Description support to IntEnum UI & CustomConstants.
Added CustomEnums for basic GenSex values and attached them to the commonly used functions.
Added CustomConstants for some common Traits & GetCandidates.
Added an Op for getting and setting school Timetable slots.
Added an Op for getting and setting a teacher's subjects.
Added support for a custom button to Management Panel's Timetable.
Added operation to check if a subject is available to teach.
Added ability to create rules that are updated at midnight or Monday.
Added traits to rule choices and an operation to check them.
Added operation to check if a rule choice is available or not.
Added requirements to the rules.
Added a few operations to handle School Upgrades through VEE.
Changed SetEffectsOnObservers to take the location from the first person.
Added special handling for middle clicking RemoteEvent's IntBitField & IntEnum inputs.
Tweaked CheckForErrors error quick-jumping to work outside of current event and VEE.
Added SizeDescriptions to BodyParts, for defining CharacterCreator and text replacements.
Some places still use the enum based logic, due to their hardcoded nature.
Enabled mod assets in AssetBrowser view & removed expanders from last items.
Added some more options to CheckEventExection list variant:
Execute All (ordered by priority).
Try Only & Remove failed from List (+ priority).
Moved progress tracking of some of the chains to Global variables & changed display mode of Chains_* global variables to Integer_BitField.
Added simple filter to Debug Console log.
Added comment about @SuppressWarnings to Comment Box.
Added WineHQ Gfx setting for slightly improved visual compatibility on WineHQ.
Recompiled all compatible shaders as PS2. The remaining 12 required PS3 and will not work anywhere that pre-renders the bitmap.
[close]
Bugfixes
PhoneContact sorting fix.
Added back expelling of Missing Girl, to lower the likelyhood of events & school mechanics interacting with her.
At least until all engine mechanics & events check for ScheduleHandlerNoneIndicator status.
Fixed various issues in Voyeurism_Effects & added support for solo exposure (GiveReceive 4). Updated Doc accordingly.
Reverted WPF Extended Toolkit to 4.2, to prevent collection reset bug.
Tweaked Object Reloading to do less complex objects first.
Fixed GlobalVar SurvivesReload.
HaveSex Op missing InitializeComponent() fix.
CheckAndyRoom exception fix.
Renamed category from "Chains" to "Chains (Person)"
Fixed AskOverMain time conversions.
Tweaked MissingGirl head to check if exists before applying.
Fixed inconsistencies in some events.
Fixed some datetime stuff in some PTA & Smartphone events.
Fixed missing Survive state & tweaked date checks to use Cron in TownCouncil.
Added assembly preloading so themes can access custom controls at exe start. Unfortunately it doesn't work with our assembly, so local: controls still can't be styled directly.
Also made it so the exe doesn't hang if a theme crashes.
Fixed ListFilterProperty checking wrong count.
Fixed SetEffectsOnObservers giving loyalty hit when player not involved.
Fixed invalid mode in CoppersStart.
Made it possible for NPCs with General Home to be there when you knock.
Updated Train Ticket checks in remaining Parker events.
Various fixes to GenSex:
Brought back separation between Consent values for more explicit specification & future proofing.
They still do the same thing under the hood, but properly track their tags now, because a lot of older events also didn't use the new merged meaning.
Fixed tag GiveReceive being all over the place.
Fixed missing Modifier bit compensation, causing non-general scenes to always give max lust.
Fixed WeatherCheck being inverted.
Made Tanning Oil use check for rain.
Fixed Cloistered & Restrictive Undress State settings being inverted.
Fixed some offset issues in the High Street layout.
Fixed CheckForErrors quick jump not working properly in the debugger.
Fixed -f argument for pointing to a specific event with the -editor hhs+.exe argument. Used for making shortcuts that open the editor with/out a specific file.
Fixed bad crons in TownHallCommitee.
Fixed instill loyalty check in try phase.
Fixed B&D outfit logic & corrected inhibition indicator.
Fixed inconsistency in UI notification popup positions.
Fixed UILayer breaking debugger render.
Removed redundant arrange call & improved height compensation in PDUC.
Tweaked ParsedStringPreview to be accessible while debugging.
Added a simple dependency priority check to Modules.
Fixed club reloading not updating selected index.
Added FontAwesome preview to Event Properties.
Fixed PlayerStringInput being constrained to 1 line if no MaxLenght was specified.
Fixes to Btn_GloryHole context & CarlAdjust cast.
Fixed incorrent replacement tags.
Fixed probability of suggesting nude jogging.
Removed corruption from outfit level calculation.
Fixed SetPropertyByName not supporting enums.
Tweaked FindMissingImages to handle .webp and LocationLayout assets.
NudeRuleAcceptance filter fix.
Image path fixes.
Removing reloaded event from VEEStreamingCache.
Fixed IntBitField GlobalVars not being editable in Debug.
Fixed IntBitFields and IntEnums not working in math conditionals.
Fixed bad Mode in Btn_GloryHole.
Fixed "Rule Choice is Available" returning available for unavailable rules.
Mass CheckForErrors cleanup.
Added missing Numeric check in ReturnArgument, causing Int callback to fail Double conversion.
Fixed BitmapFromColor Op.
Fixed BitmapImage Var rendering errors while debugging due to lack of freezing.
Added BitmapImage var link to ShowImage Op.
Fixed StringList Clone failing to recognise serialised line endings, causing SingleLine mode to kick in.
Fixed some invalid GenSex values.
Fixed missing link in one of the MovieEvents & tweaked them to be a bit more re-usable.
Fixed file manager caching bug when loading a save with a different mod config from what's selected in the frontend.
Added a scrollbar to interactions.
Fixed Classroom 9 layout.
Fixed exception in 00_SpecialDesert.
Fixed wrong context in FoodDruggingAdministration.
Typos.
1.10.4.2
Bugfixes:
- Fixed layout cleanup null instead of clear.
- Fixed replacing MultiCompareBool with CompareBool.
- Made AttemptToDial check for ScheduleHandlerNone instead of slave.
- Tweaked Sports Area button to only show Cheerleader practice if they bother showing up.
- Undid accidental US locale in .exe.config from testing.
- Typo.
1.10.4.1
Other Tweaks:
- Switched Birthday related interactions to use Friendship.
- Made LayoutBed require all NPCs (instead of any) in scene to love PC for them to get in & removed sleeping mask for PC.
- Improved NotAlwaysSunny App accuracy.
- Disabled 'Prefer 32bit' to allow more ram usage in 64bit.
Bugfixes:
- Fixes to ReplaceString24h Function.
- Hopefully got the GFX settings under control by freezing & providing more cleanup routines.
-- Make sure to read the description when hovering over Settings > Gfx.
- Added BreakIn caught check to Hypno.
- Fixed shader lighting getting darker in events.
- BackgroundEvents not being saved fix.
- Carl knock exception fix.
- Moved PD cleanup from PD_Default to subs.
- Fixed GetCompletedMiniquestIDs returning the results of the previous NPC if no entries are found for the current one.
- AskFavorsNeeded delay fix.
- Typos & misc tweaks.
Developer/API changes (only relevant for mod authors):
- Switched Weather caching to DB.
- Added a CheckWeather function for checking at a specific time.
1.10.4.0
Notable Changes and New Stuff
A background event will now manage the weather state in the game, with chances to switch between "Clear", "Cloudy", "Windy", "Rainy", "Stormy" and "Snowy" throughout the day.
Not all weather conditions are visually represented at this point in time. The engine has built-in support for snow and rain.
There is a new option in Debug menu under "Global Variables" -> "Disable_Weather_Effects" that you can use to turn off the visual part of the weather, if you don't want to see it or it causes performance issues for you.
When being in an outdoor area, you may now hear rain, storm and wind sounds based on the current weather.
The volume of these effects is controlled via the separate "Ambient" volume slider, so you can disable them that way if you don't like them.
Greatly improved upon the personality archetypes in the game:
Extended the previous 5 NPC archetypes (Jock/Athlete, Artist/Creative, Nerd/Intellectual, Rebel, Royal) with 7 additional overarching archetypes (Advocate, Caregiver, Explorer, Performer, Spiritual, Trendsetter, Visionary).
For each of the now 12 overarching archetypes, added 5-8 new subarchetypes that are assigned based on the overarching archetype and one of the 8 possible personalities that an NPC can have. This results in ~150 different archetype specializations.
Asking NPCs for their hobbies will now give you a different response for each of the ~150 subarchetypes, adding a lot more variety and personality to the NPCs.
Reworked favor miniquests so you don't do the exact same 3 favors for each particular NPC archetype in the same order. Instead, a miniquest is now chosen randomly from all available quests that are suitable for a specific archetype.
Also relaxed some of the archetype restrictions for more generic favors, so e.g. everyone could now ask you for an energy drink and not just "Rebels".
Added more miniquests for some of the new archetypes. (However, it's still not enough to get at least 3 unique miniquests for each archetype, so some may have more than others.)
Denying a miniquest now prevents obtaining a new one for 2 days.
Reworked train ticket handling.
Normal tickets are now one ride per item instance. They can stack in the inventory, though.
Also added flatrate tickets with daily, weekly and monthly duration. They grant unlimited access to the train from the moment of purchase on.
No regular ticket will be consumed by the respective events while a flatrate ticket is active.
Limited train rides to the time between 5:00 and 23:15. Not enough passengers to warrant operating at night time. Daily tickets are only valid until the end of business hours on that day.
LocationLayout GFX overhaul (what you see when navigating):
Added 4 Graphic settings.
Sad GPU: Old real-time shader rendering.
High (new default): Pre-renders shaders the PD shaders.
Mid: Same + removes a few extra shader effects.
Low: Pre-renders the whole layout + disables all other shader effects.
Layout Animation Settings:
GIF + Adorner vs Adorner vs none.
Location Button settings:
Image vs static color (+optional shadows).
Added shader based lighting setting, looks a bit better than regular.
Rebalanced max loan logic to be less exploitable.
Added UI notifications to AjustMind.
SkippingClass added, a mini event chain with quite a few branches.
[close]
Other Tweaks
Clipped old cold shoulder interaction.
Added a lazy tweak to SpycamClue to allow futas.
Moved JerimiahHelp to chat since that seems to be where all quest interactions go.
Changed several weather-specific events so that they now check for specific weather conditions by using a new FunctionLibrary event.
To make up for the stricter conditions, the Random Chance in their Try phases has been increased.
Updated the weather app to actually weather.
Moved "Wish happy birthday" from general "Chat" category to "Personal information".
Added filter to event tree in debug menu to make it easier to find known events.
Added some simpler info to the Population Parameters Doc.
Added hobby dialogue to the chat interaction for each of the new sub-archetypes.
Made AfterglowEffect more effective at preventing arousal.
Replaced some images because of reasons. Slightly altered event text in cases where the new image no longer fits the described scenario in the event.
[close]
Bugfixes
Fixed SeqEvent_EventReloaded not having been triggered up till now. This operation is intended to allow events to add init/cleanup steps for cases where the events are added/reloaded to an already started game.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
Fixed some bugs where some of the "Random Split" replacements were creating the wrong operation to replace with, and the operations also did not link up all original output links in the replacement process.
Fixed wrong interaction category selection due to sorting + improved selection accuracy.
Fixed all the broken image metadata from a faulty replacement (whoops).
Fixed AprilClass & AprilOffice exception & scheduling.
GetAdjucentLocations function: No longer returns locked locations without a key.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
February 29 birthday wish fix.
MaleChangingRoom Spycam fixes.
PTA meeting tracker fix.
Typos, journal improvements, misc tweaks & fixes.
Fixed Debug > add/set time not rendering layout.
Upskirt fix, tweaks to CarlStart & PhoneNumberAsk.
Made layout hijack autosaving since event driven UI Button Waits don't trigger it, also allows rendering the scene before saving.
Tweaked switching from frontend mod tab to properly reload relevant files.
Swimmingpool layer fix & extra layer optimisations.
Fixes in MadScience, AprilPhone, BreakInMain.
Added back chat interaction with Susan Hooter where you can ask her about Peter. Was missing from previous migration of generic chat event to individual interactions.
Fixed missing link in Init_FertilityCycles (previously missing in Init_SocialProfile).
Added OOM failsafe attempt on saving.
Fixed bad caret indexes in ShowDecisionsNumeric insert.
Fixed inverted link in ShowActionImageFilter & relaxed 'no tag' to be treated as the same priority as 'Student/Adult' tags.
Fixed missing link in SetHonorificDict & missed MadScience survive state.
Updated Template scenario to a 'working' order (maybe).
Made game generate default folders for each scenario.
Fixed quirks with scenario change while in char creation.
Fixed "HSVColorComponent" Op passing bad Hue.
Fixed "LayerTransforms" Op using wrong keys + fixed offsets.
Improved age adjustments to take days and siblings into account.
Tweaked Annette & Andy's birthdays to be 9 months apart.
Fixed AssetBrowser filter not actually working and letting everything pass.
Fixed Dev Tool "Find Image References in Events" being broken at least since the conversion to C#.
[close]
Developer/API changes (only relevant for mod authors)
Implemented Background Events. They also come with a new "Events\BackgroundEvents\" directory to keep things tidy.
These events are scheduled via Cron expressions using the new "Add Background Event Schedule" and "Remove Background Event Schedule" operations instead of the regular event scheduling operations.
It's perfectly good practice to use the new "Game Initialized" event entry points to let these events schedule their own execution.
They are executed by the engine at all points in time described by the Cron expression, and without any Try-phase checks. No latent operations are allowed in background events.
Their execution does not count as part of the regular event execution, so a regular event can still be encountered in the same slot when passing time and a background event was executed.
Unlike regular events, background events will trigger exactly at the point in time they were scheduled for.
Regular events would wait for the full specified amount of waiting time (e.g. 30 minutes, 60 minutes, etc.) to have passed first and then check the event execution.
The purpose of background events is to perform operations and tasks in the background without interfering with the player's actions.
For example gathering data, updating certain NPCs, precalculating stuff. But the more frequently your background event is being run, the more lightweight it should be in terms of performance.
Added new "Random Split (Weighted)" operation.
The old one has been visually renamed to "Random Split (Weighted Vars)", but still has the same internal name for serialization purposes.
The new operation holds its weights internally and allows to set them via property window, rather than linking up variables.
This makes it more compact and easy to use in all cases where the random weights are static and don't not intended to be changed at runtime.
For ease of migration, the "Replace Object" menu option can initialize the internal weights of the operation from the values of the linked Double variables of the old "Random Split (Weighted)" operation.
For this to work, the containing VisualEvent is now passed to the method signature of the ReplaceObject function.
The engine now supports rendering of built-in snow and rain effects, which can be controlled via events using the new "Weather Effect" operation.
The previous GIF-based overlay has been removed, since it could lead to high CPU and GPU usage in places with many paperdolls and shaders.
Increased the arbitrarily chosen maximum possible connectors for some operations like "Show Decisions", "Set Int/Double Directly", "Constant Split".
Also improved the property windows of these operations, so things don't become unusable with high connector numbers.
Added "Set String To" operation, which works the same way as "Set Int To" and "Set Double To", but for strings.
Intended usage is only for short one-liners that don't require spellchecking, text preview or line break support. More sophisticated stuff should just use the regular "Set String" with a variable.
Added support for multithreaded debugging & improved a few things:
Debugger will no longer jump between events unless it has to.
Pause Icon on currently debugged tab.
Debugger title now shows runner chain.
On Next Step breakpoint hangs onto its Op instead of vanishing, to indicate need for user input if there is one.
Person Relationship Database operation should now be able to handle other data types than Integer via link variations.
Internally, the DB functions now accept and return object instead of int. The VEE operation will attempt to convert the result based on the type of the linked variables.
UI notifications are still supported for changes to numeric values. The operations will attempt to interpret the current value as numeric and fallback to 0.0 if it cannot be parsed as a number.
Added tags to status effects and VEE operations to go along with them.
It's possible to check whether a person has effects with a specific tag or combination of tag.
It's possible to remove one or all effects with a specific tag or combination of tags.
Updated archetype and personality effects to have matching tags.
Added GetContentFiltered function for getting candidate combos adhearing to gender filters.
Added the new ModInfo fields to Modules, with a simple missing dependency indicator.
Added "Add Custom UI Notification" operation for... adding custom UI Notifications.
Added FontAwesome support in event text.
Added search filter to "Get/Set Property by Name".
Added missing ScheduleHandlerAwakeIndicator StatusEffect to go along with the Asleep ones.
Added new "Split String" operation, which splits a string into a string list. This can be more straight-forward in certain cases than using a "Split String Iterator".
Tweaked "StringReplace" Op to use Regex Groups if both Replacement and Replace are regex vars.
Fully deprecated LocationLayout floor layers, in favour of VEE applied leg removal shader (less RAM use).
Moved PD Layer cleanup into a Function for easier future adjustment.
Added an experimental "Get All Paper Doll Layers" Op to aid PD automation tests. Subject to change.
Added relative ranking to PaperdollLayers.
1.10.3.5
Other:
- Overhauled working at the restaurant to give an oppurtunity to drug customers.
- Added a rep hit to monthly RSD report if in negative money, in exchange for emergency funds.
- Another attempt at state funding balance based on some feedback.
- Updated the Map's futa removal option to remove gender override & apply gendered forename.
- Added 'Enforce numeric' setting to time converter options.
- Made the 'knock' button expandable with custom events.
- Made AskForSex less arousal exploitable by adding a tiny friendship requirement at lower arousal.
- Replaced Loyalty with Friendship in GetWillingness + lowered arousal bonus.
- Tweaked Info Panel Fetishes to show No even if there's developing ones.
- Made Andy's SH similar to Annette's.
- Add an index for documentation.
- Made Interaction Panel sort its categories/interactions.
- Added skill based modifier to rescheduling of MadScience.
- Made Debug NPC list use DisplayName.
- Added better support for DisplayName vs Name for debug commands.
- Added the ability to add additional execution entry points to events.
-- Currently supports three handlers that can react to lifecycle events of the engine: Game Initialized, Game Loaded (from saved file) and Event Reloaded (via debug).
-- Moved some initialization logic around to ensure that most of the other initialization is complete by the time these new event handlers are triggered.
Bugfixes:
- Fixed PD Overlay Previewer using wrong cast.
- Updated FoodDruggingAdministration + fixed its many bugs.
- Fixed SlutMaker stat checks.
- Menu sorting fixes.
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Changeroom F Spycam bugs.
- Fixed ShowActionImageProvider adding underscore to lastnameless NPCs.
- Tweaked MissingGirl to properly change virgin flag + tweaked reset.
- SwimTeam count fix + lowered gender mix requirements.
- Fixed Reloading & Debugger not implementing TriggerType changes. Closes issue #24
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Fixed multithreading being inverted on event execution check.
- Made the .pdb hide user path in release mode exceptions.
- Fixed iff conditions only working for first and final condition due to capture group limitations.
- Fixes in GetCandidates & TryForSchoolEvents.
- Tweaks to Raymund Chains:
-- Hint event. Moved one office event to classroom.
-- Btn_Call hints at next stage, reduced from 12 to 10.
-- Sherilyn fixes & tweaks.
- Lydia's phone is now available 24/7 like she claims to be.
- Fixed exception in Rooftop_Telescope & BoardDildo.
- Tweaked HypnoTraining to not end at 100 Hypno + inconsistency.
- Fixed Hypno not applying HasQuest protection, with bypass for Secondaries.
- Added missing removal of HasQuest on a few quest branches.
- Raymund chain fixes.
- Some limiting to a few events that call upon student list.
- Minor fixes in Daisy events.
- InstillLoyalty fix.
- Added Walker story knock entry & fixed traning bits.
- Fixed job slots being re-filled on location reload.
- Fixed minigames sometimes being unresponsive and VEE rendering slowing down (especially with attached debugger).
- Typos & meta tweaks.
1.10.3.4
Other:
- Moved futanari colour setting to Map's Help & Options > Advanced, instead of relying on futa fetish. Review your setting there.
- Overhauled office spycam list to be dynamic.
- Tweaked computer wallpapers to be unlockable via website hacking & expandable via Images\EventPictures\Custom\Computer\Wallpapers\
Bugfixes:
- Fixed Show Decisions & String input not accepting tabs.
- Fixed a bunch of rules using wrong min-max.
- Fixed GetCandidates not filtering properly.
- Tweaked Goth panties to show her PD instead of bugcatcher when sniffing
1.10.3.3
Other:
- Added Math event by MaskedPanda.
- InstorePorn tweak + text by Neme
- Tweaked club journals to show president if exists.
- Show Random Image in round-robin mode now chooses a random start index for each game, resulting in more variety.
- Made GetCandidates use In + Out instead of overwrite.
Bugfixes:
- Religious Studies president fix + journal.
- Fixed Class Clown event using the teacher as the boy who is misbehaving.
- Fixed missing gender replacement in SkippingClass.
- Religious studies club fix & temporary nerf.
- Fixed ExhibitionistMaleStudent event not showing images because they came after the text.
- Park Soccer fix.
- Nina Parker is now into "Risky Places" by default.
- Fixed bug where not all links may have been deleted when removing a link by using "delete" on an input link of an operation.
- Carl & April fix.
- Photoshop Chain wasn't actually doing its final adjustments, thank @UmhRshJt.
- Fixed incidental peeking in clothing store having a positive relationship impact.
- Fixed several issues with badly migrated code and internal data structure of "List Filter: Person List" and improved the autofixing to clean up existing operations.
- AprilOffice fix.
- Fixed calendar not circling dates with specified time.
- Fixed Student panel refreshing on favourite toggle when not in favourite view.
- Typos.
1.10.4.2(2023.03.05)
Bugfixes:
- Fixed layout cleanup null instead of clear.
- Fixed replacing MultiCompareBool with CompareBool.
- Made AttemptToDial check for ScheduleHandlerNone instead of slave.
- Tweaked Sports Area button to only show Cheerleader practice if they bother showing up.
- Undid accidental US locale in .exe.config from testing.
- Typo.
1.10.4.1
Other Tweaks:
- Switched Birthday related interactions to use Friendship.
- Made LayoutBed require all NPCs (instead of any) in scene to love PC for them to get in & removed sleeping mask for PC.
- Improved NotAlwaysSunny App accuracy.
- Disabled 'Prefer 32bit' to allow more ram usage in 64bit.
Bugfixes:
- Fixes to ReplaceString24h Function.
- Hopefully got the GFX settings under control by freezing & providing more cleanup routines.
-- Make sure to read the description when hovering over Settings > Gfx.
- Added BreakIn caught check to Hypno.
- Fixed shader lighting getting darker in events.
- BackgroundEvents not being saved fix.
- Carl knock exception fix.
- Moved PD cleanup from PD_Default to subs.
- Fixed GetCompletedMiniquestIDs returning the results of the previous NPC if no entries are found for the current one.
- AskFavorsNeeded delay fix.
- Typos & misc tweaks.
Developer/API changes (only relevant for mod authors):
- Switched Weather caching to DB.
- Added a CheckWeather function for checking at a specific time.
Changelog 1.10.4.0
A background event will now manage the weather state in the game, with chances to switch between "Clear", "Cloudy", "Windy", "Rainy", "Stormy" and "Snowy" throughout the day.
Not all weather conditions are visually represented at this point in time. The engine has built-in support for snow and rain.
There is a new option in Debug menu under "Global Variables" -> "Disable_Weather_Effects" that you can use to turn off the visual part of the weather, if you don't want to see it or it causes performance issues for you.
When being in an outdoor area, you may now hear rain, storm and wind sounds based on the current weather.
The volume of these effects is controlled via the separate "Ambient" volume slider, so you can disable them that way if you don't like them.
Greatly improved upon the personality archetypes in the game:
Extended the previous 5 NPC archetypes (Jock/Athlete, Artist/Creative, Nerd/Intellectual, Rebel, Royal) with 7 additional overarching archetypes (Advocate, Caregiver, Explorer, Performer, Spiritual, Trendsetter, Visionary).
For each of the now 12 overarching archetypes, added 5-8 new subarchetypes that are assigned based on the overarching archetype and one of the 8 possible personalities that an NPC can have. This results in ~150 different archetype specializations.
Asking NPCs for their hobbies will now give you a different response for each of the ~150 subarchetypes, adding a lot more variety and personality to the NPCs.
Reworked favor miniquests so you don't do the exact same 3 favors for each particular NPC archetype in the same order. Instead, a miniquest is now chosen randomly from all available quests that are suitable for a specific archetype.
Also relaxed some of the archetype restrictions for more generic favors, so e.g. everyone could now ask you for an energy drink and not just "Rebels".
Added more miniquests for some of the new archetypes. (However, it's still not enough to get at least 3 unique miniquests for each archetype, so some may have more than others.)
Denying a miniquest now prevents obtaining a new one for 2 days.
Reworked train ticket handling.
Normal tickets are now one ride per item instance. They can stack in the inventory, though.
Also added flatrate tickets with daily, weekly and monthly duration. They grant unlimited access to the train from the moment of purchase on.
No regular ticket will be consumed by the respective events while a flatrate ticket is active.
Limited train rides to the time between 5:00 and 23:15. Not enough passengers to warrant operating at night time. Daily tickets are only valid until the end of business hours on that day.
LocationLayout GFX overhaul (what you see when navigating):
Added 4 Graphic settings.
Sad GPU: Old real-time shader rendering.
High (new default): Pre-renders shaders the PD shaders.
Mid: Same + removes a few extra shader effects.
Low: Pre-renders the whole layout + disables all other shader effects.
Layout Animation Settings:
GIF + Adorner vs Adorner vs none.
Location Button settings:
Image vs static color (+optional shadows).
Added shader based lighting setting, looks a bit better than regular.
Rebalanced max loan logic to be less exploitable.
Added UI notifications to AjustMind.
SkippingClass added, a mini event chain with quite a few branches.
Other Tweaks:
Clipped old cold shoulder interaction.
Added a lazy tweak to SpycamClue to allow futas.
Moved JerimiahHelp to chat since that seems to be where all quest interactions go.
Changed several weather-specific events so that they now check for specific weather conditions by using a new FunctionLibrary event.
To make up for the stricter conditions, the Random Chance in their Try phases has been increased.
Updated the weather app to actually weather.
Moved "Wish happy birthday" from general "Chat" category to "Personal information".
Added filter to event tree in debug menu to make it easier to find known events.
Added some simpler info to the Population Parameters Doc.
Added hobby dialogue to the chat interaction for each of the new sub-archetypes.
Made AfterglowEffect more effective at preventing arousal.
Replaced some images because of reasons. Slightly altered event text in cases where the new image no longer fits the described scenario in the event.
Bugfixes:
Fixed SeqEvent_EventReloaded not having been triggered up till now. This operation is intended to allow events to add init/cleanup steps for cases where the events are added/reloaded to an already started game.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
Fixed some bugs where some of the "Random Split" replacements were creating the wrong operation to replace with, and the operations also did not link up all original output links in the replacement process.
Fixed wrong interaction category selection due to sorting + improved selection accuracy.
Fixed all the broken image metadata from a faulty replacement (whoops).
Fixed AprilClass & AprilOffice exception & scheduling.
GetAdjucentLocations function: No longer returns locked locations without a key.
Fixed bug causing sounds played via the MediaPlayer device implementation to always use the volume setting for background music instead of the actual sound type.
February 29 birthday wish fix.
MaleChangingRoom Spycam fixes.
PTA meeting tracker fix.
Typos, journal improvements, misc tweaks & fixes.
Fixed Debug > add/set time not rendering layout.
Upskirt fix, tweaks to CarlStart & PhoneNumberAsk.
Made layout hijack autosaving since event driven UI Button Waits don't trigger it, also allows rendering the scene before saving.
Tweaked switching from frontend mod tab to properly reload relevant files.
Swimmingpool layer fix & extra layer optimisations.
Fixes in MadScience, AprilPhone, BreakInMain.
Added back chat interaction with Susan Hooter where you can ask her about Peter. Was missing from previous migration of generic chat event to individual interactions.
Fixed missing link in Init_FertilityCycles (previously missing in Init_SocialProfile).
Added OOM failsafe attempt on saving.
Fixed bad caret indexes in ShowDecisionsNumeric insert.
Fixed inverted link in ShowActionImageFilter & relaxed 'no tag' to be treated as the same priority as 'Student/Adult' tags.
Fixed missing link in SetHonorificDict & missed MadScience survive state.
Updated Template scenario to a 'working' order (maybe).
Made game generate default folders for each scenario.
Fixed quirks with scenario change while in char creation.
Fixed "HSVColorComponent" Op passing bad Hue.
Fixed "LayerTransforms" Op using wrong keys + fixed offsets.
Improved age adjustments to take days and siblings into account.
Tweaked Annette & Andy's birthdays to be 9 months apart.
Fixed AssetBrowser filter not actually working and letting everything pass.
Fixed Dev Tool "Find Image References in Events" being broken at least since the conversion to C#.
Developer/API changes (only relevant for mod authors):
Implemented Background Events. They also come with a new "Events\BackgroundEvents\" directory to keep things tidy.
These events are scheduled via Cron expressions using the new "Add Background Event Schedule" and "Remove Background Event Schedule" operations instead of the regular event scheduling operations.
It's perfectly good practice to use the new "Game Initialized" event entry points to let these events schedule their own execution.
They are executed by the engine at all points in time described by the Cron expression, and without any Try-phase checks. No latent operations are allowed in background events.
Their execution does not count as part of the regular event execution, so a regular event can still be encountered in the same slot when passing time and a background event was executed.
Unlike regular events, background events will trigger exactly at the point in time they were scheduled for.
Regular events would wait for the full specified amount of waiting time (e.g. 30 minutes, 60 minutes, etc.) to have passed first and then check the event execution.
The purpose of background events is to perform operations and tasks in the background without interfering with the player's actions.
For example gathering data, updating certain NPCs, precalculating stuff. But the more frequently your background event is being run, the more lightweight it should be in terms of performance.
Added new "Random Split (Weighted)" operation.
The old one has been visually renamed to "Random Split (Weighted Vars)", but still has the same internal name for serialization purposes.
The new operation holds its weights internally and allows to set them via property window, rather than linking up variables.
This makes it more compact and easy to use in all cases where the random weights are static and don't not intended to be changed at runtime.
For ease of migration, the "Replace Object" menu option can initialize the internal weights of the operation from the values of the linked Double variables of the old "Random Split (Weighted)" operation.
For this to work, the containing VisualEvent is now passed to the method signature of the ReplaceObject function.
The engine now supports rendering of built-in snow and rain effects, which can be controlled via events using the new "Weather Effect" operation.
The previous GIF-based overlay has been removed, since it could lead to high CPU and GPU usage in places with many paperdolls and shaders.
Increased the arbitrarily chosen maximum possible connectors for some operations like "Show Decisions", "Set Int/Double Directly", "Constant Split".
Also improved the property windows of these operations, so things don't become unusable with high connector numbers.
Added "Set String To" operation, which works the same way as "Set Int To" and "Set Double To", but for strings.
Intended usage is only for short one-liners that don't require spellchecking, text preview or line break support. More sophisticated stuff should just use the regular "Set String" with a variable.
Added support for multithreaded debugging & improved a few things:
Debugger will no longer jump between events unless it has to.
Pause Icon on currently debugged tab.
Debugger title now shows runner chain.
On Next Step breakpoint hangs onto its Op instead of vanishing, to indicate need for user input if there is one.
Person Relationship Database operation should now be able to handle other data types than Integer via link variations.
Internally, the DB functions now accept and return object instead of int. The VEE operation will attempt to convert the result based on the type of the linked variables.
UI notifications are still supported for changes to numeric values. The operations will attempt to interpret the current value as numeric and fallback to 0.0 if it cannot be parsed as a number.
Added tags to status effects and VEE operations to go along with them.
It's possible to check whether a person has effects with a specific tag or combination of tag.
It's possible to remove one or all effects with a specific tag or combination of tags.
Updated archetype and personality effects to have matching tags.
Added GetContentFiltered function for getting candidate combos adhearing to gender filters.
Added the new ModInfo fields to Modules, with a simple missing dependency indicator.
Added "Add Custom UI Notification" operation for... adding custom UI Notifications.
Added FontAwesome support in event text.
Added search filter to "Get/Set Property by Name".
Added missing ScheduleHandlerAwakeIndicator StatusEffect to go along with the Asleep ones.
Added new "Split String" operation, which splits a string into a string list. This can be more straight-forward in certain cases than using a "Split String Iterator".
Tweaked "StringReplace" Op to use Regex Groups if both Replacement and Replace are regex vars.
Fully deprecated LocationLayout floor layers, in favour of VEE applied leg removal shader (less RAM use).
Moved PD Layer cleanup into a Function for easier future adjustment.
Added an experimental "Get All Paper Doll Layers" Op to aid PD automation tests. Subject to change.
Added relative ranking to PaperdollLayers.
Changelog 1.10.3.5
Other:
- Overhauled working at the restaurant to give an oppurtunity to drug customers.
- Added a rep hit to monthly RSD report if in negative money, in exchange for emergency funds.
- Another attempt at state funding balance based on some feedback.
- Updated the Map's futa removal option to remove gender override & apply gendered forename.
- Added 'Enforce numeric' setting to time converter options.
- Made the 'knock' button expandable with custom events.
- Made AskForSex less arousal exploitable by adding a tiny friendship requirement at lower arousal.
- Replaced Loyalty with Friendship in GetWillingness + lowered arousal bonus.
- Tweaked Info Panel Fetishes to show No even if there's developing ones.
- Made Andy's SH similar to Annette's.
- Add an index for documentation.
- Made Interaction Panel sort its categories/interactions.
- Added skill based modifier to rescheduling of MadScience.
- Made Debug NPC list use DisplayName.
- Added better support for DisplayName vs Name for debug commands.
- Added the ability to add additional execution entry points to events.
-- Currently supports three handlers that can react to lifecycle events of the engine: Game Initialized, Game Loaded (from saved file) and Event Reloaded (via debug).
-- Moved some initialization logic around to ensure that most of the other initialization is complete by the time these new event handlers are triggered.
Bugfixes:
- Fixed PD Overlay Previewer using wrong cast.
- Updated FoodDruggingAdministration + fixed its many bugs.
- Fixed SlutMaker stat checks.
- Menu sorting fixes.
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Changeroom F Spycam bugs.
- Fixed ShowActionImageProvider adding underscore to lastnameless NPCs.
- Tweaked MissingGirl to properly change virgin flag + tweaked reset.
- SwimTeam count fix + lowered gender mix requirements.
- Fixed Reloading & Debugger not implementing TriggerType changes. Closes issue #24
- Fixed UI buttons being able to break the CheckEventExecution Op when spammed very fast.
- Fixed multithreading being inverted on event execution check.
- Made the .pdb hide user path in release mode exceptions.
- Fixed iff conditions only working for first and final condition due to capture group limitations.
- Fixes in GetCandidates & TryForSchoolEvents.
- Tweaks to Raymund Chains:
-- Hint event. Moved one office event to classroom.
-- Btn_Call hints at next stage, reduced from 12 to 10.
-- Sherilyn fixes & tweaks.
- Lydia's phone is now available 24/7 like she claims to be.
- Fixed exception in Rooftop_Telescope & BoardDildo.
- Tweaked HypnoTraining to not end at 100 Hypno + inconsistency.
- Fixed Hypno not applying HasQuest protection, with bypass for Secondaries.
- Added missing removal of HasQuest on a few quest branches.
- Raymund chain fixes.
- Some limiting to a few events that call upon student list.
- Minor fixes in Daisy events.
- InstillLoyalty fix.
- Added Walker story knock entry & fixed traning bits.
- Fixed job slots being re-filled on location reload.
- Fixed minigames sometimes being unresponsive and VEE rendering slowing down (especially with attached debugger).
- Typos & meta tweaks.
Changelog 1.10.3.4(2022.10.12)
Other:
- Moved futanari colour setting to Map's Help & Options > Advanced, instead of relying on futa fetish. Review your setting there.
- Overhauled office spycam list to be dynamic.
- Tweaked computer wallpapers to be unlockable via website hacking & expandable via Images\EventPictures\Custom\Computer\Wallpapers\
Bugfixes:
- Fixed Show Decisions & String input not accepting tabs.
- Fixed a bunch of rules using wrong min-max.
- Fixed GetCandidates not filtering properly.
- Tweaked Goth panties to show her PD instead of bugcatcher when sniffing.
1.10.3.3
Other:
- Added Math event by MaskedPanda.
- InstorePorn tweak + text by Neme
- Tweaked club journals to show president if exists.
- Show Random Image in round-robin mode now chooses a random start index for each game, resulting in more variety.
- Made GetCandidates use In + Out instead of overwrite.
Bugfixes:
- Religious Studies president fix + journal.
- Fixed Class Clown event using the teacher as the boy who is misbehaving.
- Fixed missing gender replacement in SkippingClass.
- Religious studies club fix & temporary nerf.
- Fixed ExhibitionistMaleStudent event not showing images because they came after the text.
- Park Soccer fix.
- Nina Parker is now into "Risky Places" by default.
- Fixed bug where not all links may have been deleted when removing a link by using "delete" on an input link of an operation.
- Carl & April fix.
- Photoshop Chain wasn't actually doing its final adjustments, thank @UmhRshJt.
- Fixed incidental peeking in clothing store having a positive relationship impact.
- Fixed several issues with badly migrated code and internal data structure of "List Filter: Person List" and improved the autofixing to clean up existing operations.
- AprilOffice fix.
- Fixed calendar not circling dates with specified time.
- Fixed Student panel refreshing on favourite toggle when not in favourite view.
- Typos.
Changelog 1.10.3.1(2022.10.04)
Bugfixes:
- Fixed photoshop assignment button not appearing at home computer.
- Fixed Sherilyn auto-enlisting due to old property.
Changelog 1.10.3.0
Notable Changes and New Stuff
Start of the Raymunds chain & generic events by MaskedPanda.
Fixed most of the generic Yaoi events + added a few.
Start of April's chain.
Start of Max's chain.
Start of Sherilyn's chain.
Start of rewriting of Walker chain.
Jerimiah Sanderson chain.
Made Smartphone Contact Notes (RelNotes) read Info Panel data.
Added alternative sorting to student Management Panel.
Added GenSex, Fetish & Global Info Panel tabs.
Added chat event where you can ask people about their fetishes.
If they like/trust you enough or are uninhibited/lusty enough, they will tell you about their most significant likes/dislikes (above a threshold of 50).
The game will remember for each NPC which fetish you already talked about. You also cannot ask more than one fetish per day.
If the NPC's opinion about a fetish changes significantly enough from what they previously told you, they can give you an update on their new view.
All extension library events for the individual fetishes currently use a generic placeholder event.
Each should at some point be fully fleshed out, with different branches based on gender, sexual orientation, dominance/submissiveness and past activities and perhaps even player decisions.
Each event should give insight into what the NPC thinks the fetish is about and why they like/dislike it. But that's a lot of work, so it might come gradually over time.
Other tweaks
Made CreatePerson obey its template's clamping.
Smartphone:
Calling now shows a visual for the contact like some of the other menus.
Unified contact categories a bit more, and added class/other student categories.
Improved the Wallpaper App, is now easily expandable (just add images + meta).
Tweaked info panel to use a ScrollViewer.
Made GlobalVariables keep their value on reload.
OneAmongMany's subject tweaks.
Tweaked starting funds & made bigger schools a lot more viable.
Starting funding will be a bit tighter until 150 students.
Developer/API changes (only relevant for mod authors)
Added additional operations utilizing Cron expressions.
Find Next Cron Occurrence.
Date Satisfies Cron.
Added separate documentation to outline how Cron expressions work.
Added link variations to "Set Next Schedule" and "Set Remote Schedule" to pick different types of variable links.
Regular "Days offset" like usual.
A "Cron expression", which is a string variable that specifies eligible points in time and the next valid time is used by the event.
A "Calendar datetime", that simply uses a Date variable to provide the point in time when the event is supposed to run.
Text Tags:
Event variables and global variables can now be inserted via tags in text replacement processing.
Text replacement processing now also has a new {if=...;then=...;else=...} tag for conditional text passages.
Text replacement now supports nested tags in {Gender:...} and {if=...} by repeating the replacement process up to 10 times. Closing brackets of nested tags should be escaped via \}.
Added additional text replacement tag {iff:condition=(MathExpression1);result=Hello World|condition=(MathExpression2);result=Hello New World|...} to allow the checking of arbitrary numbers of conditions with individual replacements.
The text of the first fulfilled condition will be used.
Added new Math Expressionoperation that uses the mXparser library to allow event creators to write complex mathematical expressions that follow established rules and use built-in functions of the library.
Math expressions now support the custom constants "True" (1.0) and "False" (0.0). This makes it possible to insert string representation of boolean variables into the math expressions and have them work without a hitch.
Smartphone overhaul:
Main menus can now be added without editing the UI_Button (events in ExtensionLibrary\Smartphone).
Mostly uses a tweaked version of the category function.
Each menu is responsible for its own structure (can make use of helper functions).
Phone Contact menu:
Its sub-menus are also dynamic now (events in ExtensionLibrary\Smartphone\PhoneCall).
Computer Overhaul:
Menu now dynamically pull events from ExtensionLibrary\Computer instead of using a hardcoded list.
Was likely intended to happen at some point, as the structure was pretty streamlined already.
OnlineDelivery allows custom deliveries so long as they stick to its logic.
Hack a Website is expandable.
SearchPorn can optionally pull images from Images\EventPictures\Computer\SearchPorn\
Added String Preview default replacements to VEE. Allows seeing the results of default person keyword replacements.
Added keyword replacement info to string inputs.
Added Ordinal sort to SortStringList.
Replaced SetBirthdayState with a variant that can Set Get and Wish, as part of gendered name fix.
Added value injection to existing Info Panel tabs via ExtensionLibrary.
Additional events in the panel's respective folder can add/edit existing values.
Bugfixes
Around 200 typo fixes.
Improved location reload.
Fixed AsyncNativeEvents rarely hanging UI on Object Reload.
Fixed GlobalString draw fail on default value.
Fixed ShowDecisions tag insert buttons always inserting at start.
Fixed image provider tag sorting & wrong image tags.
Clipped an event that was meant to be clipped + added a missing image path.
Fixed EventProperties returning null strings, causing regex compare to throw exception.
Made strings remember UserFacing on clone, Variables remember SurvivesReload.
Fixed some visual issues in Student Management Panel.
GetSubjectOfPerson break exception fix.
Fixed PantyMagic errors.
Fixed FirstCouncil.
Fixed Interaction_KeepGoing + added a simple function for it & added it where it made sense.
Misc logic & missing link fixes.
OnsenStudentMed missing link fix.
CosplayClaire clone wars fix.
Voyeurism 4 & Onsen fixes/tweaks.
Ward Measurement & Exhibition Meeting fixes.
InfoPanel rounding fix & SPE GenSex fix.
OnlineDelivery failsafe & typos.
Computer & Laundry exception fix.
Changelog 1.10.1.2
Bugfixes:
- Hooters Journal.
- Lowered exhibition club event female requirements.
- Another issue in SetEffectOnObservers.
- SexCheck issue (found in AnnetteCasual).
- Tweaked UI not being suppressed for AddSkillWithLimits' set. Making it look like you're losing skill levels sometimes.
- Special template age fix.
- MissingGirlStart fix.
- Added updated InfoPanel override file + GenSex fixes to template.
- Issue with Age context replacement.
- Typos.
VEE:
- Added heuristic to determine the probable type of a SeqVar_Object based on the variable links of connected operations and flag potential cases where a variable is used in multiple operations with incompatible types.
- VEE's ErrorCheck output can be double-clicked to jump to ID.
Changelog 1.10.1.1
Emergency fix for previous update, which was meant to be named 1.10.1.0 (fixed that too). It's just a few files, harmless to reload from previous patch on existing saves.
Edit: Now also contains the emergency fix to AM/PM converter.
Changelog 1.10.1.0
Changes:
- Some new events by malorn, shilo, OneAmongMany (the 2 mods), plus some reworks by malorn, me, Ame.
- Slight chemistry rebalance. GenSex rep hits are potentially fixed.
- Game start 'end goal' selection (new game only), only the choice is implemented.
- Object and Event Reloading now potentially won't massively break existing saves (I give it a solid 50-50).
API:
- GenSex support for after sex events (CustomPostSexEvents folder).
- Show Random Image - Round Robin mode.
- Op to obtain the number of times a subjects has been taught.
- Layer Transform Op for simple PD layer transforms (resize, offset, rotate).
- Int++/-- on a Double/Integer in random mode sets it to a random value first and disables random mode (old mantis request).
- Person Age has a Set option (respecting MinAge).
- SpecialCharacters:
-- Now use their Template for Min/Max clamping of Age, BodySize, Height. No template defined default to special gender+type template.
-- Age field defines their birth year relative to scenario (if specified) start.
-- CustomForename supports {Random}, CustomLastname supports {Random} and {PrincipalLast}. {Random} will pick from their template's name list, not guaranteed unique.
-- Can be reloaded.
- FunctionLibrary events for converting 24h time to cultured (used only by journal and calendar notes atm).
-- To change ingame clock to 12h edit hhs+.exe.config CultureInfo field to en-US or en-AU.
-- If done before new game function will auto-select settings, otherwise they can be further adjusted in the Map settings.
Event Reloading + VEE
All old events will be put in Legacy mode. In which, variables meeting the following conditions will attempt to keep their value on event reloading:
- Non-@FullReload, Non-constant, non-Object, non-Object List, non-userfacing + (has comment OR attached to non-readonly Op OR is referenced in same/external event OR is global var (see further down)).
Manually changing the variable's persistance state in VEE, or making a new event, will disable Legacy mode.
- In regular events, only variables marked as 'Survives Reload' will attempt to keep their value on reloading events. Done same way as setting an Op breakpoint.
In either case:
- Variables attempting to survive will use matching by ID to find their old values.
-- There's now a way to fix IDs if mistakes are made (variable deleted etc).
- Casting between same types (exact, or compatible types like numeric) is allowed (at own risk).
- Global variables can also attempt to 'survive' if the old event had a regular variable for that ID (must be exact matching type, like Int > Int).
-- Intended for backward compatibility when switching over to globals.
- Ctrl+Shift+Click resets the reloaded events to file state (scheduling included), like in old days.
Bugfixes (messy notes cause there's much more, but bleh):
- Extra layers for nighttime in PC's house to layouts.
- Hopefully tracked down remaining hardcoded dates in the scenario.
- Removed a weird check that prevented the Hooter chain if Susan's HasQuest got removed.
- Info Panel not updating 'Told to seek love', 'Address', VEE override issue with dupes, etc fixes.
- Make mod Paperdoll Layers refresh on loading a save, current workaround: Enable the mod before loading a save in main menu.
- Extra layers (furniture) sometimes sticking on loc transitions. Maybe fixed, not sure because for some reason things started performing so well I can't see it anymore...
- Sierra sex events had inverted GiveReceive logic on most branches.
- Fixed slave outfits.
- Fixed 'Are you single?'
- Saving the Database breaking if a table is dropped.
- GetFamilyHome exception fix (though it shouldn't happen to begin with, unless an NPC got renamed).
- TBBle's reports.
- More panel tag fixes.
- Age clamping broken for grandparents & in general.
- Music Classroom & Sleepy Estate layout fix.
- PJ breast colours.
- Miniquest delays.
- Chemistry intros not having/clearing notes.
- Bunch of Template fixes.
- BeachMEFuta & AskAboutSchoolDressCode fixes.
v1.10.0.3:
Changes:
- Some new events by malorn, shilo, OneAmongMany (the 2 mods), plus some reworks by malorn, me, Ame.
- Slight chemistry rebalance. GenSex rep hits are potentially fixed.
- Game start 'end goal' selection (new game only), only the choice is implemented. Currently has no effects, but showcases future plans for different playstyles.
- Object and Event Reloading now potentially won't massively break existing saves (I give it a solid 50-50).
API:
- GenSex support for after sex events (CustomPostSexEvents folder).
- Show Random Image - Round Robin mode (currently always starts at first index, but will likely use a random start index in the future).
- Op to obtain the number of times a subjects has been taught.
- Layer Transform Op for simple PD layer transforms (resize, offset, rotate).
- Int++/-- on a Double/Integer in random mode sets it to a random value first and disables random mode (old mantis request).
- Person Age has a Set option (respecting MinAge).
- SpecialCharacters:
-- Now use their Template for Min/Max clamping of Age, BodySize, Height. No template defined default to special gender+type template.
-- Age field defines their birth year relative to scenario (if specified) start.
-- CustomForename supports {Random}, CustomLastname supports {Random} and {PrincipalLast}. {Random} will pick from their template's name list, not guaranteed unique.
-- Can be reloaded.
- FunctionLibrary events for converting 24h time to cultured (used only by journal and calendar notes atm).
-- To change ingame clock to 12h edit hhs+.exe.config CultureInfo field to en-US or en-AU.
-- If done before new game function will auto-select settings, otherwise they can be further adjusted in the Map settings.
Event Reloading + VEE
Bugfixes (messy notes cause there's much more, but bleh):
- Extra layers for nighttime in PC's house to layouts.
- Hopefully tracked down remaining hardcoded dates in the scenario.
- Removed a weird check that prevented the Hooter chain if Susan's HasQuest got removed.
- Info Panel not updating 'Told to seek love', 'Address', VEE override issue with dupes, etc fixes.
- Make mod Paperdoll Layers refresh on loading a save, current workaround: Enable the mod before loading a save in main menu.
- Extra layers (furniture) sometimes sticking on loc transitions. Maybe fixed, not sure because for some reason things started performing so well I can't see it anymore...
- Sierra sex events had inverted GiveReceive logic on most branches.
- Fixed slave outfits.
- Fixed 'Are you single?'
- Saving the Database breaking if a table is dropped.
- GetFamilyHome exception fix (though it shouldn't happen to begin with, unless an NPC got renamed).
- TBBle's reports.
- More panel tag fixes.
- Age clamping broken for grandparents & in general.
- Music Classroom & Sleepy Estate layout fix.
- PJ breast colors.
- Miniquest delays.
- Chemistry intros not having/clearing notes.
- Bunch of Template fixes.
- BeachMEFuta & AskAboutSchoolDressCode fixes.
v1.10.0.2 Hotfix:
Small bugfix package since I'm away a few days:
- Info Panel button + offset improvement.
- Info Panel now shows actual stats instead of debug ones. Also fixed some Database tags.
- Old Player Info hover removed in favour of Info Panel (due to customisability).
- Reloading locations and clubs keeps event IDs, but all other data is currently still reset.
- Fixed rare bug with Error Check exception/hang-up.
- Made Error Check lock buttons to prevent collection change.
- Fixed Wardrobe sending you to the void (removing Map buttons) when it detects an error.
-- However this one is optional (if you've never experienced that then you're unlikely to), as it will reset your wardrobe settings.
-- Delete FunctionLibrary\PCAppearance\ wardrobe file if you don't want it.
v1.10.0.1 Hotfix
Umgah's Hypno fix.
Info Panel wrong flirt fix.
Breakin 'knock' fix.
Left side of shopping panel being empty fix. Means you can now sell special items if they're tagged wrong, so careful just in case.
v1.10.0 Release
This is the full 1.10 release, no longer a beta. That doesn't mean it's bug free, in fact, there's a lot of new features that need testing.
However, we're leaving 'beta' in hope of stabilizing this build with bug fixes as the final 1.10 version. So no more massive changes any time soon.
Due to a move from SVN to Git, the versioning format changed - we will no longer use the Revision (commit) number.
1.10.0.0 is the first public release version of 1.10.
1.10.1.0 would be the first minor update that may change some features.
1.10.1.1 would be the first patch release for that minor update, because we noticed some bug that required immediate fixing.
If you're hoping to see new story progression since the 1.10 beta... I'm sorry, but this update is mainly big engine changes and new features, aimed at easier expansion of content/mechanics and at mod/event authors.
We've lost contact with the people working on the event side (plus a few on engine side) when the site went down.
And since no new writers have expressed interest in assisting, the progress on that end will be very slow at best. This doesn't mean there won't be updates and fixes, just no 'content'.
Lots of events have been reworked, code cleaned and/or typos fixed, etc.
Stand out items (i.e. things to specifically look for) are noted below
For the complete list of all changes and fixes see the game's Docs\Changelog folder.
Notable Changes and New Stuff:
UI notifications for stat changes
Official modding framework
Global variables
New population generation system. Gives more control over how/what kind of NPCs are generated.
Custom Paper Doll Layers - the PD system is now less hardcoded and easier to automate/expand.
The game only uses it for small things currently, this is mainly something for modders to play with.
Pixel Shaders - allow manipulation (like recoloring) of PD layers and images. Has predefined shaders and also allows use of custom shaders.
Location Layouts (aka LookAround V3) - allows showing PDs on location, and conditional backgrounds by providing simple Layout.xml definitions.
Info Panel - when enabled provides some info about the NPC you're interacting with, like relationship.
More details are available in the official release thread.
v1.10.0 SP1-SP4
Added some additional Teacher trait checks, some revised teacher room handling (it is now possible to assign a teacher their own office), and made it so that teachers are assigned to the teacher room at the start of classroom assignments (to hopefully prevent double-booking classrooms due to any old assignments). Additionally, added the new teacher office traits to the existing Teacher Room location.
----
The razor item events now only mark a single item instance as used. Additionally, the Shave button event now preferentially looks for used razors before using a new razor.
----
Altered the "Add To Dictionary" operations to have add/remove input links, and be retitled as "Modify Dictionary"
----
Reorganized some operations in UpdateStudentCount.ve.xml to prevent first-day enrollment of ScheduleHandlerNone NPCs.
Fixed an incorrect variable link in Ward/Measurement.ve.xml
----
Added some instantiation checks to various text replacement dictionary functions.
----
Revised the SPE chain a bit. It should now be easier to open (no school-wide Lust requirement), the Computer Lab upgrade event is now non-random, and the journal will show up (under "Computer Room") before the club is opened to guide players towards what needs to be done.
----
Added a new set of status effect modifiers, which multiply the current value of a stat (allowing, e.g., +20% Lust)
v1.10.0 SP1-SP3
updating the listing of rule groups within the file editor to reflect changes in code revision #2362.
----
Corrected "wardrode" instances to "wardrobe" (exception: filenames)
Tweaked the logic in FunctionLibrary/Spycams/ChangingRoom.ve.xml to avoid pulling an object from an empty list.
Fixed some text replacements in Classroom Shared/RainSoaked.ve.xml
Modernized Ward/BreastExamLez.ve.xml
----
Removed the Ginny Nightshade requirement from SPE Club's start event. She is not specifically mentioned anywhere in the event, has no obvious connection to the club for players, and this seems like the most-likely cause of players reporting an inability to trigger the event.
----
Removed hard-coded NormalSchool paths in image references.
----
Added a tweak so that Add Person Stats With Limits will now ignore the effects of AddStatValue, MinStatValue, and MaxStatValue status effect modifiers, resulting in more accurate caps.
----
Stripping had an error which caused lust gain regardless of giverecieve settings.
----
Correction to seteffectsonobservers, giverecieve was set incorrectly.
----
Consolidated a number of Location-based operations into two: Person Location, and Location String, each of which have a number of link variants. Also includes an update to trait handling which will allow for automatic enrollment/expelling of students as they gain or lose the Enrolled and Expelled traits.
----
Fixed a bug where Subject Experience's Set input was adding instead of setting. Also includes DasBrain's fix of Set Object List, resolving a bug where it didn't actually activate its output link.
----
Fixed some missing connections within VirginAsk that could cause the event to end prematurely.
----
Added a LinkVariation for the Get Student's Class operation which returns the class's current classroom. If no class is currently in session, the result will be Nothing.
----
Revised Person.AddTrait(), Person.RemoveTrait(), and Person.ValidateTraitList() so that adding or removing the "Enrolled" trait, or adding the "Expelled" trait, should perform all required actions to enroll or expel the student.
----
Use event schedule to determine if the PA system has been build.
Allows for easier updating of the relevant events.
Fast Schedule Check should improve performance a bit.
----
Use HasQuest instead of special for candidate selection.
----
Added a new set of interactions to arbitrarily mark and unmark NPCs as favorites.
----
Added additional rule effect person groups. Also simplified the logic a bit.
New list of groups: Principal, All, Student, Detention, Rogue, Parent, Teacher, Staff, OtherChild, OtherAdult
----
- Added some additional debug info to the Profiler tab.
- Added ability to explicitly set thread pool size via command line arguments "-threadPoolMin" and "-threadPoolMax".
----
Add a quest filter to the PA system.
----
Altered SeqAct_HaveSex so that Nothing is a valid second person object, to allow for more intuitive setups for masturbation calls.
Revised UpdateStudentCount so that it now *favors* minority genders in the calculations instead of *requiring* them; this way, it still shifts towards gender equality, but not so harshly as before.
Fixed a few bugs (mostly resulting from me being an SQL noob) in VirginAsk.
Replaced the SetPersonContextDict calls in BeachGirls with Text Replace (Person Context) operations; they were totally unnecessary for the event, since it never has the secondary girl talk and never uses the other features, and just needlessly added complexity.
Added a Nude Uniform check to RoofNude, removed the Event Is Scheduled check since it has fast scheduling check enabled.
Reordered operations in SwimTeamCoach to avoid a null reference for the secretary.
Tweaked AndyNight so that it will work even without the included engine update.
Added a missing text replacement tag closing bracket in Visit_BethManiliBoyfriendCheated.
----
Massive overhaul of VirginAsk. It now uses engine-level database tags to catch any sex interactions regardless of source, handles all genders, and has special penalty routes for asking people with whom you've had all possible types of sex. Additionally, the over-asking penalty has been changed from an absolute number of times to instead be based on re-asking during the same day.
----
Fixed a logic error in AskAboutParents.ve.xml, where the wrong parent was being checked before branching.
----
Enable Mods by default.
----
Fix Teacher Bondage uniform.
v1.10.0
One of the goals of this release has been polishing up the existing content and introducing a general framework for certain gameplay mechanics, so they appear more coherent and balanced in terms of gameplay.
There have been over 1000 commits with changes to content alone, over the course of several years.
- Lots of events have been reworked, code cleaned and/or typos fixed, etc.
- Stand out items (i.e. things to specifically look for) are noted below
- For the complete list of all changes see: https://chat.henthighschool.com/channel/hhsplus
- For the list of addressed issues that were reported via the bugtracker see: https://www.henthighschool.com/hhsplus/bugs/changelog_page.php?version_id=59
Notable Changes and New Stuff
-----------------------------
- UI notifications have been added to show individual changes in the stats, skills, properties and relationship trackers of NPCs that are part of active events.
We feel that this drastically alters the gameplay experience and improves the sense of agency of the player. There are many sophisticated VEE operations related to controlling this. Details are further below.
- Global variables have been introduced as a mechanic in preparation of a future modding framework.
- Panty Thief Paperdolls (not yet used)
- New Hardman events in Ward
- Rework and new content in Underwood quest line
- Many reworks and improvements by Malorn (Annette, general school and interactions, beach, swimming)
- Cleanup of rules (removed outdated parts, adjusted balancing)
- Reducing image file size
- Tagging images correctly
- New PTA decisions (sex machines, affection at pool)
- New background music available for selection
- New enrollment mechanics
- Balancing update to school events
- Lactation drug (and paperdoll effects)
- Custom calendar notes creation/editing
- Bunch of new “apps” on the phone
- Neglected lovers
- Evolution of Get Physical - now called General Sex
- Hypnosis now supported for female PC
- Futas are shown in light green on the people list if you know their gender.
- Improved visibility of favorite characters by adding a star before their name on the person list of the current location.
- Added a new game option to remove HasQuest from all characters. Tester feedback showed that this feature is not universally liked, since it may spoil the discovery aspect.
UI Notifications
----------------
- Added UI change notifications for operations: "Person Stats", "Person Stats by List", "Add Arousal by Fetish", "Person Body Sizes", "Have Sex", "Perform Intercourse", "Person Skill"
- Fixed notifcation for groups showing the sum of the change instead of the average.
- The Scenario Config has a new property that determines whether the notifications are enabled or disabled by default. The event may still explicitly override that property with the mentioned operation.
- UI notifications are never shown for event hierarchies that were not originally started in their Execute phase.
- Started work on grouping stat change notifications from multiple persons and operations.
- Added operations to control the gathering and grouping of UI Change Notifications.
- Added operation to add a list of persons to a UI Change Notification Group.
- Fixed grouped notifications being shown for every person of the group, rather than just once at the end.
- Grouped notifications now show the number of people in the group.
- Sex Toy objects are now exempted from showing change notifications.
- Gathered notifications are shown automatically on passing time now.
- A flag in the scenario config now controls whether notifications are gathered by default or not.
(Note: When gathering notifications, "Person Stats by List" will currently record the changes for each person individually if no group name has been set yet. This is due to how that operation works and might actually be intended in some use cases.)
- Person Stats by List now implicitly adds affected persons to a group named "People" when changing their stats and gathering is enabled.
- "Person Stats by List" operation will now attempt to use the comment of the linked Object List variable as group name for the stat notifications.
- "Add to UI Change Notification Group" now has an optional variable link to specify the group name. If not set, it will use the name from the current event execution.
- Removed the "Change" from the names of "UI Change Notification" operations for brevity. They still conceptually refer to notifications about changes, though.
- Stat and Skill notifications can now define their increment/decrement colors in the XML definitions.
- Stat notifications can now define whether they are shown for all characters, players or NPCs only or not at all in the XML definitions.
- Notifications for NPCs are now shown under the location label, rather than the occupands table.
- Prevented player character from ever being added to notification groups.
- If a notification group only consists of a single person, it will just use the notification display for single persons (but still using the group name specified for the group instead of the NPC's name) instead of showing averages and the number of affected NPCs.
- "Add to UI Notification Group" operation now has a link variation to replace the Object List variable link with one for Object variables, so the operation can now also be used to add individual persons directly.
- AddToUIChangeNotificationGroup now supports link variations for objects and object lists at the same time.
- Added separate operation SetUIChangeNotificationFakeName to set the fake name for notifications for a single person.
- Reverted previous change so that group names are now also used, even when there is just a single person (in which case it still drops the "avg." part).
- Fixed notifications using the real person Name instead of the Display Name.
- Notifications should now honor the value of the UINotificationVisibility specified in the stat and skill definitions.
- Notifications are now invoked directly by the queue's worker thread instead of creating a new work item for a threadpool first.
- Improved clarity of text when showing relationship notifications.
- If a grouoed relationship notification is from exactly one person to another, it will show the target's name instead of the number of affected relationships.
- Added notification history.
- Fixed duplicate history entries being created for single NPC notifications.
Global Variables
----------------
- Added dedicated system for global variables. In order to make use of a global variable, it must be added as XML file to the new "GlobalVariables" folder. A new file editor tab helps with that.
The old version with Reference Variables still works, but preferably this new version will be used from here on out for global stuff and the references only to refer to variables inside the same event.
- Added new tab to debug panel to view and edit the values of global variables.
- Added DisplayMode property to global variable definitions. It's currently used only in combination with global integer variables, where you can specify that the value should be shown and parsed as bit field instead of a regular integer.
- The property form for assigning global variables will now show an edit button to open the regular property form for that variable type if opened via the Event Debugger.
- Added the ability to create global variables from the editor.
- Added the ability to "reload" global variables. Currently it only adds new global variables.
Modding Framework
-----------------
- Merged mod framework from feature branch to trunk. It is still disabled by default and uses an implementation instead that only uses the base game folder structure.
- Added the directory where mod folders are meant to be kept.
- Changed additional file system operations to properly use the modding framework.
- Common FileManager functionality was extracted into an interface and the ModFileManager is no longer a subclass of the BaseGameFileManager.
- Changed code in several places to now use file paths relative to the current scenario root folder instead of relative to the game directory.
- There is still built-in backwards compatibility for resolving the legacy paths, but they should not be used anymore to allow for proper modding support.
- Removed explicit mention of "Schools\NormalSchool\" in XML files, in accordance with the new code.
- Fixed some issues with the order in which resources from mods were resolved.
- Fixed resources from mods having a leading backslash when getting their relative path.
- Moved FrontendWindow to a subfolder and extracted the UI for the Mods panel to a dedicated user control.
- ModInfo.xml from mod directories is now used to display additional information about the selected mod in the Mods panel.
- ModInfo now has an additional property for the TitleImage to display in the UI.
- Added a button in the Mods panel to check all currently active mods (but not the base game) for errors.
- Savegames now include their mod configuration and restore it when loading the savegame.
- The active mod configuration can now be edited via a tab in the debug menu.
- Added a new feature to the Mods menu to list all files that are overridden by files from a mod, as well as all files in the mod that get overridden by other files.
- Related Events tool now properly handled events from active mods.
Other tweaks
------------
- FontAwesome icons can now be used with event decision buttons by writing the "fa-iconname" tag at the start of the decision text.
- Windows created from the Frontend now appear on the same monitor as the Frontend.
- Accounting tab now shows net profit/loss as dedicated row in the list and has a description.
- Shopping and Trading forms now have an additional button for convenience to buy/sell exactly one item.
- Shopping and Trading forms now remember the last picked amount for buying/selling per item. (Based on the item's display name.)
- Chat topics of the general chat event have been turned into individual interactions. The old event is still provided for compatibility and in case the new stuff still has some bugs.
- Maximum timeout for async event processing is now configurable instead of hardcoding it. By default, if event processing has not finished after 30 seconds, it is forcefully aborted.
- Sound device can now be configured from the settings page.
- Some improvements to the Jobs panel in the management window:
- Biography is now read from a dedicated field in the Person object, so it's possible to add bios for each teacher to display there.
- The individual experience in each subject is now listed in addition to the subject family experience. (This is not the same as the overall qualification, which would take stats into account, though.)
- Added a BaseValue for the Stamina subject influences in SchoolSport and Swimming subjects, so no teacher with average stamina is better in PE than in their primary subject.
- Removed the Expell Student operation from MissingGirlFound. This way, taking the girl for your own slave still leaves a spot reserved for her at the school in case you free her in good condition. She will still get expelled by the WholeFamilyMovesAway function library event if she is underfed or released in poor condition.
- Added Panty Thief support for Anastasia Goth (not yet used, but I plan to integrate it into some of her interaction events).
- Restricted Kiss and Ask For Sex interactions so that they only appear if the player character is interested in the target's gender.
- Added a MinigameConfig file which gives access to several variables each for the Lockpicking (Balance) and Hacking minigames.
- When loading a saved game without a MinigameConfig file, a default one will be created for the savegame. This default file will have identical values to how the minigames functioned in previous game versions.
- Also included is a variant config file which has more difficulty and skill level changes applied; be forewarned, the values in this variant config have not been heavily tested.
- Added a member list to the club tab of the management window.
- Altered the management window so that the student list, staff list, and club member list color character names as per the main screen's occupant list.
- Added option to log unresponsive operations as warning if they take longer than a configurable threshold amount of time.
- Added mechanism to log thread dumps of unresponsive VEE operations.
- Moved setting to Profiling tab.
- Added a smartphone app that lets the player pick their alarm clock sound. (Currently only has our existing beep sound and a muted option. Feel free to add more.)
- Added negative event that fires every time the player tries to enter the OP room in the hospital.
- General refactoring of GameWindow, turning some of the hardcoded button bindings and hotkeys into commands. Some hotkeys have changed as a result, for example settings are now opened with CTRL+S instead of CTRL+Q.
- Notification history overlay now takes up the whole screen and blocks all UI elements behind it from being clicked. The toggle button has been moved in front of it to ensure it can be disabled. It's also bound to F2, so it can be summoned in events.
- Toggling Worksafe Mode or Debug Exec Phase Only settings through hotkeys now writes a notification, so the player actually sees the effect.
- Wait buttons now also use commands.
- Prevent settings from being opened via hotkey while an event is showing.
- Related Events tool now limits the result to events that are in the immediate vicinity of the current event.
Developer/API changes (only relevant for mod authors)
-----------------------------------------------------
- DetentionLocationProvider will now use the first rule with "detention" (case-insensitive) in its name instead of looking hard-coded for "Detention rules".
- Rules now apply the actual value for a Reputation change on each day. Previously, it would only apply 1/5th of the value to avoid too rapid growth. This behavior was confusing and entirely opaque to modders.
- CurrentOutfit is now always calculated whenever its checked.
- While showing a teacher in the management panel, their OutfitName will be set to "Work" while updating their paperdoll and back to the previous value afterwards.
- Random Chance now works for values from 0 to 100, rather than 1 to 99.
- More population-related properties can now be configured in the ScenarioConfig.
- ScenarioConfig is now visible in the Game Objects debug tab.
- Documented use of the individual properties in the ScenarioConfig.
- Adding/Setting the relationship value in the database now clamps it to the [-100;100] range. Previously it was only clamped when reading the value.
- Event priority is now always serialized, even if it's 0.
- Clubs will now validate if their current members have the correct gender for the club on a daily basis and kick out anyone who no longer fits.
- Simplified code for the calendar note tooltip at the bottom and made it only show unfinished notes.
- The maximum number of students per class can now be configured via the Scenario Config. A new VEE constant is available that returns the current value of the config.
- "Item by Name" operations now use the regular "Name" property of an item by default and have a link variation for the "Display Name".
- SetRuleActive is now named SetRuleAvailable in code and XML.
- SetRuleChoiceActive is now named SetRuleChoiceAvailable in code and XML.
- Added a new operation SetRuleChoiceActive (i.e. same name as the old operation) that can be used to set the currently active Rule Choice from VEE.
- Creating calendar notes with a blank name now cause an exception.
- Adding calendar notes with a blank name now causes an exception.
- Deleting calendar notes now only considers the name and not at the other properties.
- Database Query operation now has an additional input to end the iteration prematurely and also frees up resources when activating the Finished output.
- Remote Event operations now have an error check for connections to "N/A" inputs and outputs.
- Added button to Options menu to manually clear the event cache of the editor.
- Refactored error checking framework to use structured data for findings instead of one big concatenated string.
- Error messages have been overhauled for brevity, since context information is now provided in the structured data.
- Added new view to present the structured results of the error check.
- Checking for unlinked objects and incorrect variable cardinalities now also uses the new system, so all results can be presented in the same view at once and without individual message boxes.
- Loading tooltips for Remote Events already placed in the editor will now load the tooltip of that specific event synchronously in order to provide instant feedback. (The tooltip is still cached in this step to avoid overhead)
- Person name list in the debug menu is now editable and the category ALL is the preselected default.
- VEE now uses WPF CommandBindings for common menu items, which come with some built-in keybindings that are familiar from other Windows software.
- Toggling VEE tooltips is now bound to F2.
- Command to show orphaned assets is now available in the VEE menu as well.
- Refactored the whole BodySize mechanic and made it compatible with new StatusEffectModifiers.
- This also makes it easier to add new body sizes in the future, since everything now uses a unified system to access them.
- Added VEE operation to get the list of all School Subjects in the game.
- Added custom override for last name, in the same way as for the first name.
- Added property "HideFromMenu" to Rule definition to hide it from the management panel while otherwise preserving its functionality.
- Added File Editor for Rules, so the descriptions and properties can be seen. (Not necessarily recommended for active use due to File Editor bugs.)
- Added "Get Rule" operation to acquire a Rule object for use with reflective property modification.
- Config now can specify in the setting "vee_AssetPathsWithoutMetadata" which paths relative to the school folder are OK to have no metadata associated with assets, preventing from showing them in the Orphaned Assets dialog.
- Orphaned Assets results can now be exported to CSV.
- Added new Dev Tool to the VEE that allows to check all events for errors at once. (Takes a moment to finish)
- Fixed list in result window of error checking phase not being scrollable.
- Added error report if an event with Trigger Type "Location", "Visit" or "Button" contains no reachable "Accept Event" operation. (It would be even better if it was checking if it can be reached from the Try-phase, but that's not as easy to fix right now.)
- If the event description contains #NoAccept, it won't cause an error message when there is no Accept Event operation on specific Trigger Types.
- Removed the almost all differences between the folders under Events\.
- NativeEvents are still special, as the engine knows their name.
- Vist events in Interactions are attached to the player at game start.
- All events in StaticEvents are attached to the player at game start.
- Events in folders mentioned by a Location or ClubLevel are attached to the Location/ClubLevel.
- ScheduleHander events in ScheduleHandlers are attached to the person with that name.
- The Snippets and Templates folders are ignored.
- Schedule handlers now work for all persons, special or not. They can be attached/detached like any other event.
- The Get Events from Folder operation now works for all folders (except Snippets and Templates).
- New VE Op: Set Display Gender Override - overrides how the person should be displayed in the person list. Doesn't affect paperdolls.
- New VE Conditions: Person Display Gender & Person Gender Override. Used to determine the data above.
- PTA Members can be dynamically changed by adding / removing the PTA trait.
- New VE Op: Convert To Object List - Idea is for this to be used after an Get Property By Name operation.
- New VE Op: Set Object List. Doubles as List Union if more than one input list is used.
- Created a universal WillpowerCheck.ve.xml that factors in various modifiers, can use authority of the 'enforcer' and has thresholds built in. Hopefully a good starting place for more willpower-related event work.
- Added Link Variation to Attach Event to provide an event as parameter.
- Added String Trim operation.
- Implemented a simple dirty flag for the VE Editor. Moving an object around does not set the dirty flag, all other modifications should.
- Don't ask if you want to close an event tab if the event is not dirty.
- Don't ask if you want to close the editor if no loaded event has the dirty flag set.
- Outfit Name now works with Locations too. For the Get input, it takes Location Modifiers into account.
- Allow CheckEventExecution to work in syncronous execution.
- Added SeqCond_PersonShift.
- Implemented styling For Show Decisions and Show Decisions (Dynamic).
- Made Text Replace Dictionary take the person dictionary into account.
- Added 2 new operations: Get Account by Name and Get All Accounts.
- Added a new condition: Is Account Active.
- Added Link Variations to the existing 2 operations that deal with Accounts to accept an Account Object.
- Virtualized all PaperDollHandlers. Threw messages on multi-threaded use before.
- Show PD in outfit from the engine (Management Panel...) will also set Clothing Always Wear to true.
- Add new status effect to allow temporary outfit changes. Not yet used, as this would break existing games.
- Allow dynamically adding/removing staff (teachers included) to School Management
- Adding or removing the Staff trait to a person makes it available/unavailable for hiring through School Management
- If the person is hired and you change their Job property they will be fired
- Adding the Teacher job to a person will add them subject experience if they don't have it already
- Use enum for calendar status.
- Text Replace operation now uses different values for each match if the replacement is a random variable.
- GameObjects are now reloadable via a new tab in the debug menu. It's just the barebones functionality right now. No state is carried over from the previous one and no references are being replaced in other object instances.
- Reloading certain objects now tries to keep the status of their availability, since it's likely they got enabled during gameplay and we don't want to break quest progress.
- Job string is now cleared on unchecking Job checkmark, previously the check would reset if you didn't manually clear the string.
- Checking the Job checkmark, but leaving the string empty will now match people without a Job (like Person Filter: Job), instead of throwing an exception.
- Fixed copy-paste not remembering the job, unfortunately doesn't work if job is empty (need to reenable checkmark for now).
- Fixed DisplayName not linking back to Name if no display name is set.
- Show Decisions now shows the respective decision text on up to 80% of the operation's width (scales with zoom factor).
- Added support for marking people as asleep through status effects (using the status tag "ScheduleHandlerAsleepIndicator"), to allow for future support for sleeping drugs / devices / etc.
- Additionally made it so that people marked as asleep through status effects will not be moved by the scheduling system while the effect is active.
- Added a ScheduleHandlerAwakeIndicator, which overrides the IsAsleep checks to return False. This indicator still blocks movement and still returns the Sleep outfit for paperdoll checks.
- Added link variations to SeqAct_PersonStatusEffect to allow for directly setting the duration and/or start time when adding an effect to a Person, rather than requiring a separate SeqAct_PersonStatusEffectDuration node to accomplish this.
- Added a new operation "Add Person Stats With Limits", which allows stat modifiers to a set of Person objects (or object lists, if using the link variation) which will not exceed supplied minimum and maximum values.
- Added a new Add Person Skill With Limits operation. Same deal as the new stats operation, just targeting skills instead.
- Added a new HeightMultiplier field to Person objects, which will affect the paper doll size in VEE events and the interaction menu (does not currently affect the Management Panel or Character Creator).
- This can be controlled through a new gender-specific setting in the scenario config, and can be set directly within special character files.
- The default config has been updated to provide some variation (by default, there will be an 8% range of variation, and males will tend to be SLIGHTLY taller than females, with futas being in-between)
without looking too odd (e.g., students stretched to taller-than-adult sizes look weird because of their head size).
- Added LikedGender (a List(Of Gender) property) and RequiredStats (a List(Of StatRange) property) to the Location class, to allow for more restrictions on who can visit a given location.
- At the moment, the World Editor is able to alter the LikedGender property, but the RequiredStats property can only be edited through a text editor (Sorry, I suck with UI design!). Values have been added for the Cabaret's Dining Room location as an example.
- Added a new OccupantInfoConfig filetype, which controls what information is displayed in the occupant list.
- Added a {Job} replacement to the text replacer used by Text Replace (Person).
- Added an additional automatic trait ("Parent"), which is added automatically to anyone with children as they are loaded or generated, and is removed from anyone without children.
- Added a list of traits with hard-coded functionality to the descriptions of the Get Person Traits and Person Traits operations.
- Added automatic tracking of the parents of enrolled children through a "HasEnrolledChild" trait.
- Refactored enrollment and expelling to be handled through Person class subroutines, which handle any necessary schoolclass, club, and trait changes.
- Added three more options to Get Person List, for retrieving lists of all parents, the parents of your school's students, and the parents of other students.
- Added access properties for the Range.Min and Range.Max values to the StatRange struct, to make it play better with the File Editor.
- Added a {Class} replacer to the Text Replace (Person) replacer, which replaces with a student's class number.
- Added a string-based Fetish lookup function to the Person class.
- Expanded the OccupantInfoConfig with many additional conditions, and grouped most of them into rough categories within the editor.
- Updated all existing OccupantInfoConfigs for the renamed properties.
- Added a new OccupantInfoConfig which displays the class number for enrolled students; their display should now read as ", Student (class 1)" or similar.
- Added new VEE operation to put key-value-pairs into a dictionary in the event runner, which can then be read by the calling code. This allows events to provide optional return values to the code without impacting the use cases where it's not needed.
- Interactions now check if a boolean result value is set for the key "Interaction_KeepGoing".
- If it exists and is True, the interaction will force the NPC to stay in the location in order to keep it going.
- If it exists and is False, the interaction dialog will forcefully stop (even if the NPC is not moved away).
- If it does not exist, it behaves like before and depends on whether the NPC is still in the location.
- This property is currently still experimental. It might get replaced with a probability-based one in the future.
- Interaction Events can now use Text Replace gender placeholders in the Choice Name.
- Checking events for errors now also ensures that the variable type of linked variables match the declared type of the connector they are linked to.
- Reference Variables now display an info message during validation if the referenced variable does not have a comment.
- String variables can now be converted to String List variables via the "Replace" menu.
- String List variables can be converted back to String variables. (This will use a random entry from the list, so it could lead to potential loss of data)
- Updated the Perform Intercourse VEE operation. It now handles updates the relationship database as appropriate when two non-sex-toy characters have sex.
- Additionally, the previously-ignored Cum Inside parameter is now used to determine whether a creampie entry should be added to the database.
- Updated the Person Intercourse Manager (used by the Have Sex VEE operation). It now properly accounts for sex toys, and will *NOT* update the relationship database if someone is just masturbating with a sex toy (but *will* give additional joy if they have masturbation or sex toy fetishes).
- Additionally, it will now set "lost virginity to" / "took virginity of" entries for male and futa active partners having vaginal sex for the first time.
- Copied the body size change calculations from the Perform Intercourse VEE operation to the Person Intercourse Manager, which previously did not have any size change functionality.
- In the case of dildo-based sex, I made the PIM assumes a medium-sized dildo, since the Have Sex operation doesn't pass through any sort of size data and I really don't want to refactor it to do so.
Bugfixes
--------
- Fixed one constellation of PersonTraits operation removing the trait when it should actually add it.
- Duplicating SeqCond_CompareDate now properly copies link variations.
- Duplicating a ShowRandomImage operation now also duplicates the separate output links correctly, if that option is set on the source.
- Fixed bug causing the CurrentOutfit to not properly resolve to the Club Outfit because it was comparing the name of the club location to the actual location.
- Attempt to improve classroom scheduling.
- Fixed null pointer when hashing the name of scenario configurations of existing save files.
- Better handling for random numbers from floating point ranges.
- Fixed off-by-1 error potentially preventing the last item in a location from being picked up by NPCs.
- Made sure that String-to-Number conversions in VEE operations use the invariant culture, to avoid unexpected issues on specific locales.
- Fixed bug causing exception when attaching/detaching an event to a person in Try-phase while having multi-threading disabled.
- Database input field in debug menu now accepts return and tab keys.
- Database input field in VEE menu now accepts return and tab keys.
- SetPersonTextColor operation was reading variables at the wrong index.
- Fixed String Pad operation not having an output link.
- Check Rule condition now makes sure that rules have been loaded when pasting the operation.
- Fixed bug causing status effects that modify the maximum value to change the minimum value instead.
- AddArousalByFetish will now no longer reset the comment if it does not match the format of autogenerated comments for the operation.
- Fixed bug causing PersonStatsByList operation to incorrectly calculate the average value if it was used for multiple stats in the same operation.
- Fixed bug causing the reloading of events in a location subfolder to also be added to the parent folder.
- Special characters now only get a random head assigned for the gender slot they are missing, rather than both.
- The Frontend now disappears and stops the task bar status after the Initialize event, rather than the StartEvent.
- Classes now only allow to add your own students to them, which fixes a bug that assigned expelled students to the "spare students" class.
- If a GameMind for the current scenario does not contain a stat adjustment for a specific stat, this will no longer throw an exception but just skip the stat.
- No longer throw an exception during daily population stat adjustments if the scenario defines no mind data.
- Fixed exception when creating second VEE directly from new process where it skips the Frontend.
- Fixed some Item operations not taking over their link variations when cloning them.
- Description fields of objects in File Editor now support multi-line text.
- Fixed clubs not applying their stat changes at the end of their meeting.
- Clubs now only apply their stat changes if the person is in the location of the club meeting.
- Fixed adding/removing a person to/from a club potentially doing so one more time than intended.
- Pending autosaves are now also done after clicking on task buttons, interactions and using items, rather than just passing time.
- The current day is now marked as last autosave day before doing the save, so it is correctly reflected in the save file.
- Fixed typecast error in PersonStatsByList.
- Set Inventory Image operation no longer throws random exceptions during error checking.
- Bitwise Integer Math operation no longer requires a variable connected to B if ONLY the "NOT" input is used. It still does in all other cases.
- Corrected layout resizing of school subject description.
- Exporting profiling data to CSV now adds quotes to escape the name, since some SQL statements contain semicolons that otherwise mess up the format.
- Button events are now checked in parallel if multithreading is not disabled.
- Changed the way non-always outfit names work. Now each category is responsible for selecting the outfit. See PaperDollHandlers/Student/Swimsuit/ClothingItem.ve.xml for an example.
- Fixed changed outfit names in all events.
- Another fix for BrokenSwimsuit.
- Fixed logic error in SeqAct_AttachEvent. It caused NPEs after loading a saved game.
- Fixed miniquests.
- Fixed multi-selection in VE.
- Fixed copy and paste.
- Change Number From String generation strategy. Should prevent stuff like n mod 9 = 0 => n mod 3 = 0
- Hopefully fixed IndexOfString with last input. Before it did start at position 0, and goes backwards, always returning -1.
- Fixed events in the Debug Events list not being in alphabetical order after the rework of event loading.
- Added a daily event to update the outfit levels of the characters. They were always 0.
- Fixed Person Status Effect Duration returning the lifespan instead of te remaining lifespan in the Get input.
- Fixed bug preventing numerical value of stat bars from being displayed.
- Fixed some events to use Text Replace (Person Context) and proper placeholders for pronouns and names, so it's possible in theory to change the display name and gender of special characters.
- Added an item event for the Double Dildo, which was lacking one; it's basically a placeholder copy of the Deluxe dildo event with slightly increased values, since balancing isn't really my forte.
- Fixed an exception that occurs when hiring all available staff.
- Fixed a logic error in TraitHelper.Match(), where the "Some" result could be incorrectly skipped due to the "HasNone" boolean never being toggled off when matches were found.
Result: The "Has Traits" operation should now always return as expected, instead of sometimes incorrectly returning that no matches were found.
- An inverted condition in the JobDoesNotEqual check was causing jobless people to pass checks that were supposed to filter out people without jobs.
- Fixed comment boxes losing their stored size when copy-pasting them.
Known (open) Issues
-------------------
- Very rare and unreproducible performance drops during event progression where the game may freeze for several seconds.
- If you enabled performance monitoring in the debug menu by entering a threshold value in the profiler tab (something reasonable like 5 seconds), you should be able to find an entry in the game's log folder about this incident. We would like to hear back about it.
v.1.9.5-2050
Changes and New Stuff
v.1.9.4-2008
[Deleted Files]
The following files from the full 1.9.3 release are no longer needed in 1.9.4 and can/should be deleted to avoid potential issues in the game:
(Since we can't tell Zip archives to delete those files, you need to remove them manually)
// General update to loan stuff. Existing events have been moved, merged and updated.
- Schools/NormalSchool/Events/FunctionLibrary/LoanConsideration.ve.xml
- Schools/NormalSchool/Events/FunctionLibrary/LoanGetNumRemainingPayments.ve.xml
- Schools/NormalSchool/Events/FunctionLibrary/LoanGetPayment.ve.xml
- Schools/NormalSchool/Events/Location/Bank/LoanRepaymentTittyfuck.ve.xml
// Moved to changing room.
- Schools/NormalSchool/Events/Location/School/Hallway Shared/LockerGirl.ve.xml
// "My Debut" was not used anywhere. "School of Cock" has been replaced by three gender-specific books "School of Sex".
- Schools/NormalSchool/Items/Books/My Debut.xml
- Schools/NormalSchool/Items/Books/School of Cock.xml
// Image folder was renamed to "School Main Gate".
- Schools/NormalSchool/Images/Locations/Normal School
// Item has been renamed to "Onsen Membership Card" and related events have been improved.
- Schools/NormalSchool/Items/Miscellaneous/Onsen card.xml
[Full Commit Log]
The following commits have been made in this release:
----
- Fixed SQLite backup not working due to missing parameters for source and destination DB type. (Previous versions may have tolerated that, but the latest doesn't.) bug #1199
----
- Fixed exception when trying to display tooltip for a RemoteEvent operation that had no event specified yet.
bug #1198
----
- Removed obsolete "BreakInLevel" legacy property from Item class.
----
Fixes (or should fix) two Principal clothing bugs (one per bug #1195)
• Reported by roberttx: player's char is a floating head
• Reported by xyza7890: Commando underwear variant of clothing not displayed
----
- Changed most (but not all) internal person list structures to use UIDs instead of names as reference.
- Added some missing values to the String Constants Hint form.
bug #1195
----
Fixes a (progress stopping) bug reported by barteke22 (can't propose Practical Sex Ed)
----
- Remove Item from Inventory now processes all item variables attached to the operation.
- Added note that the "set parameter to nothing for removal" option only applies to item events that are directly triggered by the engine.
bug #1192
----
- Removal of some hardcoded locations from ScheduleHandler.
----
General update and rework of the bank loans stuff (modernising, text improvements, etc.)
- Fixes big reported by jsb (loan payment treated as income, not expense.)
- Fixes unreported bug of loan terminating 1 month early
- Merged LoanRepayment and LoanRepaymentTittyfuck into one event
- Updated EdgarBanks xml (giving him his speaking color)
- Added LOC_Bank (so bank is only open during office hours)
- Linked Bank map to Stores Shared (so bank closes after office hours)
----
Updated Tanning oil_ItemEvent (overlooked in the work done per bug #1178)
- Added some content and changed the effects
- It's no longer such a 'quick and easy' appearance booster
- But does deliver others things
----
- "Location Connection" operation now requires the additional "Travel Time" parameter when adding a new connection.
- Removed obsolete "Time to Cross" property from location.
----
Moved LockerGirl to changing room (where there are lockers) and did a general update.
----
More work done on the map
- Further tweaks to some school location visit frequencies (e.g. increased canteen usage during breaks)
- Cleaned up Editor layout to improve readability
- Changed Red corner and Cabaret linkages to what I believe feels more logical (and matches story content)
- Reduced 'To Smallville' location buttons to only those required (i.e. is the only way out)
- Renamed Onsen changing rooms to match event folder names
----
General clean up / modernisation of these events
----
Bug fix: Execute was connected to Add input of Person Stats 117 (increasing adding inhibition every time the event fired)
----
Adding moving player to bedroom if they fall asleep at home (per request from DeniedInMontana)
- Also made a minor adjustment to probability of making it home [try to make it home path]. It's now 40 yes / 60 no
----
Fixes issue raised by jsd (relaxing time passing mechanic out of whack)
----
Should fix the bug reported by blumph (Exhibition club not progressing, and Club Journal throws an exception)
- Also did a couple of minor clean-ups to related events
----
Just more typos
----
Mostly just fixing typos (plus some minor code clean ups)
----
Just marking various (with todos and notes) for rework
----
Just fixing typos
----
- "Database" tab in Debug Window can now correctly handle the use of "EXPLAIN QUERY PLAN" commands, to get an overview over the performance of a specific query.
- Optimized query for Person Relationship Database by adding two indices to avoid full table scans on most operations. (This improves startup performance A LOT!)
----
Just updated (existing) todos. Event needs a general update.
----
Added a bookshelf (i.e. somewhere to store books)
----
Fixes bug report by Duskoxiv (general passing out from low energy not resulting in sleep)
----
- Amended some of the school navigation and button position (to what I believe feel is more logical)
- Replaced item 'School of Cock' with 3 'School of Sex' items (with gender preference-specific variants and item images)
- Removed item 'My Debut' (as isn't used anywhere)
----
Just fixing more typos
----
Just fixing typos (talk sentences missing closing quote)
----
Fixed bug reported by blumph (event was not rescheduling itself correctly)
----
Fixing (exception causing) bug in TriggerCompulsoryMasturbation
----
Main just typos (with a couple of minor code clean-ups)
----
- Fixed bug reported by remembermethistime (Special Char nude breasts not working)
- Final cleanup and refinement to exhaustion mechanics
----
Fixed a bug reported by warrior89 (progress stopping exception the Underwood chain)
----
- Fixed World Editor trying to load Worlds as World Extension through the menu.
bug #1188
----
- Remove Item by Name from Inventory had incorrect variable link type set.
bug #1190
----
General clean-up and update to PrincipalSleepTracker
- Adds a 'clock dream' (just to say something is still happening during long sleep period)
- Adds a graduation factor into the algorithm (be better reflect exhaustion accumulating over time)
- Fixed bug reported by imnotoverhere (not resetting states correctly after a collapse event)
- Fixes lesser issue of not calculating fitness correctly
----
Corrected event intended to fire only a 'Classroom' firing in Gym, Swimming Pool, Etc.
----
Amended 'Normal School' location name to 'School Main Gate' and set description back to 'WayToSchool'. And, as part and parcel:
- Renamed location image folder to match
- Updated all events that use the location name and location image
- Added a note to the Event Images Folder (which is still called 'Normal School') to explain the relationship
- Also complete a general review of school locations and corrected various inconsistencies (full details posted to bug #1185)
----
Cleaned up Onsen membership and logic of the events:
- Membership now required to use the Onsen (previously could use without being a member, even you're told you can't).
- Membership lifetime fee increased to a (slightly more sensible) $500
- Membership card given an image and purpose is better explained
----
Bug fixes: Immodesty check was never firing (due to a bad regex) and the "Always wear" option in AccessWardrobe was broken
----
Torso of futa principal no longer looses breasts in onsen towel (reported by zaiaku)
bug #1187
----
v.1.9.3-1991
Added some new girl names (handpicked from the mod of 22mice)
Statistics tab is now separated into individual sub-tabs for the different statistic topics
Bug fixes:
All item bugs believed to be now fixed (please report any items issues you still encounter)
Lots of typos fixed, thanks to Positron (still more to do here)
Fixed adult Education and Lust values ignoring the values defined in the config
Various other minor bugs fixed (thanks to all the reporters)
Fixed bad performance during event execution (caused by too detailed execution logging)
Improved general startup time in release versions (by pre-compiling XML serializers)
Developer/API changes (only relevant for mod authors):
All school location event folders moved into single main folder "School"
Various new functions added, existing ones amended (with descriptions added/updated) and some moved to appropriate category sub-folders
VEE operations that change a person's inventory now have link variations that determine how many items are affected: Single item instance from a stack of items (Object variable); entire stack of items with the same properties (Object variable); all items with the same name (Object List variable). Stacks can be turned into a list of individual instances via flattening operation.
"Remove Item from Inventory" operation can no longer be used to remove an item from the inventory of its owner while executing its own item event. Instead, set the Item parameter passed to the event to "Nothing".
The "Search for Operation" function in the VEE's DevTools has been improved, so it's now possible to search for operations with a combination of specific names, comments and variable links.
The "Find Unused and Missing Images" function in the VEE's DevTools has been improved and is a lot more reliable now.
Item descriptions can now use placeholders like {Counter}, {Data}, {Uses}, {RemainingUses} and {MaxUses} to insert the respective property value into the text when showing it in the UI.
The "Text Replace Dictionary" now behaves the same way as the "Text Replace Person Context" in terms of scope. It is no longer persisted with the owning event but instead valid for the duration of the current execution. The values are propagated to called remote events and changes made by those events are fetched back to the calling event.
Removed hardcoded random assignment of club president from code. The logic has been recreated in UpdateClubPresidents.ve.xml.
Added some operations to control which school classes are available and how students are assigned to them.
Added mechanic to let mod authors add and override ingame locations in a non-destructive manner via "World Extensions". World Extensions are XML files that contain only a property "Locations" with a list of location data as it would be included in the actual base scenario file. At game start, these additional locations are merged into the existing world (allowing to override existing locations with the same name) before proceeding to load files as usual. The World Editor has a new option to save the current locations as World Extension.
Added new VEE operation to add connections between locations at runtime, so you can hook up locations from World Extensions to the main game locations in an initialization event.
Added new StatusEffectModifier "FollowUpEffect", which applies a new StatusEffect as soon as the existing one expires. Useful to chain different effects together if you don't need to fine-tune them with an actual ExpirationEvent.
Reversed sorting logic in Initialize event: now events with a numerically "higher" priority value are run before those with a "lower" value. The Initialize events that were relying on this have been adjusted accordingly. This also matches the explanation of the "Priority" property in its tooltip.
Прекращена работа программы hhs+
![Hentai High School+ / Разврат в учебке+ [v.1.10.6.0 Release Eng / 1.9.5-2050.41 (update_37) Rus] (2018) (Rus/Eng) [Others] [HHS+]](https://picusha.pw/img/2017-08/21/y67y4rb4xn4vdi5oaxjoalk1s.png)
- Для исправления необходимо обновить/установить несколько программ
Что для чего
Microsoft .NET Framework - Программная платформа, позволяющая запускать программы написанное на разных языках программирования.
Visual C++ Redist - Пакет, устанавливающий компоненты, необходимые для запуска приложений и игр, разработанных с помощью Visual C++. (Ошибка "Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему"). Некоторые антивирусы могут реагировать на файлы как на вирус, но его там нет, это обычная реакция на взломанные ключи, подобная как и на некоторые таблетки для разных игр, в архиве Hybrid версия.
Microsoft Silverlight - Программная платформа, включающая в себя плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики.
Microsoft XML - Набор служб, который позволяет приложениям, написанным на JScript, VBScript и средствах разработки Microsoft строить приложения для Windows, основанные на XML.
Microsoft XNA Framework - Обеспечивает необходимые компоненты для работы и запуска игр, которые была разработаны с использованием Microsoft XNA Game Studio.
RuntimePack - Содержит набор Runtime библиотек, необходимых для работы различных программ.
Тему отредактировал: Nikol - 7-05-2024, 14:27
Причина: Тема обновлена. Добавлена английская версия v.1.10.6.0 Release Eng. / Topic updated. Added English version v.1.10.6.0 Release Eng.
Причина: Тема обновлена. Добавлена английская версия v.1.10.6.0 Release Eng. / Topic updated. Added English version v.1.10.6.0 Release Eng.
Пароль на архив / Archive password:
Downloaded from Porno-Island
Загрузил: СынПирокара (16 января 2024 18:49)
Статус: Проверено (СынПирокара)
Управление:
[обновить]
Взяли: 4017 | Размер: 2.26 Gb
Раздают: 8 Качают: 4 Скачали: 1768
Мультитрекер: Раздают: 16 Качают: 15 Скачали: 992
udp://open.stealth.si:80/announce
10 8 765
udp://tracker.opentrackr.org:1337
2 3 113
http://tracker.dler.org:6969/announce
2 1 1
udp://tracker.opentrackr.org:1337/announce
2 3 113
Содержание:
Hentai_High_School (6 файлов)
Eng (1 файл)
![zip](/templates/flat-cinema/tracker/icon/zip.png)
Rus (1 файл)
![zip](/templates/flat-cinema/tracker/icon/zip.png)
![zip](/templates/flat-cinema/tracker/icon/zip.png)
![file](/templates/flat-cinema/tracker/icon/file.png)
![txt](/templates/flat-cinema/tracker/icon/txt.png)
![txt](/templates/flat-cinema/tracker/icon/txt.png)