diff --git a/src/engine/mbEnums.java b/src/engine/mbEnums.java
index f4e66330..89501073 100644
--- a/src/engine/mbEnums.java
+++ b/src/engine/mbEnums.java
@@ -1340,119 +1340,119 @@ public class mbEnums {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.Behaviour();
+                return Behaviour.Behaviour(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         Flag {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.Flag();
+                return Behaviour.Flag(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         MapIntToInts {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.MapIntToInts();
+                return Behaviour.MapIntToInts(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         Standard {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.Standard();
+                return Behaviour.Standard(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         FPSubTypeAttr {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.FPSubTypeAttr();
+                return Behaviour.FPSubTypeAttr(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         SubTypeSourceType {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.SubTypeSourceType();
+                return Behaviour.SubTypeSourceType(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         SubTypePowerType {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.SubTypePowerType();
+                return Behaviour.SubTypePowerType(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         SubTypeSkill {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.SubTypeSkill();
+                return Behaviour.SubTypeSkill(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         FPSubTypeDmg {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.FPSubTypeDmg();
+                return Behaviour.FPSubTypeDmg(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         DD {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.DD();
+                return Behaviour.DD(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         String {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.StringBehaviour();
+                return Behaviour.StringBehaviour(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         SubTypeMod {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.SubTypeMod();
+                return Behaviour.SubTypeMod(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         SubTypePower {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.SubTypePower();
+                return Behaviour.SubTypePower(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         SubTypeDmg {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.SubTypeDmg();
+                return Behaviour.SubTypeDmg(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         FPSubTypeSkill {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.FPSubTypeSkill();
+                return Behaviour.FPSubTypeSkill(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         FPSubTypeMonster {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.FPSubTypeMonster();
+                return Behaviour.FPSubTypeMonster(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         },
         ProcInfo {
             @Override
             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
-                return Behaviour.ProcInfo();
+                return Behaviour.ProcInfo(caster, target, power, powerAction, effect, modifierEntry, rank);
             }
         };
 
diff --git a/src/engine/wpakpowers/Behaviour.java b/src/engine/wpakpowers/Behaviour.java
index 5ab509e9..18c6ffa9 100644
--- a/src/engine/wpakpowers/Behaviour.java
+++ b/src/engine/wpakpowers/Behaviour.java
@@ -8,89 +8,113 @@
 
 package engine.wpakpowers;
 
+import engine.objects.AbstractCharacter;
+import engine.objects.AbstractWorldObject;
+import engine.wpak.data.ActionEntry;
+import engine.wpak.data.Effect;
+import engine.wpak.data.ModifierEntry;
+import engine.wpak.data.Power;
+
 public class Behaviour {
 
-    public static Object Behaviour() {
+    public static Object Behaviour(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                   ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object Flag() {
+    public static Object Flag(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                              ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object MapIntToInts() {
+    public static Object MapIntToInts(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                      ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object Standard() {
+    public static Object Standard(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                  ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object FPSubTypeAttr() {
+    public static Object FPSubTypeAttr(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                       ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object SubTypeSourceType() {
+    public static Object SubTypeSourceType(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                           ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object SubTypePowerType() {
+    public static Object SubTypePowerType(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                          ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object SubTypeSkill() {
+    public static Object SubTypeSkill(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                      ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object FPSubTypeDmg() {
+    public static Object FPSubTypeDmg(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                      ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object DD() {
+    public static Object DD(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                            ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object StringBehaviour() {
+    public static Object StringBehaviour(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                         ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object SubTypeMod() {
+    public static Object SubTypeMod(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                    ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object SubTypePower() {
+    public static Object SubTypePower(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                      ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object SubTypeDmg() {
+    public static Object SubTypeDmg(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                    ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object FPSubTypeSkill() {
+    public static Object FPSubTypeSkill(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                        ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object FPSubTypeMonster() {
+    public static Object FPSubTypeMonster(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                          ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }
 
-    public static Object ProcInfo() {
+    public static Object ProcInfo(AbstractCharacter caster, AbstractWorldObject target, Power power,
+                                  ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
         System.out.println("Behavior method called");
         return null;
     }