[DE]Drew

PC
Dedicated Conclave Servers

357 posts in this topic

On 1/2/2017 at 2:12 AM, BritishBob said:

anyone know if there's an easy way to tell if the game is in the map selection screen

You will be in the lobby for next game when it logs "**** Starting session on HOST". You will also see players drop to 0 for a bit while players reconnect to lobby.

@[DE]maciejs Is there a difference between -headless -dedicated:6 or 6x seperate -applet:... etc? Like if one of the servers crashes, can we safely start one again or will it conflict with the others already running?

I also have a feature request if it isn't to hard: can pid be logged for the instance? Would help a lot in identifying which log belongs to which server instance (or add instance# to the title like fps, works to i guess).

1

Share this post


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

You will be in the lobby for next game when it logs "**** Starting session on HOST". You will also see players drop to 0 for a bit while players reconnect to lobby.

@[DE]maciejs Is there a difference between -headless -dedicated:6 or 6x seperate -applet:... etc? Like if one of the servers crashes, can we safely start one again or will it conflict with the others already running?

I also have a feature request if it isn't to hard: can pid be logged for the instance? Would help a lot in identifying which log belongs to which server instance (or add instance# to the title like fps, works to i guess).

-dedicated:6 is a recommended way as it takes care about stuff like custom log files/port numbers and so on, but you can run it by hand too, there's not much diff (except if you're not careful 2 instances might try to write to the same log/fight for the same port). The only caveat is - you can actually bypass the 6 instance limit that way and in such case process might crash. I'll add the instance # to the title bar.

I've just started cleaning up the server properties a little bit (mostly removing old/deprecated stuff) and hopefully will write a short documentation tonight/tomorrow.

2

Share this post


Link to post
Share on other sites
1 hour ago, [DE]maciejs said:

hopefully will write a short documentation tonight/tomorrow.

very nice! good documentation is key! :clem:

0

Share this post


Link to post
Share on other sites

Thanks for the quick response and awesome work :)

0

Share this post


Link to post
Share on other sites

I've recently started running a dedicated server and would like to know how to tell if no one is using it, so that it can be shut down when need be. I don't want to close things down with players still online. I assume the answer is in the console output, but I'm not quite sure what to look for.

0

Share this post


Link to post
Share on other sites
1 minute ago, Pioverpie said:

I've recently started running a dedicated server and would like to know how to tell if no one is using it, so that it can be shut down when need be. I don't want to close things down with players still online. I assume the answer is in the console output, but I'm not quite sure what to look for.

Just to quote the answer:

3 hours ago, spiedie said:

You will be in the lobby for next game when it logs "**** Starting session on HOST". You will also see players drop to 0 for a bit while players reconnect to lobby.

 

If you look here:

fEgDPBf.jpg

 

The server window shows Warframe x64 x player(s). When that drops drastically or to 0 there's no one in the server.

1

Share this post


Link to post
Share on other sites
1 minute ago, BritishBob said:

If you look here:

fEgDPBf.jpg

 

The server window shows Warframe x64 x player(s). When that drops drastically or to 0 there's no one in the server.

Thank you, I feel rather silly for missing that. I hope you have a great day.

0

Share this post


Link to post
Share on other sites
Just now, Pioverpie said:

Thank you, I feel rather silly for missing that. I hope you have a great day.

I asked the same question, hence I new where to find the answer. XD

0

Share this post


Link to post
Share on other sites

To make it a little bit easier, in the latest version if you press Q, it'll 'queue' the shutdown request and execute it as soon as we detect it's "OK" to do so (no players connected or between games).

2

Share this post


Link to post
Share on other sites

Posted (edited)

OK, as promised, a basic documentation. This is a preliminary version, I don't want to keep you waiting, will clean it up a little bit and talk to our forum crew so it's in a more accessible place (rather than buried at page 15):

