Jump to content

Introduction to Discord to DCS Server Command & Control (DDC2)


Recommended Posts

Hi everyone,

 

I have been working for the last few months on an interactive semi-automated method of managing servers through Discord. I have just done an initial release of the code on github and released an introduction video. I hope to be producing some instructional videos on how to install the system in the coming weeks as well as some documentation on Github.

 

 

DDC2 GitHub Download

 

Change Log

 

Release v2.0j (May the 4th Be With You)

System Requirements

Added Powershell 7.x as a pre-requisite for DDC2. (pwsh.exe)

Node-Red Flow

Added Version info to Node-Red Display
Fixed Start / Restart not showing Uptime information and Priority data
Fixed Double message on Server Start / Restart. A Status response will now follow the acknowledgement of the command being recieved
Powershell (ddc2.ps1)

v2.0j Added DDC2-AutoStart
v2.0j Added Add-Position
v2.0j Added Set-Position
v2.0j Updated Set-Window
v2.0j Updated UPDATE-MOOSE
v2.0i Changed PwdRandomizer to distinguish between SRS and DCS so PwdRandomizer could be called directly from application specific Start Command (start-dcs, start-srs)
v2.0i Added Start-Server
v2.0i Added Set-Priority
v2.0i Added Wait-For-Response
v2.0f Fixed Stop-SRS from closing all instances of SRS
v2.0f Re-purposed Start-DCS
v2.0f Added Start-SRS

 

Powershell (ddc2_config.ps1)

v2.0j Added $DesktopLocation
v2.0i Added $SERVER_PRIORITY
v2.0i Added $DCS_SERVERSTART
v2.0e Added $DDC2_MASTER, $AUTOSTART_DCS_WAIT, $srsCLIENTSFile, $srsCONFIGFile

 

 

Release v2.0d (Restart Command Hotfix)

Spoiler

Hotfix for Restart Command not restarting DCS correctly.

 

 

Release v2.0c

Spoiler

 

System Requirements

Added Powershell 7.x as a pre-requisite for DDC2. (pwsh.exe)
DDC2 Commands

