Jump to content
sadfrog17

ServerifyA3 - a dedicated server configuration tool

Recommended Posts

62007824-9d49fe80-b16b-11e9-8e5c-0bf7c88

Serverify A3

An Arma 3 dedicated server configuration tool.

 

Features

  • Supports latest A3 version (1.98) and almost every (only 3-4 config properties are temporarily missing) configuration setting;
  • Supports Arma 3 startup parameters, basic.cfg, server.cfg, A3 user profile.
  • Profiles system to store settings for various server configurations;
  • Modern, nice looking and responsive UI;
  • Localization support;
  • Visual themes.

 

Prerequisites

  • Windows 7/8/10
  • .Net Core 3.1
  • Steam account, purchased Arma 3 on it

 

Installation and usage guide

  1. Download latest version of Serverify A3 (Github Releases Page);
  2. Unpack the archive to the any folder you like.
  3. Launch ServerifyA3.exe, tune your dedicated server.
  4. When you're done with server's settings tuning - simply launch your server from General server screen.

 

Future Plans

  • Mission Voting settings;
  • Bugfixes, UI redesign, 100% test coverage, refactoring... 🧐

 

Feedback

  • If you have any suggestions, localization errors,  bug reports or feature requests - feel free to contact me via PM or create an issue in the repository  - Issue Tracker.

 

Links

 

Screenshots

 

62007527-eb5d0300-b167-11e9-9209-09daf90

 

62007528-eb5d0300-b167-11e9-8dd5-101866d

 

62007530-eb5d0300-b167-11e9-8d28-6a89a54

90130833-cb4cb180-dd73-11ea-85ec-c9c039a

 

  • Like 3
  • Thanks 4

Share this post


Link to post
Share on other sites

Also a little explanatory note:

This project was started as my own private replacement of TADST tool, which i really love but... it is really outdated atm - there are many new parameters, difficulty system rework etc. I needed some very simple tool with GUI to configure our private A3 server, so i decided to write my own - because why not? 😌

ServerifyA3 supports localization, so if you want to see your native tongue as choosable language in the app - i can give a localization file so native speakers can translate everything correctly (with authorship note, of course) and then i will push it into next version.

 

P.S. I can't change my nickname on biforums for some reason.

  • Like 4
  • Thanks 2

Share this post


Link to post
Share on other sites

finally a very good replacement for TADST, well made comrade

 

thank you very much for this useful server tool

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

very nice work mate 👍

 

did you consider regex filter for the rpt yet?

Share this post


Link to post
Share on other sites

@.kju

Well, if i understand you correctly - regex filter is some sort of "show strings that match regular expression only"? 

I think i can add this feature into the next major version 😉

 

Share this post


Link to post
Share on other sites

well exclude and include lists

 

that are the ones i use:

 

