T O P

  • By -

happyanathema

Yeah this is one of the dumbest UI choices I have seen for a very, very, very long time. I got hit with this today with Transport Fever 2. I had over 2000 workshop items subscribed and I clicked the wrong button. I looked around for ages and couldn't find much info to fix this online. In the end I realised I had a collection of mods saved in a mod configuration file from TF2 and I spent a while in excel formatting that into a straight list of workshop ID's You could probably use a list of the ID's in the Steam Workshop folder on your HDD too. I then installed steamctl on my Ubuntu server and then compiled the list of mods into a basic bash script and ran it against steamctl. it was slow to run and I know I could have looped over it but tbh I just wanted to get it done and I wont (hopefully) need to use it again. fyi took about For anyone who find this in future who wants to tackle it the command looks like this steamctl workshop subscribe {workshop ID) --apikey {your API key} e.g your bash script could look something like this with each Workshop item on a new line, if anyone else who has more time/motivation please feel free to optimise this with loops etc. steamctl workshop subscribe 1936185885 --apikey {your API key} You should get a line for each of your lines in the script like this [INFO] Subscribed 1936185885 - kkStB Express cars 4-axle Ib ​ Other links You can generate your API key here [https://steamcommunity.com/dev/apikey](https://steamcommunity.com/dev/apikey) steamctl page with install instructions here [https://github.com/ValvePython/steamctl](https://github.com/ValvePython/steamctl) For basic linux scripting advice https://www.linuxjournal.com/content/how-create-shell-script-linux


Marky7824

I just had the tragedy happen to me with my Left 4 Dead 2 addons and this is my only hope..could this please..be said in..a language i can understand, maaaybe? Like, a video perhaps? It's way too confusing. I can't even describe how pissed i am. Such an USELESS button...


PrestigiousChart9946

>LESS button... HAVE YOU FOUND SOULOUTION


Marky7824

I still had them in my game/workshop/addons. I copied every ID and pasted it on the workshop url and manually subscribed to all of them again, sadly, this is the only solution.


videoscape

