


A full changelog of changes, dating all the way back to the first release.
Changes
Breaking Changes
DiscordConnector-Client plugin is required on clients for the new chat functionality to work. While you can still
use just the server DiscordConnector plugin, you will not get the chat information (shouts, pings, etc.) from the clients.The client plugin is on Thunderstore or can be downloaded from the GitHub releases.
Changes
DiscordConnector.dll file which includes this plugin & its dependencies.Fixes
Fixes
Built against the latest version of Valheim (0.219.14, the Bog Witch update).
Fixes
BepInEx/config/games.nwest.valheim.discordconnector/vdc.log)These changes for logging are to help with troubleshooting plugin issues without requiring the full server log to do so (although sometimes it would be necessary to see the full server log).
Features
%TIMESTAMP% - replaced with <t:UNIX_TIMESTAMP> which Discord will convert to the user's local time%TIMESINCE% - replaced with <t:UNIX_TIMESTAMP:R> which Discord will convert to a relative time (e.g. 2 hours ago)%UNIX_TIMESTAMP% - replaced with the UNIX timestamp of the event (e.g. 1634567890). This can be used to create a custom timestamp format in the message.Features
discordconnector-extraWebhooks.cfg)@here and @everyone are disabled by default -- possibly a breaking change)Fixes
ZNet.GetPublicIP() method and instead gets the public IP on its own at server start.%NUM_PLAYERS% proactively subtracts 1 if the event is a player leavingFeatures
%JOIN_CODE% variable which will show the join code if crossplay is enabled%NUM_PLAYERS% variable which will show the number of online playersFixes
%WORLD_NAME%, %PUBLIC_IP%, and %DAY_NUMBER% can be
in any messages and be replaced.Note: At server startup, some variables may not be available. They all should be available when server is launched, but the join code may take a bit longer to display -- more testing is needed to know exactly how much extra time it needs on average. If it is consistently unavailable, please file an issue and we can come up with either a delayed startup message or another event that fires when the code becomes not empty or changes.
Features
%DAY_NUMBER% variable replacement (@jterrace)Features
Fixes
Fixes:
Fixes:
Fixes:
Fixes:
Features:
Fixes:
Update to Valheim 0.214.300
This is for build 0.214.2 onward of Valheim. The signature of the chat messages was changed which was causing an argument out of bounds exception with Discord Connector.
Fixes:
Thanks a lot to everyone who reported and helped resolve this error. Missed it in my initial testing because I was eager to test both webhooks and didn't end up testing with only one set.
Fixes:
Adds a requested feature for a second webhook. Both webhooks can be configured to accept messages of any type that Discord Connector sends, and by default (to be non-breaking) they will send all messages (which is the behavior of 2.1.8 and previous). Some plugins which may make use of Discord Connector's webhook to send messages can use the same method for sending and will be tagged as 'other' webhook events. For a full list of what webhook events can be configured, see the documentation.
Features:
Fixes:
Fixes:
Fixes:
Changes:
Fixes:
Changes:
ContinueWith instead of dispatching a task%PUBLIC_IP% variable now gets its information by asking the server instead of finding out itselfFixes:
Fixes:
Mistlands update.
Fixes:
A full leaderboard overhaul is in the version. The previous settings for the statistic leaderboards are depreciated in favor of configuration defined statistic leaderboard settings. Look in the discordconnector-leaderboards.cfg file and configure any number of the 4 leaderboards to present the kind of data you want. In addition to multiple leaderboards, there are now time-based filters for the leaderboards; restrict them to today or this week or leave them set to all-time. By default, all leaderboards are disabled. If you were using a leaderboard before, you will have to set up a leaderboard to accomplish what you were sending before and enable it. Sorry for the inconvenience but this was the safest tradeoff.
Also relating to statistic leaderboards, there is a new statistic available for the leaderboards, 'Time Online' which uses the saved 'join' and 'leave' records to estimate a player's time on the server and present that as a value. This obviously doesn't work if you had disabled one or the other pieces of tracking (either disabled recording 'join' or 'leave' stats in the toggles config file). This values are calculated when the leaderboard is created but that should be OK since it is in a non-blocking task call.
The new Active Player's Announcement can be configured to announce server activity at a pre-defined interval. Configurable stats for it include players currently online, unique players online today, unique players online this week and unique players all time. It will use the same method set in the main config file (discordconnector.cfg) for how to determine individual players to count unique players for these time spans.
Additionally, the configuration files are nested in a subdirectory now. This is from a request on the plugin repository. When loading 2.1.0 (or future versions), the Discord Connector config files that are in the BepInEx/config directory will be automatically moved to the subdirectory and loaded from there. The subdirectory is BepInEx/config/games.nwest.valheim.discordconnector, and the config files themselves have shortened filenames. The records database is also moved to this subdirectory and renamed records.db.
Features:
Changes:
config-debug.json file is dumped to subdirectory after config load to be useful for debugging issues with the plugin (sensitive info is redacted, i.e. the webhook url)discordconnector.cfg: How to discern players in Record Retrieval)Changes:
%WORLD_NAME% will now only replace with world name once server has started up to avoid an issue with Key ManagerChanges:
Fixes:
Features:
%WORLD_NAME% turns into the name of the world.Changes:
%POS% now renders without the enclosing parentheses.Features:
Other Changes:
If a shout is performed by a player that isn't a real player (like a mod), it would break the shout call from working. This is because Discord Connector was trying to lookup the player's details and encountering null. The plugin now checks for that and returns early if null is found.
Fixes:
With this update, we bring back Steam_ID variable inclusion and leader board message sending (respecting your config settings). I recommend you replace your discordconnector.valheim.nwest.games-records.db database, since the records will not line up and will be essentially soft-reset because the column name changed with the different type of data. Steam IDs are prefaced with 'Steam_' now, so you could migrate your stat database with a bit of effort. I believe this could all be done with queries inside the LiteDB Query Tool.
Fixes:
%STEAMID% variable works again. An alias is the %PLAYERID% variable, which does the same thing -- they both provide the full player id, so Steam_<SteamID> or XBox_<XBoxID>Breaking changes:
Previous version broke with the new updates to Valheim using the PlayFab server stuff. Previously, the steam ID was grabbed directly from the socket but that doesn't work anymore. To get something workable (the other messages work), I have removed the code which tried to get the SteamID and disabled leader board sending.
Breaking changes:
Features:
Fixes:
true but the 'shout message' was blank, in prior versions this would crash the plugin)Fixes:
Features:
%PLAYER_STEAMID% which gets replaced with the player's Steam IDOther Changes:
Fixes:
There was a typo that was affecting the way the config file was read. I didn't run into this in my testing on Windows but was able to duplicate this on Linux after it was reported. Thank you to those who reported this.
Finally a new release! This on is mainly some small features and bugfixes from the github issues backlog.
Features:
Fixes:
Breaking Changes:
Removed conversion code which would convert records.json into records.db.
If you need to make use of that automatic conversion, load the 1.5.3 version of the plugin once before upgrading.
Fixes:
Fixes:
Due to how records.json recorded stats and the LiteDB, you will not be able to use the old records with strategies involving the SteamID because prior to 1.5.0 we were not recording the SteamID with the record.
Fixes:
Features:
Because of how unreliable storing the records in a "roll-your-own" database with a JSON file was, and because of the increased flexibility in what could be stored, I've changed the storage system for the recorded player stats to use LiteDB. Currently this means records for join/leave/death/shout/ping will be timestamped, include the position of the event, have the player name, and the player's steamid. Hopefully adding this additional information will allow for more customization options for the users of this mod.
It is set up to do a migration on first load of the updated plugin, the steps it follows for that is:
If you don't want to have it auto-migrate the records, rename your records.json or delete it. If the name does not match exactly it will not migrate the data.
For the migration steps, it will be outputting log information (at INFO level) with how many records were migrated and which steps completed.
Added an inverse of the Top Player leader board.
Added configuration for the messages sent at the top of the leader board messages.
%PUBLICIP% can be used in any message configuration
now.Fixes:
Fixes:
Features:
Fixes:
Fixes:
Features:
games.nwest.valheim.discordconnector-variables.cfg which will get generated first time 1.4.0 is run.%POS% variable in
the messages config. It won't be replaced if the "send coordinates" toggle is off for that message. If you don't include a %POS%
variable, it will append the coordinates as happens with previous versions.Fixes:
Breaking Changes:
%PLAYERS% in any of the event messages, you need to remove it. With the changes required for the event messages
functionality, it is not supportable at this time.Features:
Fixes:
Also this update modifies when the startup, shutting down, and shut down messages are sent. There now will likely be a bit of a pause because the startup message gets sent when the game is initialized instead of when the loading of the map starts for the server.
Fixes:
A breaking change was found with the records.json in 1.2.0. The records.json file needs to have all PlayerName changed to Key.
If you are seeing an error message in your logs from Discord Connector, this is the likely culprit (should see something about
JsonException I believe). For example:
records.json pre 1.2.0:
[{"Category":"death","Values":[{"PlayerName":"Xithyr","Value":13} ...
records.json 1.2.0+ (PlayerName changed to Key)
[{"Category":"death","Values":[{"Key":"Xithyr","Value":13} ...
Features:
%PUBLICIP% message variable available in the server messages
There is no variable for what port the game is running on since I figured that had to be set manually in the first place (if not default),
and you should be able to modify the message to be something like Join the server on %PUBLICIP%:2457 or similar if you want to.
Messages for events start/pause/stopping
A feature that I wanted finally added. This was difficult to test in a server environment and I did the testing running on the client and then the client running as a server. In those instances I verified that the messages were fired when events started, ended, paused or resumed. The resume message is the same as the start message by default because I couldn't think of a way to word it that made sense.
Fix:
Features:
Fixes:
Release 1.0.0 is a breaking release since the structure of the configuration files completely changes. When you update you will need to modify the config to save your webhook again and to update any message customization you have done!
Features:
Fixes:
Other Changes:
This version included a source code restructuring which should make it easier to maintain in the future.
Hotfix: Message toggles don't act independently.
This is fixed and you can have join messages disabled and death messages enabled and get death messages sent.
Features:
Fixes:
Fixes
Default config options are updated to be true for all notification and coordinates.
Features:
Fixes:
Improvements:
Added a Death detection and config options to enable/disable the messages as well as set either a single message or list of messages to be chosen from when sending a message.
Hotfix for mis-packed plugin
Added config option to ignore players when sending shout messages to Discord.
Fixes:
Features:
Enabled for both the client and server versions of Valheim.
Key differences if running a server from the client:
Fixes:
New this version:
Added a stat recording mechanism. This will record the player name and the trigger (join, leave, shout, or ping) when a notification is generated for Discord. These are stored in a 'records.json' file in the game server directory. The plan is to (optionally) incorporate these stats into the messages sent to Discord. For example, when you log in, it adds a little context: "John joined the game for the 1st time!" or "Stuart arrives. Previous logins: 15". The context additions are not yet created but record-keeping is ready and makes sense to get it started as soon as possible.
If you want to disable the record keeping in its entirety, set the Collect Player Stats config value to false. This will prevent any records from being saved or written to disk.
Allows for randomized messages to get sent. If you want only one message to be sent (the existing functionality 0.4.0 and earlier), you don't need to change anything, and default configuration will only have one message for each notification. If you would like to have a random message chosen each time, add multiple messages for each config value and separate them with a semicolon ';'. Then, when Discord notifications are sent, a random message will be sent from what you have provided.
New Features:
Breaking Changes:
Features:
Thanks to a contribution from Digitalroot, player join and leave messages are now implemented. You can modify what is announced when players join and leave or toggle them on or off.
This removes the PlayerArrival settings.
Bug fixes:
When the server loaded it was sending the same message from the launch.
New Features:
Added 3 messages from hooking into the chat on the server. This includes:
All 3 are togglable and can have the position toggled separately.
To include when players leave, more work has to be done because those events are not broadcast and instead it is only network messages.
Added link to a how-to guide for creating a discord webhook.
Initial release. Configuration and sends messages on server startup and shutdown. Essentially a minimally viable product.