Author Topic: FOnline client multilauncher  (Read 8568 times)

FOnline client multilauncher
« on: September 10, 2016, 03:12:01 pm »
Hi.

FOnline 2 client doesn't let you run multiple client instances. FOnline Reloaded client kicks all but one characters from the game if you login with multiple client instances.
Not anymore. These two simple Python scripts, runFonline2.py and runFonlineReloaded.py allow you to run as many FOnline instances as you want (well, not exactly - i think 26^8 is the maximum).
These scripts are nearly identical and very simple, and could probably be modified to be used with other FOnline clients.

On some servers, in some situations, multilogging is allowed. But more often than not, you will get banned. Use at your own risk.
I don't encourage anyone to break any server's rules. Use the scripts only in situations when it is not prohibited.

How to run it?
This is a Python 2.7 script. It uses the "psutil" nonstandard library - use pip to install it. It takes one argument - path to your client executable.

How does it work? (for the curious ones)
Windows applications can use so called event objects for various interprocess communication related stuff (https://msdn.microsoft.com/en-us/library/windows/desktop/ms686915(v=vs.85).aspx). Every such objects has a name, which is a string.
The FOnline 2 client creates two such objects. First it tries to create "fonline_instance", and if it finds out that such an object already exists in the system, it gives you the familiar error message. It also creates "_fosync_". The FOnline Reloaded client only creates "_fosync_" and somehow uses it to find out if multiple characters are logged in.

The script simply:
1. Starts the client process in suspended state,
2. replaces "_fosync_" and, in the FOnline 2 case, "fonline_instance", with randomly generated lowercase letter strings in the process' memory,
3. resumes the process.

Have fun.
https://gist.github.com/anonymous/ed5695ccd5593443cd7c0dddaf7f9bf7

Offline adumbperson

  • Turn around in orbit!
Re: FOnline client multilauncher
« Reply #1 on: September 10, 2016, 04:29:52 pm »
Hello,
Still not tried but it looks correct. I hope that people wont abuse from this.
I had also partially reverse engineered the client... and I was stuck at that instance... I hadn't search more (my lazyness again)...
Thx, I'll surely find it an use... (I'm dev'ing around the sdk)
The Death After Life.
About me. I hate people generally I still may have respectful talk and recognize the good persons. Careful to what you say, I'm not a kid. My experiences defines me.
[Awaxx] -2024/10/17-

Re: FOnline client multilauncher
« Reply #2 on: September 10, 2016, 04:52:13 pm »
Yeah, I used FOnline 2 for my efforts, at first I changed only the "fonline_instance" string but the client acted weird when launched multiple times. But then I thought - maybe there are some other objects? I used Sandboxie to isolate the objects created by the client and WinObj to browse them. That's how I found "_fosync_".

Offline adumbperson

  • Turn around in orbit!
Re: FOnline client multilauncher
« Reply #3 on: September 10, 2016, 08:38:17 pm »
Didn't know about that software winobj, thx for sharing.
The Death After Life.
About me. I hate people generally I still may have respectful talk and recognize the good persons. Careful to what you say, I'm not a kid. My experiences defines me.
[Awaxx] -2024/10/17-

Re: FOnline client multilauncher
« Reply #4 on: August 24, 2017, 01:29:34 am »
Amazing thing!

I actually don't like sandboxie. Thanks a lot. Just tested. Didn't have the psutil, but installed with no issues from here https://pypi.python.org/pypi/psutil#downloads . Here's how you run it:

I think it can be done via a shortcut too. Although I don't like the fact that it's in python. I love python, but a normal .exe or the c# crap would be better since people don't tend to have python installed.

Re: FOnline client multilauncher
« Reply #5 on: August 31, 2017, 11:01:14 pm »
Okay, I liked it enough to decide to use it on other laptops. I forked it and changed it a bit.

I really hate how you take arguments, so I added a bit of logics to it. Now, if you run the script with no arguments, it will attempt to run a FOnline.exe in a folder the script itslef is in. So all you need to do is install python 2.7, copy the script to your game folder and run it instead of FOnline.exe. Also useful for creating shortcuts on desktop.

https://gist.github.com/cthulchu/a1348b36c5041f30e3fa1be21155fba5

Oh, and I made a version for reloaded only because nobody cares about fo2. KEK. Kidding. Tbh, I just don't play fo2, so can't test it. Feel free to copy my solution to the fo2 launcher.

Re: FOnline client multilauncher
« Reply #6 on: September 01, 2017, 07:00:57 pm »
Have fun.
https://gist.github.com/anonymous/ed5695ccd5593443cd7c0dddaf7f9bf7

Dude, can you do the same for 412. Cvet added a lame check for a running client. It totally sucks. :(

Re: FOnline client multilauncher
« Reply #7 on: September 11, 2017, 05:01:31 pm »
Thanks for your work and the post.

As I do not like Python and installation of next development environments just to fire a single script I have rewritten this in C# which allows to generate a small .exe file which runs on most Windows machines.

You can get the source code and the executable on Github:
https://github.com/ideaconnect/fomultirun/blob/master/Program.cs

Executable:
https://github.com/ideaconnect/fomultirun/tree/master/bin/Release

To run just type:
fomultirun FOnline.exe

Or create yourself a shortcut.

First argument is simply the path to FOnline.exe.

Project files are in Visual Studio 2017 Community (free) edition format. Executable uses only .NET 2.0 therefore should work with Windows XP SP3 and older newer systems without a problem, older releases will require .NET 2.0 to be installed.

Tested with latest FOnline: Reloaded.

Re: FOnline client multilauncher
« Reply #8 on: September 17, 2017, 02:49:48 pm »
Nice, thanks for sharing.

Re: FOnline client multilauncher
« Reply #9 on: May 02, 2018, 03:54:00 am »
Thanks for your work and the post.

As I do not like Python and installation of next development environments just to fire a single script I have rewritten this in C# which allows to generate a small .exe file which runs on most Windows machines.

You can get the source code and the executable on Github:
https://github.com/ideaconnect/fomultirun/blob/master/Program.cs

Executable:
https://github.com/ideaconnect/fomultirun/tree/master/bin/Release

To run just type:
fomultirun FOnline.exe

Or create yourself a shortcut.

First argument is simply the path to FOnline.exe.

Project files are in Visual Studio 2017 Community (free) edition format. Executable uses only .NET 2.0 therefore should work with Windows XP SP3 and older newer systems without a problem, older releases will require .NET 2.0 to be installed.

Tested with latest FOnline: Reloaded.

OMFG. dude. you're awesome! Works like a charm.

tested on Fonline Reloaded s3. Don't quite remember what build it is. 4-- something