Giter Club home page Giter Club logo

powershellgsm's Introduction

PowerShellGSM Banner

A Comprehensive PowerShell Tool for Simple Automated Game Server Management.

GitHub release (latest by date including pre-release) GitHub issues

Features

  1. Hassle-free "setup and forget" experience
  2. Automated installation of game servers
  3. Streamlined single-file configuration
  4. Automatic server updates upon new version releases
  5. Monitoring for detecting server crashes and available updates
  6. Built-in thread isolation and priority management
  7. Automatic start after a system reboot
  8. Daily server restarts with in-game broadcasts for supported games
  9. Automated, lightweight backups with archiving for 7 days and 4 weeks
  10. Full configurability, allowing customization according to your preferences
  11. Open-Source with a great community supporting the tool.

Supported Games

  • 7 Days to Die
  • Ark: Survival Ascended
  • Astroneer
  • Conan Exiles
  • Enshrouded
  • Icarus
  • Insurgency Sandstorm
  • Killing Floor 2
  • Left 4 Dead 2
  • Mordhau
  • Minecraft (Paperclip)
  • Palworld
  • PixArk
  • Project Zomboid
  • Rust
  • Satisfactory
  • Squad
  • Starbound
  • Stationeers
  • Terraria
  • The Forest
  • Valheim
  • Valheim Plus
  • V Rising

Advantages

  • Faster than the other available tools
  • Lighter and more targeted backups
  • Modular
  • Expandable
  • Customizable

Installation

Manual Installation (Recommended)

Before you begin, note that this tool is not intended to run on your primary gaming computer. Ideally, use a virtual machine on a dedicated server or a secondary computer. If you still want to use this tool on your main computer, you should consider disabling the monitoring features. Otherwise, the Task Scheduler will briefly open a cmd window for a tenth of a second every 5 minutes. You can disable this by turning off the monitoring features (AutoUpdates, AutoRestartOnCrash, AutoRestart) in the game server configuration file or by disabling the game server monitoring task created in the Windows Task Scheduler after the second launch of the server.

  1. Install Git and your preferred IDE, such as VSCode.

  2. Ensure that your File Explorer is set to display file extensions.

  3. Clone this repository using Git (F1 then Git:Clone in VSCode) or extract the zip file anywhere. (Preferably C:, but any directory will work unless the path is excessively long)

  4. Copy the desired server configuration file from the templates folder to the configs folder.

    Example: Copy icarus.psm1 from the templates folder to the configs folder.

  5. Edit the copied configuration file to customize your server settings.

  6. Copy and rename launchers/run.cmd to match your server configuration file.

    Example: Copy and rename run.cmd to icarus.cmd to start the icarus.psm1 Icarus server.

    The filename in the launchers folder must match the one in the configs folder.

  7. Launch your server by double-clicking on your icarus.cmd file from the launchers folder.

  8. The PowerShell window will open, install the server, and stop the server to allow you to edit the server configuration files.

  9. After editing your config files, run the icarus.cmd file from the launchers folder again.

  10. On the second launch, it will start the server and configure the scheduled task to keep the server running and updated.

  11. To disable a server, use the Windows Task Scheduler application to disable or delete the corresponding Scheduled Task.

  12. Forward the server ports in your router and configure the Windows firewall accordingly. You can also disable the Windows firewall entirely, but ensure that you still forward the ports in your router.

Automated Installation Script

By @BananaAcid

https://gist.github.com/BananaAcid/1dc9117571967b26ceabc972009137ae

Requirements

  • A Windows machine with at least PowerShell 5.1 installed (Windows 10 or Windows Server 2016 or newer)
  • Some basic PowerShell knowledge.
  • Some networking basics to configure port forwarding.
  • The Windows user running the script should have admin privileges but should not run it with admin privileges.

Frequent Game Server Requirements

Expanding the Code

You can create pull requests for changes to this project.

Please follow the current structure and formatting.

If you want to add support for more games, copy one of the configuration files and edit the values and launch parameters. You can then create a pull request to include your configuration here.

