Jump to content
Arthmoor

[Oblivion] Creating Compatibility Patches

Recommended Posts

You're enjoying your romp through the game, admiring the scenery to a new mod you just installed. Everything seems to be going fairly well, you haven't run into any issues and nothing seems out of place. That is, until you round the corner and come upon the following scene:

PatchMess1.jpg

You think to yourself "this doesn't look right", and you'd be correct. You have a cottage square in the middle of your awesome new Unique Landscapes area. Come to think of it, you recognize this cottage, sort of, then it hits you. "That's Emma's Bravil Bridge Cottage! It never used to look quite this cluttered before!" Again, you'd be right. Emma's cottage sat on a nice pristine piece of land with nothing much around it. Until Bravil Barrowfields came along. Not to mention, a bit of further exploring nearby reveals some large rocks covering over Emma's dock. It looks like you need a patch.

This is a rather common problem when using a lot of mods. Anyone who is an avid fan of the Unique Landscapes series of mods can attest to the vast number of patches that have already been generated. With this tutorial, I'll try and lay out the basics of what Vorians and I face each time one of these patches needs to be created. This patch for Emma's Bravil Bridge Cottage will be a decent example of one of the less complex patches.

Planning

The first thing that needs to be done is to get a feel for the scope of the project. The best way to do that, while you're already at the location needing a patch, is to take screenshots of the affected area. The one I presented above is from the back side of the cottage and illustrates most of the issues needing correction. For purposes of making this a bit clearer, I went ahead and shot the following:

PatchPlanning.jpg

Using the in-game console "tcl" command, I was able to orient myself directly over the cottage. I've circled the more obvious places needing work. Several objects are clipping into the house, and if you were to walk around its perimeter, you'd see that several objects are mostly buried behind the cottage's walls as well.

Since it helps to know exactly what you're trying to work around, I've also taken the following shot from within the TES Construction Set with only Emma's mod loaded:

CottageReference.jpg

As you can probably guess, Bravil Barrowfields adds a huge amount of stuff in the immediate area. Note in Emma's CS shot that none of the walls, fencing, vineyard wiring, fort ruins, trees, rocks, and even the landscape itself are present.

So with this in mind, you need to make sure you have the following tools:

* The TES Construction Set, version 1.2.404. Using the older CS may lead to problems.

* A copy of TES4Edit, version 2.5.3 or later.

* A copy of Wrye Bash. You can substitute TES Gecko here, provided you know what you're doing with it.

If you are not reasonably familiar with these tools, then patching mods is not something you should be undertaking as it requires an intermediate to advanced knowledge of landscape modding and object manipulation, as well as mod de-isolation and the use of the ESM flag.

Getting Started

Open up your copy of Wrye Bash, and find the mods in question in your load list. For best results, be sure your list is sorted by load order, as this is critical to get things right. Highlight the two mods to be worked on, you can ctrl-click to select more than one at once. Then, as show, right-click and select ESMify Self.

ESMifySelf.jpg

After clicking on it, when you unhighlight the mods, their names will be listed in blue. This tells you they're ready to be treated as masters in the CS.

The Construction Set

Open the CS, and locate the two mods. Checkmark the boxes to load them. You will not be able to tell it to treat either one as active, this is normal. Allow the CS to load. If you get any errors during the process, click the "Yes to all" button to continue. Errors when dealing with overlapping mod files is normal.

Bring yourself to the affected area you intend to work on. In our case here, cell 13,-9 in the Tamriel worldspace. You should be presented with something resembling this:

CSWorkAhead.jpg

Make an over all mental note of things now that you can see them all laid out in the CS. Some aspects of the clash might be fitting if kept. Others might not. Also try to keep a general philosophy in mind: Touch as little as possible. The main goal is to be as non-disruptive to the scene as you can and not to spread changes to more than is absolutely necessary.

Get comfortable. There's lots to be done here.

The most obvious order of business will be to clear away objects that are too close to the cottage, such as some of the vine trellises, plants, clutter barrels, and other small items.

