First off, many kudos to Kojillama for authoring this fantastic gem for MO2!
For those having trouble getting this collections download tool (MO2 plugin) to work, it seems Nexus has modified the relevant URL patterns.
The current Nexus URL pattern for Collections: https://www.nexusmods.com/games/{GAME_NAME}/collections/{COLLECTION_ID}
and the API to download: https://www.nexusmods.com/games/api/graphql
Editing two lines of python code in the MO2 plugin to match the new Nexus URL patterns gets this unique plugin back into full working state.
Kojillama, might you make these updates? I can post the code changes I have made but your official update would be great.
Also, asking the author if there is a means within this plugin code to limit the number of simultaneously active downloads? For me at least, there seems there may be intermittent download errors that seem to be exacerbated (or caused) by having a large number of downloads active at the same time. An appropriate hardcoded limit, or the means for the user to enter a "max number of active downloads" might be a worthy addition to this very useful plugin (if possible).
If all of the above lines are rewritten as instructed, you can then save the .py file and reboot Mod Organizer 2. Enter the Collection link, press Next, and the plugin should now work as intended. Enjoy!
I did this and I can get past the first screen where you put in the URL. But the next screen where you choose the revision is blank and there is nothing in the drop down. Is there another line that needs to be edited?
BioX853, thanks for posting your exact code changes. I had made the same/equivalent code changes and they were working... until just a few minutes ago! Has something new changed at Nexus? Now also your changes don't seem to be work (for me at least). Will update this post if I find out more. THANKS everyone!
The API endpoints is "https://api.nexusmods.com/v2/graphql". Check API reference at NexusMods GraphQL API Reference Replace API endpoints in line 70 from "https://next.nexusmods.com/api/graphql" to "https://api.nexusmods.com/v2/graphql".
Line 224 should be changed as described by Biox853 if you are pasting a WWW.NexusMods URL and not a Next.NexusMods path.
I've done all the fixes recommended in this thread and they all fail once i reach the "collection revision" selection. a pop up box shows up with the option to select the collection revision but the drop down selection doesn't open and pressing next just gives me this error.
[2025-03-26 17:45:33.888 W] {'errors': [{'message': 'Game not found', 'locations': [{'line': 1, 'column': 67}], 'path': ['collection'], 'extensions': {'code': 'NOT_FOUND', 'detail': 'Game not found'}}], 'data': None} [2025-03-26 17:46:49.834 E] Traceback (most recent call last): [2025-03-26 17:46:49.834 E] File "D:/MO2/plugins/NexusCollections.py", line 189, in next [2025-03-26 17:46:49.834 E] self.collectionRevision = int(self.revisionList.currentText().replace('Revision ', '').split(' (')[0]) [2025-03-26 17:46:49.835 E] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-03-26 17:46:49.835 E] ValueError: invalid literal for int() with base 10: ''
EDIT: ok so redragging it in the Mo2 plugins folder & restarted Mo2, now it showed up under the tools (puzzle piece) go figure Lol At first it wouldn't let me select a revision, it was just blank & clicking did nothing, then I remembered my collection was set to private, I made it listed public & now it works ha. So for ppl having trouble double check the py file is in the plugins folder under Mo2's directory & make sure your collection is set to public.
It looks like Nexus changed the URLs for collections, still works but you have to copy-paste the example URL on the mod page, then replace the "Blahblahblah" part with the string of letters for the collection you are looking to download.
Cheers for this. I was trying all sorts and getting frustrated, but this works.
If anyone is in the same boat as I was, the two changes are that the URL needs to start "https://next.nexus...", and that the ".com/games/collections..." bit needs to be stripped out.
I'm premium, logged in and I've applied all the fixes already mentioned below in this section, yet I have the same issue where I paste the link to a collection (eg https://www.nexusmods.com/games/skyrimspecialedition/collections/sklk3h ) and press next, but nothing happens.
Deep sigh.
EDIT: got it to work now. Apparently I had been copying some wrong stuff and forgot to double check. So yeah, read carefully guys and it can work.
So after putting in the URL and clicking Next, Nothing happens. Im trying to download Gate To Sovngarde collection and nothing happens. (Yes Im a Premium Member.)
[2025-04-08 19:55:33.840 E] File "C:/Modding/MO2/plugins/NexusCollections.py", line 189, in next [2025-04-08 19:55:33.841 E] self.collectionRevision = int(self.revisionList.currentText().replace('Revision ', '').split(' (')[0]) [2025-04-08 19:55:33.841 E] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-04-08 19:55:33.841 E] ValueError: invalid literal for int() with base 10: '' can anyone help with this?? trying to pick a revision version gives me this error
Thank you for this beautiful big beautiful plugin I LOVE YA WHOEVER YA ARE no homo. YOU ARE A BLESSING THANK YOU! THIS IS THE BEST PLUGIN OF ALL PLGUINS ITS A BEAUTIFUL PLUGIN OF PLUGINS THANK YOU SO MUCH!
196 comments
For those having trouble getting this collections download tool (MO2 plugin) to work, it seems Nexus has modified the relevant URL patterns.
The current Nexus URL pattern for Collections:
https://www.nexusmods.com/games/{GAME_NAME}/collections/{COLLECTION_ID}
and the API to download:
https://www.nexusmods.com/games/api/graphql
Editing two lines of python code in the MO2 plugin to match the new Nexus URL patterns gets this unique plugin back into full working state.
Kojillama, might you make these updates? I can post the code changes I have made but your official update would be great.
Also, asking the author if there is a means within this plugin code to limit the number of simultaneously active downloads? For me at least, there seems there may be intermittent download errors that seem to be exacerbated (or caused) by having a large number of downloads active at the same time. An appropriate hardcoded limit, or the means for the user to enter a "max number of active downloads" might be a worthy addition to this very useful plugin (if possible).
69. request = urllib.request.Request("https://www.nexusmods.com/games/api/graphql", data=json_data, headers=headers)
223. pattern = r"https://www.nexusmods.com/games/{GAME_NAME}/collections/{COLLECTION_ID}"
The tool still hangs at the window where you enter the collection URL. Did I not do this right?
In line 69/70, replace the quote "https://next.nexusmods.com/api/graphql"
TO:
"https://www.nexusmods.com/games/api/graphql"
Now, in line 223/224, replace the quote "next\.nexusmods\.com\/(.*?)\/collections\/(.*?)(?:\?.*)?$"
TO:
"nexusmods\.com\/games\/(.*?)\/collections\/(.*?)(?:\?.*)?$"
If all of the above lines are rewritten as instructed, you can then save the .py file and reboot Mod Organizer 2. Enter the Collection link, press Next, and the plugin should now work as intended. Enjoy!
https://www.nexusmods.com/games/fallout4/collections/ldf8lp
But it looks like they've changed the API again
Check API reference at NexusMods GraphQL API Reference
Replace API endpoints in line 70 from "https://next.nexusmods.com/api/graphql" to "https://api.nexusmods.com/v2/graphql".
Line 224 should be changed as described by Biox853 if you are pasting a WWW.NexusMods URL and not a Next.NexusMods path.
[2025-03-26 17:45:33.888 W] {'errors': [{'message': 'Game not found', 'locations': [{'line': 1, 'column': 67}], 'path': ['collection'], 'extensions': {'code': 'NOT_FOUND', 'detail': 'Game not found'}}], 'data': None}
[2025-03-26 17:46:49.834 E] Traceback (most recent call last):
[2025-03-26 17:46:49.834 E] File "D:/MO2/plugins/NexusCollections.py", line 189, in next
[2025-03-26 17:46:49.834 E] self.collectionRevision = int(self.revisionList.currentText().replace('Revision ', '').split(' (')[0])
[2025-03-26 17:46:49.835 E] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2025-03-26 17:46:49.835 E] ValueError: invalid literal for int() with base 10: ''
At first it wouldn't let me select a revision, it was just blank & clicking did nothing, then I remembered my collection was set to private, I made it listed public & now it works ha.
So for ppl having trouble double check the py file is in the plugins folder under Mo2's directory & make sure your collection is set to public.
If anyone is in the same boat as I was, the two changes are that the URL needs to start "https://next.nexus...", and that the ".com/games/collections..." bit needs to be stripped out.
Deep sigh.
EDIT: got it to work now. Apparently I had been copying some wrong stuff and forgot to double check.
So yeah, read carefully guys and it can work.
Updated with new graph URL
[2025-04-08 19:55:33.841 E] self.collectionRevision = int(self.revisionList.currentText().replace('Revision ', '').split(' (')[0])
[2025-04-08 19:55:33.841 E] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2025-04-08 19:55:33.841 E] ValueError: invalid literal for int() with base 10: ''
can anyone help with this?? trying to pick a revision version gives me this error