Friday Facts #272 - Mod GUI

Regular reports on Factorio development.
User avatar
Lubricus
Filter Inserter
Filter Inserter
Posts: 294
Joined: Sun Jun 04, 2017 12:13 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Lubricus »

Couldn't a mod pack just be an "empty" mod with dependencies?
The feature to easily download and activate all the dependencies for a mod would anyhow be welcome.

MicFac
Fast Inserter
Fast Inserter
Posts: 114
Joined: Sun Nov 20, 2016 7:33 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by MicFac »

Bajter wrote: ↑
Fri Dec 07, 2018 12:23 pm
I love it that you made a typo in this sentence :)
After all - programmers and human and we make mistakes.
Either they changed it or I just got baited into checking if they actually made a mistake.

MicFac
Fast Inserter
Fast Inserter
Posts: 114
Joined: Sun Nov 20, 2016 7:33 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by MicFac »

In the bottom mockup it's not entirely clear how to start the update. I guess you do it with the "update selected" button but the color throws me off. I think it would be easier to see if the button was green like other buttons that confirm an action.

MicFac
Fast Inserter
Fast Inserter
Posts: 114
Joined: Sun Nov 20, 2016 7:33 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by MicFac »

Lubricus wrote: ↑
Sun Dec 09, 2018 8:39 am
Couldn't a mod pack just be an "empty" mod with dependencies?
The feature to easily download and activate all the dependencies for a mod would anyhow be welcome.
Good idea. A feature to automatically download dependencies would be very nice.

User avatar
Philip017
Filter Inserter
Filter Inserter
Posts: 355
Joined: Thu Sep 01, 2016 11:21 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Philip017 »

mod packs are a current mod sub system because alot of players dont want to have to sync 50+ mods to join a server, and a server can simply run one "mod" that is actually a mod pack of a bunch of mods that all work together. once the game allows for auto syncing of mods when attempting to join a server, mod packs will no longer be as sought after, but pill probably still be used to insure that all the mods play nice with each other.

User avatar
fishycat
Filter Inserter
Filter Inserter
Posts: 307
Joined: Thu Apr 09, 2015 7:38 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by fishycat »

featherwinglove wrote: ↑
Sun Dec 09, 2018 1:55 am
fishycat wrote: ↑
Fri Dec 07, 2018 1:28 pm
Small typo...
Why thank you. Oh, wait, that isn't about you wanting to go out with me :D
Not today game - got a lot of steel to shape! :D

Cadde
Fast Inserter
Fast Inserter
Posts: 149
Joined: Tue Oct 02, 2018 5:44 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Cadde »

Personally, no matter what you do to the mod GUI, i will always do it manually. It's just one of those things i do.
Not trying to poop on your parade, i just want to voice it out there that you can't please everyone as not everyone even wants to manage mods in game in the first place.

What i'd really like (despite there being built in dependencies etc) is a mod load order option. Why? Because some mods are big and some are small.
I want to load the big mods last so the small ones can do their things without having to work over HUGE tables after the fact. It's a loading performance thing.

For example, i an using wide chests, it adds A LOT of different entities in different configurations. As soon as that mod has loaded, every mod after it takes FOREVER to load.
So if i could make wide chests to load last (nothing depends on it AFAIK) then GREAT. The game would load orders of magnitudes faster.
To be fair, i don't even know in what order mods load but it's definitely not alphabetically as WideChests would be pretty far down the list in that case. It's more in the middle.

----------------

On a side note to this, mods that add a lot of sprites are painful enough. I really wish we could forcefully update sprite graphics and prototype specifications while the game is running. This from a modders perspective.
I would be fine with requiring a "-developer" launch parameter that sticks a "DEVELOPER MODE ACTIVE" in bold red text at the top to discourage users from using this in a live game for "reasons". As long as us modders could, at our own peril, alter graphics in real time without having to reload the entire game.

----------------

Finally, someone mentioned mod packs. I would like that too but for a personal reason. Instead of releasing one MEGA mod, i want to release a bunch of small ones. But i don't want to inconvenience users by downloading all small ones one at a time. Or for that matter, adding a bunch of small zips in the mods directory.

