Children
of Morrowind - conflicts and solutions
Known conflicts/incompatibilities:
Children of Morrowind will run problem-free in most games.
However,
Children of Morrowind does effect many cells in the game world, and
sometimes there can be conflicts between mods, in most cases caused by
the local ref bug. Luckily, there are now ways to handle such issues.
Psyringe
has kindly explained both the problems and the solutions to it:
- Emma -
Corrupted
savegames, crashes, and how to fix them
-
by Psyringe
Children of Morrowind adds many NPCs to areas that are affected by
other mods as well - Balmora, Seyda Neen, and many other settlements.
Unfortunately there is a particularly nasty bug in Morrowind, the
"local ref bug", which can easily lead to problems if many
mods affect the same area. Since Children of Morrowind is especially
at risk to be affected by this bug, the following section deals with
its symptoms, causes, and ways to prevent it.
Usual symptoms of this bug are these:
- missing doors
- missing NPCs (including children)
- Morrowind crashes when trying to load a specific savegame
- Error messages "Reference (some object) not found in
master"
- Error messages "Can't load script (some script name)"
- Error messages "Can’t load (some spell name)"
This bug is the cause for many crashes and otherwise inexplicable
incompatibilities between mods. None of the mods involved is at fault,
and all of them work correctly if the other mods aren't present, but
when used together, they happen to trigger a bug in the game engine.
Fortunately, the Morrowind community has developed two tools that can
prevent this bug: The Morrowind Code Patch (MCP), and Wrye Mash. With
regard to the local ref bug, the MCP offers a more complete solution,
which is easier to apply in most cases. However, the MCP is currently
(Oct 2008) a fairly new piece of software, so it has a higher risk of
having undiscovered bugs or side effects than Wrye Mash's method,
which is being used successfully since 2005.
Nevertheless, both programs have been proven to fix the local ref bug,
so both will be described here:
a) The Morrowind Code Patch (MCP)
This program, developed by Hrnchamd, patches several bugs in Morrowind
which the official patches did not address, including the "local
ref bug" described above. Like the official patches, this is a
program that modifies your Morrowind.exe.
You can get this patch from here:
http://www.tesnexus.com/downloads/file.php?id=19510
And you can get the most recent information about the patch from the
Elder Scrolls Forums - look for a thread called "Repairing the
Cogs of Morrowind" in the "Morrowind Mods" subforum:
http://www.bethsoft.com/bgsforums/index.php?showforum=12
The MCP is modular, i.e. you can enable and disable individual
features as you like. When you apply it, make sure that the "savegame
corruption fix" is enabled, because this is the component that
fixes the local ref bug.
As mentioned above, the MCP is still very new at the time of this
writing (Oct 2008). It has received thorough testing by its
developers, and it has been proven that it actually fixes the local
ref bug, but like any new piece of software, it might still have bugs
lurking in obscure places, or side effects that have not been fully
explored yet. It is therefore recommended to check the forums
mentioned above for recent developments, problems, or advice,
regarding the MCP.
b) Wrye Mash
Wrye Mash is a program that (among other things) helps you to manage
your mods, change your load order, prevent or repair doubling, and
prevent the local ref bug.
You can find Wrye Mash here:
http://wrye.ufrealms.net/#WryeMash
And its documentation here:
http://wrye.ufrealms.net/Wrye%20Mash.html
With Wrye Mash, you can prevent the local ref bug by using the
"Renumber Refs" function on at least one of any two mods
that trigger this bug. You can access this function by right-clicking
on a mod and choose "Repair Refs" in the popup menu. Make a
backup of the mod file first.
When renumbering refs with Wrye Mash, there are a couple of things to
keep in mind. There is a lot of information about these details in
Mash's documentation (and in a guide which I will link to further
below), so the following descriptions are rather terse. Please refer
to Mash's documentation (or the guide mentioned further below) for
more information.
- It is easier to renumber refs before you start a new game. When you
already have a game in progress, and use "renumber refs" on
a mod that was active when you saved this game, then you need to make
an "updater" which adjusts your savegame to the changes that
you do to the mod - otherwise you will see a lot of doubling.
- You cannot renumber refs on an esm file. You *can* use Mash to
transform an esm into an esp, renumber refs, and transform the file
back to an esm. However, this is inadvisable in most cases - if you
have an esp file which modifies content of the esm file (like a patch
plugin that fixes problems in the esm), then you cannot use this esp
with an esm with renumbered refs; doing so would lead to doubling.
- It is rarely obvious which combination of mods triggers the local
ref bug, i.e. which mods need a renumbering of their references. The
output of Mash's "Repair All" function helps to determine
them.
- "Renumber refs" greatly reduces the risk that local ref
bugs occur, but cannot totally remove it unless you manually assign
different numerical ranges to mods that could trigger local ref bugs.
A very good guide on how to diagnose and prevent local ref bugs with
Wrye Mash is "Ieldra's guide", which can be found here:
http://abot.silgrad.com/guppy/file/articles/BadRefDebuggingGuide.html
Addendum: Technical details about the local ref bug:
The following section contains some technical information about the
local ref bug. It is provided for people interested in a deeper
understanding of this bug, but it is not required to read it.
Some necessary definitions:
- object: In Morrowind, an "object" is not something
tangible, it's rather a template or a construction plan. For example,
the object "barrel_01" defines the look and contents of a
barrel.
- reference: Every "thing" that a mod places into the
gameworld is a reference. For example, if I go into the construction
set and drop a barrel_01 into Arrille's tradehouse, then I have
created a *reference* - specifically, a reference to the *object*
barrel_01.
- objectindex: Every new reference that a mod places into the
gameworld is assigned a number: Its objectindex. When you save a mod
in the construction set, then the CS assigns objectindices to all
references that this mod creates, starting with 1, and increasing them
by 1 for every further reference. If your mod does nothing else than
putting two barrels and a scrib into the gameworld, then these three
references will have the objectindices 1, 2, and 3.
- modindex: Each active mod has a modindex. The first esm or esp in
the current load order has modindex 1, the second one modindex 2, and
so on. The game uses modindex and objectindex to identify references:
"This is reference no. 12 of mod no. 17", "This is
reference no. 12 of mod no. 36", "This is reference no. 352
of mod no. 5", etc.
- persistence: Objects can be persistent or non-persistent. Like all
other data, references inherit this setting from the objects they
refer to. Persistent objects are always in memory, non-persistent
objects are only in memory if they are in the same area as the player.
The specific circumstances under which the local ref bug is triggered
are these:
- One mod adds a non-persistent reference to a cell.
- Another mod adds a persistent reference to the same cell.
- Both references happen to have the same objectindex.
- The non-persistent reference gets written to the savegame.
When these four conditions are true, then, upon loading the savegame,
Morrowind will confuse the two references. This usually leads to
vanishing persistent references (like doors or NPCs), but can also
lead to crashes, or error messages like those mentioned at the
beginning.
You can test this by yourself with two very simple mods:
- Create one mod which puts a non-persistent reference into the
gamworld (and does nothing else). Some clutter will do well, like a
cup or a bottle - just make sure that the checkbox for
"references persist" is not checked for this object. I'll go
with a cup for this example.
- Create another mod which puts a persistent reference into the same
cell. You could take an NPC, NPCs are always pesistent.
- Now activate these two mods, remove all others (so that these cannot
interfere), and start a new game.
- Enter the cell where you placed the cup and the NPC, take the cup,
and leave the cell. Exit the game.
- Restart the game, load your savegame, and re-enter the cell.
You will see that the cup has reappeared, and that the NPC has
vanished. This is the local ref bug at work.
What has happened? Obviously the game has confused the cup with the
NPC. Both have the same objectindex (which is 1, because both mods
only add one reference). The game should be able to distinguish the
two references by their modindex (which is different because the two
references originate from different mods). But due to a bug in the
engine, it cannot do so under these circumstances.
There are other, closely related problems. For example, if two mods
place leveled creatures (spawnpoints) with the same objectindex, then
the engine confuses those as well, which usually leads to doubling of
creatures. Another problem is the addition of references with scripts
attachedm which can cause other references with the same objectindex
to disappear.
All these problems are caused by bugs in Morrowind's reference
management, and can be prevented by the methods mentioned previously.
|