1. Forts
  2. News

Forts News

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!

Cheers,
EWG

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

Happy Holidays from EarthWork Games!



G'day Forts Fans!

Well, it's been a long year, with a lot of bullets fired, and many a fort coming tumbling down. We hope you have enjoyed all the extra features and functionalty we have brought you, and all the great output from the modding community.

The EarthWork Games team will be taking a break for a couple of weeks to recharge. We have big plans for next year, but in the meantime we're bringing you the last fixes of the year, along with a sprinkle of festive spirit to the game...



Release 2018-12-23a

Add: button to download featured replays, instead of automatically at start
Add: video card model and driver version to log
Add: message box when uploads are still in progress on exit
Add: in-game message box to query player about desync report upload
Add: notification and progress bars when crash or desync uploads are in progress on exit

Optimise: don't calculate checksum twice when writing a replay keyframe

Fix: some players have a black screen on start
- Add a checkbox to enable refresh rate selection
- Add a message box the first time a display mode with frequency is set
Fix: crash in Node::AddToChecksum when team projectile types are not even
Fix: replay desync when placing ropes
Fix: BreakStructure can destroy nodes when close to the ground
Fix: translation not provided if mainmenu has no strings table for the current language
Fix: application VSync option is not used (was always on)
Fix: crash when pressing Edit with no map selected
Fix: disconnected close ranked matches are always given to Team1
Fix: fires not extinguished for victors in TDM
Fix: when all items in a HUD tab have been maxed out, an item in another tab can be selected
Fix: when a device is selected which can't be built, it's not possible to select structure
Fix: the lobby chat edit box can overflow
Fix: players can spam the chat, causing performance issues and disconnection for others
Fix: desync/crash when a player replaces a material adjacent to where another player is placing a device
Fix: weapons can fire after being disconnected due to latency
Fix: tick profiling is inaccurate
Fix: seams are visible in HUD background
Fix: desync files are not considered to be uploading during the 5s delay
Fix: hung workshop downloads cause a loop which spams log, network and CPU
Fix: chat history workshop download buttons sometimes reappear

Remove: obsolete colour depth display/selection from options screen

Happy Holidays!
EWG

FORTS - Update 1.15



G'day Forts fans! We're happy to announce a massive update to the game. We've been slogging away in the background making many improvements to the experience. A long list of fixes address common issues, and we've added some new features for modders to take advantage of.

Headline items:
  • Greatly improved performance
  • Fast initial battle loading
  • Multi-monitor support
  • Monitor refresh rate support
  • Overhauled windowed mode
  • Featured replays
  • In-game crash and desync reporting
  • Automatic deletion of old files


We'll be using the featured replays to highlight competitive or otherwise entertaining battles. New players are encouraged to watch these to get useful tips on how to up their game. If you want to submit a replay for consideration, contact us at the Official Forts Discord server.

As with any update there may be some teething issues. Let us know if you come across any problems. The Discord is the best way to talk to us, or post in the bugs discussion.

Special thanks go to Romerolagus, Ximsa, 42 scientist, BoberetoGaming, Joepocalypse, KingBenjai, Endo, and General Miau for their invaluable assistance in testing this update.

Build 2018-12-06a Changelist

