It does work forever. Sure, there is no absolute guarantee that the client doesn't have a builtin expiration date of several years, but it seems very unlikely.
I've just tested an old steam client backup with some game backups of the same date from November 2019 (nearly
2 years ago) on another offline non-steam pc. To make the situation more diffcult, the backup is from a windows 7 machine while the test pc has windows 10.
Result: It works perfectly.
I've also tested a recent client backup with old game backups and they work perfectly too. So the client obviously doesn't check the game's "age". Though I would definitely advise to backup the client often, since you never know if Valve will change sth. in the future.
Btw. here are some important tips, that are not covered in the initial post:
-to disable the client's check for updates on start, which can prevent offline mode from working, create a "steam.cfg" in the Steam folder and add the following lines
BootStrapperInhibitAll=enable
BootStrapperForceSelfUpdate=disable
-to start in offline mode automatically and skip the annoying offline mode warning, add/change the following lines in your "config/loginusers.vdf"
"WantsOfflineMode" = "1"
"SkipOfflineModeWarning" = "1"
-the client backup should not only include the Steam folder but also the registry entries steam creates:
HKCU\Software\Valve
HKLM\SOFTWARE\Wow6432Node\Valve
-> those contain login information and info about the redistributables (directx etc) needed for some games
-> restoring these allows the automatic login into offline mode and skips the redistributables installation (off course make sure that everything is installed beforehand)
-if you (accidently) change the activation of a dlc or the game language for a game in the client, it wants to update the game online. You can revert this if you restore the game's appmanifest*.acf from backup and/or make sure that "StateFlags" is set to "4" in the appmanifest file. This tells the client that the game is fully downloaded and doesn't need to be updated.
PS: If there is interest I will also post my client blackup and start scripts that automates these things.
----------------------------------------------------------------------------------------------
edit: corrected some info in the tips section
edit: as requested:
So here are the (simplified) batch scripts I'm using. Nothing fancy, but it gets the job done.
(for additional info, see the comments in the scripts) SteamBackup.cmd:
-uses 7z to zip the client without game data and exports Steam registry keys
-paths to Steam, Backupfolder and 7z must be set correctly in the configuration section
SteamStart.cmd:
-paths to Steam must be set correctly in the configuration section
-place
steam.cfg_offline, your
own modified
loginusers.vdf_offline and
loginusers.vdf_online into the folder where the script resides
-make a shortcut to SteamStart.cmd with "offline" or "online" (without quotation marks) as argument to start steam accordingly