* Improved skipping performance by delaying the call to render functions until after skipping ends
* Fixed skipping not refreshing the doll image
* Fixed skipping callback handler being affected by rollback
* Refactored doll show method
* Fixed updater (AGAIN!!)
* Disabled the 'server not responding' hint because it doesn't really match what's happening in the server code
* Version bump
* Added a separate entry for mods compatibility (saves and mods rarely follow the same upgrade rules anyway)
* Improved mods handling by automatically disabling incompatible mods
* Fixed a RuntimeError caused by changing set size during iteration
* Fixed mods crashing on init in user space
* Fixed revertable types inside modding init
* Fixed semantic version crashing mod loader
* Updated example mod
* Added a UI lock mechanism to avoid render stalls
* Fixed initialization issue due to python init offset for android devices
* Fixed a hang caused by joining threads on android devices
* Fixed a race condition when forcefully stopping threads
* Implemented threading and lazyloading for the main doll
* Added global rebuild method for the dolls
* Updated save compatibility patch
* Fixed wardrobe categories showing locked items
* Implemented new DollThread method with thread-safe locking mechanism and pickling support for thread event queues
* Added memoization for wardrobe elements
* Added threading for various wardrobe-related methods
* Added lazyloading (to avoid render stalls)
* Added button generation for DollCloth and DollOutfit instances
* Significantly reduced code repetition inside the wardrobe loop
* Added new methods for the Doll, and improved others.
* Fixed viewport adjustment values resetting on interaction
* Fixed character chit-chats performance issues
* Updated saves compatibility patch
* Fixed character cheeks and tears layers being stuck in both gameplay and character studio
* Fixed missing reset properties during end event labels
* Improved updater hint for potential edge cases
* Added feedback hints when clicking 'check for updates' button in the main menu
* Updated methods to reflect the new changes
* Fixed updater crashing with `u` parameter due to explicit no-parameter screen definition, while renpy expects the (lax) implicit definition
* Fixed server url
* Improved efficiency of RoomObject image creation
* Fixed a crash during one of the Tonks' hangout events
* Fixed DollMakeup object lacking clone method, causing issues with saved outfits
* Fixed DollMakeup non-uniform parameter order
* Fixed doll strip method affecting types like pubic hair, piercings, and tattoos
* Fixed ATL flicker on room objects due to inefficient creation of the images for room objects
* Fixed cancellation method for events utilising subevents
* Fixed callstack when cancel method is called and the next node is a jump (odd)
* Fixed missing 'ask her to do x' blurbs for fail event variants
* Fixed 'grope her' fail variant repeat dialogue flag
* Removed 'hermione_favor_menu' from ignore labels (superseded)
* Converted Hermione's public requests into the queue system.
* Replaced event checks with status checks for the affected events.
* Ignore local labels in event completion tracking
* Improved readability for debug outputs
* Skip Luna intro on dev
* Added internal counter for queues
* Simplified global vars for event completion checks.
* Temporarily disabled Hermione's statistics menu
* Replaced counter/points checks with status flags.
* Disabled debug profiling for images
* Added event callbacks support
* Added support for in-game favour-like behaviour
* Added debug functions
* Added extensive event parameters
* Added a bunch of new methods
* Added modding support
* Added completion tracking
* Added menu handlers
* Added global vars
* ... more
* Added parcel callback support for the outfit store
* Added execute_callback wrapper function
* Fixed ball quest item never unlocking after receiving the outfit, soft-locking the game
* Added an automatic scalar method for undersized/oversized textures
* Added the ability to dye clothes without having to convert them into greyscale
* Added scalar ratio support for whitespace generation
* Improved whitespace generation for objects with nested children displayables
* Added support for temporary attribues
* Redesigned persistent expressions toggles and simplified them
* Improved defined expressions dictionary handling and added imap sorting
* Simplified parts of code
* Fixed prompt screen incompatibility with Text displayables
* Fixed string encoding/decoding issues with non-latin languages
* Fixed expression editor crash on copy/pasting
* Fixed expression editor crash caused by inserted None value choices for expression that don't support it
* Fixed expression editor not re-initializing after reloading the script
* Fixed expression editor not detecting modified expressions after reloading the script
* Fixed and replaced getattr methods in some instances referencing character states
* Fixed get_character_unlock, and get_character_mood referencing wrong var and store
* Fixed lint self defining character tag instead of using a global func
* Disabled tooltips on android devices
* Improved screen boundary detection to avoid overflow
* Improved readability and padding
* Fixed the existence of tooltip parameter causing massive lag spikes on hover/unhover events (even when tooltips were disabled) by patching the related engine focus function
* Fixed import initialization offset
* Fixed and converted hooch chibi images into spritesheets
* Fixed hooch chibi calls
* Fixed new chibi format file dirs
* Fixed inner thought overlay displaying above side images
* Added default audio fadeout value of 1.0
* Removed rebuild method calls (superseded)
* Removed incompatible updater code
* Converted cho new chibi into spritesheets (Placeholder)
* Commented out dev code to avoid issues
* Fixed Cho Quidditch outfit not being set properly during Gryffindor tactic talk, and base outfit getting overwritten.
* Removed bld and blktone in some places where it's replaced by inner thought and narrator character.
* Minor writing improvements.
* Minor Doll positioning improvements.
* Added weights support to random block statements
* Added missing `open_wide_tongue_panties` mouth for Hermione
* Simplified CDS vars and attributes, and changed them to be in line with Renpy standards
* Fixed linting of character statements
* Fixed 'jazz take 2.ogg' file being located in the wrong directory
* Fixed minimum and maximum allowed initialization offset for statements
* Fixed show image statement missing space
* Fixed poster image show statement to enable prediction
* Fixed updater screen lacking parenthesis (was valid but slowed down initialization)
* Fixed random statement prediction
* Fixed uncommented Tonks chit-chat check (forgot to do so after testing)
* Moved transition definitions into their own file.
* Removed narrator name and side image
* Added automatic narrator speaker fade
* Added automatic inner thought gradient fade
* Fixed night.ogg playback
* Fixed parcel icon references
* Fixed character studio pose reference
* Fixed and updated expression editor to work with new paths, and disabled editor initialization until it is explicitly executed
* Fixed common wardrobe functions initialization offset
* Fixed typos
* Fixed temporarily hidden clothes being excluded from staleness checks during pose changes
* Fixed Luna's lion outfit
* Replaced list method call with a for loop, to avoid large list memory allocation
* Fixed big booba an dumpy cheats
* Fixed body controller submodule hash generator
* Fixed cho panties throw crashing the game
* Fixed Outfit/Clothing unlock referenced methods
* Excluded body submodule from doll and icon image generation (superseded by bodyparts)
* Added DollBodypart class to allow more extensive modding support for characters, along with dedicates layers for breasts, hips and so on...
* Added more bangs into DollClothDynamic, allowing tracking of singular objects and the ability to chainload the IDs
* Added get_character_body global method
* Added istype global method
* Improved caching, layering for dynamic clothes
* Improved hashing for Doll instances
* Improved readability and improved internal naming convention for Doll-type classes
* Removed dedicated buttplug slot (superseded by multislot reimplementation)
* Fixed clothing supplied skin layer issues with zorders
* Fixed DollClothDynamic __repr__ lack of quotes
* Fixed Hermione's open_wide_tongue mouth
* Fixed Hermione's tattoos missing images
* Fixed Cho's 'goodbye' after-summon skit using wrong number of expressions
* Refactored DollFace
* Refactored DollBody
* Refactored DollCum
* Refactored DollCloth
* Refactored Doll
* Refactored clothing item zorders
* Refactored implementation of body, face, cum, clothing layers
* Refactored function calls
* Removed DollLipstick
* Added DollMakeup class, allowing adding dynamic clothes tracking face states
* Added DollClothDynamic, allowing dynamic clothes tracking other cloth states with bangs support
* Added cache to frequently called functions, drastically reducing the overhead
* Added hash system, reducing clone redundancy
* Added layer modifiers support for all types (face, body, cum, clothes etc.)
* Added support for an arbitrary number of equipped multislot clothing items (makeup, tattoos, piercings, etc.)
* Simplified initialization for clothing items and dolls
* Simplified class function calls
* Reduced the number of image creation calls
* Added hue support for additional skin layers
* Added displayable support to image cropping function
* Replaced store cache with built-in functools cache for _list_files function
* Refactored all character files
* and more...
* Disabled detection of orphaned scripts for non-devs
* Added cache to renpy.list_files to reduce IO overhead (~14s -> ~0.01s per 10k calls)
* Fixed wrong module call in weather.
* Removed itertools dependency
* Removed substitution for variables (redundant)
* Fixed a crash caused by anonymous variable assignment inside a nested lambda function, inside list comprehension due to unsupported ast magic (what a mouthful)
* Improved styling
* Rewritten and re-implemented color picker in shading language
* Vastly improved performance
* Added live preview back
* Overhauled interface
* Code Cleanup
* Reduced import overhead
* Fixed generic update image creator
* Fixed new side image type regression
* Fixed MyMod game version inside manifest
* Fixed MyMod missing from release
* Fixed android mods detection
* Removed android searchpaths (superseded)
* Moved engine related changes into its own file
* Added checkpoints to forbid the editor from rolling back to menu context
* Added forced checkpoint for when the editor is being opened to avoid rolling back to before it was opened (by opening a console for example)
* Alleviated the issue for when the game tries to recover from the place it cannot stop rolling back, but version var is unavailable because of it being not initialized in that moment