Abrir menu principal

UESPWiki β

Morrowind Mod:Engine Bugs

< Modding

This page contains information on the engine bugs present in Morrowind. Not all of the errors/bugs stated here necessarily occur in the release you own. Eg. the GOTY (Game of the Year) PC version of Morrowind incorporates many bug-fixes out of the box, as well as the final release versions of Morrowind, its expansions, and the TESCS.

Savegame-related bugs

The following bugs occur related to savegames, or are otherwise caused by savegames.

Haven't been saving for too long

Symptom: The player just wanders about and suddenly, Morrowind crashes without any reason.

Sometimes, Morrowind simply crashes when you haven't saved your current game for a while. This is caused by a bug in the data sorting algorithms of the engine; the buffers simply overflow and empty, the engine tries to access data that is gone --- et voilà.

Fix: There seems to be no way to avoid this. Except saving regularly. However, most times when Morrowind is about to crash the game will freeze and save a “Restore” file that you can then load from the load menu.

Too Many Saves

Symptom: Keeping more than N saves in the Saves directory causes fatal load errors.

Keeping more than N saves in the Saves directory causes fatal load errors. If you get beyond a certain number of saves (which may be dependent on the total number of active plugins), then Morrowind starts to give fatal load errors. In one test, as shown below, at 891 save files, the savegame loaded ok, but at 892 I started to get errors:

SAVES...RESULT
891.....OK
892.....BAD ("QuestName info in Journal "XXX" has no name string.")
893.....BAD ("Could not locate info 'NNN' for Dialogue 'XXX'.")
916.....BAD (load menu corruption + "Could not locate info 'NNN' for Dialogue 'XXX'.")
917.....BAD ("Model Load Error: in menu_thick_border.NIF.") + load menu corruption
(also had 148 active game files/plugins during test)

As the number of saves increases, the errors change and graphic corruption starts to occur, particularly with the load game menu. Interestingly, the total number of saves and plugins (1039) during this test is pretty close to the magic number 1024 (a number often chosen by programmers as an array size). Since the problem appears to be some sort of buffer overflow/memory corruption, it's possible that the problem actually starts when the total number of plugins + saves exceeds 1024, but visible signs of the corruption don't start to show until a little after that, in my case 1039. In any case, the test clearly shows that it's a bad idea to keep too many saves in the saves directory. It's probably best to keep it under a couple hundred files.

Fix: Game breaking, but easy for user to control by limiting number of saves, moving them elsewhere, or archiving them. MCP adds a warning message so player will be aware that there are too many savegames.

Graphics bugs

The following bugs are related to Morrowind's graphics, shaders, and other such related issues.

Fog

Symptom: Players with nVidia graphics cards will notice some interior cells render as a blank screen.

The fog bug notably happens with nVidia graphics cards when the fog density parameter for an interior cell is set to "0.0", the room is displayed as a blank screen. You sometimes see only light fixtures and the player's hands, but all other features of the room are obscured. This notably happens in Tribunal in the Dome of Serlyn. But a number of mods also have this problem. For Oblivion, Wrye fixed this in the Bashed Patch feature of Wrye Bash, which I believe just changes the fog setting from 0.0 to 0.001. These bugs are very easily fixed in the CS on a mod by mod basis. But it's a small pain in the rear, and it would be great not to have to worry about patching mods you download. This bug is game breaking, but mod workaround possible, the fault could be assigned to the graphics card, but proposed since it is probably an easy fix in the engine.

Fix: Change the 0.0 fog settings to some other value, such as the suggested 0.001.

Vampire/Red Damage Ring

Symptom: A vampire taking sun damage may notice the 'red damage ring' from taking damage will remain when it shouldn't, such as when entering an interior cell.

The "red damage ring" bug notably happens when you are a vampire taking sun damage and you enter an interior cell from the exterior, but it can actually happen to any character when you switch from interior to exterior or back, when taking damage. While you are taking damage, a red ring pulses around the edge of the screen. When the bug happens, the ring stays constant and does not fade away after the cell change. I believe the only way to make it go away is to again take damage, or to restart the game. Even starting a new game (without restarting) does not make it go away. This bug doesn't affect gameplay, it's purely cosmetic, but it is irritating to have that red ring not go away.

Fix: in the Morrowind ini file change: ShowHitFader=1 to ShowHitFader=0

This has the side effect of removing the red-ring 'taking hits' effect for all damage also (not just vampire sun damage), but you'll never get the effect stuck permanently on your screen. Or enable "Hit fader fix" in Morrowind Code Patch. It has no side effects.

Forgotten menu sizes

Symptom: Morrowind doesn't retain resized menus occasionally.

A small but irritating UI glitch: MW sometimes "forgets" how you have resized the menus in menu mode.

Fixes: None, currently, other than redoing the sizing of the menu.

The Morrowind sun appears as a "black hole" in the sky

Symptom: The sun in Morrowind looks like a 'black hole in the sky when using certain models of ATI cards.

Due to an unknown rendering error in certain models of ATI cards, the sun will not render properly during play, displaying a blackened sun that resembles a "black hole" in the sky.

3rd person speed

Symptom: Your character swims and runs faster, but walks slower when camera is in 3rd person view.[verification needed]

This has something to do with the animation.

Map-related bugs

These bugs are related to the handling of maps, items, and other 'game world' objects such as activators.

Scripted doors break cellchanged function

Symptom: Players playing mods that use CellChanged scripts to detect player entry may miss quests that are triggered by these scripts, because its implementation is flawed.

Some mods use CellChanged in scripts running in a cell to detect the initial frame when a player has entered the cell. But if some other mod comes along and puts a script on the door the player uses to enter the cell, it appears that the CellChanged function in scripts in that cell will always fail, and they will never recognize that the player has entered. This has the potential to break some quests. [1]

