b6204dd7f608e17ec5138007828cab69e0f65dec
RELEASE NOTES - Apr 30 2024

*GENERAL*
UPDATE: Tapion vasalli is a little tamer now


*BUG FIXES*
BUGFIX: UI - Lengthy item names (i.e. complex potions) would leak outside the info box 
BUGFIX: Performance - melted plastic in huge quantaties caused performance problems
BUGFIX: Fungal Shift - fungal shifting into a rare material caused the game to crash
BUGFIX: Rare crash caused by tracking biomes (Thank you Dexter Castor Döpping)
BUGFIX: Game could crash when killing a Kummitus with a lot of HP
BUGFIX: Henkevä potu is no longer a homing target when held in hand
BUGFIX: Player could be deleted when traveling back and forth extreme distances instantly
BUGFIX: Unkilled Kivi caused stain problems
BUGFIX: Soft lock could occur when ending the game underground with a large number of orbs
BUGFIX: Fixed several enemy perks being broken in Nightmare Mode (huge thanks to pudy248 for the fixed code!)
BUGFIX: Extra Life perk now changes the icon to indicate when it has been spent
BUGFIX: Deadly heal should behave more nicely now

*MODDING*
MODDING: Lua - added CellFactory_HasTag
MODDING: GameEffectComponent - mIsExtension being false could crash the game
MODDING: BossHealthBarComponent added - the new healthbar behavior is moved to here
MODDING: MagicNumber BUGFIX_NEVER_DEFAULT_SERIALIZE_PLAYER added to control how player entity is serialized
MODDING: -enable_unsafe_paths command argument added, it allows the game to access all files on your hard drives
MODDING: -enable_recording_stuff command argument added, allows debug recording tools to be used



EPILOGUE 2 UPDATE - Apr 8 2024

*GENERAL*
FEATURE: Spell - Sparkly bounce
FEATURE: Spell - Lightning bounce
FEATURE: Spell - Vacuum bounce
FEATURE: Spell - Null shot
FEATURE: Spell - Inner spell
FEATURE: Spell - Giga white hole
FEATURE: Spell - True orbit
FEATURE: Spell - Hookbolt
FEATURE: Spell - Anti homing
FEATURE: Spell - Holy lance
FEATURE: Added 8 modifier spells
FEATURE: Added 6 new enemies
FEATURE: Added 6 new spells
FEATURE: Added 3 new secret spells
FEATURE: Added new rare materials
FEATURE: Added chemical reactions
FEATURE: Added new small biome
FEATURE: Item - Utility box
FEATURE: Potion reactions
FEATURE: Audio is muted when unfocusing the game if "Pause the game when unfocused" is On
FEATURE: Amazing golden spell
FEATURE: 3 new bossfights
FEATURE: Added a new creature
FEATURE: New materials and reactions
FEATURE: New secret quest
FEATURE: Added a new easter egg

UPDATE: Dupe around and find out
UPDATE: Better interaction with No Wand Tinkering and Tinker With Wands Everywhere perks
UPDATE: Lukki Minion is slightly more powerful
UPDATE: Spells can now be dropped from inventory at all times
UPDATE: Spell drop rates rebalanced
UPDATE: Explosive bounce's radius increased
UPDATE: Shiny Orb is now more lucrative
UPDATE: Moved a boss into a slightly more accessible spot
UPDATE: Adjusted various spell mana costs and prices
UPDATE: Adjusted weakness modifiers
UPDATE: Updated the look of the Hiisi Alchemist's potions
UPDATE: Potion content percentages are displayed now (Thank you Evaisa)
UPDATE: Vomiting now requires eating a bit more nasty materials
UPDATE: Buffed Vampirism
UPDATE: A little surprise for the turophiles
UPDATE: Audio - new sounds for [REDACTED], glue, eldritch portal, freezing gaze, barrier & wall spells
UPDATE: Audio - bzzzt
UPDATE: Audio - new sound for [REDACTED]
UPDATE: Audio - new music for a few side areas
UPDATE: Powder pouches have a new functionality
UPDATE: New enemies show their statuses in the UI
UPDATE: Visual, audio and other fx when moving very fast
UPDATE: Tele bolt resets caster's vertical velocity
UPDATE: Less harsh sound for tele bolt for more pleasant tele spamming experience
UPDATE: Improved camera tracking when moving fast
UPDATE: Lukki Minion should no longer be killable to make it more useful
UPDATE: Optimized file system performance when using mods
UPDATE: Optimized performance of some game effect queries in various systems
UPDATE: All bosses use final boss style health bars
UPDATE: Added up to date localizations

