====== Common Errors ====== ArmA common errors in configs which you should and need to avoid at all cost. ===== Changing the inheritance of existing classes ===== For example on many many addons (even in BIS material) you'll see this [[arma:arma.rpt|arma.rpt]] error: Updating base class ->MGunCore, by ca\weapons\config.bin/cfgWeapons/MGun/ This happens because an addon changes the inheritance of a class that has already been defined. In the example above, BIS themselves does this in the ''Addons\weapons.pbo'' addon, where the basic class ''MGun'' is altered from having no parent class to having the class ''MGunCore'' as the parent. The warning is printed like this: ''Updating base class //OldClass//->**//NewClass//**, by \path\to\the\config.bin/CfgSomeClass/**Classname**'' This means that ''**Classname**'' was changed from being based on the old base class (''//OldClass//'') to the new base class (''**//NewClass//**''). (In the ''MGun'' [[arma:arma.rpt|arma.rpt]] error example, ''//OldClass//'' was empty, ie ''MGun'' did not have a parent class.) How do you avoid this warning? It's simple: **don't change the inheritance of existing classes** ===== Altering existing classes ===== Sometimes you see addons that not only alters the inheritance of existing BIS classes, but then proceeds to make changes to the classes themselves. An example of this can be seen below: Bad config: class MGunCore; class MGun: MGunCore { displayName = "MyCoolGun"; }; That's just bad form. What you should do instead is create your own machine gun class and let it inherit from the existing BIS class. Good config: class MGun; class TAG_MGun: MGun { displayName = "MyCoolGun"; }; ===== Other common errors ===== Updating base class ->Default, by ca\anims\characters\config.bin/CfgMovesBasic/DefaultDie/ Updating base class ->Default, by ca\anims\characters\config.bin/CfgMovesMaleSdr/States/Crew/ Updating base class CannonCore->Default, by \config.bin/CfgWeapons/Cannon30/ Updating base class CAWorld->TAG_baseWorld, by \config.bin/CfgWorlds/Intro/ Updating base class Civilian->SoldierWB, by \config.bin/CfgVehicles/SoldierWCaptive/ Updating base class controls->, by \config.bin/RscDisplayArcadeMap/controls/ Updating base class controls->, by \config.bin/RscDisplayLoading/Variants/Loading_East1/controls/ Updating base class DefaultClutter->, by \config.bin/CfgWorlds/Intro/clutter/GrassGeneral/ Updating base class Face1->, by \config.bin/CfgFaces/Man/Face10/ Updating base class HeavyReammoBox->Land_garaz_s_tankem, by \config.bin/CfgVehicles/HeavyReammoBoxEast/ All can be avoided by not touching these base classes, just inheriting from them into your own new classes.