Starting a dedicated server boils down to running a special applet 'within' Warframe. Dedicated server configuration is described by 2 structures:
- LotusDedicatedServerSettings (in DS.cfg) - everything related to server settings
- LotusDedicatedServerAccountSettings (in EE.cfg) - Warfame account settings
In most cases, there's no need to worry about LotusDedicatedServerAccountSettings, it only contains your email address (so that system knows who gets the credit) and is set automatically by the game (that's why it resides in the EE.cfg file).

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).
LotusDedicatedServerSettings resides in the DS.cfg file (only accessed by dedicated server process) and looks like:
[LotusDedicatedServerSettings,/Lotus/Types/Game/DedicatedServerSettings]
(..settings)

Dedicated server applet has only 1 required argument: default dedicated server settings type (to initialize your DS.cfg with). For the time being, it should always be "/Lotus/Types/GameRules/DefaultDedicatedServerSettings".

Example:
Warframe.x64.exe -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings

Other applet arguments:
* -instance:X (where X is a positive number) - useful when running multiple instances on the same computer, it'll make sure each unique instance uses an unique network port (base port + instance number)
* -override:JSON string - allows for overriding parts of the LotusDedicatedServerSettings. This is what the Launcher uses, but if you insist on running applet by hand, it's easier to use th next argument -
* -settings:server settings name (in DS.cfg) - specifies server settings type to use instead of LotusDedicatedServerSettings. For example to start a Lunaro server we add the following settings type to DS.cfg:

[LunaroDedicatedServerSettings,LotusDedicatedServerSettings]
missionId=SB_Title

...and run the applet with -settings:LunaroDedicatedServerSettings argument.
Alternatively, you can edit your default settings (LotusDedicatedServerSettings).

Server settings properties


Note: boolean in this context is represented as a number. 0 = false/disabled, 1 = true/enabled

* serverPort: number - network port to use (default: 5010)
* missionId: string - mission/gamemode ID (default: empty). Possible values:
  SB_Title (Lunaro), TDM_Title (Team Deathmatch), DM_Title (Deathmatch), CTF_Title (Capture the Flag)
* eloRating: number, only 2 values allowed 0 (recruit conditioning enabled) or 2 (FFA, default)
* matchmakingRegionOverride: string - matchmaking region. Possible values:
  NORTH_AMERICA, SOUTH_AMERICA, EUROPE, ASIA, OCEANIA, RUSSIA. Use with care.
* motd: string - Message Of The Day
* enableVoice: boolean - 1 = VOIP enabled (default), 0 = VOIP disabled (for clients)
* clanOnly: boolean - 1 = only members of your clan can join, 0 = FFA (default)
* useAlternativePVPMode: boolean - 1 = try host "variant" mode (if available). Default: 0
* highBandwidth: number (0, 1 or 2) - controls frequency of object property updates (property = position, rotation, health and so on). By default (highBandwidth=0) our high priority props are transmitted up to 30 times per second. highBandwidth=2 doubles tha frequence to 60hz and highBandwidth=2 gives 120hz. Please keep in mind that setting it to 1/2 effectively doubles your bandwidth requirements, so make sure your connection can handle it.

Example (DS.cfg):

Let's assume we'd like to host a newb-friendly DM server at port 2500, without VOIP and sending updates at 60z:
[MyDedicatedServerSettings,LotusDedicatedServerSettings]
serverPort=2500
missionId=DM_Title
eloRating=0
enableVoice=0
highBandwidth=1

Apart from controlling how often we try to send properties, we can also set desired update rate (FPS essentially). By default, dedicated server is getting updated 30 times per second. Update rate is controlled by the application (not server!) setting and can be changed in the LotusDedicatedServerConfig section of the DS.cfg file. For example, to run updates at 60hz (required for the highBandwidth=1 to work properly), we add/edit the following lines:

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

