Jump to content
Sign in to follow this  
sbsmac

ANNOUNCE: Addon-checker tool for server admins

Recommended Posts

I've just created a new tool to help server admins figure out which missions are likely to give their users problems and to help mission makers check which addons they might need to specify.

Features

* Drag-and drop operation for pbos, mission-folders, or folders containing sets of pbo'd missions.

* Identifies missions requiring A2, OA and Combined-Ops content as well as those which are incorrectly flagged as A2 or OA only.

* Checks scripts for additional classes which may cause 'missing-addon' errors during the mission.

* "Force CO" feature modifies pbos and mission folders in-place so that they explicitly required both A2 and OA content. This prevents users joining the mission and then being kicked off after it starts.

* Click on an addon-name or class-name to view the files referencing that item.

Installation and use

Please refer to the main project-page

Example screenshot...

checkerdetails.JPG

Hope you like it - any questions just ask them here.

Edited by sbsmac

Share this post


Link to post
Share on other sites

Thanks, I've used it a few times already. I've been trying to isolate OA from a CO install to make it standalone (finally did it) and this tool helps verify no Arma II content is in mission a lot quicker than testing between 3 different servers... :)

Share this post


Link to post
Share on other sites

Hi SbSMac, thanks ever so much for taking the time to create this tool. I was looking forward to its filtering capabilities.

However I have a bug to report

I loaded a combined ops mission into it, the same mission, I used to test the CO/OA standalone issue and it returned as OA, whereas it should have returned CO

addonchecker_bug.jpg

The actual mission

http://zeus-community.net/temp/bug_mission.zip

Class: "BMP2_CDF"

Addon dependancy: "CATracked" ArmA2 content

Mission.sqm as follows

version=11;
class Mission
{
addOns[]=
{
	"cacharacters_e",
	"CATracked",
	"desert_e"
};
addOnsAuto[]=
{
	"cacharacters_e",
	"CATracked",
	"desert_e"
};
randomSeed=1180125;
class Intel
{
	startWeather=0.30000001;
	forecastWeather=0.30000001;
	year=2012;
	month=6;
	day=24;
};
class Groups
{
	items=1;
	class Item0
	{
		side="WEST";
		class Vehicles
		{
			items=3;
			class Item0
			{
				position[]={1317.4917,42.760551,1333.3591};
				special="NONE";
				id=0;
				side="WEST";
				vehicle="US_Delta_Force_Undercover_Takistani06_EP1";
				player="PLAYER COMMANDER";
				leader=1;
				skill=0.60000002;
			};
			class Item1
			{
				position[]={1331.366,42.573521,1336.8037};
				special="NONE";
				id=1;
				side="WEST";
				vehicle="US_Delta_Force_Undercover_Takistani06_EP1";
				player="PLAY CDG";
				skill=0.60000002;
			};
			class Item2
			{
				position[]={1341.4628,42.746643,1333.8442};
				special="NONE";
				id=2;
				side="WEST";
				vehicle="US_Delta_Force_Undercover_Takistani06_EP1";
				player="PLAY CDG";
				skill=0.60000002;
			};
		};
	};
};
class Vehicles
{
	items=1;
	class Item0
	{
		position[]={1329.1509,42.152397,1352.0128};
		azimut=250;
		id=3;
		side="EMPTY";
		vehicle="BMP2_CDF";
		skill=0.60000002;
	};
};
};
class Intro
{
addOns[]=
{
	"desert_e"
};
addOnsAuto[]=
{
	"desert_e"
};
randomSeed=7125972;
class Intel
{
	startWeather=0.30000001;
	forecastWeather=0.30000001;
	year=2012;
	month=6;
	day=24;
};
};
class OutroWin
{
addOns[]=
{
	"desert_e"
};
addOnsAuto[]=
{
	"desert_e"
};
randomSeed=8225385;
class Intel
{
	startWeather=0.30000001;
	forecastWeather=0.30000001;
	year=2012;
	month=6;
	day=24;
};
};
class OutroLoose
{
addOns[]=
{
	"desert_e"
};
addOnsAuto[]=
{
	"desert_e"
};
randomSeed=12187450;
class Intel
{
	startWeather=0.30000001;
	forecastWeather=0.30000001;
	year=2012;
	month=6;
	day=24;
};
};

