-
Posts
11,211 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Articles
Twitch
Posts posted by Dateranoth
-
-
It's in the works. I just need to push the update out.
@peeknuckle
Sounds like something is still open when the update runs so it doesn't update correctly. Try restarting your computer first next time and see what happens. -
What generates the disk write error?
-
Haha. Patch with a vengeance.
-
Removing it from the startup command should take it out.(make sure you do both places)
I always left validate in just to be sure everything was ok even if there wasn't an update, but I could make it a configuration option.
-
8 hours ago, upperking said:
Could you put info in the cmd title bar like Players connected "Players 20-50"
maybe also a new update in the title when there is s a new update found from the checker.
and anyother server info that could be handy?
I think this might be more of the utility you are looking for. Wanted to give you a heads up in case you hadn't seen it.
-
43 minutes ago, ConanBoneMan said:
i guess the most simple and straight forward would be to give a notification to choose to start with a fresh server download or use already downloaded server files path
think it would be harder to make it look for the file since alot of people might set custom folder/drive paths for their server but im not to sure about it
I believe it will only be an issue if the SteamCMD directory already has the appmanifest in the default location. Otherwise it should use the appmanifest from wherever you tell it the install path is. I might just look for it in the SteamCMD and pop up a small warning when the script first opens. Just have it time out after 5 or 10 seconds if no response and run like normal.
This will probably work. I have some other updates that I need to push this week so I'll push this change with it.
Local $sManifestExists = FileExists($steamcmddir &"\steamapps\appmanifest_443030.acf") If $sManifestExists = 1 Then Local $manifestound = MsgBox (4100, "Warning", "Install manifest found at "& $steamcmddir &"\steamapps\appmanifest_443030.acf"& @CRLF & @CRLF &"Suggest moving file to "& _ $serverdir &"\steamapps\appmanifest_443030.acf before running SteamCMD"& @CRLF & @CRLF &"Would you like to Exit Now?",20) If $manifestound = 6 Then Exit EndIf EndIf
-
23 minutes ago, ConanBoneMan said:
No problem all good glad we got the reason for the problem
thats how ya get things improved
and thank you for the reply's and taking your time helping and creating this awesome script.
You're welcome. I'm glad you are enjoying the script, and I'm glad you pointed out the issue. I could have the script look for the file in the default directory and move it if it finds it. Or maybe I could just put up a Message Box to notify you it's a possible conflict. Not sure which would be best.
-
The +force_install_dir causes it to put the server files directly where you want it to go.
So, by default lets say I have a folder C:\SteamCMD . If I run steamcmd with these options:
steamcmd.exe +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +app_update 443030 validate +quit
It will install the conan server to the default location. C:\SteamCMD\steamapps\common\Conan Exiles Dedicated Server (Just tested it to be sure)
Log of the install:
Spoiler[2017-02-07 21:01:37] Loaded 1 apps from install folder "D:\SteamCMD\steamapps\appmanifest_*.acf". [2017-02-07 21:01:40] Scheduler update appID 443030: Priority First, legacy=no, restore="", timeSinceLastPlayed=1486519300, appDisableSecondsRemaining=0 [2017-02-07 21:01:40] AppID 443030 state changed : Update Required,Update Running,Update Started, [2017-02-07 21:01:40] AppID 443030 update changed : Running, [2017-02-07 21:01:40] AppID 443030 update changed : Running,Reconfiguring, [2017-02-07 21:01:40] AppID 443030 update changed : Running, [2017-02-07 21:01:40] AppID 443030 update started : download 215187632/10728038320, store 0/0, reuse 0/0, stage 391956270/13808759587 [2017-02-07 21:01:40] AppID 443030 update changed : Running,Downloading, [2017-02-07 21:01:40] AppID 443030 update changed : Running,Downloading,Staging, [2017-02-07 21:01:40] Got 20 download sources via "/serverlist/50/20/" from 162.254.192.18:80 [2017-02-07 21:01:40] Created download interface of type 'CS' (1) to host valve305.steampipe.steamcontent.com (valve305.steamcontent.com) [2017-02-07 21:01:40] Created download interface of type 'CS' (1) to host valve303.steampipe.steamcontent.com (valve303.steamcontent.com) [2017-02-07 21:01:40] Created download interface of type 'CS' (1) to host valve806.steampipe.steamcontent.com (valve806.steamcontent.com) [2017-02-07 21:01:41] HTTP (CS,305) - valve305.steampipe.steamcontent.com (valve305.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:01:41] HTTP (CS,303) - valve303.steampipe.steamcontent.com (valve303.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:01:41] HTTP (CS,806) - valve806.steampipe.steamcontent.com (valve806.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:01:53] Increasing target number of download connections to 4 (rate was 0.000, now 34.173) [2017-02-07 21:01:53] Created download interface of type 'CS' (1) to host valve801.steampipe.steamcontent.com (valve801.steamcontent.com) [2017-02-07 21:01:58] HTTP (CS,801) - valve801.steampipe.steamcontent.com (valve801.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:02:05] Increasing target number of download connections to 5 (rate was 34.173, now 74.708) [2017-02-07 21:02:05] Created download interface of type 'CS' (1) to host valve808.steampipe.steamcontent.com (valve808.steamcontent.com) [2017-02-07 21:02:07] HTTP (CS,808) - valve808.steampipe.steamcontent.com (valve808.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:02:17] Increasing target number of download connections to 6 (rate was 74.708, now 134.662) [2017-02-07 21:02:17] Created download interface of type 'CS' (1) to host valve803.steampipe.steamcontent.com (valve803.steamcontent.com) [2017-02-07 21:02:17] HTTP (CS,803) - valve803.steampipe.steamcontent.com (valve803.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:02:29] Increasing target number of download connections to 7 (rate was 134.662, now 172.107) [2017-02-07 21:02:29] Created download interface of type 'CS' (1) to host valve308.steampipe.steamcontent.com (valve308.steamcontent.com) [2017-02-07 21:02:29] HTTP (CS,308) - valve308.steampipe.steamcontent.com (valve308.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:02:54] Current download rate: 198.136 Mbps [2017-02-07 21:03:54] Current download rate: 190.093 Mbps [2017-02-07 21:04:55] Current download rate: 192.929 Mbps [2017-02-07 21:05:55] Current download rate: 195.906 Mbps [2017-02-07 21:05:59] HTTP (CS,305) - valve305.steampipe.steamcontent.com (valve305.steamcontent.com): Received 0 (Invalid) HTTP response for depot 443031 [2017-02-07 21:05:59] Created download interface of type 'CS' (1) to host valve301.steampipe.steamcontent.com (valve301.steamcontent.com) [2017-02-07 21:05:59] HTTP (CS,305) - valve305.steampipe.steamcontent.com (valve305.steamcontent.com): Closing connection [2017-02-07 21:05:59] HTTP (CS,301) - valve301.steampipe.steamcontent.com (valve301.steamcontent.com): AuthenticateDepotID (443031) - Success! [2017-02-07 21:06:56] Current download rate: 194.163 Mbps [2017-02-07 21:07:57] Current download rate: 192.018 Mbps [2017-02-07 21:08:57] Current download rate: 176.111 Mbps [2017-02-07 21:09:58] Current download rate: 0.000 Mbps [2017-02-07 21:10:34] HTTP (CS,303) - valve303.steampipe.steamcontent.com (valve303.steamcontent.com): Closing connection [2017-02-07 21:10:34] HTTP (CS,308) - valve308.steampipe.steamcontent.com (valve308.steamcontent.com): Closing connection [2017-02-07 21:10:34] HTTP (CS,803) - valve803.steampipe.steamcontent.com (valve803.steamcontent.com): Closing connection [2017-02-07 21:10:34] HTTP (CS,806) - valve806.steampipe.steamcontent.com (valve806.steamcontent.com): Closing connection [2017-02-07 21:10:34] HTTP (CS,301) - valve301.steampipe.steamcontent.com (valve301.steamcontent.com): Closing connection [2017-02-07 21:10:35] HTTP (CS,808) - valve808.steampipe.steamcontent.com (valve808.steamcontent.com): Closing connection [2017-02-07 21:10:35] HTTP (CS,801) - valve801.steampipe.steamcontent.com (valve801.steamcontent.com): Closing connection [2017-02-07 21:12:19] AppID 443030 update changed : Running, [2017-02-07 21:12:19] AppID 443030 update changed : Running,Committing, [2017-02-07 21:12:19] AppID 443030 file commit : 23755 updated, 0 moved, 0 deleted [2017-02-07 21:14:30] AppID 443030 state changed : Fully Installed,Update Running, [2017-02-07 21:14:30] Finished update AppID 443030, mounted depots (BuildID 1613510): 1004 (1332262456809661417),228985 (5758075142805954616),228986 (1499878012993136397),228990 (1829726630299308803),443031 (9147467968662663915), [2017-02-07 21:14:30] AppID 443030 update changed : Running, [2017-02-07 21:14:30] AppID 443030 update changed : None [2017-02-07 21:14:30] AppID 443030 state changed : Fully Installed, [2017-02-07 21:14:30] AppID 443030 scheduler finished : removed from schedule
Validated again after install:
Spoiler[2017-02-07 21:16:21] Loaded 1 apps from install folder "D:\SteamCMD\steamapps\appmanifest_*.acf". [2017-02-07 21:16:23] Start validating appID 443030 [2017-02-07 21:16:23] Scheduler update appID 443030: Priority First, legacy=no, restore="", timeSinceLastPlayed=1486520183, appDisableSecondsRemaining=0 [2017-02-07 21:16:23] AppID 443030 state changed : Fully Installed,Update Running, [2017-02-07 21:16:23] AppID 443030 update changed : Running, [2017-02-07 21:16:23] AppID 443030 update changed : Running,Reconfiguring, [2017-02-07 21:16:24] AppID 443030 update changed : Running, [2017-02-07 21:16:24] AppID 443030 update changed : Running,Validating, [2017-02-07 21:16:24] Validating files (all active,full) ... [2017-02-07 21:17:36] File validation finished: 22253 files (13808759587 bytes) total, 0 files (0 bytes) mismatched (71929 msec). [2017-02-07 21:17:36] AppID 443030 update changed : Running, [2017-02-07 21:17:36] AppID 443030 update changed : None [2017-02-07 21:17:36] AppID 443030 state changed : Fully Installed, [2017-02-07 21:17:36] AppID 443030 scheduler finished : removed from schedule
Now, if I use the +force_install_dir command.
Spoilersteamcmd.exe +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir "D:\SteamCMD\steamapps\common\Conan Exiles Dedicated Server" +app_update 443030 validate +quit
It forces it to install into the directed folder. In this case, the same as the default folder.
[2017-02-07 21:18:47] Loaded 1 apps from install folder "D:\SteamCMD\steamapps\appmanifest_*.acf". [2017-02-07 21:18:48] Loaded 0 apps from install folder "d:\steamcmd\steamapps\common\conan exiles dedicated server\steamapps\appmanifest_*.acf". [2017-02-07 21:18:49] AppID 443030 state changed : Update Required, [2017-02-07 21:18:49] Scheduler update appID 443030: Priority First, legacy=no, restore="", timeSinceLastPlayed=1486520329, appDisableSecondsRemaining=0 [2017-02-07 21:18:49] Scheduler update appID 443030: Priority First, legacy=no, restore="", timeSinceLastPlayed=1486520329, appDisableSecondsRemaining=0 [2017-02-07 21:18:49] AppID 443030 state changed : Update Required,Update Running, [2017-02-07 21:18:49] AppID 443030 update changed : Running, [2017-02-07 21:18:49] AppID 443030 update changed : Running,Reconfiguring, [2017-02-07 21:18:49] AppID 443030 update changed : Running, [2017-02-07 21:18:49] AppID 443030 update changed : Running,Validating, [2017-02-07 21:18:49] Validating files (new target,full) ... [2017-02-07 21:19:58] File validation finished: 22253 files (13808759587 bytes) total, 0 files (0 bytes) mismatched (68352 msec). [2017-02-07 21:19:58] AppID 443030 update changed : Running, [2017-02-07 21:19:58] AppID 443030 update changed : Running,Preallocating, [2017-02-07 21:19:58] Found 6 pre-existing matching files for depot 1004 (24737760 bytes) [2017-02-07 21:19:58] Found 3 pre-existing matching files for depot 228985 (13699209 bytes) [2017-02-07 21:19:58] Found 3 pre-existing matching files for depot 228986 (29748833 bytes) [2017-02-07 21:19:59] Found 158 pre-existing matching files for depot 228990 (102931551 bytes)
This is where I finally found out what was wrong. Because you had already used SteamCMD without the force install directory command it creates a file "appmanifest_443030.acf" under SteamCMD\steamapps . When the force install directory is used, it creates that same file in the folder Conan Exiles Dedicated Server\steamapps . I'm a bit late to tell you know, but it looks like what you could have done was move the file from the SteamCMD\steamapps location to Conan Exiles Dedicated Server\steamapps and it would have worked properly.
It appears the file can be in both locations at the same time too, but probably best to only use one. After moving the file and running the command again, it simply validated like it should.
Spoiler[2017-02-07 21:36:40] Loaded 0 apps from install folder "D:\SteamCMD\steamapps\appmanifest_*.acf". [2017-02-07 21:36:41] Loaded 1 apps from install folder "d:\steamcmd\steamapps\common\conan exiles dedicated server\steamapps\appmanifest_*.acf". [2017-02-07 21:36:42] Start validating appID 443030 [2017-02-07 21:36:42] Scheduler update appID 443030: Priority First, legacy=no, restore="", timeSinceLastPlayed=1486521402, appDisableSecondsRemaining=0 [2017-02-07 21:36:42] AppID 443030 state changed : Fully Installed,Update Running, [2017-02-07 21:36:42] AppID 443030 update changed : Running, [2017-02-07 21:36:42] AppID 443030 update changed : Running,Reconfiguring, [2017-02-07 21:36:42] AppID 443030 update changed : Running, [2017-02-07 21:36:42] AppID 443030 update changed : Running,Validating, [2017-02-07 21:36:42] Validating files (all active,full) ... [2017-02-07 21:37:56] File validation finished: 22253 files (13808759587 bytes) total, 0 files (0 bytes) mismatched (73030 msec). [2017-02-07 21:37:56] AppID 443030 update changed : Running, [2017-02-07 21:37:56] AppID 443030 update changed : None [2017-02-07 21:37:56] AppID 443030 state changed : Fully Installed, [2017-02-07 21:37:56] AppID 443030 scheduler finished : removed from schedule
This appears to only be an issue if you've previously installed an app without the force install directory. I have it enabled so people can choose exactly where they want their server installed. Anyhow, long winded response. Sorry I wasn't able to give you an answer before you downloaded it again.
-
5 minutes ago, ConanBoneMan said:
weird even tho i change it it still starts downloading it tried multiple folders and it still starts downloading the full server again after checking
this time it even overwritten the server files that where already created
Not really sure why it would be doing that unless it's not a dedicated server that's already installed. It is different than the server files downloaded with the game through steam.
Sorry. Might just have to point it to a new folder and let it download again.
-
13 minutes ago, ConanBoneMan said:
its deff going to download what exact folder in Common\ConanExiles\ do i need to link it to?
It should point to the directory with the ConanSandbox folder with no \ at the end. Basically the top level of the Conan server install.
-
Just now, ConanBoneMan said:
i tried using this utility but after setting it up and running the program,
in steamcmd it starts allocating memory to download the server while the server is already downloaded,
instead of checking for updates,
and i am pretty sure i linked the ini to the right path.
What does it say in the SteamCMD window? If it says Update State Validating then it's because I have it set to validate every time. Just to be sure you always have the most current version of every file. If it's not validating and actually downloading, you might want to check the path.
-
I can't interact with the window except to send keys to it. And right now it only accepts the shutdown key combination.
-
Are you running the latest version? If so you need to backup your INI file, delete it, and let the script create a new one.
The latest version differentiates between GamePort and QueryPort. Also, if you're trying to connect from the same local network you might try setting the IP to the local network IP the server is on and MULTIHOME to yes
-
I can probably do that. I'm at work now, but I will see what I can do when I get home.
-
Just now, upperking said:
It updates and starts it and also backs it up
ot also manages the game.ini files for server options
Yeah, I'll be honest, I don't have any plans for more server options except the server name and server password if it's ever possible from the command line.
Anyone is welcome to use my code to make something like that, but I believe it would be better to use something other than AutoIt to write it in.
I could possibly add backup function, but the game already does that.
I will look through it more when I'm home. I'm sure someone will eventually make a much more robust tool than mine. This is more hobby than trade for me. So I'm not very good at it.
If the Ark tool code is open source it might be possible to modify it for Conan
-
That looks like it's for managing the server not running it and updating it.
If I were to create something like that I would probably not do it in the scope of this project. I'm not sure if it's even possible right now without being able to access rcon or a console on the server.
-
2 hours ago, Lyas said:
thank you
[Check for Update Every Hour? yes/no]
CheckForUpdate=yesCan you add parametr UpdateTime=60 in minutes if its possible?
Thanks for good Job, wery Good tool.
I'm not sure what you are asking? You want to be able to check for updates every X minutes instead of once per hour?
-
3 minutes ago, Lyas said:
Hi, nice tool.
[Daily Restart Hours? 00-23]
HotHour1=03
HotHour2=09
HotHour3=15
HotHour4=21I use only 4 HotHour, in default ini there is 6 HotHour,but tool restart server in 00, default value of HotHour5, HotHour6, can you fix this?
i think we all wait Global chat Messages before server restart.
Just set the last two to the same as any of the other times you use.
HotHour5=21
HotHour6=21
I will add a global message to notify of restarting with timed notifications as soon as they add a way for me to do that from the server side. Hopefully they add access to the console or rcon soon. Until then there is no way to provide notification.
If anyone finds a way before the official announcement let me know and I'll see what I can do.
-
21 minutes ago, upperking said:
Amazing work ! this is so handy!
Thanks! Always open to suggestions if you think of something it needs.
-
V2.2.2.1 Update!
Differentiated between Server Port and Steam Query Port. You can now modify both from script. Be sure to delete your INI and let the script generate a new one.
V2.2.2.1 Downloads
Complete Version 2.2.2.1 including Source
Conan Server Remote Restart Utility V2.2.2.1
Conan Server Utility V2.2.2.1 Source
Conan Server Remote Restart Utility V2.2.2.1 Source
V2.2.2.1 Server Utility Source:
Spoiler#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=favicon.ico #AutoIt3Wrapper_Res_Comment=By Dateranoth - Feburary 6, 2017 #AutoIt3Wrapper_Res_Description=Utility for Running Conan Server #AutoIt3Wrapper_Res_Fileversion=2.2.2.1 #AutoIt3Wrapper_Res_LegalCopyright=Dateranoth @ https://gamercide.com #AutoIt3Wrapper_Res_Language=1033 #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ;By Dateranoth - Feburary 6, 2017 ;Used by https://gamercide.com on their server ;Feel free to change, adapt, and distribute #include <Date.au3> #include <Process.au3> #include <MsgBoxConstants.au3> #include <File.au3> Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase ;User Variables If FileExists("ConanServerUtility.ini") Then Local $BindIP = IniRead("ConanServerUtility.ini", "Use MULTIHOME to Bind IP? Disable if having connection issues (yes/no)", "BindIP", "yes") Local $g_IP = IniRead("ConanServerUtility.ini", "Game Server IP", "ListenIP", "127.0.0.1") Local $GamePort = IniRead("ConanServerUtility.ini", "Game Server Port", "GamePort", "7777") Local $QueryPort = IniRead("ConanServerUtility.ini", "Steam Query Port", "QueryPort", "27015") Local $AdminPass = IniRead("ConanServerUtility.ini", "Admin Password", "AdminPass", "yOuRpaSHeRe") Local $MaxPlayers = IniRead("ConanServerUtility.ini", "Max Players", "MaxPlayers", "20") Local $serverdir = IniRead("ConanServerUtility.ini", "Server Directory. NO TRAILING SLASH", "serverdir", "C:\Game_Servers\Conan_Exiles_Server") Local $UseSteamCMD = IniRead("ConanServerUtility.ini", "Use SteamCMD To Update Server? yes/no", "UseSteamCMD", "yes") Local $steamcmddir = IniRead("ConanServerUtility.ini", "SteamCMD Directory. NO TRAILING SLASH", "steamcmddir", "C:\Game_Servers\SteamCMD") Local $UseRemoteRestart = IniRead("ConanServerUtility.ini", "Use Remote Restart ?yes/no", "UseRemoteRestart", "no") Local $g_Port = IniRead("ConanServerUtility.ini", "Remote Restart Port", "ListenPort", "57520") Local $RestartCode = IniRead("ConanServerUtility.ini", "Remote Restart Password", "RestartCode", "FVtb2DXgp8SYwj7J") Local $RestartDaily = IniRead("ConanServerUtility.ini", "Restart Server Daily? yes/no", "RestartDaily", "no") Local $CheckForUpdate = IniRead("ConanServerUtility.ini", "Check for Update Every Hour? yes/no", "CheckForUpdate", "yes") Local $HotHour1 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour1", "00") Local $HotHour2 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour2", "00") Local $HotHour3 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour3", "00") Local $HotHour4 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour4", "00") Local $HotHour5 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour5", "00") Local $HotHour6 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour6", "00") Local $HotMin = IniRead("ConanServerUtility.ini", "Daily Restart Minute? 00-59", "HotMin", "01") Local $ExMem = IniRead("ConanServerUtility.ini", "Excessive Memory Amount?", "ExMem", "6000000000") Local $ExMemRestart = IniRead("ConanServerUtility.ini", "Restart On Excessive Memory Use? yes/no", "ExMemRestart", "no") Local $SteamFix = IniRead("ConanServerUtility.ini", "Running Server with Steam Open? (yes/no)", "SteamFix", "no") Else IniWrite("ConanServerUtility.ini", "Use MULTIHOME to Bind IP? Disable if having connection issues (yes/no)", "BindIP", "yes") IniWrite("ConanServerUtility.ini", "Game Server IP", "ListenIP", "127.0.0.1") IniWrite("ConanServerUtility.ini", "Game Server Port", "GamePort", "7777") IniWrite("ConanServerUtility.ini", "Steam Query Port", "QueryPort", "27015") IniWrite("ConanServerUtility.ini", "Admin Password", "AdminPass", "yOuRpaSHeRe") IniWrite("ConanServerUtility.ini", "Max Players", "MaxPlayers", "20") IniWrite("ConanServerUtility.ini", "Server Directory. NO TRAILING SLASH", "serverdir", "C:\Game_Servers\Conan_Exiles_Server") IniWrite("ConanServerUtility.ini", "Use SteamCMD To Update Server? yes/no", "UseSteamCMD", "yes") IniWrite("ConanServerUtility.ini", "SteamCMD Directory. NO TRAILING SLASH", "steamcmddir", "C:\Game_Servers\SteamCMD") IniWrite("ConanServerUtility.ini", "Use Remote Restart ?yes/no", "UseRemoteRestart", "no") IniWrite("ConanServerUtility.ini", "Remote Restart Port", "ListenPort", "57520") IniWrite("ConanServerUtility.ini", "Remote Restart Password", "RestartCode", "FVtb2DXgp8SYwj7J") IniWrite("ConanServerUtility.ini", "Restart Server Daily? yes/no", "RestartDaily", "no") IniWrite("ConanServerUtility.ini", "Check for Update Every Hour? yes/no", "CheckForUpdate", "yes") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour1", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour2", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour3", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour4", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour5", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour6", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Minute? 00-59", "HotMin", "01") IniWrite("ConanServerUtility.ini", "Excessive Memory Amount?", "ExMem", "6000000000") IniWrite("ConanServerUtility.ini", "Restart On Excessive Memory Use? yes/no", "ExMemRestart", "no") IniWrite("ConanServerUtility.ini", "Running Server with Steam Open? (yes/no)", "SteamFix", "no") MsgBox(4096, "Default INI File Made", "Please Modify Default Values and Restart Script") Exit EndIf OnAutoItExitRegister("Gamercide") Global $sFile = "" Global $Server_EXE = "ConanSandboxServer-Win64-Test.exe" Global $PIDFile = @ScriptDir &"\ConanServerUtility_lastpid_tmp" Global $hWndFile = @ScriptDir &"\ConanServerUtility_lasthwnd_tmp" If FileExists($PIDFile) Then Global $ConanPID = FileRead($PIDFile) Global $ConanhWnd = HWnd(FileRead($hWndFile)) Else Global $ConanPID = "0" Global $ConanhWnd = "0" EndIf Func Gamercide() If @exitMethod <> 1 Then $Shutdown = MsgBox(4100, "Shut Down?","Do you wish to shutdown the server?",10) If $Shutdown = 6 Then FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" Server Shutdown by User Input from ConanServerUtility Script") CloseServer() EndIf MsgBox(4096, "Thanks for using our Application", "Please visit us at https://gamercide.com",2) EndIf If $UseRemoteRestart = "yes" Then TCPShutdown() EndIf Exit EndFunc Func CloseServer() Local $PID = ProcessExists($ConanPID) ControlSend($ConanhWnd, "", "", "I" & @CR) ControlSend($ConanhWnd, "", "", "I" & @CR) ControlSend($ConanhWnd, "", "", "^C") WinWaitClose($ConanhWnd, "", 60) If $PID Then ProcessClose($PID) EndIf FileDelete($PIDFile) FileDelete($hWndFile) EndFunc Func GetRSS() Local $oXML = ObjCreate("Microsoft.XMLHTTP") $oXML.Open("GET", "http://steamcommunity.com/games/440900/rss/", 0) $oXML.Send $sFile = _TempFile(@ScriptDir, '~', '.xml') FileWrite($sFile, $oXML.responseText) EndFunc Func ParseRSS() $sXML = $sFile Local $oXML = ObjCreate("Microsoft.XMLDOM") $oXML.Load($sXML) Local $oNames = $oXML.selectNodes("//rss/channel/item/title") Local $aMyDate, $aMyTime _DateTimeSplit(_NowCalc(), $aMyDate, $aMyTime) Local $cDate = "PATCH "& StringFormat("%02d", $aMyDate[3]) &"."& StringFormat("%02d", $aMyDate[2]) &"."& StringFormat("%04d", $aMyDate[1]) Local $cFile = @ScriptDir &"\ConanServerUtility_LastUpdate.txt" For $oName In $oNames If StringRegExp($oName.text,$cDate&"(?i)") Then If FileRead($cFile) = $oName.text Then ;ConsoleWrite("No New Update" & @CRLF) ExitLoop Else FileDelete($cFile) FileWrite($cFile,$oName.text) Local $PID = ProcessExists($ConanPID) If $PID Then FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" ["& $oName.text &"] Restart for Update Requested by ConanServerUtility Script") CloseServer() EndIf ExitLoop EndIf EndIf Next EndFunc Func UpdateCheck() GetRSS() ParseRSS() FileDelete($sFile) EndFunc Func _TCP_Server_ClientIP($hSocket) Local $pSocketAddress, $aReturn $pSocketAddress = DllStructCreate("short;ushort;uint;char[8]") $aReturn = DllCall("ws2_32.dll", "int", "getpeername", "int", $hSocket, "ptr", DllStructGetPtr($pSocketAddress), "int*", DllStructGetSize($pSocketAddress)) If @error Or $aReturn[0] <> 0 Then Return $hSocket $aReturn = DllCall("ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($pSocketAddress, 3)) If @error Then Return $hSocket $pSocketAddress = 0 Return $aReturn[0] EndFunc ;==>_TCP_Server_ClientIP If $UseSteamCMD = "yes" Then Local $sFileExists = FileExists($steamcmddir &"\steamcmd.exe") If $sFileExists = 0 Then MsgBox ( 0x0, "SteamCMD Not Found", "Could not find steamcmd.exe at "& $steamcmddir) Exit EndIf Else Local $cFileExists = FileExists($serverdir &"\ConanSandboxServer.exe") If $cFileExists = 0 Then MsgBox ( 0x0, "Conan Server Not Found", "Could not find ConanSandboxServer.exe at "& $serverdir) Exit EndIf Endif If $UseRemoteRestart = "yes" Then ; Start The TCP Services TCPStartup() Local $MainSocket = TCPListen($g_IP, $g_Port, 100) If $MainSocket = -1 Then MsgBox ( 0x0, "TCP Error", "Could not bind to [" & $g_IP & "] Is this the correct Server IP?") Exit EndIf EndIf While True If $UseRemoteRestart = "yes" Then Local $ConnectedSocket = TCPAccept($MainSocket) If $ConnectedSocket >= 0 Then $Count = 0 While $Count < 30 $RECV = TCPRecv($ConnectedSocket,512) $PassCompare = StringCompare($RECV, $RestartCode, 1) If $PassCompare = 0 Then Local $PID = ProcessExists($ConanPID) ; Will return the PID or 0 if the process isn't found. If $PID Then Local $IP = _TCP_Server_ClientIP($ConnectedSocket) Local $MEM = ProcessGetStats($PID, 0) FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1] &" Restart Requested by Remote Host: "& $IP) CloseServer() Sleep (10000) ExitLoop EndIf Else Local $IP = _TCP_Server_ClientIP($ConnectedSocket) FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" Restart ATTEMPT by Remote Host: "& $IP &" WRONG PASSWORD: "& $RECV) ExitLoop EndIf $Count += 1 Sleep (1000) WEnd If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket) EndIf EndIf Local $PID = ProcessExists($ConanPID) If $PID = 0 Then If $UseSteamCMD = "yes" Then RunWait(""& $steamcmddir &"\steamcmd.exe +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir "& $serverdir &" +app_update 443030 validate +quit") EndIf If $CheckForUpdate = "yes" Then UpdateCheck() EndIf If $BindIP = "no" Then $ConanPID = Run(""& $serverdir &"\ConanSandbox\Binaries\Win64\"& $Server_EXE &" ConanSandBox?Port="& $GamePort &"?QueryPort="& $QueryPort &"?MaxPlayers="& $MaxPlayers &"?AdminPassword="& $AdminPass &"?listen -nosteamclient -game -server -log") Else $ConanPID = Run(""& $serverdir &"\ConanSandbox\Binaries\Win64\ConanSandboxServer-Win64-Test.exe ConanSandBox?MULTIHOME="& $g_IP &"?Port="& $GamePort &"?QueryPort="& $QueryPort &"?MaxPlayers="& $MaxPlayers &"?AdminPassword="& $AdminPass &"?listen -nosteamclient -game -server -log") EndIf $ConanhWnd = WinGetHandle(WinWait(""& $serverdir &"", "", 70)) If $SteamFix = "yes" Then WinWait(""& $Server_EXE &" - Entry Point Not Found","",5) If WinExists(""& $Server_EXE &" - Entry Point Not Found") Then ControlSend(""& $Server_EXE &" - Entry Point Not Found", "", "", "{enter}") EndIf WinWait(""& $Server_EXE &" - Entry Point Not Found","",5) If WinExists(""& $Server_EXE &" - Entry Point Not Found") Then ControlSend(""& $Server_EXE &" - Entry Point Not Found", "", "", "{enter}") EndIf EndIf FileDelete($PIDFile) FileDelete($hWndFile) FileWrite($PIDFile,$ConanPID) FileWrite($hWndFile,String($ConanhWnd)) FileSetAttrib($PIDFile,"+HT") FileSetAttrib($hWndFile,"+HT") Else Local $MEM = ProcessGetStats($PID, 0) If $MEM[0] > $ExMem And $ExMemRestart = "no" Then FileWriteLine(@ScriptDir & "\ConanServerUtility_ExcessiveMemoryLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1]) Sleep (10000) ElseIf $MEM[0] > $ExMem And $ExMemRestart = "yes" Then FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1] &" Excessive Memory Use - Restart Requested by ConanServerUtility Script") CloseServer() Sleep (10000) EndIf EndIf If ((@HOUR = $HotHour1 Or @HOUR = $HotHour2 Or @HOUR = $HotHour3 Or @HOUR = $HotHour4 Or @HOUR = $HotHour5 Or @HOUR = $HotHour6) And @MIN = $HotMin And $RestartDaily = "yes") Then Local $PID = ProcessExists($ConanPID) If $PID Then Local $MEM = ProcessGetStats($PID, 0) FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1] &" Daily Restart Requested by ConanServerUtility Script") CloseServer() EndIf Sleep (10000) EndIf If @MIN = $HotMin And $CheckForUpdate = "yes" Then UpdateCheck() Sleep(70000) EndIf Sleep (500) WEnd
-
42 minutes ago, MrPhantomX said:
Good to now it wasn't only me struggling getting it to work.
Thanks, i had already modified the Engine.ini, but some how [OnlineSubsystemSteam] had become [OnlineSubsystem]. Guess it will fix the issue
Glad to help! Let me know if there is anything else you would like to see.
-
34 minutes ago, MrPhantomX said:
Nice script, but i With every restart the steamupdate overwrites my config ("C:\Games\exiles\ConanSandbox\Config\DefaultEngine.ini" ), so the ServerName is reset to Conan Exile Server at every restart
I have tried to add this to the ConanServerUtilityini file.
[YOURSERVERNAME]
ServerName=[Test] - Test ServerAnd this to the au3 filer (and of course compiled it)
;User Variables .. Local $ServerName = IniRead("ConanServerUtility.ini", "YOURSERVERNAME", "ServerName", "YOURSERVERNAME") .. $ConanPID = Run(""& $serverdir &"\ConanSandbox\Binaries\Win64\"& $Server_EXE &" ConanSandBox?ServerName="& $ServerName &"?Port="& $GamePort &"?QueryPort="& $QueryPort &"?MaxPlayers="& $MaxPlayers &"?AdminPassword="& $AdminPass &"?listen -nosteamclient -game -server -log") ..
Example:
[Test] - Test Server vil only give me [Test] and break the rest of the code. (With or without - ).
If i try to use only Test as name the entire config will show as servername.
Any suggestions,?
I have tried without success to get the server name to work in the command line. You have to put it in your config file. You just need to modify the file that is saved. The default one is overwritten every time you do a steam update.
Modify This Engine.ini
C:\Games\exiles\ConanSandbox\Saved\Config\WindowsServer\Engine.ini [OnlineSubsystemSteam] ServerName=Your Server Name ServerPassword=
FYI: Everything here C:\Games\exiles\ConanSandbox\Config\ is overwritten when SteamCMD runs because of the validate flag.
-
V2.2.2.0 Update!
Feature Update. You can now use this script to manage multiple servers on the same machine. Place a copy of the EXE in a different Conan_Server directory, update the INI file to make sure you have no port conflicts, and run the script. A couple of things you might want to do to help manage two or more running at once. Change the ConanServerUtility.exe names to something Utility1 and Utility2 or something like that. Also, you probably should set the Minute about 30 minutes apart from each so they are not restarting at the same time.
I also updated the Remote Restart Utility. This version allows you to enter a server IP (x.x.x.x) or Host Name (conan.myservers.com) to help those with dynamic IPs. The password is now case sensitive ( and blank space sensitive ) . When the password is successfully sent, the Utility will now tell you what password you sent, how many bytes it was and the IP:Port you sent it to. This will give you some idea of if you sent the correct Restart Password. On the server side, it still logs unsuccessful password attempts to ConanServerUtility_RestartLog.txt . Plus now it will tell you what password was used while attempting to restart your server.
Also, I shortened my shameless plug to visit us when closing the Utilities to 2 seconds.
V2.2.2.0 Downloads
Complete Version 2.2.2.0 including Source
Conan Server Remote Restart Utility V2.2.2.0
Conan Server Utility V2.2.2.0 Source
Conan Server Remote Restart Utility V2.2.2.0 Source
V2.2.2.0 Server Utility Source:
Spoiler#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=favicon.ico #AutoIt3Wrapper_Res_Comment=By Dateranoth - Feburary 6, 2017 #AutoIt3Wrapper_Res_Description=Utility for Running Conan Server #AutoIt3Wrapper_Res_Fileversion=2.2.2.0 #AutoIt3Wrapper_Res_LegalCopyright=Dateranoth @ https://gamercide.com #AutoIt3Wrapper_Res_Language=1033 #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ;By Dateranoth - Feburary 6, 2017 ;Used by https://gamercide.com on their server ;Feel free to change, adapt, and distribute #include <Date.au3> #include <Process.au3> #include <MsgBoxConstants.au3> #include <File.au3> Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase ;User Variables If FileExists("ConanServerUtility.ini") Then Local $BindIP = IniRead("ConanServerUtility.ini", "Use MULTIHOME to Bind IP? Disable if having connection issues (yes/no)", "BindIP", "yes") Local $g_IP = IniRead("ConanServerUtility.ini", "Game Server IP", "ListenIP", "127.0.0.1") Local $GamePort = IniRead("ConanServerUtility.ini", "Game Server Port", "GamePort", "27015") Local $AdminPass = IniRead("ConanServerUtility.ini", "Admin Password", "AdminPass", "yOuRpaSHeRe") Local $MaxPlayers = IniRead("ConanServerUtility.ini", "Max Players", "MaxPlayers", "20") Local $serverdir = IniRead("ConanServerUtility.ini", "Server Directory. NO TRAILING SLASH", "serverdir", "C:\Game_Servers\Conan_Exiles_Server") Local $UseSteamCMD = IniRead("ConanServerUtility.ini", "Use SteamCMD To Update Server? yes/no", "UseSteamCMD", "yes") Local $steamcmddir = IniRead("ConanServerUtility.ini", "SteamCMD Directory. NO TRAILING SLASH", "steamcmddir", "C:\Game_Servers\SteamCMD") Local $UseRemoteRestart = IniRead("ConanServerUtility.ini", "Use Remote Restart ?yes/no", "UseRemoteRestart", "no") Local $g_Port = IniRead("ConanServerUtility.ini", "Remote Restart Port", "ListenPort", "57520") Local $RestartCode = IniRead("ConanServerUtility.ini", "Remote Restart Password", "RestartCode", "FVtb2DXgp8SYwj7J") Local $RestartDaily = IniRead("ConanServerUtility.ini", "Restart Server Daily? yes/no", "RestartDaily", "no") Local $CheckForUpdate = IniRead("ConanServerUtility.ini", "Check for Update Every Hour? yes/no", "CheckForUpdate", "yes") Local $HotHour1 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour1", "00") Local $HotHour2 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour2", "00") Local $HotHour3 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour3", "00") Local $HotHour4 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour4", "00") Local $HotHour5 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour5", "00") Local $HotHour6 = IniRead("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour6", "00") Local $HotMin = IniRead("ConanServerUtility.ini", "Daily Restart Minute? 00-59", "HotMin", "01") Local $ExMem = IniRead("ConanServerUtility.ini", "Excessive Memory Amount?", "ExMem", "6000000000") Local $ExMemRestart = IniRead("ConanServerUtility.ini", "Restart On Excessive Memory Use? yes/no", "ExMemRestart", "no") Local $SteamFix = IniRead("ConanServerUtility.ini", "Running Server with Steam Open? (yes/no)", "SteamFix", "no") Else IniWrite("ConanServerUtility.ini", "Use MULTIHOME to Bind IP? Disable if having connection issues (yes/no)", "BindIP", "yes") IniWrite("ConanServerUtility.ini", "Game Server IP", "ListenIP", "127.0.0.1") IniWrite("ConanServerUtility.ini", "Game Server Port", "GamePort", "27015") IniWrite("ConanServerUtility.ini", "Admin Password", "AdminPass", "yOuRpaSHeRe") IniWrite("ConanServerUtility.ini", "Max Players", "MaxPlayers", "20") IniWrite("ConanServerUtility.ini", "Server Directory. NO TRAILING SLASH", "serverdir", "C:\Game_Servers\Conan_Exiles_Server") IniWrite("ConanServerUtility.ini", "Use SteamCMD To Update Server? yes/no", "UseSteamCMD", "yes") IniWrite("ConanServerUtility.ini", "SteamCMD Directory. NO TRAILING SLASH", "steamcmddir", "C:\Game_Servers\SteamCMD") IniWrite("ConanServerUtility.ini", "Use Remote Restart ?yes/no", "UseRemoteRestart", "no") IniWrite("ConanServerUtility.ini", "Remote Restart Port", "ListenPort", "57520") IniWrite("ConanServerUtility.ini", "Remote Restart Password", "RestartCode", "FVtb2DXgp8SYwj7J") IniWrite("ConanServerUtility.ini", "Restart Server Daily? yes/no", "RestartDaily", "no") IniWrite("ConanServerUtility.ini", "Check for Update Every Hour? yes/no", "CheckForUpdate", "yes") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour1", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour2", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour3", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour4", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour5", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Hours? 00-23", "HotHour6", "00") IniWrite("ConanServerUtility.ini", "Daily Restart Minute? 00-59", "HotMin", "01") IniWrite("ConanServerUtility.ini", "Excessive Memory Amount?", "ExMem", "6000000000") IniWrite("ConanServerUtility.ini", "Restart On Excessive Memory Use? yes/no", "ExMemRestart", "no") IniWrite("ConanServerUtility.ini", "Running Server with Steam Open? (yes/no)", "SteamFix", "no") MsgBox(4096, "Default INI File Made", "Please Modify Default Values and Restart Script") Exit EndIf OnAutoItExitRegister("Gamercide") Global $sFile = "" Global $Server_EXE = "ConanSandboxServer-Win64-Test.exe" Global $PIDFile = @ScriptDir &"\ConanServerUtility_lastpid_tmp" Global $hWndFile = @ScriptDir &"\ConanServerUtility_lasthwnd_tmp" If FileExists($PIDFile) Then Global $ConanPID = FileRead($PIDFile) Global $ConanhWnd = HWnd(FileRead($hWndFile)) Else Global $ConanPID = "0" Global $ConanhWnd = "0" EndIf Func Gamercide() If @exitMethod <> 1 Then $Shutdown = MsgBox(4100, "Shut Down?","Do you wish to shutdown the server?",10) If $Shutdown = 6 Then FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" Server Shutdown by User Input from ConanServerUtility Script") CloseServer() EndIf MsgBox(4096, "Thanks for using our Application", "Please visit us at https://gamercide.com",2) EndIf If $UseRemoteRestart = "yes" Then TCPShutdown() EndIf Exit EndFunc Func CloseServer() Local $PID = ProcessExists($ConanPID) ControlSend($ConanhWnd, "", "", "I" & @CR) ControlSend($ConanhWnd, "", "", "I" & @CR) ControlSend($ConanhWnd, "", "", "^C") WinWaitClose($ConanhWnd, "", 60) If $PID Then ProcessClose($PID) EndIf FileDelete($PIDFile) FileDelete($hWndFile) EndFunc Func GetRSS() Local $oXML = ObjCreate("Microsoft.XMLHTTP") $oXML.Open("GET", "http://steamcommunity.com/games/440900/rss/", 0) $oXML.Send $sFile = _TempFile(@ScriptDir, '~', '.xml') FileWrite($sFile, $oXML.responseText) EndFunc Func ParseRSS() $sXML = $sFile Local $oXML = ObjCreate("Microsoft.XMLDOM") $oXML.Load($sXML) Local $oNames = $oXML.selectNodes("//rss/channel/item/title") Local $aMyDate, $aMyTime _DateTimeSplit(_NowCalc(), $aMyDate, $aMyTime) Local $cDate = "PATCH "& StringFormat("%02d", $aMyDate[3]) &"."& StringFormat("%02d", $aMyDate[2]) &"."& StringFormat("%04d", $aMyDate[1]) Local $cFile = @ScriptDir &"\ConanServerUtility_LastUpdate.txt" For $oName In $oNames If StringRegExp($oName.text,$cDate&"(?i)") Then If FileRead($cFile) = $oName.text Then ;ConsoleWrite("No New Update" & @CRLF) ExitLoop Else FileDelete($cFile) FileWrite($cFile,$oName.text) Local $PID = ProcessExists($ConanPID) If $PID Then FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" ["& $oName.text &"] Restart for Update Requested by ConanServerUtility Script") CloseServer() EndIf ExitLoop EndIf EndIf Next EndFunc Func UpdateCheck() GetRSS() ParseRSS() FileDelete($sFile) EndFunc Func _TCP_Server_ClientIP($hSocket) Local $pSocketAddress, $aReturn $pSocketAddress = DllStructCreate("short;ushort;uint;char[8]") $aReturn = DllCall("ws2_32.dll", "int", "getpeername", "int", $hSocket, "ptr", DllStructGetPtr($pSocketAddress), "int*", DllStructGetSize($pSocketAddress)) If @error Or $aReturn[0] <> 0 Then Return $hSocket $aReturn = DllCall("ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($pSocketAddress, 3)) If @error Then Return $hSocket $pSocketAddress = 0 Return $aReturn[0] EndFunc ;==>_TCP_Server_ClientIP If $UseSteamCMD = "yes" Then Local $sFileExists = FileExists($steamcmddir &"\steamcmd.exe") If $sFileExists = 0 Then MsgBox ( 0x0, "SteamCMD Not Found", "Could not find steamcmd.exe at "& $steamcmddir) Exit EndIf Else Local $cFileExists = FileExists($serverdir &"\ConanSandboxServer.exe") If $cFileExists = 0 Then MsgBox ( 0x0, "Conan Server Not Found", "Could not find ConanSandboxServer.exe at "& $serverdir) Exit EndIf Endif If $UseRemoteRestart = "yes" Then ; Start The TCP Services TCPStartup() Local $MainSocket = TCPListen($g_IP, $g_Port, 100) If $MainSocket = -1 Then MsgBox ( 0x0, "TCP Error", "Could not bind to [" & $g_IP & "] Is this the correct Server IP?") Exit EndIf EndIf While True If $UseRemoteRestart = "yes" Then Local $ConnectedSocket = TCPAccept($MainSocket) If $ConnectedSocket >= 0 Then $Count = 0 While $Count < 30 $RECV = TCPRecv($ConnectedSocket,512) $PassCompare = StringCompare($RECV, $RestartCode, 1) If $PassCompare = 0 Then Local $PID = ProcessExists($ConanPID) ; Will return the PID or 0 if the process isn't found. If $PID Then Local $IP = _TCP_Server_ClientIP($ConnectedSocket) Local $MEM = ProcessGetStats($PID, 0) FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1] &" Restart Requested by Remote Host: "& $IP) CloseServer() Sleep (10000) ExitLoop EndIf Else Local $IP = _TCP_Server_ClientIP($ConnectedSocket) FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" Restart ATTEMPT by Remote Host: "& $IP &" WRONG PASSWORD: "& $RECV) ExitLoop EndIf $Count += 1 Sleep (1000) WEnd If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket) EndIf EndIf Local $PID = ProcessExists($ConanPID) If $PID = 0 Then If $UseSteamCMD = "yes" Then RunWait(""& $steamcmddir &"\steamcmd.exe +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir "& $serverdir &" +app_update 443030 validate +quit") EndIf If $CheckForUpdate = "yes" Then UpdateCheck() EndIf If $BindIP = "no" Then $ConanPID = Run(""& $serverdir &"\ConanSandbox\Binaries\Win64\"& $Server_EXE &" ConanSandBox?QueryPort="& $GamePort &"?MaxPlayers="& $MaxPlayers &"?AdminPassword="& $AdminPass &"?listen -nosteamclient -game -server -log") Else $ConanPID = Run(""& $serverdir &"\ConanSandbox\Binaries\Win64\ConanSandboxServer-Win64-Test.exe ConanSandBox?MULTIHOME="& $g_IP &"?QueryPort="& $GamePort &"?MaxPlayers="& $MaxPlayers &"?AdminPassword="& $AdminPass &"?listen -nosteamclient -game -server -log") EndIf $ConanhWnd = WinGetHandle(WinWait(""& $serverdir &"", "", 70)) If $SteamFix = "yes" Then WinWait(""& $Server_EXE &" - Entry Point Not Found","",5) If WinExists(""& $Server_EXE &" - Entry Point Not Found") Then ControlSend(""& $Server_EXE &" - Entry Point Not Found", "", "", "{enter}") EndIf WinWait(""& $Server_EXE &" - Entry Point Not Found","",5) If WinExists(""& $Server_EXE &" - Entry Point Not Found") Then ControlSend(""& $Server_EXE &" - Entry Point Not Found", "", "", "{enter}") EndIf EndIf FileDelete($PIDFile) FileDelete($hWndFile) FileWrite($PIDFile,$ConanPID) FileWrite($hWndFile,String($ConanhWnd)) FileSetAttrib($PIDFile,"+HT") FileSetAttrib($hWndFile,"+HT") Else Local $MEM = ProcessGetStats($PID, 0) If $MEM[0] > $ExMem And $ExMemRestart = "no" Then FileWriteLine(@ScriptDir & "\ConanServerUtility_ExcessiveMemoryLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1]) Sleep (10000) ElseIf $MEM[0] > $ExMem And $ExMemRestart = "yes" Then FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1] &" Excessive Memory Use - Restart Requested by ConanServerUtility Script") CloseServer() Sleep (10000) EndIf EndIf If ((@HOUR = $HotHour1 Or @HOUR = $HotHour2 Or @HOUR = $HotHour3 Or @HOUR = $HotHour4 Or @HOUR = $HotHour5 Or @HOUR = $HotHour6) And @MIN = $HotMin And $RestartDaily = "yes") Then Local $PID = ProcessExists($ConanPID) If $PID Then Local $MEM = ProcessGetStats($PID, 0) FileWriteLine(@ScriptDir & "\ConanServerUtility_RestartLog.txt", @YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN &" --Work Memory:"& $MEM[0] & _ " --Peak Memory:"& $MEM[1] &" Daily Restart Requested by ConanServerUtility Script") CloseServer() EndIf Sleep (10000) EndIf If @MIN = $HotMin And $CheckForUpdate = "yes" Then UpdateCheck() Sleep(70000) EndIf Sleep (500) WEnd
V2.2.2.0 Server Utility Source:
Spoiler#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=favicon.ico #AutoIt3Wrapper_Res_Comment=By Dateranoth - Feburary 6, 2017 #AutoIt3Wrapper_Res_Description=Utility to Remotely Restart Conan Server #AutoIt3Wrapper_Res_Fileversion=2.2.2.0 #AutoIt3Wrapper_Res_LegalCopyright=Dateranoth @ https://gamercide.com #AutoIt3Wrapper_Res_Language=1033 #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ;By Dateranoth - Feburary 6, 2017 ;Used by https://gamercide.com on their server ;Feel free to change, adapt, and distribute #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> ; Start The TCP Services ;============================================== TCPStartup() ; Set Some reusable info ;-------------------------- Local $ConnectedSocket, $szData If FileExists("ConanServerRemoteRestart.ini") Then Local $cIPorName = IniRead("ConanServerRemoteRestart.ini", "Use IP (x.x.x.x) or Name (myserver.com) (ip/name)", "cIPorName", "ip") Local $cSERVERADDRESS = IniRead("ConanServerRemoteRestart.ini", "GameServerIP (can be name or IP based on above setting)", "cSERVERADDRESS", "127.0.0.1") Local $cPORT = IniRead("ConanServerRemoteRestart.ini", "RestartServerPort", "cPORT", "57520") Local $RPassword = IniRead("ConanServerRemoteRestart.ini", "DefaultRestartPassword", "RPassword", "") Else IniWrite("ConanServerRemoteRestart.ini", "Use IP (x.x.x.x) or Name (myserver.com) (ip/name)", "cIPorName", "ip") IniWrite("ConanServerRemoteRestart.ini", "GameServerIP (can be name or IP based on above setting)", "cSERVERADDRESS", "127.0.0.1") IniWrite("ConanServerRemoteRestart.ini", "RestartServerPort", "cPORT", "57520") IniWrite("ConanServerRemoteRestart.ini", "DefaultRestartPassword", "RPassword", "") MsgBox(4096, "Default INI File Made", "Please Modify Default Values and Restart Script") TCPShutdown() ; Close the TCP service. Exit EndIf If $cIPorName = "name" Then Local $cIPAddress = TCPNameToIP($cSERVERADDRESS) Else Local $cIPAddress = $cSERVERADDRESS EndIf OnAutoItExitRegister("Gamercide") Func Gamercide() TCPShutdown() ; Close the TCP service. MsgBox(4096, "Thanks for using our Application", "Please visit us at https://gamercide.com",2) Exit EndFunc Func MyTCP_Client($sIPAddress, $iPort, $iData) ; Assign a Local variable the socket and connect to a listening socket with the IP Address and Port specified. Local $iSocket = TCPConnect($sIPAddress, $iPort) Local $iError = 0 Local $cData = StringToBinary($iData, 4) ; If an error occurred display the error code and return False. If @error Then ; The server is probably offline/port is not opened on the server. $iError = @error MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Client:" & @CRLF & "Could not connect, Error code: " & $iError) Return False EndIf ; Send Restart Code to the Server. Local $bytes = TCPSend($iSocket, $cData) ; If an error occurred display the error code and return False. If @error Then $iError = @error MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Client:" & @CRLF & "Could not send the data, Error code: " & $iError) Return False Else MsgBox(4096, "Success!", $iData &" Sent to "& $sIPAddress &":"& $iPort &" containing "& $bytes &" bytes of data",10) EndIf ; Close the socket. TCPCloseSocket($iSocket) EndFunc ;==>MyTCP_Client ;Loop forever asking for data to send to the SERVER While 1 ; InputBox for data to transmit $cPass = InputBox("Restart The Conan Server", @LF & @LF & "Enter the code to Restart The Conan Server within 30 seconds:",$RPassword) ; If they cancel the InputBox or leave it blank we exit our forever loop If @error Or $cPass = "" Then MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "No Restart Sent",5) ExitLoop Else MyTCP_Client($cIPAddress, $cPort, $cPass) ExitLoop EndIf WEnd Func OnAutoItExit() EndFunc
-
It's your lucky day. I had to get up early for work. Haha
Conan Exiles Server Utility
in Computer
Posted
Hard to say. It could be steam still has something in use too. Maybe just try restarting steam first.