Release Notes/Sauna Update

= Nov 24 2020 - The Sauna Update =

Release Notes &mdash; Steam Announcement &mdash; Update Video

The 15th update is out! This time we've focused on game balance, improvements and bug fixes, but there's also a lot of new stuff to discover and experiment with.

Among the highlights are a new well-hidden biome, a new building to chill in called Sauna, and changes that make Temple of the Art a bit more interesting. Biome modifiers are now communicated more clearly when entering a biome. The whole game has again been localized to ten different languages.

A large part of the user interface library used by Noita is now also available to mods, and there's a new menu that mods can use as a common location for their settings.

Creatures

 * New enemy: Turvattomuusmestari
 * New enemy: Kuihdutusmestari
 * New enemy: Turvalennokki
 * New enemy: Raukka
 * New enemy: Taivaankatse

Perks

 * New perk: Pinpointer
 * New perk: Projectile Repulsion Sector
 * New perk: Projectile Eater
 * New perk: Projectile Slower
 * New perk: Low Recoil
 * New perk: Personal Plasma Beam
 * New perk: Extra Shop Item

Spells

 * New spell: Ball Lightning
 * New spell: Nolla
 * New spell: Accelerative Homing
 * New spell: Zeta
 * New spell: Phi
 * New spell: Homebringer Teleport Bolt
 * New spell: Myriad Spell
 * New spell: Magical Explosion
 * New spell: Spells to Power
 * New spell: Summon Omega Sawblade
 * New spell: Spiraling Arc
 * New spell: Orbit Arc
 * New spell: Temporary Wall
 * New spell: Temporary Platform
 * New spell: Summon Missile

Biomes, Areas, and Structures

 * New structure: Sauna
 * New dangerous props in Temple of the Art
 * Spell shops in Holy Mountains have twice the spells to sell!
 * New work-in-progress area, deep underground...
 * New background in Coal Pits
 * Slight increase in variety in the Temple of the Art layout

Balance

 * Patsas enemies no longer need to breathe
 * Curse of Greed advances a tiny tiny bit slower
 * Sätkymestari shots make player projectiles hurt the player
 * Rebalanced the Tower rewards and gave them their own names
 * Certain legendary spells are not be affected by unlimited spells
 * Numerous thrown, kicked or falling items deal more reasonable damage, especially with low velocities
 * Kolmisilmä's shield can convert projectile damage fields in some circumstances
 * Alpha spell does not automatically cast another spell
 * Gamma spell does not automatically cast another spell
 * Random loadouts - Slime loadout has an actually castable third wand
 * Random loadouts - Eldritch loadout has the Projectile Repulsion Field perk as well as a way to dig
 * Lowered the resistance bonuses from Slime blood & Oil blood slightly, changed their description to clearly state the resistance effect
 * Reduced the cost of spells in Holy Mountains slightly
 * Made certain new enemies not able to suffocate
 * What is above is no longer exactly like what is below
 * Made some spells somewhat more common
 * Made Sauvojen Tuntija drop both of its rewards every time
 * Rebalanced unlockable spell pools

Miscellaneous Improvements

 * All localizations are up to date
 * Added copies of the music machines in certain locations to further mitigate the chance of them being lost
 * Music machines have more health to make them harder to detonate accidentally
 * Increased changes of perk pool having all perks
 * Testing a slightly different freeze effect to maybe improve performance
 * Made Odd Firebolt have a more interesting flight pattern
 * Tweaked a Kammi feature
 * Runestones activate as soon as you throw them
 * Daily run seed is fetched sooner, so the game mode menu does not have wait for it
 * Attempted to make acid slightly easier to differentiate from toxic sludge
 * Shop items and their price tags are properly centered
 * Perk descriptions can be seen before picking them up
 * Improved release notes UX

Biome Modifiers

 * Biome modifier's texts are displayed more prominently
 * Made biome modifiers slightly more common

Comprehensibility

 * Updated some perk names and descriptions to better reflect their functionality
 * Perk description can be seen before you pick them up
 * Finally [sic] removed firearm imagery from certain spell icons

Perk Changes

 * Certain perks that apply a one-time effect indicate this behaviour in their name & icon
 * Always Cast has a maximum of 4 Always Cast spells per wand
 * Improved Exploding Corpses and Exploding Gold explosions
 * Attract Gold has a longer range and stronger pull
 * The Oil Blood perk gives protection against fire but doesn't give resistance to damage
 * Revenge Explosion perk explodes harder and can't set the player on fire, + adds a 20% explosion resistance
 * The Homunculus perk can spawn homunculi in a larger variety of areas
 * The Homunculi's HP scales better towards the endgame
 * Added a 20% projectile damage resistance to Revenge Tentacle
 * Revenge Bullets works more consistently and launches the revenge projectiles faster & with increased damage
 * Clarified some perk descriptions so that they more clearly state e.g. added resistances and such
 * Bounce also increases the duration of your spells
 * Low Gravity applies the gravity effect to enemies as well (experimental change)
 * High Gravity applies the gravity effect to enemies as well (experimental change)
 * High Mana, Low Capacity should no longer be able to remove Always Casts
 * Exploding Gold has a more accurate description and its explosions work properly
 * Concentrated Spells increases recoil much less, to make it more useful
 * Boomerang Spells increases the speed and damage of your spells
 * Vampirism heals more and reduces your max hp less
 * Reduced Blood Money healing somewhat
 * Made Boomerang Shots not increase projectile damage for now as a placeholder fix to healing shot bugs
 * Re-implemented Plague Rats rat friendship
 * Retired melee-only homunculus, changed it into a Magic Arrow -shooting version
 * Plague rats, friendly ghost, homunculi, etc. don't turn berserk against player or each other on various berserk situations

