Repository navigation
ModSync 0.1.0-rc2
Pre-releaseInstall on Steam Deck / Linux
Download ModSync-0.1.0rc2-x86_64.flatpak, then in Desktop Mode either
open it with Discover, or run:
flatpak install --user ModSync-0.1.0rc2-x86_64.flatpak
flatpak run io.github.skjiisa.ModSyncFull instructions, including the from-source route, are in the README.
Changes
Everything the first real desktop ↔ Steam Deck pass turned up. Pairing through
a desktop firewall, a receiving machine that syncs before it checks the game
version, SKSE installed from the Game card, and MO2 installs from the Flatpak.
Not yet exercised on the Deck itself: the join-then-auto-refresh flow and the
desktop-hosts pairing direction — this build is for that.
Fixed
-
Joining a vault no longer carries this machine's own game-version record into
it. Choosing an instance records the local runtime inmodsync-vault.json;
on a machine about to copy its mods from another one that file was newer than
the vault's and won Syncthing's conflict resolution, so the two machines could
end up disagreeing about the version the setup was built for. -
"Install MO2…" works from the Flatpak. It refused with "protontricks is not
installed" because it looked inside the sandbox, and would then have run
MO2-LINT inside the sandbox, where Steam and Proton aren't visible. The
check now asks the host for what MO2-LINT really needs (pgrep,xdg-mime;
protontricks is bundled in MO2-LINT) and the install runs on the host. -
Reinstalling MO2 into a folder MO2-LINT still lists (after "Reset setup" and
deleting the instance) no longer fails with "An instance with the specified
directory already exists": ModSync has MO2-LINT forget the stale entry first.
A folder that really holds a registered instance is refused with a pointer
to "Use" instead, and a failed install no longer leaves an empty folder. -
Network pairing behind a firewall. The PIN handshake now listens on a fixed
port (TCP 21029, the same number as the UDP discovery port) instead of a
random one, so a single firewall rule covers pairing. Announcements also go
to each interface's own broadcast address, not only255.255.255.255.
Changed
- The setup wizard asks about sync before the game version, and a machine that
copies its mods from another one finishes there: it can't know which version
the mods need until they've arrived. The dashboard's Game card now re-checks
by itself when the vault's version record changes and when the folder first
finishes syncing, so the downgrade / SKSE advice appears without a manual
refresh. - Network pairing is harder to get lost in: the machine with the mods shows
the PIN large inside the Sync card (with the joiner's steps and its own
address) instead of only in the status line, and on the other machine
picking a listed machine opens a "Pair with …" dialog that asks for that
PIN. The first-run wizard numbers the same two steps.
Added
- On this machine detects a running
ufw/firewalldat launch and reads
whether ModSync's ports are allowed (firewall-cmd --query-port/
/etc/ufw/user.rules, falling back to the rules file's mtime where it isn't
readable). Allow in firewall… adds the rules throughpkexec; once
they're in, the same button becomes Remove firewall rules… so the ports
can be closed again after a sync or before uninstalling. Also
modsync firewall status | allow | remove. - After LAN pairing, Syncthing is told the peer's address directly instead of
relying on its own LAN discovery, so a firewalled machine only needs to dial
out. - The joiner can type the host's address when the scan finds nothing (the host
shows its address next to the PIN), and "No machines found" / "could not
reach" messages now say which ports to open. The README documents the ports. - Pairing logs what it announces, receives and connects to, so a bug report
can show where discovery broke.