OpenFactorioServerManager / factorio-server-manager

A tool to help manage Factorio multiplayer servers including mods and save games.
MIT License
604 stars 140 forks source link

Mod configurations #393

Closed jelutz77 closed 4 months ago

jelutz77 commented 4 months ago

When I uploaded my save and all mods, I tried to start and received the message "Mod startup settings mismatch", and I'm offered the chance to apply the server's startup settings and restart the game, which I will not do. How can I apply the client's settings to the server?

Mattie112 commented 4 months ago

If I remember correctie FSM does not (always) fetch dependencies for mods. Most simple solution would be to copy the mods from your PC to the server then it should match.

jelutz77 commented 4 months ago

I also noticed that not all the mods came over when I told it to get the mods from the save. I was prompted to sync mods, but I worked through that and uploaded all the rest of the mods. This issue is different, and I believe it’s related to the mod configurations I had set up in the client.

Or are you saying that this may be because I had loaded some from the store and some via upload, and I should upload all mods that I configured with the client? Are the mod configurations stored in the mod zip file?

Mattie112 commented 4 months ago

Yeah I think I also recall that issue. So on your server you are running the save you created on your PC?

I'll try to stretch my brain-cells to see if I remember the issue I was having.

jelutz77 commented 4 months ago

Yes, uploaded the save from my PC.

knoxfighter commented 4 months ago

Easiest way to get the mods on the server if you have a more complex mod setup and settings is to do it manually into the server filesystem. That means, uploading the whole local mod directory with mod.settings and such directly into the mods directory of the server (via ssh or other tools). The mod support of the fsm is only rudimentary and has issues when doing the first setup. Doing updates with it works great.

Squelch commented 4 months ago

The problem lies in how the mods are being parsed. Each mod's info.json is being checked for dependencies, but FSM has not been updated, so is unaware of the newer dependency flags. ie It checks for only 3 parts of the dependency string as - dependency name, comparitor and version. The flags prefix the name creating 4 parts of the string, so as a result, FSM sees the dependency as optional or incorrectly formatted and then skips (ignores) the actual dependency.

Tilde "~" is particularly problematic as it denotes a required dependency, but does not enforce a load order. FSM simply ignores this directive and fails to fetch the requirement.

I encountered this a week ago after one dependency update was interrupted, and failed to load. I was unable to reinstate the file, so removed and reinstalled the docker container afresh. Now, even after uploading a working desktop save, and the complete mod folder, I have a mod mismatch when attempting to connect. A large number of dependencies are aledged to be missing from the save. Copying back the servers save and mods to the desktop shows no problem. I simply cannot fathom why, but feel it is somehow related to mod-ilist.info being rewritten. Formatting is slightly different between a fresh destop version and one that FSM creates. However, the FSM version loads fine when copied to desktop.

jelutz77 commented 4 months ago

I was able to get my mod settings updated by using ftp to transfer the mod-settings.json file from my client into the server’s config directory.

Mattie112 commented 4 months ago

Yes that should work if I recall correctly!