You should periodically remember to save your work. The CS can be somewhat picky even with normal mods, but with patch mods it presents a special pickiness that causes more crashes than usual. Don't lose hours of work because you forgot until the end, because you may not get the chance.

While working, take note of any doors, XMarkers, Map Markers, Oblivion gates, etc. These are generally persistent objects and cannot be moved once their locations are visited. They become permanently fixed in place in the saved game. So any patch work to be done absolutely should not move a persistent object. If you find that this is not feasible, it is best to seek help from someone more familiar with ways of getting around this. You should avoid at all costs the urge to use a script to reposition such objects in the patch file as ANY scripted changes ALSO become permanent in the saved game. You can safely move door markers (the semi-transparent yellow rectangular objects with the pink/purple arrow) if the need arises.

NEVER DELETE A PERSISTENT OBJECT! This can cause untold disruption in the user's game! Oblivion does not handle deletion of persistent objects well under any circumstances, even with normal mods. The game can become unstable and crash when those objects are not present. There are methods for getting around problems like this, but they're best left for a more advanced tutorial since it involves a solid working knowledge of TES4Edit to make it happen.

Returning to the job at hand, you will probably find it helpful to disable the display of tree leaves and to have landscape borders turned on.

With the initial work done, my results are already a substantial improvement:

GettingBetter.jpg

I've removed many plants from the immediate surroundings, removed the fort ruin chunk that clashed with the cottage, removed trellises that collided into the walls, and removed some barrels and brick wall pieces. Two large rocks covering the dock have also been deleted. I moved the tree that was intersecting the well into a new position. I've been careful to avoid moving the cottage itself, and the little garden troughs that are up against it. I did not need to move the door markers either. Fortunately no persistent objects in this area need to be moved, so that's one less headache to deal with.

There's one other aspect that needs to be considered though. Is the cottage sitting directly over anything?

LurkingStuff.jpg

In this case, yes, the cottage is obscuring some additional plants and more brick wall pieces. These will also need to be deleted. in general, anything rendered invisible due to burial like this that is not critical to the scene should be removed to help game performance. These objects get rendered by the game engine whether you can see them or not.

The next logical step is to check for objects that are critical to the scene which might have been buried by changes in land height. In the case of Emma's mod, the dock she added along the shore has been partially buried under a bit of raised land. Using the landscape tool on its smallest radius, that needs to be lowered carefully until the dock looks normal again. In the process, a rowboat next to it will emerge. If the landscape can't be shaped precisely enough to leave it in place, then it should be moved a little bit until it can be.

Now comes the general landscape repairs. There may or may not be tearing along the cell borders to consider. In this case, none is visible on inspection. There may also be some adjustments to make in general land height within the work area. Since landscape is winner-take-all, all height, texturing, and vertex shading for this project was provided by Bravil Barrowfields. So some restoration of Emma's work is needed. Start by making sure that the land height in the work area is satisfactory. There should ideally be no jagged bumps or unusual sloping, or half buried objects. Fortunately, it appears as though land height adjustments have already been dealt with at the dock.

Once you're satisfied with any height adjustments in the landscape, the next step is to correct any obvious texture flaws. In this case, two things should stand out:

* Emma's mod left green grass all around the cottage. Some of which should be restored.

* There was a cobblestone path leading in from the main road to the front door which needs to be restored.

While restoring the land texturing, don't panic if you're painting grass and you end up with what looks like ugly mud. The CS has a bug when there are 9 textures in use in a cell. It displays the wrong one while you're working but it is applying the correct one to the file. Since painting grass in this case involves covering underneath a building, I've chosen to use a grass texture that does not cause the game to generate tall grass.

After painting textures, fixing any out of place vertex shading should be done. Fortunately not much of that needs to be done in this example, other than to surround the house with it.

With the landscaping done, here are the results so far:

LandscapingDone.jpg

