maciejs

Dedicated Conclave Servers: Part II, Advanced Guide.

Recommended Posts

Hmm, no, it's not intentional. Steam or not, the first time you run a dedicated server, it just creates a default LotusDedicatedServerSettings object. Went through the code 1 more time, but I don't see any path leading to that outcome, unless the dedicated server process didn't shut down cleanly and/or was not properly initialized (ie. running 'by hand', not via launcher, with invalid arguments).

Share this post


Link to post
Share on other sites

Ah, that must be it - I'm pretty sure I did Alt-F4 on that other machine whereas I'm definitely using Q on the current one. :S Any reason there's no cleanup code registered via SetConsoleCtrlHandler() (other than people, like me, should just RTFM and use Q)?

Share this post


Link to post
Share on other sites

Oh, Alt+F4/clicking the X icon shuts down gracefully (it doesn't wait for the game to finish, but it does save), I meant an actual crash, can't explain why it wouldn't save otherwise.

Share this post


Link to post
Share on other sites

Apologies for the late response, I was on holiday. I've verified that (Steam client at the very least) does not save DS.cfg upon exit via console window's close button. I've got a video capture of a repro (8MB in size) that demonstrates this if you're interested.

This by itself is obviously not a big issue but, as mentioned earlier, I was careless enough not to notice that 'Q' is used to graceful shutdown which caused me some time (it wasn't wasted by any means though ;]). I'd suggest updating your guide with the following piece:

On 18.01.2017 at 8:12 PM, maciejs said:

Hey everyone,
...

LotusDedicatedServerSettings structure will be created and initialized for you after starting the server for the first time (recommended/easiest way is to do it using Launcher, as described in the first post; just remember to close server console by pressing 'Q' - consult key shortcuts at the end of this guide).
...

  • Upvote 1

Share this post


Link to post
Share on other sites

You sir, are correct. I'll update the guide for now and will look into fixing it properly.

[Edit]...and as of the POE update it should be fixed.

Edited by maciejs

Share this post


Link to post
Share on other sites
On 1/18/2017 at 2:31 PM, maciejs said:

Guys, while I don't want to dismiss the PVE servers idea, it's not something that should be discussed here, it's more of a design call (with serious technical implication, to be sure). I'd like to keep this topic limited to technical discussion mostly, if possible. Thanks.

If at least, can we have a thread dedicated to this subject? Its a good call for a game like this. As joining a game with a bunch of mobs and the host begins lagging isn't good for gameplay experience. Letting users host for PVE is a good medium as we won't see Migrating Host as often and we'll have a more consistent experience with people hosting on high bandwidth servers for both pve and pvp.

  • Applause 1

Share this post


Link to post
Share on other sites

I've been trying to run a dedi in headless mode using the Launcher.exe, but any time I try to launch it, whether with or without GUI it wants to try and download ALL of Warframe again. How can I get the Launcher to point at my existing Warframe installation? I've tried messing with the "Target" section of my Launcher.exe shortcut, but I've had no success. 

Edit: And now I can't even get the Warframe base game to start properly. >.>

Edited by PickleChip

Share this post


Link to post
Share on other sites

What players don't realize is Conclave is picking up on the down low there's hella players and people like me are actively covering updates, matches and weapon tutorials. Conclave based clans like mine are growing fast and I've even allied with 10 of them. Dedicated servers may be the first step in bringing PvP back to the surface. Continued persecution of it as a mode hasn't stopped from being enjoyed & dedicated servers will make it that much more appetizing. Embrace the change.

  • Applause 2

Share this post


Link to post
Share on other sites

Pushing this, as I am experimenting with DS.cfg.

Will this work?

Zitat

[Lunaro,LotusDedicatedServerSettings]
missionId=SB_Title
motd=Lunaro FFA
enableVoice=1
clanOnly=0
highBandwidth=1

[LunaroClan,Lunaro]
motd=Lunaro ClanOnly
enableVoice=1
clanOnly=1

the commands i use is:

Launcher.exe -headless -dedicated:Lunaro  (for normal)

Launcher.exe -headless -dedicated:LunaroClan  (for Clan)

Since i didn't get wierd errors, this seem to work. Any thought on this?

 

Edit: Since the launcher way doesn't allow multiple instances, here are the Warframe.exe commands:

Zitat

rem Used inside a batch

set type=Lunaro

Warframe.x64.exe -log:%type%.log -cluster:public -allowmultiple ^
-applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings ^
-instance:1 ^
-settings:%type%

echo Server exited/crashed!
pause

Please note, i used ^ to expand the command over multiple lines.

Edited by NoSpax
added the Warframe.x64.exe way

Share this post


Link to post
Share on other sites

Yes that looks good, I think. You can try using the "DS config file" method (see the first post) for running multiple instances via Launcher.

Share this post


Link to post
Share on other sites

So I am correct, the DS.cfg settings can be inherited from/override the one on the right?

Chaining LunaroClan -> Lunaro -> LotusDedicatedServerSettings -> /Lotus/Types/GameRules/DefaultDedicatedServerSettings

 

 

Share this post


Link to post
Share on other sites

Which of these lines is the correct way?

Zitat

[LotusDedicatedServerConfig,/EE/Types/Base/Config]

[LotusDedicatedServerConfig,/Lotus/Types/GameRules/LotusDedicatedServerConfig]
App.DedicatedServerFrameRate=60

Or is my DS.cfg just outdated? The EE stuff seems to be the most inner core system of the game, should we really tap into that?

Share this post


Link to post
Share on other sites

Is there any possibility of getting a server browser or at least to blacklist certain servers? 

Even tough the possibility of having servers hosted by community members is neat, it opens room for people to host really low quality servers too. I've personally seen many players complaining on how some of them (motd reading "GLHF" in one, "@tsrv" in the other i've seen mentioned more often) make latency way more noticeable than others despite having a lower ping, leading to an awful gaming experience full of frustrations. Oddly enough, these servers seem to be getting a lot of traffic, which makes them to be on top of the ranking and probably be picked more often than others.

  • Upvote 1

Share this post


Link to post
Share on other sites
4 hours ago, ----Legacy---- said:

blacklist certain servers

Adding to that: a way for users to indicate there's an issue to the host. It's very possible those hosts mentioned have no idea what the experience is like.

  • Upvote 3

Share this post


Link to post
Share on other sites
vor 14 Stunden schrieb ----Legacy----:

Is there any possibility of getting a server browser or at least to blacklist certain servers? 

Even tough the possibility of having servers hosted by community members is neat, it opens room for people to host really low quality servers too. I've personally seen many players complaining on how some of them (motd reading "GLHF" in one, "@tsrv" in the other i've seen mentioned more often) make latency way more noticeable than others despite having a lower ping, leading to an awful gaming experience full of frustrations. Oddly enough, these servers seem to be getting a lot of traffic, which makes them to be on top of the ranking and probably be picked more often than others.

