#Launcher
1 messages · Page 1 of 1 (latest)
Several reasons. Some are related to wanting to keep ancient/lost mod packs alive; some are related to my own narcissistic injuries around mods I've released without aggressively protective licenses.
So basically because you aren't happy with the features of the mod portal?
I had a custom launcher for automatic mod downloads before the portal became a thing and game.connect_to_server before that or the RCE version of that became a thing so I can see advantages
I'm not happy with the features nor policies of the mod portal, nor do I want linkable mods to be constrained to what the mod portal's policies consider acceptable.
Have you seen that you can provide a custom mod portal URL to the game?
That's interesting, admittedly, but I think it introduces a potential liability problem.
I'd like the ability to mix and match mods from multiple portals as part of joining a server.
Just make your portal proxy mods it doesn't have locally
Including what I called 'plugins' - things that alter the game executable environment in unauthorized ways.
'My portal'? I don't want to run a portal, unless it's a local proxy that's part of the launcher.
I'd assume you would want a way to download non-portal mods from the server you are connecting to
Only good way to do that is write a proxy and have it call the server you are attempting to join for any mods it can't find on the portal
I could see the idea of running an index of non-public mods, but that's rather different from a portal.
And I genuinely believe that a server should offer direct, off-portal download of its mod-set.
My experiences have been... shall I say, significantly coloured by my experiences as a Minecraft modder...
I agree, and I believe the only way to achieve this is by writing a proxy for the mod portal api
You might not be wrong here. I just think any such proxy needs to be serverless, as part of the local operation of the launcher.
Where you place the proxy doesn't matter - it needs to talk to the server no matter what
The advantage of doing it local is that you can sync before launching
I absolutely fully expect that should I actually host a proxy I open myself up to a flak-spam of takedown requests and other legal weaponry if it's not purely local.
Don't see why
Are you familiar with the Creative Commons ND-restriction?
No
It allows a work to be copied freely so long as absolutely no edits whatsoever are made to it.
I don't see the issue yet
It's quite often I've seen that private servers must edit such a mod, if nothing else because Factorio's per-mod Lua contexts prevent invasive alteration/correction of a different mod's control.lua context.
Therefore, such an edited mod may never be posted to mods.factorio.com, as doing so is publishing an edited version of a mod in violation of its license.
Of course.
For example, I've been working with a 1.1 Morningstar Collective mod pack that incorporates both AAI and Space Exploration... but there are bugs in AAI that can cause desync crashes, and trying to fix those on the server privately and directly is in violation of the AAI licenses.
(Apologies for the abject disrespect, but as a relative outsider to Eärendel's team ... I'd be willing to work with them, but not under conditions where I do the work and they own the results. Thus, a measure of antipathy.)
I suppose the correct way to respect the license would be to create a patch and apply it through your launcher
Exactly... and patches are something I don't know that any current launcher supports, but those would effectively make such things Somebody Else's Problem™ and therefore much less of a concern.
How are you planning to distribute patches?
Ideally? Indirect github diff links, or something of that nature.
So hardcode the links into your distribution?
Not so much.
Maybe multiple indices; that might not even be avoidable, if the intent is to give a private server a way to allow a new player to join without going through public permissibility-of-distribution checks.
Most of my public mods on mods.factorio.com are patches against other mods during the data.lua phase in order to try to bandage problems that happen during prototype construction, for example; I count myself lucky that there's no constraint on doing so.
(Those are the reason my nametag is orange here. 😜)
I think the ideal case is one where it's pointed to a server- or modpack-root inventory, and any instructions there are just followed.
I've been investigating various bill-of-materials syntaxes lately, and there seems to be a synergy there.
My name isnt orange because my mod distribution already doesn't go through the portal :P
I recognize your nick well enough to know that you've been digging into the problem.
I also have one or two actually distinct mods that aren't patches so much as from-scratch reimplementations of prior concepts.
That said... I feel as though the default server-join mechanism, where the mod list is a catalogue of mods from the official portal, is ... deficient.
Just add stuff to the list that isn't on the official portal ¯_(ツ)_/¯
For example, last year when I was attempting to batter my way through a SE playthrough with my friends, there were enough broken mods that I ended up creating a parallel private chat channel for non-public mods, without which nobody would have been able to join.
And I never did resolve the AAI problems. Some part of me wants to approach Eärendel's group... but with an aggressive, bordering-on-hostile attitude, asking that if they truly want me to resolve the AAI mutliplayer desync problems and I do so, they totally cede control of the copyright to me.
Yeah, thats pretty normal - licenses become very complicated otherwise.
I feel as though Xorimuth is my best option to contact the group, if only because of their track record in successful creations and fixes.
(I also find it passing strange that nobody else actually uses the diaeresis in the name 'Eärendel', even though it's a non-ASCII thing.)
It's very, very obviously a Tolkien-derived name.
Seriously folks... diaeresis is not exactly hard to pronounce... I'd even argue it's the opposite. If you find diaeresis on some random vowel, drop a sylllable break right there and keep going.
The most common example? "Naïve", denoting that the i does not merge into the a as a diphthong.
Apologies if I'm annoying you, though. I'm just sort of ranting at this point.
I honestly feel as though I need the collaboration of an extrovert to manage connections.
Have you seen Rivets? a rust plugin system for 1.1 mods - might be of interest.
I haven't played Rust yet, but that seems like an intriguing concept.
Rust the language, not the game
It is for Factorio
Oh?
Rivets is a Factorio mod loader written in Rust. Hook into compiled functions and change their behavior. - factorio-rivets/rivets-rs
It's more for modifying engine behaviour than for improving integration between mods
Well, then that sort of doubles down on reasons to take interest. I haven't had a truly motivating reason to drill down into Rust yet.
and idk how complete it is. The author doesn't seem to be planning to work on it any further, and it only works in 1.1 anyway
Maybe less so then... but it's worth a look.
Over half of my modding effort has been directed toward forcing mods to work together that refuse to acknowledge one another's updates, so... yeah.
Leverage existing modding infrastructure: Rivets' design goal is to not reinvent the wheel. Mods written in Rust can be hosted on the offical Factorio modding website. Rivets is also designed to easily allow both Lua and Rust in the same Factorio mod.
(This isn't true, the devs will not allow mods containing random executable binaries on the mod portal)
From my conceptual viewpoint, it's certainly worth a look, though if it's unmaintained it's probably only useful for retro-packs.
https://en.wikipedia.org/wiki/Aurvandill there are other (related) meanings, without the diaeresis. And given that the person we are referring to just goes by "Earendel" it would be wrong to add anything to that.
The overall policy is actually quite similar to that of Space Engineers: a mod that doesn't restrict itself to integrating via the officially supported API isn't a mod, but instead something else: a 'plugin' that is entirely unsupported and carries no implied protection from being entirely hostile malware.
If you give me a diff, then I can make a PR based on it. I can't help you with the lack of copyright control though.
My apologies; I've probably soaked up far too much Tolkien at this point. 😛 If there's an actual distinction there, I'll respect it.
Ofc at this point, 2.0 work is ongoing, I don't think anyone will care to merge/release niche 1.1 desyncs
Apologies, but that's why I feel as though I have no way to properly cooperate at this point without holding an irrevocable right to fork.
While I might be convinced otherwise...
I can't help but wonder why this AAI (presumably prog-vehicles?) desync isn't more widespread? Do you know the circumstances in which it occurs?
It really depends on how much control — and public credit — I feel I have as a result of my effort.
Actually, the desync is not in prog-vehicles but in prog-structures.
I think very, very few players at this point use prog-structures to direct their vehicles.
ah yeah I bet that is true
I've found that any setup that uses a structure to read a vehicle's state -> some circuit mess -> uses another structure to direct that vehicle... desyncs.
At least in 1.1
There are also a few issues in prog-vehicles at this point that really grind my 
, like the way bounding boxes (and therefore vehicle entity subtypes) dynamically shift depending on navigation mode ... which is great for navigating forests, but catastrophic when navigating coastlines since it can lead to a bounding box intersecting non-traversable tiles.
I guess, with all of these issues... that's why I've been an odd mix of cooperative and combative. I want to see them fixed... but if I do the fixing, then I'd like to fix them on my own terms.
Admittedly, I consider the root-cause of the problem to be the absence of a mechanism in the Factorio engine to apply patches against another mod's control context... but that's kinda neither here nor there at this point.
Well as you're probably aware, Earendel has long since stopped working on Prog Vehicles and Prog Structures, and most contributors don't care much about them either. Trex has done the work of porting them to 2.0, and @fresh flower has also been doing some 2.0 compatibility testing and fixes on Prog Vehicles.
I think you'd find you have free-reign to do fixes, and I can't see there'd be any objections to genuine improvements either. For credit, that can happen too, especially if you ask for it: #781891491827286068 message
So I'd need to take time-sensitive advantage of the 2.0 breakpoint to establish any kind of authority? ...
Perhaps, but frankly that has such unbelievable potential for unreliability that I'm not surprised it isn't a thing.
No...?
Sorry, I'm just trying to form an understanding of the real policy underpinning the whole 'no unauthorized public derivatives' terms.
I've been on both sides of that particular blade edge, so I understand some reasons to have such terms.
I don't understand what you are saying/implying here at all
On one side, my own decision for my original work in Minecraft modding was to not be the one to restrict derivatives, and it led to rebundle mods that incorporated 80% of my own into their structure; on the other, I'm not sure if I want to try to patch up existing work without some sort of carte blanche in advance.
I obviously cannot speak for Earendel but I'm pretty sure it is some combination of the usual reasons:
- Wanting control/authority over his own creative work
- Protecting him and his mod's 'brand'/reputation
- Protecting users from unauthorised (and probably out-of-date, incompatible) copies of his mods
- Reducing the number of invalid bug reports and complaints from people playing those unauthorised copies
And... don't take this as a hard line position either, I'm kinda just spitballing here... just saying I've dealt with both sides.
And I greatly appreciate your willingness to engage with me here.
I think there are two different layers of discussion going on ...
my own concerns with mods that have broken for me; and a desire to see a way to have private servers be able to have their own private mod-sets not subject to moderation.
Those might have two different solutions.
Am I just spewing nonsense here?
Or are one or both of them invalid in some way?
this is outside my area of expertise and interest 😄
Fair enough. I have a bit of a legalistic tendency lurking, somewhat after the fashion of a dog that takes hold of a bone and won't let go even after being admonished. 😂
And my apologies if I suddenly stop responding... sleep may take me at any moment now.
Do you mind if I try to pick some of these threads up later?
Pardon the ping @nocturne hamlet, is this a good time to bounce a few thoughts around?
I think I might have gained some further perspective playing in 2.0, though for better or worse is unclear. 😅
Feel free to bounce ideas all you like
Why thank you! hat tip
So I've been exploring 2.0 for the past few weeks, and learning quite a few things.
It's quite clear a significant cross-section of the modding community is having trouble with the transition.
Some have other priorities, some have lost interest, some just have had their whole conceptual space reshaped such that adaptation probably can't be rapid.
I'm also thinking back to private multiplayer games I'd been in one to several years ago, and dealing with various problems that had no clean solution.
There's a SE+ game I'd played with a friend a while ago, and even resurrecting it properly looks like it could be a challenge given that some of the component mods were revised in such a way that their migrations were catastrophically destructive.
So... the only way to keep a game like that going is to rev-lock everything to a point in time. If using the built-in mod manager, that would require downgrading mods as part of the sync process when loading mods on the host instance, even if they look fine based on versioning information.
There was also a bonus problem mod in that pack, where I had to create an unofficial revised version of a portal released mod while subsuming its mod identifier in order to resolve a bug.
Going back further... some of my other friends want to continue to play rev-locked games tied to versions <0.17.35 and the exact datestamped images of the mod lists of the time, because they genuinely dislike subsequent releases and would rather abandon the game in its entirety than use newer versions. This has a secondary effect on me because it crosses a shared interest off the list, so to speak.
We've been able to keep it alive ... to an extent ... using non-Steam versions of the game downloaded from factorio.com and local snapshots of the mods folder.
More recently, a lot of the things I've wanted to do have been blown up by mods not being ported, or not well-ported, to 2.0. A surprising fraction of those have been Klonan's old work that he can't prioritize updating.
If I were to consider a "minimum viable product" concept for a launcher... it would be to recreate an exact environment for a specific game version and mod set version, including continuing to use old versions of mods that have since received minor and allegedly compatible updates and mods that (for whatever reason) are not on the portal, and managing side-by-side installations of different, mutually incompatible configurations.
So I could join my friends in an 0.17.24 (or whichever - memory is fuzzy) AngelBob+ game, or return to a Space Exploration game with a friend, or play the latest vanilla with or without the expansion pack, all with a couple clicks and not have to fuss overmuch with manually creating multiple instances and side-channels to share unofficial mod folders.
Yes... however my pov is that that is a pretty niche usecase, and even for the people who do want to play on 1.1 or earlier, it isn't very hard to create secondary installs (especially if using the windows portable version).
Not saying it isn't. Thinking of my friend though... he might be an outlier to the point he's exited Wube's target audience. Presumably due to overload of external stressors, if he has to actually stop, think, use online accounts outside of something like Steam single-sign-on, and generally put in time to make an instance work... he'd rather just walk away entirely. I couldn't even get him to reasonably try Minecraft because Microsoft account and the default launcher missing support for modpacks.
Hell, I couldn't get him to spend more than 20 minutes trying to get Starbound to work.
I ended up banished from his life (barring the odd phone call or shared dinner) for 51 weeks.
I indeed think that is an extreme outlier. Someone who refuses to play recent versions of the game or specific mods, but also refuses to even do a little bit of setup to make that possible...
In his case, refusing to do even a little bit of manual setup is a defining characteristic ever since he got married. I love the both of them to pieces, but neither of them wants to adapt and follow changes.
although even for him, if he only wants to play 0.17, it isn't even complex at all. He can just delete all his factorio installs, download 0.17 from factorio.com and disable update checks (or select the 0.17 'beta' from steam), and when he opens the mod manager ingame, it will only show him 0.17 mods.
I mean, he literally wants to never see updates relative to 0.17 that were released beyond a specific point in time; maintaining a very literal time capsule.
Updates both of mods and of the core game/content mods.
It might be a little weird, but when Angel updated angelsrefining with new art for its custom ores... that triggered a spectacular squick on his wife's part, and he really doesn't want to engage with that... and I'm not sure I can blame him. (Though I did mention the startup option to avoid the most problematic change: to wit, Angel's new assets for stiratite triggering a reaction somewhere between trypophobia and 'no, no way, real minerals just don't look like that'.)
I guess what I'm getting at is that I think there's a target audience for what I'm thinking of.
That said, it might be more than a little bit weird because, as I understand it, a key portion of the target audience I'm thinking of consists largely of those who at the end of the day either don't want to put in the effort to keep up or expressly dislike creators' changes (be those from Wube or mod creators).
The nearest point-of-comparison I can think of is Minecraft mod packs, which specify exact binary versions of every component including the point release of the game engine.
I just ran into another case where 'going around the rules' would be helpful. I just patched up a bunch of issues in the 2.0 port of Transport Drones, but if I re-release under a different mod ID, everything in script.data goes out the window, the depots stop dispatching trucks, and the trucks that are already on the road just drive around randomly like lost tourists. As an interim fix for games started with the existing mod, I basically created an unofficial edited version under the original mod ID.
At this point I kinda feel bad about how necessary it feels to create ways to 'go around the rules' ... but the rules as they exist seem to mess things up for ... not a majority, not even a plurality, but enough people that not providing a low-effort bypass to the rules leaves them in an uncomfortable position, with a combination of unsolved problems and broken games in progress.