about 5 years ago - Toolguy - Direct link

There you go!
1.0.28 is now the official version :slight_smile:

And a small sneakpeak of the new version:

Mods%20update

It’s getting there.

Now I need to find an easy way to force installing old versions so I can check when updates are available, without having to build my own test mods…

(Saying that I extremely dislike having to parse HTML and acf files to extract information that is not encoded in computer readable format in order to compare them… would be an understatement!)

about 5 years ago - Toolguy - Direct link

It’s in the new version, 1.0.28 has not changed.

What you mean by ‘force installing old version’? If a server add a new mod it is installed automatic when restart.

It’s for development purpose: I need to be able to revert to an older version to make sure my tool detect new versions… when I’m all “up to date” it’s getting difficult to test.

about 5 years ago - Toolguy - Direct link

What I could do, is to release a test version that does not do the restart, but has a “Check” button that allows you to check your mods toward the Steam Workshop releases.

That would be an easy way to start verifying if my check code is working as expected.

In my current test case, I have the following mods installed: 860241645,880454836,1382120864,1386650198,1422434062

Only Pipi was up to date, when I pressed my Check button I got that:

BeforeUpdating

As you can see, Pippi was not flagged as out of date, and 1422434062 has a question mark on the WorkshopTime, which is confirmed by going to the Steam Workshop page:

That item does not exist. It may have been removed by the author.

After restarting the server, click Check again shows the following:

AfterUpdating

None of the mods are marked as “need update”, and the local version of 1422434062 has apparently been removed by SteamCMD.

Do you feel like testing the new version and signal any weird issue?

about 5 years ago - Toolguy - Direct link

Ok, if you want to give a shot:

Dedicated Server Launcher 1.0.29

  • The MaxPlayers parameter is now passed on the command line, should help keep it sticky
  • First pass implementation of the mod update check

The “check” button is on the top, at the right of “Don’t auto-update Server and Mods” and the information is displayed on the Discord webhook (It’s temporary, but that was practical to test).

about 5 years ago - Toolguy - Direct link

Just for the sake of testing, you can just put “http://test” (or whatever really) and check Enable in the Discord tab, then after clicking Check you will see the result in the server launcher logs:

C:\DedicatedServerLauncher\Logs\DedicatedServerLauncher(1.0.29).2019.03.12 19.55.39-0370.txt

[2019-03-12 19:58:44.527] [TID:15892] DATAERROR: DedicatedServerLauncher - SendDiscordWebhookMessage: Failed sending the message 'Checking the status of the installed mods:

#880454836 ("Pippi - User & Server Management - v2.1.11")
- WorkshopTime: 2019.01.18 03.59.00
- InstalledTime: (?)
---> NEED UPDATE!
' to the Discord Webhook URL 'http://test'

it’s just for testing that the time stamp parsing is working :slight_smile:

about 5 years ago - Toolguy - Direct link

Cool, thanks to both of you for the check.

My plan is to:

  • Implement the delayed restart (was a request from @MidnightFC) option
  • Change the “Don’t auto-update Server and Mods” checkbox to a combo with three choices: “Don’t auto-update on restart / Auto-update on restart / Check for updates while running and then restart”
  • Add the check (guess I can do a check every 5 minutes)
  • First time a new mod is detected as “not up to date”, post a message in Discord and RCon saying that a mod need to be updated and that the server will restart for updates in “n” minutes (with “n” being the actual delay selected for the first warning message) - Except if we were already in the restart phase, in which case the message is not really necessary.

Does that sound like an acceptable plan?

about 5 years ago - Toolguy - Direct link

So, today I did a second iteration on the mod update feature.

Dedicated Server Launcher 1.0.30

  • Instead of the immediate restart button, could we get another one that starts the same countdown that regular restarts do (eg. 10, 5 and 2 minute warnings). (MidnightFC)
  • Second pass implementation of the mod update check

I have to admit that the code is becoming really messy… with timers and states and asynchronous checks all over the place.
Anyway, here is what it looks like:

