The only suggestion I can make that this point is to start a brand new project and slowly implement each part of your idea step by step, and see at what point the problem comes back.
In a stock project, with only Dual Wield, and it's dependencies, using only the regular attack skill:
- Non dual wielders get no extra attacks at all
- Dual wielders can equip shields, and don't get extra attacks with them,
- Anyone can use a two-handed weapon, and will not have an offhand attack even if their offhand is empty, even if they're dual wield type*
*unless they also have something that's giving them monkeygrip.
Once you establish that baseline, you can test again with your action sequence dual wielding skills. Again, with only the base plugin, and its dependencies, assuming the sequence is made correctly, you should see the following:
- Skills tagged <Dual Wield Skill> which have multiple action effect lines in their sequence, or have their repeat times set greater than 1, will alternate which weapon is shown on each swing, for dual wielding actors with two weapons only.
- Dual wield skills (as named above), when performed by a non-dual wielding actor, or a dual wielding actor with a two handed weapon, or one with a shield in their offhand will not alternate weapon swings with a barehanded strike. The skill should appear and function the same as if the plugin were not enabled.
- Dual wield skills that have a custom action sequence with the <dual wield action: x> will repeat x steps in their sequence only if the actor is both dual wield type, and "armed" in their offhand.
- An actor is considered armed if they have a weapon in their offhand, both hands are empty, or they have a one handed weapon in their main hand, and their offhand is empty, but only in the last case if the plugin parameter for a barehanded attack is enabled.
- For the above point, the sequence will not repeat x steps if the actor is not dual wield type, or has a shield in their off hand, or is using a twohanded weapon.
For the above testing, just give the actors the dual wield trait on their class, or in their actor traits. Once you've established that the issue isn't with the base plugin, the configuration of it, or the action sequences, you can start experimenting with getting the system to work more like how you want it to work.
- Add the dual wield trait to a passive state, then put the passive state directly on the actor (either in the actor note box or on their class), Then test all of the above again.
- Assuming everything still works the same as it did before, move the passive state onto a skill, and then have the actor learn that skill at level 1. Retest again, and confirm that it still functions the same way as before.
- Change the level the skill is learned to a higher one. Start at level 1 and confirm no actor is dual wielding until the skill is learned at level 3 or whatever, and at that point it should work as normal again.
At this point, we've established that acquiring the passive state via level up is possible by putting it on a skill and learning that skill at a certain level. From here, you can configure your skill tree plugin to teach the same skill that already works in the above test, and then retest using it that way. Assuming the skill tree actually gives the skill to the actor, and not... some other hacky workaround, the passive state should become active on the actor when they learn the skill again, and everything should still work the way it did above.
If at any point during the above steps, you run into any of your original issues, go back a step and confirm what just caused them. If your extra barehand attacks are coming in right after you start using the dual wield action: x command, you must be configuring the action sequence incorrectly. If the extra attacks start coming in after your skill tree plugin is imported, it might be a compatibility issue between them. Keep in mind that the <dual wield skill> note tag doesn't do anything to the function of the skill on its own, it only makes it so that skills that hit multiple times do split damage, and show alternating weapons on each swing.
Like I said, do all of this testing in an empty, blank, project, to ensure that no corrupted core files, or other plugins are getting in the way. Once you establish a baseline where it works, you can slowly add to it to get the system working the way you want, and maybe figure out what you're doing which is causing the problem.
Some other things to remember:
- Shields can always be equipped by dual wielding actors, as long as they have a trait that lets them wear shields.
- A shield tagged <offhand> allows it to be wielded with a two-handed weapon.
- Weapons tagged <twohanded> will generally remove whatever is in the off hand slot when equipped, unless it is a shield tagged as <offhand>.
- The extra barehanded attack should not happen at all if it's disabled from the plugin parameters, unless the actor has no weapon in either hand.
- The extra barehanded attack will not happen under any circumstances if the actor is not dual wield type.
- The extra barehanded attack will not happen if the actor is using a two-handed weapon, unless they are also monkeygripping, because if they are monkeygrip type, the two handed weapon is considered one handed.
One other thing, passive states ignore state resist, as they are not applied in the same way normal states are. The dual wield plugin has a 'disable state' parameter, which is 0 (disabled) by default. If you change that to a state Id, when an actor has that state, the extra attack will be disabled entirely, as if they are not dual wielding at all. This information might not be needed after all of the above troubleshooting, but it's good to have all the same.
~Ramza