The OpenMW team is proud to announce the release of version 0.48.0 of our open-source game engine! Grab it from our Downloads Page for all supported operating systems and Dwemer devices; enjoy Morrowind’s 20 anniversary in style.
So what does another fruitful year of diligent work bring us this time? The two biggest improvements in this new version of OpenMW are the long-awaited post-processing shader framework and an early version of a brand-new Lua scripting API! Both of these features greatly expand what the engine can deliver in terms of visual fidelity and game logic.
As usual, we’ve also solved numerous problems major and minor, particularly pertaining to the newly overhauled magic system and character animations.
Unfortunately, this time you will not be able to watch a release video by his majesty Atahualpa and his excellency johnnyhostile since they are both heavily occupied by real-life matters. – But fear not! This release announcement post will cover the gist of what this new release brings in text form, so prepare for the read of your lifetime!
Of Post-Processing
As covered in our feature highlight blog post from last May, 0.48.0 introduces support for post-processing shaders. With wazabear’s sweat, blood, and titanic effort, the new release takes a leap forward in eye candy and can now support advanced visual effects like bloom, godrays, ambient occlusion, and many more. Shader maestros from our community have been playing with the framework for a while, so while OpenMW’s built-in assortment of shaders might seem somewhat conservative, with a little digging around the community repositories you’ll be able to transform the way your game looks.
Pressing F2 will open the in-game post-processing HUD where you can toggle any installed pretty effects on or off, or tweak their settings. To learn more about this new shader system, please take a deep dive into the extensive documentation wazabear has written.
Distant Objects and Distant Objects
As we speak of graphic improvements coming in the new release, you might think post-processing would overshadow everything else – but that’s not true at all! The Lord of Lights and others also managed to get rid of two major long-standing issues with distant object rendering.
Every 3D game uses a so-called depth buffer during rendering. As objects are drawn, the depth of every sample of every object is written into that depth buffer. This way objects closer to the camera can properly cover objects farther away from the camera. That’s all fine and dandy, however, the traditional implementation of a depth buffer distributes the possible depth values very poorly. With floating point numbers from 0 to 1 being used, the scale is very imbalanced towards the buffer’s near end, or the value of 0, while numbers closer to 1, that is, the viewing distance limit, are much more sparse. The visual consequences are violent flickering, and Z-fighting of distant objects, terrain, and water when the depth buffer just couldn’t keep up with the detail. This problem was even more apparent with low values of near clipping distance OpenMW requires for compatibility with Morrowind rendering.
And, well, 0.48.0 remedies this. The reverse-Z depth buffer wazabear added heavily improves depth buffer precision at large distances without sacrificing the precision of the rendering of closer objects. This effectively eliminates the pesky flickering with no perceivable performance impact. Nice!
Now, there are still caveats when you take this seemingly magical pill. While it doesn’t require bleeding edge hardware, some platform and video driver combinations might have trouble supporting this feature. If you encounter any problems, please report them to our issue tracker, IRC, or Discord.
As for the second woe, if you ever tried a province mod from Project Tamriel, you might have noticed the unpleasant vibration of objects and characters. While this is an inevitable consequence of how computers work when floating point numbers are rounded, OpenMW now uses double precision floating point numbers for physics interpolation and object transformation matrices. This should reduce the severity of flickering by around 4 billion times at a somewhat minor performance cost and greatly extend the vibration-free playable area for any province mods released up to the year 2090.
Better Fog? Better Fog!
There’s actually another unscheduled extra batch of Halloween eye candy distant objects receive: 0.48.0 brings a couple of optional visual tweaks to help improve fog rendering. You can now let fogged objects blend nicely with the sky on the horizon and toggle an alternative exponential formula for the distribution of the fog. See for yourself!
Of Rain Ripples and Pliable Particles
Anything else when it comes to visuals? Indeed there is. Rain ripples have been added a few releases ago, but their artificial appearance might have seemed underwhelming. Thanks to wareya, this release contains a much needed visual overhaul for these ripples – though not yet the generic water ripples, sorry! In the in-game settings, you may choose between multiple levels of detail for rain ripples depending on how well your system handles them.
wazabear just couldn’t stop on what has already been mentioned: he implemented a new rendering technique, so-called soft rendering, which smoothens the rendering of object intersections. This is particularly interesting for particles, which often clip through other objects. Enabling soft rendering for all particle systems is an option you can enable, and model artists can also enable soft rendering for other geometry using NiStringExtraData (see our documentation).
Finally, 0.48.0 contains some fixes for particle and shader lighting, making some magic effect VFX less dull and preventing snow blindness on Solstheim.
Reanimating Animations
Not yet straying too far from visuals, are we? Animations are also a major part of any game’s visual experience, and 0.48.0 brings a few corrections to the painfully produced implementation of Morrowind’s state machine. Most of them are the work of Capo and lay the groundwork for further improvements coming in 0.49.0.
Some of the most notable changes are those to blocking and spellcasting behaviour. Blocking no longer prevents movement and while there are still differences that a subsequent release will take care of, this makes the use of shields significantly more comfortable.
Spellcasting animation is now played even when the character has no Magicka to cast the spell. Curiously, Morrowind doesn’t play it when you fail to cast an already used power. You might remember that there was an option to play it when an enchanted item is used – well, in another curious case, Morrowind actually has an “animation” playing when you use an enchanted item in first person view! It is just a split-second change of the hands’ position to the direction you look at… Well, OpenMW now does that “animation” too.
Something that might or might not seem like a controversial decision, we discovered that Morrowind assets define some unused animations for equipping and unequipping spells for non-bipedal creatures. Sometimes they seem clearly unfinished, but sometimes they’re actually really interesting. We decided that benefits outweigh the negatives and enabled their use. When you play Morrowind, various spellcasting creatures like the Atronachs, Dwarven Spectres and Dagoth Ur himself will use these animations. Come to them through fire and war, see them for yourself and decide what you think!
Obligatory Mention of NIF
While we’re going through the visuals, we can’t forget about NetImmerse and Gamebryo’s NIF format, which is still the main format for use with OpenMW. We’ve added the support for a few records and features Morrowind modders discovered relatively recently and found useful, to keep up with the active modding scene.
Two new record types Morrowind NIF format contains have been implemented in this release: NiSortAdjustNode and NiFltAnimationNode. NiSortAdjustNode is a kind of node that lets its children, either all of them or the transparent ones, be drawn in an artist-defined order, which is useful to work around transparency sorting issues. NiFltAnimationNode is a special kind of a switch node that switches between its children automatically based on a timer, which can be useful to create complex animations.
While OpenMW had NiStencilProperty implemented for a while for its primary purpose of enabling double-sided rendering, clever stencil buffer manipulations it allows in NetImmerse never worked quite right in OpenMW. Stencil buffer is another data buffer like the depth buffer, and manipulating the stencil test and stencil buffer write allows artists to make the engine draw different geometry depending on the way the player looks at the object, make objects that look like indents in walls which will be rendered “over” the walls and so on. Thanks to wazabear, this functionality is now supported.
Another record that up to now wasn’t fully implemented is NiPlanarCollider, a particle collider. OpenMW will now respect the dimensions of the collision plane it defines.
The final NIF addition of note is the support of geometry-based particle emitters. When a geometry node is used as an emitter and a special flag is set in NiBSPArrayController, it will emit particles as if the geometry’s surface was the particles’ origin. This also allows producing very interesting VFX.
This is Where the Magic Happens
That should be it regarding the visuals. We were giving spellcasting animations a look, so now we’ll look into the magic system itself. Basically, Evil Eye fixed everything. No, seriously. All of it just works.
…
Well, actually not all of it, but it’s really close now! Evil Eye overhauled the entire spell and magic effect processing system to be much more flexible and easy to work with, fixing plenty of old flaws in the process.
We’ll start with birthsigns, of course. One of the most popular birthsigns for a Morrowind player to pick is the Lady, which gives the Nerevarine a hefty bonus to Personality and Endurance. Personality affects how much the people you meet like you, while Endurance is supposed to influence the health bonus you get every time you level up. Except it didn’t in OpenMW. You see, previously abilities would act as magical fortifications for your stats instead of affecting the base stats like they would in Morrowind. And since health gain per level is based on the base Endurance, the Lady-induced Endurance fortification could only grant the character a bit of extra Fatigue. This has been corrected. Of course, this also means that you can’t get your Personality to 125 thanks to the Lady anymore… unless if you were to convert Lady’s Favor into a Curse. Curses are a different type of a permanent spell and will magically fortify your stats like before.
When it comes to magic effects, we’ve finally made Morrowind playable in OpenMW by making the expiry of the secret EXTRA SPELL magic effect, which is intended to undress its target, make the target re-equip their equipment instead of staying naked forever. As for spell effects of lesser importance, there’s a few to cover.
First, the visual effects for Calm, Frenzy, and Rally Creature/Humanoid won’t play on actors of the wrong type. The same is true for Turn Undead. Additionally, the effects intended for creatures now apply to all creatures, even undead and daedric ones.
Thanks to the research received from Hrnchamd, the author of the Morrowind Code Patch, the position and scaling of magic VFX playing on actors has been made much more accurate to Morrowind, and in fact, better in a way: we did not replicate Morrowind’s bug where, to calculate the scale, it deems some creatures two times smaller than they should be.
Reflect now mirrors Spell Absorption in that it is multiplicative. This means that each Reflect effect source produces a distinct success roll. Reflect can now also reflect non-harmful effects, doesn’t reflect scripted spells, and properly stacks with Spell Absorption effects depending on casting order.
Some not that invisible Invisibility quirks had to be taken care of too. You will stop being invisible when you actually release an attack, not when you initiate one, and NPCs will no longer seem to be able to observe you while you’re invisible – that is, they won’t greet you or look at you.
Paralysis is obviously supposed to prevent you from picking up things. And it did – but not when you picked up things with your mouse. This has been fixed. This also concerns the state of knockout and death, if you could somehow manage to open the inventory while, well, dead.
Restore effects will now properly restore stats Drain effects damaged and when you hit a target with an enchanted projectile, the projectile’s on-self enchantments will affect the target instead of the caster.
You might know about the quirk Morrowind has where the character’s Weight affects the horizontal velocity of that character. Well, Weight is also apparently supposed to affect the velocity of any magic projectiles the character casts for some reason. Starting with 0.48.0, this behaviour is replicated if the “normalise race speed” setting is disabled.
Aside from fixing magic, there were some other fixes to game mechanics of note, particularly AI. The player’s allies won’t react to the player’s crimes anymore, weapon-wielding creatures can now open doors again (does this remind you of anything?) and all creatures can equip portable light sources during the night. Equipped light sources also won’t be extinguished underwater if they’re not actively being held.
The Sounds of Loudness
Alright, audio. Sounds are prone to get cut off in Morrowind. OpenMW 0.48.0 improves upon this so when you get too far from a sound that is still audible, the sound will quickly fade out instead of immediately going silent. This added transition makes the audible experience of flying away from the very loud Ghostfence noticeably less jarring.
In addition, to improve consistency with Morrowind, we had to allow sounds to continue playing even when their sources are gone from the worldspace they started playing in. This is done by using the sources’ new position in any worldspace they’re currently in as the sound source in the current worldspace. An interior cell is considered a distinct worldspace, sounds still won’t play if they’re too far from you, and these still playing sounds will also stop playing when you leave the current cell.
Finger Snap
Then there’s physics, of course. For all its primitiveness in the original 2002 engine, there are many gotchas to consider. For example, in Morrowind – for whatever reason – scripted object spawning doesn’t automatically make the object physically there until its state is updated through other means or tricks, so you can walk right through it. Of course some mods and the Bloodmoon expansion of all things rely on this behaviour, so we had to replicate it.
But there’s also something we overlooked ourselves: the momentum you carry was not reset upon teleporting and entering a new location. Wearing the Boots of Blinding Speed and jumping into a canton’s doors doesn’t allow you to smash into the other side of the canton at Mach 1 anymore.
There’s this commonly known issue in Morrowind where actors standing on tall platforms don’t tend to stay put and may end up on the ground way below. It’s an animation issue, but apparently OpenMW had a completely unrelated issue with very similar symptoms: when cells were loaded, it would snap actors down before loading all the objects in the cell, sometimes causing them to be snapped down right to the terrain level, which it was especially prone to in the rare case the object the NPC is standing on is actually from a different cell. This should no longer be a problem.
There was also a case where OpenMW wouldn’t have snapped down actors when it should have done so. When actors, including the player, are teleported, they are typically snapped down to the ground level, as spawn points tend to be notoriously inaccurate. However, flying and swimming actors were exempt from this. It was discovered that this is incorrect, so we fixed this – teleporting to inactive cells will snap down these actors as well. One problematic situation was the player’s teleportation from Magas Volar back to Tel Fyr while levitating.
INTERFACING [Legendary: Success]
The UI has also received some improvements. It’s the little things. The effect list of spells and enchanted items is now aligned left, like in Morrowind, and, if you enable the option, you can zoom the world map using the mouse’s scroll wheel.
But there are also big things. The layout and skin files our MyGUI-based interface uses are now a part of the virtual file system, which means that files from other data directories can override them. This also concerns fonts: while Morrowind’s bitmap fonts were always a part of the game’s assets, TrueType fonts OpenMW supports could not be. In fact, standard distributions of OpenMW now include TrueType fonts to be used by default. These TrueType fonts are based on the open source fonts Ayembedt and Pelagiad. While your game can of course rely on the bitmap font setup imported from Morrowind.ini instead, there is a good reason to offer these fonts as an alternative, which is as follows…
OpenMW-specific UI additions that aren’t already covered by your content files’ game setting records can now be localised! With the newly introduced YAML-based localisation support, the in-game UI was painstakingly translated to the languages our contributors speak, including Russian, German, French and Swedish. To use the translated lines, you need to change the locale using the in-game settings. Localisation files are also a part of the VFS, to be used in… ahem, let’s not jump too far ahead. Now, where were we… Ah. The TrueType fonts are offered because the original bitmap fonts may not include the glyphs necessary to display the text: for example, the fonts from the original American English release of Morrowind do not include Russian Cyrillic characters. If you’re interested in learning how the localisation works in-depth, give the documentation a look.
Setting Everything Up
If you’re a modding enthusiast, one addition you should love is the introduction of data directory and BSA archive configuration directly in the launcher. You will not need to manually edit openmw.cfg anymore to register archives or work with the data directory order.
That aside, the paths to configuration files OpenMW uses can now be redefined, meaning your OpenMW installation can become somewhat portable, though you can’t quite use multiple distinct OpenMW installations on the same device yet.
Font Settings, Yo!
Font size and TTF resolution can now be set from the launcher for quickly setting up the crispiest font imaginable for your desired screen resolution.
Red Paint
We know people like things to be fast. Navigation meshes were added in 0.46.0, and for all the AI improvement they bring, generating them takes quite some time on some setups. In 0.48.0, generated navigation meshes are cached to the disk, improving loading times in locations that have already been visited in a previous session. You can also generate navmeshes for your load order using the launcher, so that going through every single location in the game to do the same isn’t necessary.
Making Things Just Work
Of course, this release contains a great multitude of stability fixes that are too technical to explain in this overview. Them aside, there are also many, many mod compatibility improvements, and while we’re not going to cover all of them in this overview, you might still want to know that the following Morrowind mods, to our knowledge, should work in OpenMW slightly or much better than before.
There’s work on that front as well. cc9cii, a person with the nickname that might ring a Sixth House bell, did some magic, so OpenMW-CS, our editor, should load content files much, much faster now. unelsson has also made some changes here and there, greatly improving terrain editing performance and addressing a few problems.
It can also properly handle Persistent and Blocked record flags now. A newcomer, VidiAquam, has added an instance editing grid and the ability to snap instances to that grid in the various edit modes. This should make creating content much easier in OpenMW-CS.
Alright, alright, now that we’re done with all the interesting stuff, we can move on to the known issues and extended changelog and- what? There’s something else? Oh, right, there is…
Lua Scripting
Yes, OpenMW has its very own Lua scripting API now, dubbed OpenMW-Lua! The Great De-hardcoding is starting ahead of schedule, and Petr Mikheev and Anton Uramer are its pioneers.
Before covering what it currently offers, we’ll have to start with an honest disclaimer: you will not be able to run MWSE-Lua mods in this release. MWSE-Lua often acts as a light wrapper over the very guts of Morrowind’s executable. Unfortunately, while OpenMW might appear very similar to Morrowind on the surface, it does not resemble Morrowind internally, and trying to replicate every single little detail of Morrowind’s data structures, architecture and the way everything is tied together for the purpose would be counterproductive and frankly, take forever.
However, OpenMW-Lua is built with the prospect of supporting multiplayer and reaching parity with MWSE in mind, so we can only hope modders will be open to the idea of porting their mods to an OpenMW-compatible API at some point in the future.
But anyway, what does 0.48.0 Lua offer? Well, it’s not much, but it’s honest work! This early revision of the API gives scripts control over the camera as well as the means to create new GUI widgets, work with post-processing shaders, and some limited access to the game world. Of course, future releases will expand on this greatly as more parts of the engine are dehardcoded.
Mods that rely on OpenMW-Lua will need to include .omwscripts extension files, which are effectively text files that list the scripts and state what they’re going to run on. Aside from these files, mods must of course contain the scripts themselves. They can also include localization files – the same ones that are used for the UI strings and can be accessed through the API. Of course, there’s a settings API mods can work with to permanently store settings to be used across multiple game sessions.
For more information about the features of OpenMW-Lua and how to work with it, please consult the extensive documentation.
We should give some practical examples of the functionality the API can already offer. All the camera settings introduced in 0.47.0 are now configurable through the in-game settings menu. Some new mods that make use of 0.48.0 superpowers have also already been released:
Remember OpenNeverMind? While ultimately we decided against removing Morrowind support, the classic isometric gameplay has since become available as an OpenMW-Lua mod.
Protective Guards, not to be confused with the eponymous MWSE mod, makes guards protect the populace from all hostile actors – not just creatures and the player character.
Pursuit allows hostiles to follow you through teleporting doors.
Attend Me adds a follower HUD and automatic follower teleportation.
So that’s it for Lua in this release, with many more API improvements still to come in future releases. This is also the conclusion of 0.48.0 feature overview. Thank you for having interest in OpenMW and reading all of this, and consider also reading the full list of changes below!
Known Issues:
On macOS, launching OpenMW from OpenMW-CS requires ‘OpenMW.app’ and ‘OpenMW-CS.app’ to be siblings
Performance of enchanted ranged weapons (e.g., darts) isn’t as good as other projectiles’ performance
[#7354] If reverse Z depth buffer and soft particles are off or unsupported, disabling all post-processing in-game will trigger a crash
Rarely, quitting the game may crash it on some setups for an unclear reason. If you encounter such an issue, please send us feedback regarding its circumstances
[#4974] Fonts and GUI layout files are now overridable through the VFS
[#4975] TrueType font replacements are now included by default to avoid missing glyphs with OpenMW-specific GUI localisation
[#6867] GUI localisation support. Most of the previously hardcoded strings have been localised in French, German, Russian and Swedish
[#6925] In the character creation widget, the character’s head can be rotated in the preview area using the mouse wheel, as if you scrolled the slider below it
[#6941] Allow users to easily change font size and ttf resolution
by Assumeru/Evil Eye
[#1465, #6177] ‘Repeat’ flag is supported for AI package script commands.
[#2780] ‘Help’ console command, which prints OpenMW’s version string and every available command
[#4297] The remnants of ‘APPLIED_ONCE’ spell effect flag have been properly implemented
[#4414] EXTRA SPELL spell effect expiry now triggers re-equipment
[#6189] Generated navigation meshes are now cached on your storage device
by Eris Caffee
[#2766] Wizard will warn the user if the used version of Morrowind is unrecognised and potentially too old using the known size of English Morrowind BSA
[#6706] The dimensions of the in-game settings window are saved and loaded
by fr3dz10
[#2858] Data directories can be set up and BSA archives can be registered through the launcher
[#6496] ‘No Camera Collision’ flag is properly implemented for NIF nodes
by myrix
[#6419] Topics will not be considered exhausted if they can produce a hyperlink to a new topic
[#6700] Windowed fullscreen support. In this mode, the game is played in a borderless window that matches the display resolution
by Wolfgang Lieff
[#6684] Support of NiFltAnimationNode NIF record type, which represents an animated sequence of nodes.
by AnyOldName3 and Capo
With the bump of the minimum required version of OpenSceneGraph to 3.6.5, the following older improvements of OSG are brought over to every possible build of OpenMW:
[#3180] Support of uncompressed colour-mapped TGA files
[#6519] Duration is no longer displayed for ingredient magic effects
by Andreas Stöckel
[#6129, #6131] Character doll coordinates are properly calculated for large window sizes and non-1.0 UI scaling factor
[#6354] Sounds that are being culled due to being too far away will fade out instead of getting cut off
[#6386] Fixed screen-space coordinate computations for water reflections, preventing them from becoming a pixelated mess as you get close to the water surface on some video cards
by andrew-app
[#5434] Pinned windows no longer cover the remaining breath bar
by anikm21
[#6303] Going to jail makes the player cancel their current attack and sheathe their weapon
by AnyOldName3
[#6718] Throwable weapons’ enchantments will no longer break the rendering of their target in unpredictable ways
[#7251] Shader rendering is properly enabled for nodes that don’t have any rendering state set
by Assumeru/Evil Eye
[#1751] Birthsign abilities increase base stat values
[#1930] When an actor stops fighting a target, the actor’s allies stop fighting that target as well
[#2036] ‘SetStat’ and ‘ModStat’ group instructions behave much more like Morrowind, which allows Galsiah’s Character Development to increase stats beyond the cap of 100
[#3488] AI will not attempt to attack before finishing aiming
[#3737] If a script’s execution fails on one target, it will still run on other targets, as it could have failed due to target-specific factors
[#3737] ‘Equip’’s behaviour of implicitly adding an item if it’s missing will no longer make the actor equip anything else
[#3792] Magicka is recalculated immediately after Intelligence is changed instead of doing so a frame later
[#3846] Scripts now support unquoted string literals that start with a hyphen
[#3855] AI will avoid casting identical Bound item effects
[#3855] AI will also avoid casting Bound Shield if it can’t make use of the shield
[#3867, #5318] An actor’s allies that are already in combat will not join combat with the actor’s potential new targets
[#3905] ‘GetDistance’ that has no target will still “work”, preventing a problem in Great House Dagoth
[#4203] Overriding an object’s inventory will close that object’s looting window, preventing issues or crashes if an actor is resurrected during looting
[#4376] Levelled creatures that moved out of their original cell will properly respawn in their original cell, instead of being duplicated
[#5054] Spellcast equip/unequip animations are supported for non-bipedal creatures
[#5100] Temporary disposition changes can no longer bring an actor’s disposition below zero
[#5120] Scripted object spawning no longer automatically inserts the object’s physics model – it will be inserted when the scene is reloaded, when the object is enabled or when any object in the scene is disabled
[#5207] Summoned creatures are properly cleared if their caster is removed from the scene
[#5377] Keyboard focus is only restored to widgets with visible parents, preventing MenuTest from messing with the console input field focus
[#5596] Using multiple identical Summon effects in permanent spells can summon multiple creatures of the same type like temporary spells can
[#5842] ‘SetDisposition’/‘ModDisposition’ applies the current temporary disposition change permanently
[#5863] ‘GetEffect’ returns 1 for teleportation spell effects only after the teleportation is complete
[#5937] All portable light sources are rotated by 90 degrees when they’re attached to the character, while body parts that have a BoneOffset node are not
[#6051] Invalid water levels are handled more gracefully
[#6066] Quoted keywords can be used as string literals
[#6087] Manually added bound items no longer conflict with bound item effects and won’t disappear when they end
[#6107] Fatigue recalculation after attributes are updated can properly bring its current value above the maximum, like Magicka recalculation, if necessary
[#6123] Script that cannot be compiled no longer break the game when NPCs try to say hello as the script’s local variables are cached, fixing problems in Traveling Merchants
[#6172] All weapon-wielding creatures can open doors
[#6184, #6255] Illusion school and Reflect effects work more like vanilla (see explanation in the overview)
[#6197] Scripted spellcasting commands will no longer stack, and instead either override the previous packages (if casting hasn’t started yet) or do nothing (if casting is in progress)
[#6923] Loading a save where a corpse was disposed no longer prevents the actor’s respawning
by Bo Svensson
[#4602] Attaching a non-skinned body part that is potentially shared between multiple instances of a model always copies it, preventing crashes with Robert’s Bodies
[#6142] Groundcover mods no longer override cell flags
by Capo
[#4227] Spellcasting animation will still play even if the casting fails due to insufficient Magicka
[#4310] Spell and enchanted item effect list is aligned left instead of centre
[#4374] Mouse movement events happening during a loading screen are discarded
[#4389] Lip animation timer source will override any other timer source in the head model, fixing the animation of head models that have Autoplay animation flag set on the root node
[#4744] Invisible particles are always processed to prevent visual glitches with some creature animations
[#5192] Base actor turning speed is about 57% faster, increased from 10 radians (~573 degrees) per second to the original value of 900 degrees per second
[#5453] Fixed magic effect VFX position and scale calculations to be in-line with Morrowind
[#5592] Fixed many instances of idle animation seemingly restarting at the wrong time
[#5976] An attack will cancel invisibility when it’s released, not when it’s started
[#5978] Actors will not talk with or look at a magically invisible player character
[#6049] Pre-menu video audio will play at the same time as the title music, like in Morrowind, making Arktwend intro – which has a silent audio stream which would previously prevent the title music from playing – behave as expected
[#6054] All quick keys actions will be delayed while an important animation is playing, not just weapon equipment
[#6109] Multiple videos playing at the same time will no longer crash the game
[#6115] ‘ShowMap’ script instruction will enable map markers for all locations whose names start from its argument, not just those that match the argument
[#6118] Creature landing sound is considered an Effect type sound, not a Footstep type sound
[#6154] Levitating/swimming actors will be snapped down upon teleportation into an inactive cell
[#6174] Clicking on the free area in spell effect creation sliders increments the values instead of shifting the sliders to an unpredictable position
[#6307] Actors with a Travel package will stop if they have been close enough to the destination for a bit of time like in Morrowind, preventing them from getting stuck on their destination if they can’t quite reach the final position and fixing Infidelities quest in Tribunal expansion
[#6343] Magic projectile velocity is affected by NPC casters’ Weight
[#6416] In morph geometry, morph target zero is considered to be the target geometry instead of being ignored
[#6417]: Movement accumulation node choice now takes into account whether the animation source references either of the possible nodes
[#6429] Any AI script commands are no-op on non-actors instead of stopping script execution
[#6473] NIF strings are only parsed up to their first null terminator
[#6517] Empty Euler/XYZ rotation key groups are properly read
Alternative Euler rotation orders are now supported
[#6545] Actor momentums are discarded upon worldspace changes
[#6559] Weapon condition is consistently damaged before damage bonuses are applied
[#6579] OSG builds with double precision bounding sphere type are supported
[#6653] Console and maximised window dimensions are closer to Morrowind’s
[#6869] Stagger animation is cancelled when an attack animation is completed
[#6890] SDL input event errors are properly handled
[#6895] ‘RemoveItem’ with a negative count argument will overflow like ‘AddItem’ instead of stopping script execution
[#6896] Sounds are no longer stopped when their emitter leaves the worldspace, until the player leaves the cell
[#6898] Quick keys menu can be opened when a different GUI window is active
[#6909] Enchanted items casting aligns the first person character model to the direction of the casting for a single frame
[#6910] Portable light sources are no longer extinguished under water when they are not held
by cc9cii
[#3246]: Various actor stats potentially not included in converted ESS files will be loaded from the ESM file, preventing actors from being dead for no apparent reason
[#6067] Moved instances can now be loaded from any point in the instances list of a cell record
by elsid
[#5508] Binaries that don’t depend on Qt won’t be linked to Qt
[#5858] Giant objects no longer cause the navigation meshes to be generated based on everything within such objects’ bounds
[#6143] Screenshot capturing no longer freezes the game while it’s in progress
[#6143] Optional: Screenshot saved message can be shown again
[#6256] Enabling shadows should no longer cause a crash on exit with a statically linked OSG
[#6849] The textures of textured buttons are properly scaled if their height is not a multiple of the original height
[#6860] Actors may no longer try to evade an obstacle when there isn’t an obstacle due to their destination position changing
[#6937] Wander package destination can no longer be outside of the Wander radius, fixing ‘Divided by Nix Hounds’ quest
[#7008] Reserved node name list handling is now thread-safe
[#7121] Making the game time settings invalid will no longer cause instability
by Eris Caffee
[#5279] Console text selection no longer breaks auto-scrolling
[#6667] Pressing Escape during waiting properly cleans up the wait dialogue
by Kindi
[#6191] Encumbrance messagebox works more like in Morrowind, with only one message appearing at a time and with the semi-broken delay removed
[#6258] Changing the offered price in the barter window may no longer cause the UI to confuse the seller and the buyer
[#6322] Barter offer price is properly reset when no items are getting exchanged
[#6358] ‘ChangeWeather’ script instruction will report a warning if the used region doesn’t exist
[#6433] Items assigned to quick keys are updated when their quick key is activated in case they become unavailable to prevent them from becoming unavailable until the quick keys menu is reopened
[#6451] Weapons summoned by Cast When Used enchantments will have their name set in the HUD properly
by Léo Peltier
[#5483] Spells that have ‘Autocalc’ flag set have their cost calculated automatically
[#5534] As mentioned, the minimum required version of OpenSceneGraph has been bumped from to 3.6.5 and the support for OpenSceneGraph 3.4 has been dropped
Finally, after much hard work to get all the cool new features ready for release, we have our first round of Release Candidates, or “RC” for short. RCs are simply release binaries for testing, to make sure everything is in order for a release. That’s right, testing! So we would be very grateful if you would download an RC for your OS of choice, test it a bit to see if it works without any issues and report any findings you make to our GitLab issue tracker. Please make sure to check first that whatever you find is not on the tracker already and that you’re running the latest RC.
If you just want to use OpenMW without hassle rather than test things, you’re probably better off waiting for the actual release or grabbing 0.47 from our downloads page.
Another year of busy and fruitful development lies behind us — and the OpenMW team is proud to announce the release of version 0.47.0 of our open-source engine! Grab it from our Downloads Page for all supported operating systems.
With over 180 solved issues and a plethora of new features, this release is on par with the enormous 0.46.0 release we had last year. Brace yourself for object paging which allows OpenMW to finally display distant statics, proper support for groundcover mods, an improved lighting system, more efficient and robust physics, the new, optional over-the-shoulder camera, and much, much more!
In addition, countless bugs have been solved — both for the vanilla game and for a variety of mods to ensure even better mod compatibility in the new version.
On macOS, launching OpenMW from OpenMW-CS requires ‘OpenMW.app’ and ‘OpenMW-CS.app’ to be siblings
Lighting of spellcasting particles looks dull
Pathfinding during the “Tribunal” expansion quest “Infidelities” is broken and the journal may not get updated because Taren Andoren hasn’t yet reached his target spot; as a workaround, waiting for one hour will allow Taren to reach his target spot and the journal to be correctly updated
Performance of enchanted ranged weapons (e.g., darts) isn’t as good as other projectiles’ performance
New Engine Features:
by akortunov
[#5524] Failed scripts are flagged as ‘inactive’ and ignored rather than being removed — until the game is reloaded or restarted
[#5580] An NPC’s service refusal (e.g., for training, trading, or enchanting) can be filtered by service type to allow more complex NPC reactions instead of the vanilla “all or nothing” behaviour
[#5642] Arrows can be attached to an actor’s skeleton instead of the bow mesh to allow implementing left-handed bows and actor-dependent shooting animations
[#5813] Improved handling of groundcover mods via grass instancing
by AnyOldName3
[#4899] Alpha-to-coverage anti-aliasing — this improves the look of alpha-tested objects, e.g., foliage from “Morrowind Optimization Patch”
[#4977] Show default icon if an item’s icon is not found
by Assumeru
[#2404] Levelled lists can be placed in containers
[#2798] Base records are mutable, i.e., modifying an instance of a base record (e.g., a guard NPC) will now affect all instances sharing the same base record (e.g., all other clones of that guard NPC)
[#5730] Add option to support graphic herbalism to ‘Advanced’ tab in the launcher
[#5771] ‘ori’ console command displays the mesh’s data source as well as whether the x-prefixed version is used
by bzzt
Proper underwater shadows when refraction is enabled; disabled if ‘refraction scale’ setting is not 1.0 [additions by AnyOldName3 and madsbuvi]
[#2386] Optional: Render distant static objects via object paging, i.e., by merging objects which are close to each other; ON by default but ‘Distant land’ needs to be enabled [corrections and polishing by psi29a]
[#2386] Optional: Object paging in active cells (3×3 grid around player character); ON by default [corrections and polishing by psi29a]
by Capostrophic
[#5362] Dialogue for splitting item stacks displays the name of the trapped soul for stacks of soul gems
[#5672] Setting ‘Stretch menu background’ which makes background images fit the full screen is also available in the launcher
by CedricMocquillon
[#1536] Show current level-up attribute multipliers in ‘Level’ tooltip
[#4486] Handling and logging of crashes on Windows
[#5297] Search bar in the launcher’s ‘Data Files’ tab
[#5486] Optional: Determine a trainer’s offered skills and their respective limits by evaluating base values instead of modified ones; OFF by default
[#5519] Reorganised and expanded ‘Advanced’ tab in the launcher to integrate most MCP-like settings
[#5814] ‘bsatool’ can add to or create new BSA archives (supports all BSA types)
by elsid
[#4917] Objects too small to change the navigation mesh no longer trigger updates of that mesh which improves performance
[#5500] Scene loading ends only when enough navigation mesh tiles around the player character have been generated
[#6033] Automatically add existing path grid to navigation mesh to further improve pathfinding
[#6033] Partially remove fallbacks to old pathfinding to avoid, e.g., actors following other enemies into lava
[#6034] Calculate optimal navigation paths based on an actor’s individual movement speed on land and in water
by fr3dz10
[#2159] Optional: Grey out dialogue topics which are — at least in that moment — exhausted and highlight newly added topics; OFF by default (colours are customisable)
[#4201] Projectile-projectile collision, including targeted spells (a successful hit cancels both projectiles); emulates vanilla behaviour
[#5563] Optional: Physics are run in one or several background threads to improve performance; OFF by default
by glassmancody.info
[#5828] New, shader-based, customisable lighting system which removes the limit of eight light sources per object
by jefetienne
[#5692] Filter in the spell window also displays items and spells with matching magic effects — not only those with matching names
by ptmikheev
Improved vanity mode in third-person view
[#390] Optional: New over-the-shoulder look in 3rd-person view; OFF by default
[#390] Optional: Auto-switch shoulder in narrow passages; ON by default but ‘View over the shoulder’ needs to be enabled
[#2686] Logged info in ‘openmw.log’ displays timestamps
[#4894] Optional: NPCs avoid collisions when moving; OFF by default
[#4894] Optional: NPCs give way to moving actors if they are idle; ON by default but ‘NPCs avoid collisions’ needs to be enabled
[#5043] Optional: Customisable head bobbing in first-person mode; OFF by default
[#5457] Optional: More realistic diagonal character movement; OFF by default
[#5610] Optional: Actors move and turn smoother; OFF by default
by simonmeulenbeek
[#5511] Add audio settings to ‘Advanced’ tab in the launcher
by TescoShoppah
[#3983] Installation wizard provides link to FAQ section regarding buying Morrowind.
by unelsson
[#5456] Basic support for ‘Collada’ animation format
[#3171] Instance drag selection with the following modes: ‘centred cube’, ‘cube corner to corner’, ‘centred sphere’
[#3171] Configurable actions for instance drag selection: ‘select only’, ‘add to selection’, ‘remove from selection’, ‘invert selection’
Engine Bug Fixes:
by akortunov
[#3714] Resolved conflicts between ‘SpellState’ and ‘MagicEffects’ functionality of the engine
[#3789] Fixed a crash which could occur when updating active magic effects
[#4021] Attributes and skills are now stored as floating-point values
[#4623] Improved implementation of the Corprus disease
[#5108] Prevent save-game bloating by using an appropriate fog texture format
[#5165] Active spell effects now use real-time updates instead of timestamps to avoid problems with time scale and scripted daytime changes
[#5387] ‘Move’ and ‘MoveWorld’ commands now correctly update the moved object’s cell
[#5499] Game logic for rank advancement now properly considers the two favoured skills of a faction
[#5502] Dead zone of analogue sticks can now be configured in the ‘openmw.cfg’ file
[#5619] Key presses are now ignored during savegame loading
[#5975] Controllers for “sheath” meshes (used by weapon sheathing mods) are now disabled to prevent, e.g., accidentally playing shooting animations for bows in “HQ Arsenal” mod
[#6043] An NPC’s ‘shield’ animation is now cancelled when a light source is equipped instead of a shield
[#6047] In-game mouse bindings can no longer be triggered when controls are disabled, e.g., when loading a savegame
by AnyOldName3
[#2069] ‘NiFlipControllers’ now only affect the base texture which, e.g., solves issues with the fireflies in the “Fireflies Invade Morrowind” mod
[#2976] Fixed issues with the priority of OpenMW’s local and global config files
[#4631] GPUs which don’t support an anti-aliasing value of 16 now always fall back to a lower value if ’16’ is set in the settings
[#5391] Bodies from “Races Redone” mod are now correctly shown on the inventory’s paper doll
[#5688] Water shader no longer breaks in interior cells when indoor shadows are disabled
[#5906] Sun-glare effect now works with ‘Mesa’ drivers and AMD GPUs
by Assumeru
[#2311] Targeting non-unique actors in scripts is now supported
[#2473] Selling respawning items to vendors now increases the amount that respawns
[#3862] Random contents of containers are now determined in a similar way as in the original engine
[#3929] Random loot in a container no longer respawns when the player character takes the loot and trades with the container’s owner afterwards
[#4039] Followers no longer form a train of actors but rather follow their leader at the same distance
[#4055] If a script is running as a global script, newly triggered local instances of that script will now be initialised with the global script’s variable state
[#5300] NPCs carrying torches now switch to using a shield when they enter combat [inspired by Capostrophic’s work]
[#5423] Bigger creature followers — e.g., Guars — no longer bump into their leader
[#5469] Scripted rotations or displacements of large objects no longer reset the local map’s fog of war
[#5661] Region sounds now use fallback values to determine the minimum and maximum time between sounds
[#5661] There now is a chance to play no region sound at all if the sum of all sound chances for the current region is below 100 %
[#5687] Bound items covering the same equipment slot no longer freeze the game if they expire at the same time, e.g., while resting
[#5835] Scripts can now set AI values (‘AI Hello’, ‘AI Alarm’, ‘AI Fight’, ‘AI Flee’) to negative numbers
[#5836] Dialogue conditions containing negative AI values now work
[#5838] Teleport doors to non-existent wilderness cells no longer break the local map
[#5840] NPCs being hit due to attacking an enemy with an active ‘fire/frost/shock shield’ effect now trigger the corresponding damage sound effect
[#5841] Free spells can now be cast even if the caster has no magicka left
[#5871] Users with Russian keyboard layout can now use ‘Ё’ in input fields without opening the console
[#5912] ‘Summon’ effects that failed to summon anything are no longer removed
[#5923] Clicking on blank spaces in the journal can no longer open topics on the next page
[#5934] Morrowind legacy madness: The item count in ‘AddItem’ commands is now transformed into an unsigned value, i.e., negative numbers will overflow and result in a positive number of items being added
[#5991] Scripts can now open books and scrolls in the inventory
[#6007] Corrupt video files no longer crash the game
[#6016] Sneaking or jumping NPCs no longer stop and turn to greet the player character
by Capostrophic
[#4774] Guards no longer ignore attacks of invisible player characters but rather initiate dialogue and flee if the player resists being arrested
[#5358] Initiating dialogue with another actor without closing the dialogue window no longer clears the dialogue history in order to allow, e.g., emulation of three-way dialogue via ‘ForceGreeting’ command
[#5363] ‘Auto Calc’ flag for enchantments is now properly treated as flag in OpenMW-CS and in OpenMW’s ‘esmtool’
[#5364] Scripts which try to start a non-existent global script now skip that step and continue execution instead of breaking
[#5367] Selecting already equipped spells or magic items via hotkey no longer triggers the ‘equip’ sound to play
[#5369] ‘Scale’ argument in levelled creature lists is now considered when spawning creatures from such lists
[#5370] Morrowind legacy madness II: Using a key on a trapped door/container now only disarms the trap if the door/container is actually locked
[#5397] NPC greetings are now properly reset when leaving and re-entering an area
[#5403] Visual spell effects affecting an actor now also play during that actor’s death animation
[#5415] Environment maps now properly work for equipped items, e.g., those of the “HiRez Armors” mod
[#5416] Junk non-node root records in NIF meshes are now handled more gracefully to allow certain modded assets to be loaded
[#5424] Creatures now head-track the player character
[#5425] Magic effects which are not applied once now have a minimum duration of 1 second
[#5427] ‘GetDistance’ function no longer stops script execution when there is no object found for the given ID
[#5427] ‘GetDistance’ function and the engine’s object search now log improved warning messages regarding missing objects of a given ID
[#5435] Enemy attacks can now hit the player character when collision is disabled
[#5441] Fixed the priority of certain animations to allow enemies to push the player character in first-person view if the player just holds the attack button
[#5451] Magic projectiles now instantly disappear when their caster vanishes or dies
[#5452] Auto-walking is no longer included in savegames, i.e., the player character will stand still again after loading
[#5484] Items with a base value of 0 can no longer be sold for 1 gold
[#5485] Successful intimidation attempts now always increase an NPC’s disposition by at least a minimum margin
[#5490] Hits to the ‘left carry’ slot are now redistributed to the ‘left pauldron’ slot or the ‘cuirass’ slot if the actor has no shield equipped
[#5525] Case-insensitive search in the inventory window now also works for non-ASCII characters
[#5603] When switching to constant-effect enchanting in the enchantment window, all effect ranges are now reset to ‘self’ if possible and incompatible effects are removed
[#5604] OpenMW’s NIF loaders can now correctly handle NIF files with multiple root nodes
[#5611] Repair hammers with 0 uses can now be used only once before they break, while lockpicks and probes with 0 uses do nothing at all — thanks, Bethesda!
[#5622] Fixed the priority of the main-menu window to prevent the in-game console from becoming unresponsive
[#5627] Book parser now considers images and formatting tags after the last ‘end of line’ tag to correctly display certain in-game books and scrolls added by mods
[#5633] Negative spell effects received before switching to god mode no longer continue to harm the player character
[#5644] Active summon effects on the player character no longer cause crashes during game initialisation
[#5656] Characters no longer use the standing animation when blocking attacks in sneak mode
[#5695] Actors casting a target spell at themselves via script now aim for their feet rather than casting the spell in their current target’s direction
[#5706] AI sequences — e.g., for patrolling NPCs — no longer stop looping when a savegame is reloaded
[#5758] Paralysed actors who are underwater now float to the surface
[#5758] Levitating actors who get paralysed now fall to the ground
[#5869] Guards now only initiate the arrest dialogue if the player character is in line of sight
[#5877] Transparency of magic-effect icons is now properly reset to prevent “empty” icons from appearing in certain situations
[#5902] ‘NiZBufferProperty’ now handles ‘depth test’ flag
[#5995] UV offset in ‘NiUVController’ — which is used in vanilla Morrowind to simulate liquid movement — is now properly calculated
by ccalhoun1999
[#5101] Hostile followers no longer follow the player character through teleport doors or when they use travel services
by davidcernat
[#5422] The player character no longer loses all spells if resurrected via the ‘resurrect’ console command
by elsid
[#4764] Synchronise main thread and rendering thread to avoid errors with particles, e.g., in the water-ripple effect
[#5479] Fixed an issue with pathfinding that led to NPCs standing rooted to the ground instead of wandering about
[#5507] Sound volume settings are now always restricted to the range [0.0, 1.0] and are no longer potentially unclamped in response to in-game volume changes.
[#5531] Fleeing actors are now correctly rotated which, e.g., prevents cliff racers from diving underwater when fleeing
[#5914] ‘Navigator’ now builds “limited” paths for actors with far-away destinations to ensure pathfinding even over greater distances (outside the navigation mesh)
[#6294] Fixed a crash caused by an empty path grid
by fr3dz10
[#3372] Magic bolts and projectiles now always collide with moving targets
[#4083] Doors now mimic vanilla Morrowind’s behaviour when colliding with an actor during their open/close animation [partially fixed by elsid]
[#5472] Zero-lifetime particles are now handled properly and a related potential zero division in ‘NiParticleColorModifier’ that caused crashes on non-PC platforms, e.g., when using Melchior Dahrk’s “Mistify” mod, has been fixed
[#5548] ‘ClearInfoActor’ script function now removes the correct topic from an actor
[#5739] Saving and reloading the savegame prior to hitting the ground no longer prevents fall damage
by glassmancody.info
[#5899] Exiting the game without having closed all modal windows no longer leads to a crash
[#6028] NIF particle systems now properly inherit the particle count from their ‘NiParticleData’ record which, e.g., solves issues with the “I Lava Good Mesh Replacer” mod
by kyleshrader
[#5588] Clicking on an empty journal page no longer triggers topic entries to show
by madsbuvi
[#5539] Resizing of the game window no longer breaks when switching from lower resolution to full-screen resolution
by mp3butcher
[#1952, #3676] ‘NiParticleColorModifier’ in NIF files is now properly handled which solves issues regarding particle effects, e.g., smoke and fire
by ptmikheev
[#5557] Moving diagonally using a controller’s analogue stick no longer results in slower movement speed compared to keyboard input
[#5821] OpenMW now properly keeps track of NPCs which were added by a mod and moved to another cell, even if the mod’s load-order position is changed
by SaintMercury
[#5680] Actors now properly aim magic projectiles which, e.g., prevents bull netches from shooting over the player character’s head
by Tankinfrank
[#5800] Equipping a constant-effect ring no longer unequips a cast-on-use ring which is currently selected in the spell window
by wareya
[#1901] Actors’ collision behaviour now more closely replicates vanilla Morrowind’s behaviour
[#3137] Walking into a wall no longer prevents the player character from jumping
[#4247] Actors can now walk up certain steep stairs thanks to the usage of AABB (“axis-aligned bounding box”) collision shapes
[#4447] Switching to AABB collision shapes also prevents the player character from looking through certain walls
[#4465] Overlapping collision shapes no longer cause NPCs to twitch
[#4476] Player character no longer floats in the air during scenic travel in abot’s “Gondoliers” mod
[#4568] Actors can no longer push each other out of level boundaries when there are too many of them in one spot
[#5431] Prevent physics death spirals in scenes with a huge amount of actors
[#5681] Player characters now properly collide with wooden bridges instead of getting stuck or passing through them
Editor Bug Fixes:
by akortunov
[#1662] OpenMW-CS no longer crashes if there are non-ASCII characters in a file path or in a configuration path
by Atahualpa
[#5473] Cell borders are now properly redrawn when undoing/redoing changes made to the terrain
[#6022] Terrain selection grid is now properly redrawn when undoing/redoing changes made to the terrain
[#6023] Objects no longer block terrain selection in ‘terrain land editing’ mode
[#6035] Circle brush no longer selects terrain vertices outside its perimeter
[#6036] Brushes no longer ignore vertices at NE and SW corners of a cell
by Capostrophic
[#5400] Verifier no longer checks for alleged ‘race’ entries in non-skin body parts
[#5731] Skirts worn by NPCs are now properly displayed in 3D view
by unelsson
[#4357] Sorting in ‘Journal Infos’ and ‘Topic Infos’ tables is now disabled; you may adjust the order of records manually
[#4363] Clone function for ‘Journal Infos’ and ‘Topic Infos’ records now allows you to edit the new record’s ‘ID’ respectively
[#5675] Object instances are now loaded and saved with the correct master index to prevent overwritten objects from appearing in game
[#5703] OpenMW-CS will no longer flicker and crash on XFCE desktop environments
[#5713] OpenMW-CS now properly renders ‘Collada’ models
[#6235] OpenMW-CS no longer crashes when changes to the terrain height are undone and then redone
by Yoae
[#5384] Deleting an instance in 3D view now correctly updates all active 3D views
Miscellaneous:
by akortunov
[#5026] Prevent data races with ‘rain intensity uniforms’
[#5480] Drop Qt4 support in favour of Qt 5.12 or later
by AnyOldName3
[#4765] Avoid binding an OSG array from multiple threads in OpenMW’s ‘ChunkManager’
[#5551] Windows: OpenMW no longer forces a reboot during installation
Finally, after much hard work to get all the cool new features ready for release, we have our first round of Release Candidates, or “RC” for short. RCs are simply release binaries for testing, to make sure everything is in order for a release. That’s right, testing! So we would be very grateful if you would download an RC for your OS of choice, test it a bit to see if it works without any issues and report any findings you make to our Gitlab issue tracker. Please make sure to check first that whatever you find is not on the tracker already.
Thank you and we’ll see you again on the day of the release!
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