maciejs 530 Posted January 18, 2017 Share Posted January 18, 2017 (edited) Hey everyone, Below is an Advanced Setup Guide for Dedicated Conclave Servers. For the introduction, please start here: 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) * allianceOnly: boolean - 1 = only members of your alliance can join, 0 = FFA (default). NOTE: if both clanOnly & allianceOnly are set, clanOnly takes priority as it's more specific * 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 -cluster:public -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings -settings:LunaroDedicatedServerSettings Warframe.x64.exe -log:DS1.log -cluster:public -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 October 17, 2017 by maciejs 2 Link to post Share on other sites
SonicSonedit 3,248 Posted January 18, 2017 Share Posted January 18, 2017 @[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? 2 Link to post Share on other sites
(XBOX)The Repo Man151 1,491 Posted January 18, 2017 Share Posted January 18, 2017 3 minutes ago, 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? You people already have the relays. Those are dedicated servers. Why dont you want equality for a minority of players ? 1 Link to post Share on other sites
Sirfol 764 Posted January 18, 2017 Share Posted January 18, 2017 (edited) 10 minutes ago, 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? 6 minutes ago, (Xbox One)CFE Discord said: You people already have the relays. Those are dedicated servers. Why dont you want equality for a minority of players ? And testing private server in 10 maps it's easier to test in 254 nodes, AI behaviour, Matchmaking etc. Incredible right? Edited January 18, 2017 by Sirfol Link to post Share on other sites
maciejs 530 Posted January 18, 2017 Author Share Posted January 18, 2017 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. 1 Link to post Share on other sites
Prime 2,933 Posted January 18, 2017 Share Posted January 18, 2017 thanks a lot for the great documentation! 1 Link to post Share on other sites
Telogor 618 Posted January 19, 2017 Share Posted January 19, 2017 10 hours ago, 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? Many rewards are generated/stored serverside, so letting people host PvE dedicated servers might make it easier to datamine stuff. 1 Link to post Share on other sites
sibercat 2 Posted January 20, 2017 Share Posted January 20, 2017 So what ports do we open ? TCP: 5010 UDP: 5010 1 Link to post Share on other sites
maciejs 530 Posted January 20, 2017 Author Share Posted January 20, 2017 UDP 5010 by default, but you can change it in the settings section (serverPort, in the example above I'm hosting at 2500). 1 Link to post Share on other sites
sibercat 2 Posted January 20, 2017 Share Posted January 20, 2017 (edited) 18 minutes ago, [DE]maciejs said: UDP 5010 by default, but you can change it in the settings section (serverPort, in the example above I'm hosting at 2500). Thank you for fast reply. Are there recommended specs for the server ? Edited January 20, 2017 by sibercat Link to post Share on other sites
maciejs 530 Posted January 20, 2017 Author Share Posted January 20, 2017 Hmm, tough question. GPU doesn't matter obviously and CPU requirements are slightly lower than the game itself (no rendering), but for optimal experience you probably want a multicore machine. Our networking layer is optimized to run in parallel for multiple clients, so the more cores the better (quad core at least). Link to post Share on other sites
Abenoki 1,852 Posted January 21, 2017 Share Posted January 21, 2017 sorry i havent been keeping up but can i run this from a dedicated machine separate from the machine i play warframe on yet? and can we run multiple instances? I have an old FX 8120 system Id like to dedicate to it. Link to post Share on other sites
maciejs 530 Posted January 21, 2017 Author Share Posted January 21, 2017 Yes and yes. Link to post Share on other sites
Abenoki 1,852 Posted January 21, 2017 Share Posted January 21, 2017 14 minutes ago, [DE]maciejs said: Yes and yes. awesome ty, will get it going soon i cant wait :D Link to post Share on other sites
Nyaa314 581 Posted January 24, 2017 Share Posted January 24, 2017 On 1/19/2017 at 8:29 AM, Telogor said: letting people host PvE dedicated servers Here is a crazy idea, but just listen, okay? Listen... what if PVE dedicated servers are hosted... by DE?! I know, sounds crazy, since 90% of games use peer-to-peer and player hosting and only around 10% of games have dedicated servers provided by developers... right? Link to post Share on other sites
BritishBob 798 Posted February 3, 2017 Share Posted February 3, 2017 On 24/01/2017 at 1:55 PM, Nyaa314 said: Here is a crazy idea, but just listen, okay? Listen... what if PVE dedicated servers are hosted... by DE?! I know, sounds crazy, since 90% of games use peer-to-peer and player hosting and only around 10% of games have dedicated servers provided by developers... right? Here is a crazy idea, but just listen, okay? Listen... That would cost a small fortune for the number of separate instances required for the numbers of players warframe currently gets. Link to post Share on other sites
BierWurstGER 103 Posted February 5, 2017 Share Posted February 5, 2017 where im put this line? " Warframe.x64.exe -log:DS1.log -allowmultiple -applet:/Lotus/Types/Game/DedicatedServer /Lotus/Types/GameRules/DefaultDedicatedServerSettings -instance:2 " in the ds.cfg , ee.cfs or in a shortcut ? shortcut im get a error : /Menu/Generic_Error /Lotus/Language/Menu/Framework_MustRunFromLauncher Link to post Share on other sites
spiedie 23 Posted February 5, 2017 Share Posted February 5, 2017 (edited) 6 hours ago, DarmaKarma-EGT- said: shortcut im get a error : Your missing some, add these: -fullscreen:0 -dx10:0 -dx11:0 -threadedworker:1 -cluster:public -language:en Its probably the -cluster one that is required, though @[DE]maciejs should be able to tell us (and fix the guide :)). Edited February 5, 2017 by spiedie Link to post Share on other sites
maciejs 530 Posted February 10, 2017 Author Share Posted February 10, 2017 Doh, good catch, thx guys. Yeah, -cluster is required if running outside the Launcher. Will update the guide in a second. Link to post Share on other sites
helioth137 222 Posted February 11, 2017 Share Posted February 11, 2017 ncie to know this exists, kudos maciejs :) Link to post Share on other sites
Death_Master_ 345 Posted March 21, 2017 Share Posted March 21, 2017 On 1/20/2017 at 9:52 PM, [DE]maciejs said: Hmm, tough question. GPU doesn't matter obviously and CPU requirements are slightly lower than the game itself (no rendering), but for optimal experience you probably want a multicore machine. Our networking layer is optimized to run in parallel for multiple clients, so the more cores the better (quad core at least). I have a big question about that - why does it matter for network layer to have several cores? I mean it uses so few bandwidth that even my old notebook(over 14 years old) can handle such traffic. Game itself on the other end can take lot of resources(AI/events/stats). Link to post Share on other sites
maciejs 530 Posted March 21, 2017 Author Share Posted March 21, 2017 It's not only about bandwidth, running it on multiple cores doesn't affect the amount of data we generate. It's about being able to prepare these packets for N clients at once instead of doing it sequentially. It's not a major perf bottleneck, but the way it's done right now it's very close to being 'free' on decent multi-core machines (the main thread starts a job and goes on his merry way). Link to post Share on other sites
Urska 534 Posted March 21, 2017 Share Posted March 21, 2017 On 1/18/2017 at 0: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? its pvp only to test hosting n get it good enought for pve.... they said this sooo many times... Link to post Share on other sites
SonicSonedit 3,248 Posted March 21, 2017 Share Posted March 21, 2017 (edited) Quote its pvp only to test hosting n get it good enought for pve.... they said this sooo many times... Yeaaah right. Edited March 21, 2017 by SonicSonedit Link to post Share on other sites
DalekAtak 5 Posted August 17, 2017 Share Posted August 17, 2017 Hi Maciek, On 1/18/2017 at 8:12 PM, maciejs said: 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). I've noticed that DS.cfg is being generated as described when dedicated server is spawned for the first time through the launcher UI on a standalone installation but this did not happen on my other installation through Steam (different machine altogether). Is this by design? I should add that I tried it out with Steam installation around two weeks ago and a standalone one yesterday-ish so it's not apples to apples (but it did happen long after your guide indicating that DS.cfg should be created by the launcher UI). Thanks! Link to post Share on other sites
Recommended Posts