FORTS – HOTFIX 2019-01-11a

G’day Forts fans, and happy new year! We’ve got another hotfix for you today. It should smooth out a few problems we’ve noticed since the December update.

One issue was that mass was being ignored for weapons and always defaulting to 40. To avoid disrupting already published mods, we have introduced a new variable called WeaponMass, which works only for weapons. Mod authors will have to set this instead of the usual Mass in order to change it from the default of 40. We’ve updated the built-in weapons, so the bigger weapons will put additional strain on the structure.

As always, if you notice any issues or have questions, please let us know.

Thanks for playing Forts!


Build 2019-01-11a Changelist

Add: WeaponMass variable which defaults to 40 if not set, and writes a warning to the log
Add: don’t allow access to multiplayer if sound fails to initialise to prevent desyncs
Add: show a message and open known issues guide if the software renderer is detected
Add: don’t record desync if any of the clients has a ping greater than a threshold (1 second)
Add: enable DebugDataDesync for every progressive checksum
Add: effects checksum to progressive data checksum debugging
Add: include host’s version of the full desync in the desync detected message to immediately set sync state and print it out
Add: rewrite host log when the full tick check has been received
Add: defer sending desync files until full tick check has been received by host
Add: log data desync detail to separate file on data desync
Add: separated material, device, projectile and effect data checksum debugging for granular desync diagnosis
Add: Replay.DataDesyncEnabled to allow disabling data desync detection in replays
Add: if there is no device/material description for a language default to English

Optimise: don’t take desync screenshot with console fully dropped
Optimise: don’t send current (simplified) world dump on desync (not useful)

Fix: entire effects cache has its checksum calculated when index wraps
Fix: effect scripts and samples are loaded from the drive root
Fix: crash in DeviceEditor::DrawLaserPainting when mCurrentDeviceTypeIndex is -1
Fix: access to freed memory when upgrading a device
Fix: sandbox replays desync when firing weapons (always allow when player is promiscuous)
Fix: DebugDataDesync is incomplete for the first frame
Fix: crash when logging Msg::set_weapon_target and device not found
Fix: replay data desync immediately after recording a sandbox game (ambient effect loading)
Fix: crash when client selects a map while the host disconnects while loading game or map select screen
Fix: Hide enemy fort during truce shows struts and cladding
Fix: FileSelect button to cycle previews doesn’t have an effect
Fix: desync when firing machine gun while AI is shooting it esp. when show cursors is on
Fix: lagging players don’t drop out before they desync
Fix: desync message is duplicated in the console
Fix: last two desync screenshots don’t add anything – now focus on team 1 and team 2 home screens
Fix: fog of war is enabled in desync screenshots
Fix: weapon mass has no effect (removed from simple data and now referenced directly from DeviceSlot)
Fix: crash when client tries to receive host desync files over LAN
Fix: desync files not always sent by the correct channel
Fix: sprite effect and sparks effect checksums were not being calculated
Fix: sparks effect keyframe was not having the complete data checksum done
Fix: randomised SpriteEffect mangular_deviation was incorrectly part of the data checksum
Fix: Data desync due to environment ambient effect inconsistently loaded
Fix: in some cases devices don’t add any mass to the structure
Fix: memory allocation failure when loading Japanese language in 4K resolution
Fix: set window position before showing the window to prevent it jumping
Fix: AI doesn’t build in some position on large multi-fort maps
Fix: crash when downloading replays while browsing another FileSelect screen
Fix: update mNextPhysicsFrameCutOff immediately after physics frame is updated – should reduce physics stalls
Fix: Escape during cutscene pause starts play instead of unpausing
Fix: Objective 2 Mission 6 description is incorrect in German. Should be “Schießen Sie AUF DIE Miniguns durch geschlossene Türen.”
Fix: nested quotation marks in Portuguese for Mission 401 cause string loading errors
Fix: multi-group select & delete removes the wrong blocks and can crash
Fix: materials crash if Node value is missing
Fix: looping audio when quitting motherlode victory or defeat movie
Fix: AlienFX checkbox doesn’t stay checked after restarting
Fix: 20mm rounds apply splash damage when reflected off Scattershot’s shields
Fix: ui/screens/strings.lua unnecessarily reloaded (including in mods) every time a page effect is triggered
Fix: localisation of debug readout in map editor
Fix: prefab forts are out of date
Fix: dynamic parsing of Map and user selected mod scripts (no need to restart when adding new scripts)
Fix: various minor code correctness issues
Fix: AI exception when creating link and PosB doesn’t exist in the action
Fix: extend client list box to the right to contain longest strings
Fix: reduce size of client list text to reduce obstruction during play
Fix: reduced precision of cursor position readout in map editor
Fix: FileSelect mProgress isn’t always initialised, causing crash when downloading
Fix: ModManager::ApplyMod assumes a file exists if it’s in mModFiles, causing a crash if it’s missing

Remove: holiday theming
Remove: requirement for workshop mods to have a “mod.lua” script

See this post on Steam