Apart from *applet* commandline arguments, there are certain Warframe arguments that can come handy, especially if running more than one instance (note: these need to appear before -applet argument):
- allowmultiple: allows us to run more than 1 instance of Warframe process
- log:logname: specifies the log file to use (so that multiple instances do not fight for access)
For example, let's assume we've created 2 setting types, one for Lunaro (LunaroDedicatedServerSettings) and one for DM (MyDedicatedServerSettings). In order to run 2 server instances we can do:
Warframe.x64.exe -log:DS0.log -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings -settings:LunaroDedicatedServerSettings
Warframe.x64.exe -log:DS1.log -allowmultiple -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings -settings:MyDedicatedServerSettings -instance:1

Launcher arguments

In most cases it's recommended to use Launcher for starting a dedicated server process instead of running the applet manually. It ensures you're always running the most up-to-date version of Warframe and validates command-line arguments. The easiest and most straightforward way is to simply use the Launcher GUI as described in the first post. However, there are cases where we might need to run a commandline version (for example our server doesn't have a GPU beefy enough to run WF, but CPU can handle the dedicated server fine). In order to run the Launcher in the headless mode and start server as soon as the updates are done use -headless -dedicated command line arguments.
* -headless: run in headless mode (no GUI)
* -dedicated: automatically run the dedicated server after the update. It's possible to specify additional properties here - number of DS instances and/or server settings to use.
* -dscfg:config_file_name: use custom config file to streamline launching multiple instances of different server types, see the DS Config File section

Some examples:
* Launcher.exe -headless -dedicated - spawn 1 instance of the dedicated server, using default settings (LotusDedicatedServerSettings in DS.cfg)
* Launcher.exe -headless -dedicated:3 - spawn 3 server instances, all using default settings
* Launcher.exe -headless -dedicated:LunaroDedicatedServerSettings - spawn 1 instance of Lunaro server
* Launcher.exe -headless -dedicated:2,MyDedicatedServerSettings - spawn 2 server instances, using given settings
* Launcher.exe -headless -dedicated -dscfg:MyServerConfig.txt

Note: -headless version is known to work under Linux+WINE

DS Config File

Format is technically JSON based, but I'm not super strict, at the very bottom it's a list of key:value pairs separated with commas or newline characters. Key = server settings to use (referencing settings in DS.cfg file), value = number of instances to spawn.

For example, to spawn 2 instances of Lunaro server and 3 instances of CTF:

1) create required settings types in DS.cfg (let's name them LunaroDedicatedServerSettings and CTFDedicatedServerSettings:

[LunaroDedicatedServerSettings,LotusDedicatedServerSettings]
missionId=SB_Title

[CTFDedicatedServerSettings,LotusDedicatedServerSettings]
missionId=CTF_Title

2) Create config file, for example MyServerConfig.txt, in Launcher directory:

"LunaroDedicatedServerSettings" : 2,
"CTFDedicatedServerSettings" : 3

3) Start launcher with the following command line arguments: Launcher.exe -headless -dedicated -dscfg:MyServerConfig.txt

4) Enjoy!

Updates

Server will periodically check whether our version is up-to-date. If not - it'll shut down as soon as it's safe to do so (no one connected or between missions) and run the Launcher (headless version, so it should update and restart the server).

Key shortcuts

Dedicated server window handles the following commands:

Alt+F4 - shutdown server gracefully (immediately, no other checks)
Q - shutdown server gracefully at the next opportunity (no players or between games)

 

Edited by [DE]maciejs
7

Share this post


Link to post
Share on other sites

Posted (edited)

@[DE]maciejs Thanks a lot for the writeup!

Since the last update all my servers are starting in alternative mode even if I set the useAlternativePVPMode to 0. Is there something else that changed?

Update: looks like it only happens with multiple instances e.g. this works:

Launcher.exe -headless -dedicated:MySrvSettings

However, this doesn't

Launcher.exe -headless -dedicated:2,MySrvSettings

Edited by p41nfr4m3
update
0

Share this post


Link to post
Share on other sites

Nice to have everything in one place :)

I would like to note that restarting after a patch never worked, couldn't find the process (looks for launcher.exe in install folder instead of appdata). I actually prefer it that way though, otherwise multiple servers restarting just makes them crash and overwrite logs i might want to save. Maybe an option to disable auto restart would be nice after its fixed.

