Arma 3 moving files from your editor into the arma 3 folders

I program in vscode, atom & notepad++ depending on how complicated my code will be …

So when testing files in the Eden editor or copying them to the Arma 3 Server for testing with dedicated hosting, I tend to have a lot of other files in the folder I’m working like my .git or .vscode folders.

To avoid packing any of those with pbo manager later – I keep the directory with work version of the mission clear by using the following script.


 

I used the command line tool xcopy, as it’s built into windows

  • I took options `/Y /S /I /U /D`
    • The order might be important here
      • Suppress overwrite message
      • Copies directories and sub directories
      • Assumes dir if failed destination
      • Takes only files that are newer
      • Copies only files that exist in destination

I use a similar script for making copies and changing the name of the files for pushing into a mod versus a mission


Instructions

  • Open the directory with your script you are editing
  • Create a new text file with notepad
    • save it as file_update.bat
    • select yes, you wish to change the file type
      • If you don’t get a warning about changing the file type, you need to enable visible file extensions for your version of window – Link
      • paste the script from the "Actual File" section into the file & save it
  • Change the path to where you want the files and directories to go
    • replace path to arma3 profile with the folder that holds your profile for arma 3 custom mission files you’re editing – Link
    • if not a multiple mission change the mpmissions to missions
    • name of folder holding mission
  • If you are using vscode
    • set .vscode to hidden so the script ignores it
    • you can do this for atom, git & other tool folders too
    • even if you have show hidden folders the script will ignore them
  • Ensure the destination has a copy of all the files you are interested in copying already
  • Go back to the batch file and double click it

Actual file

:: https://stackoverflow.com/questions/47031941/xcopy-overwrite-all-without-prompt-in-batch
:: https://ss64.com/nt/xcopy.html
:: Note don't ever put '::' in code blocks

:: Runs an update of all files in the destination directory & suppresses over write prompt

:: Must place batch file in the directory with the source files

xcopy "*.*" "C:\<path to arma3 profile>\mpmissions\<name of folder holding mission>" /Y /S /I /U /D

:: Note, after you're sure you're happy with it - comment out the pause or remove this section
pause

Sources

https://ss64.com/nt/xcopy.html
https://stackoverflow.com/questions/47031941/xcopy-overwrite-all-without-prompt-in-batch

 

Arma group commands

HC tutorial break down

  • context menu
    • exiting context menu
      • In base menu – right click – drop the menu
      • once selected anything – back space to base menu, then right click to drop
    • 3 key – behavior
      • open / hold fire / fire
      • engage, engage at will / disengage
      • scan / watch horizon
    • 4 key – vehicles
      • select unit
      • scroll wheel while pointing at vehicle
    • 6 key – actions
      • drop stuff, reload, sit, open inventory on someon, salute
      • class stuff heal/repair
    • 7 key
      • posture
        • prone/crouch
      • behavior
        • combat/stealth etc
    • 8 key – formation select
      • select units first
    • 9 – Teams
      • select all the units to put in team
      • 9 to assign teams
      • scroll wheel (context menu)
      • space bar to select
      • scroll down to to select color
    • Return to formation
      • select > 1 > 1
  • back space – complex commands

Composing the Antistasi-Membership addon with your unit members for arma3

https://github.com/A3Antistasi/A3-Antistasi-Membership

  • Ensure you have the addon on builder from steam aram3 tool
  • Ensure it has the required c++ extension (arma3 tools has a link if you click the addon builder)
  • Go to the github repository
  • Download the code in zip file
  • Extract code & make a copy of the MemberList.hpp
    • (save that somewhere or rename it)
  • Add your team’s steam UID’s to the UID array or fill out the class information
  • remove which ever array or class you didn’t use
  • Run the build.bat file in the `AntistasiServerMembers` folder.
  • This makes a pbo file you can use with the pbo file in the `@AntistasiServerMembers > Addons`
  • The PBO file size might have gone up as you just added some names but might now.
    • There is sometimes when it fails silently & you get a 2kb sized pbo
  • Copy the @AntistasiServerMembers folder into the same directory as your arma3server.exe or the arma3.exe if you are not running a server.
  • Once the directory is in your arma3server directory,  you should be able add the name to the mod list on the `​arma3server.exe`​ parameters.
    • ​​-mods=@AntistasiServerMembers
    • See dedicated server configuration section where I blogged on batch files versus shortcuts for feeding parameters – Link on or Arma3’s maker page – Link
  • If you have the mod located in the right spots you will see