Disclaimer

I am in no way responsible for anything that this script will do; you are responsible for reading and understanding what this script will do before executing it.

This script will download and install third-party software like SteamCMD, ARRCON, mcrcon, Java, Microsoft XNA, Paperclip, Terraria, and any games you try to install.

powershellgsm's People

Contributors

aeneas1 avatar patrix87 avatar simonghpub avatar torath0071 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

powershellgsm's Issues

Restart loop - New Year Date

Server and script have been running flawlessly for months.
Today the server has been restarting every 10 minutes since its 4am restart.
each log file showing the script thinks the server is due for a restart.

NextRestart: 01/01/2024

I suspect the script is only using the day and month,
Since those two values are now less than current it believes it needs to restart.

Icarus Server Not Listening on Port 17777

Followed your instructions. Server is finally running after suffering through figuring out how to get rid of the Visual C++ error message. I am on a fresh Windows 11 install. The Icarus server is not visible in the "Dedicated Servers" list, and is not available by direct connect either.

  • netstat -an | Select-String 27015 shows the server machine is listening on the port.
  • netstat -an | Select-String 17777 doesn't return anything, showing the server is not listening on this port.
  • icarus.psm1 is set to both ports above.
  • I have opened ports 27015 and 17777 TCP and UDP on both routers (I have two separate networks).
  • Windows firewall has all ports opened for Icarus for UDP and TCP for private, public, and domain networks.
  • The server's console window is open and showing the server is running, but no confirmation the server is listening on what ports.
  • The server does not show in the "Dedicated Servers" list.
  • The server is not available through direct connect in Icarus.

Don't know what to do from here.

Icarus Server errors and shutdown constantly

I am unsure what's going on here but its only affecting my Icarus Server after weekly update 108 hotfix. Server will start, but will only stay up for a very short amount of time (about 3minutes) before the client checks the server and it just automatically crashes sending it into a boot loop (where the scheduler will go round in circles because it crashed) Haven't been able to cleanly host it since using this really handy program.

Ark survival ascended server: daily reboot problem

Automatic daily reboot does not work if the warning time is set to be greater than the task update time.

Timers = [System.Collections.ArrayList]@(1140, 600, 60)

With such a timer, the server sends only the first warning to the chat and then the next time the task is launched in the scheduler, it simply sets a new reboot time without completing the current task.

Verifying Dependencies...
Importing Server Configuration...
Locking Process.
Running Tasks for ark_survival_ascended ...
Getting Tasks Schedule...
Checking Alive State
Server is Alive
Updating Tasks Schedule...
Too soon for Update check
Server is due for Restart
Updating Tasks Schedule...
Verifying Server installation...
Verifying Server State...
Command Sent.
Server is responding to remote messages.
Server is running, warning users about upcomming restart.
Command Sent.
Waiting 1140 seconds before next warning...

This stops the execution of the script.

Edit this value :

LockTimeout = 10

It did not help. It looks like the reboot script simply stops working after 5 minutes, or when the task starts.
I set the reboot to 5:00.
At 5:00

Verifying Dependencies...
Importing Server Configuration...
Locking Process.
Running Tasks for ark_survival_ascended ...
Getting Tasks Schedule...
Too soon for Alive check
Too soon for Update check
Server is due for Restart
Updating Tasks Schedule...
Verifying Server installation...
Verifying Server State...
Command Sent.
Server is responding to remote messages.
Server is running, warning users about upcomming restart.
Command Sent.
Waiting 1140 seconds before next warning...

And then every 5 minutes for a 35 minute lock:

**********************
PS>TerminatingError(): "System error."
**********************

The daily reboot cycle never completed. So at some point the reboot script simply stops working, perhaps you need to initialize the launch of the run.cmd file, it reboots correctly with a 30-minute cooldown.

Auto-update with the same problem.

Both of my servers restart every 8 to 10 minutes

Both of my servers restart every 8 to 10 minutes, the config is set to 24 hours. Maybe the Windows schedule is wrong, it is executed every 5 minutes, or is this to check the Server status? Any ideas on how to fix this?