There is one final phase necessary before work in the CS is finished: Path grids. Like landscape, path grids are winner-take all. Since Bravil Barrowfields loaded as the second file, its path grid choices took prescedence. So there's going to be some problems to correct.

PathGrids.jpg

Fortunately, not as bad as it could be. There is only one not so obvious path node that must be dealt with and that's the one under the house. Unfortunately deleting it severs part of the grid, so I'll add some new nodes to reconnect it and to provide for better pathing around the cottage, so that any NPCs and creatures in the area can get around here.

PathGrids2.jpg

With the pathing fixes done, and everything looking satisfactory at this stage, it's time to exit the CS. Don't forget to save, would be a shame to lose all this nice work, right?

Cleanup With TES4Edit

The CS is a somewhat erratic beast. It can leave unwanted edits in even the simplest of mods in places you'd hardly expect. These edits that get left behind can lead to compatibility issues with other mods. This is especially bad if you performed one of the big no-nos at some point, such as hitting "compile all" believing it would only compile your scripts from your mod. The result is actually far worse, your mod saves untouched copies of every script in the game when this happens.

Worse still, objects deleted by the CS that might end up being edited by another mod later in your load order causes the infamous "crash-on-exit" bug. Or it can leave Oblivion hung indefinitely when trying to quit. It is therefore important to understand that nearly all mods need some form of cleanup in order to correct this.

This is by no means a problem exclusive to Oblivion. It existed in Morrowind as well, and a number of mod cleanup utilities were created for the purpose. TES4Edit and TES Gecko are the two primary tools that are capable of mod cleaning for Oblivion, with TES4Edit being vastly more reliable for this purpose. Sadly, this problem also extends into Fallout 3, where FO3Edit (same program as TES4Edit, different filename) is the only tool available for the job.

Patch mods add to this frustration because the CS was never intended to work with ESPs editing each other's content. So the problem of unwanted (dirty) edits is even greater. Which is where the next step in creating this patch comes in: Fixing the CS bugs so your users don't complain that the patch you just built to solve one compatibility issue causes a dozen others in far flung areas of the game.

There are two schools of thought on how to handle cleaning a patch file. Those who will go with what TES4Edit finds and removes as part of the automated process, and those who take the extra step of manually inspecting every change made to weed out addition unwanted edits - stuff the automated process won't remove. Also known as "wild" edits.

For purposes of this guide, I'm going to go through the manual removal method. Which is also a good illustration of why cleaning in general is needed, as you'll be able to see what dirty edits look like before they're removed.

So let's open up TES4Edit now. Find the patch file that was just saved, and double click on it. TES4Edit will automatically pick up the two parent mods as it loads. When it gets done loading, the fun begins.

Expand the file tree in the left window pane, it should resemble this:

TES4Edit.jpg

Keep in mind, the actual working area of the patch that was just made: Cell 13,-9, and cell 13,-8. Something should be immediately obvious right off the bat. There are edits for cell 13,-12, 20,-17, and 20,-14 included. These particular cells have no data branches below them, and are highlighted in green, indicating they are identical to the data in the plugin's master files. If you click on each one, note what the display on the right side does. These identical cell records need to be removed. This is done by right-clicking on them from the left window pane, then telling TES4Edit to remove each one.

In doing so, you should notice that "Sub-Block 2, -3" and "Sub-Block 2, -2" are now dangling with no data branches. Those need to be removed as well. The results should look like this:

TES4EditFirstTrim.jpg

The next step is to expand the remaining branches. Once you do, you'll see this:

TES4EditRealEdits.jpg

The ones that just read as "Placed Object" with no further data listed are the various things that were deleted while in the CS. Then there are some additional green on yellow edits for rocks and a couple of plants. Finally, the orange on red (bad color scheme) edits for landscape and path grids. All of these are legit, so you should keep them.