- Removed Report Command (split into new commands to remove the 2000 character limit issue for Discord messages)
- Added !help Command (displays syntax and examples for each command, this bypasses the server ID element so it is recommended to only have 1 server in your fleet of servers acting as your help server or you will get multiple responses to !help command requests)
- Added Radio Discord Message Text To Speech (Requires yet to be released SRS External-Audio executable and DLL's, can be sent on request)
- Added granularity to the stop command (you can now stop DCS, SRS independantly as well as update processes, default operation of this command has been changed from stopping DCS, SRS and Update processes to just stopping DCS and SRS [Game] processes)
- Added !version command (Displays versions of DCS related applications as well as DDC2 version)
- Changed !info command to only display connection information (also includes DCS, LotATC, SRS & TACView Versions)
- Added !support command to show methods of getting server support including contact information if server admins wish to add it in.
- Added !ports command, displays all ports configured in configuration files for quick consistency checks
- Added !config command, displays configuration options for the server and supporting applications
Node-Red Flow

- Complete re-write Node-Red DDC2 flow
- All configuration removed from flow except for the powershell execution node which needs to be pointed to the DDC2 scripts folder
- Added Template responses using mustache for easier modification by users for all commands
- Re-factored node message data flows
- Introduction of flow based scripted functions
- Added the ability to refresh the configuration of the server from the configuration files without the need to disrupt the game server
Powershell

- DDC2 now requires PowerShell 7.x to be installed and used to execute ddc2.ps1
- Added ddc2_config.ps1 for all DDC2 configuration information for your server / server instance
- Added descriptions for each configuration item in ddc2_config.ps1
- Added Multi-Instance Support
- Added setup-ports function for rapid server port configuration for DCS, SRS, TACView, LotATC etc. Uses a specific schema,
- Added ability to randomize server passwords on each dcs server restart (Check #DDC2 SERVER PASSWORD RANDOMIZER in ddc2_config.ps1
- Added granularity on which passwords to show depending on the channel the data is requested from(Check #DDC2 CONFIGURATION SECTION in ddc2_config.ps1
- Added seperate options for which updates to download for each appliation. (Beta or Stable) Check #DDC2 CONFIGURATION SECTION in - - ddc2_config.ps1
- Added SRS Radio default configuration in the event that some options are not provided during !radio command. Check #SRS TEXT TO SPEECH - CONFIGURATION SECTION in ddc2_config.ps1
- Added Discord Group and Channel ID configuration Check #DISCORD CHANNEL.ID CONFIGURATION SECTION in ddc2_config.ps1
- Added PasswordGenerator Function to ddc2.ps1
- Added PwdRandomizer Function to ddc2.ps1
- Added Set-Pwd Function to ddc2.ps1
- Added Set-Port Function to ddc2.ps1
- Added StringOutPorts Function to ddc2.ps1
- Added Do-Update Function to ddc2.ps1
- Added Stop Function to ddc2.ps1
- Updated Stop-DCS Function to ddc2.ps1
- Updated Check-DDC2 Function to ddc2.ps1 (Outputs to console all config in ddc2_config.ps1)
- Added Check-Ports Function to ddc2.ps1 (Outputs to console all ports in all config files that ddc2_config.ps1 is looking at)
- Added Stop-SRS Function to ddc2.ps1
- Added Stop-Update Function to ddc2.ps1
- Added Radio Function to ddc2.ps1
- Added Powershell 7.x check to ddc2.ps1 (will error out of you are using the incorrect version into the ddc2.log file)

 

 

 

Release v1.172f

Spoiler

 

- Added VNC Remote Connection Support (note your VNC Server must use TCP connections for !access to detect connection correctly)

- Added VNC Server EXE Path check for Check-DDC2-PS function

- Modified Node-Red workflow to now support VNC Server connections

##Note##

A number of Server admins have requested the link between AutoStart and delay 1s has been removed and can be added when you implement the new version.

 

 

 

Release v1.163d

Spoiler

 

- DDC2.json

- Updated Version #

 

- DDC2.ps1

- Changed on line 38 to say UserNameGoesHere as to avoid script error on initial run

 

 

 

Release v1.163b

Spoiler

 

- Modified DDC2.ps1

-- Splitting out Report to multiple Functions

-- Added New-Firewall-RDPPort Function to assist in installation when changing RDP Ports from Default

-- Added Check-DDC2-PS Function to check variables that are set in DDC2.ps1 File

-- Fixed Bug where SRS Server Install does not generate an entry.lua, Version data collection now done via SRS Executable instead.

 

 

 

Release v1.163a

Spoiler

- Update DDC2.ps1

 

 

Release v1.162

Spoiler

 

- Update DDC2.ps1

- Added Check-DDC2-PS Function to check variables that are set in DDC2.ps1 File

 

 

 

Release v1.154

Spoiler

- Update DDC2.ps1

 

 

Release v1.01a

Spoiler

 

- Update DDC2.json

- Fixed Tacview showing incorrect Port on Report and info requests

 

 

 

Release v1.0

Spoiler

 

- Initial Release

- Create DDC2.ps1

 

 


Edited by OzDeaDMeaT
New Version Released

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

Hey! Really interesting, I follow the github's project and will test it later. It can be a great addition to come with my discord dcs notification bot :)

If you want to work on some localization I can done it in French.

"Les pilotes du Fail" server administrator

Link to comment
Share on other sites

Hey! Really interesting, I follow the github's project and will test it later. It can be a great addition to come with my discord dcs notification bot :)

If you want to work on some localization I can done it in French.

 

Yeah, happy to work on some localisation stuff. I will need to work out how to do that in Node-Red but yeah, love the idea.

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

Hi Oz this looks absolutely brilliant!

 

Will it work if our root server setup is multiple instances of DCS each running on a distinct windows user?

 

Is there any conflict with the webgui on dcs website? can they be used in parallel?

 

Do you have the ability to add the option to remotely kill and restart the dcs.exe for each instance running on a specific user?

 

Will we be able to make changes to config files? You mention LotATC and TacView ports and other variables... that would definitely be very helpful for servers that run multiple instances.

 

On our dedicated root server we are running on OS Windows Server 2019 and we can only have 2 users connected in parallel, if we want more we need to buy more licenses from microsoft. Does this require the windows user of the server to be in logged in or does it work while user is in disconnected state?

 

I'd love to add this to the DCS Israel Servers! Will drop into your discord and continue there.

 

Cheers!

IAF.ViFF

 

http://www.preflight.us

Israel's Combat Flight Sim Community Website

Link to comment
Share on other sites

Hi Oz this looks absolutely brilliant!

 

Will it work if our root server setup is multiple instances of DCS each running on a distinct windows user?

 

Is there any conflict with the webgui on dcs website? can they be used in parallel?

 

Do you have the ability to add the option to remotely kill and restart the dcs.exe for each instance running on a specific user?

 

Will we be able to make changes to config files? You mention LotATC and TacView ports and other variables... that would definitely be very helpful for servers that run multiple instances.

 

On our dedicated root server we are running on OS Windows Server 2019 and we can only have 2 users connected in parallel, if we want more we need to buy more licenses from microsoft. Does this require the windows user of the server to be in logged in or does it work while user is in disconnected state?

 

I'd love to add this to the DCS Israel Servers! Will drop into your discord and continue there.

 

Cheers!

 

Hi ViFF,

 

Will it work if our root server setup is multiple instances of DCS each running on a distinct windows user?

The update capability requires console access (until DCS introduces a silent installer). That would be the only limiting factor for with regards running this against multiple users, but with this system you wouldn't need to have multiple users anymore. DDC2 would need root access and the ability to control the processes and you would need a seperate powershell script per instance pointing to the individual config and exe locations. A bit of code would need to change in the powershell script to pick the specific processes to stop for that instance of DCS. You can have multiple instances of DDC2 running at the same time.(different flows).

 

Is there any conflict with the webgui on dcs website? can they be used in parallel?

No conflict, works perfectly well.

 

Do you have the ability to add the option to remotely kill and restart the dcs.exe for each instance running on a specific user?

Specific user not sure, killing other user processes is usually ok if you are the admin and they are a standard user. I am not sure with regards admin to admin process manipulation. The system could technically work against a system running multiple instances of DCS but it doesn't currently have that capability. (multiple instances shouldn't be a problem if i can distinguish between them, are the different installation paths?)

 

Great questions.

 

My turn, how do most people run multiple instances of DCS on a server? Single EXE with different process window names? Separate install locations?

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

That's nice !

I watched your video and hopped to your GitHub, but couldn't understand how to install ; maybe it's simply not ready yet ?

In the meantime, I'm training myself with node-red, which is a very powerful and well-designed tool.

Zip - VEAF :pilotfly:

 

If you want to learn, talk and fly with french-speaking friends, the Virtual European Air Force is here for you ! Meet us on our Discord and our forum

If you're a mission creator, you may want to check the VEAF Mission Creation Tools (and its GitHub repository) a set of open-source scripts and tools that make creating a dynamic mission a breeze !

Link to comment
Share on other sites

  • 2 weeks later...
That's nice !

I watched your video and hopped to your GitHub, but couldn't understand how to install ; maybe it's simply not ready yet ?

In the meantime, I'm training myself with node-red, which is a very powerful and well-designed tool.

 

Yep, next set of videos are due as soon as my replacement UPS comes in. The majority of my server infrastructure is offline until it arrives.

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

  • 3 weeks later...
I was able to get this working today, thanks OzDeaDMeaT !

 

Fantastic news Fizzxit. Was there anything I missed or could have described better in the Instructional Video Series?

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

  • 4 weeks later...

Release v1.172f

 

- Added VNC Remote Connection Support (note your VNC Server must use TCP connections for !access to detect connection correctly)

- Added VNC Server EXE Path check for Check-DDC2-PS function

- Modified Node-Red workflow to now support VNC Server connections

##Note##

A number of Server admins have requested the link between AutoStart and delay 1s has been removed and can be added when you implement the new version.

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...

Hi mate,

 

Sorry for the late reply. Instances arent currently supported yet but they are on my list of stuff to work out. It is a ways down the list though.

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

  • 2 months later...

DDC2 2.0 is currently in the works and will hopefully be released in the next week or so baring any major bugs. Notable improvements are:

 

- Support for Multi-Instances

- Discord message Text to SRS Radio Speech

- Many more commands

- Complete Node-Red Flow re-write

- Config now stored outside of the Node-Red Flow for easy updating

 

System Requirements:

 

- DCS Server System Requirements 

- PowerShell 7.x +

 

Hope to have a video or two showing the new features and the updated installation information.

 

OzDM OuT

 

 

 

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

  • OzDeaDMeaT changed the title to Introduction to Discord to DCS Server Command & Control (DDC2)
  • 2 weeks later...

Thanks Oz
I've been using this since Version 1 and what you have done with V2 is just awesome. Well done!
I really like the multi instance support and the way it minimises the DCS windows and reppositions them and SRS in ordered rows on the server desktop, nice touch.
The ability to mange multiple instances via Discord is a breakthrough, and allows a team to manage the server without coming in via VNC all the time. 
Also loving the ability to send text to voice on any channel in SRS one a given instance of the server, great for getting people to land when you want to restart a server for any reason without having to join the server.

Thanks for your hard work, much appreciated.

 

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 1 year later...

Wait till you guys see version 3.

The data shown is live / realtime. Playing with update frequency at the moment as the Discord API can get bogged down with too many hits.

null

image.png


Edited by OzDeaDMeaT

CPU: i9-12900K @ 4.9Ghz

M/B: MSI MEG z690 Ace

RAM: 128GB

Video Card: MSI RTX 4090 Suprim Liquid X

VR: Varjo Aero

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...