So if i may, can i propose a "mod-pack" line in info.json that would basically reference ALL mods that are to me added. Those mods would be added to the path where the "mod pack" resides so for instance, all of bob's mods goes in "/mods/bobs/*" and all of angels mods goes in "/mods/angels/*" and then perhaps there's a bunch of tweaks and fixes mods that could go in a "/mods/tweaks/*" folder.

And when you download a mod pack, you get to choose what mods in that pack you want to download. Unless there's dependencies of course. Dependencies should be handled automatically.
Then maybe i would start using the mod manager for the added functionality.

Only time i used the mod manager was when i had been away from factorio for a while and decided to get all the up to date mods in my mods directory. That's what i used the mod manager for, mass updating of the mods i've manually downloaded and added to my mods directory.

Goose
Inserter
Inserter
Posts: 47
Joined: Tue Mar 13, 2018 4:18 am
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Goose »

Image
You get the idea ; Apologies for the low quality.

User avatar
Lubricus
Filter Inserter
Filter Inserter
Posts: 294
Joined: Sun Jun 04, 2017 12:13 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Lubricus »

Cadde wrote: ↑
Mon Dec 10, 2018 4:54 am

What i'd really like (despite there being built in dependencies etc) is a mod load order option. Why? Because some mods are big and some are small.

Mod order is defined by dependencies and that is why "optional dependencies" is important, to define the load order.
There are different parts of the mods that loads before and after the mods they are dependent on. (data.lua/data-updates.lua and data-final-fixes.lua loads in different orders). And the load order is important for the mods to function.
So you cant change the mod order for mod's.
1. Different parts of mods loads in different order.
2. The order of how the mods loads is important for them to work.

User avatar
Nova
Filter Inserter
Filter Inserter
Posts: 947
Joined: Mon Mar 04, 2013 12:13 am
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Nova »

@Lubricus: Cadde talks about mods without necessary dependencies. His example did show that.
Greetings, Nova.
Factorio is one of the greatest games I ever played, with one of the best developers I ever heard of.

Nightinggale
Fast Inserter
Fast Inserter
Posts: 120
Joined: Sun May 14, 2017 12:01 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Nightinggale »

Cadde wrote: ↑
Mon Dec 10, 2018 4:54 am
What i'd really like (despite there being built in dependencies etc) is a mod load order option. Why? Because some mods are big and some are small.
I would be careful about entering that domain. Multiplayer would require you to load not just the same mods, but in the same order. Providing such setup freedom could make multiplayer messy.

Another issue in this regard is that Factorio is actually working well. If we look at Rimworld, that game too can allow the user to load a bunch of mods. This provides a nearly unlimited amount of mod combinations. This means once in a while somebody discovers that loading say 5 mods in a certain order will cause a conflict, but loading those 5 mods in any other order will not cause a conflict. Even worse if that happens, most people will not realize what the problem is and the game will just feel broken.

Having a forced load order is good for testing. It leaves less room for people to end up in untested combos. Ensuring a certain list of mods is always loaded in the same order will make the game feel more stable.

Your idea isn't bad and the concept in itself is fine. It just needs the best of both approaches as in gaining control of the order without losing the benefits of a fixed order for a certain list of mods.

Proposal
Add a load order setting. Make it default to 0. Sort the list of mods by this setting meaning low (negative) numbers are loaded first and high numbers are loaded last. Mods with the same number will be sorted by the current code. This number will only be a request, not an order. This means dependency settings will have higher priority.

The result is that you can set your mod to say -2 if you want to load it first for performance reasons like you mentioned. If you want it to load first for other (possibly more important) reasons, set it to -100 or something. Likewise you can load the mod last. Set it to +5000 and then mod say all belts in memory. That way you can mod belts from other mods without explicitly mentioning those mods.

xng
Fast Inserter
Fast Inserter
Posts: 164
Joined: Fri Feb 14, 2014 1:04 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by xng »

Been hearing about this new GUI for more than a year now and it has barely reached concept art yet.. I'm trying to keep my hopes up anyway for a sudden implementation within one month as promised.

