• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
Problem with that for me is that it messes up the UI. So I generally avoid head equipment. And I don't like gobbling up that head spot either, as that means players can't use a cockpit. Heck, I lowered the Rifleman's vision distance buff and moved its rangefinder out of the head. But for the Atlas, the head slot just felt like the right spot to be.

I think that would require a dll change. Probably a postfix on initstats, to add a cost modifier (or 2, one for each ability) statCollection variable, and then using those statCollection variables wherever the cost is charged. I had to do something along those lines to give the Thunderbolt "Wet Stowage", a bit of gear that protects it from ammo explosions (in part because the AmmunitionBox value that should have worked as a workaround doesn't, due to the code using the weaponDef value rather than the statCollection one, so I figured, if I'm in there fixing that bug anyway, might as well add CanExplode to the statCollection.

I don't know about combining, as, well, @whymakemedothis has all the mechs done already, while @Winie666's is already up. Plus I think each of us has slightly different ideas as to what to run with. Like for me, I'm nerfing the Anni, Warhammer, and Marauder quirks, and tweaked the Rifleman's. I'm also not averse to mine being a dll-using mod, nor for different quirks for variants. And it is all a slow process, with lots of time trying to push the limits of the system. Like this weekend, not pan out, either because the values we can set basically do nothing or because it can't be done without going deeper into the code than I want to. And so now I"m back to the drawing board for the Quickdraw, to try and come up with something to represent the lore about its actuators. Of course, sometimes things are easy, like when I took the BW's ability and applied it to all the Catapults ;)

When I'm done, though, it'll be going up on the Nexus. But not sure when that will be. I'm 30 non-expansion chassis in, so I've got 44 of those to go, plus the Javelin. And I might rework the Anni's a bit more as well, to play with its movement speed.

Quickdraw I screwed with the movedef, not sure if the tweak was powerful enough to make people consider using it but increasing max elevation angle (IIRC) and a few other things definitely let it move places other mechs can’t.
 
I'm in the midst of doing something similar as well. I agree that meaningful options are a bit limited. One way you can differentiate a bit between them is by how you trigger them. I've got a missile mech, for example, that gets extra damage and accuracy for its missiles from hitting with them. So that means its first shot has no bonus, but the second does. And if it stops firing for a bit, it's back to zero. Also, you can add little flavor things on top of the meaningful things. For example, as an extra thing, I gave Griffins a pair of shoulder baffles which add +5 armor to the head each. Most of the time, won't make much of a difference, but sometimes it does, and it definitely has flavor.

Anyway, definitely a lot of work, and props to you for doing it and sharing it with others.

Did you do the missile thing via .JSON or .DLL, and how did you do it?
 
Did you do the missile thing via .JSON or .DLL, and how did you do it?
It's in the json. A quirk of the statusEffect system is that, if you set the "targetWeaponCategory", the "OnHit" will only trigger for that weapon, as well as the effect only buffing that weapon.
Code:
    "statusEffects" : [
        {
            "durationData" : {
                "duration" : 2
                "ticksOnActivations" : false,
                "useActivationsOfTarget" : false,
                "ticksOnEndOfRound" : true,
                "ticksOnMovements" : false,
                "stackLimit" : 1,
                "clearedWhenAttacked" : false
            },
            "targetingData" : {
                "effectTriggerType" : "OnHit",
                "effectTargetType" : "Creator",
                "showInTargetPreview" : true,
                "showInStatusPanel" : true
            },
            "effectType" : "StatisticEffect",
            "Description" : {
                "Id" : "StatusEffect-Dynatec2780MTTS-MissileDmgBonus",
                "Name" : "MISSILE DAMAGE AND ACCURACY INCREASED",
                "Details" : "Missile weapons on this unit deal [AMT] more damage.",
                "Icon" : "UixSvgIcon_specialEquip_System"
            },
            "statisticData" : {
                "appliesEachTick" : false,
                "effectsPersistAfterDestruction" : false,
                "statName" : "DamagePerShot",
                "operation" : "Float_Multiply",
                "modValue" : "1.25",
                "modType" : "System.Single",
                "additionalRules" : "NotSet",
                "targetCollection" : "Weapon",
                "targetWeaponCategory" : "Missile",
                "targetWeaponType" : "NotSet",
                "targetAmmoCategory" : "NotSet",
                "targetWeaponSubType" : "NotSet"
            },
            "nature" : "Buff"
        },
        {
            "durationData" : {
                "duration" : 2,
                "ticksOnActivations" : true,
                "useActivationsOfTarget" : false,
                "ticksOnEndOfRound" : false,
                "ticksOnMovements" : false,
                "stackLimit" : 0,
                "clearedWhenAttacked" : false
            },
            "targetingData" : {
                "effectTriggerType" : "OnHit",
                "triggerLimit" : 0,
                "extendDurationOnTrigger" : 0,
                "specialRules" : "NotSet",
                "effectTargetType" : "Creator",
                "range" : 0,
                "forcePathRebuild" : false,
                "forceVisRebuild" : false,
                "showInTargetPreview" : true,
                "showInStatusPanel" : true,
                "hideApplicationFloatie" : true
            },
            "effectType" : "StatisticEffect",
            "Description" : {
                "Id" : "StatusEffect-Dynatec2780MTTS-MissileToHitBonus",
                "Name" : "MISSILE DAMAGE AND ACCURACY INCREASED",
                "Details" : "Missile weapons on this unit gain +[AMT] to hit.",
                "Icon" : "UixSvgIcon_specialEquip_System"
            },
            "statisticData" : {
                "appliesEachTick" : false,
                "effectsPersistAfterDestruction" : false,
                "statName" : "AccuracyModifier",
                "operation" : "Float_Subtract",
                "modValue" : "1.0",
                "modType" : "System.Single",
                "additionalRules" : "NotSet",
                "targetCollection" : "Weapon",
                "targetWeaponCategory" : "Missile",
                "targetWeaponType" : "NotSet",
                "targetAmmoCategory" : "NotSet",
                "targetWeaponSubType" : "NotSet"
            },
            "nature" : "Buff"
        }
Note that right now I haven't set extendDurationOnTrigger in "targetingData", which means it will wear off, then need to be built up again. I've left it like that for now, since the "things not quite working right" feels nice and 3025ish. I'll probably go the extend route eventually, though, since I expect people might wind up thinking it is bugged, otherwise. Plus accuracy seems to be entirely determined before you click fire, for all weapons, unlike damage, where the second missile launcher will benefit from the damage boost the first launcher provides. If I do that, I'll also need to set a stack limit for the accuracy buff. But that's on my to-do list.
 
It's in the json. A quirk of the statusEffect system is that, if you set the "targetWeaponCategory", the "OnHit" will only trigger for that weapon, as well as the effect only buffing that weapon.
Code:
    "statusEffects" : [
        {
            "durationData" : {
                "duration" : 2
                "ticksOnActivations" : false,
                "useActivationsOfTarget" : false,
                "ticksOnEndOfRound" : true,
                "ticksOnMovements" : false,
                "stackLimit" : 1,
                "clearedWhenAttacked" : false
            },
            "targetingData" : {
                "effectTriggerType" : "OnHit",
                "effectTargetType" : "Creator",
                "showInTargetPreview" : true,
                "showInStatusPanel" : true
            },
            "effectType" : "StatisticEffect",
            "Description" : {
                "Id" : "StatusEffect-Dynatec2780MTTS-MissileDmgBonus",
                "Name" : "MISSILE DAMAGE AND ACCURACY INCREASED",
                "Details" : "Missile weapons on this unit deal [AMT] more damage.",
                "Icon" : "UixSvgIcon_specialEquip_System"
            },
            "statisticData" : {
                "appliesEachTick" : false,
                "effectsPersistAfterDestruction" : false,
                "statName" : "DamagePerShot",
                "operation" : "Float_Multiply",
                "modValue" : "1.25",
                "modType" : "System.Single",
                "additionalRules" : "NotSet",
                "targetCollection" : "Weapon",
                "targetWeaponCategory" : "Missile",
                "targetWeaponType" : "NotSet",
                "targetAmmoCategory" : "NotSet",
                "targetWeaponSubType" : "NotSet"
            },
            "nature" : "Buff"
        },
        {
            "durationData" : {
                "duration" : 2,
                "ticksOnActivations" : true,
                "useActivationsOfTarget" : false,
                "ticksOnEndOfRound" : false,
                "ticksOnMovements" : false,
                "stackLimit" : 0,
                "clearedWhenAttacked" : false
            },
            "targetingData" : {
                "effectTriggerType" : "OnHit",
                "triggerLimit" : 0,
                "extendDurationOnTrigger" : 0,
                "specialRules" : "NotSet",
                "effectTargetType" : "Creator",
                "range" : 0,
                "forcePathRebuild" : false,
                "forceVisRebuild" : false,
                "showInTargetPreview" : true,
                "showInStatusPanel" : true,
                "hideApplicationFloatie" : true
            },
            "effectType" : "StatisticEffect",
            "Description" : {
                "Id" : "StatusEffect-Dynatec2780MTTS-MissileToHitBonus",
                "Name" : "MISSILE DAMAGE AND ACCURACY INCREASED",
                "Details" : "Missile weapons on this unit gain +[AMT] to hit.",
                "Icon" : "UixSvgIcon_specialEquip_System"
            },
            "statisticData" : {
                "appliesEachTick" : false,
                "effectsPersistAfterDestruction" : false,
                "statName" : "AccuracyModifier",
                "operation" : "Float_Subtract",
                "modValue" : "1.0",
                "modType" : "System.Single",
                "additionalRules" : "NotSet",
                "targetCollection" : "Weapon",
                "targetWeaponCategory" : "Missile",
                "targetWeaponType" : "NotSet",
                "targetAmmoCategory" : "NotSet",
                "targetWeaponSubType" : "NotSet"
            },
            "nature" : "Buff"
        }
Note that right now I haven't set extendDurationOnTrigger in "targetingData", which means it will wear off, then need to be built up again. I've left it like that for now, since the "things not quite working right" feels nice and 3025ish. I'll probably go the extend route eventually, though, since I expect people might wind up thinking it is bugged, otherwise. Plus accuracy seems to be entirely determined before you click fire, for all weapons, unlike damage, where the second missile launcher will benefit from the damage boost the first launcher provides. If I do that, I'll also need to set a stack limit for the accuracy buff. But that's on my to-do list.

I was trying to get mech equipment to cause specific weapons to leave a debuff on the target hit. I was able to get weapons to work directly but not generic equipment to work on specific weapons to leave a debuff. Also I wanted to have ballistics buff missiles, to avoid giving AC/10s free headshots after the first hit. (Bringing a second unit to shoot missiles that give AC/10s headshot capability seems more reasonable, and makes the opfor more interesting hopefully.)

The idea was to give lighter units a way to buff the damage of heavier units without TAG/NARC craziness. If you went all-in on missiles maybe you’d want to bring a Trebuchet (missile damage debuff on targets), Archer, Awesome-T (-1.5 missile damage, -1 stability, +1 heat damage) and Atlas (enemies take 10% increased stability damage, -1 to hit) instead of four Archers or LRM 60 Highlanders.

Also, is your accuracy operation correct? Accuracy bonus is usually a positive number IIRC.

Edit: forgot to actually thank you for the post! Still quite helpful, hadn’t considered self-buffing.
 
Last edited:
After thinking on it I've had several ideas that allow me to remove pilot skills from the quirks that used them. Specifically I've given the ones that previously used Ace Pilot the ability to shoot after sprinting and Breaching Shot has been replaced with a -1 initiative instead.

Additionally I've replaced accuracy bonuses with new abilities as they were not all that impactful. The one exception is the Spider as I think that when you are using it early game the extra accuracy is actually useful. Late game if you are using a Spider it is not to deal damage so it doesn't matter as much.

I've also added a new fire support quirk that reduces the speed of any target that is hit. Now there is a good reason to use a Trebuchet as your medium fire support instead of a Centurion.

Here is a list of the changes.

Black Knight - Command Module + Squad Evasion
Catapult - Fire Support + Stabilty Damage
Cicada - Rangefinder + Initiative + Support Weapon Range
Commando - Striker + Hit Defense
Cyclops - Missile Clustering + Fire Support
Grasshopper - Range To Hit + Medium Laser Range
Griffin - Sniper + Damage Reduction
Jagermech - Fire Support + Autocannon Damage
Javelin - Striker + Melee Hit Defense
Jenner - Striker + Jump Distance
King Crab - Max Stability + Autocannon Structure Damage
Kintaro - Max Stability + Critical Chance
Panther - Sniper + Minimum Weapon Range
Quickdraw - Striker + Stability Reduction
Thunderbolt - Max Stabilty + Heat Bank
Trebuchet - Fire Support + Indirect Fire Penalty Reduction
Vindicator - Sniper + Weapon Heat Reduction
 
I was trying to get mech equipment to cause specific weapons to leave a debuff on the target hit. I was able to get weapons to work directly but not generic equipment to work on specific weapons to leave a debuff. Also I wanted to have ballistics buff missiles, to avoid giving AC/10s free headshots after the first hit. (Bringing a second unit to shoot missiles that give AC/10s headshot capability seems more reasonable, and makes the opfor more interesting hopefully.)
Unfortunately, the same thing that lets missiles only buff missiles means you can't let ACs buff something else only. It'd be nice if the effect system had let you put different limits on both the trigger and effect side of things, but they're shared.

Likewise, to limit the proc to a specific weapon means you're now debuffing weapon groups, rather than the mech itself, so I don't you can use the DamageReductionMultiplierMissile variable, then. Though you can give the lighter mech a "TAG" like piece of equipment. And like with TAG, it'll automatically wind up in the last spot, so won't benefit the mech itself in that round. Set the duration right and it'll never benefit.

You could let the lighter unit buff its teammates but not itself, however.
1) A OnHit for missiles that buffs the entire team's missile damage.
2) An OnHit for missiles that debuffs the missile damage of the shooter to reverse #1 for itself.

And then if you word the description for the icon carefully, something like "The Trebuchet is buffing its teammates' missile damage by 25%", then the rest of the team should be none the wiser. Except, of course, multi-Trebuchet teams. Maybe the "TriggerLimit" can help with that, if that gets reset every turn (haven't check that yet), as then you could allow #1 to have a stack limit of 2, but a TriggerLimit of 1. Of course, if that value doesn't get reset, then I'm out of ideas.

lso, is your accuracy operation correct? Accuracy bonus is usually a positive number IIRC.
It is according to the hit modifiers shown when I'm targeting stuff. And it is in line with that variable name for weapons, where things like lasers have a -1 accuracy.
 
I've also added a new fire support quirk that reduces the speed of any target that is hit. Now there is a good reason to use a Trebuchet as your medium fire support instead of a Centurion.
Jump distance as well? Because otherwise, well, this could encourage even more players to always go with jump jets...

But it is a fun/annoying debuff, that definitely makes you want to kill the enemy fire support ;)
 
Jump distance as well? Because otherwise, well, this could encourage even more players to always go with jump jets...
I hadn't thought of that :oops:.

Now that I have I don't think it is that much of a problem. Using jump jets as your primary form of movement adds heat. Now a player can circumvent that with the use of double heat sinks but the abundance of lostech is a balance issue which requires it's own solutions.

I also just noticed looking over my list that I forgot the Awesome when doling out the fire support quirk, another thing to add to the to do list.
 
Unfortunately, the same thing that lets missiles only buff missiles means you can't let ACs buff something else only. It'd be nice if the effect system had let you put different limits on both the trigger and effect side of things, but they're shared.

Likewise, to limit the proc to a specific weapon means you're now debuffing weapon groups, rather than the mech itself, so I don't you can use the DamageReductionMultiplierMissile variable, then. Though you can give the lighter mech a "TAG" like piece of equipment. And like with TAG, it'll automatically wind up in the last spot, so won't benefit the mech itself in that round. Set the duration right and it'll never benefit.

You could let the lighter unit buff its teammates but not itself, however.
1) A OnHit for missiles that buffs the entire team's missile damage.
2) An OnHit for missiles that debuffs the missile damage of the shooter to reverse #1 for itself.