DedicatedServerLauncher1030-changes.png1207×663 92.5 KB

(picture)

At the top, the check box to disable SteamCMD has been replaced by a combo selector with three options:

  • Don’t run SteamCMD when starting the server
  • Run SteamCMD when starting the server
  • Run SteamCMD when starting the server and also check now and then if there are mods to updates in which case just restart
    when this third option is selected, the small time selector on the right is activated, and you can put a delay in minutes.
    The default value is 5 minutes, and you can’t go less than that because “bad things would happen” ™

At the bottom right, there is small new icon/button where “Restart” is located.

When you press this button, it turns “red” and if you look at the bottom, the “Restart in …” message is modified to indicated that the restart will happen very soon.
The actual delay is based on what you entered as values for the Warning Messages, picking up the longest delay as the restart delay.

If for some reason you decided that after all you don’t want to restart, just click the button again.

I implemented the mod restart by simulating a click on this button, so basically you can manually bypass a mod check by clicking on the hourglass icon.

Hopefully that works fine, but as usual I need your feedback: There are so many things that can go wrong, between the tool, windows updates, steam’s website, some random error in the ACF parser, etc…

about 5 years ago - Toolguy - Direct link

It should, same thing if you click on the hourglass icon.

Does it check for new patches too?

For the server itself?
Not at the moment, but if you know of a way to check that, why not.

about 5 years ago - Toolguy - Direct link

I’ve been working on the Server update detection today, I tried first to use steamcmd’s “+app_info_update 1 +app_info_print 443030” parameters, but I got some very unreliable results…

There is a Steam Web API that can do that, but it is limited to 200 queries per period of 5 minutes max (associated to an API key), so there’s a definite risk of going over the limit, which means that we would somewhat need to get our own server caching the information. (Obviously we (Funcom) know when we push a new version to Steam, but we have zero control on WHEN the version is actually available on Steam, so we can’t really use this information.)

If some of you have any experience in getting SteamCMD to reliably report the last change information for an application, please tell!

about 5 years ago - Toolguy - Direct link

I’ve unfortunately no idea, I guess I could ask at work on Monday, but as far as I know, it’s just a default built-in feature of Unreal/Steam, not something we added.

Regarding my tool involvement in that, all I do is to transform the two checkboxes into entries in the ServerSettings.ini file:

  m_ServerSettingsIni.SetEntryBoolean("[ServerSettings]", "IsBattlEyeEnabled", m_BattlEyeEnabled);
  m_ServerSettingsIni.SetEntryBoolean("[ServerSettings]", "IsVACEnabled"     , m_ValveAntiCheatEnabled);

I guess based on your report, the server does correctly report if it’s VAC enabled, but for some reason the client does not? Where do you see that? Could it just be some UI issue, with VAC being enabled but not actually shown?

about 5 years ago - Toolguy - Direct link

So, after much pain and frustration, I realized that when calling SteamCMD you get different results depending of the appcache folder content, so if you call:

steamcmd.exe +login anonymous +app_info_update 1 +app_info_print 443030 +quit

you will have different information depending of how old the appinfo.vdf content is, which is a problem when you are trying to get information about the latest version of the application. :scream:

I ended up doing some dark magic, temporarily renaming the appinfo file to something else before call SteamCMD and then reverting to the old appinfo file (when I did not do that, I somewhat got an error on restart because not all files were matching). :expressionless:

Since it’s some pretty naughty code, I can’t guarantee it will always work, but I made a version that implements that so you people can test:

Dedicated Server Launcher 1.0.31

So basically (assuming it works) this is the version you were waiting for: It checks for both server and mod updates, and if found triggers the restart.

:crossed_fingers:

ServerUpdateFound.png602×700 48.8 KB

@valmar I transmitted the information, but I can’t give you any estimate about when the team will be able to actually look for what causes the issue, between our own code, Epic’s code, Valve’s code, the issue can be in many different places. Do you know if that’s something that has been happening with other UE4 based games?

about 5 years ago - Toolguy - Direct link