Cadde
Fast Inserter
Fast Inserter
Posts: 149
Joined: Tue Oct 02, 2018 5:44 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Cadde »

Lubricus wrote: ↑
Mon Dec 10, 2018 7:52 am
Mod order is defined by dependencies and that is why "optional dependencies" is important, to define the load order.
...
Please read my post again.
There are mods that doesn't have dependencies that i really really want to load last of all.
Nightinggale wrote: ↑
Mon Dec 10, 2018 1:43 pm
I would be careful about entering that domain. Multiplayer would require you to load not just the same mods, but in the same order. Providing such setup freedom could make multiplayer messy.
Ah, multiplayer and deterministic simulation...

My suggestion for that would be that when you connect to a server and it finds a different load order than yours, it sends you it's load order and asks you to restart the game. Your previous load order is of course backed up as "pre join <somestupidserver>.bak"
Nightinggale wrote: ↑
Mon Dec 10, 2018 1:43 pm
Another issue in this regard is that Factorio is actually working well. If we look at Rimworld, that game too can allow the user to load a bunch of mods. This provides a nearly unlimited amount of mod combinations. This means once in a while somebody discovers that loading say 5 mods in a certain order will cause a conflict, but loading those 5 mods in any other order will not cause a conflict. Even worse if that happens, most people will not realize what the problem is and the game will just feel broken.
I am a power user, give me control damnit!

Code: Select all

sudo mod-load-order -F
I don't mind having a warning that my experience may differ from the plebs out there that don't know how to load order.
Besides, conflicts happen regardless of load order. Certain mods simply aren't compatible with each other without the authors specifically working around the conflicts.
Given, there's less combinations as you say, but allow power users to min-max their own game?
Nightinggale wrote: ↑
Mon Dec 10, 2018 1:43 pm
Having a forced load order is good for testing. It leaves less room for people to end up in untested combos. Ensuring a certain list of mods is always loaded in the same order will make the game feel more stable.
Stability is really down to what the author of a certain mod intended. If he's all about compatibility then he will ensure there's no chance of conflict with his own content.
Instead of naming an item "copper-plate" he would name it "myname-copper-plate"... And then "ore-dict" that. ;)

I like your proposal but that doesn't address any of the issues you mentioned, if i don't like the default load order of a certain mod i am going to alter it. As such, anyone i play multiplayer with would have to alter his as well.
And when i play any moddable multiplayer game, i am usually the one that decides what mods goes in the game. Because i am the power user whereas my friends are plebs. They really don't care.

Kattenkrad
Manual Inserter
Manual Inserter
Posts: 1
Joined: Mon Dec 10, 2018 5:22 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Kattenkrad »

As a fellow programmer, I'm curious about your experience with retrofitting a bunch of non-testable code with tests after adding the invariants for inventory items. Did you already have pretty good code coverage on that area?

Assert all the things!

Xuerian
Inserter
Inserter
Posts: 34
Joined: Mon Nov 07, 2016 7:10 am
Contact:

Re: Friday Facts #272 - Mod GUI

Post by Xuerian »

I see the screen indicating dependencies (for SpaceX, in this case), but it's not clear if the game will prompt you to also download the dependencies ("Would you like to install dependencies x,y,z now?")

Regardless of the potential use for "mod packs", this would still be very convenient when setting up a new set of mods for new save.

Have I missed this being discussed elsewhere? Aside from the handful of mentions in the thread already, which doesn't really paint a clear picture of if it's been officially decided or not.

User avatar
bobingabout
Smart Inserter
Smart Inserter
Posts: 7351
Joined: Fri May 09, 2014 1:01 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by bobingabout »

MicFac wrote: ↑
Sun Dec 09, 2018 9:23 am
Lubricus wrote: ↑
Sun Dec 09, 2018 8:39 am
Couldn't a mod pack just be an "empty" mod with dependencies?
The feature to easily download and activate all the dependencies for a mod would anyhow be welcome.
Good idea. A feature to automatically download dependencies would be very nice.
definitely.
Creator of Bob's mods. Expanding your gameplay since version 0.9.8.
I also have a Patreon.

mrvn
Smart Inserter
Smart Inserter
Posts: 5682
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Friday Facts #272 - Mod GUI

