Releases: Special-K-s-Flightsim-Bots/DCSServerBot
DCSServerBot Release 3.0.4.23
Improved AFK check:
Players can now be checked for being AFK not only when they are in the slot selection, but also when they sit on the apron. Please consider increasing your AFK times, to give people the chance to cold start, rearm, refuel and taxi. If you look at the main README, servers.yaml, you will see that you can configure several options. All AFK checks are optional anyway.
New plugin "SkyEye"
You also get a new plugin "SkyEye", which you do not need yet (go with the extension instead), but which will be helpful with the upcoming SkyEye release 1.9. Thanks to @dharmab, we can run ahead of schedule already, but I will not spoiler too much of what you will get.
srs_nudge_message in your nodes.yaml / SRS settings,
please delete your DCS-SRS-AutoConnectGameGUI.lua and let the bot recreate it.
I am ashamed but I garbled it a bit. Only relevant, if you overwrote that message.
Enhancements
- 💯 Mission: improved AFK check (see README for details)
- 🆕 New plugin "SkyEye" to upload locations.json (as of v1.9, WIP)
Changes
- ModManager: can download packages now during the uninstallation also (necessary for recreation of install.logs)
- ModManager: performance tuning
- ModManager: changed install.log from cp1252 to utf-8
- Mission: Better messages on mission upload
- MissionStats: /sorties has the same logic now as punishment in regards of death tracking
- Cluster: more stable connection handling on connection issues
- 💯 Cluster: will send an alert now, if a node has crashed
- Core: more robust Discord connection handling.
Bugfixes
- gRPC did not uninstall correctly if not installed via modmanager
- MOTD: delayed message sending did not work (hotfixed)
- SRS: error if ATC frequencies have to be read from the airfield
- SRS: NUDGE_TIME was removed from AutoconnectGameGUI.lua if nudge_message was set
- RealWeather: if ignore_errors was set, the modification chain could have been corrupted. Additional error handling added.
- Multicrew detection can fail if pilot switched slot already
- Music: duplicate songs could be played over each other (hotfixed)
- ModManager: upload pattern match could falsely detect missions as mods
- MizEdit: unsupported operand fixed
- Lardoon: did not evaluate environment variables in path
- Punishment: reslot did not take coalition change into account
- Persistence: could not persists dates before 1.1.1970
- Scheduler: item was not set correct on mission restarts
DCSServerBot Release 3.0.4.22
Enhancements
- 🆕 New extension "HoundTTS"
- 🆕 New extension "Persistence" to persist mission date / time
- Cluster: new command
/node masterto query and change the master - SRS:
/srs ttsadded - SRS:
dcsbot.send_tts(...)added to MSE - SRS: ATC enforcement added with optional punishment
/server configcan change more server settings now- Scheduler: coalition_win added to allow actions based on mission end with win
- MOTD: "delay" added to on_birth
- 💯 Cloud: auto-matching of users enabled for Cloud statistics subscribers
Changes
- 💯 Extensions auto-install the necessary mod now (like Olympus, DSMC, etc).
- 💯 Admin:
/extension enable,/extension disableimproved,/extension list,/extension update,/extension repairand/extension configureadded ⚠️ LotAtc: removed/lotatc install, uninstall, configure, repair(in favor of/extension enable, disable, configure, repair)⚠️ Tacview: removed/tacview install, uninstall, configure, repair(see above)- Mission: Better messages for banned / ban-evading users
- Mission:
/watch addalways asks for a reason - Mission: Add kick option to inappropriate usernames
- Missionstats allows for an embed channel now
- Missionstats: ignore taxiway checks on rubber banding clients.
- Better error handling if intents aren't activated in Discord
- Members will be displayed as mentioning throughout most commands now.
⚠️ Realweather: dropped v1.x support- SRS: more robust player detection
- Cloud: upload linked users to the cloud (WIP)
- Userstats: Removed the coalition locking from
/highscore - ModManager:
/mods downloadcan handle multiple assets in GitHub. - Tournament: Cheat-detection added for people that use multiple accounts.
- Tacview: upload channel option added to
/tacview download - Tacview: removed auto-changing of TacviewRealtimeTelemetry based on playback delay
- Restore can restore in cloud databases now.
- Ignore permission errors in LogAnalyser
- More config options for SRS, LotAtc
⚠️ GDPR: Disabled printing of raw IPs and hashed the /24 values of them instead.- Core: Schema validation disabled after updates to avoid errors
- Core: Updated cluster code.
- Core: Optimized pattern matching on uploads
- Core: allow remote nodes to read the config from remote
- Core: chat commands can be hidden now
Bugfixes
/discord healthcheck: ignore CategoryChannels for counting/squadron addissue with missing rank fixed- Different node versions in a cluster should lead to updates/downgrades.
- Wrong id used on collision detection (hotfixed)
- Fog: thickness needs to be set before visibility (hotfixed)
- LotAtc: transponder schema fixed (hotfixed)
- DashBoard: do not show remote servers on agents after master switch
- DashBoard: was cleared and did not post log messages anymore after exceptions.
- Punishment: Audit events were DMed to users (hotfixed)
- Punishment: removed double ban messages on multiple events
- Punishment: old punishment events were not removed and caused (noop) forgive messages
- Punishment: event "punish" missing to create own punishments in lua
- MizEdit: math / random missing from namespace (thanks chruutvoluzi !)
- Slot / Subslot initialisation to 0 on new joins to fix missing disconnects
- RestAPI: wind_dir caused fraction issue (thanks to @davidp57 for the PR)
- ModManager: recreation of missing install.txt missed directories in some cases.
- Mission: Chat message for move to spectators not correctly formatted.
- Mission: Orig file was not deleted on mission upload when autoadd was true
- Remove coalitions from players if they lost it.
- ModManager: better cleanup of directories on uninstall
- Cloud: error on initial sync
- CreditSystem: foreign key for UCID did not contain update clause
- Cluster: no_master could result in all agent config (hotfixed)
- Restore deleted the restore directory on error.
Please visit my discord server, if you have any questions!
DCSServerBot Release 3.0.4.21
PvP Changes
I made some changes that are of interest for you guys. The bot now not only detects if someone bails out on an engagement (disconnect/reconnect, reslot), but it can also punish that. Look at the Punishment plugin and find a new event "reslot" which you can punish as you prefer. Also, the attacker gets the kill, if the opponent rage quits. This is bound to certain rules, especially timings of shoots or even hits.
Taxiway Takeoff
Many hate it - you can punish it now! You get another new event in your Punishment system: "taxiway_takeoff". This can be for instance punished with a move to spectators or a kick.
New Auto Affinity (WIP)
The bot can now detect your CPU architecture and assign the DCS.exe process, SRS, Olympus, SkyEye, Sneaker, Lardoon (and whatever extension you might use that uses an external program) to specific cores according to their needs. This feature is WIP and still needs testing and probably tuning. But it can help, especially if you use heavy tasks like SkyEye without a cloud API token.
Cluster / Multinode
I made lots of improvements on stability of the multinode system. Thanks to Hitman and - I would say - both of our patience with each other :D, we managed to make this functionality a little bit better again.
I have to thank @engines-wafu for contributing 3 new plugins "Flightplan", "Logbook" and "Logistics". Also @pschilly did a lot of enhancements to the RESTApi, which is highly appreciated.
As the Python community likes to treat me with unwanted updates ... there is an update for PIP available (version 26). Please do NOT update PIP to version 26 until you have updated the bot.
A DCS restart is not necessarily required this time, but I would highly recommend it.
Enjoy this update and report any issues as usual to me.
Changelog 3.0.4.21
Enhancements
- New plugins Flightplan, Logistics and Logbook, (contributed by @engines-wafu )
- Added
dcsbot.getDiscordID(name)to get the discord id inside the MSE lock_on_loadadded to servers.yaml to lock a server for a specific time until the mission is set up.- Competitive:
/trueskill regenerateworks for single users now - ModManager: can upload mods now
- WIP: New auto_affinity feature, which can automatically set the affinity for all used executables, including the bot itself, DCS, SRS, SkyEye, etc.
- Scheduler: can set time-based server passwords now
- Discord: send messages on member join / leave and role changes
- Discord: added react-roles with bot trap and everyone/here ping protection.
- Cloud: Added values to cloud registration to get a better overview on the hardware used
- Mission:
/airbase infoshows MGRS and MagVar now - Mission:
/player mute+/player unmuteadded (in-game commands: -mute / -unmute) - MissionStats: new auto-generated events S_EVENT_CONNECT, S_EVENT_DISCONNECT, S_EVENT_TAXIWAY_TAKEOFF, S_EVENT_GROUND_TAKEOFF
- Punishment: new penalty "taxiway_takeoff"
Changes
- dcs_port and webgui_port are mandatory now in nodes.yaml
⚠️ The owner of the bot (owner_id in bot.yaml) can now run any command unlessrestrict_owneris true.- GameMaster: new output for /message list
- GameMaster:
-ackwill send a message to the admin channel now - RestAPI: new enpoints
/airbase/airbase/warehouse,/airbases(contribution by @sch1lly) - RestAPI: weather info added to
/servers, new endpoint/server/attendance(contribution by @zip9285) - Cloud: http session reconnect improvements
- Punishment: better handling for reslot-events.
- Punishment: award opponent for kill if player crashes or ejects when being attacked
- Punishment: punish disconnects as reslots if people were shot at, disconnected and reconnected shortly after
- Punishment: added auto-generated kill event and S_EVENT_KILL for reslot and crash kills
- Mission: optimised connection handling of players
- Mission:
/infonow displays the ban modal - Mission:
/airbase warehouse=>/warehouse ...commands ⚠️ Mission: player names less than 3 characters will be declined- GameMaster: Disable in-game 'coalition' command, if coalitions is disabled
- MOTD: new filter element
coalitionfor nudge messages - SRS: replace AutoConnectGameGUI.lua if an update has been posted by Ciribob
- Admin: DCS update clears the _downloads directory first to prevent the popup
- Core: New flag Player.connected
- Core: pymgrs fallback removed
- Cluster: Don't run the heartbeat-loop on non clusters
- Cluster: Reworked RPC node-to-node communication
- Cluster: better split brain protection
- Cluster: optimized heartbeat
- Some code cleanups (especially transactions)
Bugfixes
/dcs updatewrong RPC call on remote nodes (hotfixed)- Fix serialization issue with
/docon multinode - Remote calls on extensions did not serialize all return values
- Issue with re-registering of stale nodes (hotfixed)
- Don't disable linkme on already linked accounts (hotfixed)
- CreditSystem: error on achievements if no campaign was running
/historydid not get all events- SkyEye did not rollback potential API keys if they are no longer to be used in instance configs
- Mission upload did not value the "Overwrite" flag
- Wrong default value for tacviewDataCaptureMode fixed
- Autocompletion for servers clashed with managed_by on non-admin commands
- Cloud: removed unnecessary DGSA-unbans
/helpdid not work with nested groups- Race condition with parallel sync and async database updates fixed
- Mission: players_hist did store too many updates
- Greenieboard:
/traps adddid not work anymore due to FK constraint - Greenieboard: default grades were not used
- MissionStats: missing BASE category
- SRS: online display mismatch if RadioInfo structure was not filled
- Removed proxy from IP lookup
DCSServerBot Release 3.0.4.20
Small update due to a library issue with Python 3.14.
DCSServerBot Release 3.0.4.19
I wish you all a Merry Christmas!
Enhancements:
- Scheduler: new feature "clear_maintenance" to clear any maintenance flag on startup.
- Punishment: informative events can be sent to a different channel now (or disabled)
Changes
- Python 3.10 is deprecated now.
- Plugin DBExporter is deprecated now.
- RealWeather: added new scale-factor to the schema
- Voting:
/vote createwill immediately fire, if the server is empty. - Tacview: ignore unknown parameters in the schema validation.
- Permission check for channels improved.
- Better error messages on report errors.
- Cloud: Improved DGSA ban handling to prevent Discord rate limits.
- SRS: Do not overwrite the lotatc_export_port if set in the SRS.cfg already.
- Ban expiration message changed to show relative and absolute times now (DCS restart required!)
Bugfixes
/airbase capture: coalition now mandatory (hotfixed)/airbase xxx: some airbases don't have an ICAO (hotfixed)/traps board: overlapping names fixed- Core: Messages duplication on falsely detected split messages (hotfixed)
- Core: Resent messages can trigger exceptions.
- Coalitions: Typo in coalition detection
- Coalitions:
/missionstatsdid not check coalition membership - Coalition:
/airbase infodid not check coalition membership - Channel ID -1 should not be checked.
- MissionStats: wrong calculation of achievements fixed.
- MissionStats: option to disable the achievements by not providing a SQL
- Competitive:
/trueskill historyset a global grid on all graphs. - Greenieboard: initialization script was not amended to the new init_ids.
- Non-scheduler-managed servers were not auto-started again after a DCS update.
A restart of DCS would be recommended after applying this patch.
DCSServerBot Release 3.0.4.18
Unfortunately there were some issues with the new /airbase commands on maps with a ton of airports like GCW.
I have fixed that now, which needs a restart of your DCS servers to work.
Changes:
- Core: Allow split of UDP-packages to support large messages (> 65507 bytes)
- Core: Socket buffer tuning
- Mission: Warehouse data is uploaded in parallel now.
Bugfixes
- Download of FARPs and CVNs did not work.
- Wrong filename on warehouse uploads.
- MissionStats: title missing
/airbase ...commands did not work in public channels, if only one server was present/vote ...commands did not work in public channels, if only one server was present/airbase infoephemeral didn't work
DCSServerBot Release 3.0.4.17
Enhancements
- 💯 Mission: new commands
/airbase info,/airbase atis,/airbase warehouseand/airbase capture - 💯 Mission: option to download and upload warehouse inventories via Excel
- server.yaml: new parameter
show_atis. If true an ATIS display will be sent to people that jump in slots. - Scheduler: countdown added
- Voting: new discord commands added
/vote create,/vote listand/vote cancel
Changes
⚠️ Renamed/mission atisto/airbase atis/airbase atiscan now work with carriers and FARPs also- Removed Side.SPECTATOR in favor of Side.NEUTRAL
- Profiler: disables max_hung_minutes now when enabled
- Punishment: updated all messages to ASCII layout
- BackupService: can backup subdirectories only now.
⚠️ Scheduler: warn/text renamed to warn/message (auto-migration)
Bugfixes
/mission modifydid accidentally load the original mission (without modifications)- Error in
/server configif stop question was sent. - Scheduler: index error in mission rotate
- Maintenance flag was not read correctly on startup.
- Mission: Key errors in ban messages
- Potential race condition during cluster table initialization.
DCSServerBot Release 3.0.4.16
Had to push a small fix as some people are not able to ping google DNS for the internet check.
Whoever needs an internet check on startup, please use the new -p switch to run.cmd:
run.cmd -p
Changes
- Make internet connection optional with -p switch to run.cmd
DCSServerBot Release 3.0.4.15
Changes
/server passwordcan now change passwords on a running server (next restart will apply)- The bot checks if there is a valid internet connection first on startup.
- Refactored mission loading
- Refactored mission id initialization
- Commands: can be ephemeral now
Bugfixes
- /node offline did not work anymore for multiple nodes (hotfixed)
- ModManager: key violation on root folder mods
- Scheduler:
/timeleftand server status embed did not show the correct time for the new "times" setting - Filtering of kill events if punishment is enabled did not work
- Scheduler: load later did not work properly anymore
/node add_instancerace condition with new foreign keys
DCSServerBot Release 3.0.4.14
Enhancements
- 🆕 Scheduler: can now handle presets on startup and action
- 🆕 Scheduler: can now work with cron strings for very flexible action times
- 🆕 New (auto-)restore feature to restore a formerly backed-up database, bot configuration or server instance.
- 🆕 New plugin "Profiler" adds a LUA profiler (WIP!)
- [internal] Ports have a tag if they are UDP or TCP (or both) now
/doccommand shows tcp/udp notation in server documentation/docnew node sheet added to server documentation- 💯
/doccan generate firewall rules now - Competitive: TrueSkill is historized now.
- Competitive:
/trueskill historyadded - Competitive:
/trueskill regenerateadded - 💯 CreditSystem: Players can have badges now (WIP)
Changes
- 💯 Python 3.14 works now. Really..
- We can work with the latest PIP again also.
⚠️ Scheduler: "local_times" and "utc_times" migrated to "times" (auto-migration)- ❗ Do no longer send teamkill messages to the admin-channel if the punishment plugin is active.
- Statistics: New periods 'quarter' and 'halfyear'
- Players embed is sorted by player name now
- "usage" added to mv_statistics
- several performance improvements on statistics queries (e.g. REST API)
- Added more IP lookup services for reliability
- Cron Service supports timezones now
- Cron Service: reboot and halt can reset maintenance flags now
- MizEdit: can work with timezones now
- Better display on
/broadcast - Scheduler:
/server startupdoes 3 tries now on crashed servers. /nemesisand/antagonistcan have periods now.- SRS: added instructor mode
- Profanity filter for nicknames has a whitelist now.
- Massive DB change, all major tables have foreign keys now. Prune / cleanup scripts reduced.
- Some code cleanups
Bugfixes
- Mission upload did not work on mission directories with more than 25 subdirectories (hotfixed)
/node delete_instancedid not work if ModManager was not in use (hotfixed)- Rare hangup if a DCS server starts non-responsive
- LotAtc: port check for json server port showed wrong message
- Punishment: reslot timer was not reset properly on landing
- Competitive: Non-global matches were not finished properly.
- Punishment: SQL error when no flighttimes were logged yet
- SRS: LotAtc Export Port was checked, even if LotAtc was not active
/server restartdid not proper check for timeouts- Monitoring: warning was still sent even if alarm pct was reached.
/server starttimeout missing (hotfixed)- Mission replacements of the last mission in the list did set the listStartIndex wrong.
On the first run (only), DCSSB will do some database maintenance. This includes the heavy tables (statistics, missionstats) and it can run quite a while, if you have a large database. I have seen 20 minutes already on a huge server. It can run pretty fast also, so do not worry. You will not get around it anyway. But please plan your bot upgrade to a time, when that would not be an issue for you.