Please request registration email again and then check your "Spam" folder


[HHS+ 1.10.6] Official Release Thread

Started by barteke22, May 27, 2022, 11:44 PM

Previous topic - Next topic

barteke22Topic starter

What is the game? See here.

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.
  • is the first public release version of 1.10.
  • would be the first minor update that may change some features.
  • would be the first patch release for that minor update, because we noticed some bug that required immediate fixing.

For further changelogs for following patches, see individual posts below these ones.

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  (since BETA):
  • 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 recolouring) of PD layers and images.
  • 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.

Population Generation
  • Reworked population generation to use an individually configurable set of parameters, transformation functions and groupings to better customize the result outside of the hardcoded features.
  • Added new operation "Get Relationship Degree", which can calculate the closest degree of relationship between two persons by using a Dijkstra search on their family tree.
  • Recreated population generation config of the DefaultGameConfig.xml in the new system and added a few family group variations.
  • There's a lot to explain, so check out Shilo's last Dev Blog.
Custom Paper Doll Layers
  • Reworked the existing paperdoll system to allow the free definition of custom image layers for each paper doll.
    • Added layer definitions with rank order for all previously hardcoded paperdoll layers.

  • Most of the paperdoll-related logic is now the responsibility of the paperdoll handler events. There is less hardcoded stuff.
  • Removed the special handling of head image files in paperdoll and person code. They are now a layer like any other and not serialized to/from XML.
    • Made sure that all paper doll handlers (especially special characters) assign head images, since this is no longer done via XML files.

  • Added VEE operations under "Base" -> "File" to do some very basic stuff in the file system.
    • It's mostly relevant because the new paperdoll layer operation also supports dynamic image paths via String variables.

  • All special NPCs should now have both male and female heads, and for general Adult/Student handler a generic will be applied if a special is not found.
  • Added a basic system for adding custom layers to the PD (via equipped items, or special conditions).
    • An event (SetCustomLayers) checks for:
      • Events in the PaperDoll\CustomLayers\Special folder and runs any that pass. This is meant for special cases like backhair, pregnancy layers, sleeping masks etc.
      • Items on the NPC with the 'Wearing' trait (up to individual items to implement logic for putting on - adding/removing said trait, as well as removing it from other items of same type).
        • The Item's Data is checked for event associated with it, can be a generic or specific event (up to the author). If the event passes it's executed.

    • This is simply meant as a unified event to be called by all PD-Handlers to execute any custom layer logic. Currently base game uses it for BackHair and SleepingMasks (Location Layouts).
      • SleepingMasks are just a temporary thing until there's a proper system that separates heads into many layers (supporting expressions etc).
      • Added generic item FunctionLibrary\PaperDoll\CustomLayers\EquipUnequipItem for custom layers, to toggle Wearing state. Not currently used by the game, aside from mods.

Pixel Shaders
  • Library of built-in effects (colorizing, bloom, invert, monochrome, sketch, magnify, misc effects).
  • VEE operations to apply them to various things, especially paperdoll layers.
  • New VEE variable types for Bitmap Image and Double List, along with corresponding operations.
  • Added ability to tag paperdoll layers, so operations can apply an effect to multiple layers with the same tag.
  • Added ability to add custom pixel shaders, see the Docs folder for info.
Location Layouts
  • The game loads the layouts and images from Images\Locations\{Name}, as well as bed and lighting assets from Images\UI\LocationParts\
  • Traits: Whilst their PD-Handler is updated (only then) anyone in a regular position will have the LayoutStanding trait, in job position LayoutJob, in desk LayoutDesk, whilst viewing the bed LayoutBed (or LayoutCreep if PC + not loved).
    • You can use LayoutFootOffset:Double (like LayoutFootOffset:-0.5) to adjust PDs that have non-standard foot position (vertical).

  • In Events it's best to use Show Location Image (Or Show PD on Location) instead of Show Image for showing backgrounds with ExtraLayer(s).
  • Made it so 'Show Location Image' and 'Show PD On Location' have an extra input link that makes any PDs overlaid via them (or 'Overlay Paper Doll') on the same UI layer respect the ExtraLayers.
    • Non-default because proper overlaying requires the right offsets/scales (same as on layout).

  • Added 'Layout snapping' to 'Show PD on Location' and 'Overlay Paper Doll' previewer (in VEE), when in Layout mode.
  • Has a debug mode to assist with layout creation (not for regular gameplay), the PD Op preview (in Layout Mode) can be used alternatively.
  • There was a Dev Blog about this at some point, but the purge ate it - refer to the Docs folder for more info (or Modding Guides once updated).
  • You can tweak this in the game's Settings tab, some options will improve performance if it's bad.
