Skip to content

Releases: Special-K-s-Flightsim-Bots/DCSServerBot

DCSServerBot Release 3.0.4.23

16 Apr 19:58

Choose a tag to compare

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.

⚠️ If anybody of you had configured the 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

11 Apr 17:07

Choose a tag to compare

Enhancements

  • 🆕 New extension "HoundTTS"
  • 🆕 New extension "Persistence" to persist mission date / time
  • Cluster: new command /node master to query and change the master
  • SRS: /srs tts added
  • SRS: dcsbot.send_tts(...) added to MSE
  • SRS: ATC enforcement added with optional punishment
  • /server config can 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 disable improved, /extension list, /extension update, /extension repair and /extension configure added
  • ⚠️ 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 add always 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 download can 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 add issue 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

12 Feb 14:38

Choose a tag to compare

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_load added to servers.yaml to lock a server for a specific time until the mission is set up.
  • Competitive: /trueskill regenerate works 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 info shows MGRS and MagVar now
  • Mission: /player mute + /player unmute added (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 unless restrict_owner is true.
  • GameMaster: new output for /message list
  • GameMaster: -ack will 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: /info now 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 coalition for 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 update wrong RPC call on remote nodes (hotfixed)
  • Fix serialization issue with /doc on 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
  • /history did 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
  • /help did 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 add did 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

25 Dec 22:02

Choose a tag to compare

Small update due to a library issue with Python 3.14.

DCSServerBot Release 3.0.4.19

24 Dec 12:32

Choose a tag to compare

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 create will 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: /missionstats did not check coalition membership
  • Coalition: /airbase info did 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 history set 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

16 Dec 14:56

Choose a tag to compare

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 info ephemeral didn't work

DCSServerBot Release 3.0.4.17

15 Dec 10:42

Choose a tag to compare

Enhancements

  • 💯 Mission: new commands /airbase info, /airbase atis, /airbase warehouse and /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 list and /vote cancel

Changes

  • ⚠️ Renamed /mission atis to /airbase atis
  • /airbase atis can 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 modify did accidentally load the original mission (without modifications)
  • Error in /server config if 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

05 Dec 16:03

Choose a tag to compare

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

05 Dec 15:43

Choose a tag to compare

Changes

  • /server password can 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: /timeleft and 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_instance race condition with new foreign keys

DCSServerBot Release 3.0.4.14

02 Dec 15:55

Choose a tag to compare

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
  • /doc command shows tcp/udp notation in server documentation
  • /doc new node sheet added to server documentation
  • 💯 /doc can generate firewall rules now
  • Competitive: TrueSkill is historized now.
  • Competitive: /trueskill history added
  • Competitive: /trueskill regenerate added
  • 💯 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 startup does 3 tries now on crashed servers.
  • /nemesis and /antagonist can 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_instance did 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 restart did not proper check for timeouts
  • Monitoring: warning was still sent even if alarm pct was reached.
  • /server start timeout missing (hotfixed)
  • Mission replacements of the last mission in the list did set the listStartIndex wrong.

⚠️ For users that update to this version:
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.