Modding Tutorials
-
- Posts: 833
- Joined: Mon Nov 30, 2015 6:32 pm
Re: Modding Tutorials
I think I found (part of) the culprit.
The constructors for ModSettings are internal, which means they do not throw an error when you're writing code, but do when the .dfmod gets loaded.
It's not the full culprit because it's not crashing the editor.
The constructors for ModSettings are internal, which means they do not throw an error when you're writing code, but do when the .dfmod gets loaded.
It's not the full culprit because it's not crashing the editor.
Previous experience tells me it's very easy to misunderstand the tone, intent, or meaning of what I've posted. If you have questions, ask.
- BadLuckBurt
- Posts: 948
- Joined: Sun Nov 05, 2017 8:30 pm
Re: Modding Tutorials
No worries, sometimes a reset is the best course of action. And that's the spirit, good luck!Narf the Mouse wrote: ↑Sat Nov 09, 2019 1:54 pm Thanks for all your help. However, I did "git checkout ." to fix it. It really seemed borked, and I decided to just give up.
Edit: I should clarify. I haven't given up on the mod.
DFU on UESP: https://en.uesp.net/w/index.php?title=T ... fall_Unity
DFU Nexus Mods: https://www.nexusmods.com/daggerfallunity
My github repositories with mostly DFU related stuff: https://github.com/BadLuckBurt
.
DFU Nexus Mods: https://www.nexusmods.com/daggerfallunity
My github repositories with mostly DFU related stuff: https://github.com/BadLuckBurt
.
-
- Posts: 833
- Joined: Mon Nov 30, 2015 6:32 pm
Re: Modding Tutorials
Thanks. It's mostly finished; just needs final polish and an actual settings menu.BadLuckBurt wrote: ↑Sat Nov 09, 2019 2:29 pmNo worries, sometimes a reset is the best course of action. And that's the spirit, good luck!Narf the Mouse wrote: ↑Sat Nov 09, 2019 1:54 pm Thanks for all your help. However, I did "git checkout ." to fix it. It really seemed borked, and I decided to just give up.
Edit: I should clarify. I haven't given up on the mod.
Edit: It's mod.GetSettings() now. Also the tutorial needs to be updated.
Previous experience tells me it's very easy to misunderstand the tone, intent, or meaning of what I've posted. If you have questions, ask.
-
- Posts: 9
- Joined: Fri Dec 07, 2018 7:31 am
Re: Modding Tutorials
I spent some time looking over the examples and digging in the scene hierarchy, but I still can't figure out how to manipulate an existing UI element. It seems that the gameObject DaggerfallUI has a script of the same name, but I can't seem to actually effect a HUD element. For example, I tried the following code this evening:TheLacus wrote: ↑Sat Nov 09, 2019 1:08 pmThis is not possible (because C# is a compiled language) and also not ideal because two mods that change the same file would be incompatible. See the tutorials on the first page of this topic for some examples of how to make a mod.IAmTheClayman wrote: ↑Fri Nov 08, 2019 12:44 am How would you go about making changes to an existing script in DFU? For example, right now HUDVitals.cs has the following code:
I want to, as a test, have the vitals display horizontally centered. Would the way to do this as a distributable mod be to make the edits directly to HUDVitals.cs and include it in the list under Files in the Mod Builder window?Code: Select all
public HUDVitals() :base() { playerEntity = GameManager.Instance.PlayerEntity; LoadAssets(); BackgroundColor = Color.clear; HorizontalAlignment = HorizontalAlignment.Left; VerticalAlignment = VerticalAlignment.Bottom; SetMargins(Margins.All, borderSize); ...
Code: Select all
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DaggerfallWorkshop.Game.Utility.ModSupport;
using DaggerfallWorkshop;
using DaggerfallWorkshop.Game.UserInterface;
using DaggerfallWorkshop.Game;
using DaggerfallWorkshop.Game.UserInterfaceWindows;
namespace ModernVitals
{
public class ModernHUDVitals : MonoBehaviour
{
Mod mod;
HUDVitals vitals;
// Use this for initialization
void Start()
{
mod = ModLoader.mod;
vitals = GameObject.Find("DaggerfallUI").GetComponent<DaggerfallUI>().DaggerfallHUD.HUDVitals;
vitals.Enabled = false;
Debug.Log("[[ModernHUDVitals]] Start log hit at " + Time.realtimeSinceStartup);
}
// Update is called once per frame
void Update()
{
}
}
}
- Hazelnut
- Posts: 3016
- Joined: Sat Aug 26, 2017 2:46 pm
- Contact:
Re: Modding Tutorials
I think I've found another restriction of the mcs compiler, as code works in editor but not when packed in a .dfmod and this was the issue that Meaner Monsters mod ran into. It seems that you cannot use c# object initialisation with structs, works fine with classes though.LypyL wrote: ↑Sat Jun 18, 2016 7:52 am Known Issues
enums - scripts with enum types defined will fail to compile. You can still use any of the enum types already in the project. This is an issue with the mcs compiler.
generic functions / classes - similar to the above, due to an issue with the compiler scripts that try to define generic functions will not compile.
Unity Versions - mods created in newer versions of unity might not be compatible with older versions of unity. This is noticeable if the mod is in the mod directory, but doesn't show up in the list of mods.
See my mod code for examples of how to change various aspects of DFU: https://github.com/ajrb/dfunity-mods
-
- Posts: 1403
- Joined: Mon Aug 12, 2019 4:32 pm
- Contact:
Re: Modding Tutorials
Yes, the documentation for setting up mod settings needs updated badly. It is completely misleading. The forum post is outdated, the web page isn't complete in its documentation.
I'm using the build in mod setting creator, opening it up and saving it within the same folder as the mod script file, and I am then loading mod.GetSettings(); with awake, start, and Init. Still, no settings are showing up in the mod.
I also added the json file as an asset within the mod builder to ensure it compiles with the mod. I'm trying to track down mods to back engineer to see how it is done, but can someone provide updated documentation on this area?
I'm using the build in mod setting creator, opening it up and saving it within the same folder as the mod script file, and I am then loading mod.GetSettings(); with awake, start, and Init. Still, no settings are showing up in the mod.
I also added the json file as an asset within the mod builder to ensure it compiles with the mod. I'm trying to track down mods to back engineer to see how it is done, but can someone provide updated documentation on this area?
My Daggerfall Mod Github: l3lessed DFU Mod Github
My Beth Mods: l3lessed Nexus Page
Daggerfall Unity mods: Combat Overhaul Mod
Enjoy the free work I'm doing? Consider lending your support.
My Beth Mods: l3lessed Nexus Page
Daggerfall Unity mods: Combat Overhaul Mod
Enjoy the free work I'm doing? Consider lending your support.
- Ralzar
- Posts: 2211
- Joined: Mon Oct 07, 2019 4:11 pm
- Location: Norway
Re: Modding Tutorials
Like, the mod settings that you can adjust in the mod list? All you need is to list the "modsettings.json" in the *.dfmod.json file.
Take a look at my Level UpAdjuster. It uses a LOT of mod settings,
LevelUp Adjuster
Take a look at my Level UpAdjuster. It uses a LOT of mod settings,
LevelUp Adjuster
-
- Posts: 1403
- Joined: Mon Aug 12, 2019 4:32 pm
- Contact:
Re: Modding Tutorials
I got it. It was something small like I thought, but it should still be listed on the webpage.
I did not realize the modsettings was a separate namespace from the modsupport namespace. I would think it would be part of the general modsupport namespace, as it would logically seem to be part of mod support. Bad assumption.
Also, you can just add the settings file as an asset to the mod builder window to get it into the mod json without having to manually go into and add it yourself using a text editor.
These two documentation additions would take five minutes to add to the top of the mod settings documentation page, so future modders know right upfront modsettings is its own namespace. I know, rookie mistake, but that is what good documentation is supposed to be for.
Thanks, as always everyone, for sharing your work, so I can trouble shoot these things.
I did not realize the modsettings was a separate namespace from the modsupport namespace. I would think it would be part of the general modsupport namespace, as it would logically seem to be part of mod support. Bad assumption.
Also, you can just add the settings file as an asset to the mod builder window to get it into the mod json without having to manually go into and add it yourself using a text editor.
These two documentation additions would take five minutes to add to the top of the mod settings documentation page, so future modders know right upfront modsettings is its own namespace. I know, rookie mistake, but that is what good documentation is supposed to be for.
Thanks, as always everyone, for sharing your work, so I can trouble shoot these things.
My Daggerfall Mod Github: l3lessed DFU Mod Github
My Beth Mods: l3lessed Nexus Page
Daggerfall Unity mods: Combat Overhaul Mod
Enjoy the free work I'm doing? Consider lending your support.
My Beth Mods: l3lessed Nexus Page
Daggerfall Unity mods: Combat Overhaul Mod
Enjoy the free work I'm doing? Consider lending your support.
- TheLacus
- Posts: 1305
- Joined: Wed Sep 14, 2016 6:22 pm
Re: Modding Tutorials
The documentation on the website looks complete to me, what would you suggest to add?
I'm going to edit the forum post with obsolete tutorial so it won't confuse anymore in the future.
I'm going to edit the forum post with obsolete tutorial so it won't confuse anymore in the future.
-
- Posts: 1403
- Joined: Mon Aug 12, 2019 4:32 pm
- Contact:
Re: Modding Tutorials
It's a small nitpick thing, but I don't see any reference to using the differing namespace to access the modsettings. I thought it was built into the modsupport name space. Maybe I overlooked this somewhere? If not, it would of helped for me to see the modsettings namespace setup. Specifically, this below.
using DaggerfallWorkshop.Game.Utility.ModSupport.ModSettings;
Did I overlook it, or is this such a basic part of Object Orientated coding that no one feels it is needed clearly stated. It was a pretty rookie overlook.
using DaggerfallWorkshop.Game.Utility.ModSupport.ModSettings;
Did I overlook it, or is this such a basic part of Object Orientated coding that no one feels it is needed clearly stated. It was a pretty rookie overlook.
My Daggerfall Mod Github: l3lessed DFU Mod Github
My Beth Mods: l3lessed Nexus Page
Daggerfall Unity mods: Combat Overhaul Mod
Enjoy the free work I'm doing? Consider lending your support.
My Beth Mods: l3lessed Nexus Page
Daggerfall Unity mods: Combat Overhaul Mod
Enjoy the free work I'm doing? Consider lending your support.