Add: target monitor can be selected (primary by default)
Add: moveable, resizeable windowed mode
Add: preload textures in background to reduce initial load period
Add: refresh rate selection included in resolution list
Add: featured replays are downloaded automatically, with notification on main menu
Add: options to automatically delete old files (default to 4 weeks)
Add: allow reflection to be modified on a material per projectile basis
Add: hide news items if the 'start campaign to learn' tip is visible to avoid overwhelming new players
Add: DamageMultiplier applies between projectiles in air-to-air collisions
Add: resume button to campaign instant replay
Add: a weapon script ProjectileAngle function for predictable angle offsets
Add: Replace WeaponRequiresSpotter and WeaponIsSpotter with dynamic queries to automatically handle new weapons
Add: SmallArmsPrioritiesExclude and HeavyArmsPrioritiesExclude to prevent some weapons being targeted by AI (e.g. sandbags and derrick)
Add: save window position into settings (save config on exit to retain this)
Add: checkbox to center window on start
Add: non-sequential tab stops can be used to support lists
Add: invisible and disabled tab stops are skipped to support duplicate ids on different tabs
Add: tab stops for resolution, key binding, language and keyboard list items
Add: allow difficulty levels to be set in the mission script:
AIDifficulty = { Easy = 0.1, Normal = 0.4, Hard = 0.8 }
Add: HUD buttons to force weapon placement left, right, or auto
Add: update Fmod version to 1.10.09
Add: DeflectedByTerrain for projectiles and beams to reflect off terrain
affected by VariationFactor and SpeedLossFactor
Add: allow a projectile to execute an action on reflecting from a specific terrain/material surface
if the reflection fails then return a value and perform damage and impact effect instead
Add: allow beams and projectiles to trigger EMP on intersecting doors and devices, including when EMP radius is 0
Add: support EMP beams disabling missile guidance
Add: support projectiles having a preferred up (FlipSpriteFacingLeft flag)
Add: allow projectiles to survive under the world bounds
Add: crash files can be send to devs from within the game
Add: dynamic main menu for news, links and featured YouTube videos
Add: enable edge scrolling in windowed mode when Direct Input is in use
Add: lasers blocked by shields open doors at the reflected angle
Add: hotkeys for weapon facing (Ctrl + Q, Ctrl + W, Ctrl + E)
Add: performance stats after game: fps, tick time, physics time, AI time, checksum time
Visibility can be controlled with Performance.LogLevel in db/constants.lua
Add: ReflectDamage factor to allow projectiles to impart damage to structure upon reflection
Add: uncomplied commander.lua scripts to ease modding of commanders
Add: Mods.VerboseLogging constant to allow modders to see what files are being searched for
Add: AI.DebugLevel to control when AI shows config and detailed logging from constants
Add: Performance.LogLevel to control where to log profiling to
Add: AntiAir damage multiplier for beams to adjust damage applied to projectiles

Balance: increase Firebeam aiming arc
Balance: reduce build cost of 20mm from 650/4500 to 600/4000
Balance: some additions and reordering of AI targeting priorities
Balance: decrease stddev of cannon by 30% and remove drag of cannon and 20mm cannon
Balance: remove splash damage of repair station
Balance: reduce running cost of repair station by 20% (20 -> 16)