Post by mrvn »

bobingabout wrote: ↑
Thu Dec 13, 2018 8:46 am
MicFac wrote: ↑
Sun Dec 09, 2018 9:23 am
Lubricus wrote: ↑
Sun Dec 09, 2018 8:39 am
Couldn't a mod pack just be an "empty" mod with dependencies?
The feature to easily download and activate all the dependencies for a mod would anyhow be welcome.
Good idea. A feature to automatically download dependencies would be very nice.
definitely.
s/would be very nice/is totally essential for QOL/

vaendryl
Inserter
Inserter
Posts: 25
Joined: Mon Apr 02, 2018 4:21 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by vaendryl »

Nightinggale wrote: ↑
Sun Dec 09, 2018 3:24 am
vaendryl wrote: ↑
Sat Dec 08, 2018 11:52 pm
it'd be useful to be able to have a tab or something dedicated to a pack where the game doesn't automatically update the individual mods (as this might break the pack overall) but perhaps keep the ability to have the whole thing updated by the curator while keeping these files separate from the regular collection of individual mods.
I don't think loading mods without restarting will ever happen, or should I say I wouldn't want the modding restrictions it could result in. The thing is reading mods isn't incremental. Mods are loaded after dependencies, meaning you can't just reload an updated mod after having loading a mod depending on it. Another issue is mods can actually run lua code on load, which means there can be mods, which very heavily depends on the current way of mod loading (only at startup). It's unlikely that reloading in the main menu will be a time saver anyway because if you have to first discard the mods in memory and then run the entire load routine, you might as well restart the game. It would likely take around the same time.

However only having to restart once would be awesome, not once for updating and once for installing new mods, once for toggling an old mod off etc... with slow start time, this quickly becomes annoying.
wat? at no point did I talk about instant loading of mods. I'm talking about keeping sets of mods separated so I don't have to swap out entire folders in windows if I want to play a self-contained modpack. just clicking a button, have the game reload and ready to go with whatever mod-set I'm looking to play seems far more convenient. especially if I don't have to update packs manually.

User avatar
mexmer
Filter Inserter
Filter Inserter
Posts: 869
Joined: Wed Aug 03, 2016 2:00 pm
Contact:

Re: Friday Facts #272 - Mod GUI

Post by mexmer »

vaendryl wrote: ↑
Sun Dec 16, 2018 6:41 am
Nightinggale wrote: ↑
Sun Dec 09, 2018 3:24 am
vaendryl wrote: ↑
Sat Dec 08, 2018 11:52 pm
it'd be useful to be able to have a tab or something dedicated to a pack where the game doesn't automatically update the individual mods (as this might break the pack overall) but perhaps keep the ability to have the whole thing updated by the curator while keeping these files separate from the regular collection of individual mods.
I don't think loading mods without restarting will ever happen, or should I say I wouldn't want the modding restrictions it could result in. The thing is reading mods isn't incremental. Mods are loaded after dependencies, meaning you can't just reload an updated mod after having loading a mod depending on it. Another issue is mods can actually run lua code on load, which means there can be mods, which very heavily depends on the current way of mod loading (only at startup). It's unlikely that reloading in the main menu will be a time saver anyway because if you have to first discard the mods in memory and then run the entire load routine, you might as well restart the game. It would likely take around the same time.

However only having to restart once would be awesome, not once for updating and once for installing new mods, once for toggling an old mod off etc... with slow start time, this quickly becomes annoying.
wat? at no point did I talk about instant loading of mods. I'm talking about keeping sets of mods separated so I don't have to swap out entire folders in windows if I want to play a self-contained modpack. just clicking a button, have the game reload and ready to go with whatever mod-set I'm looking to play seems far more convenient. especially if I don't have to update packs manually.
Which is what sync save with mods actually help with. You don’t keep separate folders, all mods are in same folder. Sync enables/disables mods and downloads mods that are missing, it does not delete anything.

Only issue you might have, if modpack you use requires specific outdated version of mod, game doesn’t allow 2 version of same mod and loadshightest version if multiple are present in mod folder

Post Reply

Return to β€œNews”