Remembering what was said earlier about deleted objects, these need to be fixed so they don't induce crashes and/or instability during play. The only way this is possible is through the use of the automated "Undelete and Disable" process. Visit the CS Wiki topic on mod cleaning, and skip down to Section 2. Follow the instructions for setting the filter. Once the filter is done, ONLY perform the step for undelete+disable. This should be step 13 in the instructions there. The "Remove 'Identical to Master' records" part has already been done manually above for this patch. It's a good idea to come back to the CS Wiki page on this subject later as the cleaning guide is very thorough and explains in detail why cleaning is necessary. Do not let anyone tell you it isn't, because that person doesn't know what they're talking about.

Once you're done with the undelete process, go ahead and close TES4Edit, and let it save the results.

Finishing Up

Fire up Wrye Bash again, and select both of the original mods as before. This time instead of ESMify Self, select ESPify Self. Failing to do this last step will result in loading the game and finding your world in chaos with missing land squares and other assorted issues.

Activate your new patch in your load order, rebuild your Bashed Patch if you use one, and re-run TES4LODGen to update the VWD data for the game.

Enjoying the Fruits of Your Labor

So now that you've gone to all this trouble, it's time to see the results. Load the game and travel to Emma's cottage. Take a walking tour of the area. Make sure nothing got missed. Soak in how much better it all looks now that it's not chaos incarnate.

AllClean.jpg

JobWellDone.jpg

Final Thoughts

Hopefully this guide has proven useful to those wanting to learn to build mod patches. This particular pair of mods is one of the simpler patches that has been done. It involved very little in the way of object deletion and only some very minor landscape and path grid work. Many patches are a good deal more complex than this and cover a lot more area. Some of the truly nasty ones involve patch work for combinations of mods, such as the one for Cloudtop Mountains, Ravenview Village, and the Mimics mod. Or such beasts as the patch for Let the People Drink, UL: Imperial Isle, New Roads & Bridges, and Open Cities. Yes, a 4-way patch, which one might imagine is quite a bit of work to manage.

As with all things, practice makes perfect. The more patches you end up needing to build, the easier the process becomes, and the faster you can start churning them out. Done properly, compatibility patches enhance your game in their own special way.

Astute observers might note the presence of an extra log in the overhead shots. That log is from TIE, and just happened to be right on the edge of the work space. Fortunately editing in the area did not result in the log being left in an awkward position, but it does illustrate just how crowded things are getting in Cyrodiil.

Share this post


Link to post
Share on other sites

Continuing on from above, and better late than never....

At some point in time when making compatibility patches for mods, a situation will arise where you'll be forced to make provisions for persistent objects. Most often, this will be due to having to relocate a door from a building's original location to a new one that is more fitting with the surroundings. For the purposes of this tutorial, we will deal specifically with relocating a door. Just keep in mind that the same principles apply to all persistent references which are visible to the player.

The first rule of thumb: NEVER simply move the door to its new location! Persistent references are recorded permanently in the saved game file once the player has visited the area containing them.

The second rule: NEVER use a script to do ANY sort of edits on a persistent object, even to disable it. Any time a change is called for in a script, that change is permanently recorded in the save game file. This includes using enable parenting! This is important to remember because it isn't obvious. Any change to an enable state brought on by a script becomes permanent.

Since the two most useful methods for dealing with this problem are out of the question, this leaves you in the position of needing to do some more clever tricks.

You'll want to make sure you've unlinked the teleport from the original door to it's target location. Be sure to make note of where that target cell is, and what the formID of the door is it leads to before you unlink it.

The first and least harmful trick is to set the scale of the original door to an incredibly small size. The smallest size the CS will allow you to shrink something down to is 0.01. In general, this will be small enough to render the door invisible unless it is very large, like a city gate. If after downscaling the original door it is no longer visible in the CS, you are probably done. There's a good chance downscaling it may end up hiding the door entirely under or inside the objects it was conflicting with. This is ideal, because you can simply move on to setting up the new door.

The second least harmful trick is to simply mark the original door with the "initially disabled" flag. Generally speaking, this works well, but it has one slight quirk. If the player reloads the game without first exiting to the desktop, the door may reappear due to an engine bug which reverts objects to their original state. This is especially problematic when dealing with doors from the vanilla game. This method does however mean that the door will be guaranteed to be invisible. So if downscaling doesn't work, this is worth a try.

