- Notepad++, Kate, Visual Studio Code (No longer recommended since Microsoft started adding AI slop to it), or a similar code editor. While Notepad can work, its very poor for editing configs and similar text documents.
- Follow this link to the TCS Github and download the newest release. Make sure to grab both the compositions and framework zip files
- Once downloaded, extract the zip files to the location of your choice
- Move the contents of the compositions folder into your profile “C:\Users<username>\Documents\Arma 3 - Other Profiles\<profilename>\compositions”
- Create a new mission in editor, and save it using TCS naming standards “[TAG]_OP_Example_V1_18APRIL17” - Preferred mission tags are FRI SAT COOP PVP TEST
- Find your mission folder at C:\Users<username>\Documents\Arma 3 - Other Profiles\<profilename>\mpmissions
- Copy all files from the framework directory to your mission directory. All the copied files and folders should be in the root directory of the mission
- Open your mission in editor, and open General under the attributes tab. Make sure that Title Author and Picture are blank
- Open the description.ext in your mission folder and edit the following lines:
author = "Your Name";
OnLoadName = "Your Op Name";
OnLoadMission = "Tag line for your mission";
loadScreen = "load.jpg";
- Save whichever picture you’d like for your load screen image in your mission folder as load.jpg
- Open your mission folder, navigate to
...\tcs\briefing, and open the briefing file you want to edit.
- Check the Arma 3 Wiki page for formatting syntax and more information
- Open your mission folder, open
...\CfgDebriefing and define the endings as you see fit.
- The endings can be activated either by triggers using
[x] call f_fnc_mpEnd;, replacing the x with the number of the ending you wish to activate, or by manual triggering by in the map screen in game.
- Open your newly created mission
- In the Assets browser, click the “Compositions” tab and then the “Custom” tab
- Place the TCS_Template_MKIV_Side template down for any sides you’d like to include as playable for your mission, use TCS_Template_MKII_Side_Supports for any support roles you need
- Delete any roles you don’t need
- If the template doesn’t have all the roles you need, you can easily add new ones
- Place the units you’d like to include
- Open the group’s attributes menu and include the following:
this setGroupIdGlobal ["GRP"]
[this, "Type", "GRP”, "ColorACOLOR"] call TCS_fnc_initGroup;
- Replace GRP with the group name you’d like to appear on the map for the group
- Replace type with “Lead, Fireteam, Support, Launcher, Mortar, Engineer, IFV, Armor, Recon, Helicopter, or Plane” depending on what best describes your group
- Replace ACOLOR with one of the supported Arma colors: Arma 3 Wiki CfgMarkerColors
- Open the group leader’s attributes menu, and after their role add @Group Name (for example, “Team Leader@Delta 1”)
- Select the units you’d like to edit (I start by making a generic loadout for everyone, then tweak individual roles. You can select all the units with the same role by right clicking a unit, and opening Select > Select Matching Classes (View) or (Selected))
- Right click one of the selected units (the unit you right click on will be the one you edit, the final loadout will apply to all selected units though), and open Edit Loadout > ACE Arsenal
ADD BASIC LOADOUT SUGGESTIONS HERE
The basic loadout for a squad is a fairly simple, yet key componet of your misson.
We can break down the basic equipment into four key componets: weapons, ammo, medical, and tools.
- Rifleman - A Rifle of some kind, think M16, M4, AK74M. Keep in mind the expected engagment ranges for your mission, and make sure you provide something that can be effective at those ranges
- Automatic Rifleman - High cyclic rate rifles, capable of providing a high volume of sustained fire, think M249, RPK.
- Rifleman AT - Same as the Rifleman, except they get a Light Anti Tank launcher. This could be something like a LAW, or a RPG.
- Combat Life Saver - The same rifle as the rifleman, but sometimes given the carbine version of said rifle to save on weight for medical supplies.
- Team Leaders/Squad Leaders - Usually gets the same weapon as the Rifleman, exept its commonly the version with a under barral granade launcher.
- Granades: usually, every player will carry two frag and two smoke. Leadership roles may carry more smoke, and in different colors to denote LZs, friendly positions, and enemy positions.
What ammo you give out will of course depend on what weapons you choose to give a squad. Make sure you give the correct ammo for the weapon.
- Rifleman - Typically, 450 rounds, or 15 30 round mags make up the basic load out of a rifleman.They also carry extra ammo for the AR and maybe some extra rifle mags for the rest of the squad. Depending on weight, the rifleman usually carries an extra 200 rounds of AR ammo at a minimum.
- Automatic Rifleman - 600 rounds, 6 100 round boxes or 3 200 round boxes, is the typical on hand load out.
- Rifleman AT - usually carries the same load out as the rifleman, except for the AR ammo. If carring a single use launcher like the LAW, usually caries more rifle ammo for the rest of the squad as well.
- Combat Life Saver - Just like the Rifleman AT, carries the same amount of primary ammo as the Rifleman, but usually does not carry any extra ammo for anyone else.
- Team Leaders/ Squad Leaders - In order to adiquitly use the under barrel granade launcher, carries a little less than the standard 450 rounds of the Rifleman. Typically carries 10 granades for the UBGL.
-
Personal Medical for all units are the same. This should all fit inside the uniform of every player.
3x basic bandages
3x packing bandages
1x 250 ml fluid of your choice
2x epi
2x morphine
2-4x torniquet
2x splints
-
CLS will get additional bandages and fluids, while CO Medic will get even more than the CLS. Remember, the CLS is a rifleman first.
CLS:
10-15x every bandage
2x 1000 ml fluid
5x 500 ml fluid
5x 250 ml fluid
5-10x epi
5-10x morphine
6x torniquets
6x splints
Surgical Kit
Medic:
20x every bandage
5-10x 1000 ml fluid
5-10x 500 ml fluid
5x 250 ml fluid
10-15x epi
10-15x morphine
6x torniquets
10x splints
Surgical Kit
Every player should be equiped with these tools, however, tailor this to your mission, as some themes will lead to a lack of or more advanced equipment/tools.
- Map
- Compass
- Watch
- Short Range Radio (343, Bofang)
- Map Tools
- Map Light
Leadership roles such as Squad Lead, Team Lead, and any units in Command Squad should have long range radios (152), and binoculars.
- Include more or less as your mission demands. Some mission makers like to give players only the essentials, others like to throw in the kitchen sink and let people ditch what they don’t want, others base theirs on real-world equipment. All these approaches work, find what works for you.
- Choose the vehicles you want, and place them without crew (hold alt while placing them)
- For air vehicles, you can adjust their weapons by opening their attributes menu and choosing which weapons go on each pylon
- You can also adjust the initial load-out of a vehicle by going to equipment storage under attributes and adding or removing items (use your arrow keys to quickly add multiple items)
ADD VEHICLE RESPAWN INFO HERE
- Define Independents allegiance
- Set Zeus to be able to edit spawned objects
- Setup Intro Text (Optional)
- Setup Establishing shot (Optional)
-- You can place a trigger where you want to camera, then use the X/Y coords in the establishing shot (Z doesn’t matter, put in the Z coord needed for the camera in “Altitude”)
-- Radius is how far the camera is from the coords you gave. It will rotate around this like a drone. 0 radius holds the camera still.
-- Angle is the Z rotation of the camera, looking towards the coords you defined
- Setup date, time, and weather (Do not leave on the default, it will add broken wispy clouds and generally looks incredibly boring)
- Be mindful of wind, setting this to high can create hurricane class winds, rendering smoke grenades unusable and just making the game terrible to play
- Keep in mind moon phases when doing night missions. Full moons are essentially day-time, while moonless nights are dead black.
- If overcast is higher than .7 then rain will occur sporadically, unless you override it manually
CHECK THIS WHOLE SECTION
- Set game type (Useful for classifying missions in OCAP)
- Disable AI for player units
- Enable spectator
- Show the respawn counter
- Set the respawn delay
- Check Save Loadout
- Place a marker on the map with the variable name “respawn_west” where you want Blufor to respawn (use “respawn_east”, “respawn_guerrila”, and “respawn_civilian” for other factions
- Disable revive mode
- Garbage collection is currently handled by mission framework
- Simulation
- Place a Simulation Manager module if needed or use HBQ
- Note that the simulation manager does not do anything in Singleplayer, It does work in the in-editor Multiplayer and Dedicated Multiplayer
- Make sure to set objects that do not need to be simulated to Simple or Disable Simulation (extra trees, decoration vehicles that won’t be blown up)
- If you have air vehicles make sure they are not surprised by Dynamically simulated elements (proper simulation distance)
- When designing a mission, consider the flow of your objectives and the amount of players. Make sure to consider the amount of objectives and the distance between them, whether they make logical sense, and the amount of time you expect them to take
- Think about what enemies you're placing to fight against the players, their firepower, and how much they can slow or cripple your players movement
- Make sure to have logical places for enemies to reinforce from, or at least hide your monster closets well so that enemies don't just appear from places that make no sense
- Take into account Arma AI, and make sure to adjust sight lines and lines of advance appropriately
- While not strictly necessary, taking time to decorate your objectives and AO can make missions feel less empty and artificial, and we have mods that help speed the process along. ZEC, ZECCUP, and ZEI are all useful tools for quickly making AOs feel more lived in
Mission design is touched on more in the Mission Concepts section below
- A trigger is a placeable editor item that causes something to happen when certain conditions are met
- Name your triggers in their variable name box. Use something simple and descriptive (i.e. “pp_trig_01” for a player present trigger)
- You can adjust trigger size in the attributes menu, or by using the area widget (shortcut “5” by default). Some triggers don’t need an area, some do.
Types of Triggers
- None: This does only what you put in the activation field
- Guarded by BLUFOR, OPFOR, or Independent: The location covered by this trigger will be guarded by units of the appropriate faction if they’re given a ‘Guard” waypoint
- Skip Waypoint: Will cause AI to skip the waypoint linked to the trigger if the conditions are met. Useful for hold and guard waypoints.
- End #1-6: Triggers the associated ending. Do not use this. Use the function mentioned in the endings section of this guide.
- Lose: Ends the mission with a failure screen
- Activations: Defines how this trigger is “set off”, some can be further edited via “activation type”
- Activation types: Further modifies how the trigger is “set off”
- Repeatable: Yes or no, only use repeatable if you want the trigger to go off repeatedly
- Server Only: Generally this should be checked. Only leave it unchecked if you have a good reason to do so.
- Condition: The conditions under which the trigger will be “set off”. “this” refers to the conditions you have already set above. You can script in further conditions here.
- On Activation: What happens when the trigger conditions are met
- On Deactivation: What happens when the trigger conditions are no longer met
- Timer: Sets the amount of time necessary for the trigger to be “set off”. Countdown continues no matter what, timeout resets if the condition is no longer met. These are an estimate, because they are tied to server framerate.
- Use tasks to create visual goals for the players
- Place them from Assets > Systems > Intel
- To create a new task, use Create Task (tying it to a trigger can create a task only once certain conditions are met)
- Attributes:
- Owner: Sets the people who are tied to the task. For most uses, a specific side or All Playable Units will be the best choices.
- Task ID: Sets a variable name that refers to this task specifically for other systems or scripts
- Parent Task ID: If you put the Task ID from another task in this box, it will make your task “subordinate” to that original task
- Title: The title of the task show in the diary
- Description: Explain your task in this box
- Marker: IDK actually
- Destination: If you choose a destination, the task will appear on the map there.
- State: The state of the task at creation
- Task Type: Gives the players an indication of what the task will be
- Show Notification: Self explanatory
- Set Task Description, Destination, and State can all be placed and synced to triggers to let players know additional details, or updates as tasks unfold. Using systems of logic gates, you can create very complex tasks with multiple possible outcomes this way.
- Enemies can be spawned via Zeus, but preferably you should be using HBQ. The basic guide for HBQ usage can be found here
- If you decide that you would rather Zeus, find a co-zeus to help manage your mission flow, as it can be hard to keep tabs on multiple squads operating independently, and can make setting up more complicated manuevers that much easier.
Many functions regarding locality change behavior when played in Local Multiplayer versus Multiplayer Dedicated so it is important to test in the Dedicated environment
- Export your mission from the editor but do not select Binarize Mission, you can find your exported mission in
(Your Steam Directory)\steamapps\common\Arma 3\MPMissions
- Upload your mission to the TCS Test Server via Discord (check the mission making channels in Discord for info)
- Connect to the Test Server, login as admin, switch to your mission, and test your mission for any issues you may be concerned about
Things to look for while Testing
- Make sure all triggers work (usually all triggers should be run on server only)
- Make sure all triggers have names
- Make sure friendly and enemy spawns work
- Make sure simulation manager/dynamic simulation works
- Make sure tasks and endings work
- Make sure audio works
- Make sure players don't have double radios and medics double surgical kits. Check fn_configure for those settings.
- Check your mission's respawn type in description.ext and fill the other details there (mission name, author, image, etc)
- Check if the launchers you give people are actually loaded.
- Remember toolkits (and backpacks) if you want vehicles to be repaired by their crews
- Does your mission have a respawn spot? Add variable name "respawn_west" to a marker on the map.
- Check fn_briefing_west.sqf (or fn_briefing_east.sqf if you are OPFOR) in tcs\briefing in your missions if you made some kind of a briefing in-game.
- Check CfgDebriefing.hpp if you want any custom Ending subtitles.
- Don't forget to disable AI and set game type for the mission.
- Launch your mission in singleplayer to see if everything works (Go to the op of Eden Editor > Play > Play in Singleplayer (SP). Also do the same for Multiplayer. Especially check if your triggers work. Then check it in the test server.
- Double-check that your mission is in the correct modlist
- Blow up every vehicle in Zeus mode with the End key if you want to see if your respawning works for your vehicles.
Once you have tested your mission and you are sure it is ready, you should export your finalized mission and upload it to the TCS Main Server via Discord. When exporting your final mission, make sure to binarize the file as it cuts down on file size.
Before I create a mission, I usually fly around a map in the editor and think of OP ideas and put comments in on possible objectives, FOB (Forward Operating Base) or starting points.
Once you figure out where you want to work, I generally think about why I want to work there. What type of objectives did you want to do? Try to start off with simple objectives like clearing out an AO (Area of Operations).
Did you want to do a one life mission? How about a unlimited respawn? Depending on your choice, this will help you determine support assets, logistics and objective types as well as enemy scaling (When you get to that point). Check the General and Multiplayer settings at this point.
After completing step A. try to find out what type of support assets you will need to assist in the capturing of the AO.
This is where FOB planning in step A is important. Do you want to drive into the AO? Do you want to fly? Depending on how you answer those questions, you can determine how far away you want your FOB to be from your objectives.
Once you have created your mission file you can then start to work on your FOB, Base, FARP, etc. You can call it whatever you want, but you can build one, use a preset composition, or use map objects, it’s up to you. Here is a list of things you should plan for when creating a base.
-
Logistics - The most important part of your base is the means to supply the soldiers and assets. When it comes to assets, you should always think about rearm, repair and refuel. Simplest solution is to add the NATO rearm, repair and refuel trucks. But you should always have something available even if you don’t think it is needed. Stock your vehicles with ammunition and medical supplies and add weapon crates around base (they can be moved with ACE interact). Also, the means of transporting those supplies is important as well. You’re better off having what you need than not having it at all.
-
Location - I briefly covered this in the planning phase, but you should consider how far your base is from the objective. Having a large gap between your base and AO with only vehicles to get there, will make for a long boring drive. Also, vice-versa, having a FOB close to the enemy with air assets from transport will give the pilots problems when taking off. If you have respawns as well, you don’t want to make people have to travel long distances. Picking an ideal location for a FOB is difficult. But with the Hide Map Objects Module, it’s much easier to create an idea base location.
-
Accessibility - Accessibility as in make sure vehicles can leave your base without travelling through a forest to get to the road. Or having enough space for your helicopters to land and not a tiny landing pad in the middle of a forest. Your pilots/drivers will appreciate this.
Now, it’s not a mission without an enemy to be fighting. This is probably the most difficult part of building a mission. There are several things you want to be aware of when setting up the enemy forces.
-
Volume - This is a struggle for both new & experienced mission makers. Planning on OPFOR to oppose an average of 20 to 30 skilled (somewhat) players. You don’t want to spawn too many since it will impact frames if you are not using any type of caching or unit spawning techniques. You also don’t want to spawn in too little otherwise the mission will end much shorter than anticipated. Working with other mission makers and have them look into your mission folder. Most experienced mission makers will give you feedback and let you know if you need to tone the volume of AI up or down.
-
Caching - Simulating units within a certain distance of the player helps improve performance. This helps moderately with frames but works better when paired with unit spawning. Caching is also much easier to setup. Whether you are using an external script, F3 or Simulation Manager Module for caching, that is up to you. It is difficult to gauge simulation ranges if you are planning on having in your mission. If you are planning on having large empty areas like Altis or Takistan it may be difficult to make it far enough away for players to not see the enemy just appear. As a side note, when units are being simulated, FSM is still active and will have a minor impact to frames.
-
Unit spawning - This can be done through in game code or scripts. Scripts are usually easier to work with but require some research and understanding. Work with other mission makers to help give you an understanding of how to set them up and how to make them work..
-
Strategic Placement - Strategic placement of enemy units can make up for a fireteam or even a squad of enemies if you place them effectively enough. Having a fixed MG in an elevated position surprising a choke point can be the most effective means of causing havoc. Having strategically placed units can help with performance since you will need less AI to fill the gap. Just remember, when you place those types of units, balance how effective they could be versus how unfair it could be. If you don’t want your mission to be a bloodbath, try to not strategically place too many of these units. You can always test the scenario if you want to see how effective these units are. This also applies to mines. You can always say there are mines in an area (even if you didn’t actually place any) to help steer the BLUFOR units in the intended direction. This is good for limiting commands decision to avoid certain threats. Which brings us to the importance of balance.
-
Balance - Generally, you don’t want missions to be one sided. Try to always have a balance between BLUFOR and OPFOR. If you are giving BLUFOR a tank, give OPFOR rpgs or mines. If you OPFOR has a helicopter, give BLUEFOR the means to take it down.
This also applies to placing units in a fireteam. Sometimes enemy units will have mounted grenade launchers on their rifles or RPG’s within a fireteam. You don’t want to just copy and paste that group a bunch since now you will have several fireteams with a lot of grenade launchers and RPG’s. I can guarantee your mission will be a bloodbath. Make sure there is diversity in the enemy loadouts so BLUEFOR doesn’t get immediately overwhelmed by GP and RPG fire.
You don’t want missions to be one sided, unless your goal is to give everyone hell. Just know that you are also potentially putting new people in a shitty situation/ or creating drama within the group if something doesn’t turn out well. Every so often, high difficulty is good but not unfair punishment or high difficulty consecutively across missions.
At this point you have most of the essentials of the mission complete. Now, you want to start giving direction to command about what they are trying to accomplish. Objectives and Tasks need to be assigned. You can do this in three ways.
- Use the createTask and setTaskState modules. (I call this the finger painting technique since you are just syncing a bunch of modules and triggers together and it is visibly quite messy. This is also my prefered method)
- Code it into triggers. (Old fashioned way and much cleaner)
- Just place map markers and use Zeus to close the mission when you say it's complete. (C’mon try to put some effort in! This is perfectly fine but it’s much cleaner if you can actually create tasks and have the game close out when those tasks are complete)