GithubHelp home page GithubHelp logo

alec-hs / flaxs-arma-server-tool Goto Github PK

View Code? Open in Web Editor NEW
15.0 6.0 1.0 153 KB

Tool for installing and updating Arma 3 server with built in features for managing Steam Workshop mods.

Home Page: https://forums.bistudio.com/forums/topic/206609-flaxs-arma-server-tool-fast

License: GNU General Public License v3.0

Visual Basic 100.00%
arma3 steam-api steam-workshop arma-servers

flaxs-arma-server-tool's Introduction

Flax's Arma Server Tool (F.A.S.T.)


THIS IS NOW OBSELETE PLEASE SEE FAST2 FOR LASTEST VERSION


INTRO

After some time using and getting annoyed with the repetitiveness of SteamCMD, I looked around for a tool to automate at least some of process of installing an Arma 3 server and managing workshop mods. Having looked through a few options, none of which matched what i was looking for I decided it would be easier to build it myself. F.A.S.T. is the result of that, this is the first iteration and I will continue to expand and update it as and when needed.  Thanks go out to Optix for his Remote Arma Server tool that gave me some ideas for my tool. Also, a massive thank you to Kju and Friznit for testing and bug reporting for me.

 

PREREQUISITES

  • Steam account with valid copy of Arma 3.
  • Basic understanding of Arma 3 dedicated servers.

ISSUES AND FEEDBACK

I'll monitor the BI Forums thread as best as i can but I will use this GitHub Repo for bugs, issues and feature suggestions. 

 

DEV BRANCH WARNING

Due to the available server builds on steam, to install a dev branch server you must install the main Arma 3 application dev branch then launch using the included server binaries. Due to the way SteamCMD works this means that any mods that the account used to install the server is subscribed to will also be downloaded and updated when using Dev Branch. Currently these mods are mot detected/ added to F.A.S.T. but this will be added in future.

          

DOCUMENTATION

Is currently minimal, and found on the BI Forums Topic. I will update the wiki here at some point.

LINKS

BI Forums Topic - https://forums.bistudio.com/forums/topic/206609-flaxs-arma-server-tool-fast

flaxs-arma-server-tool's People

Contributors

alec-hs avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

sneakysniper100

flaxs-arma-server-tool's Issues

MODS not loading

I am attaching the rpt file. You can see on line 3 the mods that are supposed to be loaded by they don't.

Only difference I can see between this report and the on that does work with TADST is your generated config line uses -mods" and TADST uses -mod=

here is the rpt file
arma3server_x64_2017-09-26_21-18-59.zip

i can copy error text with downloading mods for arma 3 please fix this problem

System.IO.DirectoryNotFoundException: Část cesty G:\Dayz Server\arma 3 server\keys\Incontinentia.bikey nebyla nalezena.
v System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
v System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
v System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
v FAST.MainWindow.CopyKeys(String modID)
v FAST.MainWindow.VB$StateMachine_47_RunSteamCommand.MoveNext()
--- Konec trasování zásobníku z předchozího místa, ze kterého byla vyvolána výjimka ---
v System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)

Missing space before EXTRA PARAMETERS

If you enter this into the Extra Parameters section...
"-serverMod=@Advanced_Urban_Rappelling"

The command line looks like this...

== "G:\Games\a3server\arma3server_x64.exe" -port=2302 "-config=G:\Games\Flax Server Tool\servers\Test\Test_config.cfg" "-cfg=G:\Games\Flax Server Tool\servers\Test\Test_basic.cfg" "-profiles=G:\Games\Flax Server Tool\servers\Test" -name=Test "-mod=@alive;@CBA_A3;" -filePatching"-serverMod=@Advanced_Urban_Rappelling"

Notice there is no space between -filePatching and "-serverMod=@Advanced_Urban_Rappelling"

this causes the -serverMod's not to load. You can and a space to the beginning of the Extra Parameters like " -serverMod=@Advanced_Urban_Rappelling" and they load properly but it would probably be best to have a space automaticly added in between the two.