And then if you word the description for the icon carefully, something like "The Trebuchet is buffing its teammates' missile damage by 25%", then the rest of the team should be none the wiser. Except, of course, multi-Trebuchet teams. Maybe the "TriggerLimit" can help with that, if that gets reset every turn (haven't check that yet), as then you could allow #1 to have a stack limit of 2, but a TriggerLimit of 1. Of course, if that value doesn't get reset, then I'm out of ideas.

It is according to the hit modifiers shown when I'm targeting stuff. And it is in line with that variable name for weapons, where things like lasers have a -1 accuracy.

I may need to refresh my memory then.

In any case, like I said, it works when I add the effect to weapons directly, but not when I have mech equipment, unless I want everything the mech has to apply the debuff (things seem to get tangled up when I restrict the debuffs to specific weapons, so I agree it’s probably a consequence of how that is set up).

Although I wonder if that functionality might have been moved to “marks”. I haven’t really messed around with those yet.

In any case, I can get the effect I want, but only by attaching a custom weapon to the mech, which I’ve been trying to avoid. If I make the weapon fixed then the player is stuck with it, if it’s not fixed then it can be salvaged and moved to other units, which eliminates the point of differentiating mech chassis.

One thing that does “work” is setting the slot size to 11 or 12 and then adjusting the chassisdef so only that mech can fit that weapon in that location. But it’s not exactly... elegant. Granted, if I stick with it one thing I’m considering doing for the Zeus is giving it the spaces so it can mount the Trebuchet’s LRM-15 and the Crab’s Large Laser.
 
I may need to refresh my memory then.

In any case, like I said, it works when I add the effect to weapons directly, but not when I have mech equipment, unless I want everything the mech has to apply the debuff (things seem to get tangled up when I restrict the debuffs to specific weapons, so I agree it’s probably a consequence of how that is set up).

Although I wonder if that functionality might have been moved to “marks”. I haven’t really messed around with those yet.

In any case, I can get the effect I want, but only by attaching a custom weapon to the mech, which I’ve been trying to avoid. If I make the weapon fixed then the player is stuck with it, if it’s not fixed then it can be salvaged and moved to other units, which eliminates the point of differentiating mech chassis.
Yeah, if you make it part of the weapon itself, it'll work, because then it happens when the weapon does its thing, checking its to hit and/or fired. This is also why the mark stuff would work... TAG and NARC are both just weapons. And that being weapons and triggering stuff is probably why they do 1 damage.

But with general gear, the categories apply to both the trigger and the effect.

One thing that does “work” is setting the slot size to 11 or 12 and then adjusting the chassisdef so only that mech can fit that weapon in that location. But it’s not exactly... elegant. Granted, if I stick with it one thing I’m considering doing for the Zeus is giving it the spaces so it can mount the Trebuchet’s LRM-15 and the Crab’s Large Laser.
It would cause issues with other things as well, like such a mech could hold more DHS. And, of course, any mech you do it to can likely mount the other over-sized weapons as well. The more you use it, the uglier it would get. I'd avoid going that route, personally.
 
Last edited:
I hadn't thought of that :oops:.

Now that I have I don't think it is that much of a problem. Using jump jets as your primary form of movement adds heat. Now a player can circumvent that with the use of double heat sinks but the abundance of lostech is a balance issue which requires it's own solutions.
Yeah, but keep in mind that JJs are already a bit unbalanced, for two reasons. First, the array that controls the distance you can jump is off by 1. They forgot the 0 at the 0 index. So if you have 1 JJ, you can jump 60 meters, rather than 30. And with 2, you jump 90, rather than 60. So you're always jumping 30m further than you should be. And second, movement is based on 24m grids, while jumping is based on the afore mentioned 30 (up until you get really up there, anyway). Those two things combined mean that jumping already outdoes walking in every way, except heat generation. You go further, you can face any direction, can go more places, and get more evasion. Although, like with LosTech, that probably is an issue that should be addressed by fixing jumping directly. But even without jumping letting you go further than you should, the mobility, facing, and evasion advantages already justify the heat.

But regardless, I think anything that encourages jump jets even more is something to be avoided. But luckily JumpDistanceMultiplier exists :)

