4

My internet is 5MB/s, which is exactly one of the steam's download speed option. The next lowest option is 3MB/s.
I.e. I can't choose 5MB/s - it is too high since it spoils my browsing experience while steam is downloading. But 3MB/s is also not good since it is much lower than necessary. Something like 4.5MB/s would be ideal.
Is there a way to do it? A way to edit steam files may be, and to change the default options list?

  • 3
    Just to clarify question, closest Steam options are 3MB/s and 5MB/s, OP wants something in between – arghtype Oct 18 '19 at 17:14
4

As of October 7th, 2020, you can now specify an exact speed simply by inputting the amount you desire. Go to Steam → Settings → Downloads and in the "Download Restrictions" part of the window, check the "Limit Bandwidth to" checkbox and input the amount you wish (in KB/s). 4500 KB/s would equate to 4.5 MB/s.

enter image description here

| improve this answer | |
7

I found (and slightly redacted) this solution on SuperUser, which was copied verbatim from Reddit, whence it was sourced from the Steam community:

  • Go into your Steam directory, and open the config directory [C:\Program Files (x86)\Steam\config by default.]

  • Go into the config directory and open the "config.vdf" file.

  • Find the DownloadThrottleKbps setting, and set it to the desired speed (take the amount in Mb/s you want to set it to, and multiply it by 8000 - e.g. 4.5 Mb/s makes 36000).

  • Save the file, open Steam, and verify that it is working.

Make sure to set the "config.vdf" file to 'Read-only'. Steam changes the file on start-up and exiting (when set to be run as administrator).

Steam with custom download limit

Note that the file contains more settings, so customizing other settings might require the file to have the 'Read-only' flag disabled.


Works with the New Steam Library update

| improve this answer | |
  • 2
    I can confirm it works. Thank you. – klm123 Oct 19 '19 at 7:30
  • Although this setting will be lost if you change the speed. It can also sometimes get lost in a steam update. I wish there was a way to add it to a permanent list of custom speeds. – Smock Oct 21 '19 at 8:48
2

Based on the answer by Joachim, I created a little Python script that sets the DownloadThrottleKbps in the config.vdf file, so you don't need to redo it manually everytime the setting gets overwritten. Recommended use: create a shortcut to the script with the bandwidth in Kbit/s as first the argument.

Example: To set a bandwidth limit of 4.5MB/s, in the shortcut's properties, edit the Target of the shortcut as: C:\path\to\bandwidth-limit-script.py 36000

Note 1: Close Steam before running this.

Note 2: I hardcoded the path to C:\Program Files (x86)\Steam\config\config.vdf, so change that line of code if you've installed Steam to a custom location.

Note 3: I used f-strings so you need Python 3.6 or higher.

# Set Steam download bandwidth limit (for Windows)

import argparse
from time import sleep

# Config
configpath = "C:\\Program Files (x86)\\Steam\\config\\config.vdf"
throttlestr = "DownloadThrottleKbps"

# Make the user at least see error messages when launched from a shortcut
# Please don't judge me for my lazy exceptions XD
try:
    # Parse bandwidth argument
    parser = argparse.ArgumentParser(description='Set Steam download bandwidth limit in Windows.')
    parser.add_argument('bandwidth', metavar='bandwidth', type=int, nargs=1,
            help='Bandwidth limit in Kbit/s. 0 = no limit.\n\
            Recommended use: create a shortcut to the script with bandwidth as first the argument.')
    args = parser.parse_args()
    bandwidth = args.bandwidth[0]

except:
    input('Press Enter to exit')
    exit()

try:
    # Open config file
    with open(configpath, 'r') as f:
        contents = f.readlines()
    
    # Find DownloadThrottleKbps line
    for n in range(len(contents)):                  # Loop over lines of config
        if throttlestr in contents[n]:              # Check for 'DownloadThrottleKbps'
            contents[n] = f'\t\t\t\t"{throttlestr}"\t\t"{bandwidth}"\n' # Replace line
            break                                   # Exit loop

    # Write new config to file file
    with open(configpath, 'w') as f:
        f.writelines(contents)

except:
    input(f'Error during file access of {configpath}\nPress Enter to exit')
    exit()

print(f'Steam bandwidth limit was set to {bandwidth} Kbit/s')
sleep(1)
| improve this answer | |
0

Apart from editing the config.vdf file, another option is mentioned on Reddit:

  1. Enable the Steam Console: either start Steam with the -console argument or open the link steam://open/console in your browser
  2. Click on Console which appears at the top, right next to your name.
  3. Type set_download_throttle 8000 to set the download limit to 8000Kbit/s = 1MB/s.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.