V1rU5 Posted March 18, 2017 Report Share Posted March 18, 2017 (edited) Howdy y'all! In this guide I'll be teaching you guys some of the stuff you'll need to know when making missions for our community using the scripting template (PvP and PvE). I will not be going through the Eden editor modules and how to use those to make missions, if you want to learn more about those please visit the Bohemia Interactive wiki. If you think you have already got your mission sorted and you want your mission to be put on the server please refer to the following posts: - Radio's checklist - Anden's GitLab guide My guide will require you to have the following things (As I won't be holding your hand in making a mission): - Competence - Familiarity with the Eden editor It would great if you have some familiarity with SQF scripts, but it's not necessary. Now let's get started! 1. Scripting template The PvE template (which has already been set up on most maps) can be found on the fuckknows GitLab repository under the folder: Script Templates\Zeus. Please refer to Anden's GitLab guide on how to get it As for the PvP template you can either grab it from my missions which are also on the GitLab repository under the folder: Scripted Missions\V1rU5\Assault on Kavala. Or you can grab the template of my latest mission (Currently: Cut off) here. 2. Setting up the template Setting up the template is fairly easy, create a new mission in the Eden editor and save it. Now locate the mission folder on your drive, which should be under:C:\Users\YourUserName\Documents\Arma 3\mpmissions\YourMission.YourMap\ orC:\Users\YourUserName\Documents\Arma 3 - Other Profiles\YourProfileName\mpmissions\YourMission.YourMap\ Depending on what account you use, also keep in mind that your mission could also be saved under the missions instead of mpmissions folder depending on the settings of the mission when you saved it. Now just to quickly check whether you've correctly copied and pasted the scripts, make sure that some of the following files are in the same folder as your mission.sqm: (Depending on the script template, some of these files can be left out) - initPlayerLocal.sqf - initPlayerServer.sqf - initServer.sqf - onPlayerKilled.sqf - onPlayerRespawn.sqf Visual reference: 3. Setting up compositions Currently, this paragraph is only applicable to the PvE templates as I haven't yet set up compositions for my PvP template. Setting up the compositions is just as easy as setting up the scripting templates. If you want to use compositions (which I will advise you to do, as it will help you a lot.) download the compositions from the GitLab repo under the folder: Compositions When you've downloaded the composition folder place it in your Arma 3 profiles' Compositions folder. (Please refer to paragraph 2 when trying to find that folder) There you go, you can now use the composition you've just downloaded! Visual reference: 4. Setting up the mission This is the part where I will teach you guys how to actually set up the compositions/units using the scripting templates! 4.1. Gear Config The gear config file is pretty much the same for both script templates (only the PvP one takes a little longer as you'll have to specify load outs for both BLUFOR and OPFOR). The script file's path is as follows: Mission.Map\a2k\gear\cfg_player.sqf The contents of the file pretty much speak for itself, however, please follow the following rule (LennyGasm) in order to prevent fucking things up: - You do not edit the variable names which start with a '_' I can't stress this enough, please do not do dis. If you do you'll make a kitten cry. (Or a puppy depending on what kind of person you are). Now the tedious part of setting up a gear script is that you'll have to manually go through the arsenal, press ctrl + c to copy your current loadout in text format and paste it in notepad or a similar program to find out the name of the piece gear you want to have. 4.2. Briefing The briefing file is also similar for both the PvP and PvE templates, you can find the file at the following path: Mission.Map\briefing\txt_brf.sqf When opened change the values of the variables. Bear in mind that variables that contain brackets ('[' and ']') after the equals sign are arrays. That means that you'll have to place each line between quotation marks (' " ') and place a comma at the end (','). 4.3. Units Both the PvP and PvE templates require you to place CSAT forces for OPFOR and NATO forces for BLUFOR, don't worry as the gear script will correctly set the gear for you. 4.3. PvE I'll work on a more detailed guide later, however, once you've downloaded the compositions you can just place those on the map. That should pretty much give you everything you need! 4.3. PvP Setting up missions using my PvP template is quite a bit more tedious than setting up a mission with the PvE template, as it requires a little bit more information in order to execute all the scripts correctly. Prepare for lots of subparagraphs! 4.3.1. Squads 4.3.1.1 Placing When placing squads in the editor, you'll have to assign a variable name to the squads in order for the group markers to work similarly to the PvE template. However, the PvP template requires you to also add the faction part (as you'll see a lot more in this part of the guide) to the variable name. As an example, Alpha squad in BLUFOR will have the variable name "blu_f_Grp_A" whereas OPFOR will have "opf_f_Grp_A". This naming convention is used for a lot in the PvP template, so you'll be seeing a lot more of this! 4.3.1.2 Modifying If you think you're up for the task you could also modify the existing script in order to add more squads or modify the existing squads. The script you'll want to modify is found at the following path: Mission.Map\f\groupMarkers\f_setLocalGroupMarkers.sqf At the bottom of the script you should see the following piece of code: [missionNamespace getVariable format ["%1_Grp_A", _unitfaction], 1, "A", "ColorRed" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_B", _unitfaction], 1, "B", "ColorBlue" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_C", _unitfaction], 1, "C", "ColorGreen" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_D", _unitfaction], 1, "D", "ColorOrange" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_MRTR", _unitfaction], 5, "MRTR", "ColorBrown" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_PRHT", _unitfaction], 4, "PRHT", "ColorBrown" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_KNGT", _unitfaction], 6, "KNGT", "ColorUNKNOWN"] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_DGGR1", _unitfaction], 8, "DGGR1", "ColorBrown" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_DGGR2", _unitfaction], 8, "DGGR2", "ColorBrown" ] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_RPTR", _unitfaction], 9, "RPTR", "ColorUNKNOWN"] spawn f_fnc_localGroupMarker; [missionNamespace getVariable format ["%1_Grp_PLTHQ", _unitfaction], 0, "PltHQ", "ColorUNKNOWN"] spawn f_fnc_localGroupMarker; I will quickly go through one of the lines and tell you what you need to know when you want to change stuff: [missionNamespace getVariable format ["%1_Grp_A", _unitfaction], 1, "A", "ColorRed"] spawn f_fnc_localGroupMarker;_Grp_A: This is the part of the variable name that comes after the player faction (see 4.3.1.1), this is the part you really only want to change when adding a new squad. (e.g. after copy and pasting the line)1: This is the icon type for the squad, you can find out what the number means in the script fn_localGroupMarker.sqf, which is in the same folder as the previous script, at line 32."A": The name as displayed on the map, next to the marker."ColorRed": The color of the marker, see the available colors here. (You can also use RGBA values if I'm correct, however, I'm not sure whether the script will allow those.) 4.3.2. Vehicles 4.3.2.1. Placing Similarly to placing and setting up squads, the PvP template requires you to add the vehicle's faction in front of its variable name. ("blu_f_NAME" & "opf_f_NAME") Please refer to paragraph 4.3.1.1 for this. 4.3.2.2. Modifying Again, similarly to modifying squads you'll have to do a bit of tweaking of the vehicle marker script (Mission.Map\a2k\scripts\vehMarkers.sqf) While writing this guide I've found out that I could've written the squad vehicles part a little bit better. However, as the initial way I had written it is much simpler to understand, I'll run with it for the sake of this guide. VehicleList = [ ["b_motor_inf", "ColorKhaki", [ "HQV", "AV", "AV1", "AV2", "BV", "BV1", "BV2", "CV", "CV1", "CV2", "DV", "DV1", "DV2" ]], ["b_mech_inf", "ColorGrey", [ ["DAGGER", "DGR", 4] ]], ["b_armor", "ColorBlack", [ ["BROADSWORD", "SWD", 4] ]], ["b_maint", "Color4_FD_F", [ ["REP", 2] ]], ["b_med", "Color4_FD_F", [ ["MED", 2] ]], ["b_air", "Color3_FD_F", [ ["HAWK", "HWK", 4], ["FALCON", "FLC", 4], ["CONDOR", "CDR", 4] ]], ["b_plane", "Color4_FD_F", [ ["EAGLE", 4] ]] ]; The code snippet above is what I used for my 2nd PvP mission, I will be explaining how this works using the b_motor_inf and b_air types as examples. when placing all of the array brackets on a separate line, you'll get a clearer overview of the parameters. [ "b_motor_inf", "ColorKhaki", [ "HQV", "AV", "AV1", "AV2", "BV", "BV1", "BV2", "CV", "CV1", "CV2", "DV", "DV1", "DV2" ] ] The first parameter "b_motor_inf" is the marker type (for more info visit this link). The second parameter "ColorKhaki" is, you guessed it, the color of the marker. The last parameter, which is an array, are the vehicle variable names the script will look for when creating the markers. You have two (well technically speaking you have more, but we'll keep it at two) options for specifying the variable names. The first option is shown above in the little code snippet, in which you can just simply specify an array of variable names and the script will look for those. However, the script also allows for a more elegant way of configuring this. Which brings us to option two. [ "b_air", "Color3_FD_F", [ ["HAWK", "HWK", 4], ["FALCON", "FLC", 4], ["CONDOR", "CDR", 4] ] ], The second option allows you to specify more arrays, within an array. Arrayception! Alright, so let's break this down. ["HAWK", "HWK", 4]HAWK is the overarching name of the vehicle group.HWK is the label that is shown on the marker.4 is the number of vehicles in this group. You can also leave out the first parameter, in which case the script uses the same string for both the name of the vehicle group and the marker label. 4.3.3. Objectives Objectives in my PvP template require you to place markers on the map and give them a variable name. When placed, you'll have to edit the following variable in the initMissionMarkers.sqf file (which you can find in the root folder of your mission): private _objective_list = [ // marker name, bluefor text, opfor text, zeus text ["MRK_OBJECTIVE_1", "Capture the airfield", "Defend the airfield", "OBJ: Airfield"], ["MRK_OBJECTIVE_2", "Capture the FOB", "Defend the FOB", "OBJ: FOB"] ]; The parameters are as follows: - The variable name of the marker ("MRK_OBJECTIVE_1") - The blufor marker text ("Capture the airfield") - The opfor marker text ("Defend the airfield") - The zeus marker text ("OBJ: Airfield") And that's it really, the markers should now be visible with the proper text when playing your mission. !IMPORTANT! The current version of the PvP script template does not allow you to have side specific objectives. I'm currently in the progress of adding that for my next mission, stay tuned. 4.3.4. Misc All of the stuff that doesn't really require its own sub-sub-paragraph will be placed in sub-sub-sub-paragraphs here. 4.3.4.1. Team specific markers Not to be mixed up with team specific objective markers, these markers are only visible to the team you assign them to. In order to edit/add these markers go to the initMissionMarkers.sqf file and edit the following variable: // team specific marker list private _team_marker_list = [ ["BLU_MRK_HELI_REPAIRS", "blu_f"], ["BLU_MRK_JET_REPAIRS", "blu_f"], ["BLU_MRK_VEH_REPAIRS", "blu_f"], ["BLU_MRK_SUPPLIES", "blu_f"], ["OPF_MRK_HELI_REPAIRS", "opf_f"], ["OPF_MRK_JET_REPAIRS", "opf_f"], ["OPF_MRK_VEH_REPAIRS", "opf_f"], ["OPF_MRK_SUPPLIES", "opf_f"] ]; The first parameter of each entry is the marker variable name and the second parameter is the faction you want to show it to. 5. Postface I hope this guide was helpful. If you still have questions feel free to ask them and I'll update this guide accordingly. Edited March 19, 2017 by V1rU5 1 5 Link to comment Share on other sites More sharing options...
Lenny Posted March 19, 2017 Report Share Posted March 19, 2017 Very good guide V1rus, let me know when it is ready and i'll happily unhide it Link to comment Share on other sites More sharing options...
anden3 Posted March 20, 2017 Report Share Posted March 20, 2017 (edited) This will need to be updated, as my marker script has a lot of new features, and I have written a new gear script.@V1rU5 Feel free to talk on me later today about it (: Edited March 20, 2017 by anden3 Link to comment Share on other sites More sharing options...
V1rU5 Posted March 20, 2017 Author Report Share Posted March 20, 2017 41 minutes ago, anden3 said: This will need to be updated, as my marker script has a lot of new features, and I have written a new gear script.@V1rU5 Feel free to talk on me later today about it (: Will do! Link to comment Share on other sites More sharing options...
Recommended Posts