That was also one of my problems for testing, I had to keep old versions of the installed game and mods and kept overwriting my main folder so I could test the detection code :smiley:

about 5 years ago - Toolguy - Direct link

“oops”

I forgot to specify the branch in use in the check, so it always find there’s an update because basically it’s checking the Live branch status toward your Test Live installed branch.

I’ll make a new version tomorrow, good thing you caught that :slight_smile:

By the way, does the Live / TestLive feature works correctly (other than what you found)?

How does the auto restart if new mods affect this daily restart?

If you have mod update enabled, this overrides all the other auto-restarts, except if the auto-restart procedure is already started (at least it’s how it’s supposed to work).

Glad you are happy, it’s definitely a collaborative effort, and for my part I’m happy that most requests made sense, and that the all of you joined to make sure that it kept making sense :slight_smile:

There are still a few features I’d like to add, mostly the ability to Import settings/databases from existing server installs, update the log view to show the player chats separately, and possibly a way to control the launcher from in game (by sending commands through the chat window to for example force restart the server).

about 5 years ago - Toolguy - Direct link

Ok, so I made a fix for TestLive, adding the missing “beta” flag:

  dw::String steamCmdCommandLine = m_SteamCmdExecutable;
  steamCmdCommandLine += " +login anonymous";
  steamCmdCommandLine += " +app_info_update 1";
  steamCmdCommandLine += " +app_info_print " + std::to_string(applicationId);
  steamCmdCommandLine += " -beta " + (steamBranchName.empty() ? "default" : steamBranchName);
  steamCmdCommandLine += " +quit";

Obviously I could have use the same code for the SteamCMD Update and the check, but in practice they work very differently: One has to be asynchronous and we don’t really care about what it prints out, while the checking one needs to return the actual output of the command, so ultimately there was not much code in common, and I’d rather avoid breaking again the “double SteamCMD” fix…

Dedicated Server Launcher 1.0.32

Hopefully that will fix the issue,.

I believe the answer is in my message posted two messages above yours :slight_smile:

There are still a few features I’d like to add (…) update the log view to show the player chats separately,

Basically, if you (the users of the tool) come up with filtering rules, I can add tabs to allow you to see “all the chat”, or “player joining/leaving/talking”, or “random warnings and errors”, etc…

If I understand correctly:

  • You have setup your server to use some mods, but you do not have SteamCMD updates enabled?
  • The connected clients are showing some errors regarding mods?

If yes, then the problem is that using Steam it is not possible to get a specific version of a MOD, so if your server says “I’m using Pippi mod”, then the client will ensure that it gets the mod Pippi… at the latest version. If you have disabled the updates on the server, then your server will use the old mod version, but the client will use the new one.

Is there a specific reason why you disabled the updates?

about 5 years ago - Toolguy - Direct link

So, I asked a colleague who’s working on the game about what you are asking, and here is what he answered:

Hope that helps?

about 5 years ago - Toolguy - Direct link

:sob:

Well, thanks bearing with me… and please try that one…
http://cdn.funcom.com/downloads/exiles/DedicatedServerLauncher1033.exe

about 5 years ago - Toolguy - Direct link

\o/

Yes, when the button rotate it basically means there is a SteamCMD running, it’s an easy way to see if the check timer does actually run.

Regarding why the previous version did not work… well… yes I did correctly added the “-beta testlive” to the SteamCMD command line… but I forgot to change the section of the ACF I checked for the date, so I was still looking for the value of
443030 / depots / branches / public / timeupdated
instead of
443030 / depots / branches / testlive / timeupdated

I’m going to leave this version in test for a couple days, making sure it works fine, if it looks ok to everybody, then it can become the new official one.

Dang, that was a tough one to get right!

about 5 years ago - Toolguy - Direct link

I would be interested by knowing the mod id, your DedicateServerLauncher logs for that day… and your timezone.

I realize that there may be some discrepancies between the SteamWorkshop website and the actual timestamps in the ACF files of SteamCMD, that could be enough to delay the detection of an update by a few hours depending where you live.

about 5 years ago - Toolguy - Direct link