Error invoke-webrequest to get external IP

Hello,
i Get this error when i launch the script for satisfactory

Invoke-WebRequest : Le contenu de la réponse ne peut pas être analysé, car le moteur d’Internet Explorer n’est pas
disponible ou la configuration du premier lancement d’Internet Explorer n’est pas complète. Spécifiez le paramètre
UseBasicParsing et réessayez.
Au caractère D:\server\PowerShellGSM-2.6.6\functions\network\Set-IP.psm1:9 : 20

  • $ExternalIP = (Invoke-WebRequest ifconfig.me/ip).Content.Trim()
    
  •                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : NotImplemented: (:) [Invoke-WebRequest], NotSupportedException
    • FullyQualifiedErrorId : WebCmdletIEDomNotSupportedException,Microsoft.PowerShell.Commands.InvokeWebRequestComman
      d

Internet explorer is not initialized, (i've never launch internet explorer on this windows, and when we launch it now it launch Edge instead)

i've modified the cmd to use -UseBasicParsing it work well

#Get current external ip from ifconfig.me
$GetIP= Invoke-WebRequest ifconfig.me/ip -UseBasicParsing
$ExternalIP = $GetIP.Content.Trim()

Set-IP.txt

Errors on first run/setup.

When running the launcher palworld.cmd. Powershell will open and start as expected. Start installing and then error out on 'Importing Server Configuration...'

Downloading ARRCON.
ARRCON Installed.
Downloading SteamCMD.
SteamCMD Installed.
Downloading mcrcon.
Mcrcon Installed.
Importing Server Configuration...
MaxPlayers : The term 'MaxPlayers' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\PowerShellGSM\PowerShellGSM-main\configs\palworld.psm1:32 char:3

  • MaxPlayers = 32
  • + CategoryInfo          : ObjectNotFound: (MaxPlayers:String) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : CommandNotFoundException
    

MaxPlayers : The term 'MaxPlayers' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
2024-01-25_23-26-40-palworld.txt

Updating PaperMC

I might have missed something, but how do we update PaperMC to the latest version? It's currently on version 1.17.1. In the Paperclip config I've set the update automatically option to true. However, when running the server it's not looking for updates. I tried updating it manually but the server fails to start (works again once changes are reverted).

Project Zomboid: Reboot servermsg not working

Hi.
First of all, thanks for the awesome job creating this.

Project Zomboid requires \" enclosings for the text servermsg lines, so currently the servermsg are not arriving with server reboots.

I fixed the problem by adding the enclosings to the server config lines 162 & 165

#message that will be sent. % is a wildcard for the timer.
MessageMin = "`\`"The server will restart in % minutes !`\`""

#message that will be sent. % is a wildcard for the timer.
MessageSec = "`\`"The server will restart in % seconds !`\`""

Ark: Survival Ascended server not showing up on list

I'm not 100% sure what the issue is, if this is an issue with my VPS, an issue with SteamCMD or an issue with PowerShellGSM (i'd assume one of the first two)...

I had a server up and running perfectly fine until I hadn't been on for a while and logged in to my VPS to see that it had restarted at some point and the server was no longer running. I ran the launcher again and waited on it booting up (everything looked fine) but nothing showed up in the server list.

I have downloaded CurrPorts to see what ports are showing for ArkAsendedServer and I currently see 27020 and 8888 under TCP with a State "Listening" and I can see 7777 under UDP but there is no state".

I'm really know nothing about networking so any advice/help would be appreciated.

Note: I have contacted the company I bought my VPS off of and they have basically told me there's nothing they can do...

Support please

Hello, I have tried to do the install on my windows server PC but I cannot get it to work. Could I get some help?

I have done Step 1 and 2 and 3 as good as I could but then I don't really understand to do with 4 and forward.

Icarus -> how to join the server once its running?

log

[2022.12.30-18.45.06:541][ 0]LogWindows: DebugString: PrimaryIsNotTheChoosenAdapter PrimaryIsNotTheChoosenAdapter PrimaryIsNotTheChoosenAdapter PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsInvalid PrimaryIsNotTheChoosenAdapter GetVideoDriverDetailsI[2022.12.30-18.45.06:553][ 0]LogOnline: OSS: Creating online subsystem instance for: Icarus
[2022.12.30-18.45.06:557][ 0]IcarusOSSLog: Error: Login() failed: Empty Id
[2022.12.30-18.45.06:558][ 0]LogInit: Display: Game Engine Initialized.
[2022.12.30-18.45.08:766][ 0]IcarusUtilitiesLog: Warning: D_TalentTrees was unexpectedly requested for load, was expected to load during the 'PostContentServer' phase
[2022.12.30-18.45.13:009][ 0]LogDLSS: FDLSSModule::StartupModule Enter
[2022.12.30-18.45.13:009][ 0]LogDLSS: PluginBaseDir ../../../Engine/Plugins/Runtime/Nvidia/DLSS
[2022.12.30-18.45.13:012][ 0]LogDLSS: NGXBinariesDir ../../../Engine/Plugins/Runtime/Nvidia/DLSS/Binaries/ThirdParty/Win64/
[2022.12.30-18.45.13:018][ 0]LogDLSS: GDynamicRHIName Unknown Null
[2022.12.30-18.45.13:019][ 0]LogDLSS: NVIDIA NGX DLSS requires an NVIDIA RTX series graphics card
[2022.12.30-18.45.13:026][ 0]LogDLSS: NVIDIA NGX DLSS supported 0
[2022.12.30-18.45.13:028][ 0]LogDLSS: FDLSSModule::StartupModule Leave
[2022.12.30-18.45.13:035][ 0]LogDLSSNGXRHI: FNGXRHIModule::StartupModule Enter
[2022.12.30-18.45.13:041][ 0]LogDLSSNGXRHI: FNGXRHIModule::StartupModule Leave
[2022.12.30-18.45.13:043][ 0]LogInit: Display: Starting Game.
[2022.12.30-18.45.13:048][ 0]LogNet: Browse: /Game/Maps/DedicatedServerEntry?Name=Player
[2022.12.30-18.45.13:053][ 0]LogIcarusGameInstance: HandlePreLoadMap - MapName: /Game/Maps/DedicatedServerEntry
[2022.12.30-18.45.13:061][ 0]LogLoad: LoadMap: /Game/Maps/DedicatedServerEntry?Name=Player
[2022.12.30-18.45.13:067][ 0]LogWorld: BeginTearingDown for /Temp/Untitled_1
[2022.12.30-18.45.13:075][ 0]LogWorld: UWorld::CleanupWorld for Untitled, bSessionEnded=true, bCleanupResources=true
[2022.12.30-18.45.13:126][ 0]LogUObjectHash: Compacting FUObjectHashTables data took 4.39ms
[2022.12.30-18.45.13:155][ 0]LogAIModule: Creating AISystem for world DedicatedServerEntry
[2022.12.30-18.45.13:157][ 0]LogLoad: Game class is 'BP_DedicatedServerEntryGameMode_C'
[2022.12.30-18.45.13:174][ 0]LogNetCore: DDoS detection status: detection enabled: 0 analytics enabled: 0
[2022.12.30-18.45.13:176][ 0]LogNet: Display: SteamNetDriver_2147482214 bound to port 17777
[2022.12.30-18.45.13:181][ 0]PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
[2022.12.30-18.45.13:187][ 0]LogNet: GameNetDriver SteamNetDriver_2147482214 IpNetDriver listening on port 17777
[2022.12.30-18.45.13:195][ 0]LogWorld: Bringing World /Game/Maps/DedicatedServerEntry.DedicatedServerEntry up for play (max tick rate 30) at 2022.12.30-13.45.13
[2022.12.30-18.45.13:202][ 0]LogWorld: Bringing up level for play took: 0.006796
[2022.12.30-18.45.13:208][ 0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart
[2022.12.30-18.45.13:216][ 0]LogLocalSessionSubsystem: Display: ResetActiveProspect - ProspectID: NULL | ProspectDTKey: NULL
[2022.12.30-18.45.13:222][ 0]LogDedicatedServerEntry: ------------------------------------------------
[2022.12.30-18.45.13:223][ 0]LogDedicatedServerEntry: -- Dedicated server begin processing commands --
[2022.12.30-18.45.13:229][ 0]LogDedicatedServerEntry: ------------------------------------------------
[2022.12.30-18.45.13:230][ 0]LogGameState: Match State Changed from EnteringMap to WaitingToStart
[2022.12.30-18.45.13:238][ 0]LogIcarusGameInstance: HandlePostLoadMap - WorldMapName: DedicatedServerEntry
[2022.12.30-18.45.13:244][ 0]LogLoad: Took 0.182716 seconds to LoadMap(/Game/Maps/DedicatedServerEntry)
[2022.12.30-18.45.13:250][ 0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init()
[2022.12.30-18.45.13:256][ 0]LogLoad: (Engine Initialization) Total time: 10.16 seconds
[2022.12.30-18.45.13:257][ 0]LogIcarusGraphicsSettings: >> ResolutionScale is now 0 (0x0)
[2022.12.30-18.45.13:269][ 0]LogIcarusGraphicsSettings: Warning: >> r.FidelityFX.FSR.Enabled is now: 0
[2022.12.30-18.45.13:275][ 0]LogIcarusGraphicsSettings: Warning: >> FSR Mode is now: 0
[2022.12.30-18.45.13:282][ 0]LogIcarusGraphicsSettings: Warning: >> r.FidelityFX.FSR.RCAS.Sharpness is now: 0.950000 => 0.2
[2022.12.30-18.45.13:287][ 0]LogConsoleManager: Warning: Setting the console variable 'r.RayTracing' with 'SetByGameSetting' was ignored as it is lower priority than the previous 'SetByProjectSetting'. Value remains '1'
[2022.12.30-18.45.13:295][ 0]LogConsoleManager: Warning: Setting the console variable 'r.RTXGI.DDGI' with 'SetByGameSetting' was ignored as it is lower priority than the previous 'SetByProjectSetting'. Value remains 'true'
[2022.12.30-18.45.13:305][ 0]LogIcarusGraphicsSettings: Warning: >> AA Method is now: 0
[2022.12.30-18.45.13:310][ 0]LogIcarusGraphicsSettings: Warning: >> r.FidelityFX.FSR.Enabled is now: 0
[2022.12.30-18.45.13:317][ 0]LogIcarusGraphicsSettings: Warning: >> FSR Mode is now: 0
[2022.12.30-18.45.13:323][ 0]LogConsoleManager: Warning: Setting the console variable 'r.Shadow.CSM.MaxCascades' with 'SetByScalability' was ignored as it is lower priority than the previous 'SetByGameSetting'. Value remains '2'
[2022.12.30-18.45.13:330][ 0]LogConsoleManager: Warning: Setting the console variable 'r.ContactShadows' with 'SetByScalability' was ignored as it is lower priority than the previous 'SetByGameSetting'. Value remains '1'
[2022.12.30-18.45.13:336][ 0]LogConsoleManager: Warning: Setting the console variable 'r.Streaming.LimitPoolSizeToVRAM' with 'SetByScalability' was ignored as it is lower priority than the previous 'SetByGameSetting'. Value remains '1'
[2022.12.30-18.45.13:348][ 0]LogConsoleManager: Warning: Setting the console variable 'r.Streaming.PoolSize' with 'SetByScalability' was ignored as it is lower priority than the previous 'SetByGameSetting'. Value remains '4500'
[2022.12.30-18.45.13:404][ 1]IcarusOSSLog: Error: OnResUserTicket : No player found

Process is locked, exiting.

Hi there

Have a strange issue where the icarus server I setup was working great, but now the script won't run as the process is locked.

I can't figure out which process it's talking about though.

I've rebooted with no change.

I just copied my config to another folder and started from scratch with it downloading everything again with no change.

Any help would be greatly appreciated!

Start time: 20221222153854
Username: VM\VM
RunAs User: VM\VM
Configuration Name: 
Machine: VM (Microsoft Windows NT 10.0.19045.0)
Host Application: powershell.exe -noprofile -executionpolicy bypass -file .\main.ps1 -ServerCfg icarus
Process ID: 2772
PSVersion: 5.1.19041.2364
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.2364
BuildVersion: 10.0.19041.2364
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Transcript started, output file is .\logs\2022-12-22_15-38-54-icarus.txt
Setting Script Directory as Working Directory...
Working Directory : C:\PowerShellGSM
Finding server IPs...
Server local IP : xxxxxxxx
Server external IP : 2xxxxxxxx
Verifying Dependencies...
Importing Server Configuration...
Process is locked, exiting.
**********************
Command start time: 20221222153857
**********************
PS>TerminatingError(): "System error."
**********************
Windows PowerShell transcript end
End time: 20221222153857
**********************

Incorrect task priority assignment.

When specifying a two-word priority value, for example Above Normal, neither priority assignment nor affinity works.
It is also necessary to assign affinity when starting the server, and not after the server is fully started. Because when loading, the server consumes resources from other applications. Also in this case it works slower due to the assignment to another Numa node.

ark survival ascended

Looking for Beta Version

Not sure if I am the only one, but the steam installer is looking for a beta version which is no longer out there. I was able to get past it by running steamcmd manually and leaving off the -beta switches. Everything else is good so far.

Ark Ascended and ServerAPI

Issues with: https://gameservershub.com/forums/resources/ark-survival-ascended-serverapi-crossplay-supported.683/

The problem is telling the config file .psm1 to use the API's .exe file instead of the ArkAscendedServer.exe.

Changed the exec path to AsaApiLoader.exe instead of ArkAscendedServer.exe
But launching the server gives the error message Server not found.
Launching the Loader.exe manually with the same parameters does successfully start the server, but powershell cant launch the API.
What else needs to change? does PowershellGSM need an update?

Conan Exiles

I wrote a template for "Conan Exiles" which works fine for me, but please look for mistakes and add it to your repository if you wish.
(.txt cause .psm1 cant be uploaded)

conan_exiles.txt

Satisfactory - update - questions about experimantal server

Hello,
so the update 5 is now on the Early access Branch for satisfactory, if a user want to launch the Experimental branch server, it must be add
this parameter "-beta experimental"
full cmd = "steamcmd.exe +login anonymous +force_install_dir C:\GameServers\SatisfactoryServer +app_update 1690800 -beta experimental validate +quit"

so is it better to make a new powershell config file to have the 2 releases or a this variable in the conf file ?
"#Name of the Beta Build
BetaBuild = "Experimental"

Auto update doesn't work for Ark survival ascended server.

Auto update doesn't work for Ark survival ascended server. The task in the task manager works, adds new time to check Alive, update and restart to INI file. Alive check and daily restart work, while automatic update does not function.

Task Scheduler - PowerShell Window Flashing every 5 minutes

When the task scheduler starts the background task every 5 minutes, there is a quick flash of a window that pops up and is distracting to the user as it can switch window focus. This affects me negatively as I run the server in the background so others can play while I may be doing other things on my computer. I was able to change that behavior by changing the task to "Run whether user is logged on or not" and "Do not store password.". I currently go in and manually change the task settings each time I start the server.

I am not a Windows or PowerShell person (I live on linux servers for work), but I wanted to share this to see if you could incorporate a solution into your scripts. I started using the scripts for ASA and love what you have done!

Stationeers Not working

I know this game is picky but lunching it with this manager it doesnt work at all. I ended up creating a batch file un the server folder where live "rocketstation_DedicatedServer.exe"

Feature request - Oxide update

using the PowerShell for Rust, I'd love to have the Oxide update included or optional.
If not a fit for the official version - I would try adding it myself. Let me know.

Currently using a batch file I run after manual shutdown, would need to integrate this into the PS:

cd C:\Servers\rustserver
md serveroxide
bitsadmin /transfer downloadOxide /download /priority normal https://umod.org/games/rust/download?tag=public C:\Servers\rustserver\serveroxide\Oxide-Rust.zip
cd C:\Servers\rustserver\serveroxide
"C:\Program Files\WinRAR\WinRar.exe" x -y Oxide-Rust.zip
:CHECKOXIDE
if exist Oxide-Rust.zip goto DELOXIDE
goto COPYOXIDE
:DELOXIDE
del Oxide-Rust.zip
goto CHECKOXIDE
:COPYOXIDE
xcopy C:\Servers\rustserver\serveroxide C:\Servers\rustserver /e /y
cd C:\Servers\rustserver
rd /S /Q serveroxide

thank you.

left over LOCKs on system reboot

Sometimes my server crashes or a windows update got forced through.

I added a scheduler task to remove all .\servers*.LOCK files on system start.

Maybe, this could be added by default (when creating the game scheduler task)

Restart

Is it possible to set it to restart 2 times a day?

Problem with Ark when using no Password

When the Password in the GSM config is empty, their is a addional " in the SessionName. Also the password in the GameUserSettings is set to "/"". When joining the Server a password is needed.

#Password to join the server *NO SPACES*
  Password               = ""

[2023.11.02-21.40.01:955][ 0]Commandline: TheIsland_WP?listen?SessionName="Troja Ark - "trojal.de"?Port=7777?QueryPort=27015?RCONEnabled=True?RCONPort=27020?ServerPVE=True?MaxPlayers=64?ServerPassword="?...

#Password to join the server *NO SPACES*
  Password               = "xxx"

[2023.11.02-21.36.00:936][ 0]Commandline: TheIsland_WP?listen?SessionName="Troja Ark - ltrojal.de"?Port=7777?QueryPort=27015?RCONEnabled=True?RCONPort=27020?ServerPVE=True?MaxPlayers=64?ServerPassword=xxx?...

Ark ASA servers duplicating

Hi there,

I've been using your scripts for a while now and, whilst most of the stuff is running perfectly fine, I do encounter a random issue. Sometimes the script fails to recognize that a server already exists and boots up a duplicate server using the same set up. This causes many headaches as 2 servers writing to the same files often lead to corruption of people's stuff in-game. I was wondering if there's a way to prevent this from happening. I included a screenshot of an error that I see pop up occasionally when trying to reboot the servers. The dupe issue is often the consequence of this error. Thank you in advance for the assistance!

image

ServerAdminPassword in gus.ini is adding other arguments to end of password value

i've deleted the installation and started from scratch twice. both times i've only used the ASE.psm1 script in configs to update server information. servers is running without errors being thrown, although I haven't seen the server on the list due to some port forwarding issues most likely. when i look at gameusersettings.ini I see that about half of the command line argument is being added to the serveradminpassword string for some reason. it is adding port, query port, rcon port, serverPVE, etc, when it shouldn't be. love the script so far, any help appreciated

Request: Log Cleanup

First off, thank you for this script! It's awesome.

Just wanted to throw in a suggestion of allowing the user to set how long they want to keep the logs for (maybe in days) and then have the script do some cleanup. I had an issue with the process lock and generated almost 20,000 logs in the span of a week or so.

Great work and thanks again!

-M

server closing alone

Good morning, everyone, I did the installation and everything went well on the ARK ASA server, but after less than 2 minutes the server closed by itself, what could it be?

Temp backup folder causing issue on some restarts.

stated to use the PS a little bit ago - excellent work!

I was running into an issue with the temp-backup folder already existing error. Seems like the last backup was not correctly deleting the folder. This will exit the startup with error. (error: folder already exist in line 79 of Backup-Server.psm1. Maybe the compressor had a lock on the folder when the remove command was executed?
I fixed the problem by adding another remove folder (new line 79) before creating it again:
This works 100% now.

78: # Create a temporary directory
79: Remove-Item -Path "$($Backups.Path)$Type$((Get-Item $Backups.Saves).Name)" -Force -Recurse
80: $TempDirectory = New-Item -ItemType Directory -Path "$($Backups.Path)$Type$((Get-Item $Backups.Saves).Name)"

User was able to join without password.

Hi there! recently I had an issue where a user was able to join my Icarus server without being required to enter the password configured in the configuration script (icarus.psm1>Password =).

I reviewed the logs and was unable to determine why, nor was I able to identify any malicious activity by the user.

There are over 100k lines in the log so I'm not sure what to share. :)

Ark survival ascended server: Start Error

When running run.cmd

Setting Script Directory as Working Directory...
Working Directory : E:\PowerShellGSM
Finding server IPs...
xxxxxxx
Verifying Dependencies...
Importing Server Configuration...
Process is locked, exiting.

PS>TerminatingError(): "System Error."

+If launch several maps, the already running one closes

Ark survival ascended server: daily reboot problem

Automatic daily reboot does not work if the warning time is set to be greater than the task update time.

Timers = [System.Collections.ArrayList]@(1140, 600, 60)

With such a timer, the server sends only the first warning to the chat and then the next time the task is launched in the scheduler, it simply sets a new reboot time without completing the current task.

Verifying Dependencies...
Importing Server Configuration...
Locking Process.
Running Tasks for ark_survival_ascended ...
Getting Tasks Schedule...
Checking Alive State
Server is Alive
Updating Tasks Schedule...
Too soon for Update check
Server is due for Restart
Updating Tasks Schedule...
Verifying Server installation...
Verifying Server State...
Command Sent.
Server is responding to remote messages.
Server is running, warning users about upcomming restart.
Command Sent.
Waiting 1140 seconds before next warning...

This stops the execution of the script.

simple install script written

Hi, for my own usage, I created a small install/setup script that could be run by copy-pasting a single line into a powershell terminal.

You might want to have a look at it.
https://gist.github.com/BananaAcid/1dc9117571967b26ceabc972009137ae

  1. downloads the current PowerShellGSM scripts (no git needed) with a one-liner
  2. allows to update the previously installed PowerShellGSM scripts
  3. allows the selection of a server template by arrow keys + enter

rerunning the script allows to activate more templates and updating of the PowerShellGSM files

Cant start Server anymore

EDIT:
Fixed it by deleting the .lock file from your server dir

Hey, i cant start my server anymore, the last two days it just worked fine.

Here is the log:

**********************
nStart der Windows PowerShell-Aufzeichnung
Startzeit: 20240104180500
Benutzername: DESKTOP-H2735IJ\server-1
RunAs-Benutzer: DESKTOP-H2735IJ\server-1
Konfigurationsname: 
Computer: DESKTOP-H2735IJ (Microsoft Windows NT 10.0.19045.0)
Hostanwendung: Powershell.exe -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -File C:\Users\server-1\Desktop\PowerShellGSM-main\main.ps1 -ServerCfg ark_survival_ascended -Task
Prozess-ID: 7304
PSVersion: 5.1.19041.3803
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.3803
BuildVersion: 10.0.19041.3803
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Die Aufzeichnung wurde gestartet. Die Ausgabedatei ist ".\logs\2024-01-04_18-05-00-ark_survival_ascended.txt".
Setting Script Directory as Working Directory...
Working Directory : C:\Users\server-1\Desktop\PowerShellGSM-main
Finding server IPs...
Server local IP : 172.22.231.93 192.168.178.35
Server external IP : 2a02:3102:424d:ffe0:3586:d847:d50f:f3cc
Verifying Dependencies...
Importing Server Configuration...
Process is locked, exiting.
**********************
Befehlsstartzeit: 20240104180503
**********************
PS>TerminatingError(): "Systemfehler"
**********************
Ende der Windows PowerShell-Aufzeichnung
Endzeit: 20240104180503
**********************

How to restart server?

Is there a way to add a scheduled task to restart the server with the restart warning settings from the config file? It would be great to gracefully reboot the server to apply new ingame config files, etc. It's no issue but more of a feature request.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.