Replacement Config Tutorial – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
Line 51: Line 51:
  class CfgVehicles
  class CfgVehicles
  {
  {
class SoldierWB;
class SoldierWB;
  class B_Soldier_base_F: SoldierWB
  class B_Soldier_base_F: SoldierWB
  {
  {

Revision as of 16:01, 8 October 2013

Introduction

Anyone is welcome to improve this guide by any means. Be it making it easier to understand or more comprehensive.

Required tools

Overall process

Basic preparation

  1. Download the desired addon(s) you want to use for the replacement
  2. Load it/them via a modfolder
  3. Make a config overview for the above mentioned config dump mission in the editor; cfgVehicles for infantry or vehicles, cfgWeapons for weapons (or make subsets like CAManBase, AllVehicles, Tank, Cars, etc)
  4. Extract the classes of the desired vehicles/infantry/weapons to replace
  5. Extract the classes of the replacements
  6. Clean both their content for all but the relevant parameters (see below for more information); this regex will remove all but the mentioned parameters:
^(?!.*?(^\tclass|parameterA|parameterB|etc)).*\r\n

Preparing the addon

  1. Create a new folder in your @test\addons modfolder
  2. Give the folder a descriptive name like YourTAG_ReplacementSet_With_AddonName
  3. Create an empty text file
  4. Rename it to config.cpp (make sure to have windows show file extensions)
  5. Add a cfgPatches header - see sample below
    1. Give it the same name as the folder
    2. Add the cfgPatches class dependency of the addon used for the replacement in requiredAddons definition
  6. Add the cfgWeapons/cfgVehicles body
  7. Add the desired vehicles/infantry/weapons classes you want to replace
    1. It should include the base class
    2. The definitions should be strip of all unnecessary parameters at this point
    3. Disable all the remaining parameters - they only serve as a reminder what you have to replace for a given class

Sample config:

class CfgPatches
{
	class YourTAG_ReplacementSet_With_AddonName
	{
		units[] = {};
		weapons[] = {};
		requiredVersion = 0.1;
		requiredAddons[] = {"DependencyToAddonsCfgPatchesClass"};
	};
};
class CfgVehicles
{
	class SoldierWB;
	class B_Soldier_base_F: SoldierWB
	{
//		model = "\A3\characters_F\BLUFOR\b_soldier_01.p3d";
//		nakedUniform = "U_BasicBody";
//		uniformClass = "U_B_CombatUniform_mcam";
//		hiddenSelections[] = {"Camo"};
//		hiddenSelectionsTextures[] = {"\a3\characters_f\blufor\data\clothing1_co.paa"};
//		linkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
//		respawnLinkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
//		class Wounds
//		{
//			tex[] = {};
//			mat[] = {"A3\Characters_F\BLUFOR\Data\clothing1.rvmat",...};
//		};
	};
	class B_Soldier_F: B_Soldier_base_F
	{
//		nakedUniform = "U_BasicBody";
//		uniformClass = "U_B_CombatUniform_mcam";
	};

Defining the replacement

Building the addon

Different types

Infantry