bdew

Launching multiple clients without killing steam and without any 3rd party software

Recommended Posts

I was screwing around with client authentication today (trying to figure out why i couldn't log in to one specific server), and discovered something...

 

  1. Find your WurmLauncher folder (should be under steamapps\common\Wurm Unlimited)
  2. Create a file named steam_appid.txt inside WurmLauncher folder
  3. Write "366220" in it (no quotes)
  4. Run WurmLauncher.exe (not from steam library!)
  5. ???
  6. Alts, alts everywhere!

 

steam_appid.txt file, with 366220 inside (wurm app id on steam) in WurmLauncher folder disables the relaunch-through-steam check in WurmLauncher.exe, and allows opening multiple clients easily.

 

Yep, that simple :)

 

Technical details:

 

During startup wurm calls SteamAPI_RestartAppIfNecessary which checks if the client was launched through steam.

If it wasn't (= was manually launched from the .exe) this function returns true, causing the client to terminate. A new copy is then launched by steam.

For whatever reason, if you have a steam_appid.txt file this function will always return false, allowing the client to proceed without being launched through steam.

Since the check for multiple running copies is in steam itself - it's never checked and you can run as many instances as you want.

Server list stuff and authentication doesn't seem to be affected by this (as far as i can tell).

 

Disclaimer: I have no idea what effects this might have or how legit Rolf or Valve would consider this. Use at your own risk.

 

Added, from here: https://partner.steamgames.com/documentation/drm

 

Quote

One exception is that SteamAPI_RestartAppIfNecessary() will return false if a steam_appid.txt file is present. This allows you to develop and test without launching your game through the Steam client. Be sure to remove the steam_appid.txt file when building the game depot.

 

So it's seams to be meant for testing i guess. *shrug*

 

Edited by bdew
  • Like 10

Share this post


Link to post
Share on other sites

Most of my games will launch without Steam simply by replacing the SteamURL in the shortcut with the actual executable. A direct launch of the Wurm Client executable calls Steam. Having played some of these games from Steam for years without loading from Steam or using the SteamURL has never received any kind of comment or warning. It must be a developer thing and not a Steam/Valve thing or all executables would invoke Steam. 

But, as you said, I have no idea what the legitimacy of this is since Rolf and team coded it this way. Steam itself has never complained to me about other games launched outside of Steam. 

Share this post


Link to post
Share on other sites

I mean it surely can't be worse than killing steam for every instance you want to launch. And you still need steam running in the background (and i assume owning the game) to get an authentication token, so it's wouldn't allow someone who doesn't own the game to play.

Edited by bdew
  • Like 1

Share this post


Link to post
Share on other sites

What an interesting side effect.

Last time I started the game like that it would not let me start more then one client, perhaps there have been some changes since then.

 

The ability to add the app id in a txt file is provided by Valve so that devs can start/test their games before launch. 

Normally the app id is set by steam when the game is launched, it looks however like the default behavior is to look for the txt file first when initializing the api.

A quick search indicates that there is several developers that dislike this behavior so there is a possibility for it to change in the future. 

 

You should be careful however, since this is a feature designed for devs that is commonly misused by cracked games, there is a risk that if Steam has a way to detect it that you might get caught in a purge and be banned. 
We have no reason to dislike it however, it's not like it's all that difficult for a modder to remove all steam checks in our java code as it is, mostly we use the steam api to get access to their master servers.

 

It is fairly common for other games to have the game delete any app id files to avoid it being used like this, or stop the game from launching at all.

 

  • Like 3

Share this post


Link to post
Share on other sites

I had a few problems setting this up.

 

* The file steam_appid.txt must be in folder "SteamApps\common\Wurm Unlimited\WurmLauncher". Placing it in the parent folder as mentioned in the original post had no effect

 

Share this post


Link to post
Share on other sites
59 minutes ago, ago said:

I had a few problems setting this up.

 

* The file steam_appid.txt must be in folder "SteamApps\common\Wurm Unlimited\WurmLauncher". Placing it in the parent folder as mentioned in the original post had no effect

 

 

I did say to place it in WurmLauncher ... "Find your WurmLauncher folder (should be under steamapps\common\Wurm Unlimited)"

 

I guess i'll reword it to be clearer.

 

Also now i wonder if just removing SteamAPI_RestartAppIfNecessary call with a mod would be easier/safer. I was under the impression that having it return false (via either running from steam or having a steam_appid.txt) was required for everything else to work. But from @ErikN post that isn't the case if i'm reading this right. I'll try it in the evening.

 

Hm, looking at the code there is nothing else that tells steam the AppID, so disabling the call while not having a steam_appid.txt will probably break serverlist/authentication.

