Jump to content
Sign in to follow this  
[frl]myke

Missing addon although addon is there

Recommended Posts

Ok, i guve up on this one. I keep getting bug reports about my missilebox which says "Addon 'GLT_Missilebox_config' is missing" although i know for sure (at least from one) that the addon is loaded and works.

Info: i've splitted the addon into 3 pbo's:

GLT_Missilebox.pbo - containing all models and textures.

GLT_Missilebox_config - contains cfgAmmo, cfgMagazines and cfgWeapons for OA/CO

GLT_Missilebox_A2_config - contains cfgAmmo, cfgMagazines and cfgWeapons for A2 only

So people have to use the GLT_Missilebox together with the respective config pbo.

The cfgPatches part of the GLT_Missilebox (models only):

class CfgPatches {
class GLT_Missilebox {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.100000;
	requiredAddons[] = {};
};
};

The cfgPatches part of both config pbo's:

class CfgPatches {
class GLT_Missilebox_config {
	units[] = {};
	weapons[] = {
		"GLT_AIM9M_Launcher",
		"GLT_AIM9X_Launcher",
		"GLT_AIM120_Launcher",
		"GLT_AIM7_Launcher",
		"GLT_AIM54_Launcher",
		"GLT_R3_Launcher",
		"GLT_R27_Launcher",
		"GLT_R73_Launcher",
		"GLT_R77_Launcher",
		"GLT_R550_Launcher",
		"GLT_AGM114_Launcher",
		"GLT_AGM65_Launcher",
		"GLT_AGM84_Launcher",
		"GLT_AGM88_Launcher",
		"GLT_CH15_Launcher",
		"GLT_CH29L_Launcher",
		"GLT_CH29T_Launcher",
		"GLT_CH59_Launcher",
		"GLT_AM39_Launcher",
		"GLT_AS4_Launcher",
		"GLT_CH31_Launcher",
		"GLT_FAB250_Launcher",
		"GLT_FAB500_Launcher",
		"GLT_MK81_Launcher",
		"GLT_MK82_Launcher",
		"GLT_MK84_Launcher",
		"GLT_AGM154_Launcher",
		"GLT_GBU12_Launcher",
		"GLT_GBU53_Launcher",
		"GLT_KAB250_Launcher",
		"GLT_KAB500_Launcher",
		"GLT_KAB1500_Launcher"
	};
	requiredVersion = 0.100000;
	requiredAddons[] = {"CAWeapons", "CAAir", "CATracked", "GLT_Missilebox"};
};
};

So why the hell are people getting the "GLT_Missilebox_config is missing" message?

Share this post


Link to post
Share on other sites

Hey Myke.

The message that it is missing, can mean two things;

A) the addon that is mentioned, does not exist,

or B) the addon that is mentioned is used in the mission, without being activated first.

All addons that create new classes in CfgAmmo,Weapons,Magazines,Vehicles, and are used inside a mission (placed in editor, or scripted etc),

need to be added to the mission.sqm's addons[] list.

Also, you can prevent the message from appearing by setting up a;

class CfgAddons {
   class PreloadAddons {
      class glt_missilebox {
         list[] = {"glt_missilebox_config"};
      };
   };
};

This will always assume your addon is loaded, and not add itself to mission.sqm addons[], or complain.

There is also the scripting command 'activateAddons', however this has several downsides, one of them is that every execution of the command, deactivates the previous activated addons :D

On a side note, you can also get the warning message if the addon mentioned is not creating new classes, but overriding existing classes.

If that is the case, then it can mean two things:

A) the requiredAddons[] is incomplete (all addons of which you override or inherit classes, need to be specified in there).

Or B) the inheritance tree is broken, e.g originally class Helicopter: Air {}; while in the config is defined: class Helicopter: AllVehicles {};.

Edited by Sickboy

Share this post


Link to post
Share on other sites

Thanks a lot Sickboy.

