exports.listeners = {

  wield: function (l10n) {
    return function (location, player, players) {
      player.say('You ready the weighty cleaver.');
      player.combat.addToHitMod({
        name: 'cleaver ' + this.getUuid(),
        effect: toHit => toHit + 1
      });
    }
  },

  remove: function (l10n) {
    return function (player) {
      player.say('You place the bulky cleaver in your pack.');
      player.combat.deleteAllMods('cleaver' + this.getUuid());
    }
  },

  hit: function (l10n) {
		return function (player) {
			player.say('<bold>The blade of your cleaver <red>does its job.</red></bold>');
      player.combat.addDamageMod({
        name: 'cleaver' + this.getUuid(),
        effect: damage => damage + .5
      });
		}
	}
};

@@ -267,16 +267,140 @@
     %7D);%0A
+      player.combat.addToDodgeMod(%7B%0A        name: 'cleaver ' + this.getUuid(),%0A        effect: dodge =%3E dodge - 1%0A      %7D);%0A
     %7D%0A  
@@ -867,12 +867,301 @@
 ;%0A%09%09%7D%0A%09%7D
+,%0A%0A  parry: function(l10n) %7B%0A    return function (player) %7B%0A      player.say('%3Cbold%3E%3Cwhite%3EThe blade of your cleaver halts their attack.%3C/white%3E%3C/bold%3E');%0A      player.combat.addDamageMod(%7B%0A        name: 'cleaver' + this.getUuid(),%0A        effect: damage =%3E damage - .5%0A      %7D);%0A    %7D%0A  %7D
 %0A%7D;%0A

Add balancing for cleaver scripts.