I also just noticed looking over my list that I forgot the Awesome when doling out the fire support quirk, another thing to add to the to do list.
Doh, can't forget the Awesome!
 
Yeah, but keep in mind that JJs are already a bit unbalanced, for two reasons. First, the array that controls the distance you can jump is off by 1. They forgot the 0 at the 0 index. So if you have 1 JJ, you can jump 60 meters, rather than 30. And with 2, you jump 90, rather than 60. So you're always jumping 30m further than you should be. And second, movement is based on 24m grids, while jumping is based on the afore mentioned 30 (up until you get really up there, anyway). Those two things combined mean that jumping already outdoes walking in every way, except heat generation. You go further, you can face any direction, can go more places, and get more evasion. Although, like with LosTech, that probably is an issue that should be addressed by fixing jumping directly. But even without jumping letting you go further than you should, the mobility, facing, and evasion advantages already justify the heat.

But regardless, I think anything that encourages jump jets even more is something to be avoided. But luckily JumpDistanceMultiplier exists :)


Doh, can't forget the Awesome!

I think the array has been like that long enough that we can assume it is intentional, even in TT unless you move in a straight line and never turn, encounter terrain, or change elevations you can jump farther than you can walk, and often farther than you can run.

Additionally, Jump Jets generate a ton of extra heat compared to TT.