Either those are servers ran by the Launcher on a bad connection or they set them up in  a way, it conflicts.

On my side, i never connect to a dedicated in my Europe region (even my own dedicated to test) , my game turns into a p2p host, as I am missing the "leave conclave"  button when a round ends. Clients can leave. I can only leave in the lobby screen, where i see both teams before a match. I think this is how dedicated server work, as they never leave the conclave. 

On a side note, when a server is launched, does it read the DS.cfg and if yes, does it have hard-coded sections to read from . Or does it just check for inherited  modifications on the default settings inside /Lotus/ ? 

So entering [bla, bla] will do nothing, but throw an error as bla doesn't exist as property. 

I am planning to do a multi use DS.cfg (maybe even publishing it for others) , but i fear starting via GUI Launcher will ruin the base setting(LotusDedicatedServerSettings) i set by hand there , so i may have to make a universal section, which gets inherited, so the Launcher can safely change things without breaking something else... Unless -setting can handle JSON and is directly affecting properties hardcoded in /Lotus/Type/GameRules/ so i can ditch the whole DS.cfg as irony. 

This way, people can setup a (lazy) server by GUI Launcher or by command line via Warframe.exe, without interfering the other. Headless Launcher acts almost as the warframe.exe way, only it does update. 

If Launcher had an -UpdateAndExit cmg arg, I could do a step further and code a little more on terms of GUI. 

Yes, i like to figure out things. If it helps others, that is. 

Edited by NoSpax

Share this post


Link to post
Share on other sites

 

On 3/17/2018 at 7:10 AM, NoSpax said:

If Launcher had an -UpdateAndExit cmg arg

You can use a dscfg dummy, running "-headless -dedicated -dscfg dummy.txt", and dummy.txt with contents:

Quote

"LotusDedicatedServerSettings" : 0

You can also take a look at my server allocator. It starts/stops server instances based on usage.

Share this post


Link to post
Share on other sites
On 3/17/2018 at 2:10 AM, NoSpax said:

Either those are servers ran by the Launcher on a bad connection or they set them up in  a way, it conflicts.

On my side, i never connect to a dedicated in my Europe region (even my own dedicated to test) , my game turns into a p2p host, as I am missing the "leave conclave"  button when a round ends. Clients can leave. I can only leave in the lobby screen, where i see both teams before a match. I think this is how dedicated server work, as they never leave the conclave.

 

