Releases: NullSoldier/serverthrall
ServerThrall v2.1.10
What's New
- ServerThrall will now close the server properly so that no save data is lost when the server gets restarted. You don't need to do anything to use this, just use the server normally. It accomplishes this by writing a powershell script to a temporary file that sends CTRL+C to the server window and waits for the process to close. It'll fall back to termination if it takes longer than 2 minutes to close cleanly (server hangs).
ServerThrall v2.1.9
What's New
- Added a new plugin for Auto Updating Mods (see below)
- Added new settings to the ServerConfig plugin. For more information visit the ServerConfig documentation
- PlayerIdleThirstMultiplier
- PlayerIdleHungerMultiplier
- PlayerActiveThirstMultiplier
- PlayerActiveHungerMultiplier
- Fixed the ServerConfig plugin syncing duplicate serverRegion entries
Auto Mod Updater
You can now install and update mods automatically using ServerThrall. When a mod needs to update, ServerThrall will send the proper warning messages to your Discord and RCON letting users know that a restart is happening, and what mods will be updating.
Sample Config
[ModUpdater]
enabled = true
workshop_ids = 1502970736,1503527082,1509353006,1509786356,1542041983
Questions?
- Q> How do I get a workshops id?
- A> Go to Conan Exiles workshop at https://steamcommunity.com/app/440900/workshop and look for an item you want to install. Once you click on that item, look at the URL and you will find the workshop item id. As an example, for this item https://steamcommunity.com/sharedfiles/filedetails/?id=1504620953 you can see the id is 1504620953. Just paste that into your
workshop_ids
in ServerThrall.config
- Q> Can I install some mods manually that ServerThrall does not update automatically?
- A> Yes, when ServerThrall updates mods, it looks at all the mods you have installed and will leave mods alone that are not managed by ServerThrall. This also means you need to manually clean up and delete mods yourself if you remove it from
workshop_ids
in ServerThrall.config.
- Q> How do I control the order that mods get loaded by Conan Exiles?
- A> ServerThrall will automatically sort your mods in the modlist based on the order in which they show up in
workshop_ids
in ServerThrall.config. If you have any mods that are manually installed and not updated by ServerThrall, they will be sorted to the top of the list in the order that they appeared in the modlist.
- Q> How does ServerThrall detect mods that need updating?
- A> ServerThrall detects mods that need updating in 3 ways. It downloads newer versions through steamcmd and checks the mods manifest to see when the last time a new version was uploaded. It also checks to see if a pakfile has gone missing inside the mods folder in your server. This means if you delete pakfiles, Serverthrall will detect it and restart your server so it can repair the missing pakfile. The last way is if your modlist is missing entries. A restart will be scheduled to repair your modlist file and write the mods ServerThrall updates into the modlist again.
ServerThrall v2.1.7
What's New
- Add new plugin to send a custom periodic message into the server (see below)
- Add new plugin to call custom scripts, and optionally report results into discord (see below)
- Add ability to override ip address shown on thrallbrowser page (see below)
- Add translations for all default messages
- Add spanish translations
- Removed -NOSTEAM in default arguments (use additional_arguments if you want to add it back)
- Fixed crashing when users removed values from the config that were required
1. Periodic Message Plugin
You can now send a periodic message into the game server using RCON which will appear as a popup to players. This required the RCON plugin to be enabled and RCON to be configured.
[PeriodicMessage]
enabled = true
message = Hello Players World
[RemoteConsole]
enabled = true
[ServerConfig]
enabled = true
RconEnabled = 1
RconPassword = YourRconPassword
RconPort = 25575
RconMaxKarma = 1000
2. Add RunScripts plugin
There is a new plugin which can run an arbitrary script file. If you add a Discord webhook for it, it will also send the STDOUT of that script to discord.
[RunScripts]
enabled = true
command = test.bat
command_timeout = 300
[Discord]
enabled = true
RunScripts = https://discordapp.com/api/webhooks/...
3. Override IP address shown on ThrallBrowser
For some users that have many servers on one machine, they need to override the IP address that ThrallBrowser uses to generate the JOIN SERVER link. You can now do this with ip_address_override
setting.
[ApiUploader]
ip_address_override = 100.8.9.10
ServerThrall v2.1.6
What's New
- Fixed sending incorrect times to ServerThrallAPI. This resulted in showing completely wrong times on http://thrallbrowser.com. All times such as "last logged in" will now be correct once you upgrade to 2.1.6.
ServerThrall v2.1.5
What's New
- Fixed ApiUploader not sending QueryPort for use in ThrallBrowser causing join buttons to not appear
- Fixed ServerRestarter crashing when no restart times are given
- Added support for non english languages with Polish as the first language (see below)
- Added the ability to send out multiple warnings before server restarts (see below)
- Added a new ALPHA updater for serverthrall.exe itself (see below)
1. Multiple Warning Messages
You can easily send out multiple notifications at a given interval before restarts. Just use coma separated values for your warning_minutes and it will automatically send them out at that time before the restart. The example below will warn users 30, 15, 5, and 1 minutes before a restart respectively.
Note If you start ServerThrall and the current time is past the largest warning time, the restart will be ignored because it missed the restart phase. For example, if there is 25 minutes until a schedule restart and you start serverthrall.exe with warning_minutes=30
then the restart will not take place. We are looking into improving this behavior.
[RestartManager]
warning_minutes = 30,15,5,1
2. Add support for other languages for message templates
Set your language=pl to use the new polish language. As we support more languages, you will be able to set your language to your countries language code. If you want us to support your language, ping us in discord. Right now this only affects message template such as $timeleft
and $timeunit
.
[ServerThrall]
enabled = true
language=pl
3. Add Serverthrall updater
This is an ALPHA only and is not guaranteed to work. You need to close serverthrall.exe to run it. We'll be doing some more testing and improvements.
ServerThrall v2.1.4
Thank you to all the members of the community that contributed bug reports and helped me track down issues!
What's New
- Fix non english characters causing RCON to crash #65
- Fix RCON crashing trying to send before the server has started accepting RCON connections #67
- Add
force_test_discord
to the DiscordPlugin to help test if your discord integration works #70 - Added a message to warn you if you dont have RCON configured properly but you have the RCON plugin enabled
1. ServerConfig plugin no longer causes the server to restart endlessly #69
ServerConfig will no longer restart your server endlessly. It's more stable, and you can edit your ServerConfig now without worrying about it restarting your server. ServerConfig will NEVER restart your server when attaching to an existing running server. You can edit your ServerConfig configuration without worry.
Your changes will apply during the next server restart by the ServerRestarter plugin automatically. If you need to force a restart, use force_restart_on_launch
in the ServerRestarter plugin. It's a one time setting that will disable afterwards.
2. Add support for Discord integration sending to multiple outputs #71
Simply separate your webhook urls by a semicolon ;
character and discord integration will send the message to each webhook. Here is an example of multiple discord outputs for the ServerUpdater plugin.
[Discord]
enabled = true
ServerRestarter = https://discordapp.com/api/webhooks/1;https://discordapp.com/api/webhooks/2;https://discordapp.com/api/webhooks/3
stale_message_seconds = 2
force_test_discord = False
ServerThrall v2.1.3
With this update, the documentation is being re-written as well to contain all the new information.
What's New
This is a very large release with a few major items described below.
- Running multiple Conan Exiles servers on the same computer with ServerThrall now works as expected.
#57 - Servers should now close safely so that the game server has time to save all data. This should make you feel better about using the ServerRestart plugin. No data will be lost by your players. #55
- In the past if your server name had spaces inside the ServerConfig plugin, it would not display properly and you would have to know to put quotes around the name. Now, ServerConfig will automatically quote your name so it just works. #52
- version.txt has been removed. You can still see your current serverthrall version in serverthrall.log, or serverthrall.config #60
- Unhandled crashes are now logged to serverthrall.log for easier debugging
- QueryPort is now sent to ServerThrallApi using the ApiUploader plugin so that your ThrallBrowser page can display a join server button. #56
- All plugins now have a new config item that can override their log verbosity. Add
log_level = DEBUG
to any plugin to change that plugin to be more verbose. The set of log levels are DEBUG, INFO, WARNING, ERROR, or CRITICAL. - Fixed a crash when ServerConfig would attempt to access conan configs that would be locked by the Conan Exiles server
3. Breaking Configuration Changes
Some configuration options have changed, please update your configuration below.
- ServerRestarter.warning_minutes has been moved to RestartManager.warning_minutes
- ServerRestarter.send_warning_message have been moved to RestartManager.warning_send_discord and RestartManager.warning_send_rcon
- ServerRestarter.announce_in_game has been moved to RestartManager.restart_send_discord and RestartManager.restart_send_rcon
2. Added RCON integration
Alongside Discord, you can now have ServerThrall notify users of an impending update. This is done with the new RestartManager system that all plugins use to perform restarts. To enable this functionality, you can configure RestartManager plugin below.
[RestartManager]
enabled = true
warning_minutes = 5
warning_send_discord = True
warning_send_rcon = True
restart_send_discord = True
restart_send_rcon = True
Setting | Description |
---|---|
warning_minutes | dictates how long in minutes to give users after warning them of a server restart to restart the server. |
warning_send_discord | true if you want a warning to be sent to discord |
restart_send_discord | true if you want discord to be notified of a restart |
warning_send_rcon | true if you want a warning to be sent in game to your players |
restart_send_rcon | true if you want your in game players to be notified as they are being disconnected |
3. RCON and Discord message customization
All plugins now support customizing messages sent to RCON or Discord, and each plugin provides special template items to help you customize your messages with contextual information.
Here are the new configuration options
DownRecovery
[DownRecovery]
discord_restart_message = @everyone Ah poop the server crashed! Bringing it back up!
ServerRestarter
[ServerRestarter]
rcon_warning_message = There are $timeleft $timeunit until the restart, get to a safe place!
rcon_restart_message = Goodbye world, next restart at $nextrestart
discord_warning_message = @everyone There are $timeleft $timeunit until the restart!
discord_restart_message = @everyone The server is restarting, next restart at $nextrestart
Warning Message Values
- $timeleft How much time is left before the restart
- $timeunit The unit for how much time is left before restart (ie: minute / minutes)
- $newline Add a newline to your message
Restart Message Values
- $newline Add a newline to your message
- $nextrestart When the next restart will happen
ServerUpdater
[ServerUpdater]
rcon_warning_message = There are $timeleft $timeunit until the restart, get to a safe place!
rcon_restart_message = New update available from $current to $target on $branch.
discord_warning_message = @everyone There are $timeleft $timeunit until the restart!
discord_restart_message = @everyone The server is restarting, next restart at $nextrestart
Warning Message Values
- $timeleft How much time is left before the restart
- $timeunit The unit for how much time is left before restart (ie: minute / minutes)
- $newline Add a newline to your message
- $current The current conan exiles version number
- $target The version number we are about to update to
- $branch The branch, either 'public' or 'testlive'ff we are on
Restart Message Values
- $newline Add a newline to your message
- $current The current conan exiles version number
- $target The version number we are about to update to
- $branch The branch, either 'public' or 'testlive'ff we are on
ServerThrall v2.1.2
What's New
Remove use of @everyone in ServerUpdater's Discord integration.
ServerThrall v2.1.1
What's New
Fixed an issue where ServerRestarter wouldn't drop some restart times. Times are no longer being dropped, particularly morning times.
ServerThrall v2.1.0
What's New
This release should resolve a few issues that have been lingering since October of last year when I fell off the project.
- Added Discord Support
Added Discord support. Now you can specify keys in the discord plugin for each plugin and that plugin will use that webhook to send discord messages. Add the below to your serverthrall.config
[Discord]
enabled = true
stale_message_seconds = 2
ServerRestarter = https://discordapp.com/api/webhooks/...
DownRecovery = https://discordapp.com/api/webhooks/...
ServerUpdater = https://discordapp.com/api/webhooks/...
- Added auto server restarter
Now you can configure your server to auto restart itself and give a warning in discord. Add the following to your serverthrall.config
[ServerRestarter]
enabled = true
restart_times = 6:00,10:00,16:00,20:00
warning_minutes = 5
send_warning_message = True