Not sure though in which config this cfgAddons goes, hopefully into the configs pbo (GLT_Missilebox_config.pbo & GLT_Missilebox_A2_config.pbo) else i guess there is a problem since the GLT_Missilebox can have 2 different config addons, depending on ArmA version used.

Also, is there somewhere a site which explains cfgAddons a little more (like BIWIKI but there is nothing, obviously)?

Share this post


Link to post
Share on other sites

I found the cause of the error. The GLT_Missilebox_config doesn't write itself into the mission.sqm addons part. Makes sense since in the editor people just place the F-16 and not the weapons itself.

But how do i force it so whenever a F-16 is placed, the GLT_Missilebox_config is added to the addons section in the mission.sqm?

The cfgAddons class didn't solved this isse:

class CfgAddons {
   class PreloadAddons {
      GLT_Missilebox[] = {"GLT_Missilebox_config"};
   };
};

Have this in the GLT_Missilebox_config config but doesn't help at all, it throws still "You cannot play/edit blah" error messages and also doesn't write itself to the mission.sqm with this.

Edited by [FRL]Myke

Share this post


Link to post
Share on other sites

This solved the problem for the RKSL Flares:

class cfgAddons
{
access=1;
class PreloadBanks {};
class PreloadAddons
	{
	class LaserSysAdded
		{
		list[]=
			{
			"RKSL_LaserSys"
			};
		};
	};
};

RKSL_LaserSys being the cfgPatches class.

Share this post


Link to post
Share on other sites

Hmm...still no joy.

class cfgAddons {
access=1;
class PreloadBanks {};
class PreloadAddons {
	class GLT_MissileboxAdded {
		list[]= {"GLT_Missilebox_config"};
	};
};
};

Tried this in the falcon's config aswell in the GLT_Missilebox_config aswell but still, it doesn't register the GLT_Missilebox_config to the addons section in the mission.sqm.

Share this post


Link to post
Share on other sites
Myke;1814782']Hmm...still no joy.