That's interesting, if you can send me a server log _and_ your game log when it fails to connect to it, I might be able to spot a problem.

Share this post


Link to post
Share on other sites

I'd like to give you the logs, but since the recent patch, I can't run a dedicated and warframe on the same system anymore.

Zitat

0.636 Sys [Error]: The cache could not be updated. Another program (or copy of the game) might be using L:\Games\SteamGames\steamapps\common\Warframe\Cache.Windows\H.Misc.cache

I already use "-allowmultiple" on warframe.x64.exe

When I run the server before the Game, the Launcher whites out, saying "Warframe is already started". If I use the other version I have, the Launcher gets stuck during "Searching for new content" until I end the server. The line above is from preprocess.log

If I run Warframe before the server, I get a popup, saying the same. If I cancel that, the server shuts down. if I click OK, the popup loops.

 

However, I can give you a regular EE.log, where I played two matches Lunaro.

Edited by NoSpax

Share this post


Link to post
Share on other sites

Hmm, you should not preprocess at all (the only exceptions are emblems, but dedicated server should not load these). I'll check it here and make sure it works as expected.

Share this post


Link to post
Share on other sites

The proprocess comes from the launcher who doesn't complain about "Warframe is already running".

Ok, I deleted all my logs. Ran a server with -allowmultiple.

The log from dedicated runs fine, no crashes no wierd stuff.

Then I use the launcher from the same version, the log says this:

Zitat

LoadCEFLib

Enable64Bit: 1
EnableFullScreen: 0
EnableDirectX10: 1
EnableDirectX11: 1
EnableBulkDownload: 1
EnableAggressiveDownload: 1
LauncherGPU: 1
EnableMTRendering: 1
SC_PUBLIC
OS Version: 6.1 (SP1)
Finished Platform (0.0 seconds)
Finished PickDirectory (0.0 seconds)

Windows Firewall is enabled for the Private profile type.
Firewall rule group already enabled for the Private profile type.
Finished Firewall (0.2 seconds)

And nothing else, cause it gets white, telling me Warframe runs. I did append -allowmultiple on the Launcher and no, it doesn't work.

The Steam launcher ( I have both the normal and steam version, cross linking Cache.Windows to save space) goes into preprocessing and gets stuck there with the "H.Misc" line i posted above ( I checked for NTFS permissions, they are ok) . You could say, it's my fault for using one directory on 2 version instances, but it actually worked before: Using the non-Steam for the dedicated and the steam Version to play using the same cachefiles. 

Also, there is another problem. If I close the Steam launcher while preprocessing, the dedicated server goes down, too.

How can I send you the 3 logs? PM? Nevermind, using Zendesk. Ticket ID #1183454

 

 

Edited by NoSpax

Share this post


Link to post
Share on other sites
On 1/18/2017 at 2:16 PM, SonicSonedit said:

@[DE]maciejs

Here is a crazy idea, but just listen, okay? Listen... what if you make dedicated servers... for PVE?! I know, sounds crazy, since 90% of players only play conclave and only around 10% of players play PVE game content... right?

We have the "Invite Only" squads if that counts.

 

Share this post


Link to post
Share on other sites
19 hours ago, NoSpax said:

did append -allowmultiple on the Launcher and no, it doesn't work.

You need to append this to the game, not launcher. Launcher doesn't pass these arguments. ("Warframe.x64.exe -cluster:public -allowmultiple" should be enough, but skips patching checks)

Share this post


Link to post
Share on other sites
vor 10 Stunden schrieb spiedie:

You need to append this to the game, not launcher. Launcher doesn't pass these arguments. ("Warframe.x64.exe -cluster:public -allowmultiple" should be enough, but skips patching checks)

I know it won't work, but I was hoping in vain it did.

OK, i resolved the isse with H.Misc/H.Cache by Unlinking both folders, creating a Cache.Windows Folder in Steam Version and creating hardlinks to the source non-Steam Warframe, where H.Misc files was left alone, so each Version has it's own H.Misc file, so it doesn't clash anymore.

I booted up two instances of my dedicated. One public FFA, one Clan-Only. After a few seconds, some player did connect - on the FFA Lunaro and left.

On the ClanServer Instance, nothing. The server is set to clanOnly=1 and inside Warframe i use the "Only Clan"-Option as well (since the server logs in withmy account, it should known which Clan i am on). So in those settings, it should automatically connect me to my decicated, right? Either I am missing something or it does work different, then I think.

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