Actually, I didn't even know the ConfigurationManager existed. This is basically my first mod ever (except a DotA2 Custom Map) and my first interaction with Unity/BepInEx/etc.
The initial main reason to develop this mod was that every mod with configs always stated to go into the config files and change the values there. No other mod that I tried ever even hinted at the ConfigurationManager so I didn't know it existed. (Edit: I checked even the big ones like "Valheim Plus" or "Craft Build Semlt Fuel Pull From Containers" don't mention it)
But since I now do know that it exists I'd more think of my mod as a more stylistic UI for Immersion and general a little more userfriendly and intuitive design.
Same, I had no idea it existed until just a week or so ago. It's great as it reads from config files which basically most mods already have, so you just pop it in and you're all set. Downside is obviously the very out of place UI, and certain values don't seem to update at runtime.
I've been having a discussion with a prolific Valheim (and other games) modder, aedenthorn, over on aedenthorn's Discord about getting their mods to work with your interface, since the BepInEx Config Manager (BCM) interface blows.
aedenthorn has some good reasons why it might be better to stick with BCM's built-in functionality. If you want, aedenthorn's Discord is here
https://discord.gg/bs6zHuj
We've been knocking the idea around in # new-mod-ideas.
I'm thinking perhaps the best of both worlds might be to have your interface but with the BCM functionality. Because that is the crux of the matter...the BCM interface blows. Here are my reasons as I described them to aedenthorn:
Musashi — Today at 1:58 PM It sucks. [1:59 PM]On my HP Omen laptop, 17.3" screen, 1920x1080 the font is way too small, and the config doesn't have any settings for font. [1:59 PM]The mouse focus sucks.
[2:00 PM]The config says, ## The shortcut used to toggle the config manager window on and off. ## The key can be overridden by a game-specific plugin if necessary, in that case this setting is ignored. # Setting type: KeyboardShortcut # Default value: F1 [2:00 PM]But it's a lie. At least on my computer, F1 opens the config manager, but doesn't close it. [2:00 PM]I have to move the mouse outside of the config manager and click somewhere else to close it.
[2:01 PM]Comes up as a grey semi-transparent dialog box. Musashi — Today at 2:01 PM Makes it hard to read.
I like your solution. It solves all those problems. But BCM is already widely used (more or less), mod authors already know about it and how to use it (at least, some do...), and it already has all the needed functionality.
So maybe you could make your mod just hook that functionality and give us a decent interface.
I remember in the early days of free and open source software, the attitude of devs was, "Well, it's Open Source, so if you find a problem, fix it and upload a patch". Meh, screw that, my job isn't to fix their code, it's to report from a user perspective and let them figure out how fix their code.
This whole, "manually edit the config files" - for each and every mod (and every time the friggin mod gets updated) - is reminiscent of that, and it sux dog's [insert something disgusting here].
Anyway, I like your mod A LOT! It's really really really needed.
Cheers!
EDIT P.S.: I forgot one of my main gripes - Hotkeys. So many mods use the same friggin hotkeys, like F1 or F3 or left alt or whatever. Just trying to sort out and fix the conflicts has become a part-time job. WE NEED a decent mod/interface to detect those conflicts for us lazy good-for-nothing users (lusers). :D
As I stated earlier I didn't know the ConfigurationManager existed in the way it does and as far as i can tell "normal" people who just want to use some mods won't find/use it either since basically no mod mentions it. If mod authers know about it, why not at least mention it in the section where they talk about the config files?
But enough about that. After seeing the Configuration Manager myself and after properly integrating it into my own mod (Improved Skills) I did some thinking and am currently pushing some ideas around. I actually agree with many of the points made and I'm currently thinking of doing a different approch. My goal is to remove hard dependencies and rather let the user decide whether he want's to use MSUI or not.
I have two possibilities in my mind to achieve this:
Opt-out Basically do what the configuration manager does. Just display everything by default. But since some settings shouldn't be exposed to the user there should be a way without depending on this mod to "opt out" for specific configs. This way mod developers don't need to do anything, if they don't want to.
Opt-in It's basically the same as opt-out with the only difference being the decision on when to display the settings. Here I need to find a way to flag the config entry for display, rather than flagging it to not be displayed. The only problem being again, that mod developers actively have to use it
The only problem with this approach is that mod developers lose some of their control over their own settings:
No data validation possible (Yes I know, it's the users fault, but as a good software engineer you should know that you usually have to deal with that)
No feedback for the user (after validation or even as descriptions for settings)
FYI I *do* push my users to use the Configuration Manager interface rather than the config file, I think the problem is most people (modders) don't know it exists either, I only found out through chance. And it isn't installed with the base BepInEx mod, only if you use Vortex do you get it automatically.
As it states in the description I will upload this mod very soon. I just want to polish it a little bit more :) I don't have that much time during the week so I most likely will finish and upload it on the weekend!
Neat. is this only of use to mod creators or will regular players be able to make use of it? im asking because i didn't understand at all the usage instructions lol.
21 comments
Im not sure why but I get this error, any idea what this is? Im running game version 0.148.6.
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
ModSettingsUI.Util.IMG2Sprite.LoadNewSprite (System.String FilePath, System.Single PixelsPerUnit) (at
<0a93e8dcd0ce477590012f158edf6d1c>:0)
ModSettingsUI.ModSettingsUIPlugin.Awake () (at <0a93e8dcd0ce477590012f158edf6d1c>:0)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.Application:.cctor()
The initial main reason to develop this mod was that every mod with configs always stated to go into the config files and change the values there.
No other mod that I tried ever even hinted at the ConfigurationManager so I didn't know it existed.
(Edit: I checked even the big ones like "Valheim Plus" or "Craft Build Semlt Fuel Pull From Containers" don't mention it)
But since I now do know that it exists I'd more think of my mod as a more stylistic UI for Immersion and general a little more userfriendly and intuitive design.
I've been having a discussion with a prolific Valheim (and other games) modder, aedenthorn, over on aedenthorn's Discord about getting their mods to work with your interface, since the BepInEx Config Manager (BCM) interface blows.
aedenthorn has some good reasons why it might be better to stick with BCM's built-in functionality. If you want, aedenthorn's Discord is here
https://discord.gg/bs6zHuj
We've been knocking the idea around in # new-mod-ideas.
I'm thinking perhaps the best of both worlds might be to have your interface but with the BCM functionality. Because that is the crux of the matter...the BCM interface blows. Here are my reasons as I described them to aedenthorn:
Musashi — Today at 1:58 PM It sucks.
[1:59 PM]On my HP Omen laptop, 17.3" screen, 1920x1080 the font is way too small, and the config doesn't have any settings for font.
[1:59 PM]The mouse focus sucks.
[2:00 PM]The config says, ## The shortcut used to toggle the config manager window on and off.
## The key can be overridden by a game-specific plugin if necessary, in that case this setting is ignored.
# Setting type: KeyboardShortcut
# Default value: F1
[2:00 PM]But it's a lie. At least on my computer, F1 opens the config manager, but doesn't close it.
[2:00 PM]I have to move the mouse outside of the config manager and click somewhere else to close it.
[2:01 PM]Comes up as a grey semi-transparent dialog box.
Musashi — Today at 2:01 PM Makes it hard to read.
I like your solution. It solves all those problems. But BCM is already widely used (more or less), mod authors already know about it and how to use it (at least, some do...), and it already has all the needed functionality.
So maybe you could make your mod just hook that functionality and give us a decent interface.
I remember in the early days of free and open source software, the attitude of devs was, "Well, it's Open Source, so if you find a problem, fix it and upload a patch". Meh, screw that, my job isn't to fix their code, it's to report from a user perspective and let them figure out how fix their code.
This whole, "manually edit the config files" - for each and every mod (and every time the friggin mod gets updated) - is reminiscent of that, and it sux dog's [insert something disgusting here].
Anyway, I like your mod A LOT! It's really really really needed.
Cheers!
EDIT P.S.: I forgot one of my main gripes - Hotkeys.
So many mods use the same friggin hotkeys, like F1 or F3 or left alt or whatever. Just trying to sort out and fix the conflicts has become a part-time job. WE NEED a decent mod/interface to detect those conflicts for us lazy good-for-nothing users (lusers). :D
But enough about that. After seeing the Configuration Manager myself and after properly integrating it into my own mod (Improved Skills) I did some thinking and am currently pushing some ideas around. I actually agree with many of the points made and I'm currently thinking of doing a different approch. My goal is to remove hard dependencies and rather let the user decide whether he want's to use MSUI or not.
I have two possibilities in my mind to achieve this:
Basically do what the configuration manager does. Just display everything by default. But since some settings shouldn't be exposed to the user there should be a way without depending on this mod to "opt out" for specific configs. This way mod developers don't need to do anything, if they don't want to.
It's basically the same as opt-out with the only difference being the decision on when to display the settings. Here I need to find a way to flag the config entry for display, rather than flagging it to not be displayed. The only problem being again, that mod developers actively have to use it
The only problem with this approach is that mod developers lose some of their control over their own settings:
I *do* push my users to use the Configuration Manager interface rather than the config file, I think the problem is most people (modders) don't know it exists either, I only found out through chance. And it isn't installed with the base BepInEx mod, only if you use Vortex do you get it automatically.
I don't have that much time during the week so I most likely will finish and upload it on the weekend!
Thanks.
I can't wait until they start integrating it.
Great idea. Thanks.