Creating Proc Skills/Modifiers

I’m unsure this is even possible from what I’ve been messing around with for the last several hours. But figured I’d ask before I abandon/postpone the pursuit.

Basically I’m trying to create a skill modifier that functions ‘like’ a devotion, that will proc on hit. For testing purposes I was attempting to have Firestrike cast Trozan’s Sky Shard at a 15% rate. I attempted to set the modifier’s autoCastController to the GD/database/records/controllers/itemskills/cast_@enemyonattack_15%.dbr and the autoCastSkill field set to the skill itself, for some seriously hilarious crashing. For obvious reasons, was fun though.

Looking through the templates I don’t see one that functions this way for skills, only the _onhit templates that function like Vindictive Flame. Only the itemskill ones.

Any ideas? Abandon ship?

I’ve been curious about this too, and I’m glad you reminded me.

I delved into the dbr files just now, then bound Blackwater Cocktail to Firestrike as follows:

flamestrike1.dbr
Skill Config
autoCastSkill: records/skills/playerclass02/blackwater1.dbr
autoCastController: records/controllers/itemskills/cast_@enemyonattack_100%.dbr

It worked . . . sort of. Pretty funny to watch, since I have also have Falcon Swoop bound to firestrike on this character with lots of attack speed, and they both triggered each other. The Bad Guys melted.

A couple of notes:
1.) On the Firestrike tooltip, Blackwater Cocktail showed up as “Celestial Power”
2.) Blackwater Cocktail was operating at max level, so kind of OP in the test, although a low proc-chance might be just the sweet spot it to make it work.
3.) Edit: Also, every proc carries the full energy cost of the proc’d skill.

Curious if if the proc version could be made to level like a devotion, I went into:

blackwater1.dbr
Devotion Config
skillExperienceLevels: Added an array of experience quantities.

Went back into the game, but no such luck; although the tooltip displayed it as level 0 devotion skill, the skill was still operating at max level.

After that I tried using Trozan’s Sky Shard. Worked fine. The cooldown on TSS actually made it pretty reasonable as a proc, although a zero cooldown with low proc chance would be better, I think.

In order to make it more functional/customizable, My thinking is that you would have to:

  • make a copy of the skill you want to call, go to
    skillConfig, remove the
    skillTier value, and change the
    skillMaxLevel and
    skillUltimateLevel to 1
    Basically turn it into a devotion skill that’s not on the devotion grid.
1 Like

I had basically come to the same conclusion, although my further attempts just caused the game to crash when putting anymore points into the native skill. It was interesting firing off doom bolts with Cadence.

For now doesn’t seem like it’ll work the way I’d hoped. Have the LMB/Active skill proc the deeper modifier at whatever it’s skill level currently is. I figure the only chance to get it any closer is by manipulating templates a great deal, but my prelim goofing around with that hasn’t netted me any results.

I might be able to get what I want by just having the ability at a chance to be used, ala anything in the Dual Blades tree, then have the modifier beef up that effect to make it actually the point of the skill. A little gamey but what I’m shooting for might be too complex.

I did some more digging. Nothing conclusive yet, but I’ve been searching for stuff related to the “Skill Augment” group which is used in the item dbrs. I was wondering if the level setting could be similarly applied to skills.

Thus far, it seems like there would be some template modifications involved. Also, since we can edit the dbr files with a text editor, we can theoretically add whatever sections we want. In practice, those edits will remain in the file once saved, but are not recognized in the dbr editor. I expect that it would then not work in-game, either, but I haven’t tested it.

Any template adjustments I’ve made thus far have proven to be ineffective. I started ‘simple’ by adding a radial damage mod to Cadence to test. I got it to appear in the asset editor after changing the template path and saving it as something different to avoid any issues like when adjusting skills.

While the tooltip did show Cadence having a 2.5 damage radius, it however didn’t do anything. I went crazy and made it 15 and tested it on the dummies and the secondary target didn’t get hit by anything.