Adding mod throws error.

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: StartIndex cannot be less than zero.
Parameter name: startIndex
   at System.String.Substring(Int32 startIndex, Int32 length)
   at System.String.Substring(Int32 startIndex)
   at FAST.ImportMod.ImportModToList(String modUrl)
   at FAST.ImportMod.ImportButton_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Flax's Arma Server Tool
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///D:/workshopDownload/Flax's%20Arma%20Server%20Tool%20V1.3-beta/Flax's%20Arma%20Server%20Tool.exe
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 14.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Xml.Linq
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------
CustomMarshalers
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/CustomMarshalers/v4.0_4.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Add HC supports and add ability to assign CPU affinity

Awesome Tool, I'm using it to host my clan's server right now, but it would be great if it has the ability to fire up additional servers for HC and set core affinity to each HCs and the server.

Thanks for your great work, Sir.

Ace download error

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Steam server2\armafiles\keys\ace_3.12.2.33.bikey'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
at FAST.MainWindow.CopyKeys(String modID)
at FAST.MainWindow.VB$StateMachine_47_RunSteamCommand.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)

Allow Custom Location for Downloading Workshop Mods

We have been using SteamCMD from last 1 year to download and update the mods with own Created Scripts but only problem we face is while updating the mods , most of the time we dont know which mod has got updates and even have other Timeout errors sometime because of SteamCMD. Currently we install all our Workshop Mods in steamapps folder of the Arma 3 Server itself and not in SteamCMD folder because we try to keep all the workshop clear of Multiple Games in the same folder. So we use
force_install_dir command to execute to that steamapps game directory folder
for eg : E:\a3server\ is the Arma 3 Server installation directory so we do in steamcmd command list force_install_dir E:\a3server\ and the steam will automatically download the workshop download command inside E:\a3server\steamapps\workshop\content\107410 and later on we create symbolic link like Normal Arma 3 games does to default directory for example CBA 3

cd /d E:\a3server
mklink /d @CBa3 steamapps\workshop\content\107410\450814997

This will create symbolic link in main location of Arma 3 Server installation path and we can use them while launching server

Can you add Custom Location Installation path and Detect existing Mods path so we can add all our Old mods which are downloaded by SteamCMD. If you want you can try to get all the values from one of the Steam files inside gameserver\steamapps\workshop\appworkshop_107410.acf which contains all the mods information which were downloaded and updated using SteamCMD

Steam Guard Box shows up multiple times

When using an account with Steam Guard the code entry dialog opens multiple times. This is due to the check for Steam Guard line not being specific enough in it's string query.

Resolution - change string query to look for "Steam Guard code:"

Linux Version

Hey man. Looks like a really cool tool.

I'm wondering if you have any tips or success running this app via mono. I'd like to see if it would work with Linux.

Mono has a vb compiler since 1.2.something.

If you've not given this much though, I'll try it out myself and submit any pull requests needed to make it work. I steer far away from .NET stuff, but your code is readable enough that I can probably grind my way through it. If all else fails, maybe wine?

Thanks for any help you can give me!

Remove Keys on mod deletion/ update

When deleting mods, keys are currently left in place. Keys should be removed when mod is deleted and an option needs to be added to keep keys or delete keys on mod update.

  • Remove keys on delete.
  • Keep/ delete keys on update.

Key issue

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Steam server2\armafiles\keys\asrai3.bikey'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
at FAST.MainWindow.CopyKeys(String modID)
at FAST.MainWindow.VB$StateMachine_47_RunSteamCommand.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)

Special character : preventing symbolic link

MOD 884966711
Name shown in FAST - ACE Compat - RHS: GREF

Any way to edit the mod name before we update? Or should I just set it as a private mod and put a new mod name in there?

Feature request for 2.0 Auto restart

For 2.0 it would be nice to have a auto restart being able to set the restart everyday or week/month at certain times including headless clients.

For example i would like to set my server to restart both the server and headless clients i have 3 every 16 hours. This helps dump the memory as over time the server and headless clients will eat ram requiring a restart to dump the ram.

Launch error

Was making a vanilla test server to make sure it would run saved the profile then hit launch then received this error

System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at FAST.NewServerTab.LaunchServer() at FAST.NewServerTab.LaunchServer_Click(Object sender, EventArgs e) at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Arma3Profile write issue.

File G:\Games\Flax Server Tool\servers\test\Users\test\test.Arma3Profile, line 1: '.difficulty': Missing ';' at the end of line.

RPT Open button non functioning

We talked about this some time ago and you said it was fixed in your internal build.
While I hate to bump for updates :) , I was wondering if we are going to get this anytime soon?

