bnetlauncher

Ever since steam allowed to add non steam games to it that it become my gaming hub having all my games there ready to be launched.

There’s many ways to add blizzard games to steam, but I’ve made bnetlauncher to be the simplest method while retaining the benefits of automatic login.

Howto Use

  1. Extract the included exe to any location you want (ex: steam folder)
  2. Add the exe to steam as a non-steam game shortcut
  3. On the shortcut properties open Set Launch Options… and add one of the following codes:
    code game
    wow World of Warcraft
    d3 Diablo 3
    hs Heartstone
    ow Overwatch
    sc2 Starcraft 2
    hots Heroes of the Storm
    scr Starcraft Remastered
    w3 Warcraft 3: Reforged
    dst2 Destiny 2 (Bungie have purposely disabled overlay)
    codbo4 Call of Duty: Black Ops 4

The result should look something like this:

Additionally, can also use Change Icon to use the icon of the game you’re adding. If you’re still unsure how it should work you can watch a video bellow of bnetlauncher in action:

Destiny 2

Bungie has decided to implement anti-cheat mechanisms that also cause most overlays to not work as expected.

See https://www.bungie.net/en/Help/Article/46101 for more information. If you need SteamController functionality https://alia5.github.io/GloSC/ is currently the best option.

Troubleshooting

In case of problems logging can be enabled by creating a enablelog.txt file inside %localappdata%\madalien.com\bnetlauncher\, you can open the location by pasting the path into explorer or the run dialog in windows (WinKey+R)

Aditional options

There’s also the following additional options provided by command line switches:

  • --timeout <seconds>, -t <seconds> changes how many seconds it tries to look for the game before giving an error (15 seconds by default).
  • --notask, -n starts the launcher directly instead of trying to use a scheduled task
  • --leaveopen, -l leaves the client open after launcher the game. If combined with --notask option it will show you as playing on steam until you close the client.

Adding more Games

From v2.00 onward bnetlauncher uses a internal gamedb.ini to control how games are launched. More games or custom configs can be manually added by creating a gamedb.ini file in:

  • %localappdata%\madalien.com\bnetlauncher\gamedb.ini
  • the directory where the bnetlauncher executable is located.

gamesdb.ini.sample is distributed with bnetlauncher containing a copy of the built in shortcuts.

Important: Those defaults are not changeble. bnetlauncher will always override them with it’s internal gamesdb.ini file. However it is possible to create different entries with custom options.

Exemple entry:

[codbo4]
name=Call of Duty: Black Ops 4
client=battlenet
cmd=VIPR
exe=BlackOps4.exe
options=noargs,waitforexit