The final trick is dodgy but is useful in select cases where downscaling isn't working out and the disable trick isn't registering for some reason. If neither of the first two methods proves useful, then try this as a last resort. Remove the persistence flag from the door. Mark it as "initially disabled". Set the Z coordinate to -30000. Once the game loads and the player approaches, it will register that the door is no longer persistent and the Z coordinate will take it out of visible range. This has one major disadvantage though. If the player reloads the game without exiting to desktop, this method is guaranteed to revert itself back to the mod's original state. It's the same engine bug as the previous trick. There's no workaround method for this that doesn't involve advanced OBSE code.

If nothing above is working, the one tried and true method guaranteed to get the door out of your way is to delete it outright. You absolutely MUST be sure it's not still linked to its target door before doing this, otherwise the CS may crash. Save before you try this as well. While this is guaranteed to remove the door, it carries with it another danger in the form of the deleted reference this leaves behind in the patch file. It runs a high risk for crashing the game, even if no other mods tried to edit it. Oblivion does not play nice with deleted persistent objects of any sort, but most especially with load doors. The risk is generally very low if the door being deleted is from a user made mod, but don't EVER do this with a vanilla door because that would cause instability for just about everyone. If the door is being used as a quest target, an AI pack target, or a script is referencing it, attempting to delete it will prompt a warning. If you get such a warning, stop what you're doing and get out of the CS - do NOT save, because the CS has a bug where even if you cancel the prompts some of the reported data will still end up being unlinked. Tsk tsk Bethesda.

So now that the door has been dealt with, it's time for the easy part. You need a new one at the new location which leads back to the same spot the old door did. Place a new door at the new location, and make sure you link its teleport data up to the proper location and formID as the old door. Adjust the teleport marker, and then follow that marker to the target location and adjust it there too.

If necessary, make sure any scripts that reference the old door are updated to reference the new one. Do the same for any AI packs and quest targets which may have used the old door as a target. On rare occasions there may even be dialogue records that referenced the old door.

Now for the fun part! It's time to save your work and then load up the game to make sure everything is working as planned. If it is, the relocated door will show up properly on the player's local map and be sitting happily in its new location along with the building and other decorations that went with it.

Hopefully this sheds some light on the process of dealing with load doors in compatibility patches.

Share this post


Link to post
Share on other sites

Excellent tutorial Arthmoor.   Now come the questions.

The world view screen you have loaded from the Construction Set is from which menu item? I'm asking you so I know what to click on in the Construction Set.

That's one.

Second question.  Moving objects is tricky, arduous and not for the uninitiated.  What do you do if the problems you're having are with something like Open Cities?

I'll give you two examples.

I have Jedi Lightsabers With Sound and Bow of  Thunderdark  and Open Cities classic installed.

Neither mod is present in its Oblivion space.  It is present in the Construction Set.

Is there a way to keep Open /cities Classic and still have these mods appear in Oblivion, please?

Sorry, my first post is problem post.

Share this post


Link to post
Share on other sites
6 hours ago, TheFurMonster said:

Second question.  Moving objects is tricky, arduous and not for the uninitiated.  What do you do if the problems you're having are with something like Open Cities?

I can only speak for myself since I only placed map markers in my Skyrim Map Markers mod and therefore need not to touch the existing objects in the render window in all exterior cells.

Should I ever touch an object then I exit the CK without saving and start over which I think that's probably best to do that, otherwise one can actually introduce a new issue that can affect a lot of other mods.

Share this post


Link to post
Share on other sites

Thanks for that Leonardo.  Working in Skyrim or no, I think the same principles would be applied to both the creation Kit and construction Set.

Do you know of a decent tutorial for the Construction Set, please? Something for beginners, and leading up to intermediate and ultimately advanced.  I know the construction set a bit, but need more tutoring.

Share this post


Link to post
Share on other sites

