[frl]myke 14 Posted December 1, 2010 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
sickboy 13 Posted December 1, 2010 (edited) 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 December 22, 2010 by Sickboy Share this post Link to post Share on other sites
[frl]myke 14 Posted December 1, 2010 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
[frl]myke 14 Posted December 18, 2010 (edited) 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 December 18, 2010 by [FRL]Myke Share this post Link to post Share on other sites
UNN 0 Posted December 18, 2010 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
[frl]myke 14 Posted December 18, 2010 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
sickboy 13 Posted December 18, 2010 (edited) 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 December 18, 2010 by Sickboy Share this post Link to post Share on other sites
[frl]myke 14 Posted December 18, 2010 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
sickboy 13 Posted December 18, 2010 (edited) 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 December 18, 2010 by Sickboy Share this post Link to post Share on other sites
UNN 0 Posted December 18, 2010 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
[frl]myke 14 Posted December 19, 2010 @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
UNN 0 Posted December 19, 2010 (edited) 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 December 19, 2010 by UNN Share this post Link to post Share on other sites
sickboy 13 Posted December 22, 2010 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
UNN 0 Posted December 22, 2010 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