So I might have missed another field that needs to be added or adjusted to make it work, or it’s missing something else. For reference I used Primal Strike’s template, which has the additional radius variable, to make the adjustments and ported over from there.

Let you know if I come up with anything but working on some other stuff in the meantime and hope something sparks another approach.

How exactly did you add the radius from the template? If you just copied and pasted the variable in there, the game wouldn’t know to look for it. That’s why templates are inherited and layered and stacked - the programming of the game engine looks for the templates.

If you open up the skill dbr file with a text editor, I’ve been using notepad++, do a find for template. You should find a templateName line that links the skill to the .tpl file. I just recreated the new .tpl file like you have to for any modified skills, then just remapped the templateName line to the new .tpl.

So for instance, I copied the radius variable from Primal Strike’s .tpl which is… skill_basicradius.tpl (I believe not at my PC atm so excuse the wrong names, file paths and such) to Cadence’s .tpl which was just skill_base.tpl I believe. I resaved that .tpl as CadenceRadius.tpl then remapped the templateName to …/…/…/CadenceRadius.tpl in Cadence_new.dbr using Notepad++. From there opening up Cadence_new.dbr in the asset editor had a radius field in the skill config list. Any chances appeared on Cadence’s tooltip in-game.

But like I said it didn’t actually do anything. I might be missing a step in the explanation. Forgive me as I can’t reproduce it at the moment. I’ll try it again later when I get home if needed.

I don’t think you should ever create a new .tpl file, I think that is probably reserved from Crate only. Inherit 5 or 15 existing .tpl files from all over the place (you can make money a quest item!) but don’t create any new ones. The game logic needs to interpret them.

That seems like a rather extreme view considering how little we know about modding the files of this game to date. You might be right, and the templates are just the tip of a hardcoded iceberg which we’ll never be able to touch, but you could also be mistaken.

I’d rather test the assumption and fail, than simply ignore the matter.

Most things are hardcoded and the game will not be able to decipher what you put in your custom templates. You can do it, go ahead and experiment, but don’t be disappointed when they don’t work. You CAN get lucky, and might have something work, but don’t expect everything to work.

We did this in TQ a couple times to make a few custom templates for skills that were broken. Ravages of Time, Battle Standard’s Triumph, and in my mod there was a template to enable skills with one handed ranged weapons, which the engine understood.

Interesting. Well, I guess we’ll find out over time which ones, if any, can be altered.

Which is ultimately why I’m not worried why it didn’t work. Breaking and manipulating is all part of the fun.

I imagine that their C++ code has an object template that corresponds to the database’s tpl file. I imagine that when it reads the dbr file, it is really loading up variables into the various object properties, and the C++ object is populated by the dbr. The function calls then load functionality with the dbr file’s fields as variables. That means tpl files are sacrosanct and shouldn’t be edited, but if you found a broken skill and tpl file, then perhaps it was flawed enough to use other ways. Congrats on your success modifying it! I imagine it was quite a lucky break (in more ways than one) and the underlying code is restricted to interpreting dbr using their object templates - and the tpl files are mostly just documentation for us to look at (and not edit).

Yes. :slight_smile: The Law of Unintended Consequences sometimes bites you in the posterior, but other times you discover something useful or interesting.

For instance, when adding a projectile attack proc skill to a weapon, the chance to proc should be specified only in the skill. If you fill the itemSkillAutoController field, then depending on the type of controller, you may find the skill proccing from completely unrelated attacks. If you happen to have a devotion bound to the item skill, then you can wind up with a self-propogating cycle of attacks which can be triggered by a single point of retaliation damage.

When you say “inherit” what exactly do you mean?
Sorry, main language is not English…

I believe he was meaning to say “When creating new templates, use any amount of base templates.” (Templates can have a sort of hierarchy where one includes others, afaik)

About these trigger chances, has anyone been able to create a trigger which always activates?