A video guide to this mission template is now available!
This is a mission template for multiplayer missions in Arma 3. Currently, this is used as the standard for missions ran in the TAS Arma Community.
It aims to provide a common baseline of features for mission creators and players to use, as well as more advanced systems intended to be ran on a per-mission basis. Almost all systems can be toggled and/or modified in the configuration file, and a limited number of systems support in-mission editing via Zeus modules.
- Too many to count!
- I'll update this later.
A video guide to using this mission template is now available!
- Download the latest version of the mission template from the releases tab in either
.zip
or.pbo
format.- You can pick between squad sizes of six (in one fireteam), eight (in two fireteams), or ten (with two fireteams and a two-member commanding element).
- Extract the mission template and place the resulting
TAS_MissionTemplate_*ManSquads.VR
folder in yourC:\Users\YourUsernameHere\Documents\Arma 3\mpmissions
folder.- Adjust the drive letter and file path as needed.
- Change the
VR
part of the folder name to the world name of the terrain you want to use for your mission.- If you don't know the name, open the terrain in the 3den Editor and open the debug console and execute
worldName
to get the world name of that terrain.
- If you don't know the name, open the terrain in the 3den Editor and open the debug console and execute
- Open the mission file in the 3den Editor.
- It will be under the
mpmissions
folder.
- It will be under the
- You will now be in the 3den Editor view. There are a few distinct sections of the template, such as required items (for scripts to function), useful examples that you can delete if you're not using them, and the players. Read the comment modules scattered around each section and each item in each section to see what's going on.
- This step is interchangable with the 3den Editor customization step. You should open
config.sqf
and read through each option to configure the Mission Template's scripts settings.- Note that enabling some scripts requires corresponding objects in the 3den Editor part of the template to exist, so read the comments carefully before deleting items in the editor view (although the scripts are largely fault-tolerant and will disable themselves if a required object is missing).
- However, the default settings in
config.sqf
should be suitable for most missions!
- Now that you have the Mission Template configured, you can build your mission as normal.
- If you have already built your mission and wish to merge it, make sure to merge it INTO the Mission Template's 3den file, as doing it the other way around will not copy over the script files or mission settings (the ones you configure in the
Settings
tab of the 3den Editor).
- Make sure to test your mission! In addition to your normal mission testing, you should do the following to make sure you set up the Mission Template correctly:
- When loading and testing the mission, keep an eye out for error messages! These can either be via the
systemchat
text box (gray text in the bottom left), or via the standard Arma error messages with the black boxes in the middle of your screen. - Respawn to make sure that respawns are functioning correctly.
- Run the automated reviewer script! This is more for collecting mission statistics (very useful for community's mission reviewers who need to review stuff like overall number of units and etc), but it can also point out any custom settings you have applied and a few common errors. To use the automated reviewer, play the mission and execute
[] call fn_automatedReviewer.sqf
in the debug console. The results will be copied to your clipboard after a short time. - Test the mission both on your local machine and on a dedicated server if possible!
If any of these mods are missing, the mission template will break completely or work in unexpected ways.
Specific systems utilize these mods, and these systems will either automatically disable if the required mod is not present, or the Mission Maker can disable the systems in config.sqf
.
- 3den Enhanced
- Used to set some minor attributes in the
mission.sqm
(3D Editor File). Not important, mostly just recommended due to the additional tools it gives Mission Makers.
- Used to set some minor attributes in the
- Task Force Arrowhead Radio (BETA)
- Used for setting radio frequencies and assigning radio items at mission start. Enabled by default.
- LAMBS_Danger.fsm
- Used in the
mission.sqm
(3D Editor File) to provide an example of how to use LAMBS modules, as well as to automate some AI actions (garrison, patrol) in systems that spawn AI like the Scavenger System.
- Used in the
- E.P.S.M Exomod Remastered
- Only used for fn_addExo, a niche function used only if the Mission Maker manually calls it.
- cTab (Most Editions)
- Only used to automatically give cTab items at mission start. This is disabled by default.
- TAS Unit Mod Redux
- Not a strict dependency, but provides some editor tools specifically made for interacting with the template.
- Tools: copy map name to clipboard, automatically set author field, export layer to SQF.
Issues are welcome and will be addressed.
Pull requests are welcome and should follow the following guidelines:
- Global variable names should be prefixed by either
TAS_
or your custom prefix. - Any systems you add should have a global enable/disable option in
config.sqf
, as well as additional options where necessary. - Zeus modules that you may add should be added according to the standard in
functions\zenCustomModulesRegister.sqf
. - Hold actions that you may add should be added according to the standard in
functions\applyHoldActions.sqf
. - Where reasonable, organize code as single-file functions registered in
description.ext
. - Code should be well-documented, with the minimum being comments at the beginning of any file you add detailing the author, name, parameters, and purpose.
- Code presence in initialization files like
init.sqf
should be kept to a minimum, ideally a check if your system is enabled inconfig.sqf
and then a call to your function (preferablyspawn
instead ofcall
).
My response rate will vary according to my current responsibilities, but it will be reasonably prompt.
All your derivative work must comply with the license(s) that this work is under. See the licensing section for more details.
This Mission Template and its components, while fairly modular, are intended to be used as one cohesive unit. Assuming your usage case complies with the license(s) this work is under, then you can attempt to take sections of this Mission Template and use them in different works (assuming those works comply with the few restrictions that this work places on derivative work).
However, I reserve the right to limit support for cases that integrate only some of my work, as maintaining skeletonized sections of the codebase is difficult.
Thank you to notable figures in the Arma community who have made their scripts available for use to the community at large. This mission template contains scripts copied in their entirety, modified from the original, or inspired by the original scripts made by the following:
- Quicksilver (QS_Icons Blue Force Tracking script)
- IndigoFox (fn_markCustomObjects.sqf) [BSD 3-Clause License]
- RimmyDownunder
- Gudsawn
- KiloSwiss (Simple Cease Fire Script)
- The TMF mission framework (the briefing template and readme licensing inspiration)
- Others (mostly forum/discord posters who've helped me but I've forgotten their names). This shared code is licensed under their original terms, usually APL-SA or adjacent.
This Mission Template overall, namely my first-party contributions, is licensed under APL-SA. Please pay attention to Section 3 of the license, which refers to your specific duties in attribution and maintaining its share-alike status. If you use this mission template (in its entirity or partially), please do the following:
- Under the Share-Alike requirement, if you fork/modify this mission template, please publish your work in a public GitHub repository and/or public Steam Workshop page (if applicable).
- If you fork/make a derivative of this mission template in its entirity, please use the naming scheme DERIVATIVE_TAG-TAS, where DERIVATIVE_TAG is your programmer tag or name of your work, and -TAS is my postfix.
- Under the Attribution requirement, please prominently display my name as the original author and a link back to this GitHub page.
- If you are making a derivative of this mission template and posting it to GitHub or elsewhere, this should go in your README or similar.
- If you are just making an Arma mission using this template, this can be placed as a map marker in the corner, diary entry, or loading screen author field. Your choice!
- If you create a derivative/fork of this mission template, we reserve the right to integrate any changes or additions into the main TAS mission template in accordance with the Share-Alike provision of APL-SA.
- Naturally, we will provide proper credit when doing so!
- Shoot me a message saying that you're using my work! I love seeing people using my work in the wild.
- If you can find me, feel free to send me a DM on Discord, or just make an issue on this GitHub page and use it as a chatroom! I won't mind.