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.
- Do not install or update this mod while inside a non-dungeon's interior. This is because there is a bug in Daggerfall Unity that causes the player map icon to become a collidable object. So please, if you are in a settlement, make sure you are outside before installing or updating. If the map arrow has become collidable, opening and closing the map might fix it.
- After you have installed or updated this mod, you might notice that any models that I modified in a dungeon you have explored will have disappeared from your map of the explored areas. This is caused by a bug in Daggerfall Unity that I have submitted a pull request for. This issue will be fixed once that PR has been merged.
- In a few dungeons, Daggerfall Unity's Runtime Materials script is currently assigning the wrong textures to some models I've patched. So far, I've only seen this in Privateer's Hold, Daggerfall's Castle and Lysandus' Tomb. This needs to be fixed on DFU's side and has been reported.
- Doors in dungeons that I have fixed no longer use dungeon door sounds. Instead, they currently use the same sounds as those in settlements. I'm looking into ways to restore this.
- Models in dungeons that I have fixed have a few issues with the dungeon map. They don't turn transparent and have some texture issues. This needs to be fixed in Daggerfall Unity and has been reported here and here.
- 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.
- 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.
- Due to a bug in both Daggerfall Unity and the original game, it is possible to teleport inside Castle Daggerfall and get stuck inside with no way to leave because the magically locked doors are closed. Without this mod installed, it is possible to get out by talking to the guard through the gap between the door and doorway. This mod closes that gap, making this workaround impossible. If you do get stuck, temporarily deactivate this mod for long enough to do the workaround.
- 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.
- One container inside the fixed house will still sell books if the player has already identified this building before installing this patch.
- 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.
- 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.
- In short, load this mod as early as possible. With a "Load Priority" of 0 if possible.
- 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.
Due to the sheer number of changes this mod makes, I feel that it is impractical to list them here. 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:
- Dungeon Block Records
- Locations – 0: Alik'r Desert
- Locations – 1: Dragontail Mountains
- Locations – 5: Dwynnen
- Locations – 16: Wrothgarian Mountains
- Locations – 17: Daggerfall
- Locations – 18: Glenpoint
- Locations – 20: Sentinel
- Locations – 21: Anticlere
- Locations – 22: Lainlyn
- Locations – 23: Wayrest
- Locations – 32: Northmoor
- Locations – 33: Menevia
- Locations – 34: Alcaire
- Locations – 35: Koegria
- Locations – 36: Bhoraine
- Locations – 37: Kambria
- Locations – 38: Phrygias
- Locations – 39: Urvaius
- Locations – 40: Ykalon
- Locations – 41: Daenia
- Locations – 42: Shalgora
- Locations – 43: Abibon-Gora
- Locations – 44: Kairou
- Locations – 45: Pothago
- Locations – 46: Myrkwasa
- Locations – 47: Ayasofya
- Locations – 48: Tigonus
- Locations – 49: Kozanset
- Locations – 50: Satakalaam
- Locations – 51: Totambu
- Locations – 52: Mournoth
- Locations – 53: Ephesus
- Locations – 54: Santaki
- Locations – 55: Antiphyllos
- Locations – 56: Bergama
- Locations – 57: Gavaudon
- Locations – 58: Tulune
- Locations – 59: Glenumbra Moors
- Locations – 60: Ilessan Hills
- Map Block Records
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.