==== List of mods =====
...
@AntistasiServerMembers | @AntistasiServerMembers | false | false | GAME DIR
  • The check to see if the code in the mod is executing is to open the *.rpt log file (located where ever your specified the -profiles= directory.
  • If the files are in place
The"[ASMS] Info: AntistasiServerMembers: addon has been loaded"
  • Lastly, if you have another player who’s not an admin join – they should get a small welcome message.

Todo

  • test if this can run as servermod
  • include some of this configuration in the arma3 executable commandline file – Link

Dedicated Server Configuration options on your windows PC

I really like the arma3 community’s set of dedicated hosting tools …

… but some of them don’t allow me to feed in my Missions > Params fully – which is a big deal if your mission PBO depends on certain settings.

So here is some of my findings that I had to learn to do more …


For starting out I recommend you use something from armaholics which has great reviews.

  • Tip
    • I started with Tophe’s – Link
      • The disadvantage being that it rewrites the file everytime it opens & runs so you can’t paste in your own parameters

Using a shortcut

  • Advantage
    • amazingly simple
    • Arma3 takes a wide range of parameters so it works really well
  •  Disadvantages
    • You have to specify the full path of file locations if they aren’t in the arma3 server directory (which if you test more than one server or map … ouch)
    • This is a problem as windows shortcuts have a maximum character count (how many things you can do)
    • arma3server.exe – Link
    • Not meta data scripting
      • Do you want track how often you call this?
      • Do you want to display the paths being called before this?
      • Do you want to list the actual memory allocated and memory used by the machine before starting out?
  • Tip
    • This limit of character count for the shortcuts can be by passed by using windows environmental variables to hold the path of the -config & other commandline parameters for the arma3server.exe – Link
    • My setup for the shortcut
      • “C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Server\arma3server_x64.exe” -port=2302 -name=test-server -cfg=%ArmaBasic% -config=%ArmaServer% -profiles=%ArmaProfiles% -serverMod=@AntistasiServerMembers`
      • The environmental variables contained – Link

Using a batch file

  • Advantage
    • You can do just about anything
  • Disadvantage
    • You need to learn how to use this huge wide open system
  • Tip
    • Find some of the simple examples
      • Here is mine file – Link
    • Use echo %var% & Pause to read the variables are correct before executing the start of the server
      • Might need to enabled delayed variable usage – Link
    • I got my reminder to use batch files from
      • Last Resort Gaming – Link
      • My batch
      • Example of output

Dedicated Server – understanding the setup

  • Maps
    • names
      • map folders are stand in’s for the names
      • should only have a single .
        • the part after the dot is base map name which the mission runs – not sure why this is a thing, but if you mess it up – it will be an issue
      • should not have _ character
    • Multiple player maps go in mpMissions
  • Arma 3 Server app has to have it’s own steam app ID, but you have to change it to the Arma 3 ID later

Itemizing pain points in arma3 antistasi

Game play wise, I’m opposed to classes like we used to have with TF/arma3/antistasi etc … don’t break game play by having players respawn to do something they already know how to do.  Use money / training / equipment conflict mechanisms to encourage dependency on the squad mates.

I’m trying to think what my beef is with arma3 antistasi that makes me want something else … in order to itemize value … “New Mod” are reasons I’d help parameterize or make a new mod to plugin – otherwise there is no fix or behavioral can help circumvent.  When not playing a full server or with just 5 guys on, your experience is vastly different and not enjoyable in several key ways.

  • Game saves – I can’t speak to other people’s experiences – but if you have to reset everyday or risk your game saves going corrupt – there’s something wrong (probably with arma itself).
    • New Mod – I am working on db extension to integrate
  • The game sucks when my mates are on (or less than 4 people playing as you don’t have the resources in the field to deal with certain QRF)
    • There is no fix for this – none of my mates can be replaced
  • Walking too much
    • Found out I can two up to two other vehicles if I respect their weight/size
  • Inventory management – I don’t want to spend minutes loading a truck
    • Just found out I can save loadouts to include vehicles if I am the driver (didn’t test as passenger)
  • Garrison management – I don’t want to spend 15 minutes for a single garrison
    • Antistasi is actually going to fix the positioning at bases
  • Always missing action in transit – no one wants to walk/drive while everyone else is killing
    • Maybe enable the parameter to lower damage so enemy/allied ai & us die less
    • New Mod – Revise the revive timers etc – remove revive timer so always rescue
    • New Mod – Release a new smoke grenade style that leaves a trail from the thrower to the target so we don’t need 40 to go heal
  • Visibility through the leaves etc
    • No fix
    • ? – Increase AI acquiring time until they shoot you
    • Maybe enable the parameter to lower damage so we die less
    • New Mod – Revise the revive timers etc – remove revive timer so always rescue
  • Always looking or at least have to look at each body on the low chance they have something randomly good
  •  Balance
    • New Mod – Military vehicles make infantry useless – this is why I only played battlefield if they banned vehicles or if everyone got same access – there is no point to play otherwise
    • New Mod  – Money is to get atv’s / undercovers is HUGE at beginning & irrelevant at a certain point (like 20% of map captured)
    • Hiring an AI squad easily makes it so you don’t need a squad, reducing the value of teammates
      • New Mod – Limit your AI to two guys who have to be close
      • New Mod – make it so friendly AI only garrisons
    • Sniper / mg from our team can own everything before anyone gets close
      • New Mod – Change enemy AI composition to include marksmen/sniper?
    • Mortars are pretty vicious, never disappear & reload after a certain time period
      • No more unlimited mortar
      • New Mod – no auto reload?
    • One guy with guided launcher can knock out 4 aircraft & makes QRF a joke
      • New Mod – Increase flare deployment on vehicles or hits takes to down them
      • No more unlocked launchers? (really don’t want this as with 3 guys out – we have to kill their qrf or we get swarmed by the 30 man drops)
    • Static / tank mg are ridiculously good
      • New Mod – Increase the spread of their shots to reduce frequency of accuracy?
      • New Mod – Increase target acquisition time or make parameter
      • New Mod – Increase chance to miss for all weapons or mg?

From programming side …

I’m not really interested in anything that isn’t 100% configurable …

– huge config files

– long list of missions parameters

– server config which can supersede the process

– sensible defaults for quick/easy/fun

– maybe some sort of custom difficulty or vote for more realism

– Mod / mission agnostic would be nice

Dedicated servers Arma3

This is my WIP page for a friend


 

Setting up / hosting arma3 server

  • Best hosting Arma3 – Link
    • Recommends –
      • Turnkey hosting for VPS – Link
        • Pros
          • Control entire server
          • Don’t have to support
            • just hit go and what they have works
        • Cons
          • TIME!
            • Setup & support is all you
              • Download all the programs
              • configure all the programs
              • configure all the extensions
              • Trouble shoot them all

Installing dedicated server

  • The best thread on server setup for arma3 – Link
    • Trouble shooting once setup – Link
  • List of server options – Link
  • Tophe’s Arma Dedicated Server Tool (TADST) – Link
  • Get arma3 server (dedicated not the one using your steam id)
    • Either via steam if you’re just developing
    • Or via ​steamcmdLink
  • Copy the file ‘TADST.exe’ to your ArmA server
  • Change the steamid to 107410 (steam arma3 app, not the steam arma3 server … doesn’t make sense but do it)
    • Appears when steam client running there is a known issue with dedicated server – Link
  • The map / mission file – usually you can just connect to a server, download it & then yank it from where it’s saved
    • Locations for maps – Link
      • Pay close attention to the tip at the end about the .<island name> aka MapName.IslandName.pbothe server will pretend to find and load the map but it often won’t work anyways.
    • If you are running a dedicated server you probably have the steam arma 3 server – I liked Jake’s setup guide – Link

https://community.bistudio.com/wiki/Multiplayer_Server_Commands

Additionally – config files may possibily work with __exec macro’s to make customized config files – Link

 

 

Antistasi 2.3 change log (preliminary)

From official discord server – Link – Preliminary_Antistasi_changelog_2.3

Preliminary Antistasi changelog
2.3 – not published yet

Stuff I’m pumped for and noticed in my 2 weeks of playing the game …
Changes from version 2.2.1 to 2.3 Antistasi Community EditionGeneral

  • – Aggression is now displayed better, synched correctly and actual playable. Say goodbye to steady 100 aggression.
  • – Introduced new Aggro and Warlevel system
  • Overhauled airstrikes to keep the sanity
  • – Halved the number of bombs in any given airstrike, Made the bombs used more sensible. (MK82 for HE, CBU for
    cluster, Glide bomb for napalm.
    Adapted QRFs and attacks
  • – Adapted vehicle selection for QRFs and attacks. The heavier the unit, the later it will arrive in the game. No more
    tank responces at warlevel 1.
  • – Adapted vehicle amount for QRFs and attacks. These are now heavily dependant on the aggression of the attacking
    faction. Doesn’t mean you wont get overrun sometimes.
  • – Implemented Jeroen Nots Enhanced Debug Console
  • – Fixed convoy depart timer
  • – Lootcrates can be loaded whilst being undercover
  • – Vehicle mass changes when cargo is un/-loaded

Saves

  • – Error in A3A_fnc_savePlayer
  • Fixed double-savings on global saves
  • Fixed orphaned and inaccessible saves

Objects spawn/despawn issues

  • Broken spawn distance decrease button
  • Surrendered soldiers and crates not vanishing
  • Fixed disappearing vehicles
  • Fixing outposts needing a road to spawn the truck for the crate

ARMA3 Transcript of Making UI For player targetting

  1. Prepping the visuals
    1. open eden editor
    2. spawn a few units from off the side bar on right by dragging them over
    3. hit the play senario button
      1. in senario play mode hit escape key
        1. select gui editor
          1. right click on square that appears to get a menu
          2. select |GUI|Back
            1. give it a title
            2. push ok button
          3. right click again to get a rsclist
            1. repeat previous #2 steps
          4. right click again to get a rscButton
            1. repeat previous #2 steps
        2. hit escape, exit, save with a name
    4. save mission
  2. Setting up the scripts to use the visuals
    1. Locate your mission folders – Link
    2. Make files to hold our stuff
      1. Descriptions.ext
        1. #include "defines.hpp"
        2. #include "controls.hpp"
        3. save & close
      2. defines.hpp
        1. open the mission / senario
        2. goto the play senario
        3. keyboard shortcut control+p to copy menu we made
        4. keyboard shortcut alt+tab to get back to the defines document open in  `​notepad++`
        5. paste it & save
      3. controls.hpp
        1. create a class with name you remember, dialogTest is used here.
        2. set idd = 1234;
        3. make a class inside of the class
        4. back in eden editor’s play senario mode do a control+shift+s
        5. return to the controls.hpp & paste the menu classes into it
      4. initPlayerLocal.sqf
        1. player addAction [{"Open Dialog", execVM "openDialog.sqf"}];
      5. openDialog.sqf
        1. Get a handle for the display to work with
          1. ​​createDialog "dialogTest";
          2. _display = findDisplay 1234;
          3. _ctrl = _display displayCtrl 1500;
        2. Fill the control’s list with names
          1. { _name = name _x; lbAdd [1500, _name]; } forEach allUnits;
        3. Attach the object as entity to list
          1. Public variable (don’t use publics once done testing it)
            1. Goes before the forEach loop
            2. playerListArray = [];
          2. Loop should save each object to the playerListArray
            1. `playerListArray pushBack _x;`
      6. killUnit.sqf
        1. Need to call this from controls.hpp inside the class for the killButton
          1. This has reserved word in it – so don’t use this format but the idea that you can keep the menu open is what matters
            1. action = “CloseDialog = false; execVM ‘killUnit.sqf'”;
          2. Working version …
            1. action = “execVM ‘killUnit.sqf'”;
        2. In the killUnit script …
          1. _index = lbCurSel 1500;
            _unit = playerListArray select _index;
            hint str _unit;
            _unit setDamage 1;