Sry for the double post I will not do that again
About the Dual Wielding problem, i came out with the code that will do the work

, it's not the most elegant piece of code and may have some issues in very specific situations ( i'm not familiar with the functions I played with so a sloppy command could have an unexpected effect with the right conditions, but I'm pretty optimistic), anyway it works for the tests I've done, so here it is:
// My personal keyword check function:// Returns true when the first string given contains // the second oneUtils.String_in_String = function(container, inlcuded) { if (~container.indexOf(inlcuded)) return true; else return false;};// Keywords for 1h and 2h//you can choose the keywords u wantvar ONE_HANDED_KEYWORD = '1 Hand'; var TWO_HANDED_KEYWORD = '2 Hands';// Modified pre-existing functionGame_Actor.prototype.changeEquip = function(slotId, item) { if (this.tradeItemWithParty(item, this.equips()[slotId]) && (!item || this.equipSlots()[slotId] === item.etypeId)) { if (this.isDualWield() && (slotId == 0 || slotId ==1) && !(item === null)) { var other_slot = 1 - slotId; var description = item.description; if (Utils.String_in_String(description, ONE_HANDED_KEYWORD)) { if (slotId == 0) { // equip 1h weapon in the first slot this._equips[slotId].setObject(item); } else if (this.equips()[0] !== null && Utils.String_in_String(this.equips()[0].description , TWO_HANDED_KEYWORD)) { // if you equip a 1h weapon in the second slot clears the the first slot if there is a 2h weapon if (this.isEquipChangeOk(0)) { this.changeEquip(0, null); this._equips[1].setObject(item); } } else { // equip 1h weapon in the slot if no 2h weapon is equipped this._equips[slotId].setObject(item); } } else if (Utils.String_in_String(description, TWO_HANDED_KEYWORD)) { // equips 2 hands weapon in the first slot and clears the second one if (this.isEquipChangeOk(0) && this.isEquipChangeOk(1)) { if (!(this._equips[1] === null)) $gameParty.gainItem(this._equips[1], 1, true); this.changeEquip(other_slot, null); this._equips[1].setObject(null); this._equips[0].setObject(item); $gameParty.allItems() } } else throw new Error("weapon type (1 or 2 handed) is not specified. Weapon: " + item.name); // throws an error if weapon type i not specified } else { // executed if it's not a weapon or character doesn't have dual wielding this._equips[slotId].setObject(item); } this.refresh(); }}; Put this lines into your plugin file (remembet to add the plug-in and put it on

), then change the tag for 1h and 2h weapons to put in the description of ALL the weapons (otherwise gives you an error), put either tag in every weapon description (ex. 1 Hand).
Remember that:
1) you can put the tag in the note rather than the descriprion, but u have to change all the "descriprion" in the code in "note" and remember to tell someway to the player if the weapon is either 1 or 2 handed
2) you can decide that u don't have to specify one of the 2 types, so the code checks like only "1 Hands" and if doesn't find it it makes the weapon 2 handed. If you want this to be the case tell me because the script should be modified