/Sunshine-AIO

An all-in-one tool to setup Sunshine with additional tools.

Primary LanguagePythonMIT LicenseMIT

Sunshine-AIO

Sunshine-AIO

Visitors Stars Issues

An all-in-one tool to setup Sunshine with all needed tools (Windows 10/11).
It includes: Sunshine, Virtual Display Driver, Sunshine Virtual Monitor, Playnite and Playnite Watcher.

Warning

🚧This Branch is under development. Bugs can appear.🚧

What is the purpose of installing all of these tools?

There are several reasons:

  • A dedicated display for your game stream will be created by the Virtual Display Driver.

  • Sunshine Virtual Monitor will deactivate all your physical monitors and enable the Virtual Display to stream your games.

Note

It will automatically adjust the resolution, quality, HDR option, and frame rate of the Virtual Display based on Moonlight client settings.

  • Playnite will allow you to gather all your games from any platform in one launcher for your convenience.

  • Playnite Watcher stop the stream when the game is closed. (Sunshine does not support it natively)

Note

It will import all your games into Sunshine effortlessly.

Table of Contents

Sunshine-AIO

Warning

The file might be flagged as Trojan/Malware, but it's a false positive. (It is due to Nuitka build)

To prevent the file being deleted by your anti-virus, make sure to temporarily disable your anti-virus, or add an exception to the folder you want to download the file.

Note

Playnite and Playnite Watcher are optional, but they are installed by default within the everything command.

Add Custom Resolutions\Frame Rates

  • You will need to add custom resolutions if your client resolutions are not listed here.

  • After you have executed the script once and installed everything:

Option File

  • Open the "C:\IddSampleDriver\option.txt" file and add your custom Resolutions/Frame Rates.

Tip

Open the option.txt file via Sunshine-AIO from 7. Extra5. Edit Custom Resolutions/Frame Rates (option.txt)

Important

Make sure to follow the syntax of the file:

option.txt:

 RES_WIDTH, RES_HEIGHT, FRAME_RATE
  • Add a line for each frame rate wanted for one resolution.

  • For example:

    option.txt:

     (...)
     3120, 1440, 60
     3120, 1440, 90
     3120, 1440, 120
    

Warning

Make sure the Virtual Display Driver is disabled.

Sunshine Config

  • Open Sunshine WebUI and navigate to ConfigurationAudio/Video Tab.

Tip

Open Sunshine Config via Sunshine-AIO from 7. Extra6. Open Sunshine Settings

  • Scroll down and add your custom resolutions and custom frame rates here.
  • Make sure that every resolutions and frame rates are well indicated in the "C:\IddSampleDriver\option.txt" file too.

Build the Project

  • If you want to contribute to the project and add some features or even fix some issues by yourself, or anything else, you can fork this repository (See Contributing).
  • You will need some pre-requisites:

Python3 Installation

Important

Add python to the Path when asked during the installation.

Git Installation

Note

Dynamic pull of the repository and all the files on your local computer would be advantageous, as you can receive updates when they are available using the git pull command.

Troubleshooting

Please keep in mind this AIO tool is still in development and you may encounter bugs or issues when using it.

I may have also forgotten to implement some functions due to the fact that the script is at its very first version. I didn’t test all the options that the script provides, because I wanted to provide a first version quickly so as to have your feedback and allow to progress faster than on my own. It works for me, but I suspect that it may not work at first for some of you.

Opening an issue at https://github.com/LeGeRyChEeSe/Sunshine-AIO/issues/new/choose is encouraged to receive initial help and improve the script.

Feel free to ask me any questions, so that I can one day provide the final version of the script to everyone.

Don't forget to configure your Moonlight client to connect to Sunshine and enjoy optimized streaming :)

Contributing

Any contributions you make are greatly appreciated.

  1. Fork the Project.
  2. Create your Feature Branch. (git checkout -b feature/NewFeature)
  3. Commit your Changes. (git commit -m 'Add some NewFeature')
  4. Push to the Branch. (git push origin feature/NewFeature)
  5. Open a Pull Request.

Thanks to every contributors who have contributed in this project.

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements

Shoutout to LizardByte for the Sunshine repo: https://github.com/LizardByte/Sunshine

Shoutout to itsmikethetech for the Virtual Display Driver repo: https://github.com/itsmikethetech/Virtual-Display-Driver

Thanks to Cynary for the Sunshine Virtual Monitor scripts: https://github.com/Cynary/sunshine-virtual-monitor

Shoutout to JosefNemec for Playnite: https://github.com/JosefNemec/Playnite

Shoutout to Nonary for the PlayNiteWatcher script: https://github.com/Nonary/PlayNiteWatcher

Star History

Star History Chart


Author/Maintainer: Garoh | Discord: garohrl