Jump to content
Sign in to follow this  
Pathy

How I made Armour work with ACE2

Recommended Posts

Overview:

Well, the last two days i've spent pulling my hair out repeatedly trying to get my addon to work with the ACE armour system. I did however, with the help of the ACE guys and a lot of different testing at my end, get my head around how the jigsaw comes together; at least I think I did! I've found how I can manipulate both the ACE values and BIS values to achieve my desired result.

I am attempting to share this insight, because setting up your vehicle to be compatible with ACE, yet still achieving the effect you want to have, can be intimidating. At least, it was to me. And there is very little documenation to help.

What I wanted to achieve was to make my Infantry Fighting Vehicle (IFV) armoured enough to withstand many small hits from lightwieght AT such as RPG7 (this particular IFV has a record of doing so in Iraq), without making it too powerful against heavier AT such as a 120mm MBT main gun. I also wanted it so that you could take 3 or 4 RPG hits before stuff started dying. The ACE system offers the chance to do this, modelling armour penetration with a fair degree of accuracy. However, my first attempts to achieve what I wanted ended up with the crew always dying first hit. I increased the ACE armour values to ridiculous levels, and the same effect still came about, even when the armour wasn't being penetrated. Eventually, after alot of testing, I've found out how to increase crew survivability, whilst making the vehicle still vunerable to the heavier AT rounds.

The Meaty Stuff

Ok, so first of all, the config values that we're interested in.

BIS Config Values

Armour - the default BIS armour value. Because the ACE system takes control of the 'kill' of a vehicle, this value is redundant as far as vehicle damage goes. However, whilst it no longer controls vehicle damage, it appears to still control crew damage. Thus, a high value simulates a good spall lining, and a low value simulates poor crew protection.

Armorstructural - this acts as a multiplier between Armour and the Armour float values.

Armour Float Values

EG.

class HitEngine

{

armor = 0.45;

material = -1;

name = "motor";

passThrough = 0;

};

These are the individual armour values assigned to each component. Again, the value (in this case 0.45) is a multiplier. Say we set our main armour value to 1000. This would give the engine in this case, 450 armour. As far as I can work out, Passthrough is a true (1) or false (0) switch as to whether damage on this component passes through to the rest of the vehicle.

In cases where Passthrough = 1; the Armourstructural value comes into play. Lets say, the main armour value is 1000, our engine has 450 armour (0.45), and passthrough is true. If the engine was hit for 300 damage, that damage would get passed on to the main hitpoint pool. However, it would first get divided by Armourstructural (in this case, 2)

So.

Damage (300) / Armourstructural (2) = 150.

Armour (1000) - 150 = 850 hitpoints left.

In truth, i'm not entirely sure how relevant this is to how the ACE and BIS systems work together, however, it is useful background knowledge to have.

ACE Config Values

ace_dmgsys_enable - A true or false (1 or 0) switch to enable or disable the system.

ace_minimalhit - These values represent the lower cutoff point for incoming damage. The first value is Kinetic Energy (bullets, SABOT), the second is Chemical Energy (things that go boom). Effectively, you're defining what can and cannot penetrate the armour - anything below the value you set will not even come into consideration.

ace_armor_hull/ace_armor_turret - Armour values for the hull and turret. Measured in protection against KE/CE, mm. You can find these sorts of values all over the internet. Importantly, if a projectile breaches your armour, you will hear a loud clang, and stuff will start dying. The format is (Front, Left, Right, Back, Top, Bottom) - although the turret has no 'Bottom' value, just the other 5.

ace_p_detonation_hull/turret/engine - If the armour is penetrated, you can set a percentage chance that this will cause detonation. 1.00 would be 100%, whilst 0.01 would be 1%. This is only triggered after penetration.

ace_p_fire_hull/turret/engine - Percentage chance that armour penetration will cause fire. Again, 1.00 is 100%, 0.01 is 1%

