Skip to content

v0.7.1.4

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Oct 01:11
· 8 commits to main since this release

Download

You play on Get this one file
Windows (Steam, game build 35924) TpF2Multiplayer-Launcher-Windows-Setup.exe -- install it, then Update & play
Linux / Steam Deck (the native game or Proton) TpF2Multiplayer-Launcher-Linux.AppImage -- make it executable, run it, then Update & play

The launcher installs this version and keeps it up to date. Or install this version directly:

You play on Get this one file
Windows TpF2Multiplayer.msi -- close the game, run it
Linux / Steam Deck, the Windows game under Proton install_proton.sh -- run it with sh; it fetches the rest itself
Linux, the native game tpf2mp-linux-0.7.1.4-native.run -- close the game, bash tpf2mp-linux-0.7.1.4-native.run
A dedicated server on Linux or a VPS TpF2Multiplayer-Server-Linux.tar.gz -- unpack it, sudo sh tpf2mp-server/setup_vps.sh; the guide: HOSTING_A_SERVER.md. A Windows server is the MSI above

The files zip, the Linux .tar.gz, install_proton.py and the checksums are in the update files. The two Source code archives at the bottom are the repository, not the mod. Everyone in a session needs the same version.

0.7.1.4 - big maps load past 99%, safer lobbies, and fixes for joiners

Update based on 0.7.1.3, for Windows, Proton and the native Linux game. Everyone in a session, including the dedicated server, must update to 0.7.1.4.

Loading a world

  • A big-map host no longer sits at "loading world 99%" for minutes. The big-map terrain cache waits for the first game frame before it stops treating the world as loading, and the multiplayer DLL never told it about that frame. On a PC short of memory every terrain tile then waited up to 2 s, for 3 minutes: the host drew 2 frames a second at 99% while everyone else waited. The cache now sees the game start a few seconds after the load ends.

Joining a running game

  • A joiner's catch-up builds what the others built. Construction, fence and terrain commands replayed from the history kept a tag inside their parameters, so a joiner refused them all and its world went its own way from the moment it loaded.
  • A planned rail-over-rail crossing gets its junction on every player's game, the builder's included.
  • Vehicles bought after a sale bind again. The game reuses a sold vehicle's id; the next vehicle bought into it was skipped, and its line, sale and name commands failed.
  • Lines with waypoints match their key within 2 m, and replacing a stop keeps its alternatives.
  • The fallback for a live join that does not match loads the save it was sent, instead of ending in an error.

The lobby

  • The host reads and hashes the save off its main loop. A dedicated server short of memory stood 13 s reading a 372 MB save, and its joiners called it unreachable and left. Joiners also wait 30 s for a host now.
  • One malformed message no longer closes the lobby for everyone, and a message may have at most 8192 pieces.
  • A player renamed by the host keeps their letter, their TCP stream and their link.
  • A player name with a space no longer breaks the TCP backup link.
  • Security fixes: in a password session only a proven frame moves a peer's address; the public server list no longer lets anyone delist or take over other lobbies; long join codes no longer crash the game; broken mod zips no longer fail the whole mod transfer.

Installer

  • A refused game folder says why. Next on the folder page did nothing and showed nothing (not Steam build 35924, the GOG build, a foreign alut.dll). The warning about mods with their own DLLs is now a page of its own, and is shown.

What's Changed

  • Housekeeping: lint, dead code, docs, Linux build warnings by @tearded in #17
  • Review fixes: untrusted input, sync and replication bugs by @tearded in #16
  • installer: the mod-DLL warning is a wizard page, and it is shown by @tearded in #19

Full Changelog: 0.7.1.3...v0.7.1.4