Sorry for the lack of answers, I had a pile of stuff to go through and did not have time to do any more work on the launcher.

So, let see:

@Jarlaxale I assume this was was you were asking about?

I did transmit the request, I looked at the code and it seems doable, BUT, I’m not the one working on the game/ui code, and the entire Exiles team was busy working on the two big patches and doing support for the freeweeked, so they did not have the time to do anything for convenience features.

But there is a task in the system about it, it’s not forgotten :slight_smile:

In the meantime, my only suggestion is to have a Discord channel for your players, and have the “ready message” of the Dedicated Server Launcher to include the connection link tokens so they appear in the messages:

Added some magic tokens ({servername} and {steamconnect}) to the Discord messages, allowing to insert the server name or steam connect connection string (Maldred)

“You can now connect to {servername} by clicking on {steamconnect}”

will become

“You can now connect to My Server Conan by clicking on steam://connected/123.456.789.012”

I’m not actually working on any Exiles game feature, I’m not a member of their team, I do now and then discuss with them for things that are directly impacting the server launcher (things like connection issues, RCon problems, issues with settings not sticking, etc…) but pure gameplay requests should go to the actual suggestion/request forum:

https://forums.funcom.com/c/conan-exiles/exiles-suggestions

I checked the logs, did not see anything specially wrong there, and I was not able to reproduce the issue. Is that something that only happened to @MDic , or is it something some other among you have encountered with the recent versions?

The game client actually loads the files and run the code inside to get the installed version number, and the server does the same, then both versions are compared.

Not something I can implement in the tool.

I unfortunately did not have the time to check what was wrong with the time stamp check, because I need to be able to publish my own mods and server version to reproduce the issues, I can’t just wait for somebody to update their versions, so it’s not that trivial to fix.

Sorry for the delays, I also hate when things take that long, I think SteamCMD has joined the long list of software that seem to have been designed to be hard to use.

about 5 years ago - Toolguy - Direct link

What exactly happens, it does stay running, does not even show the confirmation dialog asking if we want to quit?

Guess I’m probably missing som WM_CLOSE or something like that in the code.

Always so annoying to test stuff that involves restarting a machine :smiley:

Regarding the password thing, I checked your logs (I forgot to answer, sorry), it all seemed fine, what I’d like to have is one such log from when the password actually disappears in the launcher UI: Is it actually in the INI file and only missing in the UI, or is it also gone from the INI file.

about 5 years ago - Toolguy - Direct link

The server does not actually know about Discord, it’s the Launcher program that does that, sending messages both to the Discord Chan and to the server through RCon’s protocol.

Next time it happens, please, before reapplying the password:

  • Go to ConanExilesDedicatedServer\ConanSandbox\Saved\Config\WindowsServer
  • Make a copy of Engine.ini
  • Send it to me on a private message

Then you reapply and restart :slight_smile:

Thanks.

about 5 years ago - Toolguy - Direct link

How is that even possible ???
:exploding_head:

about 5 years ago - Toolguy - Direct link

Actually I think it’s totally, absolutely, reliably… incorrect, but it depends where you live.

If you live in Washington, you probably perfect mod detection…

…I was investigating the problem, and I realize that when fetching the HTML content from the workshop page I was receiving different time stamps that when looking at the page directly in my web browser, from Oslo I actually have a 8 hours time difference.

I’m not quite sure of how to approach the issue, either I can find some headers to add to my HTTP request (using cURL) to try to get the Valve webserver to return me data in UTC format, or I keep the existing query and I add the missing 7 hours required to be back to UTC.

about 5 years ago - Toolguy - Direct link

For the record, what is your actual timezone, and are DST currently active?

Depends of what you mean by that.

[2019-03-15 13:32:55.903] [TID:19040] IMPORTANT: DedicatedServerLauncher - DedicatedServerLauncher Started

On the Dedicated Server Launcher logs, the timestamps on the left side of each line, is always in UTC.
It’s something we have standardized at Funcom for many years: It’s the only way to be able to cross reference logs from multiple clients and servers which may be running on different time zones, or with different daylight savings settings.