...

However, thanks to this conversation I think I finally know what I’m doing with the Jagermech. Anti-aircraft targeting system, debuff JumpDistanceMultipler float multiply .7 on hit for 2 rounds.

Edit: For additional spiciness, set EvasiveDamageMultiplier to 1.05.
 
Last edited:
Oh, I don't know if it is intentional. After all, things like the Striker's structure have been wrong since launch, and the jump thing isn't as evident as that. Heat-wise, that's based on distance, so they probably feel that even traveling shorter distances needs to generate that much heat to justify all the perks of jumping (especially since jumping doesn't have the to hit penalty it has in TT). But it is what it is, unless you're like me and you've modded it, in which case it isn't that any more :) And if jumping is unbalanced, that's really the place to fix it... a balance mod, not a quirks for mechs mod.

But good that it gave you an idea that lets you tap into the AA lore a bit. I used the AA lore bit with the weapons (AC/2s and AC/5s) myself for my balance pass, when looking for something to spice up the regular versions a bit. My Jagers build up acc for all weapons and damage for ACs and Missiles by hitting things, but lose it if attacked. Nicely encourages them to stay at range and lay down fire support, and makes you grumble whenever the AI takes a potshot at it.

Anyway, I've been dabbling with artillery a bit, seeing if that opens up some options for quirks. Unfortunately, a lot of that code doesn't seem to be very open/generic. A lot of "if(this && that)" in all those special rules code, so you can't do things like use "CommandTargetSingleEnemy" instead of "CommandTargetSinglePoint", nor substitute a medium laser in place of the Thumper as the weapon linked to the ability (that will hang the game, thinking it is waiting for the shell to travel/hit). Too bad, as that could have opened up the potential for some interesting things, like the ability to fire some lasers outside the standard firing arc. Side note: Quickdraw with a Thumper mounted on its center torso looks pretty sweet.