Explaining what each part does:

  • [codbo4] the id that’s passed to bnetlauncher to select the game ie bnetlauncher.exe codbo4
  • name=Call of Duty: Black Ops 4 a friendly name for the game
  • client=battlenet the client the game uses, currently only battlenet is supported
  • cmd=VIPR command to launch the game in the client
  • exe=BlackOps4.exe game exe that bnetlauncher will look for after launch, can use % as a wildcard ie Diablo III%.exe to support 32 and 64 bit builds of the game.
  • options=noargs,waitforexit list of coma separated options, currently supported:
    • noargs doesn’t throw an error when retrieving blank arguments from the game
    • waitforexit leave bnetlauncher open and waiting until the game existing
    • nolaunch don`t directly launch the game but just open the client and try to find the game for an additional 60s this can in theory be used for hacky PTR support.

Known Issues

  • Destiny 2 will not have Steam Overlay or any associate features when using bnetlauncher. This is intended by Bungie and cannot be fixed. Steam Input users can use https://alia5.github.io/GloSC/ to work around it.
  • Enabling multiple instances of battle.net client in it’s options might break bnetlauncher functionality.
  • Users of MSI Afterburner, Fraps and other overlay software might experience crashes do to incompatibility with their own overlay and steam’s, to solve the issue disable the 3rd party application overlay.
  • The game, bnetlauncher and steam must all have the same running permissions to work properly, this means if one of them is running has Administrator/Elevated Permissions, then all of them must also be run has Administrator/Elevated Permissions.
  • It’s not possible to automatically launch battle.net client PTR versions of games, the client provides no direct option to do this, however a workaround can be done by creating a new game entry and the nolaunch option and manually clicking play.
  • Default launching the client trough a scheduled task may be incompatible with some setups, workaround is provided with notask switch/option.
  • Starting multiple copies of Startcraft Remastered may cause bnetlauncher to show an error since the game only allows one instance to be run at the same time.
  • There’s no built in routine to clean up the log files if they pile up (logging is disabled by default)

Uninstalling

To remove all traces of bnetlauncher from your system:

  • type ‘Task Scheduler’ in start menu and open it, expand library and delete bnetlauncher folder to remove the tasks used to start the client
  • type %localappdata%\madalien.com in start menu and open the folder, delete bnetlauncher folder to remove log and gamedb.ini files

Requirements

Special Thanks

internet coder Maruf for ghost tray icon fix code github Ethan-BB for the new parameters to launch games on battle.net.
github RobFreiburger and iMintty for Starcraft Remastered and Destiny 2 support respectively.
/u/fivetwofoureight for creating and allowing me to use his icon. /u/malecden, Maverick, /u/sumphatguy and others for their help pointing out bugs.

Downloads

bnetlauncher_v202.zip
github repo (Source Code, Issue Tracking)
Other versions

164 thoughts on “bnetlauncher”

      1. Error: Game Not Found

        Couldn’t find a game started through battle.net Client.
        Please check if battle.net did not encounter an error and the game can be launched normally from the battle.net client.

        bnetlauncher will now exit.

        1. The game, bnetlauncher and steam must all have the same running permissions to work properly, this means if one of them is running has Administrator/Elevated Permissions, then all of them must also be run has Administrator/Elevated Permissions.

    1. Seems Black Ops 4 uses an intermediary process to launch, this bnetlauncher looses track of it. I’ll try to make a workaround, in the meantime OSOL should be imune to the issue if you want a solution right now.

        1. I made a very hackish version to support CoD:BO4, but I have no idea if it would work as is and it’s pretty terrible quality for a general release.

          Still if you want to play with it let me know if it works.

          1. I had logging in issues with OSOL but this works thanks! ^^… just got that issue where the controller doesnt work (in any game), only way ive been able to fix it in the past is reinstalling windows. any idea how to get around it?

          2. By controller do you mean Steam Input?
            Besides it not working on Destiny 2 (which is intended by the game developers) I’m not aware of any other issue.

          3. Any input, not even desktop mode. this is an issue my end not with the launcher. like mentioned unfortunately the only fix ive found for this is a complete windows reinstall.

          4. ah ok just the hacked version the controller doesnt work. But thanks for the effort though. its just a beta so not a big deal ^^

          5. After a quick look at the codbo4 open beta settings shows gamepad support is disabled. Overlay works and setting gamepad to keyboard and mouse also works so seems everything is working as intended.

          6. Will this allow the Steam controller to work when the game releases?

          7. Steam controller support is out of my control, all bnetlauncher does is facilitate launching a battle.net game under steam.
            You can always use GloSC to try and workaround game limitations regarding steam controller.

  1. Hello, im getting the error :

    “Couldn’t find a game started trough battle.net Client.
    Please check if battle.net did not encounter an error and the game can be launched normally from the battle.net client.

    bnetlauncher will now exit.”

    But it works if i hit Play in the bnet launcher after i open the steam shortcut, if not, the error happens. ¿Is there a way for it to auto hit play? Its uncomfortable having to hit play 2 times (one in steam, one in bnet)
    Thanks

    1. I just fixed it by unistalling and downloading again the blizzar app, i had some troubles unistalling the app with the control panel so i deleted the blizzard and bnet folders manually. Hope this help if someone gets the same problem.

      1. Newer versions of bnetlauncher use the uninstaller information to get the install location of the battle.net client. I’ve been noticing it occasionally fails due to “broken” installations so I’m trying to find a better source for that information in future releases.

        Glad to see it’s fixed for you though.

  2. My Bnet client is installed on my secondary hard drive as well as Steam and when I use bnetlauncher I get an error saying “Couldn’t find the Battle.net Client Exe at the following location: ‘C:\Battle.net\battle.net.exe’, Please check if Battle.net is properly installed”. I never had this issue with the previous versions of bnetlauncher. Any idea how to fix this?

    1. This is due to a major change on how battle.net client launches games. Could you tell me the full path of your battle.net client instalation?

        1. The new version of bnetlauncher gets the battle.net client install location trough it’s uninstall registry entry. I’ve tested a new install in a alternative drive and it does fill it in properly battle.net client registry key. So try to reinstall the battle.net client to correct the uninstaller entry path.

          1. I proceeded to simply correct the two registry entries above and now it works. Thank you!

  3. The battle.net got updated today and I can no longer run the game with steam overlay normally. I need to run the Steam shortcut, and after that manually click on Play in the battle.net for it to work. (Overwatch). Thanks for this awesome helper!

  4. Hi!
    I loved the help and the exe you provided a lot!
    I was wondering though, if there is a possibility to add an access to the wow beta profile. I was invited recently and was excited to play it with the controller.
    Thank you!

  5. Works super smoothly, thank you!

    Except the times when the file deletes itself and Windows won’t give me access to the folder to unzip it again until I restart my computer..?

    1. That sounds like anti-virus software is flagging bnetlauncher as as malicious.

      What Anti-virus solution do you use? Does it show bnetlauncher.exe in quarantine?

  6. Hi,

    First of all, thank you very much for your work.

    However I wanted to talk to you about a problem that I suffered recently (and on the PC of my wife too). Since the last Battle.net update, when Battle.net is already running (minimized as a tray icon) and when you double click on the shortcut created from Steam (Characteristic of the shortcut: Name: Overwatch / Target: “D:\My Games\Steam\BnetLauncher.exe” / Start In: “D:\My Games\Steam” / Launch Option: OW) the game does not run, the only way to unlock the process is to double click on the Battle.net tray icon, and the game is launched automatically (with Steam overlay).

    Here is the log when double click on the shortcut created from Steam :

    [2018-02-10 13:06:46.6149]: Battle.net Launcher for Steam version 1.18.6465.31319 started
    [2018-02-10 13:06:46.6199]: Environment: Microsoft Windows NT 10.0.16299.0 (4.0.30319.42000), 64bit
    [2018-02-10 13:06:46.6209]: Getting Machine details:
    [2018-02-10 13:06:46.6780]: OS: Microsoft Windows 10 Professionnel (10.0.16299, 64 bits, 1036)
    [2018-02-10 13:06:46.6780]: CPU: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz; RAM: 16384MB
    [2018-02-10 13:06:46.6790]: GPU: NVIDIA GeForce GTX 980 (4095MB, 23.21.13.9077)
    [2018-02-10 13:06:46.6790]: HDD: Corsair Force GS, ST2000DX001-1CM164, Generic STORAGE DEVICE USB Device
    [2018-02-10 13:06:46.6810]: battlenet URI handler appears to present and correct
    [2018-02-10 13:06:46.6810]: Checking for other bnetlauncher processes
    [2018-02-10 13:06:46.6840]: No other bnetlauncher detected
    [2018-02-10 13:06:46.6850]: Given parameter: OW
    [2018-02-10 13:06:46.6850]: Known key for game ‘Overwatch’
    [2018-02-10 13:08:46.7631]: not enough battle.net Helpers started.
    [2018-02-10 13:08:46.7631]: Couldn’t find the battle.net running and failed to start it. Exiting

    Here is log when double click on the shortcut created from Steam AND double click on the Battle.net tray icon :

    [2018-02-10 13:50:22.0696]: Battle.net Launcher for Steam version 1.18.6465.31319 started
    [2018-02-10 13:50:22.0746]: Environment: Microsoft Windows NT 10.0.16299.0 (4.0.30319.42000), 64bit
    [2018-02-10 13:50:22.0746]: Getting Machine details:
    [2018-02-10 13:50:22.1308]: OS: Microsoft Windows 10 Professionnel (10.0.16299, 64 bits, 1036)
    [2018-02-10 13:50:22.1308]: CPU: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz; RAM: 16384MB
    [2018-02-10 13:50:22.1308]: GPU: NVIDIA GeForce GTX 980 (4095MB, 23.21.13.9077)
    [2018-02-10 13:50:22.1318]: HDD: Corsair Force GS, ST2000DX001-1CM164, Generic STORAGE DEVICE USB Device
    [2018-02-10 13:50:22.1328]: battlenet URI handler appears to present and correct
    [2018-02-10 13:50:22.1328]: Checking for other bnetlauncher processes
    [2018-02-10 13:50:22.1358]: No other bnetlauncher detected
    [2018-02-10 13:50:22.1358]: Given parameter: OW
    [2018-02-10 13:50:22.1368]: Known key for game ‘Overwatch’
    [2018-02-10 13:50:32.8160]: battle.net client is fully running with pid = 8652
    [2018-02-10 13:50:32.8160]: Issuing game launch command ‘Pro’ at ’01:50:32.8160′
    [2018-02-10 13:50:32.9314]: Searching for new battle.net child processes for the game
    [2018-02-10 13:50:32.9804]: No child process found.
    [2018-02-10 13:50:33.5231]: Found battle.net child process started at ’01:50:33.3479′ with pid = 8508
    [2018-02-10 13:50:33.5241]: Selecting battle.net child started at ’01:50:33.3479′ with pid = 8508
    [2018-02-10 13:50:34.0259]: Attempt 1 to find start parameters
    [2018-02-10 13:50:34.1416]: Filename = C:\Program Files (x86)\Battle.net\Overwatch\Overwatch.exe
    [2018-02-10 13:50:34.1421]: Arguments = -uid prometheus Pro://
    [2018-02-10 13:50:34.1421]: Closing battle.net child game process and starting it under bnetlauncher
    [2018-02-10 13:50:34.1913]: Exiting

    The problem does not occur when Battle.net is not already running.

    By launching the game via the command battlenet://Pro, the game starts without problems (without Steam overlay of course)

    Thank you in advance.

    Note: If it can help you, on my PC the PID of:

    Battle.net.exe: 8652
    Battle.net Helper.exe: 1588

  7. Hello! I love this launcher.. it works well with all my Blizzard games. However, today I can’t use it. It gives me this error…

    Error: URI handle broken
    —————————
    Some of the battle.net client functionality seem to be missing, without it bnetlauncher will not be able to function. Please reinstall the battle.net to fix the situation.

    Alternatively, if you’re still getting this message after reinstalling the client a repair can be attempted, this will create the missing registry keys and prompt you to add them to your registry (you must answer yes).

    Would you like to attempt the repair?
    If you choose No bnetlauncher will exit.
    —————————
    Yes No
    —————————
    🙁

  8. I’d appreciate it if you could provide a github link or similar so I can build your exe from source… not that you’re not trustworthy or anything, just better safe than sorry eh 🙂

  9. Hopefully you fix the Destiny 2 one 🙁 was great during beta. I need this tool because I play fullscreen (better performance than windowd) and i have 2 monitors, so alt tabbing is really annoying.

    Where as with overlay, I can chat with my friends and use the browser.

  10. I have also not been able to get the launcher to work with Destiny 2. I’ve been using it for OW just fine. I have been reading that Destiny 2 isn’t allowing certain capture/streaming services to be used so I am suspecting it may have something to do with that.

  11. As far as I know it looks like it will only run desktop config only. Most likely due to Bungie walling us out.

    I’m not a coder of any kind but will gladly offer help

  12. Yup seems broken for Destiny 2!

    It’s launching but no overlay. Steam controller is remaining on desktop config.

  13. I can’t seem to get this launcher to work with Destiny 2, it works perfectly fine with Overwatch though.

    I’m able to launch Destiny 2, but the Steam overlay doesn’t appear. Is there something I could do to fix this? I set the launch options to ‘dst2’ and put the ‘bnetlauncher.exe’ into Steam as a non-Steam game. I’ve tried launching it with and without Battlenet launched, but I run into the same issue.

    1. @Draz There was a bug in the beta battle.net client that broke bnetlauncher. Latest version of the beta has fixed the issue so everything should work as expected.

  14. Hey, I really love the bnetlauncher, I am using it every day with Overwatch. I’ve read on Bungie website that overlays are not supported (with some exceptions) .. I played Destiny 2 beta with this launcher to have the Steam Overlay, but now I am scared to launch it again, because I could be banned forever because of it. Is there any risk using it? I used it already and I didn’t have problem but I am scared now. (info about the Destiny 2 and overlays – https://www.bungie.net/en/Help/Article/46101 )

    1. That will depend on Bungie considering using steam overlay as a banable offence. bnetlauncher itself does do anything nefarious, it simply closes the game and reopens it under steam.

      In the end only Bungie can tell you for sure if you can be banned or not, all I can tell you is that I will personally still continue to use it with destiny 2, same as I’ve with every other game on battle.net game since i created bnetlauncher.

  15. Thanks for your help, daf! I really appreciate it. I uninstalled my Battle.Net client, rebooted, made sure there were no lingering Battle.Net leftovers in the registry, then reinstalled the client. That got the URI associations in place and now bnetlauncher works flawlessly!

  16. Update: The fix you’ve put in seems to have done the trick, stream just sits on a black screen for a few seconds until destiny2.exe finally gets brought to the foreground at which point everything behaves as expected.

  17. Thanks, I’ll give this version a try tonight.

    The double instances opening isn’t an issue with bnetlauncher itself, its just a side effect of the workaround to first problem. The behaviour on the host maps out something like this:

    0s: stream1 is opened
    0s: launcher invokes destiny2.exe(1)
    1s: launcher exits
    1s: stream1 is closed
    10s: destiny.exe(1) opens on screen
    12s: stream2 is opened
    12s: launcher invokes destiny2.exe(2)
    13s: launcher exits
    13s: stream remains open as destiny2.exe(1) is displaying on screen

    x: destiny2.exe(1) is closed
    x: stream2 is closed
    x+1: destiny2.exe(2) opens on screen

    Those timings are rough, but the second instance of the process simply comes from the necessity to attempt to stream the game a second time coupled with some clever logic in the game to not try to display two instances of itself at once if two are open (if i drop back to the host desktop while stream2 is running i can see two instances of destiny2.exe with different PIDs in task manager).

    So the second issue isn’t really one I’d expect you to try fix, it was more just for background of the workaround I’ve used and the knock on impact.

  18. This is pretty awesome, I just found it when trying to solve an issue Streaming Destiny 2 I recalled having with Overwatch.

    Works perfectly with other Blizzard Games I have but seems to be an issue around a delay in Destiny 2 (could just be a beta issue) whereby the launcher is closed before Destiny 2 has loaded on to the screen so causes the streaming to stop. If i then wait 10sec for the game to appear on the host monitor a second streaming session will connect to it and run fine, but does mean when the game is then closed a second instance opens (there seems to be some single instance limiting/queuing going on in the game itself that means if two instances of destiny2.exe are running, the second sits idle in a preloading state until the first closes). Obviously this isn’t a massive deal, just have to remember to VNC onto the host and close down the second instance of the program after I’m done with it, but thought it would be worth the feedback if you wern’t aware of it.

    Would there be any way to introduce a config option to add a delay to closing the launcher to prevent the initial streaming session from shutting down if this isn’t something widespread?

    1. @Ganewate, Okay, if I’m understanding this properly there’s two issues here.

      First seems to be bnetlauncher exiting too quickly and causing the steam home streaming to think Destiny 2 was closed, I’ve added a worked around in version 1.15 that should fix that, if it didn’t let me know and I’ll try to come up with another solution.

      The second issue is multiple instances of Destiny 2 launching? I’ve not encountered this yet, could you provide more detail?

  19. Thanks for making bnetlauncher! I’m trying to get it to launch Destiny 2 through Steam as a non-Steam shortcut, but I’m stuck.

    I don’t know how, my battle.net client doesn’t seem to have any kind of URI association. I’ve reinstalled the battle.net client twice. Start+R and battlenet://dst2 gives me a “There is no program associated to perform the requested action” error.

    Any suggestions? Should I try the reg file you posted in the comments above? Thanks a lot for the help!

    1. @Number 6, The reg file has since been removed since reinstalling the battle.net client would usually fix broken battlenet:// association. If it’s not working there might be something else causing the issue, regardless if you want to try and manually fix it you can use this regfile to manually add battlenet:// association, just be sure to edit the path to the battle.net client executable taking care to use double \.

  20. OK i’m blind or the parametres for the newer games were added recently, either way thanks 🙂

  21. Not sure if it is possible or if it even applies, do you have the launcher URL for StarCraft:Remastered? Or a update to your launcher to include this? I’ve been trying to get steam overlay (or steam to launch it at all for that matter).

  22. Hello, this software works like a charm, now that SC:R is out i would like to make a request to add it to the bnetlauncher as well.

  23. Thanks, can you maybe upload the compiled version on GitHub to just in case. And maybe if you have the time it would be nice if you could make an launcher for Uplay Games too! 😀

  24. Thanks for the info, daf. If I do end up releasing anything, I’ll be sure to credit you (and GitHub it, of course).

    Why am I not surprised that Origin is a bit weird?

    I did a little googling on uPlay. It seems to also use a URI handler (uplay://launch/) so that might be a good angle to attack!

  25. Great work! I can now stream Overwatch to my Steam Link!

    I’d actually started work on a tool to wrap non-Steam games and automatically apply any workarounds needed to get the overlay working. This is also a C# project.

    However, I was missing the trick of grabbing the command-line args which Battle.net passed to Overwatch.exe, then killing and restarting it under the ‘wrapper’ application. Very, very good idea!

    My initial work on my version works something like this: (btw, I named it SteamBogie.exe – it’ll make most English-speakers chuckle, but it’s also a British English term for the wheel/axle/suspension assembly on railway carriages. Keeps with the Steam/Valve thing ;))

    So, perhaps, for battle.net games:

    SteamBogie.exe –launcher battlenet –command battlenet://Pro –client Overwatch.exe

    Then, for Origin, perhaps something like:

    SteamBogie.exe –launcher origin –game C:\Games\OriginGames\Titanfall\Titanfall.exe

    … and it’ll do whatever’s needed to get Origin games compliant. This seems to involve:

    * Quitting Origin if running
    * Launching the game EXE with the Origin EXE path added as an argument (that can be looked up in the registry)
    * Monitoring the process list to watch for the game EXE’s presence
    * Quitting and perhaps restoring Origin’s running/not-running state after the game EXE disappears.

    Certainly something to work on!

    1. Origin and uplay games can be started directly from the game exe, they will launch the client if needed and start running. The launch chain is a bit crazy tough, the game closes and launches the client which chain spawns a load of other processes which eventually launches the game for real (seriously check it with process explorer). So all you need to do then is monitor the game and close the launcher processes after it closes.

      It’s something I’ve thought about but been putting off due to not having any really clever way of doing it. For uplay I’ve already done something the “dumb way” with https://github.com/dafzor/nouplaynag and I suppose the same core idea would work with origin too.

      Best of luck developing your universal launcher.

  26. Hey man, program’s just throwing an error window “bnetlauncher has stopped working” trying to run diablo 3. I’m assuming it’s something to do with the change from battle.net client to blizzard app. I thought it might’ve just been a name change, but seems like it’s something else.

    Any chance of an update?

    1. There hasn’t been any change that required an update at the time of the client name change. First thing I’d ask you to try is getting the latest version, if there’s still an issue comment again and I’ll try to help you.

  27. No overlay software is used and I’ve never had to start battle.net as admin. I’ve e-mailed you a log file, hope it helps.

  28. I’ve used it previously without any issues but after a reinstall of Windows I have issues with the bnetlauncher. Sometimes it works fine but most of the time the launcher starts but doesn’t start the game and after a moment I get the error:

    “Couldn’t find a game started through Battle.net Client.
    Please check if you’re using a valid parameter.
    Aborting process and exiting.”

    I can still launch manually and will see the overlay…sort of (Shift-Tab brings it up, I see the FPS counter but new messages are not visible in the lower right corner as it should).

    1. Are you using any overlay software like MSI afterburner? Are you starting battle.net as admin? Those are two things that could cause problems, other then that i’d need to see a log (see instructions.txt for how to enable it).

  29. —————————
    Error
    —————————
    Failed to obtain game parameters.
    Game should start but steam overlay won’t be attached to it.
    —————————
    OK
    —————————

    Any solution? ;(

Leave a Reply to daf Cancel reply

Your email address will not be published.