Info Panel
  • Added an Info Panel to Interaction Panel (content will remain hardcoded for now). Has 2 modes (besides Off):
    • Lore friendly: What's shown is unlocked based on rel/friendship*0.75/loyalty*0.75/completion.
      • Stats start out with only rel/friendship, ranges of 10.  At around 25, main stats are shown, at 60, all stats.
      • DB tags show which conversation topics have been successfully passed, and how many times a person has been hypnotised.
      • Statuses show Behaviour Cooldown, Cold Shoulder by default. Then archetype at 20, personality/PTA support at 30.
      • Advanced mode: Basically a cheat mode, shows all of the above + a bit extra (all statuses) without unlocking it.

    • The content of both modes is hardcoded by default, however can be replaced by enabling the InfoPanelUpdate NativeEvent.

Other tweaks
  • Debug now keeps its command string on closing/recalling.
  • Some event shortcuts: H, Space, Enter/Esc, Ctrl (see README_GAMEPLAY.txt for details).
  • Added shortcuts for UI Button Events.
  • Added 2 alternative ways to get the newspaper + reminder if 0 articles read.
  • Show a clock symbol for NPCs that were hypnotized recently, was added at the same time as info panel, so there's 2 indicators now.
  • Principal will wear casual clothes more often + tweak to male PC underwear.
  • Class summary screen now also shows individual subject experience and also indicates a rough trend based on the chosen subjects in the schedule.
  • Added some cheats in form of global variables to the game.
  • Added StudentPurification, a major event where girls try to 'purify' themselves in the lake.
    • Added AdultPurification, a follow-up of the above.