^(Protocol bin|dta\\|."createVehicle","|Group .+ - network ID \d+:\d+$| - no main subgroup|Skipping mods and signatures due to overflow flag being set.|Skipping signatures due to overflow flag being set.|Attempt to override final function -|Client: Object |Setting invalid pitch |.*p3d: No geometry and no visual shape$|No speaker given for |Warn: Shape '|No more slot to add connection at |String STR_WW2_CA_EP1_|String STR_A3_|String STR_dn_|DLC index:|Reading cached action map data|===|---| +.*(yes|no)$|Allocator: |PhysMem: |Detected number of DLCs|Fresnel \w must be |modsReadOnly|safeModsActivated|customMods|hash = |hashShort = |Initializing stats manager|Analytics disabled|Download of the list of servers has failed|Steam Manager initialized|Starting initial content check|Initializing Steam Manager|Cannot register unknown string |Starting mission:|Extensions:| Mission directory:|Shutdown normally|unable to get word:|Empty word in sentence|Unsupported language English in stringtable|String  not found|Error in ReloadMagazine - unable to locate target weapon |Unknown attribute itemsCmd|Number of |Weapon type with given name: |EPE manager release|Duplicate |Dimensions |No weather defined |Updating base class .*, by (a3|cup|ca)\\.*|PhysX3|class Steam|"### .*DevCon|planning mode|c:.*(OnClientStateChanged|IMPLEMENTED)|SetFace error: |Error: Error during SetFace|.*Unknown action |Loading movesType |MovesType |Road not found|Creating action map cache|Ragdoll - loading|Link to |Strange convex component|    - |\w:.*\wbo - \d+$|addons|DX11 |"test/BIS_fnc_log:|Ref to nonnetwork object |Client: Nonnetwork object|Error: Bone | Mission file: | Mission world: |\w \w+ \d.*moving in direct condition failed, dist |."DevCon|\w+: \w+ - unknown animation source |Deinitialized|SimulWeather - Cloud Renderer|Wrong weapon selection|<No group>:|\w+: Getting out while IsMoveOutInProgress|Warning Message: '/' is not a value|Class \w+ destroyed with lock count |Warning: '.*faces$|  source used: |  hint: |  source ignored: |Warning: Embedded material |Warning Message: No entry 'bin\\config.bin/RadioProtocol_|Warning: Unaccessible|Item str_a3_|Error in expression .*\r\n  Error position: .*\r\n  Error (Invalid number|Undefined variable) in expression|\[\d+.*"XEH: |ReportStack: |InitSound |\[xeh|\[cba|Intercept |Selection missing in CfgModels\r\n  class suitpack_blufor_diver\r\n    "camo",| +.*(GAME DIR|dlcbundle)|\[ACE|Damaged shot |CallExtension loaded: |Object::Intersect bme |Object.* is still tracked$|\w:\\.*\.pbo - \w+|  \w+ .* \d+ ms$|  \w+ in .*\\$|c:.*(Current number of particles:|first < _lines.Size|Graphic Config Missing memory LOD|EPERagDollItemPhysx3::CreatePhysXStuff|AssertNoDlg)).*\r\n

    - |\[ENTER\] Steam::Callback::PersonaStateChange::OnPersonaStateChange|\[ENTER\] SteamFileInfo::SetChildren|\[EXIT\] Steam::Callback::PersonaStateChange::OnPersonaStateChange|\[EXIT\] SteamFileInfo::SetChildren|_|Adding finished missions:|Adding played missions:|Aperture surface format R32_FLOAT|App active|App inactive|Applying controller scheme Default|Audio: stream channels: 2, sample rate: 48000|Bloom pass: |Camera switched to|Check that the store operation is really required.|Clearing multiplayer statistics|CreatePostProcessStuff: |createUnit: Logic, group: |CreateVoice, channels: 2, freq: 48000|Creating action map cache|Creating debriefing|Creating rendering context "main"|Creating rendering context "r2t"|Creating special purpose shaders|Creation parameters:|customMods = true|D3D11 multithreading support - creation = 1, command lists = 0|Decimation |Distance |Duplicate HitPoint name |DX11 - Initializing DX11 engine.|DX11 - Using DXGI adapter 0|DX11 - warning - reading back texture from GPU in less than 6 frames|DX11 Error: Not handled|EPE manager release|Fill Objects took |Fill Terrain took |Frame not finished yet|FreeTrack - DLL Location key not present|Init water |InitGeometryShaders: |Initializing Steam Manager|InitPixelShaders: |InitSound |InitVertexShaders: |Key released twice|Land segment size |LandCache fill:|Landscape::LoadData |Load Road took |Load Terrain took |Loading movesType CfgGesturesMale|Loading movesType CfgMovesMaleSdr|modsReadOnly = true|Moved object |MovesType Cfg|Natural Point - Track IR: DLL Location key not present|No alive in |OutsideTerrain|owner id: |P2P Decimation |Path for cache of compiled shaders:|Persistence info:|PhysX3 SDK Init ended.|PhysX3 SDK Init started ...|Preload 271 textures - |PreloadConfig load time|Reading cached action map data|Rendering context |Resource |Road |RStringBank clear|RT |safeModsActivated = false|Script |Since last store:|Starting initial content check.|Starting mission:|Steam Manager initialized.|SwitchCamera takes |SwitchRes: |Sync preload time: |Type LIB_Sturmboot missing driver position|Updating user profile|Using cache of compiled shaders. Retail version.|Variable editorLayout is not present in profile. Choosing RscDisplayArcadeMap as editor's layout.|VehicleTypeBank::Preload |Video: |Visibility set to |Wanted |Warning: Unaccessible ladder point for AI|Water segment size 8|Window switch resolution|WM_|

^(Updating base class .*, by (ca|a3|cup)\\|Note: .*source: (a3|ca)\\|Dimensions|soldier\[|Preload |d:\\games\\|dta\\|addons\\|Shadow|Waiting|STEAM:|.?class Steam:|    - |\[ENTER\] Steam::Callback::PersonaStateChange::OnPersonaStateChange|\[ENTER\] SteamFileInfo::SetChildren|\[EXIT\] Steam::Callback::PersonaStateChange::OnPersonaStateChange|\[EXIT\] SteamFileInfo::SetChildren|_|Adding finished missions:|Adding played missions:|Aperture surface format R32_FLOAT|App active|App inactive|Applying controller scheme Default|Audio: stream channels: 2, sample rate: 48000|Bloom pass: |Camera switched to|Check that the store operation is really required.|Clearing multiplayer statistics|CreatePostProcessStuff: |createUnit: Logic, group: |CreateVoice, channels: 2, freq: 48000|Creating action map cache|Creating debriefing|Creating rendering context "main"|Creating rendering context "r2t"|Creating special purpose shaders|Creation parameters:|customMods = true|D3D11 multithreading support - creation = 1, command lists = 0|Decimation |Distance |Duplicate HitPoint name |DX11 - Initializing DX11 engine.|DX11 - Using DXGI adapter 0|DX11 - warning - reading back texture from GPU in less than 6 frames|DX11 Error: Not handled|EPE manager release|Fill Objects took |Fill Terrain took |Frame not finished yet|FreeTrack - DLL Location key not present|Init water |InitGeometryShaders: |Initializing Steam Manager|InitPixelShaders: |InitSound |InitVertexShaders: |Key released twice|Land segment size |LandCache fill:|Landscape::LoadData |Load Road took |Load Terrain took |Loading movesType CfgGesturesMale|Loading movesType CfgMovesMaleSdr|modsReadOnly = true|Moved object |MovesType Cfg|Natural Point - Track IR: DLL Location key not present|No alive in |OutsideTerrain|owner id: |P2P Decimation |Path for cache of compiled shaders:|Persistence info:|PhysX3 SDK Init ended.|PhysX3 SDK Init started ...|Preload 271 textures - |PreloadConfig load time|Reading cached action map data|Rendering context |Resource |Road |RStringBank clear|RT |safeModsActivated = false|Script |Since last store:|Starting initial content check.|Starting mission:|Steam Manager initialized.|SwitchCamera takes |SwitchRes: |Sync preload time: |Type LIB_Sturmboot missing driver position|Updating user profile|Using cache of compiled shaders. Retail version.|Variable editorLayout is not present in profile. Choosing RscDisplayArcadeMap as editor's layout.|VehicleTypeBank::Preload |Video: |Visibility set to |Wanted |Warning: Unaccessible ladder point for AI|Water segment size 8|Window switch resolution|WM_|SimulWeather - |Adding child id:|Request priority increase required|Creating generic shader|Recreate caches|Load bank|MakeLockable| Adding mission name: |createGroup:|new group created:|Trying to modify add-only entry bin\\config.bin/CfgFirstAid|Moving |\w+\\.*supply point inside the model\.$|Skeleton.*pivotsModel.$|_steam|Added tag category |a3\\|   .last instruction at|Script .* ms allowed.$|$).*\r\n

^(c:\\bis\\source\\.+(func: Scene::ObjectForDrawing|func: Texture::SetName|NOT IMPLEMENTED|_brain->RefCounter|func: Flag::InitAsync|func: MapObjectListFull|func: EPERagDollItemPhysx3)|Server: Object |object \w+#.+ is still tracked$|Ragdoll - |Creating action map cache|Reading cached action map data|Loading movesType |Network simulation, time = |MovesType | - no main subgroup$|Group \w .+ - network id \d+:\d+$|Link to |Client: Remote object |Message not sent - error |Error in ReloadMagazine - unable to locate target weapon |Fresnel k must be |No more slot to add connection at |Ref to nonnetwork object |Steam Manager initialized|Unaccessible|Initializing Steam Manager| Mission id: \w+$|\w+\\.+: No geometry and no visual shape$|Attempt to override final function|Warning: '.+ faces$|Object::Intersect bme |NetServer: cannot find channel |addons\\|dta\\|\w:.+\.\wbo - \d+$|Creation of |Error: Object.+ not found$|Warning: Cleanup player - person |Updating base class .+, by a3\\|Server error: Player without identity |Error: entity |Client: Object |SimulWeather |Number of |EPE |Duplicate weapon |Extensions:|Strange convex component|Shutdown normally|Starting mission:|Deinitialized shape |Setting invalid pitch |"Rush-Redux-Server-Log: ).*$\r\n

 

Share this post


Link to post
Share on other sites

also you may want to consider a discord server for the project if you have time and interest to build a community around it

  • Like 1

Share this post


Link to post
Share on other sites

Yes, the rpt is in need of filtering.

Share this post


Link to post
Share on other sites
16 hours ago, otarius-big said:

tool cant find server mission and server mods.

 

unfortunately if sever is installed other path than ...\steamapps\common\Arma 3\

the tool can not find sever mods and missions

 

would be nice if you could fix that

my server for example is installed ...\steamapps\common\Arma 3 Server\

Share this post


Link to post
Share on other sites

ServerifyA3 1.0.0.2

  • Resolved a bug - mission folder match check was case sensitive;
  • Mission/Modification data grids updates on Server Profile changes on Profile hamburger menu tab from this moment.

Download link: Serverify A3 1.0.0.2 (github)

  • Like 3

Share this post


Link to post
Share on other sites

@Panadero98

Well, technically Linux port is possible, but will be somewhat difficult for me - unfortunately, WPF is Windows-only and i have no sufficient knowledge of other OSes than Windows. So i need to switch from .Net Framework 4.7.2 and WPF to .Net Core and basically do a new UI from scratch on some crossplatform UI framework (something like AvaloniaUI).

Anyway, I consider to make a cross platform version when ServerifyA3 will be somewhat feature complete, but this is definetely a long way to go.

Share this post


Link to post
Share on other sites

did you fix the problem that the tool finds only missions and mods if used in arma 3 root "...\steamapps\common\Arma 3\" ?

 

because I use the arma 3 server from steam and the tool still does not find any mods or missions

 

arma 3 server steam

Share this post


Link to post
Share on other sites

no mods list from workshop file.  

need function how many headlees client want  user 

Share this post


Link to post
Share on other sites

@maquez

It is really strange, if you have spare time - can you provide more details (folder path and screenshot of A3 Server folder structure)?

Because both mods and missions shows in according data grids in any server location (other than "...\steamapps\common\Arma 3\") after the update:

62295782-46079f00-b487-11e9-963c-4c8c1ed

 

62295783-46a03580-b487-11e9-9d92-e7c49f3

 

@otarius-big

Workshop mods referencing support will come in the next update.

Share this post


Link to post
Share on other sites

I use Arma 3 Server installed on follow path:

E:\SteamLibrary SSD\steamapps\common\Arma 3 Server

 

if I point Server Executable to follow path: "E:\SteamLibrary SSD\steamapps\common\Arma 3" where my Arma 3 is installed it works

 

if I point Server Executable to follow path: "E:\SteamLibrary SSD\steamapps\common\Arma 3 Server" where my Arma 3 Server is installed it does not work

 

hope this helps

 

did some further testing:

mods do work but missions are still not found
my missions are under follow path: "E:\SteamLibrary SSD\steamapps\common\Arma 3 Server\mpmissions"

Edited by maquez
further bug testing

Share this post


Link to post
Share on other sites

@maquez

Thanks for details. It is really strange, but i can't repeat your situation on my environment.

It is really stupid question from me but - can you check the version of ServerifyA3 on the about page (question mark in lower left corner)? Is it 1.0.0.2?

I'm asking it because this is what hotfix should fix. The problem was in case sensitive mission folder check (basically it could find missions in MpMissions folder, but couldn't in mpmissions, this is what hotfix should fix). If it is 1.0.0.2 it looks like that problem is still somehow persists.

 

62309762-8d028e00-b4a1-11e9-9594-26ef6dd

62309775-925fd880-b4a1-11e9-8333-08f599c

  • Thanks 1

Share this post


Link to post
Share on other sites

what a shame ... 🙄
sorry buddy my fault, I somehow mismatched the zip files when I was updating
sorry mate...
may getting old 🤔

Share this post


Link to post
Share on other sites

Thanks for this awesome program, it saves a lot of legwork!

 

Is it possible to launch headless clients from the program?

 

 

Share this post


Link to post
Share on other sites

@Mack.

It is not possible in the current version, but i think i can add this feature soon. 😉

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

@sadfrog17 need to add "advanced parameters". Since you do not have all the functions at the moment.

Thank.

Share this post


Link to post
Share on other sites

ServerifyA3 1.0.1.0

  • Deutsch Localization (credits to Fallingstorm, 8th SFG Titan Platoon);
  • .resx localization support (groundwork to be able to localize some strings that were unlocalizable before);
  • NuGet packages updates - CommonServiceLocator (1.3.0 -> 2.0.4), MvvmLight (5.3.0 -> 5.4.1.1), Microsoft.Interactivity and other tied libraries were replaced with more modern and robust Microsoft.Xaml.Behaviours.Wpf.

Download link:ServerifyA3 1.0.1.0 (github)

 

 

I have been busy lately, so the development of the app slowed down a lot, but promised features (mainly log viewer and better headless client integration) are still in development.

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×