Now, if a date or time is displayed as part of one of the messages, then in general this time is displayed in local time, but that’s not 100% guaranteed.

If you have a specific example in mind, I can check :slight_smile:

I find it infuriating that Valve provides an API that can tell you everything you don’t care about a game (like the latest news about if they will be present at GDC, etc…) but you can’t get in a straight forward and consistant way things like release numbers, updates, versions, etc…

about 5 years ago - Toolguy - Direct link

So, I did some more testing, if that continues one side effect is going to be that I’m going to be bald very soon because of all the hair ripping.

So I tried with various browsers and page grabbers on my own awesome mod (just a text file that does nothing, but it’s practical to test updates).

I entered https://steamcommunity.com/sharedfiles/filedetails/changelog/1695473408 in Chrome, and the page told me “Update: 27 mar @ 4:46am”.

Then I pressed F5, and TADAAAA! “Update: 27 mar @ 12:46pm”.

I took a screenshot:

UpdateDateMadness.png1479×1101 273 KB

I’ve no idea exactly where/what/when the time change is performed, if it’s server side, if it’s javascript modifying the actual page, I fear my web knowledge is not up to snuff, if anyone has ideas or knowledge on how it’s done, that would be welcome.

If somebody can come up with a way to get this page return the Update times in UTC, that would be awesome, but basically as of now, it’s very random.

about 5 years ago - Toolguy - Direct link

@l0ckd0wn and @BruteMan glad you like the tool, despite the few last versions being kind of rough on the edges :slight_smile:

I’m not quite sure I understand the request :slight_smile:

Right now if the update is running, your discord bot will post “Found things to update #443030 (Conan Exiles Dedicated Server)” if an update for the server was found.

What exactly would you like to see, and when/where?

Well, if you look up a few post, you’ll see that I’ve been fighting with the date/time of mods for a few days already.

I’m currently testing a new version, which hopefully you should all be able to test during the weekend.

Basically the problem is that when I retrieve the mod information from Steam, the time returned were in Pacific time zone, where Valve’s servers are located, and if you add things like Daylight Savings that don’t match between countries, you get time comparisons that fail.

I’ll try to release 1.0.34 today, hopefully you can all test and give feedback!

about 5 years ago - Toolguy - Direct link

So, ok people, here is a new version:

http://cdn.funcom.com/downloads/exiles/DedicatedServerLauncher1034.exe

Dedicated Server Launcher 1.0.34:

  • Sixth pass implementation of the mod update check: Adding a “timezoneOffset=0,0” Cookie to the HTTP request’s headers seems to be forcing the page to be in UTC instead of PDT/PST time

Hopefully that one will work as expected, at least for the mods. For the Server itself, I did not change anything.

Have a good weekend, and please give feedback!

about 5 years ago - Toolguy - Direct link

But… assuming the mod and server update detection works, would that not be enough?

I’ve been asked for some “server health” detection (like over use of memory, not answer messages, etc…) and I can totall see how useful that would be, but not sure that would be the best way to solve what you pointed out :slight_smile:

Cool!

What about the actual server update, does that work correctly now as well?

about 5 years ago - Toolguy - Direct link

Ok, I will let you all continue to test it for a few more days, and if it’s ok, I’ll make it the new official version after that.

I’m also thinking in changing the top message and title next time I do a version to something like that:

Conan Exiles Dedicated Server App (Live Version: 1.0.28 / Test Version: 1.0.34)

  • Link to the current “official/live/tested” version
  • Link to the latest “being tested” version

that would make it easier for everybody, because after a couple of messages it gets difficult to find the link to the latest version :slight_smile:

Does that make sense?

about 5 years ago - Toolguy - Direct link

The Mod/Server updates detection is not in 1.0.28, it started in 1.0.29 but because of many issues with how things are done in the Steam ecosystem, I had to release a bunch of fixes and modifications and updates to handle time zones, daylight savings, etc…