This is a very subtle bug, and went unrecognized for a very long time. It's possible that many people encountered its effects, but just continued on anyway, perhaps by using the console to advance broken quests. It's also possible that the actual population of users ever affected by this bug is small. But still, it's a case of the scripting engine doing something that most scripters do not foresee, and it has the potential for introducing difficult to detect quest breaking bugs.

Fix: Use clean mods, and ensure that the mods you are using do not conflict with one another.

Unreliable GetSoundPlaying

ANALYSIS: affects mods using GetSoundPlaying to detect events, may not always work as presumed on some systems
DESCRIPTION: Many mods use GetSoundPlaying to detect if a certain type of event is happening, such as an NPC being hit by the PC which is indicated if Player->GetSoundPlaying, "Weapon Swish" is True. The problem is that GetSoundPlaying is not reliable on some computer systems. I've seen enough reports from other Windows users running into bugs caused by this to make me think this is not OS related. Maybe it is driver or sound hardware related. Two mods where people have noticed this problem: Vampire Embrace and Vampire Realism II. Vampire Embrace uses GetSoundPlaying to detect that an NPC has been hit by the player, in order to implement its "combat bite" feature. We see that when GetSoundPlaying is unreliable, the NPC just falls down instead of the combat bite initiating. Vampire Realism II uses GetSoundPlaying to recognize that a vampire NPC has been struck by the player's stake to implement its vampire staking feature. When GetSoundPlaying is unreliable, the staking procedure fails, and the vampire is essentially invulnerable and immortal. Analysis of the comments at PES for these two vampire mods show that for some significant fraction of the users, the effects of an unreliable GetSoundPlaying are present, but it is unknown what the percentage of the usership population is affected.

Like the cellchanged bug, this is a very subtle bug, and went unrecognized for a very long time. But still, it's a case of the scripting engine doing something that most scripters do not foresee, and it has the potential for introducing difficult to detect bugs, especially if GetSoundPlaying gives no problems on the modder's system. It's arguable that GetSoundPlaying was never intended by BethSoft to be used for detecting events, but it is a modding technique that has become fairly well-used over the years, so if it could be made more reliable, then many older mods would benefit from it.

FURTHER INFO: John Moonsugar

Bad collision detection

Symptom: Characters may jump through ceilings, walls, and so forth.

ANALYSIS: engine bug, annoying, affects gameplay, but not severely
DESCRIPTION: the player with very high acrobatics or strong jump spell can frequently jump through ceilings, walls, etc. Also, NPCs dying sometimes fall through walls and floors, and their bodies are unlootable because you can't reach them (sometimes you have to use tcl in the console to get through the wall or floor to reach the dead body). Gameplay is usually not severely affected, unless the dying NPC is carrying an important item. Sometimes, a jumping PC who dies in midair can continue falling through a floor and give a view of things not meant to be seen. In any case, the tcl workaround is there, unless the user doesn't know about it or for some reason can't use the console.

Fix: Use the console and TCL to retrieve the item - though a more eloquent fix should probably be found. A less offsetting way to use the console is to resurrect the NPC - as long as you can see any part of their body then you can simply do this, kill them again in a better spot, and continue.

Multiple messagebox CTD

DESCRIPTION: (from MSFD9) "Warning: The use of more than one messagebox in a frame can cause a CTD (Crash To Desktop). This also includes the "Your journal has been updated" messagebox."

Cast from inventory CTD

DESCRIPTION: (from MSFD9) "It was believed that Cast would only work on the PC. At least with Tribunal (not sure about earlier versions) you can use cast to cast a spell from an activator, or any other object, on an Actor. However, make sure the object you are casting the spell from is not in the inventory of another actor/object, as that will result in a CTD."

Poor random number generator

DESCRIPTION: (from MSFD9) "Note: For any call to Random with a range over 100, the randomness of the return value gets very poor indeed... right up to Random, 255 where you only get 0 or 1... and any multiple of 256 also gets you a CTD. (Morrowind and Tribunal). In Bloodmoon, they seem to have fixed the randomness of the return value... you seem to get numbers that are more evenly distributed, even with a range above 100. But the CTD's at 256 and 512, etc, still happen (Info by Neko). It was furthermore discovered that sometimes the Random cap is set much higher than the number given. Setting any variable to a Random with the cap value of one of the following numbers produces some strange result, setting the higher cap actually to something around 1100: 65, 66, 68, 70, 71, 76, 77, 79, 82, 83, 84"

Deleting object of targeted script CTD

DESCRIPTION: (from MSFD9) "If an object is deleted while a targeted script is running on it, the game will CTD. If the target is not necessary but is merely a consequence of the way the script was started, you can usually target the script on the player instead to avoid this: "player->StartScript ScriptName". Otherwise, the script must be stopped before deleting the object."

Deleting object after cell change CTD

DESCRIPTION: (from MSFD9) "Deleting an object immediately after changing cell may sometimes cause CTD."

Some players reported unusal vampire sun damage script bug

This bug causes crashing to desktop while quitting from game (from main menu->exit), while you are a vampire (just need to have "vampire sun damage" spell on self). The source is on dailymotion as vampire sun damage bug or error. Probably caused by referencing to player-> that has been already been dispatched. Thus a pointer to player is no longer valid. The script should terminate upon exiting to fix the issue.

Animated container CTD

The game usually crashes when you open a container (no scripts) with animation. Sometimes error message "time 2 in group 1 is QNAN" appears before crash. Someone has found a way to workaround this problem. Place a script on the container so that another item that has the same animated mesh, is placed in game before the command "activate" is given. This crash is fixed by Morrowind Code Patch.

References