Making Mods

### Required programs

Check "Basic Tools For Making Mods" section for required & recommended applications

# Basic Tools For Making Mods

There are dozens of different tools and applications that can aid in the creation of mods, and the various assets that can potentially make up or be apart of mods. This section is going to be a non-exhaustive list of these sorts of tools, and what "types" of modding applications they can be useful or necessary in. In many cases, alternative applications can be supplemented that accomplish the same job, these are just the ones that I know of and use on a regular basis, or know of others that use them on a regular basis for modding and asset creation.

## Basically Required

* **Daggerfall Unity Source Files** Depending on the "type" of mod you are making, you won't always need this, but if you plan on making your mod into a **".dfmod"** then this will be required. Also if you plan on doing anything outside of Quest-Packs and Loose File replacements, this will be required. So I'd recommend getting and installing this in the majority of cases. (In a later section of this page I'll explain how to install this step-by-step.)
* **Unity Hub** An application that allows easy management of Unity Editor versions and projects. While as stated in the previous bullet-point, not everyone will need this, but most should and will. Makes dealing and downloading the older Unity Editor versions trivially easy compared to manually, as well as helps in other ways as well when dealing with your Unity Editor instance.

## Universally Useful

* **Notepad++** A simple, elegant, and feature-rich text-editor. Text-editors will be used at some point in almost every modding project no matter the type, this just happens to be the one I use and recommend.
* **7-zip** or **NanaZip** or **Zipeg** or **WinRAR** or just any kind of archive/file-compression application. For both being able to access archive type files, and to compress your own to be shared over the Internet, or upload onto sites such as Nexus Mods when you eventually want to publish your mods. Once again, use whatever you want, these are just some I found when searching and figured I'd list a few.
* **Flameshot** or any application that allows you to take targeted screenshots of your screen. This is totally optional, but it can be extremely handy in so many little ways you might not expect initially, especially if trying to get support, having an image to see is much easier to troubleshoot with (in my experience atleast) than simply text.
* **GitHub Desktop** an extremely handy application that allows you to visually interact with Git and GitHub repositories specifically. The main function is obviously version control, but even if you are not doing much coding, this version control is immensely useful for documentation, organization, sharing, archiving, and so many other things. So yeah, would definitely suggest getting acquainted with the idea of version control and Git, it can really save you time in the end, ALOT of time, and this particular application is a pretty good one to assist in this task.

## Often Useful

* **Daggerfall Imaging 2** A Windows app made by Interkarma that allows you to view the vast majority of textures that Daggerfall's base data files have. This can be useful for both those making textures, replacing existing textures, and even those using certain functions in DFU's code-base. Even allows extracting said texture files into various file-formats such as .png or .jpeg. Not everyone will need this, but it's very handy, and fun as well.
* **Daggerfall Modelling** A Windows app made by Interkarma that allows you to view the large amount of 3D models within Daggerfall, this includes building exteriors, building interiors, dungeon modules, and all other miscllanous 3D models within the game. Likely not as useful for all types of mod projects as Daggerfall Imaging 2, but still extremely useful tool to have access to, you can also export said models to be used in other 3D modelling tools like Blender.

## Textures & Sprites

* **GIMP** or **Photoshop** or any kind of image editing/manipulation application you prefer to use. I personally prefer GIMP, but you can use basically any image editor tool you wish.

## Audio & Music

* **Audacity** or any audio editing/manipulation application you prefer to use. I personally like Audacity.

## 3D Modelling

* **Blender** or **Wings 3D** or any 3D modelling application you prefer to use. I'm pretty terrible at actually modelling, so at most I generally just view and export, but use whatever works for you.

## Coding & Scripting

* **Visual Studio** or **Visual Studio Code** or **JetBrains** or any IDE that recognizes and allows using the C# language. C# is the primary language used in Unity, this also includes Daggerfall Unity as a result. You can of course do any of this in any basic text-editor, but if you know what an IDE is, you probably know why not using one for these coding applications is a bad idea, but just use whatever you prefer. Just a note though, not every IDE plays nicely when it comes to "attaching" to the Unity Editor, and thus can make things more difficult in some cases, but Visual Studio is fully supported, and apparently so is JetBrains. But in my experience Visual Studio Code works well for the most part with Unity, though the "live debugging" aspect leaves alot to be desired, to say the least.

# Setting Up Basic Modding Environment

In this section I am going to do step-by-step instructions on how to set-up a basic modding environment so you can start making and building mods for Daggerfall Unity.

## Step 1: Download DFU Source Files

To actually open Daggerfall Unity as a project in the Unity Editor, you first need to have the source files for DFU. The following will explain how to do this.

1. Follow this link: DFU Releases (As of writing this, the latest stable version is **0.14.5**, download whichever you want though.)

2. Scroll down to the bottom of the page until you find the **"Assets"** section. Of the 6 options, choose **"Source code (zip)"**, click that and save that to your Desktop or whatever location you know where to find it:

3. You should be left with a compressed/archived file similar to this:

4. Make a new folder to put these files in. A recommended location would be something like **"C:\Games\Daggerfall Unity"**. Extract those files into this folder, check the images below:

You should now have the DFU source files extracted into the location of your choosing, and are ready to move onto the next step of the guide! In the next step you will be downloading the **"Unity Hub"** application, using this app we will be installing the correct version of the Unity Editor that is compatible with our DFU source files version, so these source files can be opened as a Unity project.

## Step 2: Downloading Unity Hub & Installing Unity Editor

To install the correct Unity Editor version, we are going to be using the handy tool, "Unity Hub" to accomplish this. The following steps will go through the entire process.

1. Follow this link: **Unity Hub** Scroll down to the lower-middle part of the page and click the "Download for Windows" button when you find it. Save the file to anywhere you know where to find it.

2. Find the **"UnityHubSetup.exe"** you just downloaded and run it (double-click) to begin the installation process. Agree to the License Agreement, then click the **"Install"** button in the next window if you are alright with the location Unity Hub will be installed to by default. Let it install, when it is finished click the **"Finish"** button and proceed to the next step.

3. Run (double-click) the **"Unity Hub"** shortcut that was likely just added to your desktop. In the window that should pop-up, you will need to either sign-in to an existing Unity account, or create a new account if you don't already have one. Do either of those options, the window will look like this:

4. Once you have signed into either an existing account or a newly made account, you will be greeted with some pop-ups. The first one will ask about installing a unity editor, **DO NOT** do this. Click the **"Don't ask me again"** so there is a checkmark inside it. Then click the **"Skip installation"** button. Here is what it should look like:

5. After that, another similar window will pop-up. For this one, click the **"Don't ask me again"** so there is a checkmark inside it. Then click the large blue **"Agree and get personal edition license"** button. Here is what it should look like:

6. Finally, you should now be at the main-menu for the Unity Hub tool. We will now be installing the proper earlier version of the Unity Editor that is compatible with DFU v0.14.5 (The exact Unity version is, **2019.4.40f1**). To install this version, click one of the **"Install Editor"** buttons in the Unity Hub tool, like this:

7. A window will pop-up, click the **"Archive"** tab in this window, like this:

8. Then click the "download archive" link as shown below, you will be redirected to this website, Download Archive:

9. On that webpage, scroll down slightly and click the **"Unity 2019.X"** tab, so you get something like this:

10. After doing this, click the large blue "Unity Hub" button, next to the correct version you want, in this case **"2019.4.40"**, just as in the image below **(MAKE SURE THE VERSION IS EXACTLY THIS ONE.)**:

11. Depending on your browser, you may be prompted to give permission for an external application to do something (In this case Unity Hub.) Allow for it to do so, which should then bring up the Unity Hub tool again, which you should see a window like this now in it:

12. In these next few images, I'm just going to show you what I personally would have checked and unchecked before hitting the blue **"Continue"** button, which will start the installation process for this Unity Editor version. Feel free to choose or not choose whichever options make sense for you. I prefer to Visual Studio Community "Dev Tools" (Like I said, do whatever makes the most sense for yourself.) The other important thing is to check the "Build Support" options you care about. I personally like to install for all three major operating systems, that being Windows, Mac, and Linux. This way I can build my .dfmod files to be technically compatible with all of these versions, that's the theory atleast. Ramble aside, pick or don't pick whatever you want, then click the **"Continue"** button when you are ready. Follow the next few images if you wish for my personal selections, once you hit the continue button let the installation process do its thing, it will likely take some time, especially based on your selected installation options:

What you will be left with while it installs, wait until it is all finished and then continue on with these steps:

**Optional Visual Studio Install Stuff, If That Was Selected:**

If you selected to have Visual Studio be installed along with the Unity Editor, something like this will eventually come up during the installation process:

Once again, choose whatever you want. But in my case I selected the following options that would be mostly the minimum stuff used in modding DFU, that being C# development tools, so use the following images as reference if you wish before hitting the **"Install"** button:

This is what it should look like after hitting the **"Install"** button, once again let it do its thing and then close out of that window when it is all finished, afterward you should be able to use the Visual Studio IDE if you want, but more on that will be gone over much later in this or another related guide:

**End of Optional Visual Studio Stuff. Onto The Next Steps.**

13. After Unity Hub has finished installing the Unity Editor, you should be left with something like the below image, click the small **"X"** button as shown:

14. You should then be left with something like this, the main Unity Hub menu with your now installed Unity Editor version available to be used:

Now that we finally have the correct Unity Editor version installed, we can now FINALLY launch/open the Daggerfall Unity source-files we downloaded in the previous section, here is how we will do this...

15. In the Unity Hub window, select the **"Projects"** tab, as shown below:

16. After that, click the grey **"Open"** button:

17. With the file-manager, navigate to the place that you put Daggerfall Unity's source-files folder from the previous section. When you find it, select the folder and click the **"Open"** button so Unity opens this as a project:

Unity will now be opening the DFU files as a project, this will take a few minutes as the Unity Editor creates all the initial files and imports assets, eventually though the Editor will finally launch and you will be left with the main Unity Editor window, as shown below:

Congratulations, you are finally in the all important Unity Editor!

You will know if the DFU source-files were opened correctly by the Editor if you see the **"Daggerfall Tools"** tab available as shown in the below image:

Once you have confirmed that, we can now proceed to launching Daggerfall Unity in the editor for the first time, to do so...

18. Find and select the **"Scenes"** folder as shown in the below image:

19. Inside this folder, select the **"DaggerfallUnityStartup"** scene, and with that selected hit the **"Open"** button, as shown below:

20. This will open that scene in the editor, which is the main "scene" we care about for purposes of just starting the game. Check the image below and read the text for more info on what to do next to actually start/play the game in the editor:

21. After hitting the **"Play"** button, DFU should now start, but it will be in a small window, to make it full-screen in the Editor press the **"Maximize On Play"** button as shown:

22. Then hit **"Play"** again to close the game, then hit **"Play"** once more to start the game again, but this time it should be full-screen/maximized, like so:

And with that, you now are able to play Daggerfall Unity inside the Unity Editor tool! This will allow for much more later on in the guide, but this was the most important first step to getting an environment to play, work, and test in.

Oh yeah, and here is how you can open this project again in the future. Simply go to the Unity Hub tool, and under the **"Projects"** tab, this project you just opened should be saved and openable again, making getting back into that DFU project extremely simple after the first time, as the image shows below:

But anyway, that concludes this section of the guide. You now have one of the most difficult initial hurdles crossed for getting a modding environment set-up. It only gets easier (yet more specialized) from here!

In the next section of this guide, I'm going to try and explain through some simple examples how to build a .dfmod using the Editor, building a .dfmod will be a fundamental step for modding, no matter what kind of mod you are creating for DFU (well almost all.) So this will be an important step to understand and get the hang of.

Thanks for reading and following this long section, hopefully the next ones are just as useful and clear to follow!

# Building Your First .dfmod

In this section, I'm going to be showing you how to build a basic mod into a .dfmod using the Daggerfall tools in the Unity Editor...

This section was getting filled with too many pictures, so decided to just make another page with these steps for better organization. Below is the link to that page:

Building Your First .dfmod

# Other Useful Links & Community Resources

* Daggerfall Unity Official Workshop Forums
* Official DFU Subreddit
* Unofficial DFU Fan Server, Discord Invite Link
* The Older Scrolls Server, Discord Invite Link
* Daggerfall Unity Nexus Mods Portal

 GENERAL

 GRAPHICS

 WORLD EDITING