"Legend of Grimrock 2" was recently updated and the devs released the full patch changelog in the official Steam page of the game.
Release Notes for version 2.2.4
- optimized performance of the graphics engine
- added max draw distance option to grimrock.cfg
- optimized input latency especially when frame rate drops below 60 fps
- added touchscreen mode to game options (enables attacking with left mouse button)
- improved dynamic lighting effects when using low quality rendering mode
- bug fix: tomb of guardians puzzle could end up in an incorrect state
- bug fix: projectiles don't pass through open cemetery gate
- bug fix: a monster standing in a monster blocker square can't be melee attacked
- bug fix: skeleton archers can be poisoned
- bug fix: projectiles stuck in a fire elemental are lost when the elemental hits the party and explodes
- bug fix: snakes inside force fields can be hit with projectiles
- bug fix: knockback can move the party while falling
- bug fix: spell panel remains open when using bare hands to cast and items are equipped into mage's hands
- bug fix: loot dropped by monsters is sometimes (very rarely) spawned in wrong square
- bug fix: non-stackable throwing items stack when auto-picked up
- bug fix: removed "invisible" energy potion in shipwreck beach
- bug fix: click zones of menu options in main menu and pause menu are slightly off
Modding:
- improved error handling of illegal object references in scripts
- video *.ivf files are now automatically exported to mods
- added support for drawing portraits using the gui context
- added defineCondition function for creating custom conditions
- added 35 new scripting functions and hooks
- ItemComponent:setGameEffect() now accepts nil parameter
- bug fix: FirearmAttackComponent:setBaseDamageStats() has an incorrect argument type
- bug fix: ProjectileComponent:setCastByChampion() has an incorrect argument type
- bug fix: MaterialEx:setTexture() does not work for standard textures (diffuseMap, specularMap, normalMap, emissiveMap)
- bug fix: calling setDoorState() after the level has been loaded does not work
- bug fix: TeleporterComponent:getTeleportTarget() and StairComponent:getTeleportTarget() do not support multiple return values