ace_p_firedetonation - Percentage chance that fire will cause detonation. 1.00 being 100%, 0.01 being 1%

ace_era - A true or false (1/0) switch that sets Explosive Reactive Armour Simulation on or off.

ace_era_hull/turret - Explosive Reactive Armour values for the hull and turret. Measured in protection against KE/CE, mm. These values are effectively added ontop of your existing armour values. They are only brought into play against certain types of weapons - other weapons will ignore the ERA, and thus the values won't be factored in. The format is (Front, Left, Right, Back, Top, Bottom) - although the turret has no 'Bottom' value, just the other 5.

ace_era_coverage_hull/turret - The value represents percentage chance that the ERA will be factored in. 0.9 represents 90% chance. The format is (Front, Left, Right, Back, Top, Bottom) - although the turret has no 'Bottom' value, just the other 5.

ace_era_blocks_hull/turret - The value represents the number of blocks of era. Each hit you take 'destroys' a block, so the more blocks you have, the better the protection.The format is (Front, Left, Right, Back, Top, Bottom) - although the turret has no 'Bottom' value, just the other 5.

So, with these values, we can pretty much achieve what we want to achieve. In my case, the following makes an IFV which can be pounded with RPG7 yet take minimal damage in 90% of cases - the crew and passengers slowly take damage and can typically withstand about 12-15 hits before being turned into a bloody pulp. However, RPG29 and heavier AT will penetrate the armour in most cases, causing heavy damage to the vehicle, injury to those inside, fire, detonation or death. Sometimes all 5. Best case and very rare scenario i've survived 4 RPG29 hits with very heavy damage. Worst case, and much more commonly, i've died first hit. I've effectively created, through use of ACE, a realistic representation of an IFV that became renowned in Iraq as being able to take punishment from hails of RPG7s, without having to make it indestructable to anything heavier. This is how i've done it:

class mystery_ifv : Tank
{
armor = 1100;[color="Red"] 'crew protection'. In default ArmA, this value is equivalent to the Abrahms - but because the ACE system manages the 'kill', we can put this value ridiculously high for an IFV[/color]
armorstructural = 2;
//ACE Systems
ace_dmgsys_enable = 1;
ace_minimalhit[] = {35,90};

ace_p_detonation_hull = 0.020000; [color="Red"]2% chance of detonation[/color]
ace_p_detonation_turret = 0.030000;[color="Red"] 3% chance of detonation[/color]
ace_p_detonation_engine = 0.04; [color="Red"]4% chance of detonation[/color]
ace_p_fire_hull = 0.080000; [color="Red"]8% chance of fire[/color]
ace_p_fire_turret = 0.1000000; [color="Red"]10% chance of fire[/color]
ace_p_fire_engine = 0.18000; [color="Red"]18% chance of fire[/color]
ace_p_firedetonation = 0.250000; [color="Red"]25% chance of fire causing det.[/color]
ace_armor_hull[] = {{410,450 },{420,460 },{420,460 },{400,440 },{420,460 },{280,320 } }; [color="Red"]front/left/right/back/top/bottom[/color]
ace_armor_turret[] = {{400,440 },{410,450 },{410,450 },{410,450 },{280,320 } };[color="Red"]front/left/right/back/top[/color]

ace_era = 1;
ace_era_hull[] = {{400,500},{400,500},{400,500},{400,500},{400,500},{0,0}} ; [color="Red"]front/left/right/back/top/bottom[/color]
ace_era_coverage_hull[] = {0.9,0.9,0.9,0.9,0.7,0}; [color="Red"]90% chance of hitting a block Front, Left, Right & back. 70% chance of hitting a a block Top. 0% chance of hitting a block, Bottom.[/color]
ace_era_blocks_hull[] = {8,8,8,6,4,0}; //number of era blocks per side

ace_era_turret[] = {{0,0},{400,480},{400,480},{400,480},{0,0}};[color="Red"]front/left/right/back/top[/color]
ace_era_coverage_turret[] = {0,0.6,0.6,0.6,0}; [color="Red"]60% chance of hitting a block on the Sides or Rear, 0% chance Front and Top.[/color]
ace_era_blocks_turret[] = {0,6,6,6,0};
//END OF ACE Stuff

class HitPoints 
	{