Edited by bdew

Share this post


Link to post
Share on other sites
2 hours ago, ErikN said:

Last time I started the game like that it would not let me start more then one client, perhaps there have been some changes since then.

 

Were you running the game directly (WurmLauncher.exe ) or via steam library?

 

The check to allow only one client seems to be part of steam itself, so if you run it directly there is nothing to block additional clients... or atleast that's how it worked for me.

Share this post


Link to post
Share on other sites

I have done both actually while testing. 
Right now just launching through the exe will make it possible to launch 2 or more instances, last time I did it, before WU release that did not work.

When launching through Steam the AppID is set in the process by Steam, so not something that is done in our code, it was actually a problem for the dedicated server since it set the tool id, and not the game ID, resulting in Steam not thinking of the server as the WU server but something else, so we had to reset it, which is done in the exe before any Java code is launched. 

 

I don't think there is any big risk of Steam seeing you change the AppID unless you change to an incorrect one, it's common to see pirated games using Steams own example ID, I even saw a Wurm server running using it earlier :P (it might not have been a pirated one, but it was not using our ID).

 

Share this post


Link to post
Share on other sites

By the way @ago , i think with this trick you could make the client modloader work without patching, like the server modlauncher, since you could load java directly, without the exe or steam, making it somewhat less fiddly to install.

  • Like 1

Share this post


Link to post
Share on other sites

The direct start will definitly help a lot in debugging.

Since the legal state with Steam is pretty much in the grey I think it's not a good idea to make this available to the unaware user. A .bat file that runs the patcher first and starts the .exe should work just as well as the direct java launcher. And people would not have to worry about their play time counter ;)

Edited by ago
  • Like 1

Share this post


Link to post
Share on other sites

Does this work when launching the server?

 

For example, can I run the server launcher using the same trick so I can run the client from another PC?

Share this post


Link to post
Share on other sites

You can run the same client on many different PCs. just kill your steam after launching wurm client post server connection. I do this for one client and ten alt accounts.

Share this post


Link to post
Share on other sites
2 hours ago, MootRed said:

just kill your steam

This topic is about a more streamline way of running multiple clients.

 

2 hours ago, tryst49 said:

Does this work when launching the server?

 

For example, can I run the server launcher using the same trick so I can run the client from another PC?

 

There is no restriction for running the server. At least when you use the dedicated server. I don't know if the bundled server has any restrictions but I'd recommend using the dedicated server anyway.

Share this post


Link to post
Share on other sites

This method continues to deny my server connection since the last update. Anyone else have this problem?

 

On 2/8/2016 at 1:34 PM, ago said:

This topic is about a more streamline way of running multiple clients.

 

I want to streamline my five alts without having to kill my client all the time. <3 stream line!

Share this post


Link to post
Share on other sites
3 hours ago, bdew said:

What error are you getting?

 

failed authentication error.

Share this post


Link to post
Share on other sites

some times you can get it to grab and some times you just have to wait till the server resets. Next time this happens try this at least 4 times it normally works by try 3.

 

open up task manager and set on the side. Then click on steam tell it to end program wait till all steam has stopped. Then crank steam back up and try to launch wurm again if it happens again repeat in same order but make sure you close the error window first. I've noticed normally after 3 tries it will kick in. just don't super click fast going threw it. take your time don't be in supper hurry. Every time you shut steam down wait a min or 2 before  cranking it back up then wait a min or 2 before launching wurm. Slowing the process down has a higher chance of working than click click click click.

Share this post


Link to post
Share on other sites
Quote

Two security issues that allowed players to login without authenticating and verifying if they are the same steam user as the account they are trying to login with was fixed. 

 

 

your method still works though.

Edited by MootRed

Share this post


Link to post
Share on other sites
32 minutes ago, MootRed said:

 

 

your method still works though.

 

They are unrelated. This method only bypasses the check that the client was launched from steam. It still requires steam running and logged in to the right account.

 

Share this post


Link to post
Share on other sites

That is a real cool fooling the steam checker, But why hasn't the Wurm Dev created a real standalone client so we don't have to find creative ways to play the game.

Edited by vannie

Share this post


Link to post
Share on other sites

I'm not able to do this for this reason:

 

Unexpected crash while setting up login The error was: <Could not start SteamApi Shutting down (Steam is not Running)>

 

any ideas? Steam is running.

Edited by Rudie

Share this post


Link to post
Share on other sites

I've had it crash on me a couple times i think logging in another char. I just tried again and it worked i think.

 

Edit but you'll have to do the bootstrapper trick again.

Edited by Aetherion

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now