prom3theu5 / ConanExilesServerUpdater

Dedicated Server Updater For Conan Exiles
Apache License 2.0
11 stars 2 forks source link
conan conanexiles

Build status

Conan Exiles Dedicated Server Updater / Service

What can this do?:

The updater needs write access to your steamcmd folder, so setup windows permissions for this. This is because appcache has to be removed prior to an update check to ensure the correct LIVE build version is returned from steam.

Configuration is handled in the config.json file:

{
  "Twitch": {
    "OAuth": "",
    "Username": "",
    "Channel": 0
  },
  "Discord": {
    "DiscordToken": "",
    "ChannelId": 0
  },
  "Conan": {
    "FolderPath": "c:\\conanserver\\",
    "Executable": "ConanSandboxServer.exe",
    "StartupParameters": "ConanSandbox?Multihome=X.X.X.X?GameServerPort=27015?GameServerQueryPort=27016?ServerName=YOURSERVERNAME?MaxPlayers=50?listen?AdminPassword=YOURADMINPASSWORD -nosteamclient -game -server",
    "RaidingProtectionHoursEnabled": false,
    "RaidingStartHour": 0,
    "RaidingLengthInHours": 0,
    "AvatarsEnabledCertainHours": false,
    "AvatarActivationHour": 0,
    "AvatarsActiveLengthInHours": 0
  },
  "Update": {
    "ShouldInstallSteamCmdIfMissing": false,
    "ShouldInstallConanServerIfMissing": false,
    "SteamCmdPath": "c:\\steamcmd\\",
    "AnnounceDiscord": false,
    "AnnounceTwitch": false,
    "AnnounceMinutesBefore": 5,
    "UpdateCheckInterval": 5,
    "InstalledBuild": 0,
    "UpdateOnLaunch": true
  },
  "General": {
    "ShouldRestartConanOnNotRunning": true,
    "RestartServerAfterHours": 0
  }
}

Messages are handled in the file messages.json

{
  "Discord": {
    "DiscordUpdateMessage": "@Everyone New Conan Server Version Detected, Build: @version. The server will restart in @announcebefore.",
    "DiscordServerUptimeMessage": "The Conan server has been running for @uptime. Restarts are scheduled every @restartinterval. The server will restart in @countdownminutes.",
    "DiscordServerRestartingMessage": "@Everyone The Conan server will restart in @countdownminutes. It will show online in a few minutes.",
    "DiscordServerNotRunning": "@Everyone The Conan server was not detected as running. It will start now, and be online within 2-3 Minutes"
  },
  "Twitch": {
    "TwitchUpdateMessage": "New Conan Server Version Detected, Build: @version. The server will restart in @announcebefore.",
    "TwitchServerUptimeMessage": "The Conan server has been running for @uptime. Restarts are scheduled every @restartinterval. The server will restart in @countdownminutes.",
    "TwitchServerRestartingMessage": "The Conan Server is now restarting. It will show online in a few minutes",
    "TwitchServerNotRunning": "The Conan server was not detected as running. It will start now, and be online within 2-3 Minutes"
  },
  "AnnounceIntervalInMinutes": 0
}

Here you have a couple of parameters that will be replaced then the messages send. You don't have to edit these messages, but if you'd like to you can, and must understand what these parameters are going to be replaced with.

@announcebefore -> This will be replaced with config.json value for announceperiod.
@restartinterval -> The config.json Server Restart Interval
@countdownminutes -> Countdown calculated from time now to expected shutdown.
@uptime -> Calculated from when the server was launched to the current time.
@version -> The new steam version detected.

To Install / Uninstall as a Service

Open a cmd window in the directory. Then run:

ConanExilesUpdater.exe install

or

ConanExilesUpdater.exe uninstall

The Executable can control the service too. You can start and stop it with

ConanExilesUpdater.exe start

or

ConanExilesUpdater.exe stop

Donations

This work is all free, but if you wish to buy me a beer as a thank you you can donate: Here =)

Stuff used to make this: