diff --git a/_module/ifo/module.ifo.json b/_module/ifo/module.ifo.json
index 2328fba..6fc2d3f 100644
--- a/_module/ifo/module.ifo.json
+++ b/_module/ifo/module.ifo.json
@@ -848,7 +848,7 @@
   },
   "Mod_CustomTlk": {
     "type": "cexostring",
-    "value": "prc4_cep31_mrg"
+    "value": "prc8_cep31_mg"
   },
   "Mod_CutSceneList": {
     "type": "list",
@@ -865,7 +865,7 @@
   "Mod_Description": {
     "type": "cexolocstring",
     "value": {
-      "0": "The Underworld 2\nCreated By: Guile / Genisys\nCreated On 4/17/07 to 8/29/10\n\nDiscord @  PRC Presents Channels & Player Resource Consortium \n"
+      "0": "The Underworld 2\nCreated By: Guile / Genisys\nCreated On 4/17/07 to 8/29/10\n\nDiscord @  PRC Presents Channels"
     }
   },
   "Mod_DuskHour": {
@@ -1040,13 +1040,6 @@
           "value": "cep3_portraits"
         }
       },
-      {
-        "__struct_id": 8,
-        "Mod_Hak": {
-          "type": "cexostring",
-          "value": "cep3_tiles2"
-        }
-      },
       {
         "__struct_id": 8,
         "Mod_Hak": {
diff --git a/_module/itp/creaturepalcus.itp.json b/_module/itp/creaturepalcus.itp.json
index bd3e983..6dcb7e5 100644
--- a/_module/itp/creaturepalcus.itp.json
+++ b/_module/itp/creaturepalcus.itp.json
@@ -8,77 +8,6 @@
         "LIST": {
           "type": "list",
           "value": [
-            {
-              "__struct_id": 0,
-              "ID": {
-                "type": "byte",
-                "value": 201
-              },
-              "LIST": {
-                "type": "list",
-                "value": [
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 202
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6688
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 203
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6689
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 204
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6690
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 205
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6691
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 206
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6692
-                    }
-                  }
-                ]
-              },
-              "STRREF": {
-                "type": "dword",
-                "value": 16966250
-              }
-            },
             {
               "__struct_id": 0,
               "ID": {
@@ -1518,6 +1447,77 @@
                 "type": "dword",
                 "value": 16966234
               }
+            },
+            {
+              "__struct_id": 0,
+              "ID": {
+                "type": "byte",
+                "value": 201
+              },
+              "LIST": {
+                "type": "list",
+                "value": [
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 202
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6688
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 203
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6689
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 204
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6690
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 205
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6691
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 206
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6692
+                    }
+                  }
+                ]
+              },
+              "STRREF": {
+                "type": "dword",
+                "value": 16966250
+              }
             }
           ]
         },
diff --git a/_module/itp/itempalcus.itp.json b/_module/itp/itempalcus.itp.json
index a516849..34310a4 100644
--- a/_module/itp/itempalcus.itp.json
+++ b/_module/itp/itempalcus.itp.json
@@ -12,77 +12,6 @@
         "LIST": {
           "type": "list",
           "value": [
-            {
-              "__struct_id": 0,
-              "ID": {
-                "type": "byte",
-                "value": 177
-              },
-              "LIST": {
-                "type": "list",
-                "value": [
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 178
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6688
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 179
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6689
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 180
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6690
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 181
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6691
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 182
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6692
-                    }
-                  }
-                ]
-              },
-              "STRREF": {
-                "type": "dword",
-                "value": 16966250
-              }
-            },
             {
               "__struct_id": 0,
               "ID": {
@@ -885,6 +814,77 @@
                 "type": "dword",
                 "value": 16966235
               }
+            },
+            {
+              "__struct_id": 0,
+              "ID": {
+                "type": "byte",
+                "value": 177
+              },
+              "LIST": {
+                "type": "list",
+                "value": [
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 178
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6688
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 179
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6689
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 180
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6690
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 181
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6691
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 182
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6692
+                    }
+                  }
+                ]
+              },
+              "STRREF": {
+                "type": "dword",
+                "value": 16966250
+              }
             }
           ]
         },
diff --git a/_module/itp/placeablepalcus.itp.json b/_module/itp/placeablepalcus.itp.json
index 81f3844..9441678 100644
--- a/_module/itp/placeablepalcus.itp.json
+++ b/_module/itp/placeablepalcus.itp.json
@@ -12,77 +12,6 @@
         "LIST": {
           "type": "list",
           "value": [
-            {
-              "__struct_id": 0,
-              "ID": {
-                "type": "byte",
-                "value": 177
-              },
-              "LIST": {
-                "type": "list",
-                "value": [
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 178
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6688
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 179
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6689
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 180
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6690
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 181
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6691
-                    }
-                  },
-                  {
-                    "__struct_id": 0,
-                    "ID": {
-                      "type": "byte",
-                      "value": 182
-                    },
-                    "STRREF": {
-                      "type": "dword",
-                      "value": 6692
-                    }
-                  }
-                ]
-              },
-              "STRREF": {
-                "type": "dword",
-                "value": 16966250
-              }
-            },
             {
               "__struct_id": 0,
               "ID": {
@@ -164,6 +93,77 @@
                 "type": "dword",
                 "value": 16967223
               }
+            },
+            {
+              "__struct_id": 0,
+              "ID": {
+                "type": "byte",
+                "value": 177
+              },
+              "LIST": {
+                "type": "list",
+                "value": [
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 178
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6688
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 179
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6689
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 180
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6690
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 181
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6691
+                    }
+                  },
+                  {
+                    "__struct_id": 0,
+                    "ID": {
+                      "type": "byte",
+                      "value": 182
+                    },
+                    "STRREF": {
+                      "type": "dword",
+                      "value": 6692
+                    }
+                  }
+                ]
+              },
+              "STRREF": {
+                "type": "dword",
+                "value": 16966250
+              }
             }
           ]
         },
diff --git a/_module/ncs/entrmessgtrigger.ncs b/_module/ncs/entrmessgtrigger.ncs
index 7385be6..faff100 100644
Binary files a/_module/ncs/entrmessgtrigger.ncs and b/_module/ncs/entrmessgtrigger.ncs differ
diff --git a/_module/ncs/nw_s1_aurablnda.ncs b/_module/ncs/nw_s1_aurablnda.ncs
new file mode 100644
index 0000000..bf9309b
Binary files /dev/null and b/_module/ncs/nw_s1_aurablnda.ncs differ
diff --git a/_module/ncs/nw_s1_auracoldc.ncs b/_module/ncs/nw_s1_auracoldc.ncs
new file mode 100644
index 0000000..b9442d6
Binary files /dev/null and b/_module/ncs/nw_s1_auracoldc.ncs differ
diff --git a/_module/ncs/nw_s1_auraelecc.ncs b/_module/ncs/nw_s1_auraelecc.ncs
new file mode 100644
index 0000000..37cc6e4
Binary files /dev/null and b/_module/ncs/nw_s1_auraelecc.ncs differ
diff --git a/_module/ncs/nw_s1_aurafirec.ncs b/_module/ncs/nw_s1_aurafirec.ncs
new file mode 100644
index 0000000..de93fa1
Binary files /dev/null and b/_module/ncs/nw_s1_aurafirec.ncs differ
diff --git a/_module/ncs/nw_s1_auramenca.ncs b/_module/ncs/nw_s1_auramenca.ncs
new file mode 100644
index 0000000..c821d8b
Binary files /dev/null and b/_module/ncs/nw_s1_auramenca.ncs differ
diff --git a/_module/ncs/nw_s1_auraprota.ncs b/_module/ncs/nw_s1_auraprota.ncs
new file mode 100644
index 0000000..468539b
Binary files /dev/null and b/_module/ncs/nw_s1_auraprota.ncs differ
diff --git a/_module/ncs/nw_s1_aurastuna.ncs b/_module/ncs/nw_s1_aurastuna.ncs
new file mode 100644
index 0000000..38c9db3
Binary files /dev/null and b/_module/ncs/nw_s1_aurastuna.ncs differ
diff --git a/_module/ncs/nw_s1_auraunata.ncs b/_module/ncs/nw_s1_auraunata.ncs
new file mode 100644
index 0000000..adac269
Binary files /dev/null and b/_module/ncs/nw_s1_auraunata.ncs differ
diff --git a/_module/ncs/nw_s1_aurauneaa.ncs b/_module/ncs/nw_s1_aurauneaa.ncs
new file mode 100644
index 0000000..dab354c
Binary files /dev/null and b/_module/ncs/nw_s1_aurauneaa.ncs differ
diff --git a/_module/ncs/nw_s1_bltacid.ncs b/_module/ncs/nw_s1_bltacid.ncs
new file mode 100644
index 0000000..be087ac
Binary files /dev/null and b/_module/ncs/nw_s1_bltacid.ncs differ
diff --git a/_module/ncs/nw_s1_bltcharm.ncs b/_module/ncs/nw_s1_bltcharm.ncs
new file mode 100644
index 0000000..d0ee812
Binary files /dev/null and b/_module/ncs/nw_s1_bltcharm.ncs differ
diff --git a/_module/ncs/nw_s1_bltchrdr.ncs b/_module/ncs/nw_s1_bltchrdr.ncs
new file mode 100644
index 0000000..68c2848
Binary files /dev/null and b/_module/ncs/nw_s1_bltchrdr.ncs differ
diff --git a/_module/ncs/nw_s1_bltcold.ncs b/_module/ncs/nw_s1_bltcold.ncs
new file mode 100644
index 0000000..ea508f5
Binary files /dev/null and b/_module/ncs/nw_s1_bltcold.ncs differ
diff --git a/_module/ncs/nw_s1_bltcondr.ncs b/_module/ncs/nw_s1_bltcondr.ncs
new file mode 100644
index 0000000..ef215ae
Binary files /dev/null and b/_module/ncs/nw_s1_bltcondr.ncs differ
diff --git a/_module/ncs/nw_s1_bltconf.ncs b/_module/ncs/nw_s1_bltconf.ncs
new file mode 100644
index 0000000..48278b4
Binary files /dev/null and b/_module/ncs/nw_s1_bltconf.ncs differ
diff --git a/_module/ncs/nw_s1_bltdaze.ncs b/_module/ncs/nw_s1_bltdaze.ncs
new file mode 100644
index 0000000..2984fa1
Binary files /dev/null and b/_module/ncs/nw_s1_bltdaze.ncs differ
diff --git a/_module/ncs/nw_s1_bltdeath.ncs b/_module/ncs/nw_s1_bltdeath.ncs
new file mode 100644
index 0000000..890709e
Binary files /dev/null and b/_module/ncs/nw_s1_bltdeath.ncs differ
diff --git a/_module/ncs/nw_s1_bltdexdr.ncs b/_module/ncs/nw_s1_bltdexdr.ncs
new file mode 100644
index 0000000..005e10f
Binary files /dev/null and b/_module/ncs/nw_s1_bltdexdr.ncs differ
diff --git a/_module/ncs/nw_s1_bltdisese.ncs b/_module/ncs/nw_s1_bltdisese.ncs
new file mode 100644
index 0000000..8580d05
Binary files /dev/null and b/_module/ncs/nw_s1_bltdisese.ncs differ
diff --git a/_module/ncs/nw_s1_bltdomn.ncs b/_module/ncs/nw_s1_bltdomn.ncs
new file mode 100644
index 0000000..c4c72ea
Binary files /dev/null and b/_module/ncs/nw_s1_bltdomn.ncs differ
diff --git a/_module/ncs/nw_s1_bltfire.ncs b/_module/ncs/nw_s1_bltfire.ncs
new file mode 100644
index 0000000..026e977
Binary files /dev/null and b/_module/ncs/nw_s1_bltfire.ncs differ
diff --git a/_module/ncs/nw_s1_bltintdr.ncs b/_module/ncs/nw_s1_bltintdr.ncs
new file mode 100644
index 0000000..c5bd688
Binary files /dev/null and b/_module/ncs/nw_s1_bltintdr.ncs differ
diff --git a/_module/ncs/nw_s1_bltknckd.ncs b/_module/ncs/nw_s1_bltknckd.ncs
new file mode 100644
index 0000000..47f7841
Binary files /dev/null and b/_module/ncs/nw_s1_bltknckd.ncs differ
diff --git a/_module/ncs/nw_s1_bltlightn.ncs b/_module/ncs/nw_s1_bltlightn.ncs
new file mode 100644
index 0000000..7178527
Binary files /dev/null and b/_module/ncs/nw_s1_bltlightn.ncs differ
diff --git a/_module/ncs/nw_s1_bltlvldr.ncs b/_module/ncs/nw_s1_bltlvldr.ncs
new file mode 100644
index 0000000..87f18cc
Binary files /dev/null and b/_module/ncs/nw_s1_bltlvldr.ncs differ
diff --git a/_module/ncs/nw_s1_bltparal.ncs b/_module/ncs/nw_s1_bltparal.ncs
new file mode 100644
index 0000000..b405a32
Binary files /dev/null and b/_module/ncs/nw_s1_bltparal.ncs differ
diff --git a/_module/ncs/nw_s1_bltpoison.ncs b/_module/ncs/nw_s1_bltpoison.ncs
new file mode 100644
index 0000000..d7368cb
Binary files /dev/null and b/_module/ncs/nw_s1_bltpoison.ncs differ
diff --git a/_module/ncs/nw_s1_bltshards.ncs b/_module/ncs/nw_s1_bltshards.ncs
new file mode 100644
index 0000000..773c454
Binary files /dev/null and b/_module/ncs/nw_s1_bltshards.ncs differ
diff --git a/_module/ncs/nw_s1_bltslow.ncs b/_module/ncs/nw_s1_bltslow.ncs
new file mode 100644
index 0000000..fb260e7
Binary files /dev/null and b/_module/ncs/nw_s1_bltslow.ncs differ
diff --git a/_module/ncs/nw_s1_bltstrdr.ncs b/_module/ncs/nw_s1_bltstrdr.ncs
new file mode 100644
index 0000000..89e934a
Binary files /dev/null and b/_module/ncs/nw_s1_bltstrdr.ncs differ
diff --git a/_module/ncs/nw_s1_bltstun.ncs b/_module/ncs/nw_s1_bltstun.ncs
new file mode 100644
index 0000000..2e56934
Binary files /dev/null and b/_module/ncs/nw_s1_bltstun.ncs differ
diff --git a/_module/ncs/nw_s1_bltweb.ncs b/_module/ncs/nw_s1_bltweb.ncs
new file mode 100644
index 0000000..1ffeb07
Binary files /dev/null and b/_module/ncs/nw_s1_bltweb.ncs differ
diff --git a/_module/ncs/nw_s1_bltwisdr.ncs b/_module/ncs/nw_s1_bltwisdr.ncs
new file mode 100644
index 0000000..33ec99e
Binary files /dev/null and b/_module/ncs/nw_s1_bltwisdr.ncs differ
diff --git a/_module/ncs/nw_s1_coneacid.ncs b/_module/ncs/nw_s1_coneacid.ncs
new file mode 100644
index 0000000..53405d2
Binary files /dev/null and b/_module/ncs/nw_s1_coneacid.ncs differ
diff --git a/_module/ncs/nw_s1_conecold.ncs b/_module/ncs/nw_s1_conecold.ncs
new file mode 100644
index 0000000..87ea220
Binary files /dev/null and b/_module/ncs/nw_s1_conecold.ncs differ
diff --git a/_module/ncs/nw_s1_conedisea.ncs b/_module/ncs/nw_s1_conedisea.ncs
new file mode 100644
index 0000000..3bac3eb
Binary files /dev/null and b/_module/ncs/nw_s1_conedisea.ncs differ
diff --git a/_module/ncs/nw_s1_coneelec.ncs b/_module/ncs/nw_s1_coneelec.ncs
new file mode 100644
index 0000000..703775a
Binary files /dev/null and b/_module/ncs/nw_s1_coneelec.ncs differ
diff --git a/_module/ncs/nw_s1_conesonic.ncs b/_module/ncs/nw_s1_conesonic.ncs
new file mode 100644
index 0000000..2769739
Binary files /dev/null and b/_module/ncs/nw_s1_conesonic.ncs differ
diff --git a/_module/ncs/nw_s1_dragfear.ncs b/_module/ncs/nw_s1_dragfear.ncs
new file mode 100644
index 0000000..718a0a5
Binary files /dev/null and b/_module/ncs/nw_s1_dragfear.ncs differ
diff --git a/_module/ncs/nw_s1_dragfeara.ncs b/_module/ncs/nw_s1_dragfeara.ncs
new file mode 100644
index 0000000..2c330bb
Binary files /dev/null and b/_module/ncs/nw_s1_dragfeara.ncs differ
diff --git a/_module/ncs/nw_s1_feroc3.ncs b/_module/ncs/nw_s1_feroc3.ncs
new file mode 100644
index 0000000..25681cd
Binary files /dev/null and b/_module/ncs/nw_s1_feroc3.ncs differ
diff --git a/_module/ncs/nw_s1_gazechaos.ncs b/_module/ncs/nw_s1_gazechaos.ncs
new file mode 100644
index 0000000..1895f14
Binary files /dev/null and b/_module/ncs/nw_s1_gazechaos.ncs differ
diff --git a/_module/ncs/nw_s1_gazecharm.ncs b/_module/ncs/nw_s1_gazecharm.ncs
new file mode 100644
index 0000000..2a5a21f
Binary files /dev/null and b/_module/ncs/nw_s1_gazecharm.ncs differ
diff --git a/_module/ncs/nw_s1_gazeconfu.ncs b/_module/ncs/nw_s1_gazeconfu.ncs
new file mode 100644
index 0000000..541ed76
Binary files /dev/null and b/_module/ncs/nw_s1_gazeconfu.ncs differ
diff --git a/_module/ncs/nw_s1_gazedaze.ncs b/_module/ncs/nw_s1_gazedaze.ncs
new file mode 100644
index 0000000..7ab2791
Binary files /dev/null and b/_module/ncs/nw_s1_gazedaze.ncs differ
diff --git a/_module/ncs/nw_s1_gazedeath.ncs b/_module/ncs/nw_s1_gazedeath.ncs
new file mode 100644
index 0000000..d7a2ae5
Binary files /dev/null and b/_module/ncs/nw_s1_gazedeath.ncs differ
diff --git a/_module/ncs/nw_s1_gazedomn.ncs b/_module/ncs/nw_s1_gazedomn.ncs
new file mode 100644
index 0000000..71b62c1
Binary files /dev/null and b/_module/ncs/nw_s1_gazedomn.ncs differ
diff --git a/_module/ncs/nw_s1_gazedoom.ncs b/_module/ncs/nw_s1_gazedoom.ncs
new file mode 100644
index 0000000..43625f0
Binary files /dev/null and b/_module/ncs/nw_s1_gazedoom.ncs differ
diff --git a/_module/ncs/nw_s1_gazeevil.ncs b/_module/ncs/nw_s1_gazeevil.ncs
new file mode 100644
index 0000000..a691fd0
Binary files /dev/null and b/_module/ncs/nw_s1_gazeevil.ncs differ
diff --git a/_module/ncs/nw_s1_gazefear.ncs b/_module/ncs/nw_s1_gazefear.ncs
new file mode 100644
index 0000000..58d41e1
Binary files /dev/null and b/_module/ncs/nw_s1_gazefear.ncs differ
diff --git a/_module/ncs/nw_s1_gazegood.ncs b/_module/ncs/nw_s1_gazegood.ncs
new file mode 100644
index 0000000..0d4a666
Binary files /dev/null and b/_module/ncs/nw_s1_gazegood.ncs differ
diff --git a/_module/ncs/nw_s1_gazelaw.ncs b/_module/ncs/nw_s1_gazelaw.ncs
new file mode 100644
index 0000000..66b5c26
Binary files /dev/null and b/_module/ncs/nw_s1_gazelaw.ncs differ
diff --git a/_module/ncs/nw_s1_gazestun.ncs b/_module/ncs/nw_s1_gazestun.ncs
new file mode 100644
index 0000000..b4d086e
Binary files /dev/null and b/_module/ncs/nw_s1_gazestun.ncs differ
diff --git a/_module/ncs/nw_s1_golemgas.ncs b/_module/ncs/nw_s1_golemgas.ncs
new file mode 100644
index 0000000..5d6dbb8
Binary files /dev/null and b/_module/ncs/nw_s1_golemgas.ncs differ
diff --git a/_module/ncs/nw_s1_hndbreath.ncs b/_module/ncs/nw_s1_hndbreath.ncs
new file mode 100644
index 0000000..b65b433
Binary files /dev/null and b/_module/ncs/nw_s1_hndbreath.ncs differ
diff --git a/_module/ncs/nw_s1_howlconf.ncs b/_module/ncs/nw_s1_howlconf.ncs
new file mode 100644
index 0000000..449e6af
Binary files /dev/null and b/_module/ncs/nw_s1_howlconf.ncs differ
diff --git a/_module/ncs/nw_s1_howldaze.ncs b/_module/ncs/nw_s1_howldaze.ncs
new file mode 100644
index 0000000..f035f3b
Binary files /dev/null and b/_module/ncs/nw_s1_howldaze.ncs differ
diff --git a/_module/ncs/nw_s1_howldeath.ncs b/_module/ncs/nw_s1_howldeath.ncs
new file mode 100644
index 0000000..9ebbf49
Binary files /dev/null and b/_module/ncs/nw_s1_howldeath.ncs differ
diff --git a/_module/ncs/nw_s1_howlfear.ncs b/_module/ncs/nw_s1_howlfear.ncs
new file mode 100644
index 0000000..1fd746d
Binary files /dev/null and b/_module/ncs/nw_s1_howlfear.ncs differ
diff --git a/_module/ncs/nw_s1_howlparal.ncs b/_module/ncs/nw_s1_howlparal.ncs
new file mode 100644
index 0000000..023c157
Binary files /dev/null and b/_module/ncs/nw_s1_howlparal.ncs differ
diff --git a/_module/ncs/nw_s1_howlsonic.ncs b/_module/ncs/nw_s1_howlsonic.ncs
new file mode 100644
index 0000000..ffe2ebe
Binary files /dev/null and b/_module/ncs/nw_s1_howlsonic.ncs differ
diff --git a/_module/ncs/nw_s1_howlstun.ncs b/_module/ncs/nw_s1_howlstun.ncs
new file mode 100644
index 0000000..069669c
Binary files /dev/null and b/_module/ncs/nw_s1_howlstun.ncs differ
diff --git a/_module/ncs/nw_s1_krenscare.ncs b/_module/ncs/nw_s1_krenscare.ncs
new file mode 100644
index 0000000..3b311a6
Binary files /dev/null and b/_module/ncs/nw_s1_krenscare.ncs differ
diff --git a/_module/ncs/nw_s1_mephsalt.ncs b/_module/ncs/nw_s1_mephsalt.ncs
new file mode 100644
index 0000000..687beb2
Binary files /dev/null and b/_module/ncs/nw_s1_mephsalt.ncs differ
diff --git a/_module/ncs/nw_s1_mephsteam.ncs b/_module/ncs/nw_s1_mephsteam.ncs
new file mode 100644
index 0000000..7d3b0fb
Binary files /dev/null and b/_module/ncs/nw_s1_mephsteam.ncs differ
diff --git a/_module/ncs/nw_s1_mumundead.ncs b/_module/ncs/nw_s1_mumundead.ncs
new file mode 100644
index 0000000..6897b90
Binary files /dev/null and b/_module/ncs/nw_s1_mumundead.ncs differ
diff --git a/_module/ncs/nw_s1_pulschrdr.ncs b/_module/ncs/nw_s1_pulschrdr.ncs
new file mode 100644
index 0000000..79090d4
Binary files /dev/null and b/_module/ncs/nw_s1_pulschrdr.ncs differ
diff --git a/_module/ncs/nw_s1_pulscold.ncs b/_module/ncs/nw_s1_pulscold.ncs
new file mode 100644
index 0000000..f6a23ea
Binary files /dev/null and b/_module/ncs/nw_s1_pulscold.ncs differ
diff --git a/_module/ncs/nw_s1_pulscondr.ncs b/_module/ncs/nw_s1_pulscondr.ncs
new file mode 100644
index 0000000..d44caaf
Binary files /dev/null and b/_module/ncs/nw_s1_pulscondr.ncs differ
diff --git a/_module/ncs/nw_s1_pulsdeath.ncs b/_module/ncs/nw_s1_pulsdeath.ncs
new file mode 100644
index 0000000..8515306
Binary files /dev/null and b/_module/ncs/nw_s1_pulsdeath.ncs differ
diff --git a/_module/ncs/nw_s1_pulsdexdr.ncs b/_module/ncs/nw_s1_pulsdexdr.ncs
new file mode 100644
index 0000000..b9c212c
Binary files /dev/null and b/_module/ncs/nw_s1_pulsdexdr.ncs differ
diff --git a/_module/ncs/nw_s1_pulsdis.ncs b/_module/ncs/nw_s1_pulsdis.ncs
new file mode 100644
index 0000000..80e023b
Binary files /dev/null and b/_module/ncs/nw_s1_pulsdis.ncs differ
diff --git a/_module/ncs/nw_s1_pulselec.ncs b/_module/ncs/nw_s1_pulselec.ncs
new file mode 100644
index 0000000..fe87adb
Binary files /dev/null and b/_module/ncs/nw_s1_pulselec.ncs differ
diff --git a/_module/ncs/nw_s1_pulsfire.ncs b/_module/ncs/nw_s1_pulsfire.ncs
new file mode 100644
index 0000000..48a086b
Binary files /dev/null and b/_module/ncs/nw_s1_pulsfire.ncs differ
diff --git a/_module/ncs/nw_s1_pulsholy.ncs b/_module/ncs/nw_s1_pulsholy.ncs
new file mode 100644
index 0000000..9893e11
Binary files /dev/null and b/_module/ncs/nw_s1_pulsholy.ncs differ
diff --git a/_module/ncs/nw_s1_pulsintdr.ncs b/_module/ncs/nw_s1_pulsintdr.ncs
new file mode 100644
index 0000000..42308d3
Binary files /dev/null and b/_module/ncs/nw_s1_pulsintdr.ncs differ
diff --git a/_module/ncs/nw_s1_pulslvldr.ncs b/_module/ncs/nw_s1_pulslvldr.ncs
new file mode 100644
index 0000000..a9e40ad
Binary files /dev/null and b/_module/ncs/nw_s1_pulslvldr.ncs differ
diff --git a/_module/ncs/nw_s1_pulsneg.ncs b/_module/ncs/nw_s1_pulsneg.ncs
new file mode 100644
index 0000000..0884cc4
Binary files /dev/null and b/_module/ncs/nw_s1_pulsneg.ncs differ
diff --git a/_module/ncs/nw_s1_pulspois.ncs b/_module/ncs/nw_s1_pulspois.ncs
new file mode 100644
index 0000000..cafb629
Binary files /dev/null and b/_module/ncs/nw_s1_pulspois.ncs differ
diff --git a/_module/ncs/nw_s1_pulsspore.ncs b/_module/ncs/nw_s1_pulsspore.ncs
new file mode 100644
index 0000000..723d855
Binary files /dev/null and b/_module/ncs/nw_s1_pulsspore.ncs differ
diff --git a/_module/ncs/nw_s1_pulsstrdr.ncs b/_module/ncs/nw_s1_pulsstrdr.ncs
new file mode 100644
index 0000000..a470f85
Binary files /dev/null and b/_module/ncs/nw_s1_pulsstrdr.ncs differ
diff --git a/_module/ncs/nw_s1_pulswind.ncs b/_module/ncs/nw_s1_pulswind.ncs
new file mode 100644
index 0000000..dec7caa
Binary files /dev/null and b/_module/ncs/nw_s1_pulswind.ncs differ
diff --git a/_module/ncs/nw_s1_pulswisdr.ncs b/_module/ncs/nw_s1_pulswisdr.ncs
new file mode 100644
index 0000000..63eabf4
Binary files /dev/null and b/_module/ncs/nw_s1_pulswisdr.ncs differ
diff --git a/_module/ncs/nw_s1_smokeclaw.ncs b/_module/ncs/nw_s1_smokeclaw.ncs
new file mode 100644
index 0000000..25a13fa
Binary files /dev/null and b/_module/ncs/nw_s1_smokeclaw.ncs differ
diff --git a/_module/ncs/nw_s1_stink_a.ncs b/_module/ncs/nw_s1_stink_a.ncs
new file mode 100644
index 0000000..7e7a88e
Binary files /dev/null and b/_module/ncs/nw_s1_stink_a.ncs differ
diff --git a/_module/ncs/nw_s1_tyrantfga.ncs b/_module/ncs/nw_s1_tyrantfga.ncs
new file mode 100644
index 0000000..d293ff6
Binary files /dev/null and b/_module/ncs/nw_s1_tyrantfga.ncs differ
diff --git a/_module/ncs/nw_s1_tyrantfog.ncs b/_module/ncs/nw_s1_tyrantfog.ncs
new file mode 100644
index 0000000..609cad3
Binary files /dev/null and b/_module/ncs/nw_s1_tyrantfog.ncs differ
diff --git a/_module/ncs/nw_s2_divprot.ncs b/_module/ncs/nw_s2_divprot.ncs
new file mode 100644
index 0000000..09aac41
Binary files /dev/null and b/_module/ncs/nw_s2_divprot.ncs differ
diff --git a/_module/ncs/nw_s3_balordeth.ncs b/_module/ncs/nw_s3_balordeth.ncs
new file mode 100644
index 0000000..28b7bb8
Binary files /dev/null and b/_module/ncs/nw_s3_balordeth.ncs differ
diff --git a/_module/ncs/onmoduleload.ncs b/_module/ncs/onmoduleload.ncs
index e1ac235..cdf1987 100644
Binary files a/_module/ncs/onmoduleload.ncs and b/_module/ncs/onmoduleload.ncs differ
diff --git a/_module/ncs/onunaquireitem.ncs b/_module/ncs/onunaquireitem.ncs
index 6acdeff..5b28469 100644
Binary files a/_module/ncs/onunaquireitem.ncs and b/_module/ncs/onunaquireitem.ncs differ
diff --git a/_module/ncs/time_keeper.ncs b/_module/ncs/time_keeper.ncs
index 1dd0300..4e1010b 100644
Binary files a/_module/ncs/time_keeper.ncs and b/_module/ncs/time_keeper.ncs differ
diff --git a/_module/nss/entrmessgtrigger.nss b/_module/nss/entrmessgtrigger.nss
index d9079d2..c69e345 100644
--- a/_module/nss/entrmessgtrigger.nss
+++ b/_module/nss/entrmessgtrigger.nss
@@ -26,9 +26,7 @@ if (nInt != OBJECT_TYPE_WAYPOINT)
 else
    DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));
 
-DelayCommand(7.0, FloatingTextStringOnCreature("Server Reboots at 10 minutes after Midnight, 8am, and 4pm Easter Standard Time.", oPC));
+DelayCommand(7.0, FloatingTextStringOnCreature("Server Reboots at 10 minutes after Midnight, 8am, and 4pm Eastern Standard Time.", oPC));
 
-//DelayCommand(8.0, FloatingTextStringOnCreature("The Underworld was created on 1/1/07 by Guile/Genisys", oPC));
-
-
-}
+DelayCommand(8.0, FloatingTextStringOnCreature("The Underworld was created on 1/1/07 by Guile/Genisys", oPC));
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_aurablnda.nss b/_module/nss/nw_s1_aurablnda.nss
new file mode 100644
index 0000000..0babfaa
--- /dev/null
+++ b/_module/nss/nw_s1_aurablnda.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Aura of Blinding On Enter
+//:: NW_S1_AuraBlndA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Upon entering the aura of the creature the player
+    must make a will save or be blinded because of the
+    sheer ugliness or beauty of the creature.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+	object oTarget 	= GetEnteringObject();
+	
+	int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+	int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nDuration 	= 1 + (nHD/3);
+	
+    effect eBlind 	= EffectBlindness();
+    effect eDur		= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eVis 	= EffectVisualEffect(VFX_IMP_BLIND_DEAF_M);
+    effect eLink 	= EffectLinkEffects(eBlind, eDur);
+
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+	
+    //Entering object must make a will save or be blinded for the duration.
+    if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
+    {
+        //Fire cast spell at event for the specified target
+        SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_BLINDING));
+        if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
+        {
+            //Apply the blind effect and the VFX impact
+            DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+        }
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_auracoldc.nss b/_module/nss/nw_s1_auracoldc.nss
new file mode 100644
index 0000000..49cd95e
--- /dev/null
+++ b/_module/nss/nw_s1_auracoldc.nss
@@ -0,0 +1,62 @@
+//::///////////////////////////////////////////////
+//:: Aura of Frost on Heartbeat
+//:: NW_S1_AuraColdC.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Prolonged exposure to the aura of the creature
+    causes frost damage to all within the aura.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+void main()
+{
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+	object oTarget 	= GetEnteringObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nFrost 		= 1 + (nHD/3);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+    int nDamage;
+
+    effect eDam;
+    effect eVis 	= EffectVisualEffect(VFX_IMP_FROST_S);
+
+    //Get the first target in the aura of cold
+    oTarget = GetFirstInPersistentObject();
+	
+    while (GetIsObjectValid(oTarget))
+    {
+/*         if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget))
+        {
+        oTarget = GetNextInPersistentObject(OBJECT_SELF);
+        continue;
+        } */
+        if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_COLD));
+            //Roll damage based on the creatures HD
+            nDamage = d4(nFrost);
+            //Make a Fortitude save for half
+            if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_COLD))
+            {
+                nDamage = nDamage / 2;
+            }
+            //Set the damage effect
+            eDam = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
+            //Apply the VFX constant and damage effect
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+        //Get the next target in the aura of cold
+        oTarget = GetNextInPersistentObject();
+    }
+}
diff --git a/_module/nss/nw_s1_auraelecc.nss b/_module/nss/nw_s1_auraelecc.nss
new file mode 100644
index 0000000..06994f4
--- /dev/null
+++ b/_module/nss/nw_s1_auraelecc.nss
@@ -0,0 +1,58 @@
+//::///////////////////////////////////////////////
+//:: Aura of Electricity on Heartbeat
+//:: NW_S1_AuraElecC.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Prolonged exposure to the aura of the creature
+    causes electrical damage to all within the aura.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+//:: Declare major variables
+	object oNPC	= GetAreaOfEffectCreator();
+    int nHD		= GetHitDice(oNPC);
+	int nZap	= 1 + (nHD / 3);
+	int nCHAMod	= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC		= 10 + nCHAMod + (nHD/2);
+    int nDamage;
+	
+    effect eDam;
+    effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
+	
+    //Get first target in spell area
+    object oTarget = GetFirstInPersistentObject();
+    while (GetIsObjectValid(oTarget))
+    {
+/*         if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget))
+        {
+        oTarget = GetNextInPersistentObject(OBJECT_SELF);
+        continue;
+        } */
+        if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
+        {
+            nDamage = d4(nZap);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_AURA_ELECTRICITY));
+            //Make a saving throw check
+            if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY))
+            {
+                nDamage = nDamage / 2;
+            }
+            eDam = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
+            //Apply the VFX impact and effects
+            DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
+            DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+        }
+        //Get next target in spell area
+        oTarget = GetNextInPersistentObject();
+    }
+}
diff --git a/_module/nss/nw_s1_aurafirec.nss b/_module/nss/nw_s1_aurafirec.nss
new file mode 100644
index 0000000..a6b9638
--- /dev/null
+++ b/_module/nss/nw_s1_aurafirec.nss
@@ -0,0 +1,59 @@
+//::///////////////////////////////////////////////
+//:: Aura of Fire on Heartbeat
+//:: NW_S1_AuraFireC.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Prolonged exposure to the aura of the creature
+    causes fire damage to all within the aura.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+void main()
+{
+//:: Declare major variables
+	object oNPC	= GetAreaOfEffectCreator();
+	object oTarget = GetFirstInPersistentObject();	//:: Get first target in spell area
+	
+    int nHD 	= GetHitDice(oNPC);
+	int nCHAMod	= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nBurn 	= 1 + (nHD/3);
+    int nDC		= 10 +nCHAMod+ (nHD/2);
+    int nDamage;
+    int nDamSave;
+    
+	effect eDam;
+    effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
+    
+	while(GetIsObjectValid(oTarget))
+    {
+/*         if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget))
+        {
+        oTarget = GetNextInPersistentObject(OBJECT_SELF);
+        continue;
+        } */
+        if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_FIRE));
+            //Roll damage
+            nDamage = d4(nBurn);
+            //Make a saving throw check
+            if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_FIRE))
+            {
+                nDamage = nDamage / 2;
+            }
+            //Set the damage effect
+            eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
+        }
+        //Get next target in spell area
+        oTarget = GetNextInPersistentObject();
+    }
+}
diff --git a/_module/nss/nw_s1_auramenca.nss b/_module/nss/nw_s1_auramenca.nss
new file mode 100644
index 0000000..e786aaa
--- /dev/null
+++ b/_module/nss/nw_s1_auramenca.nss
@@ -0,0 +1,46 @@
+//::///////////////////////////////////////////////
+//:: Aura of Menace On Enter
+//:: NW_S1_AuraMencA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Upon entering the aura all those that fail
+    a will save are stricken with Doom.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+    object oTarget 	= GetEnteringObject();
+	
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+    
+	int nDuration 	= 1 + (GetHitDice(oNPC)/3);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+	int nDC 		= 10 +nCHAMod+ (GetHitDice(oNPC)/2);
+	int nLevel 		= GetCasterLevel(OBJECT_SELF);
+    int nMetaMagic 	= PRCGetMetaMagicFeat();
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DOOM);
+    effect eLink 	= CreateDoomEffectsLink();
+
+    if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
+    {
+        //Fire cast spell at event for the specified target
+        SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_AURA_MENACE));
+        //Spell Resistance and Saving throw
+        if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
+        {
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink , oTarget, TurnsToSeconds(nDuration));
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_auraprota.nss b/_module/nss/nw_s1_auraprota.nss
new file mode 100644
index 0000000..548f284
--- /dev/null
+++ b/_module/nss/nw_s1_auraprota.nss
@@ -0,0 +1,35 @@
+//::///////////////////////////////////////////////
+//:: Aura of Protection: On Enter
+//:: NW_S1_AuraProtA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Acts as a double strength Magic Circle against
+    evil and a Minor Globe for those friends in
+    the area.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On:Jan 8, 2002, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+void main()
+{
+    //Declare major variables
+    effect eProt = CreateProtectionFromAlignmentLink(ALIGNMENT_EVIL);
+    effect eGlobe = EffectSpellLevelAbsorption(3, 0);
+    effect eDur = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
+
+    effect eLink = EffectLinkEffects(eProt, eGlobe);
+    eLink = EffectLinkEffects(eLink, eDur);
+
+    object oTarget = GetEnteringObject();
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+    //Faction Check
+    if(GetIsFriend(oTarget, GetAreaOfEffectCreator()))
+    {
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_aurastuna.nss b/_module/nss/nw_s1_aurastuna.nss
new file mode 100644
index 0000000..03d0aae
--- /dev/null
+++ b/_module/nss/nw_s1_aurastuna.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Aura Stunning On Enter
+//:: NW_S1_AuraStunA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Upon entering the aura of the creature the player
+    must make a will save or be stunned.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+void main()
+{
+//:: Declare major variables
+	object oNPC 	= GetAreaOfEffectCreator();
+    object oTarget = GetEnteringObject();
+	
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+	int nDuration 	= GetHitDice(oNPC);
+    int nDC 		= 10 + nCHAMod + (nDuration/2);
+	
+	//if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+    
+	effect eVis 	= EffectVisualEffect(VFX_IMP_STUN);
+    effect eVis2 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eDeath 	= EffectStunned();
+    effect eLink 	= EffectLinkEffects(eVis2, eDeath);    
+    
+    nDuration = GetScaledDuration(nDuration, oTarget);
+	
+    if(!GetIsFriend(oTarget))
+    {
+        //Fire cast spell at event for the specified target
+        SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_STUN));
+        //Make a saving throw check
+        if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_auraunata.nss b/_module/nss/nw_s1_auraunata.nss
new file mode 100644
index 0000000..a597062
--- /dev/null
+++ b/_module/nss/nw_s1_auraunata.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Aura of the Unnatural On Enter
+//:: NW_S1_AuraMencA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Upon entering the aura all animals are struck with
+    fear.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+void main()
+{
+//:: Declare major variables
+	object oNPC 	= GetAreaOfEffectCreator();
+    effect eVis 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
+    effect eFear 	= EffectFrightened();
+    effect eLink 	= EffectLinkEffects(eVis, eFear);
+    object oTarget 	= GetEnteringObject();
+		
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+	
+    int nDuration 	= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nRacial 	= GetRacialType(oTarget);
+    int nDC 		= 10 + nCHAMod + (GetHitDice(oNPC)/2);
+	
+    if(GetIsEnemy(oTarget))
+    {
+        nDuration = (nDuration / 3) + 1;
+        //Make a saving throw check
+        if(nRacial == RACIAL_TYPE_ANIMAL)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_UNNATURAL));
+            //if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR)) //:: This ability only affects animals & they don't get a save.
+            //{
+                //Apply the VFX impact and effects
+                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
+            //}
+        }
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_aurauneaa.nss b/_module/nss/nw_s1_aurauneaa.nss
new file mode 100644
index 0000000..6f4a75b
--- /dev/null
+++ b/_module/nss/nw_s1_aurauneaa.nss
@@ -0,0 +1,46 @@
+//::///////////////////////////////////////////////
+//:: Aura Unearthly Visage On Enter
+//:: NW_S1_AuraUnEaA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Upon entering the aura of the creature the player
+    must make a will save or be killed because of the
+    sheer ugliness or beauty of the creature.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+	object oTarget 	= GetEnteringObject();
+	
+	int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+    
+	effect eDeath = EffectDeath();
+    effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
+    
+	if(GetIsEnemy(oTarget, oNPC))
+    {
+        //Fire cast spell at event for the specified target
+        SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_AURA_UNEARTHLY_VISAGE));
+        //Make a saving throw check
+        if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget);
+            //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_bltacid.nss b/_module/nss/nw_s1_bltacid.nss
new file mode 100644
index 0000000..ef53a16
--- /dev/null
+++ b/_module/nss/nw_s1_bltacid.nss
@@ -0,0 +1,66 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Acid
+//:: NW_S1_BltAcid
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);
+	int nCount 		= nHD/2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
+    effect eBolt;
+
+    //ankheg
+    if(GetAppearanceType(oNPC) == APPEARANCE_TYPE_BEETLE_SLICER)
+    {
+        nDamage = d4(4);
+    }
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ACID));
+	
+    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ACID);
+	
+    //Make a ranged touch attack
+    int nTouch = TouchAttackRanged(oTarget);
+    if(nTouch > 0)
+    {
+        if(nTouch == 2)
+        {
+            nDamage *= 2;
+        }
+        //Set damage effect
+        eBolt = EffectDamage(nDamage, DAMAGE_TYPE_ACID);
+        if(nDamage > 0)
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_bltcharm.nss b/_module/nss/nw_s1_bltcharm.nss
new file mode 100644
index 0000000..df11d65
--- /dev/null
+++ b/_module/nss/nw_s1_bltcharm.nss
@@ -0,0 +1,47 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Charm
+//:: NW_S1_BltCharm
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+#include "NW_I0_SPELLS"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+
+//:: Declare major variables
+	object oNPC = OBJECT_SELF;
+    object oTarget = PRCGetSpellTargetObject();
+	
+	int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+	int nCount 		= (nHD + 1) / 2;
+    nCount 			= GetScaledDuration(nCount, oTarget);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_CHARM);
+    effect eBolt = EffectCharmed();
+    eBolt = GetScaledEffect(eBolt, oTarget);
+    effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink = EffectLinkEffects(eBolt, eDur);
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_CHARM));
+    //Make a saving throw check
+    if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+       ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_bltchrdr.nss b/_module/nss/nw_s1_bltchrdr.nss
new file mode 100644
index 0000000..e734580
--- /dev/null
+++ b/_module/nss/nw_s1_bltchrdr.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Charisma Drain
+//:: NW_S1_BltChrDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Fortitude  save is
+    needed to avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= nHD / 3;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_CHARISMA));
+    //Make a saving throw check
+    if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
+    {
+        eBolt = EffectAbilityDecrease(ABILITY_CHARISMA, nCount);
+        eBolt = SupernaturalEffect(eBolt);
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltcold.nss b/_module/nss/nw_s1_bltcold.nss
new file mode 100644
index 0000000..657f0fe
--- /dev/null
+++ b/_module/nss/nw_s1_bltcold.nss
@@ -0,0 +1,60 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Cold
+//:: NW_S1_BltCold
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= nHD/2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_COLD));
+	
+    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_COLD);
+	
+    //Make a ranged touch attack
+    int nTouch = TouchAttackRanged(oTarget);
+    if(nTouch > 0)
+    {
+        if(nTouch == 2)
+        {
+            nDamage *= 2;
+        }
+        //Set damage effect
+        eBolt = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
+        if(nDamage > 0)
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_bltcondr.nss b/_module/nss/nw_s1_bltcondr.nss
new file mode 100644
index 0000000..9d85f04
--- /dev/null
+++ b/_module/nss/nw_s1_bltcondr.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Constitution Drain
+//:: NW_S1_BltConDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Fort save is
+    needed to avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD /3);
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION));
+    //Make a saving throw check
+    if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
+    {
+        eBolt = EffectAbilityDecrease(ABILITY_CONSTITUTION, nCount);
+        eBolt = SupernaturalEffect(eBolt);
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltconf.nss b/_module/nss/nw_s1_bltconf.nss
new file mode 100644
index 0000000..5bed7dc
--- /dev/null
+++ b/_module/nss/nw_s1_bltconf.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Confuse
+//:: NW_S1_BltConf
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+#include "NW_I0_SPELLS"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+
+//:: Declare major variables
+	object oNPC 	= OBJECT_SELF;
+    object oTarget 	= PRCGetSpellTargetObject();
+	
+	int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+	int nCount 		= (nHD + 1) / 2;
+    nCount 			= GetScaledDuration(nCount, oTarget);
+	
+    effect eVis2 	= EffectVisualEffect(VFX_IMP_CONFUSION_S);
+    effect eVis 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eBolt 	= EffectConfused();
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eBolt, eDur);
+    eLink 			= EffectLinkEffects(eLink, eVis);
+	
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_CONFUSE));
+    //Make a saving throw check
+    if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+       ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_bltdaze.nss b/_module/nss/nw_s1_bltdaze.nss
new file mode 100644
index 0000000..68d15c7
--- /dev/null
+++ b/_module/nss/nw_s1_bltdaze.nss
@@ -0,0 +1,47 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Daze
+//:: NW_S1_BltDaze
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+#include "NW_I0_SPELLS"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+
+//:: Declare major variables
+	object oNPC 	= OBJECT_SELF;
+    object oTarget 	= PRCGetSpellTargetObject();
+	
+	int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+	int nCount 		= (nHD + 1) / 2;
+    nCount 			= GetScaledDuration(nCount, oTarget);
+	
+    effect eVis 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eBolt 	= EffectDazed();
+    eBolt 			= GetScaledEffect(eBolt, oTarget);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eBolt, eDur);
+    eLink 			= EffectLinkEffects(eLink, eVis);
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DAZE));
+    //Make a saving throw check
+    if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+    }
+}
diff --git a/_module/nss/nw_s1_bltdeath.nss b/_module/nss/nw_s1_bltdeath.nss
new file mode 100644
index 0000000..e2cbcd7
--- /dev/null
+++ b/_module/nss/nw_s1_bltdeath.nss
@@ -0,0 +1,47 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Death
+//:: NW_S1_BltDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
+    effect eBolt = EffectDeath();
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DEATH));
+    //Make a saving throw check
+    if(TouchAttackRanged(oTarget))
+    {
+        if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
+        {
+           //Apply the VFX impact and effects
+           ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+           //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+    }
+}
+
diff --git a/_module/nss/nw_s1_bltdexdr.nss b/_module/nss/nw_s1_bltdexdr.nss
new file mode 100644
index 0000000..4ef34d8
--- /dev/null
+++ b/_module/nss/nw_s1_bltdexdr.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Dexterity Drain
+//:: NW_S1_BltDexDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Fort save is
+    needed to avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY));
+    //Make a saving throw check
+    if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
+    {
+        eBolt = EffectAbilityDecrease(ABILITY_DEXTERITY, nCount);
+        eBolt = SupernaturalEffect(eBolt);
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltdisese.nss b/_module/nss/nw_s1_bltdisese.nss
new file mode 100644
index 0000000..6513a06
--- /dev/null
+++ b/_module/nss/nw_s1_bltdisese.nss
@@ -0,0 +1,73 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Disease
+//:: NW_S1_BltDisease
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to infect
+    the target with a disease.  The disease used
+    is chosen based upon the racial type of the
+    caster.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nRacial 	= MyPRCGetRacialType(oNPC);
+    int nDisease;
+	
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DISEASE));
+
+    //Here we use the racial type of the attacker to select an
+    //appropriate disease.
+    switch (nRacial)
+    {
+        case RACIAL_TYPE_VERMIN:
+            nDisease = DISEASE_VERMIN_MADNESS;
+        break;
+        case RACIAL_TYPE_UNDEAD:
+            nDisease = DISEASE_FILTH_FEVER;
+        break;
+        case RACIAL_TYPE_OUTSIDER:
+            if(GetTag(oNPC) == "NW_SLAADRED")
+            {
+                nDisease = DISEASE_RED_SLAAD_EGGS;
+            }
+            else
+            {
+                nDisease = DISEASE_DEMON_FEVER;
+            }
+        break;
+        case RACIAL_TYPE_MAGICAL_BEAST:
+            nDisease = DISEASE_SOLDIER_SHAKES;
+        break;
+        case RACIAL_TYPE_ABERRATION:
+            nDisease = DISEASE_BLINDING_SICKNESS;
+        break;
+        default:
+            nDisease = DISEASE_SOLDIER_SHAKES;
+        break;
+    }
+    //Assign effect and chosen disease
+    effect eBolt = EffectDisease(nDisease);
+    //Make the ranged touch attack.
+    if (TouchAttackRanged(oTarget))
+    {
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltdomn.nss b/_module/nss/nw_s1_bltdomn.nss
new file mode 100644
index 0000000..5027b45
--- /dev/null
+++ b/_module/nss/nw_s1_bltdomn.nss
@@ -0,0 +1,53 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Dominated
+//:: NW_S1_BltDomn
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	nCount 			= GetScaledDuration(nCount, oTarget);
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DOMINATE_S);
+    effect eBolt 	= EffectDominated();
+    eBolt 			= GetScaledEffect(eBolt, oTarget);
+    effect eVis2 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
+    eBolt 			= GetScaledEffect(eBolt, oTarget);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eBolt, eDur);
+    eLink 			= EffectLinkEffects(eLink, eVis2);
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DOMINATE));
+	
+    //Make a saving throw check
+    if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+       ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltfire.nss b/_module/nss/nw_s1_bltfire.nss
new file mode 100644
index 0000000..4f7a423
--- /dev/null
+++ b/_module/nss/nw_s1_bltfire.nss
@@ -0,0 +1,58 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Fire
+//:: NW_S1_BoltFire
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= nHD/2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_FIRE));
+    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_FIRE);
+    //Make a ranged touch attack
+    int nTouch = TouchAttackRanged(oTarget);
+    if(nTouch > 0)
+    {
+        if(nTouch == 2)
+        {
+            nDamage *= 2;
+        }
+        //Set damage effect
+        eBolt = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
+        if(nDamage > 0)
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_bltintdr.nss b/_module/nss/nw_s1_bltintdr.nss
new file mode 100644
index 0000000..f3ffbad
--- /dev/null
+++ b/_module/nss/nw_s1_bltintdr.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Intelligence Drain
+//:: NW_S1_BltIntDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE));
+    //Make a saving throw check
+    if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
+    {
+        eBolt = EffectAbilityDecrease(ABILITY_INTELLIGENCE, nCount);
+        eBolt = SupernaturalEffect(eBolt);
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltknckd.nss b/_module/nss/nw_s1_bltknckd.nss
new file mode 100644
index 0000000..6816964
--- /dev/null
+++ b/_module/nss/nw_s1_bltknckd.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Knockdown
+//:: NW_S1_BltKnckD
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= nHD/2;
+    if (nCount == 0) { nCount = 1; }
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_SONIC);
+    effect eBolt 	= EffectKnockdown();
+    effect eDam 	= EffectDamage(d6(), DAMAGE_TYPE_BLUDGEONING);
+    
+	//Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_KNOCKDOWN));
+    
+	//Make a saving throw check
+    if (!/*Reflex Save*/ PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBolt, oTarget, RoundsToSeconds(3));
+       ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+       ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltlightn.nss b/_module/nss/nw_s1_bltlightn.nss
new file mode 100644
index 0000000..024eafb
--- /dev/null
+++ b/_module/nss/nw_s1_bltlightn.nss
@@ -0,0 +1,59 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Lightning
+//:: NW_S1_BltLightn
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Does 1d6 per level to a single target.  Reflex
+    save for half
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Aug 10, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= nHD/2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF,BODY_NODE_HAND);
+    effect eVis  = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_LIGHTNING));
+    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ELECTRICITY);
+    //Make a ranged touch attack
+    int nTouch = TouchAttackRanged(oTarget);
+    if(nTouch > 0)
+    {
+        if(nTouch == 2)
+        {
+            nDamage *= 2;
+        }
+        //Set damage effect
+        eBolt = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
+        if(nDamage > 0)
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLightning, oTarget, 1.7);
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_bltlvldr.nss b/_module/nss/nw_s1_bltlvldr.nss
new file mode 100644
index 0000000..e3f14ca
--- /dev/null
+++ b/_module/nss/nw_s1_bltlvldr.nss
@@ -0,0 +1,49 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Level Drain
+//:: NW_S1_BltLvlDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= nHD/5;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eBolt = EffectNegativeLevel(1);
+    
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_LEVEL_DRAIN));
+	
+    //Make a saving throw check
+    if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
+    {
+        //eBolt = LEVEL DRAIN EFFECT
+        eBolt = SupernaturalEffect(eBolt);
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltparal.nss b/_module/nss/nw_s1_bltparal.nss
new file mode 100644
index 0000000..e4a6b59
--- /dev/null
+++ b/_module/nss/nw_s1_bltparal.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Paralyze
+//:: NW_S1_BltParal
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	nCount = GetScaledDuration(nCount, oTarget);
+	
+    effect eVis 	= EffectVisualEffect(VFX_DUR_PARALYZED);
+    effect eBolt 	= EffectParalyze();
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eBolt, eDur);
+    eLink 			= EffectLinkEffects(eLink, eVis);
+    
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_PARALYZE));
+    //Make a saving throw check
+    if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+    }
+}
diff --git a/_module/nss/nw_s1_bltpoison.nss b/_module/nss/nw_s1_bltpoison.nss
new file mode 100644
index 0000000..8a34aca
--- /dev/null
+++ b/_module/nss/nw_s1_bltpoison.nss
@@ -0,0 +1,123 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Poison
+//:: NW_S1_BltPoison.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Must make a ranged touch attack. If successful
+    the target is struck down with poison that
+    scales with level.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 22, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nRacial 	= MyPRCGetRacialType(OBJECT_SELF);
+	int nPoison;
+	
+    effect ePoison;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_POISON));
+
+    //Determine the poison type based on the Racial Type and HD
+    switch (nRacial)
+    {
+        case RACIAL_TYPE_OUTSIDER:
+            if (nHD <= 9)
+            {
+                nPoison = POISON_QUASIT_VENOM;
+            }
+            else if (nHD > 9  && nHD < 13)
+            {
+                nPoison = POISON_BEBILITH_VENOM;
+            }
+            else if (nHD >= 13)
+            {
+                nPoison = POISON_PIT_FIEND_ICHOR;
+            }
+        break;
+        case RACIAL_TYPE_VERMIN:
+            if (nHD < 3)
+            {
+                nPoison = POISON_TINY_SPIDER_VENOM;
+            }
+            else if (nHD <= 3 && nHD < 6)
+            {
+                nPoison = POISON_SMALL_SPIDER_VENOM;
+            }
+            else if (nHD <= 6 && nHD < 9)
+            {
+                nPoison = POISON_MEDIUM_SPIDER_VENOM;
+            }
+            else if (nHD <= 9 && nHD < 12)
+            {
+                nPoison =  POISON_LARGE_SPIDER_VENOM;
+            }
+            else if (nHD <= 12 && nHD < 15)
+            {
+                nPoison = POISON_HUGE_SPIDER_VENOM;
+            }
+            else if (nHD <= 15 && nHD < 18)
+            {
+                nPoison = POISON_GARGANTUAN_SPIDER_VENOM;
+            }
+            else if (nHD >= 18)
+            {
+                nPoison = POISON_COLOSSAL_SPIDER_VENOM;
+            }
+        break;
+        default:
+            if (nHD < 3)
+            {
+                nPoison = POISON_NIGHTSHADE;
+            }
+            else if (nHD <= 3 && nHD < 6)
+            {
+                nPoison = POISON_BLADE_BANE;
+            }
+            else if (nHD <= 6 && nHD < 9)
+            {
+                nPoison = POISON_BLOODROOT;
+            }
+            else if (nHD <= 9 && nHD < 12)
+            {
+                nPoison =  POISON_LARGE_SPIDER_VENOM;
+            }
+            else if (nHD <= 12 && nHD < 15)
+            {
+                nPoison = POISON_LICH_DUST;
+            }
+            else if (nHD <= 15 && nHD < 18)
+            {
+                nPoison = POISON_DARK_REAVER_POWDER;
+            }
+            else if (nHD >= 18 )
+            {
+                nPoison = POISON_BLACK_LOTUS_EXTRACT;
+            }
+
+        break;
+    }
+    //Make a ranged touch attack
+    if (TouchAttackRanged (oTarget))
+    {
+        ePoison = EffectPoison(nPoison);
+        //Apply effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget);
+    }
+}
+
diff --git a/_module/nss/nw_s1_bltshards.nss b/_module/nss/nw_s1_bltshards.nss
new file mode 100644
index 0000000..1b96e2b
--- /dev/null
+++ b/_module/nss/nw_s1_bltshards.nss
@@ -0,0 +1,58 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Shards
+//:: NW_S1_BltShard
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_SHARDS));
+	
+    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC);
+	
+    //Make a ranged touch attack
+    int nTouch = TouchAttackRanged(oTarget);
+    if(nTouch > 0)
+    {
+        if(nTouch == 2)
+        {
+            nDamage *= 2;
+        }
+        //Set damage effect
+        eBolt = EffectDamage(nDamage, DAMAGE_TYPE_PIERCING, DAMAGE_POWER_PLUS_ONE);
+        if(nDamage > 0)
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_bltslow.nss b/_module/nss/nw_s1_bltslow.nss
new file mode 100644
index 0000000..bf4813a
--- /dev/null
+++ b/_module/nss/nw_s1_bltslow.nss
@@ -0,0 +1,47 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Slow
+//:: NW_S1_BltSlow
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex save is
+    needed to or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: June 18 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_SLOW);
+    effect eBolt = EffectSlow();
+    effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink = EffectLinkEffects(eBolt, eDur);
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_SLOW));
+    //Make a saving throw check
+    if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+       ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltstrdr.nss b/_module/nss/nw_s1_bltstrdr.nss
new file mode 100644
index 0000000..dd03161
--- /dev/null
+++ b/_module/nss/nw_s1_bltstrdr.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Strength Drain
+//:: NW_S1_BltStrDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Fort save is
+    needed to avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_STRENGTH));
+    //Make a saving throw check
+    if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
+    {
+        eBolt = EffectAbilityDecrease(ABILITY_STRENGTH, nCount);
+        eBolt = SupernaturalEffect(eBolt);
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_bltstun.nss b/_module/nss/nw_s1_bltstun.nss
new file mode 100644
index 0000000..1d77008
--- /dev/null
+++ b/_module/nss/nw_s1_bltstun.nss
@@ -0,0 +1,50 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Stun
+//:: NW_S1_BltStun
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Reflex or Will save is
+    needed to halve damage or avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD + 1) / 2;
+    if (nCount == 0) { nCount = 1; }
+	nCount 			= GetScaledDuration(nCount, oTarget);
+	int nDamage 	= d6(nCount);
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_STUN);
+    effect eBolt 	= EffectStunned();
+    eBolt 			= GetScaledEffect(eBolt, oTarget);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eBolt, eDur);
+    
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_STUN));
+    //Make a saving throw check
+    if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+       ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_bltweb.nss b/_module/nss/nw_s1_bltweb.nss
new file mode 100644
index 0000000..9ed210a
--- /dev/null
+++ b/_module/nss/nw_s1_bltweb.nss
@@ -0,0 +1,44 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Web
+//:: NW_S1_BltWeb
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Glues a single target to the ground with
+    sticky strands of webbing.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Jan 28, 2002
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);
+	int nCount 		= 1 + (nHD /2);
+    if (nCount == 0) { nCount = 1; }
+	
+    effect eVis = EffectVisualEffect(VFX_DUR_WEB);
+    effect eStick = EffectEntangle();
+    effect eLink = EffectLinkEffects(eVis, eStick);
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_WEB));
+    //Make a saving throw check
+    if (!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC) && TouchAttackRanged(oTarget))
+    {
+       //Apply the VFX impact and effects
+       ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
+    }
+}
diff --git a/_module/nss/nw_s1_bltwisdr.nss b/_module/nss/nw_s1_bltwisdr.nss
new file mode 100644
index 0000000..49643c0
--- /dev/null
+++ b/_module/nss/nw_s1_bltwisdr.nss
@@ -0,0 +1,48 @@
+//::///////////////////////////////////////////////
+//:: Bolt: Wisdom Drain
+//:: NW_S1_BltWisDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature must make a ranged touch attack to hit
+    the intended target.  Fort save is
+    needed to avoid effect.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nCount 		= (nHD /3);
+    if (nCount == 0) { nCount = 1; }
+	int nDamage 	= d6(nCount);	
+	
+	effect eVis 	= EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eBolt;
+
+    //Fire cast spell at event for the specified target
+    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM));
+    //Make a saving throw check
+    if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget))
+    {
+        eBolt = EffectAbilityDecrease(ABILITY_WISDOM, nCount);
+        eBolt = SupernaturalEffect(eBolt);
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_coneacid.nss b/_module/nss/nw_s1_coneacid.nss
new file mode 100644
index 0000000..2ab7dcf
--- /dev/null
+++ b/_module/nss/nw_s1_coneacid.nss
@@ -0,0 +1,76 @@
+//::///////////////////////////////////////////////
+//:: Cone: Acid
+//:: NW_S1_ConeAcid
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A cone of damage eminated from the monster.  Does
+    a set amount of damage based upon the creatures HD
+    and can be halved with a Reflex Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDamage;
+	int nLoop 		= nHD / 3;
+	
+    float fDelay;
+	
+    if(nLoop == 0)
+    {
+        nLoop = 1;
+    }
+    
+	//Calculate the damage
+    for (nLoop; nLoop > 0; nLoop--)
+    {
+        nDamage = nDamage + d6(2);
+    }
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eCone;
+    effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
+
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    //Get first target in spell area
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_ACID));
+            //Determine effect delay
+            fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+            nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ACID);
+            //Set damage effect
+            eCone = EffectDamage(nDamage, DAMAGE_TYPE_ACID);
+            if(nDamage > 0)
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_conecold.nss b/_module/nss/nw_s1_conecold.nss
new file mode 100644
index 0000000..24cc011
--- /dev/null
+++ b/_module/nss/nw_s1_conecold.nss
@@ -0,0 +1,76 @@
+//::///////////////////////////////////////////////
+//:: Cone: Cold
+//:: NW_S1_ConeCold
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A cone of damage eminated from the monster.  Does
+    a set amount of damage based upon the creatures HD
+    and can be halved with a Reflex Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDamage;
+	int nLoop 		= nHD / 3;
+	
+    float fDelay;
+	
+    if(nLoop == 0)
+    {
+        nLoop = 1;
+    }
+    
+	//Calculate the damage
+    for (nLoop; nLoop > 0; nLoop--)
+    {
+        nDamage = nDamage + d6(2);
+    }
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eCone;
+    effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
+
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    //Get first target in spell area
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_COLD));
+            //Determine effect delay
+            fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+            nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
+            //Set damage effect
+            eCone = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
+            if(nDamage > 0)
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_conedisea.nss b/_module/nss/nw_s1_conedisea.nss
new file mode 100644
index 0000000..9abedbb
--- /dev/null
+++ b/_module/nss/nw_s1_conedisea.nss
@@ -0,0 +1,99 @@
+//::///////////////////////////////////////////////
+//:: Cone: Disease
+//:: NW_S1_ConeDisea
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creature spits out a cone of disease that cannot
+    be avoided unless a Reflex save is made.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 22, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nRacial 	= MyPRCGetRacialType(oNPC);
+	int nDisease;
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    float fDelay;
+	
+	effect eCone 	= EffectDisease(nDisease);
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DISEASE_S);
+
+
+    //Determine the disease type based on the Racial Type and HD
+    switch (nRacial)
+    {
+        case RACIAL_TYPE_OUTSIDER:
+            nDisease = DISEASE_DEMON_FEVER;
+        break;
+        case RACIAL_TYPE_VERMIN:
+            nDisease = DISEASE_VERMIN_MADNESS;
+        break;
+        case RACIAL_TYPE_UNDEAD:
+            if(nHD <= 3)
+            {
+                nDisease = DISEASE_ZOMBIE_CREEP;
+            }
+            else if (nHD > 3 && nHD <= 10)
+            {
+                nDisease = DISEASE_GHOUL_ROT;
+            }
+            else if(nHD > 10)
+            {
+                nDisease = DISEASE_MUMMY_ROT;
+            }
+        default:
+            if(nHD <= 3)
+            {
+                nDisease = DISEASE_MINDFIRE;
+            }
+            else if (nHD > 3 && nHD <= 10)
+            {
+                nDisease = DISEASE_RED_ACHE;
+            }
+            else if(nHD > 10)
+            {
+                nDisease = DISEASE_SHAKES;
+            }
+
+
+        break;
+    }
+
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    //Get first target in spell area
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_CONE_DISEASE));
+            //Get the delay time
+            fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
+            //Apply the VFX impact and effects
+            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
+
+    }
+}
+
+
+
diff --git a/_module/nss/nw_s1_coneelec.nss b/_module/nss/nw_s1_coneelec.nss
new file mode 100644
index 0000000..a4fa75b
--- /dev/null
+++ b/_module/nss/nw_s1_coneelec.nss
@@ -0,0 +1,78 @@
+//::///////////////////////////////////////////////
+//:: Cone: Lightning
+//:: NW_S1_ConeElec
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A cone of damage eminates from the monster.  Does
+    a set amount of damage based upon the creatures HD
+    and can be halved with a Reflex Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDamage;
+	int nLoop 		= nHD / 3;
+	
+    float fDelay;
+	
+    if(nLoop == 0)
+    {
+        nLoop = 1;
+    }
+    
+	//Calculate the damage
+    for (nLoop; nLoop > 0; nLoop--)
+    {
+        nDamage = nDamage + d6(2);
+    }
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_HAND);
+    effect eCone;
+    effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
+
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    //Get first target in spell area
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_LIGHTNING));
+            //Determine effect delay
+            fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+            nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
+            //Set damage effect
+            eCone = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
+            if(nDamage > 0)
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget,0.5));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_conesonic.nss b/_module/nss/nw_s1_conesonic.nss
new file mode 100644
index 0000000..79c1d46
--- /dev/null
+++ b/_module/nss/nw_s1_conesonic.nss
@@ -0,0 +1,75 @@
+//::///////////////////////////////////////////////
+//:: Cone: Sonic
+//:: NW_S1_ConeSonic
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A cone of damage eminated from the monster.  Does
+    a set amount of damage based upon the creatures HD
+    and can be halved with a Reflex Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDamage;
+	int nLoop = nHD / 3;
+	
+    float fDelay;
+	
+    if(nLoop == 0)
+    {
+        nLoop = 1;
+    }
+    
+	//Calculate the damage
+    for (nLoop; nLoop > 0; nLoop--)
+    {
+        nDamage = nDamage + d6(2);
+    }
+    location lTargetLocation = GetSpellTargetLocation();
+
+    effect eCone;
+    effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
+
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    //Get first target in spell area
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_CONE_SONIC));
+            //Determine effect delay
+            fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
+            //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+            nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,DAMAGE_TYPE_SONIC);
+            //Set damage effect
+            eCone = EffectDamage(nDamage, DAMAGE_TYPE_SONIC);
+            if(nDamage > 0)
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_dragfear.nss b/_module/nss/nw_s1_dragfear.nss
new file mode 100644
index 0000000..f95e397
--- /dev/null
+++ b/_module/nss/nw_s1_dragfear.nss
@@ -0,0 +1,119 @@
+//::///////////////////////////////////////////////
+//:: Dragon Breath Fear
+//:: NW_S1_DragFear
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Calculates the proper DC Save for the
+    breath weapon based on the HD of the dragon.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 9, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+    //Declare major variables
+    int nAge = GetHitDice(OBJECT_SELF);
+    int nCount;
+    int nDC;
+    float fDelay;
+    object oTarget;
+    effect eBreath = EffectFrightened();
+    effect eFear = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
+    effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
+    effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink = EffectLinkEffects(eBreath, eDur);
+    eLink = EffectLinkEffects(eLink, eFear);
+
+    //Determine the duration and save DC
+    if (nAge <= 6) //Wyrmling
+    {
+        nDC = 13;
+        nCount = 1;
+    }
+    else if (nAge >= 7 && nAge <= 9) //Very Young
+    {
+        nDC = 15;
+        nCount = 2;
+    }
+    else if (nAge >= 10 && nAge <= 12) //Young
+    {
+        nDC = 17;
+        nCount = 3;
+    }
+    else if (nAge >= 13 && nAge <= 15) //Juvenile
+    {
+        nDC = 19;
+        nCount = 4;
+    }
+    else if (nAge >= 16 && nAge <= 18) //Young Adult
+    {
+        nDC = 21;
+        nCount = 5;
+    }
+    else if (nAge >= 19 && nAge <= 21) //Adult
+    {
+        nDC = 24;
+        nCount = 6;
+    }
+    else if (nAge >= 22 && nAge <= 24) //Mature Adult
+    {
+        nDC = 27;
+        nCount = 7;
+    }
+    else if (nAge >= 25 && nAge <= 27) //Old
+    {
+        nDC = 28;
+        nCount = 8;
+    }
+    else if (nAge >= 28 && nAge <= 30) //Very Old
+    {
+        nDC = 30;
+        nCount = 9;
+    }
+    else if (nAge >= 31 && nAge <= 33) //Ancient
+    {
+        nDC = 32;
+        nCount = 10;
+    }
+    else if (nAge >= 34 && nAge <= 37) //Wyrm
+    {
+        nDC = 34;
+        nCount = 11;
+    }
+    else if (nAge > 37) //Great Wyrm
+    {
+        nDC = 37;
+        nCount = 12;
+    }
+    PlayDragonBattleCry();
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE);
+    //Get first target in spell area
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != OBJECT_SELF && !GetIsReactionTypeFriendly(oTarget))
+        {
+            nCount = GetScaledDuration(nCount, oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_FEAR));
+            //Determine the effect delay time
+            fDelay = GetDistanceBetween(oTarget, OBJECT_SELF)/20;
+            //Make a saving throw check
+            if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, OBJECT_SELF, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE);
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_dragfeara.nss b/_module/nss/nw_s1_dragfeara.nss
new file mode 100644
index 0000000..2bb5009
--- /dev/null
+++ b/_module/nss/nw_s1_dragfeara.nss
@@ -0,0 +1,45 @@
+//::///////////////////////////////////////////////
+//:: Aura of Fear On Enter
+//:: NW_S1_DragFearA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Upon entering the aura of the creature the player
+    must make a will save or be struck with fear because
+    of the creatures presence.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+void main()
+{
+    //Declare major variables
+    object oTarget = GetEnteringObject();
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+    effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
+    effect eDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
+    effect eDur2 = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eFear = EffectFrightened();
+    effect eLink = EffectLinkEffects(eFear, eDur);
+    eLink = EffectLinkEffects(eLink, eDur2);
+
+    int nHD = GetHitDice(GetAreaOfEffectCreator());
+    int nDC = 10 + GetHitDice(GetAreaOfEffectCreator())/3;
+    int nDuration = GetScaledDuration(nHD, oTarget);
+    if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
+    {
+        //Fire cast spell at event for the specified target
+        SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_FEAR));
+        //Make a saving throw check
+        if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
+        {
+            //Apply the VFX impact and effects
+            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
+            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_feroc3.nss b/_module/nss/nw_s1_feroc3.nss
new file mode 100644
index 0000000..58a44cb
--- /dev/null
+++ b/_module/nss/nw_s1_feroc3.nss
@@ -0,0 +1,41 @@
+//::///////////////////////////////////////////////
+//:: Ferocity 3
+//:: NW_S1_Feroc3
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    The Dex and Str of the target increases
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Aug 13, 2001
+//:://////////////////////////////////////////////
+
+void main()
+{
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION);	//:: Determine the duration by getting the con modifier
+	int nIncrease 	= 9;
+    int nDuration 	= 1 + nCONMod;
+	if(nDuration == 0) { nDuration = 1; }
+
+
+    effect eDex 	= EffectAbilityIncrease(ABILITY_DEXTERITY, nIncrease);
+    effect eStr 	= EffectAbilityIncrease(ABILITY_STRENGTH, nIncrease);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
+    effect eLink 	= EffectLinkEffects(eStr, eDex);
+    eLink 			= EffectLinkEffects(eLink, eDur);
+    eLink 			= ExtraordinaryEffect(eLink);	//:: Make effect extraordinary
+
+    //effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
+    SignalEvent(oNPC, EventSpellCastAt(oNPC, SPELLABILITY_FEROCITY_3, FALSE));
+    if (nCONMod > 0)
+    {
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oNPC, RoundsToSeconds(nDuration));
+        //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF) ;
+    }
+}
diff --git a/_module/nss/nw_s1_gazechaos.nss b/_module/nss/nw_s1_gazechaos.nss
new file mode 100644
index 0000000..950ce62
--- /dev/null
+++ b/_module/nss/nw_s1_gazechaos.nss
@@ -0,0 +1,69 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Destroy Law
+//:: NW_S1_GazeChaos
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save and are of Lawful alignment.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 13, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze = EffectDeath();
+    effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            if(GetAlignmentLawChaos(oTarget) == ALIGNMENT_LAWFUL)
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DESTROY_LAW));
+                //Determine effect delay
+                float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
+                {
+                    //Apply the VFX impact and effects
+                    //DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazecharm.nss b/_module/nss/nw_s1_gazecharm.nss
new file mode 100644
index 0000000..e4a0622
--- /dev/null
+++ b/_module/nss/nw_s1_gazecharm.nss
@@ -0,0 +1,76 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Charm
+//:: NW_S1_GazeCharm
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 9, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze = EffectCharmed();
+
+    effect eVis 	= EffectVisualEffect(VFX_IMP_CHARM);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eVisDur 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eDur, eVisDur);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
+        {
+            nDuration = GetScaledDuration(nDuration, oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_CHARM));
+            //Determine effect delay
+            float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
+            {
+                eGaze = GetScaledEffect(eGaze, oTarget);
+                eLink = EffectLinkEffects(eLink, eGaze);
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_gazeconfu.nss b/_module/nss/nw_s1_gazeconfu.nss
new file mode 100644
index 0000000..4add32f
--- /dev/null
+++ b/_module/nss/nw_s1_gazeconfu.nss
@@ -0,0 +1,77 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Confusion
+//:: NW_S1_GazeConfu
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 9, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze 	= EffectConfused();
+    effect eVis 	= EffectVisualEffect(VFX_IMP_CONFUSION_S);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eVisDur 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eLink 	= EffectLinkEffects(eDur, eVisDur);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            if(oTarget != oNPC)
+            {
+                nDuration = GetScaledDuration(nDuration , oTarget);
+                //Determine effect delay
+                float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_CONFUSION));
+                if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
+                {
+                    eGaze = GetScaledEffect(eGaze, oTarget);
+                    eLink = EffectLinkEffects(eLink, eGaze);
+
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_gazedaze.nss b/_module/nss/nw_s1_gazedaze.nss
new file mode 100644
index 0000000..f0a8c2d
--- /dev/null
+++ b/_module/nss/nw_s1_gazedaze.nss
@@ -0,0 +1,74 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Daze
+//:: NW_S1_GazeDaze
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze 	= EffectDazed();
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DAZED_S);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eVisDur	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eLink 	= EffectLinkEffects(eGaze, eVisDur);
+    eLink 			= EffectLinkEffects(eLink, eDur);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DAZE));
+			
+            //Determine effect delay
+            float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazedeath.nss b/_module/nss/nw_s1_gazedeath.nss
new file mode 100644
index 0000000..635ee53
--- /dev/null
+++ b/_module/nss/nw_s1_gazedeath.nss
@@ -0,0 +1,66 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Death
+//:: NW_S1_GazeDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 9, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze = EffectDeath();
+    effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) || oTarget != oNPC)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DEATH));
+            //Determine effect delay
+            float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazedomn.nss b/_module/nss/nw_s1_gazedomn.nss
new file mode 100644
index 0000000..56e56e0
--- /dev/null
+++ b/_module/nss/nw_s1_gazedomn.nss
@@ -0,0 +1,78 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Dominate
+//:: NW_S1_GazeDomn
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 9, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+
+    effect eGaze = EffectDominated();
+    effect eVis = EffectVisualEffect(VFX_IMP_DOMINATE_S);
+    effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
+    effect eLink = EffectLinkEffects(eDur, eVisDur);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DOMINATE));
+            //Determine effect delay
+            float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            if(GetIsEnemy(oTarget))
+            {
+                if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
+                {
+                    eGaze = GetScaledEffect(eGaze, oTarget);
+                    eLink = EffectLinkEffects(eLink, eGaze);
+
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazedoom.nss b/_module/nss/nw_s1_gazedoom.nss
new file mode 100644
index 0000000..cb359b5
--- /dev/null
+++ b/_module/nss/nw_s1_gazedoom.nss
@@ -0,0 +1,74 @@
+//::///////////////////////////////////////////////
+//:: Gaze of Doom
+//:: NW_S1_GazeDoom.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    If the target fails a save they recieve a -2
+    penalty to all saves, attack rolls, damage and
+    skill checks for the duration of the spell.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Oct 22, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DOOM);
+    effect eSaves 	= EffectSavingThrowDecrease(SAVING_THROW_ALL, 2);
+    effect eAttack 	= EffectAttackDecrease(2);
+    effect eDamage 	= EffectDamageDecrease(2);
+    effect eSkill 	= EffectSkillDecrease(SKILL_ALL_SKILLS, 2);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eAttack, eDamage);
+    eLink 			= EffectLinkEffects(eLink, eSaves);
+    eLink 			= EffectLinkEffects(eLink, eSkill);
+    eLink 			= EffectLinkEffects(eLink, eDur);
+
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, GetSpellTargetLocation());
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            if(oTarget != oNPC)
+            {
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DOOM));
+                //Spell Resistance and Saving throw
+                if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
+                {
+                    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+                    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink , oTarget, RoundsToSeconds(nDuration));
+                }
+            }
+        }
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, GetSpellTargetLocation());
+    }
+}
diff --git a/_module/nss/nw_s1_gazeevil.nss b/_module/nss/nw_s1_gazeevil.nss
new file mode 100644
index 0000000..eb2a269
--- /dev/null
+++ b/_module/nss/nw_s1_gazeevil.nss
@@ -0,0 +1,70 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Deatroy Good
+//:: NW_S1_GazeEvil
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 13, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze 	= EffectDeath();
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DEATH);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_GOOD)
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DEATH));
+                //Determine effect delay
+                float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
+                {
+                    //Apply the VFX impact and effects
+                    //DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazefear.nss b/_module/nss/nw_s1_gazefear.nss
new file mode 100644
index 0000000..333d85c
--- /dev/null
+++ b/_module/nss/nw_s1_gazefear.nss
@@ -0,0 +1,74 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Fear
+//:: NW_S1_GazeFear
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 9, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	if(nDuration == 0) { nDuration = 1; }	
+	nDuration = GetScaledDuration(nDuration , oTarget);
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze 	= EffectFrightened();
+    effect eVis 	= EffectVisualEffect(VFX_IMP_FEAR_S);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eVisDur 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
+    effect eLink 	= EffectLinkEffects(eGaze, eVisDur);
+    eLink 			= EffectLinkEffects(eLink, eDur);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        nDuration = GetScaledDuration(nDuration , oTarget);
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_FEAR));
+            //Determine effect delay
+            float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, oNPC, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazegood.nss b/_module/nss/nw_s1_gazegood.nss
new file mode 100644
index 0000000..6ce014d
--- /dev/null
+++ b/_module/nss/nw_s1_gazegood.nss
@@ -0,0 +1,70 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Deatroy Evil
+//:: NW_S1_GazeGood
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 13, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze 	= EffectDeath();
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DEATH);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_EVIL)
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DEATH));
+                //Determine effect delay
+                float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
+                {
+                    //Apply the VFX impact and effects
+                    //DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazelaw.nss b/_module/nss/nw_s1_gazelaw.nss
new file mode 100644
index 0000000..14a9401
--- /dev/null
+++ b/_module/nss/nw_s1_gazelaw.nss
@@ -0,0 +1,71 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Deatroy Chaos
+//:: NW_S1_GazeLaw
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 13, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+    location lTargetLocation = GetSpellTargetLocation();
+	
+    effect eGaze 	= EffectDeath();
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DEATH);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            if(GetAlignmentLawChaos(oTarget) == ALIGNMENT_CHAOTIC)
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_DESTROY_LAW));
+                //Determine effect delay
+                float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
+                {
+                    //Apply the VFX impact and effects
+                    //DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eGaze, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_gazestun.nss b/_module/nss/nw_s1_gazestun.nss
new file mode 100644
index 0000000..8c44399
--- /dev/null
+++ b/_module/nss/nw_s1_gazestun.nss
@@ -0,0 +1,73 @@
+//::///////////////////////////////////////////////
+//:: Gaze: Stun
+//:: NW_S1_GazeStun
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Cone shape that affects all within the AoE if they
+    fail a Will Save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 9, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "x0_i0_match"
+
+void main()
+{
+//--------------------------------------------------------------------------
+// Make sure we are not blind
+//--------------------------------------------------------------------------
+    if (GetHasEffect(EFFECT_TYPE_BLINDNESS, OBJECT_SELF))
+    {
+        FloatingTextStrRefOnCreature(84530, OBJECT_SELF, FALSE);
+        return;
+    }
+	
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDuration 	= 1 + (nHD / 3);
+	
+    location lTargetLocation = GetSpellTargetLocation();
+
+    effect eGaze 	= EffectStunned();
+    effect eVis 	= EffectVisualEffect(VFX_IMP_STUN);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eVisDur 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eLink 	= EffectLinkEffects(eDur, eVisDur);
+    
+	//Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_GAZE_STUNNED));
+            //Determine effect delay
+            float fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            if(!/*WillSave*/PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
+            {
+                eGaze = GetScaledEffect(eGaze, oTarget);
+                eLink = EffectLinkEffects(eLink, eGaze);
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
diff --git a/_module/nss/nw_s1_golemgas.nss b/_module/nss/nw_s1_golemgas.nss
new file mode 100644
index 0000000..6fb1495
--- /dev/null
+++ b/_module/nss/nw_s1_golemgas.nss
@@ -0,0 +1,41 @@
+//::///////////////////////////////////////////////
+//:: Golem Breath
+//:: NW_S1_GolemGas
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Iron Golem spits out a cone of poison.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 22, 2001
+//:://////////////////////////////////////////////
+
+//#include "wm_include"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+    //Declare major variables
+    location lTargetLocation = GetSpellTargetLocation();
+    object oTarget;
+    effect eCone = EffectPoison(POISON_IRON_GOLEM);
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_GOLEM_BREATH_GAS));
+            //Determine effect delay
+            float fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
+            //Apply poison effect
+            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
+    }
+}
+
+
+
diff --git a/_module/nss/nw_s1_hndbreath.nss b/_module/nss/nw_s1_hndbreath.nss
new file mode 100644
index 0000000..e142797
--- /dev/null
+++ b/_module/nss/nw_s1_hndbreath.nss
@@ -0,0 +1,66 @@
+//::///////////////////////////////////////////////
+//:: Hell Hound Fire Breath
+//:: NW_S1_HndBreath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A cone of fire eminates from the hound.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);
+    int nDamage 	= d6(2);
+	
+    float fDelay;
+	
+    location lTargetLocation = GetSpellTargetLocation();
+
+    effect eCone;
+    effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget))
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HELL_HOUND_FIREBREATH));
+			
+			//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+			nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
+			
+            //Determine effect delay
+            fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+			
+            //Set damage effect
+            eCone = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
+            if(nDamage > 0)
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);
+    }
+}
+
+
+
diff --git a/_module/nss/nw_s1_howlconf.nss b/_module/nss/nw_s1_howlconf.nss
new file mode 100644
index 0000000..f9d770e
--- /dev/null
+++ b/_module/nss/nw_s1_howlconf.nss
@@ -0,0 +1,67 @@
+//::///////////////////////////////////////////////
+//:: Howl: Confuse
+//:: NW_S1_HowlConf
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A howl emanates from the creature which affects
+    all within 20ft unless they make a save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/4);
+	int nDuration 	= 1 + (nHD/4);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+	float fDelay;
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_CONFUSION_S);
+    effect eHowl 	= EffectConfused();
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eDur2 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eImpact 	= EffectVisualEffect(VFX_FNF_HOWL_MIND);
+    effect eLink 	= EffectLinkEffects(eHowl, eDur);
+    eLink 			= EffectLinkEffects(eLink, eDur2);
+
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
+        {
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_CONFUSE));
+            fDelay = GetDistanceToObject(oTarget)/10;
+            //Make a saving throw check
+            if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_howldaze.nss b/_module/nss/nw_s1_howldaze.nss
new file mode 100644
index 0000000..bd8e20c
--- /dev/null
+++ b/_module/nss/nw_s1_howldaze.nss
@@ -0,0 +1,65 @@
+//::///////////////////////////////////////////////
+//:: Howl: Daze
+//:: NW_S1_HowlDaze
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A howl emanates from the creature which affects
+    all within 10ft unless they make a save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/4);
+	int nDuration 	= 1 + (nHD/4);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+	float fDelay;
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DAZED_S);
+    effect eHowl 	= EffectDazed();
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eDur2 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eImpact 	= EffectVisualEffect(VFX_FNF_HOWL_MIND);
+    effect eLink 	= EffectLinkEffects(eHowl, eDur);
+    eLink 			= EffectLinkEffects(eLink, eDur2);
+
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
+        {
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_DAZE));
+            fDelay = GetDistanceToObject(oTarget)/10;
+            //Make a saving throw check
+            if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, oNPC, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_howldeath.nss b/_module/nss/nw_s1_howldeath.nss
new file mode 100644
index 0000000..5730647
--- /dev/null
+++ b/_module/nss/nw_s1_howldeath.nss
@@ -0,0 +1,59 @@
+//::///////////////////////////////////////////////
+//:: Howl: Death
+//:: NW_S1_HowlDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A howl emanates from the creature which affects
+    all within 10ft unless they make a save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/4);
+	
+	float fDelay;	
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DEATH);
+    effect eImpact 	= EffectVisualEffect(VFX_FNF_HOWL_ODD);
+    effect eHowl 	= EffectDeath();
+
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_DEATH));
+            fDelay = GetDistanceToObject(oTarget)/10;
+            //Make a saving throw check
+            if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_howlfear.nss b/_module/nss/nw_s1_howlfear.nss
new file mode 100644
index 0000000..13dcfaf
--- /dev/null
+++ b/_module/nss/nw_s1_howlfear.nss
@@ -0,0 +1,68 @@
+//::///////////////////////////////////////////////
+//:: Howl: Fear
+//:: NW_S1_HowlFear
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A howl emanates from the creature which affects
+    all within 10ft unless they make a save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/4);
+	int nDuration 	= 1 + (nHD/4);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+	float fDelay;
+    
+	effect eVis 	= EffectVisualEffect(VFX_IMP_FEAR_S);
+    effect eHowl 	= EffectFrightened();
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eDur2 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
+    effect eImpact 	= EffectVisualEffect(VFX_FNF_HOWL_MIND);
+    effect eLink 	= EffectLinkEffects(eHowl, eDur);
+    eLink 			= EffectLinkEffects(eLink, eDur2);
+
+
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
+        {
+            fDelay = GetDistanceToObject(oTarget)/10;
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_FEAR));
+
+            //Make a saving throw check
+            if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_howlparal.nss b/_module/nss/nw_s1_howlparal.nss
new file mode 100644
index 0000000..b0ecd43
--- /dev/null
+++ b/_module/nss/nw_s1_howlparal.nss
@@ -0,0 +1,65 @@
+//::///////////////////////////////////////////////
+//:: Howl: Paralysis
+//:: NW_S1_HowlParal
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A howl emanates from the creature which affects
+    all within 10ft unless they make a save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/4);
+	int nDuration 	= 1 + (nHD/4);
+	if(nDuration == 0) { nDuration = 1; }	
+	
+	float fDelay;
+	
+    effect eHowl 	= EffectParalyze();
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eDur2 	= EffectVisualEffect(VFX_DUR_PARALYZE_HOLD);
+    effect eImpact 	= EffectVisualEffect(VFX_FNF_HOWL_ODD);
+    effect eLink 	= EffectLinkEffects(eHowl, eDur);
+    eLink 			= EffectLinkEffects(eLink, eDur2);
+    
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
+        {
+            fDelay = GetDistanceToObject(oTarget)/10;
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_PARALYSIS));
+
+            //Make a saving throw check
+            if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_NONE, oNPC, fDelay))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_howlsonic.nss b/_module/nss/nw_s1_howlsonic.nss
new file mode 100644
index 0000000..4de9768
--- /dev/null
+++ b/_module/nss/nw_s1_howlsonic.nss
@@ -0,0 +1,65 @@
+//::///////////////////////////////////////////////
+//:: Howl: Sonic
+//:: NW_S1_HowlSonic
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A howl emanates from the creature which affects
+    all within 10ft unless they make a save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/4);	
+    int nDamage;
+	int nSonic 		= nHD/4;
+    if(nSonic == 0) { nSonic = 1; }	
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_SONIC);
+    effect eHowl;
+    effect eImpact 	= EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY);
+	
+    float fDelay;
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsFriend(oTarget) && oTarget != oNPC)
+        {
+            fDelay = GetDistanceToObject(oTarget)/20;
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_SONIC));
+            nDamage = d6(nSonic);
+            //Make a saving throw check
+            if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_SONIC, oNPC, fDelay))
+            {
+                nDamage = nDamage / 2;
+            }
+            //Set damage effect
+            eHowl = EffectDamage(nDamage, DAMAGE_TYPE_SONIC);
+            //Apply the VFX impact and effects
+            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    }
+}
\ No newline at end of file
diff --git a/_module/nss/nw_s1_howlstun.nss b/_module/nss/nw_s1_howlstun.nss
new file mode 100644
index 0000000..962d9b9
--- /dev/null
+++ b/_module/nss/nw_s1_howlstun.nss
@@ -0,0 +1,66 @@
+//::///////////////////////////////////////////////
+//:: Howl: Stun
+//:: NW_S1_HowlStun
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A howl emanates from the creature which affects
+    all within 10ft unless they make a save.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/4);		
+	int nDuration 	= 1 + (nHD/4);
+	
+	float fDelay;
+
+    effect eVis 	= EffectVisualEffect(VFX_IMP_STUN);
+    effect eHowl 	= EffectStunned();
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eDur2 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eImpact 	= EffectVisualEffect(VFX_FNF_HOWL_MIND);
+    effect eLink 	= EffectLinkEffects(eHowl, eDur);
+    eLink 			= EffectLinkEffects(eLink, eDur2);
+    
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && !GetIsFriend(oTarget) && oTarget != oNPC)
+        {
+            fDelay = GetDistanceToObject(oTarget)/10;
+            nDuration = GetScaledDuration(nDuration , oTarget);
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_HOWL_STUN));
+
+            //Make a saving throw check
+            if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
+            {
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+	}
+}	
+
diff --git a/_module/nss/nw_s1_krenscare.nss b/_module/nss/nw_s1_krenscare.nss
new file mode 100644
index 0000000..7909916
--- /dev/null
+++ b/_module/nss/nw_s1_krenscare.nss
@@ -0,0 +1,61 @@
+//::///////////////////////////////////////////////
+//:: Krenshar Fear Stare
+//:: NW_S1_KrenScare
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Causes those in the gaze to be struck with fear
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Jan 8, 2002
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);		
+    int nMetaMagic 	= PRCGetMetaMagicFeat();
+	
+	float fDelay;
+	
+    effect eVis 	= EffectVisualEffect(VFX_IMP_FEAR_S);
+    effect eFear 	= EffectFrightened();
+    effect eMind 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    //Link the fear and mind effects
+    effect eLink 	= EffectLinkEffects(eFear, eMind);
+    eLink 			= EffectLinkEffects(eLink, eDur);
+
+
+    //Get first target in the spell cone
+    oTarget = GetFirstObjectInShape(SHAPE_CONE, 10.0, GetSpellTargetLocation(), TRUE);
+    while(GetIsObjectValid(oTarget))
+    {
+        //Make faction check
+        if(GetIsEnemy(oTarget))
+        {
+            fDelay = GetDistanceToObject(oTarget)/20;
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_KRENSHAR_SCARE));
+            //Make a will save
+            if(!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
+            {
+                //Apply the linked effects and the VFX impact
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(3)));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            }
+        }
+        //Get next target in the spell cone
+        oTarget = GetNextObjectInShape(SHAPE_CONE, 10.0, GetSpellTargetLocation(), TRUE);
+    }
+}
diff --git a/_module/nss/nw_s1_mephsalt.nss b/_module/nss/nw_s1_mephsalt.nss
new file mode 100644
index 0000000..03b0b97
--- /dev/null
+++ b/_module/nss/nw_s1_mephsalt.nss
@@ -0,0 +1,63 @@
+//::///////////////////////////////////////////////
+//:: Salt Mephit Breath
+//:: NW_S1_MephSalt
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Salt Mephit shoots out a bolt of corrosive material
+    that causes 1d4 damage and reduces AC and Attack by 2
+	
+	This should be a cone - Jaysyn
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);
+    int nDamage 	= d4();	
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
+    effect eBolt, eAttack, eAC;
+    effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+
+    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ACID);
+	
+    //Make a ranged touch attack
+    int nTouch = TouchAttackRanged(oTarget);
+    if(nDamage == 0) {nTouch = 0;}
+    if(nTouch > 0)
+    {
+        if(nTouch == 2)
+        {
+            nDamage *= 2;
+        }
+        //Fire cast spell at event for the specified target
+        SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_MEPHIT_SALT_BREATH));
+
+        //Set damage, AC mod and attack mod effects
+        eBolt 			= EffectDamage(nDamage, DAMAGE_TYPE_ACID);
+        eAC 			= EffectACDecrease(2);
+        eAttack 		= EffectAttackDecrease(2);
+        effect eLink 	= EffectLinkEffects(eAttack, eAC);
+        eLink 			= EffectLinkEffects(eLink, eDur);
+
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(3));
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_mephsteam.nss b/_module/nss/nw_s1_mephsteam.nss
new file mode 100644
index 0000000..9b46d89
--- /dev/null
+++ b/_module/nss/nw_s1_mephsteam.nss
@@ -0,0 +1,67 @@
+//::///////////////////////////////////////////////
+//:: Steam Mephit Breath
+//:: NW_S1_MephSteam
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Steam Mephit shoots out a bolt of steam
+    that causes 1d4 damage and reduces AC by 4
+    and Attack by 2
+	
+	This should be a cone - Jaysyn
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 11, 2001
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);
+    int nDamage 	= d4();	
+	
+
+    effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
+    effect eBolt, eAttack, eAC;
+    effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+
+
+    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
+	
+    //Make a ranged touch attack
+    int nTouch = TouchAttackRanged(oTarget);
+    if(nDamage == 0) {nTouch = 0;}
+	
+    if(nTouch > 0)
+    {
+        if(nTouch == 2)
+        {
+            nDamage *= 2;
+        }
+        //Fire cast spell at event for the specified target
+        SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_MEPHIT_STEAM_BREATH));
+
+        //Set damage, AC mod and attack mod effects
+        eBolt 			= EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
+        eAC 			= EffectACDecrease(4);
+        eAttack 		= EffectAttackDecrease(2);
+        effect eLink	= EffectLinkEffects(eAC, eAttack);
+        eLink 			= EffectLinkEffects(eLink, eDur);
+
+        //Apply the VFX impact and effects
+        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(3));
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
+        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
+    }
+}
diff --git a/_module/nss/nw_s1_mumundead.nss b/_module/nss/nw_s1_mumundead.nss
new file mode 100644
index 0000000..f11db57
--- /dev/null
+++ b/_module/nss/nw_s1_mumundead.nss
@@ -0,0 +1,53 @@
+//::///////////////////////////////////////////////
+//:: Bolster Undead
+//:: NW_S1_MumUndead
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    This spell increases the Turn Resistance of
+    all undead around the caster by an amount
+    scaled with HD.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 22, 2002
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+    int nScaling	= nHD / 4;
+	
+    if(nScaling == 0) {nScaling = 1;}
+	
+	float fDelay;
+	
+    effect eTurn = EffectTurnResistanceIncrease(nScaling);
+    effect eVis = EffectVisualEffect(VFX_IMP_HEAD_EVIL);
+    effect eImpact = EffectVisualEffect(VFX_FNF_LOS_EVIL_30);
+	
+    ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetLocation(oNPC));    
+    
+	oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(GetIsFriend(oTarget))
+        {
+            fDelay = GetRandomDelay();
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_MUMMY_BOLSTER_UNDEAD, FALSE));
+            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eTurn, oTarget, RoundsToSeconds(10)));
+            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+        }
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(oNPC));
+    }
+}
diff --git a/_module/nss/nw_s1_pulschrdr.nss b/_module/nss/nw_s1_pulschrdr.nss
new file mode 100644
index 0000000..b55902c
--- /dev/null
+++ b/_module/nss/nw_s1_pulschrdr.nss
@@ -0,0 +1,73 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Charisma Drain
+//:: NW_S1_PulsDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    int nDamage 	= nHD/5;
+	
+    if (nDamage == 0) {nDamage = 1;}
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+
+               //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_CHARISMA));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                //Make a saving throw check
+                if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
+                {
+                    //Set the Ability mod and change to supernatural effect
+                    eHowl = EffectAbilityDecrease(ABILITY_CHARISMA, nDamage);
+                    eHowl = SupernaturalEffect(eHowl);
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get first target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_pulscold.nss b/_module/nss/nw_s1_pulscold.nss
new file mode 100644
index 0000000..c5ff7d2
--- /dev/null
+++ b/_module/nss/nw_s1_pulscold.nss
@@ -0,0 +1,68 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Cold
+//:: NW_S1_PulsCold
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+	int nDamage 	= d6(nHD);
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
+    effect eHowl;
+	effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_COLD);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_COLD));
+
+                //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+                nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                eHowl = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
+                if(nDamage > 0)
+                {
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_pulscondr.nss b/_module/nss/nw_s1_pulscondr.nss
new file mode 100644
index 0000000..bfdbfcf
--- /dev/null
+++ b/_module/nss/nw_s1_pulscondr.nss
@@ -0,0 +1,71 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Constitution Drain
+//:: NW_S1_PulsDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    int nDamage 	= nHD/5;
+	
+    if (nDamage == 0) {nDamage = 1;}
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_CONSTITUTION));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                //Make a saving throw check
+                if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
+                {
+                    //Set the Ability mod and change to supernatural effect
+                    eHowl = EffectAbilityDecrease(ABILITY_CONSTITUTION, nDamage);
+                    eHowl = SupernaturalEffect(eHowl);
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get first target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_pulsdeath.nss b/_module/nss/nw_s1_pulsdeath.nss
new file mode 100644
index 0000000..7c949d1
--- /dev/null
+++ b/_module/nss/nw_s1_pulsdeath.nss
@@ -0,0 +1,68 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Death
+//:: NW_S1_PulsDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    int nDamage 	= nHD/5;
+	
+    if (nDamage == 0) {nDamage = 1;}
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
+    effect eHowl = EffectDeath();
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+    
+	ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+    
+	//Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget))
+        {
+            if(oTarget != OBJECT_SELF)
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_DEATH));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
+                {
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                    //DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_pulsdexdr.nss b/_module/nss/nw_s1_pulsdexdr.nss
new file mode 100644
index 0000000..d29872a
--- /dev/null
+++ b/_module/nss/nw_s1_pulsdexdr.nss
@@ -0,0 +1,70 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Dexterity Drain
+//:: NW_S1_PulsDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    int nDamage 	= nHD/5;
+	
+    if (nDamage == 0) {nDamage = 1;}
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_DEXTERITY));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                //Make a saving throw check
+                if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
+                {
+                    //Set the Ability mod and change to supernatural effect
+                    eHowl = EffectAbilityDecrease(ABILITY_DEXTERITY, nDamage);
+                    eHowl = SupernaturalEffect(eHowl);
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get first target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_pulsdis.nss b/_module/nss/nw_s1_pulsdis.nss
new file mode 100644
index 0000000..f81568c
--- /dev/null
+++ b/_module/nss/nw_s1_pulsdis.nss
@@ -0,0 +1,85 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Disease
+//:: NW_S1_PulsDis
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of disease spreads out from the creature
+    and infects all those within 10ft
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Aug 14, 2000
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nRacial 	= MyPRCGetRacialType(oNPC);
+	int nHD			= GetHitDice(oNPC);
+    int nDamage 	= d6(nHD);
+	int nDisease;
+	
+    float fDelay;
+	
+    effect eDisease;
+    effect ePulse 	= EffectVisualEffect(266);
+	effect eImpact 	= EffectVisualEffect(VFX_IMP_PULSE_NATURE);
+	
+    ApplyEffectAtLocation(DURATION_TYPE_INSTANT, ePulse, GetLocation(oNPC));
+
+    //Determine the disease type based on the Racial Type
+    switch (nRacial)
+    {
+        case RACIAL_TYPE_VERMIN:
+            nDisease = DISEASE_VERMIN_MADNESS;
+        break;
+        case RACIAL_TYPE_UNDEAD:
+            nDisease = DISEASE_FILTH_FEVER;
+        break;
+        case RACIAL_TYPE_OUTSIDER:
+            nDisease = DISEASE_DEMON_FEVER;
+        break;
+        case RACIAL_TYPE_MAGICAL_BEAST:
+            nDisease = DISEASE_SOLDIER_SHAKES;
+        break;
+        case RACIAL_TYPE_ABERRATION:
+            nDisease = DISEASE_BLINDING_SICKNESS;
+        break;
+        default:
+            nDisease = DISEASE_MINDFIRE;
+        break;
+    }
+    
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+    
+	//Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_DISEASE));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
+                eDisease = EffectDisease(nDisease);
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDisease, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_pulselec.nss b/_module/nss/nw_s1_pulselec.nss
new file mode 100644
index 0000000..2f85614
--- /dev/null
+++ b/_module/nss/nw_s1_pulselec.nss
@@ -0,0 +1,68 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Lightning
+//:: NW_S0_CallLghtn.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    All creatures within 10ft of the creature take
+    1d6 per HD up to 10d6
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 22, 2001
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDamage;
+	
+    effect eVis 		= EffectVisualEffect(VFX_IMP_LIGHTNING_S);
+	effect eLightning 	= EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_CHEST);
+    effect eHowl 		= EffectVisualEffect(VFX_IMP_PULSE_COLD);
+	
+    DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eHowl, GetLocation(oNPC)));
+
+    float fDelay;
+
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_LIGHTNING));
+                //Roll the damage
+                nDamage = d6(nHD);
+                //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+                nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                eHowl = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL);
+                if(nDamage > 0)
+                {
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget, 0.5));
+                }
+             }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_pulsfire.nss b/_module/nss/nw_s1_pulsfire.nss
new file mode 100644
index 0000000..9270aa9
--- /dev/null
+++ b/_module/nss/nw_s1_pulsfire.nss
@@ -0,0 +1,69 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Fire
+//:: NW_S1_PulsFire
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDamage;
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_FIRE);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != OBJECT_SELF)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_FIRE));
+                //Roll the damage
+                nDamage = d6(nHD);
+                //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+                nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_FIRE);
+                //Determine effect delay
+                fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
+                eHowl = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
+                if(nDamage > 0)
+                {
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_pulsholy.nss b/_module/nss/nw_s1_pulsholy.nss
new file mode 100644
index 0000000..20ae463
--- /dev/null
+++ b/_module/nss/nw_s1_pulsholy.nss
@@ -0,0 +1,89 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Holy
+//:: NW_S1_PulsHoly
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.  Undead are damaged, allies are healed.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+    int nDamage;
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_HEALING_M);
+    effect eVis2 = EffectVisualEffect(VFX_IMP_SUNSTRIKE);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_HOLY);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+    
+	//Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+
+        //Determine effect delay
+        fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+        //Roll the amount to heal or damage
+        nDamage = d4(nHD);
+        //If the target is not undead
+        if (MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
+        {
+            //Make a faction check
+            if(oTarget != oNPC)
+            {
+                if(GetIsFriend(oTarget))
+                {
+                    //Fire cast spell at event for the specified target
+                    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY, FALSE));
+                    //Set heal effect
+                    eHowl = EffectHeal(nDamage);
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        else
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+                nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_DIVINE);
+                //Set damage effect
+                eHowl = EffectDamage(nDamage, DAMAGE_TYPE_DIVINE) ;
+                if(nDamage > 0)
+                {
+                    //Fire cast spell at event for the specified target
+                    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY));
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_pulsintdr.nss b/_module/nss/nw_s1_pulsintdr.nss
new file mode 100644
index 0000000..8558364
--- /dev/null
+++ b/_module/nss/nw_s1_pulsintdr.nss
@@ -0,0 +1,72 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Intelligence Drain
+//:: NW_S1_PulsDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    int nDamage 	= nHD/5;
+	
+    if (nDamage == 0) {nDamage = 1;}
+	
+    float fDelay;
+
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_INTELLIGENCE));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                //Make a saving throw check
+                if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
+                {
+                    //Set the Ability mod and change to supernatural effect
+                    eHowl = EffectAbilityDecrease(ABILITY_INTELLIGENCE, nDamage);
+                    eHowl = SupernaturalEffect(eHowl);
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get first target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
+    }
+}
+
diff --git a/_module/nss/nw_s1_pulslvldr.nss b/_module/nss/nw_s1_pulslvldr.nss
new file mode 100644
index 0000000..f65e073
--- /dev/null
+++ b/_module/nss/nw_s1_pulslvldr.nss
@@ -0,0 +1,62 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Level Drain
+//:: NW_S1_PulsLvlDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+	object oTarget 	= GetEnteringObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+	float fDelay;
+		
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+	
+    ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetLocation(oNPC));
+	
+	//Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                fDelay = GetSpellEffectDelay(GetLocation(oNPC), oTarget)/20;
+                //Make a saving throw check
+                if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
+                {
+                    //Apply the VFX impact and effects
+                    eHowl = EffectNegativeLevel(1);
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_pulsneg.nss b/_module/nss/nw_s1_pulsneg.nss
new file mode 100644
index 0000000..9bfa749
--- /dev/null
+++ b/_module/nss/nw_s1_pulsneg.nss
@@ -0,0 +1,87 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Negative
+//:: NW_S1_PulsDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.  Undead are healed.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+	object oTarget 	= GetEnteringObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	int nDamage;
+	
+    float fDelay;
+	
+    effect eVis = EffectVisualEffect(VFX_IMP_HEALING_M);
+    effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;	
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            //Determine effect delay
+            fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            //Roll the amount to heal or damage
+            nDamage = d4(nHD);
+            //If the target is undead
+            if (MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
+            {
+                //Make a faction check
+                if(GetIsFriend(oTarget))
+                {
+                    //Fire cast spell at event for the specified target
+                    SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY, FALSE));
+                    //Set heal effect
+                    eHowl = EffectHeal(nDamage);
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+            else
+            {
+                if(!GetIsReactionTypeFriendly(oTarget) && MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
+                {
+                    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
+                    nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE);
+                    //Set damage effect
+                    eHowl = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE);
+                    if(nDamage > 0)
+                    {
+                        //Fire cast spell at event for the specified target
+                        SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY));
+                        //Apply the VFX impact and effects
+                        DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
+                        DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
+                    }
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
diff --git a/_module/nss/nw_s1_pulspois.nss b/_module/nss/nw_s1_pulspois.nss
new file mode 100644
index 0000000..252ae3a
--- /dev/null
+++ b/_module/nss/nw_s1_pulspois.nss
@@ -0,0 +1,138 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Poison
+//:: NW_S1_PulsPois
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  All who make a reflex save are not
+    poisoned.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 23, 2000
+//:://////////////////////////////////////////////
+#include "prc_inc_racial" 
+//#include "wm_include"
+
+void main()
+{
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+	int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);
+    int nRacial 	= MyPRCGetRacialType(oNPC);
+    int nPoison;
+	
+    float fDelay;
+	
+    effect ePoison;
+	effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
+
+    //Determine the poison type based on the Racial Type and HD
+    switch (nRacial)
+    {
+        case RACIAL_TYPE_OUTSIDER:
+            if (nHD <= 9)
+            {
+                nPoison = POISON_QUASIT_VENOM;
+            }
+            else if (nHD > 9  && nHD < 13)
+            {
+                nPoison = POISON_BEBILITH_VENOM;
+            }
+            else if (nHD >= 13)
+            {
+                nPoison = POISON_PIT_FIEND_ICHOR;
+            }
+        break;
+        case RACIAL_TYPE_VERMIN:
+            if (nHD < 3)
+            {
+                nPoison = POISON_TINY_SPIDER_VENOM;
+            }
+            else if (nHD <= 3 && nHD < 6)
+            {
+                nPoison = POISON_SMALL_SPIDER_VENOM;
+            }
+            else if (nHD <= 6 && nHD < 9)
+            {
+                nPoison = POISON_MEDIUM_SPIDER_VENOM;
+            }
+            else if (nHD <= 9 && nHD < 12)
+            {
+                nPoison =  POISON_LARGE_SPIDER_VENOM;
+            }
+            else if (nHD <= 12 && nHD < 15)
+            {
+                nPoison = POISON_HUGE_SPIDER_VENOM;
+            }
+            else if (nHD <= 15 && nHD < 18)
+            {
+                nPoison = POISON_GARGANTUAN_SPIDER_VENOM;
+            }
+            else if (nHD >= 18)
+            {
+                nPoison = POISON_COLOSSAL_SPIDER_VENOM;
+            }
+        break;
+        default:
+            if (nHD < 3)
+            {
+                nPoison = POISON_NIGHTSHADE;
+            }
+            else if (nHD <= 3 && nHD < 6)
+            {
+                nPoison = POISON_BLADE_BANE;
+            }
+            else if (nHD <= 6 && nHD < 9)
+            {
+                nPoison = POISON_BLOODROOT;
+            }
+            else if (nHD <= 9 && nHD < 12)
+            {
+                nPoison =  POISON_LARGE_SPIDER_VENOM;
+            }
+            else if (nHD <= 12 && nHD < 15)
+            {
+                nPoison = POISON_LICH_DUST;
+            }
+            else if (nHD <= 15 && nHD < 18)
+            {
+                nPoison = POISON_DARK_REAVER_POWDER;
+            }
+            else if (nHD >= 18 )
+            {
+                nPoison = POISON_BLACK_LOTUS_EXTRACT;
+            }
+        break;
+    }
+    
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+    
+	//Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_POISON));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                ePoison = EffectPoison(nPoison);
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
+
diff --git a/_module/nss/nw_s1_pulsspore.nss b/_module/nss/nw_s1_pulsspore.nss
new file mode 100644
index 0000000..7e9e34d
--- /dev/null
+++ b/_module/nss/nw_s1_pulsspore.nss
@@ -0,0 +1,50 @@
+//::///////////////////////////////////////////////
+//:: Vrock Spores
+//:: NW_S1_PulsSpore
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of disease spreads out from the creature
+    and infects all those within 10ft
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Jan 8, 2002
+//:://////////////////////////////////////////////
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    float fDelay;
+    effect eDisease;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
+    
+	ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+    
+	//Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_DISEASE));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                eDisease = EffectDisease(DISEASE_SOLDIER_SHAKES);
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDisease, oTarget));
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oNPC));
+    }
+}
diff --git a/_module/nss/nw_s1_pulsstrdr.nss b/_module/nss/nw_s1_pulsstrdr.nss
new file mode 100644
index 0000000..5f88eab
--- /dev/null
+++ b/_module/nss/nw_s1_pulsstrdr.nss
@@ -0,0 +1,71 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Strength Drain
+//:: NW_S1_PulsDeath
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    int nDamage 	= nHD/5;
+	
+    if (nDamage == 0) {nDamage = 1;}
+	
+    float fDelay;
+	
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;
+	
+	ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(oTarget != oNPC)
+        {
+            if(!GetIsReactionTypeFriendly(oTarget))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_STRENGTH));
+                //Determine effect delay
+                fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+                //Make a saving throw check
+                if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
+                {
+                    //Set the Ability mod and change to supernatural effect
+                    eHowl = EffectAbilityDecrease(ABILITY_STRENGTH, nDamage);
+                    eHowl = SupernaturalEffect(eHowl);
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                }
+            }
+        }
+        //Get next target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
+
diff --git a/_module/nss/nw_s1_pulswind.nss b/_module/nss/nw_s1_pulswind.nss
new file mode 100644
index 0000000..0572407
--- /dev/null
+++ b/_module/nss/nw_s1_pulswind.nss
@@ -0,0 +1,51 @@
+//::///////////////////////////////////////////////
+//:: Pulse Whirlwind
+//:: NW_S1_PulsWind
+//:: Copyright (c) 2001 Bioware Corp.
+//::///////////////////////////////////////////////
+/*
+    All those that fail a save are knocked
+    down by the elemental whirlwind.
+*/
+//::///////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Jan 8, 2002
+//::///////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+	int nHD 		= GetHitDice(oNPC);
+	int nSTRMod		= GetAbilityModifier(ABILITY_STRENGTH, oNPC);
+    int nDC			= 10 +nSTRMod+ (nHD/2);
+	
+    effect eDown = EffectKnockdown();
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_WIND);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
+    
+	//Get first target in spell area
+	oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
+        {
+            //Make a saving throw check
+            if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC))
+            {
+                //Apply the VFX impact and effects
+                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDown, oTarget, 5.0);
+            }
+            //Get next target in spell area
+        }
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
+    }
+}
diff --git a/_module/nss/nw_s1_pulswisdr.nss b/_module/nss/nw_s1_pulswisdr.nss
new file mode 100644
index 0000000..b1bf68c
--- /dev/null
+++ b/_module/nss/nw_s1_pulswisdr.nss
@@ -0,0 +1,68 @@
+//::///////////////////////////////////////////////
+//:: Pulse: Wisdom Drain
+//:: NW_S1_PulsWisDr
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    A wave of energy emanates from the creature which affects
+    all within 10ft.  Damage can be reduced by half for all
+    damaging variants.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 14, 2000
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget;
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);
+	
+    int nDamage 	= nHD/5;
+	
+    if (nDamage == 0) {nDamage = 1;}
+	
+    float fDelay;
+
+    effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
+    effect eHowl;
+    effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
+	
+    ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
+	
+    //Get first target in spell area
+    oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(OBJECT_SELF));
+    while(GetIsObjectValid(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_WISDOM));
+            //Determine effect delay
+            fDelay = GetDistanceBetween(oNPC, oTarget)/20;
+            //Make a saving throw check
+            if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
+            {
+                //Set the Ability mod and change to supernatural effect
+                eHowl = EffectAbilityDecrease(ABILITY_WISDOM, nDamage);
+                eHowl = SupernaturalEffect(eHowl);
+                //Apply the VFX impact and effects
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHowl, oTarget));
+                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+            }
+        }
+        //Get first target in spell area
+        oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(OBJECT_SELF));
+    }
+}
+
diff --git a/_module/nss/nw_s1_smokeclaw.nss b/_module/nss/nw_s1_smokeclaw.nss
new file mode 100644
index 0000000..6db3666
--- /dev/null
+++ b/_module/nss/nw_s1_smokeclaw.nss
@@ -0,0 +1,64 @@
+//::///////////////////////////////////////////////
+//:: Smoke Claws
+//:: NW_S1_SmokeClaw
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    If a Belker succeeds at a touch attack the
+    target breaths in part of the Belker and suffers
+    3d4 damage per round until a Fortitude save is
+    made.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 23 , 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//#include "wm_include"
+
+void main()
+{
+	//if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+	object oTarget 	= PRCGetSpellTargetObject();
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);	
+    
+    int bSave = FALSE;
+	
+    effect eVis = EffectVisualEffect(VFX_COM_BLOOD_REG_RED);
+    effect eSmoke;
+    float fDelay = 0.0;
+	
+    //Make a touch attack
+    if(TouchAttackMelee(oTarget))
+    {
+        if(!GetIsReactionTypeFriendly(oTarget))
+        {
+            //Make a saving throw check
+            while (bSave == FALSE)
+            {
+                //Make a saving throw check
+                if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE, oNPC, fDelay))
+                {
+                   bSave = TRUE;
+                }
+                else
+                {
+                    //Set damage
+                    eSmoke = EffectDamage(d4(3));
+                    //Apply the VFX impact and effects
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eSmoke, oTarget));
+                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+                    //Increment the delay
+                    fDelay = fDelay + 6.0;
+                }
+            }
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_stink_a.nss b/_module/nss/nw_s1_stink_a.nss
new file mode 100644
index 0000000..67652dd
--- /dev/null
+++ b/_module/nss/nw_s1_stink_a.nss
@@ -0,0 +1,57 @@
+//::///////////////////////////////////////////////
+//:: Stinking Cloud On Enter
+//:: NW_S1_Stink_A.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Those within the area of effect must make a
+    fortitude save or be dazed.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 17, 2001
+//:://////////////////////////////////////////////
+
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+	object oTarget	= GetEnteringObject();  //Get the first object in the persistant area
+	
+    int nHD 		= GetHitDice(oNPC);
+	int nCONMod		= GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
+    int nDC			= 10 +nCONMod+ (nHD/2);	
+	
+    effect eStink 	= EffectDazed();
+    effect eMind 	= EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eMind, eStink);
+    eLink 			= EffectLinkEffects(eLink, eDur);
+
+    effect eVis 	= EffectVisualEffect(VFX_IMP_DAZED_S);
+
+    float fDelay;
+    
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+	
+    if(MyPRCGetRacialType(oTarget) != RACIAL_TYPE_VERMIN)
+    {
+        if(GetIsEnemy(oTarget))
+        {
+            //Fire cast spell at event for the specified target
+            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_STINKING_CLOUD));
+            //Make a Fort Save
+            if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_POISON))
+            {
+               fDelay = GetRandomDelay(0.25, 1.0);
+               //Apply the VFX impact and linked effects
+               DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+               DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(2)));
+            }
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_tyrantfga.nss b/_module/nss/nw_s1_tyrantfga.nss
new file mode 100644
index 0000000..a2752cb
--- /dev/null
+++ b/_module/nss/nw_s1_tyrantfga.nss
@@ -0,0 +1,56 @@
+//::///////////////////////////////////////////////
+//:: Tyrant Fog Zombie Mist Heartbeat
+//:: NW_S1_TyrantFgA.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creatures entering the area around the zombie
+    must save or take 1 point of Constitution
+    damage.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+
+//:: Declare major variables
+	object oNPC		= GetAreaOfEffectCreator();
+    object oTarget 	= GetEnteringObject();
+    //if (NullMagicOverride(GetArea(oTarget), oTarget, oTarget)) {return;}
+
+    int bAbsent 	= TRUE;
+    int nHD 		= GetHitDice(oNPC);
+	int nCHAMod		= GetAbilityModifier(ABILITY_CHARISMA, oNPC);
+    int nDC			= 10 +nCHAMod+ (nHD/2);	
+	
+	effect eTest;
+    effect eCon 	= EffectAbilityDecrease(ABILITY_CONSTITUTION, 1);    
+    eCon 			= ExtraordinaryEffect(eCon);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
+    effect eLink 	= EffectLinkEffects(eCon, eDur);
+
+    if(!GetHasSpellEffect(SPELLABILITY_TYRANT_FOG_MIST, oTarget))
+    {
+        if(bAbsent == TRUE)
+        {
+            if(GetIsEnemy(oTarget, oNPC))
+            {
+                //Fire cast spell at event for the specified target
+                SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_TYRANT_FOG_MIST));
+                //Make a saving throw check
+                if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_POISON))
+                {
+                    //Apply the VFX impact and effects
+                    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(5));
+                }
+            }
+        }
+    }
+}
diff --git a/_module/nss/nw_s1_tyrantfog.nss b/_module/nss/nw_s1_tyrantfog.nss
new file mode 100644
index 0000000..e3ab9e6
--- /dev/null
+++ b/_module/nss/nw_s1_tyrantfog.nss
@@ -0,0 +1,25 @@
+//::///////////////////////////////////////////////
+//:: Tyrant Fog Zombie Mist
+//:: NW_S1_TyrantFog.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Creatures entering the area around the zombie
+    must save or take 1 point of Constitution
+    damage.
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: May 25, 2001
+//:://////////////////////////////////////////////
+//#include "wm_include"
+#include "prc_inc_spells"
+
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+
+    //Declare and apply the AOE
+    effect eAOE = EffectAreaOfEffect(AOE_MOB_TYRANT_FOG);
+    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, OBJECT_SELF, HoursToSeconds(100));
+}
diff --git a/_module/nss/nw_s2_divprot.nss b/_module/nss/nw_s2_divprot.nss
new file mode 100644
index 0000000..fff40ab
--- /dev/null
+++ b/_module/nss/nw_s2_divprot.nss
@@ -0,0 +1,45 @@
+//::///////////////////////////////////////////////
+//:: Divine Protection
+//:: NW_S2_DivProt.nss
+//:: Copyright (c) 2001 Bioware Corp.
+//:://////////////////////////////////////////////
+/*
+    Makes the target creature invisible to hostile
+    creatures unless they make a Will Save to ignore
+    the Sanctuary Effect
+*/
+//:://////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Jan 8, 2002
+//:://////////////////////////////////////////////
+#include "prc_inc_spells"
+//#include "wm_include"
+void main()
+{
+    //if (WildMagicOverride()) { return; }
+	
+//:: Declare major variables
+	object oNPC		= OBJECT_SELF;
+    object oTarget = PRCGetSpellTargetObject();
+	
+    effect eVis 	= EffectVisualEffect(VFX_DUR_SANCTUARY);
+    effect eDur 	= EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
+    int nDC 		= 10 + GetAbilityModifier(ABILITY_CHARISMA) + GetLevelByTypeDivine(oNPC);
+    effect eSanc 	= EffectSanctuary(nDC);
+
+    effect eLink = EffectLinkEffects(eVis, eSanc);
+    eLink = EffectLinkEffects(eLink, eDur);
+    //Fire cast spell at event for the specified target
+    SignalEvent(OBJECT_SELF, EventSpellCastAt(oNPC, SPELLABILITY_DIVINE_PROTECTION, FALSE));
+
+    int nDuration = GetLevelByTypeDivine(oNPC);
+    //Enter Metamagic conditions
+    int nMetaMagic = PRCGetMetaMagicFeat();
+    if (nMetaMagic == METAMAGIC_EXTEND)
+    {
+        nDuration = nDuration *2; //Duration is +100%
+    }
+    //Apply the VFX impact and effects
+    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
+}
+
diff --git a/_module/nss/nw_s3_balordeth.nss b/_module/nss/nw_s3_balordeth.nss
new file mode 100644
index 0000000..96d0afb
--- /dev/null
+++ b/_module/nss/nw_s3_balordeth.nss
@@ -0,0 +1,62 @@
+// HCR v3.2.0 - Execute default death script after fireball effects is complete.
+//::////////////////////////////////////////////////////////////////////////////
+//:: FileName:  NW_S3_BALORDETH
+//::////////////////////////////////////////////////////////////////////////////
+/*
+   Fireball explosion does 50 damage to all within 20ft.
+*/
+//::////////////////////////////////////////////////////////////////////////////
+//:: Created By: Preston Watamaniuk
+//:: Created On: Jan 9, 2002
+//::////////////////////////////////////////////////////////////////////////////
+#include "NW_I0_SPELLS"
+#include "prc_inc_spells"
+//::////////////////////////////////////////////////////////////////////////////
+void main()
+{
+  // Declare major variables.
+  int nMetaMagic = PRCGetMetaMagicFeat();
+  int nDamage;
+  float fDelay;
+  effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M);
+  effect eDam;
+
+  // Apply the fireball explosion.
+  effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL);
+  location lTarget = GetLocation(OBJECT_SELF);
+  ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget);
+
+  // Cycle through the targets until an invalid object is captured.
+  object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR);
+  while (GetIsObjectValid(oTarget))
+    {
+     // Fire cast spell at event for the specified target.
+     SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIREBALL));
+
+     // Calculate delay based on distance between explosion and the target.
+     fDelay = (GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20);
+     if (!PRCDoResistSpell(OBJECT_SELF, oTarget, FloatToInt(fDelay)))
+       {
+        // Adjust damage based on Reflex Save, Evasion and Improved Evasion.
+        nDamage = PRCGetReflexAdjustedDamage(50, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FIRE);
+        if (nDamage > 0)
+          {
+           // Apply effects to the currently selected target.
+           eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
+           DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
+
+           // This visual effect is applied to the target object not the
+           // location as above. This visual effect represents the flame that
+           // erupts on the target not on the ground.
+           DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
+          }
+       }
+
+     // Select the next target.
+     oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR);
+    }
+
+  // HCR 3.0 - Call default death script.
+  ExecuteScript("nw_c2_default7", OBJECT_SELF);
+}
+//::////////////////////////////////////////////////////////////////////////////
diff --git a/_module/nss/onmoduleload.nss b/_module/nss/onmoduleload.nss
index b99b5c9..b204eeb 100644
--- a/_module/nss/onmoduleload.nss
+++ b/_module/nss/onmoduleload.nss
@@ -124,7 +124,7 @@ SetName(oRainbow2, ChaoticText(GetName(oRainbow2, TRUE)));
 
 if(MULTI == TRUE)
 {
-  DelayCommand(60.0, ExecuteScript("savepcinfo", OBJECT_SELF));
+  //:: DelayCommand(60.0, ExecuteScript("savepcinfo", OBJECT_SELF));  //:: Not needed for EE
 }
 //////////////////////////////////////////////////////////////////////////
 