*BUG FIXES*
BUGFIX: Nightmare mode - the boss arena and orb rooms could be overwritten
BUGFIX: Nightmare mode - Orbs should now drop hearts even if the spell is unlocked
BUGFIX: Nightmare mode - enemies no longer spawn with Attract Gold perk
BUGFIX: Permanent polymorph is permanent
BUGFIX: Carrying 5th wand by frame perfect swapping is fixed
BUGFIX: Rare crash when enemy was converted to a ragdoll (text sprite) (Thank you Dexter Castor Döpping)
BUGFIX: Fixed another inventory exploit, that allowed carrying of extra wands
BUGFIX: Fixed Lukki Minion sometimes escaping and disappearing
BUGFIX: Vaihdosmestari can no longer move cursed rock
BUGFIX: Closing inventory while starting to drag items is fixed
BUGFIX: Alt tab silliness is should now be fixed
BUGFIX: Optimized particle effects
BUGFIX: Player can no longer polymorph to Olematon
BUGFIX: Runestone of edges could cause Puska to shoot forever
BUGFIX: Mouse cursor displays the material even in the far lands
BUGFIX: Optimized Circle of stillness and Freezing gaze
BUGFIX: Fixed Null shot breaking modifiers cast after it
BUGFIX: Cosmetic fix to the alchemist's background
BUGFIX: More optimizations, including Freeze Field perk and Iceball spell
BUGFIX: Fixed a rare crash that could happen with too many materials 
BUGFIX: Rare wand generation bug (the default green wand should be now fixed)
BUGFIX: Minor - a perk icon was missing a pixel
BUGFIX: Fixed a security vulnerability in the modding API (Thank you Dexter Castor Döpping)
BUGFIX: Fixed Hookbolt having a buggy sprite
BUGFIX: Fixed Giga White Hole not repelling projectiles
BUGFIX: Fixed certain spell unlocks happening in an unintended way
BUGFIX: Physics objects are less likely to fall through the bottom of the world
BUGFIX: Fixed Explosive Detonator being bugged in certain circumstances
BUGFIX: Fixed a boss not dropping all the spells it was meant to
BUGFIX: Fixed a secret dropping spells that it shouldn't
BUGFIX: Fixed multiple spells have some erroneous/missing data
BUGFIX: Fixed a rare case of sky being black
BUGFIX: Nullifying Altar did not remove the perk icons (Thank you Priskip)
BUGFIX: Related perks should now be removed from the perk pool
BUGFIX: Surprise puddles behind potions fixed
BUGFIX: Certain endgame item can now be dragged in the inventory without TWWE
BUGFIX: Saving and loading while stained caused extra status effects 
BUGFIX: Vomit based status effect glitch is fixed
BUGFIX: Longer runs should be more stable and largely address aware thanks to Dexter Castor Döpping
BUGFIX: Game mode selection UI has been optimized
BUGFIX: Improved overall security of modding API
BUGFIX: Audio - rewrote audio event stealing logic - should fix issues with audio sometimes "wrapping up" in a janky manner
BUGFIX: Audio - ambience events no longer trigger lots of silent audio instances - reduces ambience CPU use
BUGFIX: Audio - droplet sounds would rarely end up repeating without a cause
BUGFIX: Audio - liquid flow sound was sometimes left playing
BUGFIX: Fixed a potential issue in regards to file paths
BUGFIX: Fixed an xml parsing issue
BUGFIX: A fix caused more issues than it solved
BUGFIX: A fix broke some translation mods that used custom fonts
BUGFIX: Possible fix for "Game will restart due to mod changes" without changes
BUGFIX: Fungal shifts rarely didn't occur
BUGFIX: Fungal shifts that didn't fully realise still counted towards the maximum limit
BUGFIX: Certain spells weren't keeping the ID of their caster around like they should've
BUGFIX: These release notes were so long that the UI had performance issues
BUGFIX: Some surface areas had no sky light after above areas had been visited, and were not counted as surface by audio etc
BUGFIX: Final boss hanging around very far from the player could block mini-boss music
BUGFIX: Wands retain cast delay, recharge etc over a game restart
BUGFIX: A settings menu item was using a missing translation key when hovered
BUGFIX: Infinite rain exploit
BUGFIX: Some localization strings were incorrectly escaped
BUGFIX: Text in tablets and books didn't display correctly in all languages
BUGFIX: Fixed issues with UI in some languages
BUGFIX: More robust mod check when saving bones files