Share this post


Link to post
Share on other sites

Hmm - actually the problem looks like it may be with the way OA has arranged it's addons.

In my Combined-Operations installation I have a

Arma 2/Addons/tracked.pbo (for A2)

and

Arma 2/Common/tracked.pbo (for OA)

class CfgPatches in the A2 version contains...

class CATracked

{

units[]={"BMP2_CDF","BMP2_Ambul_CDF","BMP2_HQ_CDF","T72_CDF","ZSU_CDF","BMP2_INS","BMP2_Ambul_INS","BMP2_HQ_INS","T72_INS","T72_RU","ZSU_INS","BMP2_Gue","T72_Gue","M1A1","M1A2_TUSK_MG"};

weapons[]={};

requiredVersion=0.1;

requiredAddons[]={"CAData","CACharacters","CACharacters2","CAWeapons","CASounds"};

};

whereas the common (OA) version contains...

class CATracked

{

units[]={};

weapons[]={};

requiredVersion=1.02;

requiredAddons[]={"CAData","CACharacters","CACharacters2","CAWeapons","CASounds"};

};

I had assumed that the OA 'common' addons would have to be the same as the A2 ones but comparing the two config.bins the following classes are missing from the OA version...

class BMP2_INS:BMP2_Base

class BMP2_Ambul_INS:BMP2_Ambul_Base

class BMP2_HQ_INS:BMP2_HQ_Base

class T72_INS:T72_Base

class T72_RU:T72_Base

class ZSU_INS:ZSU_Base

class BMP2_CDF:BMP2_Base

class BMP2_Ambul_CDF:BMP2_Ambul_Base

class BMP2_HQ_CDF:BMP2_HQ_Base

class T72_CDF:T72_Base

class ZSU_CDF:ZSU_Base

class BMP2_Gue:BMP2_Base

class T72_Gue:T72_Base

The AddonChecker (and, I suspect, ArmA/OA) only look at the names of the classes in CfgPatches (ie, "CATracked") which may be why you are seeing the strange results you are getting when people join the server- OA just can't tell that BMP2_CDF is missing.

So, the root of the problem seems to be that BIS have published two different versions of the same addons with different contents - there isn't any way for the user of a mission to tell that Addons/tracked.pbo was required rather than Common/tracked.pbo.

In the meantime I'll think about extending the check to an even deeper level (ie, checking for units mentioned in the mission.sqm rather than just looking at the names of required addons).

---------- Post added at 09:43 PM ---------- Previous post was at 07:45 PM ----------

For the moment, here is a list of classes which will cause problems. These are classes which appear in either Arma2/Addons or Arma2/Common but not both.

---------- Post added at 10:46 PM ---------- Previous post was at 09:43 PM ----------

Ok, I've now updated the tool to take account of vehicles/units specified in mission.sqm and it correctly identifies your test mission as requiring CO. The tool will auto-update when you restart it.

Edited by sbsmac

Share this post


Link to post
Share on other sites

You can now double-click on a selected mission to get details about what addons or vehicles might be causing the CO dependency. Here you can see that the problem is the mixture of vehicles from OA and A2 even though the named addons don't clash (CATracked is available in both A2 and OA).

checkerdetails.JPG

*Edit* Now with colour-coding. Colours are inspired by the BIS colour-scheme:-

Dark-green for A2

Sandy for OA

Red indicates a CO mission or 'common' addon which is normally a sign of potential problems.

To update, start the application, shut it down, then restart.

Edited by sbsmac

Share this post


Link to post
Share on other sites

Thanks for the bug fix SbSMac, havent been able to break it, kudos to you and thanks for your efforts