So yes, the feature is in 1.0.34, and this version is not the official one at the moment because I don’t want to have thousands of people reporting issues about the feature, I’d rather have a small dozen of people give me useful reports about issues so I can fix them, and when the feature is deemed good enough, then the version is pushed to “live” status :slight_smile:

Putting back the link here since the original release scrolled up a lot:

http://cdn.funcom.com/downloads/exiles/DedicatedServerLauncher1034.exe

  • Sixth pass implementation of the mod update check: Adding a “timezoneOffset=0,0” Cookie to the HTTP request’s headers seems to be forcing the page to be in UTC instead of PDT/PST time

That could be many things, like for example the fact that this couple of weeks has been when most countries switched time in accordance to their Daylight Savings rules, I’m still trying to figure out if the time I receive from Steam is UTC or not: If something is off, it can easily counts for one or two hours differences in time comparisons, making the mod update detection to fail.

I see you are in the USA, which Time Zone are you in? Could you zip and send me the content of your DedicatedServerLauncher\Logs\DedicatedServerLauncher(1.0.34). *. * files so I can check the content?

about 5 years ago - Toolguy - Direct link

Do you think you could somewhat manage to make a copy of this server installation (either on this machine or another, does not matter), with the same mod list and discord webhook, but with a different Bot name (like MODCHECK), and some invalid server ports to make sure it does not conflict with your other one, and let it run with the same mod checks parameters?

Basically I’d like to know if at some point it will detect the update and display a message, and if yes, if it’s by some random amount of time, one hour late, maybe two hours late, so I get an idea about what’s wrong with the check.

Though i noticed all the logs are in UTC?!?

Yes, that’s on purpose, else it’s hard to compare multiple logs from multiple machines that can run on different time zones.

about 5 years ago - Toolguy - Direct link

Since it’s difficult to diagnose these time stamps issues, I added something more visual to help us:
http://cdn.funcom.com/downloads/exiles/DedicatedServerLauncher1035.exe

Basically I added a small button on the top to force call the mod checker and then display a dialog box with the results (it takes a bit of time after clicking, depending on how many mods, etc…).

ModCheckerButton.png1207×663 90.8 KB

The cool thing about the Windows message boxes, is that if you presss CTRL-C the content is copied to the windows clipboard, so you can just CTRL-V to see the result:

---------------------------
ConanExiles - DedicatedServerLauncher 1.0.35
---------------------------
Bias: -60 
UTC  : 2019.04.02 12.20.40 | W. Europe Summer Time:-60
Local: 2019.04.02 14.20.40 | W. Europe Standard Time:0

#443030 (Conan Exiles Dedicated Server)
Install=2019.03.29 15.39.26 UPDATE=2019.04.01 15.49.41
#860241645 (Pause on Escape)
Install=2019.03.29 15.55.13 Steam=2018.10.09 18.04.00
#880454836 (Pippi - User & Server Management - v2.1.12c)
Install=2019.03.29 15.55.14 Steam=2019.03.23 02.07.00
#1382120864 (LowerMonsterHPSolo)
Install=2019.03.29 15.55.18 Steam=2018.07.13 11.38.00
#1386650198 (Kerozard's Paragon Leveling)
Install=2019.03.29 15.55.19 Steam=2018.09.23 03.45.00
#1422434062 () [FAIL]
#1695473408 (Dedicated Server Launcher Test Mod Update)
Install=2019.03.29 15.55.21 UPDATE=2019.04.01 07.40.00
---------------------------
OK   
---------------------------

So, what’s is in this report:

Hopefully we can cross reference these informations to find what the problem is for the ones who are having the problem.

@MidnightFC having changed the time of the machine may actually have been what has made it work. The whole code is doing time zone conversions, so just having one timezone or DST flag incorrect can just get the whole thing out of whack.

@Maldred this is already present since 1.0.30 (look on the screen shot, at the right of “Restart”, the delay uses the longest of the three specified restart delays, you can click it again to cancel the delayed restart. Since the three messages are already displayed in Discord, I guess that’s at least worth some cookies? :cookie: