How can I skip, or at least speed up, the DLC check in Borderlands 2?
You know how every time Borderlands 2 launches it tells you to press any key? ...and how, after you press the any key, it decides to spend a few seconds too many checking for downloadable content?
...and then it fails to find any anyway? Yeah, I would love to know how to skip this check too.
Here's my understanding (some investigation, some guess-work) of what happens:
It doesn't appear to actually do any downloading, and I suspect isn't doing any online checking at all—at least not for a Steam-installed version of Borderlands. This would make sense, as Steam is already managing downloading and updating the DLC files. On consoles, this step might be used to check your DLC, I don't know.
It appears to load all DLC content in some way during this time (I have most/all of it, about 6.5GB). I don't know exactly what it's doing with the files, but it touches each one and takes more time than just reading their contents takes.
An SSD would likely speed this up (on my SSD I can read all the files in about 10 seconds, and about 5 seconds once they've been read once so are cached in memory; 6.5GB would take about a minute on a regular HDD and maybe 2 minutes on a really old one).
Uninstalling DLC in Steam doesn't seem to remove any content from the DLC directory! Weird... so that doesn't appear to speed it up.
Deleting DLC manually speeds it up, but breaks save files.
In more detail...
First, I used opensnoop
on macOS to check what files BL2 was accessing and when, and for me it spends about 30 seconds going through the various files in
~/Library/Application Support/Steam/steamapps/common/Borderlands 2/Borderlands2.app/Contents/GameData/DLC/
around the time where it's saying "Checking for downloadable content..."
At the very least, it opens a lot (all?) of those files, and it takes a while doing so, so I'm pretty sure it's loading them and doing something with the content.
Second, I tried renaming a directory inside the DLC directory (Aster). This had no effect; it still processed that incorrectly named directory, and didn't download a new copy.
Third, I removed the Aster directory from the DLC directory. It obviously didn't read the Aster directory this time, but read the others, and didn't download a new copy.
Fourth, I removed the whole DLC directory (replaced it with an empty directory), and it loaded almost instantly. Again, no downloading... but it did then pop up an error that my saves were unusable due to lack of content!
Fifth, I removed some DLC via Steam to see how it ran with fewer DLCs... but Steam didn't actually remove anything from the DLC directory. I don't know why, but I guess once it's installed its required (probably due to saves breaking if the DLC isn't installed).
So, at least for a Steam installation (on macOS, though I expect Windows to be the same), it's almost certainly just reading the DLC files during this time, and a faster SSD and/or CPU/GPU will likely be the ways to speed this up. I doubt you can get away with not loading these files.
Not definitive of course—it's possible that this step is unnecessary cruft accidentally left in (and it loads those files at another point), but it certainly doesn't seem to be actually checking against a server that's running slow, or anything like that...
TL;DR: Install it on an SSD in a fast computer. Sorry.
Have you tried modifying the willowengine.ini file?
I do not recommend doing this because it can seriously affect your game, but the following lines of code might have something to do with the download checks:
MarketplaceOffers=(OfferID=0x00032BD6,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x00032BD6",Category=0x00000001)
MarketplaceOffers=(OfferID=0x00032BEA,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x00032BEA",Category=0x00000001)
MarketplaceOffers=(OfferID=0x00032BFE,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x00032BFE",Category=0x00000001)
MarketplaceOffers=(OfferID=0x00032F32,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x00032F32",Category=0x00000001)
MarketplaceOffers=(OfferID=0x000340DA,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x000340DA",Category=0x00000001)
MarketplaceOffers=(OfferID=0x000340EE,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x000340EE",Category=0x20000000)
MarketplaceOffers=(OfferID=0x00034102,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x00034102",Category=0x00000001)
MarketplaceOffers=(OfferID=0x00034314,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x00034314",Category=0x00000001)
MarketplaceOffers=(OfferID=0x000355B6,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x000355B6",Category=0x00000001)
MarketplaceOffers=(OfferID=0x000355C0,SellTextLocKey="WillowMenu.MarketplaceSellTextPC.0x000355C0",Category=0x20000000)
You can comment out code in this file by opening it in a text editor (Such as Notepad) and place a comma (,) at the beginning of each line. Again, I don't recommend doing this except as a last possible effort to speed up your dlc check. Make sure you have a backup of the .ini file before you make any changes and replace the edited version with the backup if anything goes wrong when you next start the game.
For 360 I disconnect from Internet, it works right away, then when I'm through to where I can see my characters I reconnect. If you don't have Xbox, then try doing a similar thing on your system, hope this helps.
I would just remove the internet connection. That would be the only way to prevent a check, as the game has to check for updates at the same time.