Optimise: calculation of min and max fire radius
Optimise: remove temporary string parameters from GetProjectileBlueprint*
Optimise: remove redundant GetType calls from Device::GetCentre*
Optimise: PhysicsManager::IntersectBeam only needs to do PointInGround test for first segment
Optimise: Vector3D::DistTo and DistSq ignores z coordinates
Optimise: TerrainManager::PointInGroundGroup does circle test first
Optimise: don't update bracing plate sprite in PhysicsManager::DrawNode
Optimise: coarse bounding circle test for projectiles intersecting with beams
Optimise: cache AimingDisruptionMax rule for Weapon::GetMinFireRadius and Weapon::GetMaxFireRadius
Optimise: only preload ambient environment effect on World start
Optimise: DeviceEditor::AimSlave avoids unnecessary call to IsAbleToFace if the slave is facing the same direction as master
Optimise: AimWeapon doesn't recalculate can face left/right if noPanning is true
Optimise: Weapon::FindDoor operates progressively, storing state in FindDoor
Optimise: Weapon::FindDoor uses LinkFilter team to limit the search
Optimise: added mMaterialReplacement to avoid searching for standin link to discover new material in PhysicsManager::DrawCladding
Optimise: removed checksum on fire segment temperature
Optimise: reduce outer loop of ReactorsClaimForts::Apply when looking for ground device needing conversion
Optimise: combine search for specific team and any closest device in ReactorsClaimForts::WithinRangeOfMarkedGroundDevice
Optimise: avoid recalculating up and right vectors in SpriteEdging::Draw
Optimise: DeviceManager::PreviewStructureOverlapInBackground and PhysicsManager::RecessOverlappingStructure intersects with other teams
Optimise: build lists for each structure/material to streamline rendering of struts, cladding and fire
Optimise: CladFoundations enumerates links of fromNode instead of testing every node
Optimise: remove unnecessary calls to UpdateCladBothSides
Optimise: DeviceManager::AddDeviceObstructions only needs to add edges facing the source
Optimise: TerrainManager::AddTerrainObstructions only needs to add edges facing the source
Optimise: PhysicsManager::GetVisibleAngles uses mPrimary flag instead of mVisited to add struts only once
Optimise: PhysicsManager::AddObstruction exits early if there are no angle brackets
Optimise: DeviceManager::DeviceInGround detects intersection with specific ground block before testing it in detail
Optimise: remove Device::mPositionGraphical from simple data area
Optimise: TerrainManager::DoesCollisionBoxIntersectWithGround remove PointInGround center point test
Optimise: TerrainManager::DoesLineSegIntersectWithGround remove PointInGroundGroup test
Optimise: bake IsLineSegOutsideExtents epsilon addition into extents, and pass in block reference
Optimise: bake static ground filling and edging into display lists
Optimise: don't calculate teamIndex in DeviceManager::DrawDevices unless necessary
Optimise: build lists of fixed and dynamic nodes, and use in DrawNodes to simplify inner loop
Optimise: minor improvements to DrawNodes and DrawNode
Optimise: minor improvement to DrawCladding
Optimise: spotters in Weapon::UpdateSpotter() aren't updated for AI or when spotter efficiency is 100% already
Optimise: multi-threaded physics, structures and projectile updates are dispatched to cores as work completes
Optimise: move mMicroStepForce into complex data, as it doesn't need to be serialised
Optimise: move projectile oversamples into the inner loop to reduce cache misses
Optimise: remove over sampling from projectile physics
Optimise: remove mGravity from PNode, no longer necessary
Optimise: UpdateTemporaryBraces uses HasRealLinks instead of RealLinkCount
Optimise: UpdateCladBothSides can use mPrimary flag instead of clearing/setting visited flag
Optimise: PaintStructures and UpdateStructureState can be called after AI update to avoid extra call to UpdateStructureStruts
Optimise: PhysicsManager::UpdateLinkState and UpdateDoors can use mPrimary flag instead of mVisited
Optimise: reduce the number of ray casts from missiles to turn
Optimise: PhysicsManager::DrawLink doesn't need to look up native material in most cases
Optimise: calculate checksum progressively (except first one to quickly flag data desyncs)
Optimise: use Hash instead PrimeHash for game state checksum
Optimise: SnapLink can use structure bounds to disregard many links
Optimise: SnapLink tests platform angle before PassesLinkFilter for faster device placement testing
Optimise: SnapToNode uses circle/rectangle test against structures
Optimise: use MarkStructureBreadthFirst for marking structures instead of DFS MarkStructure
Optimise: MarkStructureBreadthFirst can defer search for parallel link
Optimise: MarkStructureBreadthFirst can avoid calls to GetAttachedDevice
Optimise: FindDevicePlatform can reject nodes that aren't of the correct team
Optimise: FindDevicePlatform doesn't need to use GetAttachedDevice
Optimise: SnapDevices reject non-matching teams early
Optimise: UpdateNodeMass caches table pointers, defers getting parallel link until necessary uses HasRealLinks
Optimise: DumpWorld drag and door state