But that has led me down a different rabbit hole. Now I'm looking into abilities, since triggers can fire off abilities, from the looks of it. So I'm going to be dabbling with that this weekend, and see if that opens up some unique quirkiness options. Though I expect I'm mostly just going to be bashing my head into various limitations. Still, if one cool thing comes from it, it'll be worth it.
 
Oh, I don't know if it is intentional. After all, things like the Striker's structure have been wrong since launch, and the jump thing isn't as evident as that. Heat-wise, that's based on distance, so they probably feel that even traveling shorter distances needs to generate that much heat to justify all the perks of jumping (especially since jumping doesn't have the to hit penalty it has in TT). But it is what it is, unless you're like me and you've modded it, in which case it isn't that any more :) And if jumping is unbalanced, that's really the place to fix it... a balance mod, not a quirks for mechs mod.

But good that it gave you an idea that lets you tap into the AA lore a bit. I used the AA lore bit with the weapons (AC/2s and AC/5s) myself for my balance pass, when looking for something to spice up the regular versions a bit. My Jagers build up acc for all weapons and damage for ACs and Missiles by hitting things, but lose it if attacked. Nicely encourages them to stay at range and lay down fire support, and makes you grumble whenever the AI takes a potshot at it.

Anyway, I've been dabbling with artillery a bit, seeing if that opens up some options for quirks. Unfortunately, a lot of that code doesn't seem to be very open/generic. A lot of "if(this && that)" in all those special rules code, so you can't do things like use "CommandTargetSingleEnemy" instead of "CommandTargetSinglePoint", nor substitute a medium laser in place of the Thumper as the weapon linked to the ability (that will hang the game, thinking it is waiting for the shell to travel/hit). Too bad, as that could have opened up the potential for some interesting things, like the ability to fire some lasers outside the standard firing arc. Side note: Quickdraw with a Thumper mounted on its center torso looks pretty sweet.