Also just to verify, titles like TDM_Alt_Title still work right? No need to use useAlternativePVPMode?

0

Share this post


Link to post
Share on other sites
1 hour ago, spiedie said:

Nice to have everything in one place :)

I would like to note that restarting after a patch never worked, couldn't find the process (looks for launcher.exe in install folder instead of appdata). I actually prefer it that way though, otherwise multiple servers restarting just makes them crash and overwrite logs i might want to save. Maybe an option to disable auto restart would be nice after its fixed.

Also just to verify, titles like TDM_Alt_Title still work right? No need to use useAlternativePVPMode?

Restart was something else I think (headless version didn't handle the 'game is running' case too well). Only the first server (id=0) will try to restart, but yeah, I can add an option to disable.

As for the other thing, yes, it'll work, useAlternativePVPMode just does the translation for you. However, it's recommended you use useAlternativePVPMode  as it only selects this mode if it's actually active. Otherwise, you might host an alternative mode (by forcing TDM_Alt_Title), but clients will not have any way to find it (mode inactive).

1

Share this post


Link to post
Share on other sites
14 hours ago, [DE]maciejs said:

OK, as promised, a basic documentation. This is a preliminary version, I don't want to keep you waiting, will clean it up a little bit and talk to our forum crew so it's in a more accessible place (rather than buried at page 15):

Starting a dedicated server boils down to running a special applet 'within' Warframe. Dedicated server configuration is described by 2 structures:
- LotusDedicatedServerSettings (in DS.cfg) - everything related to server settings
- LotusDedicatedServerAccountSettings (in EE.cfg) - Warfame account settings
In most cases, there's no need to worry about LotusDedicatedServerAccountSettings, it only contains your email address (so that system knows who gets the credit) and is set automatically by the game (that's why it resides in the EE.cfg file).

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).
LotusDedicatedServerSettings resides in the DS.cfg file (only accessed by dedicated server process) and looks like:
[LotusDedicatedServerSettings,/Lotus/Types/Game/DedicatedServerSettings]
(..settings)

Dedicated server applet has only 1 required argument: default dedicated server settings type (to initialize your DS.cfg with). For the time being, it should always be "/Lotus/Types/GameRules/DefaultDedicatedServerSettings".

Example:
Warframe.x64.exe -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings

Other applet arguments:
* -instance:X (where X is a positive number) - useful when running multiple instances on the same computer, it'll make sure each unique instance uses an unique network port (base port + instance number)
* -override:JSON string - allows for overriding parts of the LotusDedicatedServerSettings. This is what the Launcher uses, but if you insist on running applet by hand, it's easier to use th next argument -
* -settings:server settings name (in DS.cfg) - specifies server settings type to use instead of LotusDedicatedServerSettings. For example to start a Lunaro server we add the following settings type to DS.cfg:

[LunaroDedicatedServerSettings,LotusDedicatedServerSettings]
missionId=SB_Title

...and run the applet with -settings:LunaroDedicatedServerSettings argument.
Alternatively, you can edit your default settings (LotusDedicatedServerSettings).

Server settings properties


Note: boolean in this context is represented as a number. 0 = false/disabled, 1 = true/enabled

* serverPort: number - network port to use (default: 5010)
* missionId: string - mission/gamemode ID (default: empty). Possible values:
  SB_Title (Lunaro), TDM_Title (Team Deathmatch), DM_Title (Deathmatch), CTF_Title (Capture the Flag)
* eloRating: number, only 2 values allowed 0 (recruit conditioning enabled) or 2 (FFA, default)
* matchmakingRegionOverride: string - matchmaking region. Possible values:
  NORTH_AMERICA, SOUTH_AMERICA, EUROPE, ASIA, OCEANIA, RUSSIA. Use with care.