Fix: AI getting stuck on some missions: 205, 208, 305 (remapped nodes)
Fix: Some campaign mission replays desync (removed ropes)
Fix: Escape then resume during campaign replay desyncs
Fix: pressing esc doesn't bring up the pause menu during intro cutscene
Fix: Hurricane build speed nerf not applied to weapons
Fix: Player's faction is incorrect in campaign third part
Fix: time limited games don't show the duration exactly when timed out (4 seconds short)
Fix: extrusion tip shows frequently when building rope
Fix: teams can get out of sync
Fix: player can be ready on return if they were toggling ready before start
Fix: changing team just before joining can cause a crash
Fix: Hurricane, Firebird and Warthog weapon mods not applied correctly
Fix: unnecessary init.dat missing error
Fix: standalone device costs are out (ap sniper, swarm)
Fix: going to map selection screen while host starts game breaks loading
Fix: client can rejoin when host quits, and gets stuck waiting
Fix: don't execute UpdateWeaponCursorScaling when using windows mouse
Fix: UpdateAutofire uses different angles to open doors and fire
Fix: crash when colliding non-projectile nodes
Fix: target painting inconsistent when cursor is in front of and behind the terrain
Fix: missiles can target own structure and devices if the last chance spotter targets them
Fix: paint target fights when two players are trying to use the same spotter
Fix: don't allow allied spotters to be used to paint targets in TDM
Fix: some console logging is hidden at start
Fix: terrain join command doesn't work
Fix: weapons make hurt effect and break out of repair when hit by a zero-damage projectile
Fix: main menu in 4:3 aspect ratios is not centered vertically
Fix: mousewheel zooms view when cursor is outside of window
Fix: cursor doesn't slow down when inside an aiming arc
Fix: two cursors show at top of window
Fix: Canyon background cloud tiles clipped in 4:3 aspect ratios
Fix: some screen resolutions missing due to frequency filtering
Fix: enumerate screen resolutions for current monitor
Fix: campaign screens not centered vertically (4:3)
Fix: Swap mouse buttons, LMB + RMB to repair, lift RMB, then LMB -> stuck in pan mode
Fix: host can resume finished game after they have paused, increasing chance of problems
Fix: crash when mission scripts List value is invalid (now shows error)
Fix: always enable pause menu when showing result, and prevent disabling afterwards
Fix: mTrailEffect disappears if projectile velocity is zero
Fix: a laser won't reflect off the same shield twice
Fix: memory leak in Monitor::Update (clobbered std::string)
Fix: secondary beam damage vs materials is not modified
Fix: client is able to hide pause menu if they bring it up before the host
Fix: config not saved after dismissing the 'start campaign to learn' tip on main menu
Fix: add extra slots to the lobby to compensate for Steam leaking slots
Fix: lobby.dat can be deleted while network connectivity is lost
Fix: crash in DeviceManager::CanTypesBeGrouped when types are invalid
Fix: lobby is not left before clearing in Multiplayer::OnSteamServersDisconnected
Fix: CompositeSprite & operator= was not performing a deep copy of mRoot Node
Fix: ProjectileParams setup and use can corrupt CompositeSprite
Fix: Explosion::SparksEffect::Update strcat_s could crash if string was too long
Fix: DetonateOnExpiry team passed to SpawnEffect is invalid, causes crash
Fix: DetonateOnExpiry does not have inter-frame precision
Fix: Esc doesn't bring up menu when watching a replay in campaign
Fix: minigun damage multiplier vs bracing and laser overwritten by weapon_pack mod
Fix: AI can build through player's structure
Fix: reactor health must be rounded down in the stats panel
Fix: cycle HUD item effects and other sounds not triggering
Fix: crash when a weapon or projectile action can't find a projectile type
Fix: replay desyncs due to use of GetLocalTeamId in mission scripts for disabling weapons, etc.
Fix: weapon_pack projectile_list.lua shows error 'damagedmissile2 missing' if skirmish mod not active
Fix: if there are no replays the open replay in explorer button is still visible and crashes when pressed
Fix: weapon reloading and HUD item cycle sounds are audible when sounds muted
Fix: length of space character is incorrect around string substitutions
Fix: tip show, hid and lobby alert sounds played when fx is muted
Fix: AI FindTarget only falls back to structure targeting for heavy weapons
Fix: AlienFX is disabled the next time around if it fails to initialise
Fix: ai.lua exception when a new weapon is added and not included in some tables
Fix: new (unknown) devices which are not added to SmallArmsPriorities and HeavyArmsPriorities are not targeted by the AI
Fix: move data.AttackHintMaterialPreference into static data for keyframe efficiency
Fix: In DeviceEditor::AimSlave, if slave can't face either direction it doesn't aim at all
Fix: unbinding a key isn't permanent after restarting
Fix: duplicate actions (e.g. FireWeapon) give warnings for their key after rebinding one
Fix: duplicate actions warning colouring unecessarily applied (e.g. FireWeapon)
Fix: key navigation is enabled when binding the key
Fix: tab stop is centered on the control, not the bottom left
Fix: Weapon::FindDoor only finds doors at weapon's horizontal angle
Fix: door/background preview glitches briefly when cycling weapon previews in place
Fix: ApplyMod doesn't allow mods of mods to mod original files if the file wasn't found in the mod
E.g. to mod new weapons for a commander
Use path such as mods\sandbags_large\mods\commander-bpo-scattershot\mods\sandbags_large\devices\sandbags_large.lua
Fix: Negative mass devices cause instability when linking
Fix: AI can connect to neutral joints that are falling, preventing further progress
Fix: step/long forts have ropes that fail to connect on Wingman 4v4
Fix: script exception when creating a flaming version of a projectile with WeaponDamageBonus not set
Fix: temporarily braced nodes can float indefinitely if they are attached to a node deleted by PhysicsManager::DeleteNode
Fix: shrapnel can penetrate terrain at close range to flak detonation
Fix: can't build neutral structure close to player teams in map editor
Fix: map editor node preview doesn't obey ownership and support rules when nothing selected
Fix: Different players, including AI, can connect to a neutral structure at the same time as player
Fix: some foundation cladding is missing
Fix: foundation cladding can cross from one side of a tunnel to the other
Fix: temp braced node left floating after break
Fix: remove debug message from Warthog
Fix: Sleep(8) in Main::Execute is unnecessary and can reduce performance
Fix: classic forts are being selected, matchAllForts was true
Fix: valid TDM forts are being missed
Fix: AI-TDM test doesn't run with TDM teams on side 2
Fix: missing sprite console error; load ui arrow sprites before initialising the console
Fix: extrusion can snap to the same node, causing a node to link to itself
Fix: being out of focus when the game starts may freeze the game and cause replays to freeze during seeking
Fix: AI closes doors on weapons too soon
Fix: invalid enum passed to texture mag filter
Fix: negative values passed to scissor test
Fix: Debug object could possible enter critical section and never leave it
Fix: crash or physics explosion when loading out of date campaign fgs
Fix: crash or physics explosion when pasting out of date structure clipboard
Fix: beams don't respect the DeflectedByShield flag
Fix: disabled doors make open/close sounds
Fix: some out of date maps cause errors for using dofile
Fix: damaging an ignited missile or igniting a damaged missile extends its lifetime
add KeepLifespan flag to limit created projectiles' lifespan to that of their parent
Fix: screen shaking with world extents that are wider than they are tall
Fix: slaves on sloping platforms have incorrect aim when refired
Fix: Workshop mods can be of different versions, causing desyncs
Fix: Workshop item downloads can get stuck
Fix: replacing a device platform with armour attempts to use backbracing
Fix: visible angles drawn out the back of a weapon when facing wrong direction
Fix: visible angles are not drawn through existing doors when previewing a weapon
Fix: laser is not blocked by self when reflected
Fix: laser shoots through self when reflected
Fix: explore replay file button visible without a selection
Fix: mission 104 doesn't have terrain skirt on the left side
Fix: spelling of amendment in Black Gold campaign
Fix: mortar power text shrinks relative to aiming arc when zoomed out
Fix: Mission completion achievement can fail to be awarded
Fix: Mission 308 “Hydra” able to get “top or bottom” fort achievement by destroying middle fort
Fix: fog and line width OpenGL errors
Fix: tab stops/list key navigation broken on options screen key ListBoxes
Fix: list key navigation doesn't support two simultaneously visible ListBoxes
Fix: key navigation in editor menu, replay select, map select, and multiselect
Fix: strut replacement can be used to overlap struts sharing a joint
Fix: world dump of ropes shows link progress as inf
Fix: preloading textures to different degrees causes desyncs
Fix: Catacombs has blank terrain surfaces
Fix: solar panel splits in half at full length
Fix: crash if there is no impact effect for projectile
Fix: shield states get out of sync when an emp hits when in warmup
Fix: when a weapon recesses a FG strut, the next time it's replaced the strut is permeable to projectiles
Fix: letterbox shows in replay of resumed linear missions
Fix: replacing the material starting struts allows projectiles to pass and shows holes