But that has led me down a different rabbit hole. Now I'm looking into abilities, since triggers can fire off abilities, from the looks of it. So I'm going to be dabbling with that this weekend, and see if that opens up some unique quirkiness options. Though I expect I'm mostly just going to be bashing my head into various limitations. Still, if one cool thing comes from it, it'll be worth it.

"Triggers can fire off abilities"?

Do tell.
 
"Triggers can fire off abilities"?

Do tell.
Indeed, @Cwolf is working on just this with his Blackout Mod, and shared the following on his Patreon site:

“I've included a progress video of Blackout so far. The premise of Blackout is that you've been hired to investigate why your employer has lost contact with one of their locations (base / settlement / whatever the contract writer decides). When you arrive you investigate the region and then _something_ happens.
I mention _something_ because I decided to stretch myself a little with this contract type. You'll get one of three designed events happening at a certain point. I decided to try this, which is different to vanilla, because I want to surprise players a bit. Make the game feel fresh again.

- Triggers [When X happens, do Y - like when a mech walks into a region - trigger dialogue (abilities, Events, etc)]”
 
Indeed, @Cwolf is working on just this with his Blackout Mod, and shared the following on his Patreon site:

“I've included a progress video of Blackout so far. The premise of Blackout is that you've been hired to investigate why your employer has lost contact with one of their locations (base / settlement / whatever the contract writer decides). When you arrive you investigate the region and then _something_ happens.
I mention _something_ because I decided to stretch myself a little with this contract type. You'll get one of three designed events happening at a certain point. I decided to try this, which is different to vanilla, because I want to surprise players a bit. Make the game feel fresh again.