Developer/API changes (only relevant for mod authors)
  • I recommend checking the Modding Guides for changes between 1.9.5 and 1.10 beta, as well as for changes since (once that's added).
    • Otherwise you'll be dealing with a lot of issues that can be avoided if you try to port older mods (especially if you used GetPhysical).

  • Item trading has been reworked to be more expandable.
    • Allows custom Give/Take events deciding whether the NPC will accept/give back/react to a specific item, or item type.
    • Plus whatever other stuff you want to happen along when giving/taking.

  • General suggestion (Hypnosis) has been reworked to allow adding custom categories/choices.  See Docs folder for details.
  • CreateDrug was slightly tweaked to allow adding custom drug creation events (not a full rework, so they're not considered in stuff like Mad Science).
  • Generic NativeEvents are now split into subfolders.
  • A lot of checks have been added to Check For Errors, they should help you track down things like outdated rules.
  • Added @FullReload to mark events as fully reloadable + to execute reloaded Init_ events marked with it  (useful for existing saves - if designed well).
    • This is subject to change, as a better system is considered (but not any time soon). Per Issue #5
    • Currently reloaded events lose variable data, but not scheduling (at some point with keep both).

  • Added favourites and altternative sorting to VEE operation list, synced across instances via a database. The Op list is now enabled by default.
  • Added buttons for jumping between VEE filter results.
  • Added GameScenarioConfig & TheWorld constants to VEE, for use with above Ops.
  • Added StartDate to scenario, which took over for MinDate as the game's starting date.
  • Lowered/increased Min/MaxDate (1800/2020) so they're more useful in VEE Date UI, plus un-hardcoded any dates I could find.
  • Added 'botton-triangles' to VEE Ops to signify that there's a Double-Click menu, to match the 'top-triangles' that signyfy a right-click variant.
  • Added a Create Person VEE operation, with various options for controlling their name, age, parents (please don't abuse, but basically means you can add NPCs without XMLs).
  • Added several more text replacement options (lowercase job, numerical age, and upper/lowercase textual age).
  • Locations are no longer defined in the scenario file ("TheWorld"). Instead, all locations now come from WorldExtension files.
  • Added a way to exclude validation results (Check For Errors) from the output by enclosing them in a Comment box that starts with the comment "@SuppressWarnings". Optional text after will be used as description.
  • Added string variant to Show Image.
  • Remade all outfits that used non-kisekae breast cutting, cut them and optimised files.
    • Included kisekae codes for them + a few others.

  • Replaced all minigame Ops with a Function containing both - so they can easily be tweaked/replaced by mods without editing every event.
  • Added a button to the map to access GenericModConfigs, so that modders that wish to opt in can have a unified location for users to access their mod's configs.
    • Button is only visible if any event in ExtensionLibrary/GenericModConfigs passes its Try-Phase.


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.

Please don't post into this thread

Downloading and Installing
  • Download mirrors (733.3 MB): Mega, Gofile.
  • See Installation Instructions (following) for how to install
    • Note: The download is a 7z archive.  If your Zip program can't deal with it, you can use the free 7zip.

IMPORTANT: System requirements
  • Requires at least .NET Framework 4.8.
  • Requires the Visual C++ 2010 SP1 Redistributable Package to be installed.
    • These packages are commonly installed with modern games, so you might have it installed already.
    • However, if you encounter error at startup like "DllNotFoundException" and/or 'SQLite.Interop.dll', you may need to download and install the package .
    • The link above is for the 64 bit version. Be sure to install pack corresponding to architecture of your operating system (i.e. look for the x86 version if you are still using a 32 bit OS) .
    • Note: According to reports of some forum users, using the x86 version even on a 64 bit OS may help if you run into random crashes at startup.

barteke22Topic starter

INSTALLING: Please read this post in detail

How to install the base game
  • Access the download Link in the post above, you'll only need the [Full] file (contains all updates).  The [PatchOnly] zip is for updating an older download.
    • [Full] X.X.X.X-release.7z : This is the Base Game at version X.X.X.X.
  • Create a new empty HHS Game folder.
    • This should be a standard 'user' folder (e.g. under your Docs, Downloads, Etc.)  Do not create it in any of the system folders.

  • Now: Unzip all of the .7z's content into your HHS Game folder.

Important: In the case of [PatchOnly] zips or extracting into the same folder, check notes on changelog posts (below) since your update in case a fresh folder / file deletion is required.

If starting a New Game, that's it!

Important: If you're running into instant errors on a fresh download + new game, then something likely went wrong with the extraction or download (unless more people are reporting the same issue).

Adding patch files (from full download, or patch) to Existing Saves*:
  • Patches to existing saves are applied in a similar manner as mods.
    • Except you extract the patch content into the main game archive (so the Schools folder merges). Say 'yes' to overwrites.

  • IMPORTANT: Check each changelog post (below) since your patch in case of additional notes on save updating. The download may also come with an Update Mod (enabled like other mods on existing saves), for resolving major changes.

  • Load the save (do not move or anything).
  • Open Debug (bottom right).
  • Global Variables > Reload Global Variables.
  • Reload Game Objects > Add Changed > Refresh Files.  (Here you can hold Enter to use old values, unless the patch instructions specify otherwise).
  • Enable Update Mod if exists (under Modules).
  • Reload Events > Add Changed > Refresh Files.
  • If all went well, it should be safe to save.
*Not all content of a patch might work on existing saves, but things are usually fine.

barteke22Topic starter

1.10.0 Service Pack 1
There's no service packs yet - this is just a placeholder.  We might not use the service pack system any more.

The .zip file below is the forth Service Pack for 1.10.0
  • Service Pack 1 subsumes and replaces Service Packs 1 to 1

Please Note
  • Service Packs are simply bundled packages of the updates and bug fixes posted below
  • The purpose is to make installing the game from scratch a little easier
  • If you have incrementally updated your game, you don't need the service pack (though it helps if ever re-installing)

What does it include and what doesn't it include?
  • Does not include the Base game (1.10.0)
  • Does include all updates and bug fixes for 1.10 (posted below) up to Update ?
  • Does not include fixes and updates after Update ?

Using the service pack
  • Follow the instructions above: How to install the base game to create a new base game at 1.10 (but do not start a game yet)
  • Download the service pack and install, following the instructions above: To install the files from .zip
  • Install any updates after Update ?.  For ease of finding: Update ?
  • Now you can start a new game (you cannot load a save)


Huge thanks to barteke22 and Shilo for their work on this release!

*While we've lost the older portion of the changelog, I'm sure Malorn, DasBrain and dragonblood made good contribution as well, there was also that Umgah person recently - barteke22 :P

barteke22Topic starter

Emergency Patch See post #2 for instructions.

- 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.

barteke22Topic starter

Patch  See post #2 for instructions.

- 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.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

- 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).

- 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.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

Emergency fix for previous update, which was meant to be named (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.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

- 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.

- 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.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

Important: It's highly recommended to extract into a new folder due to dll/structure changes.

It's also recommended to start a new game for this one as a lot of data (age, alt names, fetishes, statistics) will be missing.
- However the mod included in the download folder can be used to re-randomise the age, names and fetishes (plus pregnancy mod data if you have the latest version) for existing saves if you don't want to restart (accuracy isn't guaranteed).  Apply by enabling in Modules (Debug) and reloading events (after first properly installing the patch).

With this release, we have migrated our internal code base from VB.NET to C#.
It still compiles down to the same intermediary language for the .NET Framework, but it's an entirely different programming language with some minor semantic differences in behaviour.
We tried to make sure that everything works the same, but it's possible that we've missed a spot or two somewhere, so please report any stuff (especially UI elements) that you believe used to work in the previous version and now no longer do.

Notable Changes and New Stuff

- The included FontAwesome has been updated to version 6, giving us a lot of new icons to use and slightly different icon designs.
- Fetishes of Persons are now a numeric range between -100 and +100 and may gradually rise.
-- Events that were increasing arousal based on the specific fetishes of a person will now take into account how much that person is into the respective fetish. It can give up to double the arousal amount if the person is 100% into the fetish.
-- Negative fetish values indicate that the person dislikes/is turned off by the fetish, so they may also lose arousal when encountering it.
-- By default, 'has fetish' is defined as at least 50% into a fetish.
- Info Panel has been overhauled to support multiple tabs (following same formula as main tab). Also tweaked to include more details.
- AskForSex now uses an expandable image pool, supporting changing/adding images and special character packs without touching VEE (see API changes for details).

Other tweaks

- The Statistics graphs in the Management Panel can now display special ingame events (like the pass of a PTA proposal) as vertical line in the graph, giving you a bit more context when certain things happened in your playthrough.
- There is a new Smartphone app that lets you do a completely pointless (no ingame benefits whatsoever) personality test that is based on a real test.
- OneAmongMany's cheerleader uniform change tweak (was available as a mod).
- Made Primer & Newspaper shelfable + tweaked events to account for it.
- Added debug commands for relationshipdatabase.
- Added player choice to pick a 2nd name on using futa drugs.
- Lydia Swan has a new paperdoll, in preparation for her quest-chain.

Developer/API changes (only relevant for mod authors)

- Statistics for the management panel are no longer recorded hardcoded by the engine. Instead, they are now opened up to event authors via new operations, which run once per day in a new Daily event. So it's possible to customize what is recorded for the statistics screen. Make sure to keep the amount of data reasonable, though.
-- There is a new operation to record a statistic value for a specific category, which creates the data points for the graph as it was in the past.
-- There is also a new operation that creates a vertical line as an "annotation" to the graph. Try to limit usage of them to major events, since they can quickly clog up the graph if too many happen very close to each other.
- When editing String List variables, there is now a new editing mode that shows all values in a single text area for convenience (with one line per list entry). This is only available if the text of the individual list elements does not contain any line breaks.
- Added a new heuristic to the VEE error check where it attempts to guess the type of Object variables based on the names of the variable links that link to it. If it finds a conflict (for example one operation that works with "Person" and one that works with "Club" both linking to the same Object variable), it will report a warning about type safety.
- Added new "Person Fetish" operation to Get/Set/Add the numeric value. "Add/Remove Person Fetish" has been marked as deprecated.
- Added new Status Effect Modifiers for the numeric fetish value.
- Existing operations have been overhauled to use 50 as threshold for "having" a fetish.
- "Add Arousal by Fetish" now increases arousal based on the numeric value of the fetish (up to 200% of the specified operation amount if the fetish is at 100%). However, the operation no longer scales with Corruption.
- "Has Fetish" now has a link variation to explicitly specify the threshold value, so it can be used to conveniently check other values than 50.
- The "Fetish" property of Persons has been renamed to "Fetishes". It was no longer compatible with the new data structure anyway.
- GenSex Image Provider Overhaul (AskForSex/Hypno Image & Girl Pack expansion), see Docs\ or Guides for details:
-- Allows expanding/tweaking the GenSex image pool without touching VEE.
-- Allows adding images targetting special characters (PC included).
-- FunctionLibrary\PCGeneralSex\ShowActionImageProvider can be used outside of AskForSex/Hypno with a similar set of features.
  --- Does not have to be PC-NPC sex (image-wise).
-- Optional auto-coloured hair overlays, futa overlays, .txt file text per image.
- Added Ops for Getting/Modifying a person's KeywordOverrides.
- Generic NPCs now also grab a name from the other gender's name list (if specified in template) and apply both names as a KeywordOverride, key {GenderedForename}.
-- Not overriding {First} directly to prevent clashing with potential nicknames, and allow custom VEE handling.
- Added opposite gender name to all SpecialCharacter.xmls as a GenderedForename KeywordOverride.
-- GenderReasgnment drugs now refer to that on gender change and apply the name as display if one doesn't already exist.
- Info Panel overhaul:
-- Got rid of hardcoded version, since it's not needed anymore.
-- Panel can now be expanded with custom tabs, previous panel is now the default tab.
-- Mode is now stored only in the tab events.
-- See notes in the main tab event (NativeEvents) for details.
- Added "Single Line Mode" to String List property form. If the list only contains single lines per entry without line breaks, this mode can be used to show and edit all entries of the list at once, in a single text area.
-- It is automatically enabled if the list supports this format and disabled if any entry contains a line break.

BREAKING CHANGES (only relevant for mod authors)

- Fetishes are now defined in XMLs instead of being hardcoded. Unfortunately, that makes them incompatible with some of the operations from older versions.
-- To make sure your events are properly migrated to the new data structure, you should open the XML of your events in a text editor and do a full text search for "<Fetishes>".
  Then, for each line in this list of fetishes, replace e.g. "<Fetish>Bondage</Fetish>" with "<string>Bondage</string>".
-- This concerns "SeqCond_HasFetish", "SeqAct_AddPersonFetish" and "SeqAct_ListFilterPerson" (if it makes use of fetishes for the filtering). "SeqAct_AddArousalByFetish" is safe because it uses a separate data structure to encapsulate single fetishes and not a full list.
-- A new VEE error check will warn you if you have a "SeqCond_HasFetish" or "SeqAct_AddPersonFetish" with an empty fetish list (which may indicate a missing migration). Such a check is not possible for ListFilterPerson because not every filter uses fetishes.
- The Fetish data structure for Persons has also changed. If you have Special Characters with custom fetishes, you need to migrate the XML structure or reassign the fetishes in the File Editor.
-- The old structure was basically "<Fetish><Fetish>Bondage</Fetish><Fetish>Masochism</Fetish></Fetish>", with the outer "<Fetish>" being the list element of fetishes and the inner "<Fetish>Bondage</Fetish>" being a concrete list item.
-- The new structure is now "<Fetishes><Item Key="Bondage" Value="50" /><Item Key="Masochism" Value="50" /></Fetishes>", with the outer "<Fetishes>" being the list element of fetishes and the inner "<Item Key="Bondage" Value="50" />" being the concrete list item.
-- Feel free to make your fetish assignments more nuanced than the default value of 50. You may even add some disliked fetishes.
- Some of the FontAwesome icon names have changed in the new version. Be sure to check if your used icons are still working.
-- There is a new VEE error check that should report a warning if it finds something that looks like an unknown FontAwesome icon declaration (starting with "fa-") in Event Properties and "Show Decisions" operations.


- Tweaked lactation checks to check if current outfit has lactation breasts, and default to generic for specials only when nude.
- Fixed Interaction_KeepGoing not working on time pass.
- Fixed bugs in all SQL in VirginAsk.
- MissingGirl Head fix, LoadRepayment fix.
- malorn's battle with GenSex & SetIntDirectly.
- Fixed inverted checks in object reloading. Added more conditions for better accuracy.
- SetEffectsOnObservers Voyeurism issues.
- Fixed interaction category click loop on category size change.
- Made trade categories not collapse on refresh during event execution.
- Fixed all cases where the new typesafety heuristic reported findings.
- Info Panel flirted math.
- Interaction category click loop on category size change.
- Trade form collapse state not surviving current execution.
- ChatWithSomeone wrong gender check.
- HypnoTraining park lacking conditions + filtering all people instead of occupants.
- Age being clamped wrong when loading a save from the exe.  Changed starting age to be a standalone property to prevent it.
- Hypno not passing time on failed group + behaviour mod.
- Onsen event broken links.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

This is an emergency patch for the previous patch, the notes on the previous patch still apply (if you're updating from pre as this is a small change in comparison.

- NPCs not remembering they stripped.
- PTA meeting missed after passing proposal.
- PhoneAsk sometimes giving loyalty on fail.
- Preprocessor condition fixes.
- Statistic icons fix.
- Special age clamp fix.
- Info Panel rel reset fix.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

Small patch with some fixes, see notes on the previous 2 patches if you're updating from before

- Nerd Miniquest fix.
- Fixed statistics PTA proposal ChoiceName (won't fix old ones).
- Fixed wrong Lf replacement, causing [pagebreak] to appear.
- FindExternalReferences wrong dialogue fix.
- Added Shilo's devblog on population gen to Docs.
- Typo fixes.

barteke22Topic starter


Patch See post #2 for instructions, post #1 for download.

It's highly recommended to extract the game into a new folder due to folder structure changes, and starting a new game.

For existing saves
See notes on the previous 3 patches if you're updating from before (you need the full download too).

Minor issues might occur due to structure changes.  Especially if:
- You've started the Walker chain (probably nothing game breaking).
- You're expecting an online delivery (let it arrive first).
- FAPP store apps might reset (missing wallpaper etc till re-configured).

When reloading Game Objects, you'll want to select New on conflict for LstLocationAdresses for location Raymund Home.


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 Expression operation 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.

  • 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.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

Tiny emergency patch for previous patch, safe to install on existing, but if you haven't progressed the April line until a bit past her daughter is named:
You might want to go into Debug > Person > Sherilyn Ambrose > remove the 'Enlisted' trait from her Trait > Click refresh at top.

- Fixed photoshop assignment button not appearing at home computer.
- Fixed Sherilyn auto-enlisting due to old property.

barteke22Topic starter

Patch See post #2 for instructions, post #1 for download.

- Added "Annette caught in rain" by Neme to bathroom encounter.
- FutaOverhaul Beach events adaptation.
- A righteous onsen visitor may now call you out if they catch you trying to use the bath while being grungy. Go take a shower first, pig.

- Cherrypicked some changes from an image substitution pack from F95 user "Jazzpunk":
-- For the most part, just added missing artist metadata for some of the base game images.
-- Also replaced some images with alternatives from the pack that I considered better suited than our current selection.
-- Used some as random alternatives to respective events.
-- Also cleaned up some events in the process.

- Text condition parsing now also checks for escaped starting brackets \{ instead of just escaped end brackets \}. This is necessary because the parser will otherwise still mess up and try to match inner conditions with ending brackets of other tags further down the text.
- Made it possible to configure the VEE text editor font through a config property.
- Added custom filtering to Find Unused Images.

- SherilynCafeteria fix.
- Hack social media using Lockpicking instead of hacking.
- Claire gym time being wrong format.
- Wish birthday exception.
- CarlStart exception.
- PantyThief not remembering stained.