Twitch Integration

 * Usernames are picked from messages instead of the whole viewer list
 * Votes can be cast while game is paused
 * Votes can be changed while voting is in progress
 * Enable/disable all events button in options
 * The perk-spawning stream event's description is accurate to what it *actually* does

Bugfixes

 * UI Damage numbers support numbers that are over 2 billion
 * Telekinetic Kick works with Runestones and some other objects
 * Ukkoshyypiö should no longer lose its aura after 2 minutes
 * Fixed Projectile Transmutation Field transmuting itself
 * Fixed Projectile Thunder Field transmuting itself
 * Fixed Projectile Gravity Field affecting itself
 * Items could damage player if they changed faction
 * It was possible to occasionally get stuck with Teleportitis Dodge
 * Yes/No boxes took previous ESC press for a No
 * Kammi could cause slowdowns if player has massive maximum hitpoints
 * Lower 'Cosmetic particle amount' settings affected some non-cosmetic particles
 * Fixed a broken text entry
 * Fixed the two fish creatures being mixed-up in the progress menu
 * Fixed Vault plasma cannons shooting too far
 * Some biome modifiers could replace potion spawns in some cases
 * Fixed Curse of Greed ignoring certain materials
 * Damage field should no longer bug out when enemies die in specific ways
 * Fixed some texturing bugs at the starting area
 * Game mode list banners had rendering depth order issues
 * Certain special ending code and progress tracking wasn't working
 * Fixed Unstable Crystals teleporting oddly towards physical objects
 * Fixed fish enemies having the wrong names
 * Old save Yes/No message didn't specify the question being asked
 * Crash - recent optimizations caused a crash when loading some save games
 * Made Haavoittajamestari's status effect stop at 10 hp to prevent a hp-multiplying exploit
 * Fixed an exploit that allowed still getting extra HP from enemies not meant to give it
 * Fixed an ancient typo in lava reactions
 * Fixed an exploit related to digging around spells in Holy Mountains
 * Tower rewards disappeared at wrong times
 * Twitch integration - Player immortality event erroneously stated that the effect would always last 1 minute
 * Fixed a bug with find_the_wand_held( entity_id )

Modding - Features

 * Added support for mod settings menus and persistent settings - see mods/example/settings.lua

Modding - Documentation

 * Improved entity lua API documentation - added type information
 * Improved gui lua API documentation
 * Removed lua_readtable from lua API documentation (it's not part of the API)

Modding - Lua API

 * Added EntityGetWandCapacity
 * Added StreamingGetConnectedChannelName
 * Added StreamingSetCustomPhaseDurations
 * Added StreamingForceNewVoting
 * Added StreamingSetVotingEnabled
 * Added ModSettingGet
 * Added ModSettingSet
 * Added ModSettingGetNextValue
 * Added ModSettingSetNextValue
 * Added ModSettingRemove
 * Added ModSettingGetCount
 * Added ModSettingGetAtIndex
 * Added GameIsBetaBuild
 * Added GuiSlider
 * Added GuiTextInput
 * Added GuiTooltip
 * Added GuiOptionsAdd
 * Added GuiOptionsRemove
 * Added GuiOptionsClear
 * Added GuiOptionsAddForNextWidget
 * Added GuiColorSetForNextWidget
 * Added GuiIdPush
 * Added GuiIdPop
 * Added GuiAnimateBegin
 * Added GuiAnimateEnd
 * Added GuiAnimateAlphaFadeIn
 * Added GuiAnimateScaleIn
 * Added GuiImage
 * Added GuiImageButton
 * Added GuiGetScreenDimensions
 * Added GuiGetTextDimensions
 * Added GuiZSet
 * Added GuiZSetForNextWidget
 * Added GuiIdPushString
 * Added GuiImageNinePiece
 * Added GuiBeginAutoBox
 * Added GuiEndAutoBoxNinePiece
 * Added GuiBeginScrollContainer
 * Added GuiEndScrollContainer
 * Added GuiLayoutBeginLayer
 * Added GuiLayoutEndLayer
 * Added GuiGetImageDimensions
 * Added GuiGetPreviousWidgetInfo
 * GuiButton parameter order is consistent with other Gui functions. The old order is also dynamically supported
 * GuiLayoutAddHorizontalSpacing takes optional amount parameter
 * GamePrintImportant takes optional ui art parameter, made second parameter optional
 * StatsLogPlayerKill takes optional 'klled_entity' parameter
 * Removed StreamingGetSettingsGhostsNamedAfterViewers
 * Added OnModSettingsChanged hook (Accessible via init.lua)
 * Added OnPausePreUpdate hook (Accessible via init.lua)
 * LuaComponent - added script_damage_about_to_be_received
 * LuaComponent - script_damage_received gives the id of possible projectile that caused the damage
 * Streaming integration - IRC commands can be handled on the lua side (with some limitations)

Modding - Misc

 * Made potion spawning use a separate spawn table, found in data/scripts/item_spawnlists.lua