- Triggers [When X happens, do Y - like when a mech walks into a region - trigger dialogue (abilities, Events, etc)]”

I'm not sure if I see a way to trigger an effect off an ability, at least using the equipment JSON.

Edit: Note, EvasiveDamageMultiplier appears to not do anything.
 
I'm not sure if I see a way to trigger an effect off an ability, at least using the equipment JSON.
This is the call to initialize an ability:
public AbilityDef(BaseDescriptionDef description, AbilityDef.DisplayParameters displayParams, List<EffectData> effectData, SkillType reqSkill, int reqSkillLevel, AbilityDef.ActivationTiming timing, int activationCooldown, int activationETA, int numberOfUses, AbilityDef.SpecialRules specialRules, AbilityDef.TargetingType targeting, int IntParam1, int IntParam2, float FloatParam1, float FloatParam2, string StringParam1, string StringParam2, bool ShowIntParam1, bool ShowIntParam2, string actorResource, int ActorWeaponIndex, string weaponResource)

Notice the List<EffectData> effectData. That is used to set a member variable: this.EffectData = effectData;

Now, who knows if that actually does something, or if the something is implemented in a very specific way to only work in an exact set of circumstances. Haven't dug further into it, other than noticing that among the things in AbilityDef.

And for the equipment's effects, you can set "effectType" to be "ActiveAbility", as seen in the ActiveProbe.