A3 Server Directory Not Working

When downloading the A3 server files, it will always create and place it in a folder on the desktop. I would like it to be in the folder I set in the directory settings.

New Modern UI

Complete UI/ UX redesign using Google Material Design/ Metro or similar design style.

Timeout error on large mods

Getting these type error on large downloads like CUP-Terrains and RHS stuff..

Downloading item 583496184 ...ERROR! Timeout downloading item 583496184

I am doing the initial updates. Smaller mods I have no issues and also no issues if I use steamcmd to download them.

Not sure if its a steam generated message or related to your great little program.

Thanks
Eric

MOD stays orange after update

Had a mod show up as having an update ready and its bar war orange. Did the update and its bar stayed orange. Here is the line from the mods.cfg

949252631,Arma 3 Aegis (Alpha),7/18/2017 9:32:22 PM,7/18/2017 10:42:41 PM,public

I think it has something to do with the mods update time. You can see where I did the update at 7/18/2017 9:32:22 PM and I assume the second time the 7/18/2017 10:42 PM is the update date/time from the mod. Since its showing a later time the when I did the update I think that's whats causing it to stay orange.

Ability to set Affinity on HCs

With the ability of launching the HCs with the tool, would it be also possible to have settings that set CPU core affinity on the server and the HC's processes when they launch? As running HCs and the server on all cores can cause a lot of performance issues when HCs are using the same cores as the server.

Check for Updates - String to Double error

Have 57 Mods in the mod list. Below is an image of the error that occurs when it starts checking for mod updates immediately after starting up.
image

This is my mod.cfg that causes the issue to occur:
mods.txt

Running latest version of the tool (1.3)

EDIT: This occurs on the previous stable version (1.1.2) too, and has only started to occur recently. Tested on my local machine and has the same issue when adding any mod and restarting the tool

Errors after adding mod

Ok I'm kinda stumped. I deleted my old FAST install and started fresh. I added a mod I never used before using the "add mod from url" option.
It shows up in the mod window as "Not Installed", I click on update and it downloads the MOD and the line turns green.

I then exit FAST and then restart it. Everything is working fine and without doing anything else I close FAST.

Now the next tome I open FAST I get the following messages
fast1

then
fast2
then
fast3
after clicking that last ok I then get

fast4

Now when I click the mods button I get this
fast5

With the MOD I had installed not there and the bar under "Checking" never ending.

Here is the mods.cfg
mods.zip

Strange thing is get the same issue on three different machines. The only thing in common between them is I had a previous version of FAST installed at one time. Not even sure if that makes a difference or not.

If you need any more info please ask. Love the program!!!!

Thanks
Eric

SteamGuard Enter Code doesnt open

I cant input the steamguard code... in the output only is
Enter the current code from your Steam Guard Mobile Authenticator app
ant nothing more happen...

Move away from mods.cfg to internal data structure

Remove the need for the external mods.cfg file and move to self contained data file. This should alleviate any issues with missing or modified files also allowing for much cleaner code when dealing with adding, deleting and updating mods.

Mission Parameters for each mission

Is it possible in Fast2 to add Mission Parameters for each mission in the server config so the %Servername%_config.cfg could look like this ?

class Missions
{
	class MyMission1
	{
		template="MyMission.Altis"
		difficulty="custom";
		class Params
		{
			myParam1=0;
			myParam2=0;
			myParam3=0;
		};
	};
	class MyMission2
	{
		template="MyMission.Tanoa"
		difficulty="custom";
		class Params
		{
			myParam1=0;
			myParam2=0;
			myParam3=0;
		};
	};
};

Thanks for the Tool
Thanks JamieKG

Program crash while downloading 2 mods

System.ArgumentException: Illegal characters in path. at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.GetFullPathInternal(String path) at System.IO.FileSystemEnumerableIterator1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler1 resultHandler, Boolean checkHost) at System.IO.Directory.GetFiles(String path, String searchPattern) at FAST.MainWindow.CopyKeys(String modID) at FAST.MainWindow.VB$StateMachine_47_RunSteamCommand.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)

https://steamcommunity.com/sharedfiles/filedetails/?id=909547724
https://steamcommunity.com/workshop/filedetails/?id=520618345

Windows Server 2016
Run with Admin privilege

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.