Remove: map editor Copy tab (collapsed into Edit tab)
Remove: various console spam

Release 2018-12-12a hotfix Changelist

Add: RefreshRateSelection to settings.lua to allow disabling of refresh rate feature
Fix: crash on startup for some video cards (glGenerateMipmaps missing)
Fix: some players appear to have their refresh rate incorrectly selected
Fix: desync when igniting projectiles with firebeam
Fix: material gets replaced when selecting adjacent nodes
Fix: shield background doesn't show during construction or destruction
Fix: infinite loop when deleting the middle node of a three node structure in the editor
Fix: infinite loop when deleting a node connected to another node in editor, both temp-braced
Fix: if a weapon becomes neutral autofire will continue to work, without costing resources
Fix: swarm missile can be reloaded instantly by disconnecting it mid-launch
Fix: HUD items sometimes move such that the selected item isn't visible
Fix: weapon player name text too small or not visible
Fix: start sound cutting out sometimes
Fix: TDM fort ownership indicator effects can get out of sync
Fix: A Workshop mod can't mod other Workshop mods, including for specific commanders
Fix: scroll speed of HUD item list is too slow
Fix: releasing the HUD item list scroll left/right buttons does not stop the scrolling
Fix: all mods are unsubscribed on Linux/Proton
Fix: shield can be turned on near instantly by deleting then undoing
Fix: spawning game_start.lua and tdm_highlight.lua on the first frame can cause timing issues