diff --git a/_module/nss/onunaquireitem.nss b/_module/nss/onunaquireitem.nss
index f684a9b..cb3a942 100644
--- a/_module/nss/onunaquireitem.nss
+++ b/_module/nss/onunaquireitem.nss
@@ -51,7 +51,7 @@ string sMsg;
 //This script destroys all items dropped if not in combat (disarmed)
 //or if the item is put into a container in the module.
 //Simply place // before Execute to turn off.
-ExecuteScript("trashem",OBJECT_SELF);
+//ExecuteScript("trashem",OBJECT_SELF);
 
 ////////////////////////////////////////////////////////////////////////
 ////Pick Pocket Watch///// Testing...
diff --git a/_module/nss/time_keeper.nss b/_module/nss/time_keeper.nss
index 28a9b8a..892beef 100644
--- a/_module/nss/time_keeper.nss
+++ b/_module/nss/time_keeper.nss
@@ -44,7 +44,7 @@ const int nRestart = 0; //Set this to 0 if you are using Re-Load Module
 const int nReload = 0; //Set this to 0 if you are using Restart Server
 
 //Set the name of your module below if you are using Re-Load Module
-const string sModuleName = "Guile's UNDERWORLD";
+const string sModuleName = "Underworld 2";
 
 //Set the # below to what Time you want to reset the Module or Server
 //NOTE: The time is in minutes (Multiple Hours X 60)