* motd: string - Message Of The Day
* enableVoice: boolean - 1 = VOIP enabled (default), 0 = VOIP disabled (for clients)
* clanOnly: boolean - 1 = only members of your clan can join, 0 = FFA (default)
* useAlternativePVPMode: boolean - 1 = try host "variant" mode (if available). Default: 0
* highBandwidth: number (0, 1 or 2) - controls frequency of object property updates (property = position, rotation, health and so on). By default (highBandwidth=0) our high priority props are transmitted up to 30 times per second. highBandwidth=2 doubles tha frequence to 60hz and highBandwidth=2 gives 120hz. Please keep in mind that setting it to 1/2 effectively doubles your bandwidth requirements, so make sure your connection can handle it.

Example (DS.cfg):

Let's assume we'd like to host a newb-friendly DM server at port 2500, without VOIP and sending updates at 60z:
[MyDedicatedServerSettings,LotusDedicatedServerSettings]
serverPort=2500
missionId=DM_Title
eloRating=0
enableVoice=0
highBandwidth=1

Apart from controlling how often we try to send properties, we can also set desired update rate (FPS essentially). By default, dedicated server is getting updated 30 times per second. Update rate is controlled by the application (not server!) setting and can be changed in the LotusDedicatedServerConfig section of the DS.cfg file. For example, to run updates at 60hz (required for the highBandwidth=1 to work properly), we add/edit the following lines:

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

Apart from *applet* commandline arguments, there are certain Warframe arguments that can come handy, especially if running more than one instance (note: these need to appear before -applet argument):
- allowmultiple: allows us to run more than 1 instance of Warframe process
- log:logname: specifies the log file to use (so that multiple instances do not fight for access)
For example, let's assume we've created 2 setting types, one for Lunaro (LunaroDedicatedServerSettings) and one for DM (MyDedicatedServerSettings). In order to run 2 server instances we can do:
Warframe.x64.exe -log:DS0.log -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings -settings:LunaroDedicatedServerSettings
Warframe.x64.exe -log:DS1.log -allowmultiple -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings -settings:MyDedicatedServerSettings -instance:1

Launcher arguments