Share this post


Link to post
Share on other sites

Np :-) Should be another update coming soon which scans all script files in the pbo to protect against dynamically created content as well.

---------- Post added at 07:19 PM ---------- Previous post was at 05:21 PM ----------

The tool can now scan all scripts in mission.sqm, sqf and sqs files within a mission, looking for likely class-names. It has three levels of checking - I recommend leaving it on 'paranoid' unless you are getting false positives.

---------- Post added at 08:06 PM ---------- Previous post was at 07:19 PM ----------

Now updated to allow you to drag and drop an unpbo'd folder into the tool as well as raw pbos.

Share this post


Link to post
Share on other sites

You're working faster than i can keep up m8, and not spamming your own thread when adding content to the tool doesnt inform folks that changes have occured. So, I'll bump it for ya :-)

Another idea that you might want to think about implementing, is the ability to batch file check, for example scan the MP Missions folder on a server to check all the pbo's in a directory. Maybe a little browse window type feature, selecting a folder

Share this post


Link to post
Share on other sites

You know you can already batch check by dropping multiple files simultaneously into the tool ? Ie, open your MPmissions folder, select all the pbo files and drag them all at once :)

Share this post


Link to post
Share on other sites

Another few tweaks...

* The GUI now differentiates between missions which state they require CO in their addons lists and missions which claim to only need A2 or OA content but which actually require both. It's these latter missions which are particularly problematic.

* You can now drag both pbo files and folders into the tool. If you drag a folder containing a period (eg test.utes) it is assumed to be an unpbo'd mission file and treated as a mission. For any other folder, the tool looks (recursively) for any pbo files within the folder. So you can now drag your MPMissions folder directly into the tool and have it open all pbos.

Share this post


Link to post
Share on other sites

cool , will use this tool. been working on a C&H mission and was having to test it using a mix of servers this will make it much easier. It caught the fact that I used some stuff from Arma2 but latter decided to remove it . It was still in the mission file.

Share this post


Link to post
Share on other sites

New features...

* When you double-click an A2(CO) or OA(CO) mission from the main screen you will now notice a "Force CO" button in the bottom right...

forceCO.JPG

If you press this button, the addon list in mission.sqm will be modified so that it includes islands from both games. This makes the mission an explicit CO-only one and should stop people joining and later discoring they are missing required addons. Note - the tool modifies your pbos/mission-folders in-place so make sure you have a backup-copy first !

* You can now also click on an addon-name or class-name from this screen to view any files referencing that item...

scriptviewer.JPG

Share this post


Link to post
Share on other sites

Rather than try and keep the instructions here, I have created a project page as a central location. I'll continue to monitor the forums here of course.

Share this post


Link to post
Share on other sites

WOW!

Something I been lookign for for sometme without knowing I was lookign for it, lol

Question though does it work for Arma 2 vanilla as well or is it limited to Arma 2 combined and OA?

You my friend are da man!

You only have added a tool to the community, but you have allowed

many mission makers & server admins to enable thier missions to work.

There is community for a game that is almost nonexistent in

other games, and that community is BIS Games!

Edited by Gnter Severloh

Share this post


Link to post
Share on other sites

Excellent, I am really excited about this, it really takes out the hassle,

and problems, gives you an edge you need,

spend more time playing then problem solving!

Share this post


Link to post
Share on other sites

you've been naughty :) The download is not available anymore due to a suspended account, please help us poor poor armafans to this brilliant tool!

Share this post


Link to post
Share on other sites

Hello community,

would anybody still have it and would be willing to upload it?

Alternatively, is there a similar tool around?

Share this post


Link to post
Share on other sites
Hello community,

would anybody still have it and would be willing to upload it?

Alternatively, is there a similar tool around?

Can't find the setup anymore, but here's the installed program from my machine.

Tested this on two machines at work and it seems to function standalone, you'll need .Net Framework 4.0 installed first though.

AddonChecker.7z

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  

×