*MODDING*
MODDING: Lua - added PolymorphTableAddEntity
MODDING: Lua - added PolymorphTableRemoveEntity
MODDING: Lua - added PolymorphTableGet
MODDING: Lua - added LoadRagdoll
MODDING: Lua - GameCreateCosmeticParticle - now with gravity_x and gravity_y
MODDING: Lua - LoadPixelScene - now with allow_duplicate param
MODDING: Lua - added PolymorphTableSet
MODDING: Lua - added ComponentGetTags
MODDING: Lua - added InputIsKeyDown
MODDING: Lua - added InputIsKeyJustDown
MODDING: Lua - added InputIsKeyJustUp
MODDING: Lua - added InputGetMousePosOnScreen
MODDING: Lua - added InputIsMouseButtonDown
MODDING: Lua - added InputIsMouseButtonJustDown
MODDING: Lua - added InputIsMouseButtonJustUp
MODDING: Lua - added InputIsJoystickButtonDown
MODDING: Lua - added InputIsJoystickButtonJustDown
MODDING: Lua - added InputGetJoystickAnalogButton
MODDING: Lua - added InputIsJoystickConnected
MODDING: Lua - added InputGetJoystickAnalogStick
MODDING: Lua - added PhysicsComponentGetTransform, PhysicsComponentSetTransform
MODDING: Lua - added PhysicsPosToGamePos, GamePosToPhysicsPos
MODDING: Lua - added PhysicsBodyIDGetFromEntity, PhysicsBodyIDQueryBodies
MODDING: Lua - added PhysicsBodyIDGetTransform, PhysicsBodyIDSetTransform
MODDING: Lua - added PhysicsBodyIDApplyForce, PhysicsBodyIDApplyTorque
MODDING: Lua - added PhysicsBodyIDGetWorldCenter
MODDING: Lua - added PhysicsBodyIDGetDamping, PhysicsBodyIDSetDamping
MODDING: Lua - added PhysicsBodyIDGetGravityScale, PhysicsBodyIDSetGravityScale
MODDING: Lua - added PhysicsBodyIDGetBodyAABB
MODDING: Lua - added ModDoesFileExist
MODDING: Lua - added RemovePixelSceneBackgroundSprite and RemovePixelSceneBackgroundSprites
MODDING: Lua - added EntitiesGetMaxID
MODDING: Lua - added ModMaterialFilesGet
MODDING: Lua - added ModRegisterMusicBank (init.lua) and example in mods/example
MODDING: Lua - added GameGetSkyVisibility, GameGetFogOfWar, GameGetFogOfWarBilinear, GameSetFogOfWar
MODDING: Lua - added DEBUG_LUA_DONT_REPEAT_ERRORS magic number to log recurring, consecutive errors only once (defaults to 1)
MODDING: Lua - lua error stack traces
MODDING: Lua - added ModImageMakeEditable, ModImageIdFromFilename, ModImageSetPixel, ModImageGetPixel
MODDING: Lua - added ModImageWhoSetContent, ModImageDoesExist 
MODDING: Lua - added ModLuaFileGetAppends, ModLuaFileSetAppends
MODDING: Lua - added ComponentGetEntity
MODDING: Lua - added optional 'tag' parameter to EntityGetAllChildren
MODDING: Lua - exposed ModTextFileGetContent and ModTextFileWhoSetContent to all lua scripts
MODDING: Lua - made ComponentGet/SetValue2 up to 300% faster. Old ComponentGet/SetValue API is also a bit faster
MODDING: Lua - added GameSetPostFxTextureParameter, GameUnsetPostFxTextureParameter
MODDING: Lua - added PhysicsBodyIDApplyLinearImpulse, EntityGetHotspot, EntityRemoveStainStatusEffect
MODDING: Lua - added use_material_colors & replace_existing_cells parameters to EntityConvertToMaterial
MODDING: Lua - added font and scale options to GuiText, GuiButton and GuiGetTextDimensions
MODDING: Lua API documentation - improved documentation of some functions
MODDING: MagicNumber UI_WAND_TAG_OVERWRITES_NAME has been added
MODDING: MagicNumber DESIGN_ALLOW_INVENTORY_CLOSING_AND_DRAGGING_GLITCH has been added
MODDING: MagicNumber DESIGN_ALLOW_FULL_INVENTORY_SPELLS_DRAG has been added
MODDING: MagicNumber DESIGN_TELEKINESIS_GLITCH_FOR_TABLETS has been added
MODDING: MagicNumber DESIGN_TELEKINESIS_GLITCH_FOR_ITEM_PHYSICS has been added
MODDING: MagicNumber GLITCH_ALLOW_5TH_WAND_CARRY has been added
MODDING: MagicNumber GLITCH_ALLOW_ALT_TAB_SILLINESS has been added
MODDING: MagicNumber GLITCH_ALLOW_STAIN_DUPLICATION_GLITCH has been added
MODDING: MagicNumber GLITCH_ALLOW_VOMIT_BASED_STATUS_EFFECT_GLITCH has been added
MODDING: MagicNumber DEBUG_DISPLAY_INTERNAL_ID_IN_PROGRESS_MENU has been added
MODDING: Components - GameEffectComponent - polymorph_target should now work
MODDING: Components - LaserEmitterComponent - ConfigLaser - added damage_apply_hitbox_dmg_multiplier
MODDING: Components - PhysicsKeepInWorldComponent - added
MODDING: Components - AttachToEntityComponent - added
MODDING: Components - BiomeTrackerComponent - added
MODDING: ComponentGetValue2() and ComponentSetValue2() now work with types::iaabb
MODDING: Components - LuaComponent - added limit_all_callbacks to allow limiting of all callbacks
MODDING: Fixed DEBUG_DISPLAY_INTERNAL_ID_IN_PROGRESS_MENU
MODDING: Updated debug_keys.txt
MODDING: Added support for static_tile biomes, that are like wang biomes without randomization, consisting of one large tile
MODDING: Added support for static_tile_bg_mask, that are repeating backgrounds with a rough mask that defines the visibility
MODDING: Added audio_music_trigger_without_danger to Biome. Used in watercave. Also added other new audio-related properties
MODDING: Added intensity2 parameter to GameEntityPlaySoundLoop
MODDING: IKLimbWalker, IKLimbsAnimator - exposed ray_skip_material
MODDING: CharacterPlatforming - added audio_liquid_splash_intensity
MODDING: PhysicsAI works better with non-levitating creatures
MODDING: Added auto-generated any_liquid any any_powder Material tags
MODDING: Audio - reports filename on bank load error
MODDING: Improved init.lua API documentation
MODDING: Fixed a possible rare crash when using the mod API in not recommended ways
MODDING: CharacterData/CharacterCollision - added dont_update_velocity_and_xform
MODDING: Exposed some path finding debug rendering features in F7 menu
MODDING: Materials.xml loading - doesn't log error if a material would have reaction to itself because of a reaction with duplicate material from tags
MODDING: Entity xml - added _remove_from_base (on Base components) to exclude components from base entities
MODDING: Added 'json' to accepted file types of ModTextFileGet/SetContent and workshop uploader
MODDING: Default biome map loads via 'data/scripts/biome_map.lua' (makes biome map multi-mod editing less of a hassle)
MODDING: fungal_shift.lua doesn't call CellFactory_GetType on file scope, so mods can use the file before that function is ok to call
MODDING: Added AUDIO_PLAY_GAME_OVER_SOUND and AUDIO_FADE_MUSIC_ON_DEATH magic numbers
MODDING: Biome - added parameters to control parallax bg look
MODDING: MaterialAreaCheckerComponent - added always_check_fullness & count_min
MODDING: IKLimbsAnimatorComponent - added is_limp,
MODDING: GameStatsComponent - dont_do_logplayerkill
MODDING: PhysicsShapeComponent - added material 
MODDING: AnimalAIComponent - added keep_state_alive_when_enabled (without this AnimalAI can get stuck in no state when Disabled & Enabled)
MODDING: VegetationComponent - added random_flip_x_scale
MODDING: CellData - added vegetation_random_flip_x_scale
MODDING: CellData - added is_grass_hashed (for more natural look when grass grows on a long, flat horizontal surface)
MODDING: PotionComponent - added custom_color_material
MODDING/BUGFIX: Removing a game mode mod while there was an active run with it could make the game crash or behave weirdly
MODDING/BUGFIX: Pressing "Install mods..." in mods menu would take one back to the main menu
MODDING/BUGFIX: EntitySerializer couldn't always update entities on hot load changes
MODDING/BUGFIX: Fixed a warning on game start if MaterialAreaChecker.material2 is not set
MODDING/BUGFIX: ModSettingGetNextValue returned setting key if no next value is set for the setting (now returns nil)