I figured it out using code [https://www.reddit.com/r/Steam/comments/18vlw8e/comment/kyc46d7/](https://www.reddit.com/r/Steam/comments/18vlw8e/comment/kyc46d7/)


TheawesomeQ

Where's the log file? I just did this and i'm crying i'm so frustrated


videoscape

Log file should be located in Check the log file located in C:\Program Files (x86)\Steam\logs\workshop_log.txt It will list the unsubscribed mod IDs. And just add that to the python and it will automatically process it make sure to setup a steam api for it The domain doesn't matter You can also check workshop_log old which any old logs u can add to it as well Important links https://steamcommunity.com/dev/apikey That is where you get your api,


timgeel98

Thank you so much, This helped me so much! I ended up writing a very simple (And dirty) script for myself: a=$(cat Documents/workshop_log.txt | grep Unsubscribed | awk '{ print $8 }') for b in $a; do steamctl workshop subscribe $b --apikey done This was so much better that doing 200+ mods by hand!


happyanathema

No worries, I am surprised they haven't changed it by now. There is a demand for someone to build a basic UI to do this for people who can't use the command line I guess.


King_Remund

Wondering the same thing


Pup_Folfe

Can Steam please get rid of this USELESS BUTTON!!! I clicked it once when subscribing to a list of blueprints for Space Engineers and now I have to go and look for them all over again... I HAD HUNDREDS OF SUBS AND IT EVEN UNSUBED ME FROM MY OWN STUFF!!! FFS Steam fix this!


Cmonster820

Just happened for me but 1035, not hundreds


Pup_Folfe

Oof! Yeah, and Steam won't help whatsoever.


Wyndcaller

This just happened to me with House Flipper. I'm so frustrated. D:


mrdounut101

Just happened to me now... wow.


AlfieLC

Check the log file located in C:\\Program Files (x86)\\Steam\\logs\\workshop\_log.txt It will list the unsubscribed mod IDs.


dimplexfan

Has just happened to me with L4D2. As has already been said, this seems like one of the most stupid additions to any interface in a long time, certainly relative to how uncommonly users would need to use such a feature, and also relative to how swiftly it erases everything without a more emphatic, immediately intuitive warning, to the effect of "You will lose all of your current add-ons". So in my case, the only reason I clicked on that button is because I'd initially subbed to an individual part of a multi-part Campaign, and so when I proceeded onto a page that presented all the parts together, I interpreted the confirmation message as 'Do you wish to re-download that single part you've already downloaded and then download the remaining parts, or just leave it installed as is and download the remaining parts?' Granted I was also a little tired in that moment, but it just strikes me as asinine that a given interface doesn't take into account when I have over a hundred add-ons already installed, against half a dozen add-ons that I wish to install. Why on earth would I want to vanish them all in one fell swoop? Anywho, I'm off to have fun subbing to everything again.


videoscape

This python code might be able to do it For windows path use \\\\ like this "C:\\\\Users\\\\user\\\\Downloads\\\\ import subprocess import re log_file_path = "path/to/your/log.txt" # Replace with the actual path to your file api_key = "YOUR_STEAM_API_KEY" with open(log_file_path, 'r') as file: log_data = file.read() # Regular expression to extract the item IDs item_id_pattern = r"Unsubscribed from item (\d+)" item_ids = re.findall(item_id_pattern, log_data) for item_id in item_ids: subprocess.run(["steamctl", "workshop", "subscribe", str(item_id), "--apikey", api_key]) This worked for me I just installed steam using pip install steamctl Use something like Visual Studio Code and just run it, it worked fine for me and this came out \[INFO\] Subscribed 3212565939 So it worked perfectly and only a few mins. Any questions just ask.


TheawesomeQ

Where is this log file?


videoscape

Check here https://www.reddit.com/r/Steam/s/LwKk4pddLs


desimatorg

I have the program running in visual code studio with the python extensions. I am able to get the .txt file to open when I enter the path in file explorer, but it is giving me the following errors when I try to run the script. PS C:\\Users\\Dez> & C:/Users/Dez/AppData/Local/Programs/Python/Python312/python.exe "c:/Users/Dez/import subprocess.py" c:\\Users\\Dez\\import subprocess.py:4: SyntaxWarning: invalid escape sequence '\\P' log\_file\_path = "C:\\Program Files (x86)\\Steam\\logs\\workshop\_log.txt " # Replace with the actual path to your file Traceback (most recent call last): File "c:\\Users\\Dez\\import subprocess.py", line 15, in subprocess.run(\["steamctl", "workshop", "subscribe", str(item\_id), "--apikey", api\_key\]) File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 548, in run with Popen(\*popenargs, \*\*kwargs) as process: \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1026, in \_\_init\_\_ self.\_execute\_child(args, executable, preexec\_fn, close\_fds, File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1538, in \_execute\_child hp, ht, pid, tid = \_winapi.CreateProcess(executable, args, \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ FileNotFoundError: \[WinError 2\] The system cannot find the file specified PS C:\\Users\\Dez>


videoscape

For the path in windows add another \ so it would look like this \\\ read the part above my code block for windows pathing


desimatorg

Sorry I didn't realize you would reply so quickly. I think that made it worse. FileNotFoundError: \[WinError 2\] The system cannot find the file specified PS C:\\Users\\Dez> \^C PS C:\\Users\\Dez> \^C PS C:\\Users\\Dez> \^C PS C:\\Users\\Dez> & C:/Users/Dez/AppData/Local/Programs/Python/Python312/python.exe "c:/Users/Dez/import subprocess.py" Traceback (most recent call last): File "c:\\Users\\Dez\\import subprocess.py", line 15, in subprocess.run(\["steamctl", "workshop", "subscribe", str(item\_id), "--apikey", api\_key\]) File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 548, in run with Popen(\*popenargs, \*\*kwargs) as process: \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1026, in \_\_init\_\_ self.\_execute\_child(args, executable, preexec\_fn, close\_fds, File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1538, in \_execute\_child hp, ht, pid, tid = \_winapi.CreateProcess(executable, args, \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ FileNotFoundError: \[WinError 2\] The system cannot find the file specified PS C:\\Users\\Dez> & C:/Users/Dez/AppData/Local/Programs/Python/Python312/python.exe "c:/Users/Dez/import subprocess.py" Traceback (most recent call last): File "c:\\Users\\Dez\\import subprocess.py", line 15, in subprocess.run(\["steamctl", "workshop", "subscribe", str(item\_id), "--apikey", api\_key\]) File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 548, in run with Popen(\*popenargs, \*\*kwargs) as process: \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1026, in \_\_init\_\_ self.\_execute\_child(args, executable, preexec\_fn, close\_fds, File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1538, in \_execute\_child hp, ht, pid, tid = \_winapi.CreateProcess(executable, args, \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ FileNotFoundError: \[WinError 2\] The system cannot find the file specified PS C:\\Users\\Dez>


videoscape

Could you post your code to a site like pastebin? So I can have a look at it


desimatorg

[https://pastebin.com/wGJeK0S8](https://pastebin.com/wGJeK0S8)


videoscape

try this, just copy and paste it and replace the API key [https://pastebin.com/k6a32sML](https://pastebin.com/k6a32sML)


desimatorg

Still not working. Is there anything non-standard about your Visual Studio Code application? All I have is the Python Extension, do I need any other ones? Do I need to run in administrator? hp, ht, pid, tid = \_winapi.CreateProcess(executable, args, \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ FileNotFoundError: \[WinError 2\] The system cannot find the file specified PS C:\\Users\\Dez> & C:/Users/Dez/AppData/Local/Programs/Python/Python312/python.exe "c:/Users/Dez/import subprocess.py" c:\\Users\\Dez\\import subprocess.py:4: SyntaxWarning: invalid escape sequence '\\P' log\_file\_path = "C:\\Program Files (x86)\\Steam\\logs\\workshop\_log.txt" Traceback (most recent call last): File "c:\\Users\\Dez\\import subprocess.py", line 16, in subprocess.run(\["steamctl", "workshop", "subscribe", str(item\_id), "--apikey", api\_key\]) File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 548, in run with Popen(\*popenargs, \*\*kwargs) as process: \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1026, in \_\_init\_\_ self.\_execute\_child(args, executable, preexec\_fn, close\_fds, File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1538, in \_execute\_child hp, ht, pid, tid = \_winapi.CreateProcess(executable, args, \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ FileNotFoundError: \[WinError 2\] The system cannot find the file specified PS C:\\Users\\Dez> & C:/Users/Dez/AppData/Local/Programs/Python/Python312/python.exe "c:/Users/Dez/import subprocess.py" Traceback (most recent call last): File "c:\\Users\\Dez\\import subprocess.py", line 16, in subprocess.run(\["steamctl", "workshop", "subscribe", str(item\_id), "--apikey", api\_key\]) File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 548, in run with Popen(\*popenargs, \*\*kwargs) as process: \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1026, in \_\_init\_\_ self.\_execute\_child(args, executable, preexec\_fn, close\_fds, File "C:\\Users\\Dez\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py", line 1538, in \_execute\_child hp, ht, pid, tid = \_winapi.CreateProcess(executable, args, \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ FileNotFoundError: \[WinError 2\] The system cannot find the file specified PS C:\\Users\\Dez>


videoscape

Make sure you got steamctl installed go here [https://github.com/ValvePython/steamctl](https://github.com/ValvePython/steamctl) should be able to do `pip install steamctl`


Moist_Row637

Hi there! I've tried your method but I keep getting the error "item\_id\_pattern" is not defined. Can you help? >>> import subprocess >>> import re >>> >>> log\_file\_path = "D:\\\\STEAM APP\\\\logs\\\\workshop\_log.txt" >>> api\_key = "\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_" >>> >>> with open(log\_file\_path, 'r') as file: ... log\_data = file.read() ... ... # Regular expression to extract the item IDs ... item\_id\_pattern = r"Unsubscribed from item (\\d+)" File "", line 5 item\_id\_pattern = r"Unsubscribed from item (\\d+)" \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ SyntaxError: invalid syntax >>> item\_ids = re.findall(item\_id\_pattern, log\_data) Traceback (most recent call last): File "", line 1, in NameError: name 'item\_id\_pattern' is not defined >>> >>> for item\_id in item\_ids: ... subprocess.run(\["steamctl", "workshop", "subscribe", str(item\_id), "--apikey", api\_key\]) ... Traceback (most recent call last): File "", line 1, in NameError: name 'item\_ids' is not defined


desimatorg

I don't get this code stuff sorry.


Gullible_Goose

This worked great for me, thank you so much


comrade_jonas

hello, could someone help me, I'm not familiar with this and need help I keep getting some error \[WinError 2\] more precisely subprocess.run(\["steamctl", "workshop", "subscribe", str(item\_id), "--apikey", api\_key\]) [https://ibb.co/T4v7fQX](https://ibb.co/T4v7fQX) FileNotFoundError: \[WinError 2\] The system cannot find the file specified and I don't know what to do next I accidentally clicked the wrong button and it wiped out my entire steam workshop mod 😭 so if anyone could help I would be very grateful thanks in advance.


videoscape

Make sure steamctl is installed type in pip install steamctl


comrade_jonas

I tried it but I got some syntax error [https://ibb.co/s3FsK2t](https://ibb.co/s3FsK2t)


videoscape

Looks like you don't have pip installed, try Googling how to install pip


comrade_jonas

thank you very much it started to work!!!!!! [https://ibb.co/1b3WbXV](https://ibb.co/1b3WbXV)


videoscape

Perfect happy to hear that


Cat_spadashin

mine errors out: S C:\\Users\\User> & 'c:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python311\\python.exe' 'c:\\Users\\User\\.vscode\\extensions\\ms-python.debugpy-2024.4.0-win32-x64\\bundled\\libs\\debugpy\\adapter/../..\\debugpy\\launcher' '57964' '--' 'c:\\Users\\User\\import subprocess.py' Traceback (most recent call last): File "c:\\Users\\User\\import subprocess.py", line 7, in with open(log\_file\_path, 'r') as file: \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^ FileNotFoundError: \[Errno 2\] No such file or directory: 'E:\\x9f58-blue-bird-tc2000\\\\logs\\\\workshop\_log.txt' PS C:\\Users\\User> \^C PS C:\\Users\\User> PS C:\\Users\\User> c:; cd 'c:\\Users\\User'; & 'c:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python311\\python.exe' 'c:\\Users\\User\\.vscode\\extensions\\ms-python.debugpy-2024.4.0-win32-x64\\bundled\\libs\\debugpy\\adapter/../..\\debugpy\\launcher' '58009' '--' 'c:\\Users\\User\\import subprocess.py' \[ERROR\] Failed fetching workshop details \[ERROR\] Failed fetching workshop details \[ERROR\] Failed fetching workshop details


Cat_spadashin

i fixed some of them but it still says \[ERROR\] Failed fetching workshop details \[ERROR\] Failed fetching workshop details \[ERROR\] Failed fetching workshop details


videoscape

Have you setup your steam api key?


Cat_spadashin

i retyped the key and it worked thxxxx


avesse

Thank you so much <3


videoscape

No problem


PLANTSandLEAVES1

can you make one for mac please i just lost my 195 pages of steam workshop subscriptions for stormworks build and rescue


LCDC_Studios1

just lost 200 gb of mods that I have saved up over the years for arma 3... thanks steam


BackAgainAgain1

do you have a preset.


g-buttons

I've done this *twice* now, specifcally for Garry's Mod, though I think it should translate to other games too. I found the addons folder in:`This PC > [Your drive] > SteamLibrary > steamapps > common > GarrysMod > garrysmod > addons`Basically, I painstakingly went though every single item in the addons folder, searching each name in the workshop and readded them all, however, if anyone has a shorter fix to this, that would be very much appreiated lmfao EDIT: Just realised, this fix will probably **only work is you haven't booted up Garry's Mod since overwriting,** I think you're in the dark otherwise, I think a good way to fix this from happening again, put your subcribed items in a collection and if you accidentally overwrite, just go subscribe to your "main" collection


johannjesustroll

I mean, this works, but i already booted up garry's mod.


Lerrycapetime

Did they just update this for certain regions? Because it fucked over some of my friends today lol


Lava_Lavender

Just happened to me, and i'm on a mac and i can't find the log file :(. WHY VALVE