In most cases it's recommended to use Launcher for starting a dedicated server process instead of running the applet manually. It ensures you're always running the most up-to-date version of Warframe and validates command-line arguments. The easiest and most straightforward way is to simply use the Launcher GUI as described in the first post. However, there are cases where we might need to run a commandline version (for example our server doesn't have a GPU beefy enough to run WF, but CPU can handle the dedicated server fine). In order to run the Launcher in the headless mode and start server as soon as the updates are done use -headless -dedicated command line arguments.
* -headless: run in headless mode (no GUI)
* -dedicated: automatically run the dedicated server after the update. It's possible to specify additional properties here - number of DS instances and/or server settings to use.

Some examples:
* Launcher.exe -headless -dedicated - spawn 1 instance of the dedicated server, using default settings (LotusDedicatedServerSettings in DS.cfg)
* Launcher.exe -headless -dedicated:3 - spawn 3 server instances, all using default settings
* Launcher.exe -headless -dedicated:LunaroDedicatedServerSettings - spawn 1 instance of Lunaro server
* Launcher.exe -headless -dedicated:2,MyDedicatedServerSettings - spawn 2 server instances, using given settings

Note: -headless version is known to work under Linux+WINE

Updates

Server will periodically check whether our version is up-to-date. If not - it'll shut down as soon as it's safe to do so (no one connected or between missions) and run the Launcher (headless version, so it should update and restart the server).

Key shortcuts

Dedicated server window handles the following commands:

Alt+F4 - shutdown server gracefully (immediately, no other checks)
Q - shutdown server gracefully at the next opportunity (no players or between games)

 

 

tumblr_ly4cyeWd931qcgipb.gif

0

Share this post


Link to post
Share on other sites

Posted (edited)

Did a recent hotfix break -dedicated:X? Mine only spawn 1 with -headless -dedicated:2.

Working again? Weird. Maybe had to do something with restarting for an update.

Edited by widenose
0

Share this post


Link to post
Share on other sites

Posted (edited)

I have some problems with your CDN with my server, I can't download update. I encounter the 403 error (forbidden), the host is origin.warframe.com . Seems like my server IP is in a range of IPs being banned.

Is there a way to bypass this blocking? Using a VPN works but will add latency.

EDIT: I'm using a VPN to redirect all traffic from origin.warframe.com, so it should works, without adding latency to players.

EDIT: Session update failed due to api. warframe.com being in cdn too. Adding this adresse to the vpn fixed the session update.

EDIT:

Quote
  1. 610.310 Sys [Error]: Bad data from worldState.php (error 3):
  2. 610.310 Sys [Error]: Error parsing ProjectPct[0] (junk found after value)
  3. 610.310 Sys [Error]: Error parsing ProjectPct[1] (junk found after value)
  4. 610.310 Sys [Error]: Unknown property: Sorties[0].Variants[0].tileset
  5. 610.310 Sys [Error]: Unknown property: Sorties[0].Variants[1].tileset
  6. 610.310 Sys [Error]: Unknown property: Sorties[0].Variants[2].tileset
  7. 610.310 Sys [Error]: Unknown property: NodeOverrides[4].Expiry
  8. 610.310 Sys [Error]: Unknown property: NodeOverrides[5].Expiry

Is this a normal behaviour?

Edited by Nitix
0

Share this post


Link to post
Share on other sites

More crashes, looks like its always when a player is disconnected. Most crashes are when running CTF.

WAR-1153640
WAR-1159233

0

Share this post


Link to post
Share on other sites
On 2017-01-05 at 8:51 AM, Nitix said:

I have some problems with your CDN with my server, I can't download update. I encounter the 403 error (forbidden), the host is origin.warframe.com . Seems like my server IP is in a range of IPs being banned.

Is there a way to bypass this blocking? Using a VPN works but will add latency.

EDIT: I'm using a VPN to redirect all traffic from origin.warframe.com, so it should works, without adding latency to players.

EDIT: Session update failed due to api. warframe.com being in cdn too. Adding this adresse to the vpn fixed the session update.

EDIT:

Is this a normal behaviour?

"Normal" let's say (talking about the warnings). Ideally we'd fix it, but it doesn't cause any real problems.

0

Share this post


Link to post
Share on other sites

@[DE]maciejs Is there a way to get my IP whitelisted from your CDN ? Using VPN isn't the best solutions, sometimes the vpn disconnect as I'm using a free one.

0

Share this post


Link to post
Share on other sites

Is it possible to run multiple instances with different game types? I have been trying to get it going for a while now but can't get it going for the life of me all the server instances run only the one game mode. :P

0

Share this post


Link to post
Share on other sites

Hi, yeah. It was possible before, but required a little bit too much tinkering. Should be streamlined in the latest version. In order to do that you have to create a simple configuration file for your servers. Format is technically JSON based, but I'm not super strict, so at the very least you need something like this:

(file named e.g. MyServerConfig.txt, should be in Launcher directory)

"LunaroDedicatedServerSettings" : 2,
"MyDedicatedServerSettings" : 1

LunaroDedicatedServerSettings & MyDedicatedServerSettings refer to settings in your DS.cfg file (see https://forums.warframe.com/topic/709664-dedicated-conclave-servers/?page=15#comment-8256788

Now all that's left is running Launcher with -headless -dedicated -dscfg:MyServerConfig.txt and it should spawn 2 Lunaro servers and 1 server using MyDedicatedServerSettings.

0

Share this post


Link to post
Share on other sites

Two more crashes, WAR-1165023 and WAR-1165775. Any idea what these are? All previous crashes happened right after a player left, but these are both different and the last crash before these was a week ago.

0

Share this post


Link to post
Share on other sites

Yeah, these 2 seem new, some gameplay related stuff, I'll try to fix.

0

Share this post


Link to post
Share on other sites

Had my first crash. If it's network related it's my ISP. Line issues in the area atm. :sadcry:

WAR-1165194

Im planning on messing with running different game modes over the weekend so i'll report any issues.

Edited by BritishBob
0

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