Daggerfall Unity

File information

Last updated

Original upload

Created by

XJDHDR

Uploaded by

XJDHDR

Virus scan

Safe to use

About this mod

Fixes the numerous bugs that exist in Daggerfall's Blocks, Locations and Models.

Permissions and credits
Changelogs
Donations
The full readme for this mod may be found here on my website.
Forum thread: Daggerfall Workshop

Details
Daggerfall was a very ambitious game when it was released but unfortunately, it was rushed. After the release of Arena, Bethesda Game Studios released Daggerfall only around 2 and a half years later. Like most rushed projects, Daggerfall was released with numerous bugs in it. The size of Daggerfall's world only made the problem worse. It wouldn't be a stretch to call Daggerfall the buggiest game in the Elder Scrolls series. Possibly the buggiest BGS has ever released (though Fallout 76, if it doesn't take the crown, comes close). Though a number of patches were released for the game afterwards, the final game was still left with a lot of glitches in it, from minor texture problems all the way up to bugs that corrupted your save game. Though a number of unofficial fixes and especially Daggerfall Unity were released to help fix the more serious issues as well as some minor ones, there are plenty still remaining.

That is where this mod comes in. My goal is to fix as many of the problems that still exist in Daggerfall's blocks, locations and models as I can. In doing so, I hope to improve the game in an area that I feel is getting less attention than some other areas. I am also creating this to provide a modders' resource for anyone that wants to make alterations to any area of the game that I have fixed. To provide them with data that they don't have to fix themselves. Finally, I'm also fixing these issues because they are eye catching, irritating and I would rather play my game without these problems present.


Known Issues
Model 239
  • There is a visible seam on some of the building's walls. Some texture packs exacerbate the problem. I'm looking into ways this can be fixed on the model but currently, it looks like a problem that needs to be fixed in the texture. Texture fixes are outside the scope of this mod.

Model 67028
  • I managed to reduce the gradient of this incline to the point that the player can walk down it without triggering rappel mode. However, trying to go up will still trigger climbing mode and there is not enough space left in the model to further reduce the gradient. Without changes to DFU's physics engine, this is the best I can do.

Block S0000180.RDB
  • If you have already activated any of the 4 switches my mod fixes, switch them off and make sure the levers are angled straight up before installing this mod or updating it from version 2021.01.09. If you don't do this, the levers' orientations will break even more badly than they already were.

Block LIBRAL03.RMB
  • One container inside the fixed house will still sell books if the player has already identified this building before installing this patch.

Block TVRNAM00.RMB
  • The Innkeeper will still refuse to talk to player if they've already identified the fixed building before installing this patch.
  • If you have already identified either of the inns in this block before installing this patch, they will both have the same name.

Satakalaam - Satakalaam
  • If you have already identified the eastmost inn that was formerly named "The Unfortunate Dagger", it will still be called that after installing version 2021.09.00 or later. This means that you will still have two inns with the same name.

Wayrest - Wayrest City
  • If you have already identified the southern inn that was formerly named "The Queen’s Hedgehog", it will still be called that after installing version 2022.10.0 or later. This means that you will still have two inns with the same name.


Reporting bugs
If you find a problem in the game caused by a model, block or location file, I would love to hear about it. I also appreciate any reports of how my mod broke something. That said, there are right and wrong ways to report issues. It must always be remembered that those who create mods or any other programming work have a limited amount of time to get the things they want done. Thus, the goal of reporting something is to not just inform me of a problem but to also do so in a way that improves efficiency. And avoid reporting problems in ways that wastes time unnecessarily.

Interkarma wrote a great post about the best way to report problems in Daggerfall Unity here. Following a lot of this advice is also a good idea when reporting issues for this mod.

The preferred place to report bugs is in my bugtracker on either GitHub or Nexus Mods. If you find an issue, please report it in one of those two places, keeping in mind the points below. If you are unsure, feel free to ask about it in either the forum thread or the Nexus Mods comment section first.

Please avoid reports that do any of the following:
  • Bugs that I'm already aware of - This one is a massive no-no. If I'm already aware of a particular issue, mentioning it again will not help. If I haven't fixed a problem I'm aware of yet, it's very likely there is a good reason for it. So please, check whether you can find the problem already mentioned before reporting it yourself. That said, if your issue has been mentioned but you have additional information about it, please do add your additions to the original report. But do not create a new report with your additional info. The first place to check is the "Known Issues" section of my readme. After that, check the issue trackers on both GitHub and Nexus Mods. I also add short notes about what I'm investigating in this text file. Finally, you can check if someone has reported the problem in either the forum thread or comment section but if anyone there has already provided enough info to investigate a bug, I will likely have already moved this info to one of the three locations above.
  • Bugs caused by other mods - This one is another massive no-no. If you think you have found a problem in the game, please check if it still exists after deactivating all of your mods first (including this one). I'm especially interested in bugs that either disappear or look different without this mod installed. If another mod is the cause of the issue, please report it to it's author, not me.
  • That said, you might notice that one of the Map Block Record bugs I fixed was found in another mod. This is because the bug is actually in a Record that comes with the original game but the bug was spotted by the mod's author in that mod. So I wasn't fixing a bug in that mod but a bug in the original game that just happened to manifest itself in that mod.
  • Bugs caused by Daggerfall Unity - I am not in a position to fix bugs in the Unity engine or DFU's implementation of it. If you do spot such a problem, plese report it in the Daggerfall Workshop forums or the DFU issue tracker.
  • Bugs I've already fixed (mostly) - If you have found a problem in the game but my various resources say that I've already fixed it, there are usually four reasons for this: Running an outdated version of my mod, another mod reverting my fixes, this fix is in a version I haven't released yet or there is a regression in DFU or my mod. Useful reports are those about regressions. The first two reasons are things you need to fix on your side. As for unreleased fixes, the best way to check for these are to look in the places listed under the "Bugs that I'm already aware of" item. Additionally, I also keep a list of fixed issues that will be in the next version in this text file.
  • Texture issues - The only texture-related problem that is within the scope of this mod are bugs caused by the way textures are drawn on a model. Problems like this include UV-mapping bugs or models using the wrong texture. Or the way sprites have been placed into the world. Problems caused by the texture itself are not within the scope. It's a better idea to report these issues to modders that are creating texture replacers.
  • Issues in other resources - This mod's purpose is fixing bugs in models, blocks or locations. Please do not report issues caused by other types of resources. This includes quests, events, books, sound, music or videos.
  • Unreproducible bug reports - Do as much as you can to ensure that I can see the bug on my own copy of the game when I try and look for it. The preferred way of doing this is by saving your game right in front of the bug and then uploading the save's files somewhere I can download them. If you don't know how to find your save, I would recommend reading these instructions. If you can't or don't want to provide a save, please give detailed instructions for how I can load one of my personal saves and find the bug you saw. Screenshots or video clips are also a good way to help with this.
  • Vague bug reports - Please ensure that you give a clear, understandable and complete description of the bug. I don't want to see reports like "Game doesn't work" or "Dungeon is broken". This also includes writing something with at least passable spelling and grammar. This doesn't mean you have to be fluent in English to report a problem but if you're not, it may be a good idea to try emphasise non-language ways of communicating the problem, such as a save game, screenshots and/or video clips.
  • Avoid spoilers - This may surprise you but even to this day, I haven't finished Daggerfall's main quest line. The only parts I've ever done is meeting Lady Brisienna and solving Cyndassa's werewolf problem. So please, when you file reports related to the main quest line, please avoid spoiling it. This is still good advice to follow even when I manage to finish the main quest, to avoid spoiling the game for anyone else who reads through these reports and is in the same situation.


FAQ
  • What is the "MBR Fixes" mod for?
  • With the help of Hazelnut, the creator of the World data override system, we discovered that Map Block overrides overwrite any changes made by a Building override for that same block. Because my policy is that any changes made by other mods should overwrite the fixes I've made, this created a problem because it meant any mods that used Building overrides to change the same Map Blocks that my mod touched would not apply them, regardless of load order.
  • The solution I've used to solve this is to write as many of the Map Block fixes my mod does as possible into Building overrides. The fixes that can't be done this way are placed into Map Block overrides as usual but these are provided as part of the "MBR Fixes" addon. This allows the user to disable only this portion of my mod if they have a conflicting mod installed.

  • What load order should I use with this mod?
  • This mod consists entirely of patches to the vanilla data. As a result, all other mods should overwrite this one. This is especially the case with AlexanderSig's Handpainted model replacements: Loading my mod later than his will revert some models to their vanilla look. The main exception is the "MBR Fixes" addon which is explained above.
  • In short, load this mod's files as early as possible. With a "Load Priority" of 0 and 1 if possible. It doesn't matter if the "MBR Fixes" addon loads before or after the main mod.

  • What is a Model?
  • A model is a collection of points in 3D space, called vertices, that are linked together to form multiple faces, most commonly in the shape of triangles or rectangles. These faces together create the shape of a basic model. These models can also have a number of extra elements applied. Examples include defining which textures are painted onto the surfaces of it's faces and how. Other examples include how these models are animated or how they interact with the physics engine. As an example, you may find a picture of what a model looks like here. In the original game, models are stored inside ARCH3D.BSA in the Arena2 folder.

  • What is a Block?
  • A block can be thought of as a puzzle piece. It is a collection of data that defines which models and sprites are going to be used in that block as well as where they are all placed in the block. Blocks come in two forms: Map Block Records and Dungeon Block Records. In the original game, both types of blocks are stored inside BLOCKS.BSA in the Arena2 folder.
  • Map Block Records are used in the overworld to place mainly buildings found at locations. These can also define interiors found in settlements as well as the doors that give you access to those interiors. They also define how the game draws the Automap image.
  • Dungeon Block Records are used in dungeons' interiors. In addition to placing models and sprites, these can also define some special properties, such as where quest objects can spawn. Also which models can move as well as when and how they do so. Like puzzle pieces, this type of block is also designed such that they will fit together against other Dungeon Block Records. They come in two types: Border and non-border blocks. Non-borders are designed to always be surrounded by four other Dungeon Blocks in the four cardinal directions because all four sides have doorways in them that other blocks connect to. Without another block on that side, those doorways would be open into the void. Border blocks conversely are designed to connect with a non-border block on one side to close the doorways mentioned with either passageways between two of these doorways or by just walling them off.
  • To illustrate, you can find pictures of a Map Block Record and Dungeon Block Record here. The Map Block Record is ALCHAM01.RMB and everything you see in the picture (buildings, trees, terrain and even the pig) are models and sprites that have been placed by that block's definition. The Dungeon Block Record is N0000005.RDB and the same thing applies here.

  • What is a Location?
  • Locations are places that appear on the game's travel map. They define the name of a location and it's type. It also defines which Map Block Records are used to construct the overworld representation of that location as well as the order those blocks are placed in. Basic information used to make the buildings in that location unique (such as names and quality) are also found in a location record. If there is a dungeon present at this location, a location file also defines which Dungeon Block Records are used to construct the dungeon's interior and the order they are placed in. In the original game, location definitionsare stored inside MAPS.BSA in the Arena2 folder.
  • To give an example, here is a picture of the dungeon interior of Privateer's Hold. It consists of 1 non-border block (S0000999.RDB) surrounded by 4 border blocks. I have circled in yellow the parts of the dungeon that are placed by the S0000999.RDB block. Everything else is placed by the border blocks. The parts of those borders that are connected to the main playing area are circled in red and the unused parts are circled in green. On the two sides closest to the camera, there are four doorways and all of them are joined to a single room each. Here is another picture that shows one of the far sides of Privateer's Hold. This side also has 2 open doorways but this border block provides a corridor (circled in red) to connect the two to each other. Finally, you may be wondering what the green parts of the border blocks are used for. In Privateer's Hold, they aren't used for anything. Other dungeons use these same border blocks though and in those dungeons, the borders may be arranged such that some of the green pieces are the ones used in those cases.

  • Why don't you want to fix anything else in the game?
  • The short answer is that it is a combination of my skills in modifying these files being lacking and other members of the DFU modding community already making some great efforts of their own in these areas.

  • A few of the things you've fixed in your mod have already been fixed in DFU.
  • There are two things going on here. The first is that some of the fixes I made were only partially fixed in DFU whereas my mod completely fixes the problem. A good example is the clipping that occurred between models 60110 and 60106 in some dungeon blocks. What DFU fixed was the aspect of this bug that caused people to get stuck inside the clipping area by adding workarounds to the movement physics (then removed these workarounds when the upgrade to Unity 2019 handled this situation better than previously). The fact that this clipping caused a graphical issue has never been addressed by DFU. Conversely, my mod fixed the visual aspect of this bug by moving the floor of 60110 up and away from 60106.
  • The second thing at play is that this mod is a modders' resource in addition to being a bugfix mod for people playing the game. The problem is that even though the engine patched these issues, the original resources still had problems which means that any modder that wants to create something new with these files has to fix the issue themselves. My mod provides these modders a way to get files they can mod which have already been fixed.

  • Can you port this to or make it work in Classic Daggerfall?
  • Hypothetically, it is possible to implement most of my fixes (if not all) in Classic Daggerfall. However, in practice, this requires a lot of effort. One would have to figure out where in ARCH3D.BSA, BLOCKS.BSA and MAPS.BSA the bugs are present. They would then have to either hex edit these files at those offsets or create a way to make these changes to the in-memory copy of those files while the game is running. It is more work than I'm willing to put in.


Version history
Due to the sheer number of changes this mod makes, I feel that it is impractical to list them under the changelog. Instead, I have listed the changes on separate web pages.

You can go here for the changelog that summarises the changes made, categorised by version:

Otherwise, these pages give more detailed explanations of the changes made, categorised by file modified:


Donations
While I don't expect any payments for my mods and have no plans to charge anything for them, any donations will be greatly appreciated.
Please see the relevant section of my readme to find the ways you can financially support my work, including 'free' ways.