Tried this in the falcon's config aswell in the GLT_Missilebox_config aswell but still' date=' it doesn't register the GLT_Missilebox_config to the addons section in the mission.sqm.[/quote']

It is exactly (apart from the unneeded access and preloadbanks) what you already did before by my example, and the point of it is exactly that it doesn't slip into mission.sqm, AND doesn't pop up with the message 'cannot load mission missing addons...'.

If you still have it pop up, are there any Updating base classes messages in the RPT?

I notice you don't have any CAWeapons_E, CATracked_E etc (OA) addons in your requiredAddons; does the addon not inherit from any OA classes?

Is there somewhere the full config available for analysis?

I am unsure if the script command 'activateAddons', also messes up addons preloaded through the cfgaddons preloadAddons,

but it would be worth to investigate if the mission or used addons with which you can repro the problem, perhaps use this scripting command.

Edited by Sickboy

Share this post


Link to post
Share on other sites

GLT_Missilebox_config config (no other content in this addon):

http://pastebin.com/wCr4ax7R

GLT_Missilebox config (contains models and textures):

http://pastebin.com/iQpcj6FQ

glt_f16_oa_config (addon contains config file and stringtable):

http://pastebin.com/CgDBdE08

GLT_Falcon (contains model and textures):

http://pastebin.com/ZUP2qk6S

Share this post


Link to post
Share on other sites

What are the repro steps?

Only thing I can think of right now is that glt_missilebox_config is missing from requiredAddons of the falcon_oa addon, yet I am unsure if it matters.

Ah but the addon doesn't use any classes from missilebox, until you script it I guess? hmm..

Lastly, recommended is not to add the PreloadAddons entry for the missilebox_config anywhere, but in the missilebox_config addon.

Edited by Sickboy

Share this post


Link to post
Share on other sites

The way we have it laid out is:

rksl-arma2.pbo which has the following in the config:

class CfgPatches 
{
class RKSL_Arma2 
	{
	units[] = {RKSL_BISArma2Ver};
	weapons[] = {};
	requiredVersion = 1.00;
	requiredAddons[] = {RKSL_RadarSys,Extended_EventHandlers};
	};
};

rksl-arma2.pbo makes the calls to the scripts that use content from RKSL_RadarSys.

RKSL-radarsys.pbo config:

class CfgPatches 
       {
       class RKSL_RadarSys 
		{
		units[] = {RKSL_RadarVer,RKSL_FlareIRE,RKSL_FlareIRW,RKSL_FlareIRG,RKSL_FlareIRC};
		weapons[] = {};
		requiredVersion = 1.00;
		requiredAddons[] = {RKSL_System};
		};
       };

class CfgAddons
{
access=1;
class PreloadBanks {};
class PreloadAddons
	{
	class RadarSysAdded
		{
		list[]=
			{
			"RKSL_RadarSys"
			};
		};
	};
};

class cfgVehicles
.
.
.

You could always checkout the above to see if it looks the same as your addons in the mission.sqs. We had plenty of complaints of missing or deleted content prior to implementing this in MP. Although that was one ot two patches ago, so can't say for sure now.

activateAddons is no longer used in any of the scripts.

Finally we have this script launched from the init event of RKSL-RadarSys via execVM

 //Initialise local variables
_SysExit=False;

//Wait for the server
Sleep 0.001;

If IsServer Then
{
//If we are executing this code rksl-radarsys.pbo is installed server side
RKSL_RADARSYSINSTALLED=True ; PublicVariable "RKSL_RADARSYSINSTALLED";
}
Else
{
//Wait for a responce from the server
_TimeOut=Time+10 ; WaitUntil {!(IsNil "RKSL_RADARSYSINSTALLED") Or (_TimeOut<Time)};

//The server has rksl-system.pbo installed
_SysExit=(IsNil "RKSL_RADARSYSINSTALLED");
};

//rksl-radarsys.pbo missing server side
If _SysExit ExitWith {diag_log text format ["RKSL Log %1 : Exit - Radar System Not Installed Server Side",diag_tickTime]};

//Preload associated IR classes
10 PreloadObject "RKSL_FlareIRW";
10 PreloadObject "RKSL_FlareIRE";
10 PreloadObject "RKSL_FlareIRG";
10 PreloadObject "RKSL_FlareIRC";

//Preload associated flare class
10 PreloadObject "RKSL_NullFlare";

_Buffer="RKSL_NullFlare" CreateVehicle [-100000,-100000,-100000];
WaitUntil {!IsNull _Buffer};

_Buffer="RKSL_FlareIRW" CreateVehicle [-100000,-100000,-100000];
WaitUntil {!IsNull _Buffer};

Drop ["\Ca\Data\kouleSvetlo","","Billboard",1,0.065,[0,0,0],[0,0,0],0,1,1,0.1,[2],[[1,1,0.3,1]],[0,1],0,0,"","",_Buffer];
Drop ["\Ca\Data\cl_basic","","Billboard",3,3,[0,0,0],[0,0,0],0,1.275,1,0,[0.5,2,4],[[0.82813,0.83594,0.83203,0.45],[0,0,0,0]],[0,1],2.8,1,"","",_Buffer];

_Buffer="#lightpoint" CreateVehicleLocal [-100000,-100000,-100000];
WaitUntil {!IsNull _Buffer};

The script was there to ensure the resources were present in the mission at start-up rather than being loaded on demand. If I remember correctly, RKSL_NullFlare was the cause of the original error message.

Share this post


Link to post
Share on other sites

@Sickboy & UNN

thanks a lot, your help was perfect. I misunderstood the effect first as i though this would force the addon to write itself to the mission.sqm. So i expected the wrong effect of your correct solution.

Thanks a lot, really appreciate your help.

Share this post


Link to post
Share on other sites

Glad to hear you got it sorted, it can be a right Royal pain in the a%$e.

It is exactly (apart from the unneeded access and preloadbanks) what you already did before by my example

This was taken directly from the default Arma config:

Class CfgAddons
       {
       access=1;
       Class PreloadBanks {};
       Class PreloadAddons
               {
               Class CA
                       {
                       list[]={"CAData","HALO_Test","CAAnimals","CA_Anims","CA_Anims_Sdr","CA_Anims_Wmn","CABuildings","CA_Heads","CAData_ParticleEffects","CA_Dubbing","CA_Dubbing_Counterattack","CA_Editor","CALanguage","CALanguage_missions","CA_HC_Sounds","CA_Modules","CA_Missions_AlternativeInjurySimulation","CA_Modules_Alice","CA_Missions_AmbientCombat","CA_Modules_Animals","CA_Missions_BattlefieldClearance","CA_Modules_clouds","CA_Modules_Coin","CA_Modules_DynO","CA_Missions_FirstAidSystem","CA_Modules_Functions","CA_Missions_GarbageCollector","CA_HighCommand","CA_Modules_Marta","CA_Modules_Silvie","BI_SRRS","CA_Modules_UAV","CA_Modules_ZoRA","CAMusic","CARoads2","CARoads2Bridge","CARocks2","CASounds_Missions","CASounds","CAStructures","CAStructures_A_BuildingWIP","CAStructures_A_CraneCon","CAStructuresLand_A_MunicipalOffice","CAStructuresBarn_W","CAStructures_Castle","CAStructuresHouse","CAStructuresHouse_A_FuelStation","CAStructuresHouse_A_Hospital","CAStructuresHouse_A_Office01","CAStructuresH
                       };

               Class CA_EP1
                       {
                       list[]={"CA_Missions","CAData","HALO_Test","CAAnimals","CA_Anims","CA_Anims_Sdr","CA_Anims_Wmn","CA_Anims_E","CA_Anims_E_Sdr","CA_Anims_E_Wmn","CABuildings","CA_E","CA_Heads","CAData_ParticleEffects","CA_Dubbing","CA_Dubbing_E","CA_DubbingRadio_E","CA_Editor","CALanguage","CALanguage_e","CALanguage_missions","CALanguage_missions_e","CA_Modules","CA_Missions_AlternativeInjurySimulation","CA_Modules_Alice","CA_Missions_AmbientCombat","CA_Modules_Animals","CA_Missions_BattlefieldClearance","CA_Modules_clouds","CA_Modules_Coin","CA_Modules_DynO","CA_Missions_FirstAidSystem","CA_Modules_Functions","CA_Missions_GarbageCollector","CA_HighCommand","CA_Modules_Marta","CA_Modules_Silvie","BI_SRRS","CA_Modules_UAV","CA_Modules_ZoRA","CA_Modules_E","CA_Modules_Alice2","CA_Modules_E_DynO","CA_Modules_E_Functions","CA_Modules_E_Gita","CA_Modules_E_OO","CA_Support","CA_Modules_E_UAV","CA_Modules_E_UAV_Heli","CA_Modules_E_Weather","CARoads2","CARoads2Bridge","CARoads2Dam","CARoads_E","CARocks_
                       };

               };

       };

Yeah there is no need to repeat the access and PreLoadBanks, just never got round to removing them, it worked so I was happy with that. Same goes for some of the lines in the buffering script. They really need updating to be more effective, I just left them in for good measure seen as it didn't really have much of an adverse impact.

But I'm suprised to hear the list[]={}; part isn't required. Given thats how the defualt configs are layed out?

Edited by UNN

Share this post


Link to post
Share on other sites
But I'm suprised to hear the list[]={}; part isn't required. Given thats how the defualt configs are layed out?
Well you are correct, it is required, I messed up the post with the preloadAddons, and didn't see my error when you posted your code - hence the note 'It is the same'...

Whoops :-)

Share this post


Link to post
Share on other sites

That’s cool, I grabbed that from the config in memory. Thought I might have missed something, like the engine pre-processing the config beforehand to make that list.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×