The "effects" under "Items / Ammo" is not what I was talking about, not sure why there is even a section there called effects. But anyways , anything under "Items / Ammo" in the object tree are the actual ammo objects , not their effects. The effect field I was talking about , was after you open an ammo object and get the window labeled Ammo with its form-ID listed at the top. And the large field labeled "Effects near the bottom , is where you add an Ammo Effect. You right click "new" in that field , and then a small window labeled dialog pops up.
Then the drop down left click the down arrow. But you have to hold left click down to keep the list open , and use the mouse wheel to roll the list up down. And move mouse hovering to highlight one , then when you release left mouse button it will select the one that is highlighted. And looks like you can't put conditions on those though , with the only thing you can do there is just to select from that list of "Ammo Effects" Albeit you can put more than one of those on an ammo object at once. Not sure how many , but I'd say up to 5ish probably.
Now the way you adjust those effects , or make new custom ones , is by opening up the actual Ammo effect object. Which is found under "Game Effects / Ammo Effect" So opening one of those up , or just right click new in the right side of object tree there. There is another drop down to pick the type of effect , which you only have 6 choices. But you can Add , subtract or multiply , with what ever value you want to put in.
So not a lot of choices with that , but like I said , it is the easiest way to input data into an OnHit event.
So for a simple Impact script , which you attach to the Ammo object in that drop down field just above the Effects field. This gives you a list of all scripts that are "Effect" type scripts. Which is the only type of script that can be used here. So here is an example of an armor piercing round effect.
SCN MyArmorPierceAmmoScript ; Script type : Effect
Begin ScriptEffectStart ; who ever is struck with bullet is the implicit reference
If GetEquipped MyPowerArmorList == 1
And then you set up an ActorEffect ( or actually you previously made one , with it's form-ID at least , so it can be called in the script after "CIOS" which stands for "CastImmediateOnSelf"
Which you can put multiple base effects on one actor effect , and can even put more conditions there. The reason to do that , is this script is a one frame script , like an OnActivate. So it will be less process intensive with all these bullets flying running their own scripts. And the Actor effect can be what determines when it expires and they possibly recover from any detriments imposed , or what ever you want to do.
Even damage overtime , which is done by giving a damage health effect a duration.
Which will take the total magnitude and spread it over the time frame in 1 sec increments I think.
Hope that helps ... but of course different things may require different approaches ... just give those some experimenting , and let me know if you get stuck on something.
Add edit : Oh ya forgot you were wanting a 50% check on armor piercing.
So 2 places to put that ... 1 is in the impact script , or a condition on the Actor Effect / Effect Item. using ...
GetRandomPercent <= 50
run on: Subject
Or in the script look at this wiki page https://geckwiki.com...etRandomPercent
Which would make the script just a little more complex ,probably still work , with that single frame block. But I would try the condition on the Actor effect / effect Item ... first.
But keep in mind one effect items conditions do not effect the other , if you have multiple effect items on 1 Actor effect. Which is actually good , because that way you can tailor them more specific. Like for instance you may want a DT reduction always ... but have the extra crit damage only sometimes ... just for example mention.