Hentai High School+ [v1.10.6]

155168 6b585cb2fb3a1ef02495a2b2165bbfb7

Overview:
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.​

Thread Update: 2023-11-05
Release Date: 2022-06-20
Developer: HentaiHighSchool WebsiteDiscord
OS: Windows
Censorship: Yes, some pictures are censored
Version: 1.10.6
Language: English
Prequel: Hentai High-school
Genres:

2DCG, Male protagonist, Female protagonist, Futanari protagonist, School setting, Corruption, Sandbox, Management, Dating sim

The game’s settings include a list of tags that let you blacklist specific fetishes. This will either blur/hide images with such content or prevent entire events or choice paths from activating. Individual events may contain any of the following:

Teasing, Titfuck, Groping, Handjob, Spanking, Oral sex, Vaginal sex, Anal sex, Group sex, Sex toys, Lesbian, Gay, Futanari, Virgin, Voyeurism, Exhibitionism, BDSM, Incest, MILF, Prostitution, Sexual harassment, Rape, Drugs, Mind control, Slave, Urination, Trap, Pregnancy

Installation:

Game requires at least .NET Framework 4.8.

1. Install Microsoft Visual C++ 2015 Redistributable Package (x64) if you don’t already have it from other programs
2. Extract the game
3. Add mods (if interested)
4. Run

For Linux users: Wine is an option, but it’s not officially supported by the developers.

Changelog:

The download folder contains an [Optional Mod] featuring a part of a potential overhaul of the PD system: Heads & Body.

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.

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

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.

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.

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.

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.

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.

Bugfixes:
– Feb 29 birthday fix fix.
– CoppersStart exception fix.
– Typos.
– Removed ShedulingFrequency 1 skip, since it became necessary again after removing another part…

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.

There’s a lot of ‘breaking changes’ – so a full download & new folder is required. New game is highly recommended.

New Game: The Update mod still allows you to revert to old traits like before.

Existing:
– Update mod is required (install like any other mod after updating). See notes on every other patch since your last update.
– When reloading Game Objects (rules – can do that step separately from All), it’s recommended to select ‘New’ for any ‘UpdateFrequency’ changes.
– A lot of stuff has been changed, but the update mod should cover the most dangerous 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.

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

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

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

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.

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.

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

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.

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.

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.

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

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.

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

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

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

Bugfixes:
– 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.

Bugfixes:
– 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.

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.

Bugfixes
——–

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

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.

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.

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.

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.

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.

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

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.

Developer Notes:

HHS+ is a sandbox and does not really have a concrete goal or ending at the moment, so you need to make your own goals. The playthrough will end nonchalantly after 2.5 ingame years, but you will likely run out of stuff to do long before that. Just trying to get your school (and later the town) to be as corrupt as possible without getting fired is usually a good endeavor.

The current development focus is about streamlining, modernizing and balancing the gameplay of the existing events, since many of them have been contributed by many different authors of different skill levels over the years. That means that you should not expect much new official content in the upcoming release.

We consider the game as a platform and sandbox for the community to expand, and we aim to improve the customizability and modding of the game with every release. Development tools are provided with the game, though they are admittedly not well documented at the moment. Eventually the engine is also supposed to be used for entire new school management scenarios – the current Smallville scenario is also a test balloon to figure out what features are needed in general. But if you are running out of things to do in the official release, you could give some mods a shot. One of the most popular mods is Lexville, which changes many aspects of the base game. It is linked below.

If you are interested in some features of the upcoming version, you may want to take a look at the dev blog.

Issues with the official forum and mod mirror:

The original forum for the game and our development infrastructure has gone offline since April 2022. Since we had no way of reaching the person in charge and also haven’t seen any sign of it coming back, we created a new official forum at https://henthighschool.net as well as a Discord channel.

Unfortunately this also means that most of the mods that were only hosted on the forum are not available right now. However, barteke22 has set up a MEGA folder as mirror where mods can be gathered (both his own as well as third-party):

1.10 (extract into mods & enable): Mega
1.9.5 (extract into game folder): Mega

*New game is required*
Note: mods written for 1.9.5 may not be compatible with the 1.10.0 yet

DOWNLOAD
Win:
GOFILEMEGAMIXDROPPIXELDRAINWORKUPLOAD
Others:
1.10.5+ to 1.10.6 Patch

Previous Versions

v1.10.5.7
Win:
PIXELDRAINWORKUPLOAD

v1.10.4.2
Win: MEGAMIXDROPUPLOADHAVEN

v1.10.3.5
Win:
ANONFILEFILESFMMIXDROPPIXELDRAINWORKUPLOAD

v1.10.0.0
Win: MEGAANONFILEMIXDROPPIXELDRAINUPLOADHAVEN

v1.9.5 SP7
Win
: UP2SHAREWORKUPLOADFILESFMGOFILE

Experimental Pre-Releases
(not tested for stability or officially supported, use at own risk)
Win: DISCORD

Extras: MODSLEXVILLE MODBARTEKE’S MODSCHANGE POPULATIONTIPSTIPS2WALKTHROUGHGUIDEMOD INSTALLATION AND CREATION GUIDE

*This unofficial port/version is not released by developer, download at your own risk.

Scraped ImageScraped ImageScraped ImageScraped ImageScraped Image