		class HitEngine 
		{
			armor = 0.45; [color="Red"]495 armour[/color]
			material = -1;
			name = "motor";
			passThrough = 0;
		};

		class HitHull 
		{
			armor = 0.7; [color="Red"]770 armour[/color]
			material = -1;
			name = "telo";
			passThrough = 1;
		};

		class HitLTrack 
		{
			armor = 0.300000; [color="Red"]330 armour[/color]
			material = -1;
			name = "pas_L";
			passThrough = 0;
		};

		class HitRTrack 
		{
			armor = 0.300000;[color="Red"] 330 armour[/color]
			material = -1;
			name = "pas_P";
			passThrough = 0;
		};
	};
	class Turrets 
	{

		class MainTurret : NewTurret
		{
		class HitPoints 
			{

				class HitTurret 
				{
				armor = 0.5; [color="Red"]550 armour[/color]
				material = -1;
				name = "vez";
				passThrough = 1;
				};

				class HitGun 
				{
				armor = 0.250000; [color="Red"]275 armour[/color]
				material = -1;
				name = "zbran";
				passThrough = 0;
				};


			};
		};
	};
};

If I wanted to make the vehicle more susceptible to lighter RPGs, I could tone down the ace armour values. I would also suggest scaling the bis armour value down with it - too low though, and your crew dies before the vehicle takes any real damage.

It is important to note, if you do what i'm doing here, using the BIS armour value as a control of crew survivability, your addon will not be very compatible with vanilla ArmA2 (as your IFV will have the armour of an MBT!).

This isn't a complete or accurate work, it's just an attempt to provide some help to anyone else wondering how to achieve thier desired result with ACE2s vehicle damage system.

Share this post


Link to post
Share on other sites

great amount of info there.

Edited by PuFu
sick slap

Share this post


Link to post
Share on other sites

Awesome job, thanks Pathy!

On a side note, since some builds, all 3rd party armor should function properly in ACE due to the armor system disabled for tanks that are not setup for it.

I wanted to add the following links for some reference values:

CfgVehicles>Tank

CfgVehicles>M1A1

CfgVehicles>T90

CfgVehicles>BRDM2_Base

(Click on Show Full, to also show inherited values)

And of course the Official Docs

Also the Wounding System improves crew behaviour (Without need to adjust the bis armor).

Edited by Sickboy

Share this post


Link to post
Share on other sites

Ah, a nice bit of light bedtime reading!:D

Thanks for sharing the results of your hard work!

This could keep me tweaking 'til Christmas ....

Share this post


Link to post
Share on other sites

I'll try to add this info ( and credit to you ) to FreeACE soon. Good job on the technical writing Pathy!

Share this post


Link to post
Share on other sites

I've stumbled on a problem that may,or may not, be related to this.

Not yet tried the ACE damage system on my addon but with CBA and ACE running - static weapons (ie: not tanks or other infantry weapons) have little or no effect on my vehicle - that is they don't trigger the visual damage textures or fire effects.

If I disable ACE and leave CBA running then things do as expected and I get the booms and the burning back with all enemy static weaponry.

Is it likely that it's related to the absence of the ACE damage system? Is it ON by default with third party addons?

Should I be posting in the ACE thread instead?

So many questions, so little time...any thoughts appreciated.

Share this post


Link to post
Share on other sites

ACE vehicle damage system has been altered to be off by default.

Share this post


Link to post
Share on other sites

I wonder If this would work with P85 vehicles?.

Edit nevermind, it doesnt work.......damn it. They always just blow up.

Edited by TristanYockell

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  

×