But again, not sure to what degree we can make use of it.

Edit: Note, EvasiveDamageMultiplier appears to not do anything.
Yeah, I tried to play with that as well, and that was my conclusion. So then I tried to do some harmony magic to make it do something, but sadly, the call to get damage from a weapon is one of those automatically created get/set types, and it appears you can't interact with that using harmony (at least not without some serious code-fu). And so died a quirk idea I had for the Locust.
 
This is the call to initialize an ability:
public AbilityDef(BaseDescriptionDef description, AbilityDef.DisplayParameters displayParams, List<EffectData> effectData, SkillType reqSkill, int reqSkillLevel, AbilityDef.ActivationTiming timing, int activationCooldown, int activationETA, int numberOfUses, AbilityDef.SpecialRules specialRules, AbilityDef.TargetingType targeting, int IntParam1, int IntParam2, float FloatParam1, float FloatParam2, string StringParam1, string StringParam2, bool ShowIntParam1, bool ShowIntParam2, string actorResource, int ActorWeaponIndex, string weaponResource)

Notice the List<EffectData> effectData. That is used to set a member variable: this.EffectData = effectData;

Now, who knows if that actually does something, or if the something is implemented in a very specific way to only work in an exact set of circumstances. Haven't dug further into it, other than noticing that among the things in AbilityDef.

And for the equipment's effects, you can set "effectType" to be "ActiveAbility", as seen in the ActiveProbe.

But again, not sure to what degree we can make use of it.


Yeah, I tried to play with that as well, and that was my conclusion. So then I tried to do some harmony magic to make it do something, but sadly, the call to get damage from a weapon is one of those automatically created get/set types, and it appears you can't interact with that using harmony (at least not without some serious code-fu). And so died a quirk idea I had for the Locust.

The "OnDamaged" effectTriggerType similarly appears to not be hooked up to anything.
 
The "OnDamaged" effectTriggerType similarly appears to not be hooked up to anything.
OnDamaged works, but it seems to only impact the attacker, regardless of what you set as the effectTargetType. Or at least, Creator and SingleTarget make no difference. Haven't tested any of the ally, lance, or enemies stuff.

I'm giving the Wolverine a "Sensor Net", which boosts sensor range by 20% and debuffs enemies that hit it by 2.5% per stack. So the more weapons you hit the Wolverine with, the more damage you'll take.

Edit: Though there does seem to be issues with it. Specifically, can't get the duration stuff to work, nor does the effect end if the source dies. So potentially, the trigger is meant for some kind of fire and forget thing, lacking support for proper updating. Will have to dig through the code a bit to find out, I guess.
 
Last edited:
OnDamaged works, but it seems to only impact the attacker, regardless of what you set as the effectTargetType. Or at least, Creator and SingleTarget make no difference. Haven't tested any of the ally, lance, or enemies stuff.

I'm giving the Wolverine a "Sensor Net", which boosts sensor range by 20% and debuffs enemies that hit it by 2.5% per stack. So the more weapons you hit the Wolverine with, the more damage you'll take.

Edit: Though there does seem to be issues with it. Specifically, can't get the duration stuff to work, nor does the effect end if the source dies. So potentially, the trigger is meant for some kind of fire and forget thing, lacking support for proper updating. Will have to dig through the code a bit to find out, I guess.

Maybe a trigger limit for that, so you penalize shooting at it, not shooting at it with machine guns vs an ac/20?