@TheFurMonster I believe you misplaced this post. :P I put your images in spoilers to save space.

 

2 hours ago, TheFurMonster said:

@Arthmoor In regard to your Creating Compatibility Patches post, I'm seeking help to make a couple of patches.  One is for Jedi Lightsabers With Sound, the other is fr Bow of the Thunderdark.  Both mods I believe conflict with the Open Cities Classic, which I'm also running.

I've added some images which I hope are helpful.

Sorry if it sounds like I'm giving you extra work.  What I truly want is the education to learn where the problem lies and fix these problems myself. All help is appreciated.

 

 

Spoiler

Current Bow Of The Thunderdark Rock Position.jpg

 

 

Spoiler

Oblivion 2017-10-22 16-54-25-83.jpg

 

 

Spoiler

Oblivion 2017-10-22 16-54-17-71.jpg

 

 

Spoiler

Oblivion 2017-10-14 09-15-07-04.jpg

 

 

Spoiler

Oblivion 2017-10-14 09-15-17-78.jpg

 

  • The Construction Set Wiki is usually a good first stop.
  • TESAlliance runs a modding school of sorts. It's still active. I don't believe you need to actively participate to make use of their guides & reference, but it's a good idea.
  • Khettienna has some good info, links & tutorials on her page. Most point you toward CSWiki or TESAlliance, but she has other good info to read as well.

I'm sure there are others, but these ought to give you a pretty good start.

Share this post


Link to post
Share on other sites

Here's why I placed these images here.

I think I know what the problem is.  It is two fold; one is to do with workspaces and where items are placed.  The other is Windows 10.

If you are not running Windows 10, Windows 10 does things differently to earlier operating systems.  From what I have seen.

To the best of my knowledge, once you place something in the Construction set, either imported or made within the Construction Set,

you are well advised not to move it if two mods share the same worldspace.  You need to amend the worldspace.  This is what I am trying to do.

Please look at the pictures.  You will see that Jedi light sabers with sound appears on the top of the screen along with some other dependent mods.

What I need to do now, is get Open Cities Classic (Outer Regions) to recognise this mod.  Same with Bow of the Thunder dark.  I need to get Open Cities Classic Anvil world to

recongnise this mod.  I'm new to this and a bit nervous.  I don't want to do anything to destroy my current Oblivion install, or wreck my current character.

Please can you tell me what needs to be done.  I will of course do the work.  I'm not asking you to do that for me.  I learn nothing and you are lumbered with a problem you can do without.

Please read what i have read, and please read what I have said concerning Windows 10.  Moving the item into the worldspace may have worked in earlier operating systems.  it doesn't seem to work in

Windows 10.

I'll show you my load order and install order and dxdiag.  Hopefully these will help in determining how to solve this.

I think it can be solved through Tes4Edit.  Please advise.

 

DxDiag.txt

22nd October OBMM Load Order.rtf

22nd October Wrye Bash Mod List.txt

Share this post


Link to post
Share on other sites

Hi. I replied to your Nexus post. I'm pretty sure all you need is a patch, if I'm understanding what you want done correctly. Probably just need to copy the placed objects into the cell, then load it as a patch below BC and the others. I doubt you'll even need to open the CS. I'll have to get into it tomorrow though.

Share this post


Link to post
Share on other sites

Thanks Ravenmind.

I read your reply on Nexus.  Sorry I haven't been here for a while.  Life got busy again.  I decided it was time to return to study.  Nothing arduous.  Just Studying Medical Terminology.

I digress.  I'm thinking along the same lines.  I'll have a look at this tomorrow.

Another question; can you make esp patches in TES4Edit, please?

Share this post


Link to post
Share on other sites

Medical teminology, oh fun... Been there, done that. Used to be an EMD.

Yes, that's a fantastic use of xEdit, IMO.

Why don't we continue this conversation at your TAL thread since this thread is for Arthmoor's tutorial. If anything's mentioned there that may be useful here, I'll link to it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Support us on Patreon!

×