I’ve been working on a mod for Daggerfall Unity that overhauls the layout of NPC houses in the game.
This involves mainly adding furniture and cleaning up the layouts, but also adding interior windows to match the exterior layout and sanitising the room structure when required.
This project came about as a result of my repeated trips to citizens homes while testing my QuestPack. The layouts were depressing; little furniture, minimal or even no windows, maze-like layouts with multiple pointless corridors taking up the limited space. How could they live like this. I began to feel sorry for these pixelated billboard folk.
There had been other overhaul mods created, such as Taverns Redone, Soldiers Luxury and Finding My Religion. However none had taken on the task of improving the NPC houses. I thought this was perhaps because they were of little concern to modders interested in the grand noble art of adventure. The homes of the little folk were just a place you were occasionally force to go on low-level guild quests to kill a trapped tiger for coin, or help some widow find her missing tea urn.
But no. It was because there are a hundred million houses in the game and you’d have to be crazy to even think of overhauling them. I decided to do it. I have problems envisioning the scale of things and my wife said I need more hobbies.
The main thing that stood in my way was that I had no idea how. I’d learned how to script quests but I had no idea how to mod world data and had never touched the Unity Editor in my life. Or any game design tool for that matter. I just knew that others had done it, so it was possible to learn. Thankfully there are some guides.
A basic first step is the Modding System guides on DFworkshop.net. These give a basic overview of the system, but the Modding Tutorials on the DFworkshop.net forums are the real gold. The majority of modders hang out there asking questions and sharing tips. The forum structure means there is a lot to go through and you can spend days on there trying to find out how stuff is done. Many of the regulars are also learning as they go. I went into how to set up Unity to use the Daggerfall source on my Modding Guide, the Modding Tutorials on DFworkshop.net take it from there.
For my project I consulted the Modding Tutorials: World Data Overides pinned post by Hazlenut, which focuses on creating and modifying the game world. It gave me a decent start on how the Unity Editor is used. Creating and modifying buildings isn’t hugely more complex within the Editor than it is in games with building creation such as The Sims. The Daggerfall WorldData Editor that will be on the Unity Editor menu once you’ve opened the Daggerfall Unity source will let you select items such as floors, walls, doors along with furniture and decorations, both 3D and billboard. Once these are in the scene you can manipulate them ’til your heart’s content.
To edit existing buildings in the game to improve them for the project I first had to visit them while playing Daggerfall Unity within the Unity Editor itself (you can do this within the regular game, but it’s best to play within the Unity Editor) and save their data for manipulation in the Editor.
Bringing it to the people
I opted for a tiny little village in Alcaire. The idea was to overhaul it all as a test. After a few buildings were done it was pointed out to me that I would be better overhauling the first town everyone comes to in the game, Gothway Garden. After the initial desperate dungeon crawl at lvl 1 past murderous rats and bats armed with naught but a glorified letter opener and dressed in your skivvies, most will check the map once in daylight and make their way to that first pixel below Privateers Hold. You might fast travel, but it’s one of the few places that you can comfortably walk to in a matter of minutes and many people like to take in the game world for a bit. Almost every player ends up there and takes their initial few quests from the local fighters guild or taverns.
To begin I entered the first house in the south-west of the map, brought up the console and typed
dumpbuilding. This, as it says, dumps the data for the building into a convenient json file in your DFU data directory. This will be something like
C:\Users\username\AppData\LocalLow\Daggerfall Workshop\Daggerfall Unity\TEMPAAH0.RMB-555-building1.json
The prefix of the filename identifies the location block theme (or RDB). In this case a temple area. Usually the houses surrounding a temple. If you look at the map of towns/villages/cities in Daggerfall they are made up of such blocks clumped together. The letters and numbers after are the alpha-numeric RDB record name. There are many temple blocks with different configurations of buildings around them. building1 notates this as the first building in this particular block.
There are a lot of houses in the game. Many of these blocks are re-used, but there are still hundreds of them. This is a mammoth task.
I then paused the game using the controls at the top middle of Unity and switched to the Scene tab. With the WorldData Editor window opened from the Daggerfall Tools menu and docked in a comfortable spot in the Unity window I then clicked on Open Building and found the .json file I had dumped from the game.
Double-clicking on it loaded the building in the editor window. It also adds a Building entry near the bottom of the tree in the hierarchy window. Expanding the Interior branch gives me a list of all the assets that make up the building. Clicking on the asset will select it. Double-clicking on the asset will zoom to it in the Scene window. Selected assets will have the standard until direction arrows on the XYZ scale and let you move it around. You can also use the corresponding XYZ boxes in the WorldData Editor tab to fine-tune the positioning. There is also a handy “Snap to Floor” button that does exactly what it says,which is useful for placing items on the floor or indeed any 3D surface they are just above, like tables, shelves, beds.
As well as adding furniture and sanitizing the layouts, my plan was to add windows to the interior of many houses or change any existing windows to match those on the exterior. This has become more of an issue since the release of Macadaynu’s Transparent Windows mod.
I discovered very quickly that in many cases this is not as simple as adding a window to the interior wall. Many of the buildings are made up of prefabricated rooms and corridors. Placing windows in these walls required removing the room and in some cases basically demolishing the house entirely and rebuilding it from scratch.
Another related issue was what was visible outside the windows. As the interiors of buildings are usually in a separate space from the exterior and subsequently the rest of the gameworld, being able to look out windows would have you looking into the void. Macadaynu got around this by placing the interior back into the game world. when you look out you see the town that exists outside of the building. However what is no longer there is the exterior building. This only becomes apparent if the building is an awkward shape and you can see walls or lower roofs.These will be rendered as interior walls, or sometimes invisible entirely. To compensate for this it’s required to place exterior walls on the parts of the building visible from the windows to give the illusion of an exterior surface. However what do you do when the window looks upon another window of the house? The exterior windows aren’t transparent so this would result in both windows being opaque. I got around this by sticking a cupboard or large painting or banner over one of the windows. Not a glamorous solution, but all I had for the moment. I’ve pondered the idea of creating window shutters or closed curtains or just boards, over these interior windows. The other option is to edit the exterior to remove any windows that look on each other, which I may have to do anyway for those houses that Bethesda forgot to put exterior windows on to begin with.
Furnishings and Fittings
While a lot of furniture is purely ornamental, there are certain items that you must place within a building. Markers at the exit doors to place your character when you enter the building, markers to show where quest items should be, an NPC or two to talk to and markers to show where your character needs to be placed when climbing a ladder. There are other markers that may or may not be used for various actions like Random Flat markers. I’m not sure what these do exactly, but I’ve been asked to add more around NPCs specifically. I think they may be used in other mods and quests for torturing NPCs. This is fine.
Beyond this, my goal was enriching the lives of the little cardboard people. I’ve given them more beds, furniture placed where I would want furniture if I lived there. Fireplaces put in sensible places, paintings on the walls. Food on the tables. Tables to put food on. The odd pet and shelves of stuff that your average Iliac Bay resident needs to eak out a simple existence while waiting for the next chosen one to break out of a prison and prevent an apocalypse.
While decorating the homes I started to become a little bored of the limited assets I could use. There are a lot of general clutter you can place, but given the scale of the game it’s not quite enough. And some essentials were missing. Kitchens were rather sparse, there was a total of six pixelated paintings you could hang on the walls…
The Daggerfall Expanded Textures project adds a lot of new assets for use by modders, but as it’s mostly the work of one person they only have limited capacity to implement requests, so I decided to learn a bit of Blender and pixel artistry and try my hand at making my own.
My attempts at making new painting models is documented under New Paintings, new billboard assets was a different challenge as it required new graphical models that fit with the style of the game. I’ve made only the rudimentary attempts at drawing in the past and it wasn’t very good. I’ve never done pixel art. I tried to cheat a bit by just shrinking and pixelating photos of items but it kinda looked terrible for the most part. Drawing them from scratch is a skill that takes years to learn and a lifetime to master. I don’t have that level of patience. I settled on the compromise of using the photos that I would then attempt to touch up manually. I’ve documented my delvings into the sphere of Creating new pixel flats.
Sharing the Project
I’m using GitHub to host the files and I’ll place any releases there. I aim to post it on Nexus mods once I have the buildings in Gothway Gardens done. It’s unlikely I’ll manage to change all the buildings myself as there may be thousands of variants, but we’ll see. If you want to test my current efforts, you can download the folders and files from the repository and put them in your StreamingAssets folder and the game should pick them up. I apologise in advance for any breakages. This is NOT release ready yet.
If any other budding modders wants to assist with this mammoth task let me know. Editing the building blocks in Unity is not massively complicated, only slightly more fiddly than creating camps/buildings in some open world games like Fallout 76. Customizing building blocks for Daggerfall in Unity isn’t difficult once you get to grips with Unity basics. If other people even just want to submit a building or few (perhaps your player home) that’s fine. Contact me on Discord (praest76#8883) and/or submit a pull request on GitHub.
I’m also attempting to implement basements/cellars in the buildings with a traversable hatch that I’m working on separately, add well as adding some new domestic models to the game for enrichment. Mostly New Paintings at the moment.
Work is ongoing when I get the time. This is mainly for myself with the aim to not only make Daggerfall’s legendarily massive game world more varied, but also to learn Unity and modelling. Hopefully others will get something out of it as well.