@@ -430,7 +430,7 @@ sResetTime += " Minutes.";
 ///////////////////////////////////////////////////////////////
 //Check The Reset System (every heartbeat!)
 
-DoResetCheck(sColor, nMinute);
+//:: DoResetCheck(sColor, nMinute);
 
 /////////////////////////////////////////////////////////////////
 //Let's set some visual effects on the Time Keeper (ONCE!)
@@ -500,7 +500,7 @@ else
     PrintString("Auto Quick Saved Fired, SEE SCRIPT: (time_keeper) LINE 488.");
 
     //Export all Non-Polymorphed PCs who are NOT between areas..
-    DoExportCharacters();
+    // DoExportCharacters(); //:: Not needed w/ NWNEE
    }
    //If it's a Single Player Module..
    else if(nDoExport==2)
@@ -697,7 +697,7 @@ void BootAll()
 //This Prototype is critical to the module, as it determines when to do reset.
 void DoResetCheck(string sMC, int nTMin)
 {
-object oMe = OBJECT_SELF;
+/* object oMe = OBJECT_SELF;
 string sColor = sMC;
 
 //Get the Module HeartBeats to count up total Minutes..
@@ -893,7 +893,7 @@ GiveWarnings(sColor);
 }
 
 
-//PROTOTYPE END
+//PROTOTYPE END */
 }
 
 //////////////////////////////////////////////////////////////////
diff --git a/_release/Underworld 2 [PRC8-CEP3].7z b/_release/Underworld 2 [PRC8-CEP3].7z
index 2530df1..c9e4b72 100644
Binary files a/_release/Underworld 2 [PRC8-CEP3].7z and b/_release/Underworld 2 [PRC8-CEP3].7z differ