FORTS - HOTFIX 2018-09-17a

G'day Forts fans! We've become aware of a cheat being used to gain an advantage over other players. This update will now cause a Data desync if this is used, or other modifications are made to your local data files. If you experience a Data desync immediately upon entering a multiplayer battle, follow this procedure:

1) Right click on Forts in Steam
2) Select properties, then go to the local files tab
3) Select Verify integrity of game files

Any changes to your files will be reverted.

Note: this will not remove files that have been added. The game preloads all scripts in the effects folder, including those of active mods. So adding any will still cause a Data deysnc. If this happens, delete the extra scripts, or delete all scripts and then verify the game files to get a new, unpolluted copy. If you are still having trouble, delete the data folder and then verify, or re-install Forts.

HOTFIX 2018-09-17a
Add: DebugPixelFormat option to avoid DescribePixelFormat, potential cause of crash for a user
Balance: Firebeam penetrates at least 90 after armour (reduced from 120)
Optimise: only preload ambient environment effect on World start
Fix: scripts and images can be edited to expose hidden information (now causes Data desync)
Fix: link initial hitpoints not updated when backgrounding a strut
Fix: ExplosionCache::LoadExplosion adds effects even if they're already loaded
Fix: EMP is triggered when ignited by Firebeam
Fix: flaming warheads turn into damaged warheads when hit, not damaged flaming warheads
Fix: crash when sending files during a desync report

HOTFIX 2018-09-18a
Fix: some mods cause Data desyncs

FORTS Tournament XIII - and the winner is...


A huge congrats goes to our latest tournament winner Ximsa! It was an awesome tournament showing some wicked Forts skills. The final was particularly exciting. Here's the final results...

First: Ximsa
Second: Toulck
Third: Joepocalypse

The top 3 finalists also won a key to Airships: Conquer the Skies

The bracket can be viewed here.

The awesomely supportive Smash Gaming and
Project Incursus once again joined [DEV] Nozehed as co-hosts and you can watch the edited video of the tournament here...

https://youtu.be/QUWkRWdNvCw
Thanks for watching and hope to see you at the next FORTS Tournament!

EWG