Unless you live close to the equator or are located in the southern hemisphere, you might have had to rake the leaves from your lawn once or twice now. Our developers don’t seem to have lawns however, because they’ve been adding code like they have nothing else to do. Let’s dig into what has happened in the last two months:
Petr Mikheev, aka ptmikheev, is a fairly new developer in the community. He has made himself very well known, though, with all his hard work. You might remember him being mentioned in the previous post regarding his implementation of a new, more modern 3rd-person camera view. More recently, he has added optional first-person head-bobbing to the game as well as a "smooth movement" feature which makes movement animations, well, smoother. But let’s not forget one very important thing: Lua scripting. Petr has been talking with David C, the main developer of tes3mp, about how Lua should be implemented into OpenMW. The resulting ideas were presented in a thread here. Check it out if you are interested in these things!
Frederic Chardon, aka fr3dz10, is another fairly new developer. Actually, he did submit a few merge requests about a year ago, but now he’s dropped the mic by submitting his "Async physics" merge request. Physics and collision detection has been a big performance bottleneck in OpenMW for a long time. While the issue is not completely solved yet, this MR still improves performance by moving the game’s physics from the main thread to one or more other threads, making OpenMW even better at using multiple cores. The setting is optional and you can configure the number of additional threads in the OpenMW launcher. fr3dz10 has worked on several other issues in the last weeks, but this is the most noticeable one for end users.
Our hammer-wielding penguin akortunov (Andrei Kortunov) has continued his quest of making OpenMW support groundcover with better performance. The big question is whether groundcover should be supported using paging or instancing. But what does paging and instancing even mean? Andrei explained it like this:
With paging, you merge different grass instances on the fly to large shapes and cache them. So your CPU needs some time to merge all instances and some additional RAM to store data. With instancing, you tell GPU to render the same mesh in the same place many times, and then move every instance via shader.
We are currently measuring the differences between the two methods. Stay tuned for future updates on this topic.
The great Capostrophic (Alexei Dobrohotov), who had been developing in the top gear for quite a while now, switched down to a lower gear for a while due to important matters in real life. He has, however, returned lately with some really cool stuff regarding his work to make OpenMW support assets of later Bethesda games. For example, the compressed archive format Bethesda started using in Skyrim Special Edition (SSE), called LZ4, is now supported in OpenMW. This is not only a prerequisite for running SSE using our engine in the future — the format itself is more modern and decompresses much faster than the older BSA format, which could turn out to be very interesting for Morrowind modders and asset creators in general, too. Capostrophic has recently pushed many more changes to improve OpenMW’s handling of the NIF file format, but these are rather abstract in nature and will be discussed in detail when there are new features available that make use of them.
Assumeru or "Evil Eye" has implemented a lot of under-the-hood changes which most of you won’t even notice. However, they are still very important! So what has been done, then? Region sounds now use settings imported from Morrowind.ini to determine the interval at which they need to be played. Levelled items in untouched containers are now randomly generated from their respective lists when the game is loaded, mimicking the original engine. Scripts can now manipulate base records in containers, i.e., it is possible to add and remove items from all untouched containers. To support these changes, scripts can now add levelled item lists to actors and containers. Finally, vanilla-style overstocking has been implemented as well.
Thanks to the joint forces consisting of psi29a (Bret Curtis), AnyOldName3 (Chris Djali), and johnnyhostile (Hristos Triantafillou), we now have automatic builds for Windows, Linux, Mac, and even Android on GitLab for every merge request that is opened. This means you can go to any merge request on GitLab and get a fresh build for your OS of choice to test any not-yet-implemented feature you like or hunt down any freshly hatched bug.
Unelsson (Uoti Huotari) has been working on the hard task of getting the dae/Collada 3D model format to work correctly in OpenSceneGraph, the backbone behind OpenMW’s rendering. Lately, he has been making really good progress, and the basics of animation support are already covered. There is still a lot of work left to be done, but he is slowly getting there!
Okay, this post is getting way longer than planned, so let’s stop it here. There are still plenty of other things we could have talked about since this autumn has been a real blast for OpenMW’s development.
See you next time and have a great winter (or, again, summer if you are located in the southern hemisphere :)).
Welcome to a review of the OpenMW developent during the summer of 2020. A very unusual summer period for most of us. Development has been as stable as anytime though, so let’s dig in.
The big thing for the month of June was the merging of Object Paging, covered in the last “OpenMW Spotlight” post. We will not cover this feature any more today, since we already made an in-depth post about it. Without further ado, allow us to present the goodies!
3rd person view has seen lots of improvements lately, including an “over-the-shoulder”-camera option, thanks to Petr Mikheev. During the last month he has continued to work on this feature, also including a more modern vanity camera feature which includes an optional Skyrim-style variant. Have a look here for some example GIF-files of the 3rd person view improvements!
akortunov has been bugfixing like crazy, especially during the month of June, and refactored quite a few parts of the codebase. Lately, he has been working on making his old grass handling more relevant by making it support animated grass. Hopefully, it can be made to play well with our new active grid paging feature too.
elsid has, other than maintaining the AI navigation feature of the engine, been fixing various sound issues. He also has an open pull request which is supposed to make the engine load sound files in a separate thread to improve performance.
unelsson and psi29a have been working together on making OpenMW support animations when using the Dae/Collada 3d model format. This is a very important task to be done if this engine is ever going to become the FLOSS RPG game engine it strives to be. Psi29a started doing the research on how the feature should be implemented, and nelsson continued his work. Moreover, we should mention that nelsson sent a few pull requests directly to OpenSceneGraph (our dependency used for rendering), to improve Dae/Collada support even more.
fr3dz10’s old merge request for color changes in keywords in dialogue window was merged in June. He has also been experimenting with the physics engine, trying to make the physics run in a separate thread instead of the main thread. Really interesting!
wareya has been working on the movement solver for quite some time, trying to emulate the movement from vanilla Morrowind as much as possible. During the past months, he started doing a rewrite of his older pull request.
Mads Buvik Sandvei, aka Foal, is working on a very interesting feature, namely support for VR. He has shown great progress already. You can follow his progress on his merge request here.
Assumeru, aka Evil Eye, has been doing some under-the-hood changes to how scripting affects records in saves. This solved twoissues we’ve had for a long time. No longer will you be able to wear Ordinator armor without concequence!
This is just a short review of what has been going on during the summer. There has been a lot more going on of course, but we tried to sum up the more interesting changes.
we hope you are all having a pleasant time with the new release! While you’re busy killing vicious cliff racers, our team is busy with further improving the engine and the editor.
There is one particular feature that recently got merged that we want to bring to your attention: object paging. What’s that, you ask? Well, object paging is a system developed by bzzt, the man behind the improved distant-land feature introduced in the latest release. This system takes several objects that are close to each other and merges them into a single object. This is done in real time during gameplay and shouldn’t be noticeable to the end user. But we can hear you thinking: why should I care about this? – Because it reduces draw calls! – Okay, and …? – Because draw calls are the main bottleneck if you want to display statics (buildings, rocks, trees, etc.) over a larger distance. – Wait! Are you saying … distant land with distant statics? – Yes, we are.
One feature that was developed in the same merge request as object paging is the “active-grid object paging”. It is basically the same feature, but applied to the player’s active cell(s). This means that the system will not only merge objects in distant cells, but also those in the cells your character is located in. This increases performance, especially in draw-heavy areas like cities and towns. Yay!
There is an issue with this feature as of now however, which is why we decided to set the “active-grid object paging” setting to “false” by default. The issue is that OpenMW still has a hard limit of 8 lights per object, a limitation inherent in the old fixed-function pipeline of Morrowind that OpenMW faithfully supports for legacy reasons. The limitation is sometimes an issue even without object paging, but you don’t generally notice it with vanilla Morrowind’s assets. If you start to merge several objects into a single one however, the limitation really starts to show: Lights will pop up and disappear frequently which simply looks bad. Once the light limit is removed (for which there exists a sizeable work in progress), active-grid object paging will become a lot more interesting.
The feature can now be tested in all freshly baked nightly builds in your neighbourhood. There are still things that need to be addressed in future merge requests. For example, we still don’t have a system to generate lower-detail meshes from high-detail ones to be used in the distance. This isn’t really an issue if you’re mostly using vanilla assets as they are very low in detail for modern standards anyway. For mods that use high-detail assets, however, this might be an issue. Work will continue on this. In any case, please help us out by installing the latest nightly build for your operating system and putting object paging to the acid test!
After over a year of development, the OpenMW team is proud to announce the release of version 0.46.0! Grab it from our Downloads Page for all supported operating systems. This release, potentially the largest ever since the move to OpenSceneGraph, finally reintroduces the long-awaited real-time shadows and also introduces a new improved navigation mesh-based AI pathfinding system based on recastnavigation library, among tons of other improvements.
Mod compatibility has been significantly improved in this release, and you can expect dozens of mods that worked poorly previously to become playable starting with this version.
Check out the release video by the splendiferous johnnyhostile and see below for the full list of changes. The corresponding OpenMW-CS release video is planned to follow soon.
One more thing: one of our major contributors, Capostrophic, has recently started a Patreon. AnyOldName3 (our resident Master of Shadows) also has a Patreon and psi29a, OpenMW’s new project lead also has a Patreon. So consider supporting them if you want to help OpenMW grow. Other contributors accept donations as well: you can find links to their Patreon pages in our FAQ. Don’t forget to support the software that helps make this all possible: OpenSceneGraph, OpenAL-Soft and SDL2 to name a few.
Known Issues:
To use generic Linux binaries, Qt4 and libpng12 must be installed on your system
On macOS, launching OpenMW from OpenMW-CS requires OpenMW.app and OpenMW-CS.app to be siblings
Shadows and the new navigation system are not yet perfect and they will get further tuning and refining – particularly in the area of performance when it comes to the shadows – in the subsequent releases
0.45.0 Regression Fixes:
Slowfall magic effect no longer erroneously resets the player jumping flag used for GetPCJumping script function (#4775) – Capostrophic
Attacking and landing no longer causes issues with the idle animation (#4847) – akortunov
Actors outside of the actor processing range are now invisible immediately upon loading (#4860) – akortunov
AiTravel no longer ceases execution erroneously if the AI processing range too low (#4979) – akortunov
Actors with their AI disabled, including those out of the AI processing range, can no longer drown (#4980) – akortunov
Collision shapes of dead actors no longer prevent hitting a different actor through them (#4990) – akortunov
Offered prices are now only capped in the barter window (#5028) – Capostrophic
Ranged weapon critical hits are now vanilla-friendly (#5067) – Capostrophic
Actors will only attempt to open a door when one really obstructs their path (#5073) – elsid
Player’s creature followers killing enemies using spells triggers a crime event properly (#5206) – akortunov
Windows: Logging can now be redirected into the command prompt again if you launch OpenMW from there – sthalik
Major New Features:
Improved navigation mesh-based AI pathfinding system (#2229) – elsid
Native weapon and shield sheathing support (#4673, #5193) – akortunov
Support for NiPalette, NiRollController, NiTriStrips and NiSwitchNode NIF records (#4675, #4812, #4882, #5121) – akortunov & Capostrophic
Native seamless container open/close animations support (#4730) – akortunov
Real-time shadows (#4851) – AnyOldName3
Support for loading the compressed BSA format from Oblivion, Fallout 3, Fallout: New Vegas and 2011 Skyrim games (#5000) – cc9cii & Azdul
Native graphic herbalism support (#5010) – akortunov
Support for custom attachment bones for different weapon types and custom bones in general (#5131) – akortunov
Support for unique animations for different weapon types (#5132) – akortunov
Environment-mapped bump-mapping support (#5304) – Capostrophic
Minor Feature Additions:
Actors avoid walking on the children geometry of an AvoidNode (#1724) – elsid
Gamepad player character movement is now analogue (#3025) – Perry Hugh
The global/local openmw.cfg now provides somewhat sensible default config values, making it possible to play a game without Morrowind.ini (#3442) – psi29a
Optionally, multiple projectiles can be enchanted at once (#3517) – akortunov
Option to invert input X axis (#3610) – Capostrophic
Local variables of the object selected in the console can be modified directly (#3893) – Capostrophic
Controller input can now be disabled in-game (#3980) – Capostrophic
Shift+Double Click shortcut maximises or restores the size of right-click menus (#3999) – akortunov
“Toggle sneak” shortcut on gamepads (double-tap of the Sneak button) (#4001) – Perry Hugh
BetaComment/ObjectReferenceInfo output is logged into openmw.log as well for convenience (#4129) – akortunov
RepairedOnMe, which is broken in vanilla, is implemented and always returns zero (#4255) – Capostrophic
RaiseRank/LowerRank instructions now work correctly and their rank changes are saved properly (#4316) – akortunov
The default controller bindings now replicate those from Xbox version of Morrowind (#4360) – Perry Hugh
Travelling, following and wandering actors can now properly decelerate before reaching their destination (#4544) – akortunov
Optional: Fog’s intensity can be calculated based on the actual distance from the eye point (#4708) – akortunov
“Clone Content List” button in the launcher which allows you to copy the current load order into a content list (#4784) – Capostrophic
Search fields were added to the inventory, trading and companion share windows (#4831) – fr3dz10
Support for switch nodes that change their state depending on the time of the day (e.g. Glow in the Dahrk mod) (#4836) – akortunov
Water reflections have much more detail levels and can be disabled completely (#4859) – wareya & akortunov
Random number generator seed command line argument (#4887) – elsid
Various distant terrain settings (#4890) – bzzt
Audio and video playback is paused when the game is minimised (#4944) – akortunov
At least 8 supported blood types (like vanilla) instead of just 3 (#4958) – Capostrophic
NiTriShape can now be controlled by NiKeyframeControllers (#5224) – akortunov
Lighting can optionally be applied to environment maps like in Morrowind Code Patch, improving bump-mapped object appearance (#5304) – Capostrophic
On devices that have a gyroscope, its movement will optionally rotate the camera (#5311) – akortunov
Ingredients can be filtered by their name or their magic effects in the alchemy window (#5314) – fr3dz10
Editor Feature Additions:
Terrain texture selection (#3871) – unelsson
A more obvious way to reset key bindings to their defaults – a button (#4068) – Capostrophic
Content files can now be opened directly as a file association on Windows and GNU/Linux (#4202) – Utopium
Faction Ranks table (#4209) – akortunov
Transient terrain change support (#4840) – unelsson
Instance record editor can now be opened directly from the scene window (#5005) – Utopium
Terrain shape selection and editing (#5170) – unelsson
Object instances in the scene view can be deleted with a keypress (#5172) – unelsson
Edit mode tool outlines are displayed in the scene view (#5201) – unelsson
Keyboard shortcuts to drop objects to the ground in the scene view (#5274) – unelsson
Bug Fixes:
The console window will no longer hide the other windows (#1515) – akortunov
Items with differing redundant ownership information now stack (#1933) – akortunov
Content file selector dialogues in the launcher and the editor only list one instance of a content file with a specific file name (#2395) – Capostrophic
The mouse wheel can now be bound to most actions in the in-game Controls menu, e.g. Previous and Next Weapon shortcuts (#2679) – Stomy
Scripted items no longer stack so as to avoid scripting issues (#2969) – Capostrophic
Data folders listed in the global openmw.cfg configuration file will no longer be handled after those in the user configuration file (#2976) – Capostrophic
Stray text following ‘else’ operator is now discarded, fixing scripting issues in Bloodmoon and mods like Sotha Sil Expanded (#3006) – Capostrophic
SetPos/Position can now teleport actors into active exterior cells, allowing modded followers to correctly handle player teleportation (#3109) – Capostrophic
Reserved F3, F4, F10 and Windows (on non-Apple platforms) keys can no longer be shortcuts for other actions (#3282) – Capostrophic
Modded companions will no longer try to start combat with themselves (#3550) – Capostrophic
Stealing items from the “evidence” chest is always considered to be a crime (#3609) – akortunov
Script functions like OnActivate can be used in non-conditional expressions and still work as expected (#3725) – Capostrophic
Normal maps are no longer inverted on mirrored UVs (#3733) – Capostrophic
DisableTeleporting instruction no longer makes teleportation magic effects undetectable by scripting (#3765) – Capostrophic
Melee and thrown weapons use absolute animation time for controllers, fixing issues in Improved Thrown Weapon Projectiles mod (#3778) – akortunov
Multi-line tool-tips now have the correct width when they use word wrapping (#3812) – akortunov
GetEffect script instruction no longer relies on outdated magic effect information (#3894) – Capostrophic
Object and script IDs can now contain non-ASCII characters in various situations (#3977) – akortunov
First run and missing game data dialogues of the launcher behave more consistently (#4009) – Capostrophic
Enchanted items outside the player’s inventory are now recharged automatically as well (#4077) – akortunov
PCSkipEquip and OnPCEquip hardcoded script variable behavior is much closer to vanilla, resolving issues with commonly used book script templates (#4141) – Capostrophic
Hand shielding animation behavior is now consistent with vanilla (#4240) – Capostrophic
Ash storm origin coordinates are now accurate to vanilla (#4240) – Capostrophic
Various rain and snow settings normally included in Morrowind.ini are no longer hardcoded (#4262) – akortunov
Door closing/opening sound effect is now stopped when the door is obstructed (#4270) – James Stephens
Character stats window left pane now has a minimum width and height (#4276) – anikm21
Actors that are currently playing a random idle will not combine this idle with the sneaking idle animation (#4284) – Capostrophic
Removed birthsign abilities are no longer erroneously restored upon loading ensuring mod compatibility (#4329) – akortunov
Previously confusing GDB detection error message now prints the value of PATH environment variable for convenience (#4341) – akortunov
Pulled arrows are no longer off-center for the characters of races that are not scaled uniformly (#4383) – akortunov
Either the ranged weapon or its ammunition can be magical for its damage to ignore normal weapons resistance effects, with the previous behavior available as an option (#4384) – Capostrophic
Reloading a saved game where the player character was falling will no longer prevent the falling damage (#4411) – Capostrophic
Wind speed returned by GetWindSpeed function is now accurate to vanilla (#4449) – akortunov
AiActivate AI package now behaves mostly like in Morrowind (#4456, #5210) – akortunov
ModCurrentFatigue script instruction will always correctly knockdown the actor when their Fatigue reaches 0 due to it (#4523) – Capostrophic
The rain particles are no longer delayed when the camera emerges from the water (#4540) – sthalik
Having a wander package is no longer necessary for actors to use greeting and idle voiceover (#4594) – Capostrophic, akortunov
Script parser now fully supports non-ASCII characters, fixing scripting issues in Arktwend total conversion (#4598) – akortunov
Disabling the audio no longer causes issues or crashes in some situations (#4600) – jlaumon
Interiors of Illusion puzzle in Sotha Sil Expanded mod is solvable (#4778) – Capostrophic
Blizzard weather particles origin is no longer a direction perpendicular to Red Mountain (#4783) – Capostrophic
First person sneaking animation is no longer very slow (#4787) – Capostrophic
Sneaking and running stances are handled correctly when the player character is airborne (#4797) – Capostrophic
Object collisions are updated correctly immediately after it is teleported if the cell didn’t change fixing issues in Sotha Sil Expanded mod (#4800) – Capostrophic
The player character should no longer be able to rest before taking falling damage (#4802) – Capostrophic
Stray special characters are allowed before a Begin statement in scripts (#4803) – Capostrophic
Particle systems with no sizes defined in their models are valid (#4804) – akortunov
Optional: NPC movement speed calculations take race Weight into account by default (#4805) – Utopium
Nodes named Bip01 now have higher priority than nodes named Root Bone when the movement accumulator node is determined, fixing Raki creature movement in Skyrim: Home of the Nords (#4810) – Capostrophic
Like in vanilla, but only as a last resort, creatures will try to use the sounds of their “model-sakes” that were loaded earlier (#4813) – Capostrophic
Journal instruction now affects the quest status even if it sets the quest index to a lower value (#4815) – Capostrophic
SetJournalIndex no longer changes the quest status (#4815) – Capostrophic
Spell absorption effect absorbs both harmful and beneficial effects once again (#4820) – Capostrophic
Jail progress bar’s behavior is more intuitive and has better performance (#4823) – akortunov
NiUVController only updates the texture slots that use the defined UV set (#4827) – akortunov
Looping VFX caused by potion effects are now shown for NPCs (#4828) – akortunov
A NiLODNode can be the root node of a mesh with particles (#4837) – akortunov
Arbitrary text after local variable declarations no longer breaks script compilation (#4867) – Capostrophic
Actors with no AI data defined like the player character no longer have corrupted AI data (#4876) – Capostrophic
Hello AI rating has 0-65535 range (#4876) – Capostrophic
Startup script can execute if you load a specific save through a command line argument (#4877) – elsid
SayDone script function no longer returns 0 on the frame Say instruction is executed (#4879) – Capostrophic
Stray explicit reference calls of global variables and in expressions no longer break script compilation, fixing issues in Sotha Sil Expanded mod (#4888) – Capostrophic
Title screen music is looped (#4896) – Capostrophic
Invalid resolution changes are no longer queued and then applied when settings are changed in-game (infamously those with sliders) (#4902) – akortunov
Specular power/shininess specular map channel is no longer ignored (#4916) – AnyOldName3
Permanent spells always play looping VFX correctly when they are applied (#4918) – akortunov
Combat AI checks Chameleon and Invisibility magic effects magnitude correctly (#4920) – akortunov
Werewolves’ attack state is reset upon their transformation allowing them not to become helpless in combat (#4922) – akortunov
Invalid skill and attribute arguments are now automatically cleared from spell effects that do not accept them instead of causing severe issues (#4927) – Capostrophic
Instances with different base object IDs can no longer match when you are loading a saved game that depends on a plugin that was modified (#4932) – akortunov
The default vertical field of view is now 60 degrees like in Morrowind and not 55 degrees (#4933) – Capostrophic
ESM files can now contain both actually empty strings and zero-length null-terminated strings (#4938) – Capostrophic
Hand-to-hand attack type is no longer chosen randomly when “always use best attack” is turned off (#4942) – Capostrophic
Magic effect magnitude distribution now includes the maximum value in the range (#4945) – Capostrophic
Player character’s 2D voiceover now uses lip animation (#4947) – Capostrophic
Footstep sounds are disabled for flying characters (#4948) – Capostrophic
Light source flickering and pulsing behavior now replicates vanilla calculations completely (#4952) – Capostrophic
Flying and swimming creatures no longer take vertical distance to their enemies into account, increasing cliff racer attack range (#4961) – Capostrophic
Enchant skill progression behaves like vanilla now (#4963) – akortunov
Only one instance of a specific Bolt sound will play for spell projectiles, fixing the loudness of Dagoth Ur’s spell projectiles (#4964) – Capostrophic
All global attenuation settings from Morrowind.ini are now used (#4965) – Capostrophic
Light magic effect light source uses the global attenuation settings (#4965) – Capostrophic
Miss sound now only plays for the player character (#4969) – Capostrophic
Quick keys can no longer be used when DisablePlayerFighting script instruction is active (#4972) – terabyte25
Only the player’s allies react to friendly hits as friendly hits (#4984) – akortunov
Object dimension-dependent VFX scaling behavior is now consistent with vanilla (#4989) – Capostrophic
Jumping mechanics are no longer framerate-dependent (#4991) – Capostrophic
Drop script instruction now behaves much closer to vanilla (#4999) – Capostrophic
Werewolves no longer shield their eyes during storm (#5004) – akortunov
Taking all items from a container no longer generates multiple “Your crime has been reported” messages (#5012) – akortunov
Spell tooltips now support negative magnitudes (#5018) – Capostrophic
Self-enchanting success chance is now calculated like in vanilla (#5038) – Capostrophic
Hash sign (#) in cell, region and object names no longer changes the color of a part of the name (#5047) – Capostrophic
Invalid spell effects are now dropped from spell records upon loading (#5050) – Capostrophic
Instant magic effects are now applied immediately if they’re removed through scripting during the frame they were added (#5055) – Capostrophic
Player->Cast/Player->ExplodeSpell instruction calls make the player character equip the spell instead of casting it (#5056) – Capostrophic
Actors will do and will only do damage randomly chosen from their weapon damage range if their weapon animations lack the wind up animation (#5059) – Capostrophic
Most magic effect visuals stop when the death animation of an NPC ends instead of when it begins (#5060) – Alexander Perepechko
NIF file shapes named “Tri Shadow” are always hidden (#5063) – Capostrophic
Paralyzed actors can no longer greet the player (#5074) – Capostrophic
Enchanting cast style can no longer be changed if there’s no object (#5075) – Capostrophic
DisablePlayerLooking/EnablePlayerLooking now work correctly (#5078) – Capostrophic
Scrolling with a controller in GUI is now possible (#5082) – jrivany
Much more script keywords can be used as string arguments, allowing more valid script names to work properly (#5087) – Capostrophic
Swimming actors are no longer traced down upon loading (#5089) – Capostrophic
“Out of charge” enchanted item sound no longer plays for NPCs (#5092) – Capostrophic
Hand-to-hand damage sound no longer plays on KO’ed enemies (#5093) – Capostrophic
String arguments can be parsed as number literals in scripts, fixing some issues in Illuminated Order mod (#5097) – Capostrophic
Non-swimming enemies will no longer enter water if the player is walking on water (#5099) – anikm21
Levitating player character can no longer be considered sneaking in more cases (#5103) – Capostrophic
Thrown weapons and ammunition now ignore their enchantment charge so they can always trigger their enchantment – like vanilla (#5104) – Capostrophic
Being over-encumbered no longer allows you to “jump” with zero vertical velocity (#5106) – Capostrophic
ModRegion accepts an additional numerical argument (#5110) – Capostrophic
Current spell HUD icon bar now correctly reflects the zero chance to cast a spell you don’t have enough magicka to cast (#5112) – Capostrophic
Unknown effect question mark is now centered (#5113) – James Stephens
Local scripts will restart for respawned actors immediately (#5123) – Assumeru
Arrows are detached from the actor if their pulling animation is cancelled (#5124) – akortunov
Swimming creatures which lack RunForward animations but have WalkForward animations are no longer motionless (#5126) – Capostrophic
Lock script instruction now always resets the door rotation like a normal door rotation would, fixing gates in The Doors mod series (#5134) – akortunov
Textures that have tiling disabled are no longer too dark outside their boundaries (#5137) – Capostrophic
Actors have a lower chance to get stuck in a door when it is being opened (#5138) – elsid
Failing to pick a lock physically or magically is now a crime in all cases (#5149) – Capostrophic
Natural containers like plants can’t be locked or unlocked using spells (#5155) – Assumeru
Lock and Unlock scripting instructions work on any object (#5155) – Assumeru
Objects can now use the ID as a substitution for their name in general case, allowing them to have tooltips and be activated (#5158) – Capostrophic
NiMaterialColorController target color is no longer hardcoded (#5159) – Capostrophic
Companions which use companion variable from Tribunal can always be activated (#5161) – Capostrophic
Node transformation data should no longer be shared between objects in some situations incorrectly (#5163) – akortunov
The player character will correctly get expelled from a faction upon an illegal interaction with an item owned by the faction (#5164) – akortunov
Scripts are no longer stopped after the player character’s death (#5166) – akortunov
The player is no longer able to select and cast spells before the spells window is enabled (#5167) – akortunov
PCForce1stPerson/PCForce3rdPerson instructions now really force perspective changes (#5168) – akortunov
Nested levelled item and creature spawning chance is now calculated correctly (#5169) – Capostrophic
Random script function returns a floating point value (like 55.0) instead of an integer value (like 55) fixing math in scripts that rely on it (#5175) – Capostrophic
OnPCEquip flag is now set on skipped beast race attempts to equip something that cannot be equipped (#5182) – Capostrophic
Equipped item enchantments now affect creatures that can equip items (#5186) – Capostrophic
Non-projectile ranged weapons can no longer be enchanted on-strike which breaks the original game balance (#5190) – Capostrophic
On-strike enchantments cannot be used on non-projectile ranged weapons that were enchanted earlier (#5190) – Capostrophic
Dwarven ghosts play their idle animations properly (#5196) – akortunov
The launch position of spell projectiles takes the character’s height into account (#5209) – akortunov
Excessive screen fading when a game saved in an interior cell is loaded first has been removed (#5211) – akortunov
Travelling actors are handled outside of AI processing range to avoid oddities in some mods (#5212) – Capostrophic
SameFaction script function is no longer broken (#5213) – Capostrophic
Exiting the game while the debug cell borders are active should no longer lead to crashes or serious issues (#5218) – akortunov
GetLineOfSight, GetDetected, StartCombat and Cast will no longer break scripts when they’re working with actors that aren’t present (#5220) – Capostrophic
The previous arrow is properly reattached when a spell with Bound Bow magic effect active on the player character expires (#5223) – akortunov
Actor reputation is now capped: it can no longer be above 255 or be negative (#5226) – akortunov
NIF controllers will no longer try to work without data and cause issues (#5229) – Capostrophic
On-self Absorb effect spells can be detected by scripting again (#5241) – Capostrophic
ExplodeSpell instruction behaves closer to Cast instruction (#5242) – Capostrophic
Water ripples will be correctly cleaned up when you enter a different cell again (#5246) – Capostrophic
Wandering actors wait longer after their greeting before starting walking again (#5249) – akortunov
Shields should always use the correct models when they are displayed on actors (#5250) – Capostrophic
GetTarget function with Player as an argument will return 1 when the affected actor is greeting the player (#5255) – Capostrophic
Wandering actors shouldn’t become stuck when they are crossing cell borders (#5261) – akortunov
Absorb Fatigue effect will no longer bring Fatigue under 0 (#5264) – Capostrophic
Damage Fatigue effect will bring Fatigue under 0 only as an option (#5264) – Capostrophic
Show debug instruction will still show the value of relevant global variables even if the chosen object is not scripted or lacks a local variable with the given name (#5278) – Capostrophic
Thanks to an inefficient copy operation being removed from explored map loading – among other reasons – saved game loading should be slightly faster (#5308) – akortunov
NIF properties like NiAlphaProperty are always applied in the order they are listed, avoiding incorrect rendering when multiple properties of the same type are listed (#5313) – Capostrophic
Settings writer preserves blank lines more sensibly and should cause much less settings.cfg formatting issues (#5326) – Capostrophic
Skills of dead actors that were fortified or damaged are properly reset when their magic effects are cleared (#5328) – Capostrophic
dopey Necromancy mod scripts should execute correctly (#5345) – Assumeru
Magic bolts with invalid target direction should no longer cause issues (#5350) – akortunov
Light items won’t use up their duration if the player character doesn’t actually hold them while they are equipped (#5352) – Capostrophic
Editor Bug Fixes:
Various fields like probabilities and actor AI ratings can no longer overflow (#2987) – Capostrophic
NPC records can be filtered by gender again (#4601) – Capostrophic
It is no longer possible to “preview” levelled list records which obviously lack models (#4703) – jrivany
Exterior cell views can be correctly opened from the Instances table (#4705) – unelsson
Interior cell lighting field values are now displayed as colors (#4745) – Capostrophic
Cloned, moved and added instances can no longer incorrectly reuse existing reference numbers (#4748) – Stomy
Texture painting is possible with a duplicate of a base texture (#4904) – unelsson
Rotations are now displayed as degrees and not radians (#4971) – Utopium
“Alembic” apparatus type is no longer misspelled as “Albemic” (#5081) – Atahualpa
Unexplored map tiles are no longer corrupted when a file with the relevant terrain record is resaved (#5177) – unelsson
Empty cell name subrecords are now saved to improve vanilla ESM format compatibility (#5222) – Capostrophic
Non-ASCII characters are supported in file paths (#5239) – akortunov
Interior cell lighting should no longer be corrupted in cleaned content files that were resaved (#5269) – Capostrophic
Other Improvements:
Media decoding has been updated to a FFmpeg 4-compatible API (#4686) – akortunov
Let’s just jump right into it! We’ve recently forked off 0.46.0 into its own branch and started our release candidate (RC) process. This will be officially our biggest release yet! If you would like to help us test, feel free to join us on the forums, IRC or Discord.