source-sdk-2013 icon indicating copy to clipboard operation
source-sdk-2013 copied to clipboard

[TF2] fix: Client not updating workshop maps

Open Pandaptable opened this issue 6 months ago • 1 comments

Description

Currently the client waits for Steam to notice a pending update for workshop maps, during this entire time GetItemState will say the map is up-to-date. This even happens when the workshop map is manually fetched using SendQueryUGCRequest.

This issue exists also on dedicated servers and the old code already accounted for this issue, where the game always called DownloadItem, regardless of GetItemState saying the workshop map needed an update or not.

The result is that the dedicated server will update the workshop map but the client will not, resulting in a map mismatch and the client getting kicked.

This PR makes the dedicated server behavior also apply to the client, DownloadItem does an update check for us so no need to worry about double-downloading workshop maps, if there is no update nothing will be downloaded.

Pandaptable avatar Jun 03 '25 02:06 Pandaptable

This change seems to ignore the apparent bug for DownloadItem that is outlined in the comment: NOTE There is another bug where calling DownloadItem() on the *non-gameserver* api on a fully up to date item. If this bug was not fixed in Steam, this PR should not be merged as it's not a viable fix without that.

mastercoms avatar Dec 16 '25 09:12 mastercoms